text:
can  inherit class from native select?

in addition to the width in inline style,can select2 inherit a class from native select?  form example ,
<select class="form-control input-sm" >
   ....

</select>

I want that select2 can inherit input-sm class for control  select2's height;

If memory serves you can't grab the styling from the native object but instead pass the classes through when initialising the select2 object. So you'd need something like this.
$('select.form-control').select2({
    dropdownCssClass: 'input-sm', //Class of the drop down object
    containerCssClass: 'input-sm'   //Class of the select 2 object
})

Should do the job (plus any further settings you wanted to pass through.

You can use :all: as a value (along with other classes) in dropdownCssClass or containerCssClass to inherit all of the classes from the original <select>.

where to find these options? except select2.github.io and read the source code ,do you have a documentation for this ?  thanks

but, I get this error when use settings like previous   Uncaught Error: No select2/compat/containerCss
$('select.form-control').select2({
    dropdownCssClass: 'input-sm', //Class of the drop down object
    containerCssClass: 'input-sm'   //Class of the select 2 object
})

Uncaught Error: No select2/compat/containerCss

https://github.com/select2/select2/issues/3302
You need to use the full build (select2.full.js).

thanks a lot!

@kevin-brown Oooooooo I didn't know about the :all value, i'll have to remember that one in the future.

authors: SgtOddball kevin-brown zhanghqgit


text:
Add sr-Cyrl language.

As discussed in #3936

Select2 uses the ISO 639-1 language code to name the language file. In cases where there are variants for a language (pt-PT and pt-BR, for example), we keep the main language file as the dominant language (pt-PT becomes pt) when needed, or separate the two (zh-CN and zh-TW) when there is no dominant language.
In this case, the ISO language code for Serbian is sr. The IANA Language Subtag Registry defines subtags for script variants (Latin is Latn and Cyrillic is Cyrl) which we can use to differentiate between the two. So the existing translation would be sr-Latn and the new translation would be sr-Cyrl. For backwards compatibility, I'd rather keep sr-Latn as sr, just so people don't have to change that on a minor update (even if it might not be the dominant or official script, backwards compatibility is important).

I'm just going to pull this comment on in

Side note: We are also missing the errorLoading translation for these files. Is anyone interested in adding it?

Right now this will default back to the English translation if there are any issues when loading the results.

@kevin-brown I've added errorLoading translations to sr, sr-Cyrl and hr languages.

Thanks!

source: gharchive/pull-request

authors: kevin-brown limonte

license: MIT

license_type: permissive

license_source: github-api


text:
Copy/Paste tests for PR #2027

Tests for PR #2027

@evpl Unfortunately, clipboard doesn't work in non-graphics environment:
CopyPasteTest > copyEmptySelection() FAILED
    java.awt.HeadlessException:
    No X11 DISPLAY variable was set,
    but this program performed an operation which requires it.
        at java.desktop/sun.awt.HeadlessToolkit.getSystemClipboard(HeadlessToolkit.java:216)
        at com.codeborne.selenide.DefaultClipboard.setText(DefaultClipboard.java:50)
        at integration.CopyPasteTest.copyEmptySelection(CopyPasteTest.java:16)

So we have to disable these tests on github actions, see
https://github.com/selenide/selenide/blob/master/statics/src/test/java/integration/DefaultClipboardTest.java

@asolntsev Done

@evpl thanks, merged.

@evpl still, some of these tests failed. :(
See PR https://github.com/selenide/selenide/pull/2114

authors: asolntsev evpl

repo: selenide/selenide


text:
Writes corrupted XPT file if column has mixed numeric and string types

For example, if the first row has a float but the next row has a 10-character str, the XPT namestr will say it's a numeric column of length 10. That will cause a NotImplementedError when reading the XPT file.

This seems to be caused mostly by pandas.read_csv's annoying habit of parsing empty strings as float('nan') even for a text column, creating a mixed-type column. I changed xport to check whether all values in the column are numeric and writing the column as non-numeric otherwise. I wasn't sure what to do with NaNs in a non-numeric column, so I decided to change those to empty strings.

source: gharchive/issue

repo: selik/xport

license: mit

license_source: bigquery


text:
Docs: fix quick setup

Cleanup, fixes, and comments for quick-setup.

Related Issue

Other information

@cedoor Please review and merge.

repo: semaphore-protocol/website


text:
Support for RDF triples/SPARQL query?

I am wondering how Weaviate could be used as a SPARQL service. Querying the vector space seems like an interesting idea.
To take countries/capitals as an example
SELECT ?country
{
    <France> ?property <Paris> .
    ?country ?property <Berlin> .
}

should return a result (?country, <Germany>). Vectors act like properties, resources as points. But that's just my imagination :)
Some related work:

RDF2vec
Vec2SPARQL

Thanks @namedgraph – I'm going to create a separate "idea" issue for RDF2Vec because there might be an opportunity as well.
I think that the class property structure Weaviate uses can be expressed as RDF-triples (not 100% sure). This would allow you to go: RDF -> Weaviate RESTful API for schema and data import -> Weaviate querying via GraphQL -> RDF

Somewhat related: #1529

🤖 👋  --- 🧇

authors: bobvanluijt namedgraph

repo: semi-technologies/weaviate


text:
Accept files name as command line argument and enable streaming

This commit changes the behavior of the program in such a way that it accepts input and output filenames as command line arguments instead of prompting for them. This makes usage in scripts easier.
Both arguments may be omitted or set to "-" in which case the json2nix will read from stdin resp. write to stdout.

I find this idea really cool, but I rather have it as an option then as a replacement.
Is it possible to remove the file streaming for example and only do the flags as a MVP?
Then people can integrate this into scripts and have the ease of use with a simple dialogue.
Cool idea!


text:
Update warming-up-an-ip-address.md

Fixing some confusing content and linking to the appropriate table to help support and customers.

Hello @kylearoberts,Thanks again for the PR! We appreciate your contribution and look forward to                                              continued collaboration. Thanks!                                             Team SendGrid DX

authors: kylearoberts thinkingserious

repo: sendgrid/docs


text:
Theme

Before

After

sorry, wrong base again.

repo: sendwithus/competencies


text:
Support sqlfluff as an alternative formatter

https://github.com/sqlfluff/sqlfluff
In general sqlfluff is just a nicer and more well-mantained formatter that handles edge cases more robustly IMO. Faced a few cases where sql-formatter is just not doing things consistently, for example:
$ echo "CREATE TABLE foobar ( ids UUID[] );" | sql-formatter
CREATE TABLE foobar (ids UUID []);

$ echo "CREATE TABLE foobar ( ids TEXT[] );" | sql-formatter
CREATE TABLE foobar (ids TEXT[]);

In sqlfluff, they're always consistent. The CLI tool is also more CI-friendly as it can print diagnostics if there are any non-conformant sql files:
$ sqlfluff lint test.sql --dialect ansi
== [test.sql] FAIL
L:   1 | P:   1 | LT01 | Expected only single space before 'SELECT' keyword.
                       | Found '  '. [layout.spacing]

sqlfluff can also be configured a lot more flexibly: https://docs.sqlfluff.com/en/stable/reference/rules.html

I am not having trouble with sql-formatter right now. So I don't plan to support sqlfluff anytime soon. I will consider supporting it as more requests come in.
If we do decide to support more than one formatter, I will allow users to pass commands when formatting, and allow them to use the formatter of their choice.

authors: musjj senkenn

repo: senkenn/sqlsurge


text:
Deregistration handler should be builtin and even work for silcend clients

Right now the deregistration handler is just some sens-plugin which is called as a normal handler. It would be better to have some builtin function which also runs if clients are silenced. Otherwise silenced clients stay there forever even if the sent some deregistration.

I can certainly see value in this, if you are looking for a solution in the mean time that protects you even from silenced clients I would look at: https://github.com/eheydrick/aws-cleaner while it currently only supports aws environments the concept could be applied to any modern computing platform.

@runningman84 although I can see an argument for including the deregistration handler as a built-in, I think you can already configure sensu to handle deregistration events for silenced clients using the existing handler by setting the value of the handle_silenced attribute to true in your handler definition. See https://docs.sensu.io/sensu-core/latest/reference/handlers/#handler-attributes
If you haven't already tried this, will you please do so and let us know if this solves your problem?

@cwjohnston
Since  sensu-extensions-deregistration  is an extension and not a handler defined via config management, where exactly do you set the "handle_silenced" attribute?
The deregistration extension has
@options.merge!(@settings[:deregistration]) if @settings[:deregistration].is_a?(Hash)

Does this mean that a server-side config outside of the "handlers" scope is where to put the handle_siilenced attributes?
Maybe the deregistration extension needs some documentation concerning where to drop the mergable configs?

@jspaleta I think the comment here was aimed at the use of the Deregistration handler provided in sensu-plugins-sensu. At the time of my comment above, I had forgotten that I started work on porting the handler to an extension for including in Sensu Core.
To be clear, the deregistration extension isn’t fully tested nor is it publicly published on RubyGems, etc. I think figuring out how it can be made to handle silenced events sounds like an important part of testing the extension for a first release.
I have now updated the readme for the deregistration extension to indicate that it is considered experimental.

if its gonna be included in the core I think we should transfer it to the sensu org, thoughts?

I have reviewed, approved, and merged the functionality. We will need to version and publish it to rubygems. If you guys are gonna own it then you might not want to follow the processes that the main plugins org follows so I have not touched that until we figure out where it should live and who should maintain it.

I've release sensu-extensions-deregistration 1.0.0 and have opened a PR against the sensu-extensions repository: https://github.com/sensu/sensu-extensions/pull/21
Once the above PR has been merged, we can bump the version of sensu-extensions and include it in Sensu Core.

authors: amdprophet cwjohnston jspaleta majormoses runningman84

repo: sensu/sensu


text:
Migrate off of libjudy

This has been discussed in the past, but both #7 and seomoz/simhash-py#8 are related to libjudy's reliance on undefined behavior which is now causing the library to malfunction on newer versions of GCC. It's caused us enough pain in the past that we should probably just bite the bullet and pick something new.

Thats' been done with https://github.com/seomoz/simhash-cpp/commit/922891f05c3c43cad23ea7cb374ecb23f3f7e281
@b4hand do you mind closing this?

repo: seomoz/simhash-cpp


text:
Make title search independent from DocQuery search

Title search should not be affected by lunr pipeline.
Also, initial search loading takes a lot of time. This is reasonable since searching the entire docs is a huge task.

Therefore, show title search first, and async load the result from docQuery search.

https://github.com/seongjaelee/nvatom/tree/feature-30

repo: seongjaelee/nvatom


text:
valid_chars_for_string argument does not work

Describe the bug
When passing "æøåö" for valid_chars_for_string to AutoComplete, it still does not find words that start with these letters
To Reproduce
from fast_autocomplete import AutoComplete

def construct_autocomplete_dict(vocab: list, freq: list) -> dict:
    return {word: {"count": freq} for word, freq in zip(vocab, freq)}

ac_dict = construct_autocomplete_dict(['ål', 'øver', 'ære', 'ere', 'öra'], [1,2,3,4,5])
ac = AutoComplete(ac_dict, valid_chars_for_string="æøåö")
print(ac.search('æ'))
print(ac.search('ö'))

Expected behavior
Autocomplete finds the words "ære" and "öra". Instead it returns an empty list. Same for other words starting with letters like these.
OS, DeepDiff version and Python version (please complete the following information):
OS: macOS
Python Version: 3.7.11
I don't know what DeepDiff is

Nevermind, I misunderstood how to use the argument. You have to pass all characters you want to be accepted, not just the additional ones.

Cool, happy to hear it was not a bug!
Sep Dehpour

On Dec 14, 2021, at 4:39 AM, Joakim @.***> wrote:

Nevermind, I misunderstood how to use the argument. You have to pass all characters you want to be accepted, not just the additional ones.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.

authors: joakimwar seperman

repo: seperman/fast-autocomplete


text:
Question

Why is it that in the video on demand application in WebRTC, when a packet is dropped, the data on the web side only experiences buffering, whereas in the surveillance application, the web side receives video with broken frames?

Is it the same problem every time? i am not sure how does browser process the packet. Maybe the difference is what kind of packet is dropped. if just drop a rtp packet of P frame, it still can use. but if lose the key frame, it need to buffer and wait to receive the correct key frame.

repo: sepfy/pear


text:
Update block

Hello,
thanks for your SDK.
I can easily create a new page, but I can't modify one.
For create a new page, this code work :
return clientNotion.updatePage(
            pageId = PAGE_ID,
            properties = mapOf(
                "Name" to prop(title = listOf(RichText(text = Text(content = "Titre modifié")))),
                "Date" to prop(date = Date(start = "2022-07-05", end = "2022-07-29"))
            )
        )

But I can't find the right syntax regarding the modification of my page with the associated block ID :
return clientNotion.updateBlock(
            blockId = "6679e3d0ec3341f487eb633c7a59bfa1",
            elements = mapOf(
                "Paragraph" to prop(type = ParagraphBlock)
            )
        )

Any idea ?
Thanks :)

Hi @Nico-GS, thanks for writing in. I would suggest checking this SDK's integration tests to learn how to use updateBlock method: https://github.com/seratch/notion-sdk-jvm/blob/main/core/src/test/kotlin/integration_tests/BlocksTest.kt

Thanks, i did not see that !

authors: Nico-GS seratch

repo: seratch/notion-sdk-jvm


text:
json-rust 0.9.0rc

Pushed to benches, just need to cargo update and rebuild. My hardware:
======= serde_json ======= parse|stringify === parse|stringify ===
data/canada.json          24.7ms    23.2ms    12.5ms    19.1ms
data/citm_catalog.json    17.3ms     3.3ms     7.4ms     1.6ms
data/twitter.json          7.1ms     1.4ms     4.8ms     1.4ms

======= json-rust ======== parse|stringify === parse|stringify ===
data/canada.json          19.3ms    17.1ms
data/citm_catalog.json    10.7ms     1.4ms
data/twitter.json          4.1ms     1.0ms

==== rustc_serialize ===== parse|stringify === parse|stringify ===
data/canada.json          38.8ms    65.9ms    46.9ms    65.4ms
data/citm_catalog.json    26.2ms     6.0ms    34.4ms     4.4ms
data/twitter.json         13.3ms     2.7ms    18.5ms     2.5ms

Nice! I pushed an update in 5334dfbe50b9e366e525707c945c1495d2c8ccb0 which also includes a ~10% boost on our end coming from https://github.com/serde-rs/serde/pull/437.

authors: dtolnay maciejhirsz

repo: serde-rs/json-benchmark


text:
Check if internally-tagged enum's type tag collides with nested tuple struct

This is basically the same issue as https://github.com/serde-rs/serde/issues/1161 but where a struct is wrapped in a tuple struct variant:
use serde::{self, Deserialize, Serialize};
use serde_json;

#[derive(Serialize, Deserialize)]
struct Bar {
    foobar: String,
}

#[derive(Serialize, Deserialize)]
#[serde(tag = "foobar")]
enum Foo {
    Bar(Bar),
}

fn main() {
    let foo = Foo::Bar(Bar {
        foobar: "bar".into(),
    });
    let json = serde_json::to_string_pretty(&foo).unwrap();
    println!("{}", json);
}

Output:
{
  "foobar": "Bar",
  "foobar": "bar"
}

This check is impossible to to at compile time because derive macro of enum Foo does not see the definition of struct Bar. Runtime check could be implemented, but then it should be consistent and also cover situations like two flatten fields in one struct those brings the same fields to the owning struct, etc.

authors: Mingun glindstedt

repo: serde-rs/serde


text:
int/float divide issue when using C++ code generated by pythran.

In python3, x=3/2 returns 1.5, but this isn't the case when doing the following.
Use this python code
def test(a,b):
    return a/b

put it in newBug.py and create C++ code using:
pythran -e newBug.py

Then compile the following C++ code:
void test(int a, int b) {
    auto ret = __pythran_newBug::test()(a,b);
    std::cout << ret << "\n";
}
int main() {
    test(3,2);
    return 0;
}

Using this command:
c++ -std=c++11 -w -I/Users/jlaroche/Dev/BuildVEnv/lib/python3.6/site-packages/pythran -I/Users/jlaroche/Dev/BuildVEnv/lib/python3.6/site-packages/numpy/core/include -I/Users/jlaroche/Dev/BuildVEnv/include/python3.6m -F. test.cpp -o test.exe

Then run test.exe.
You'll get an answer of 1, instead of 1.5 as you'd expect from python.
Of course, this makes sense, you're passing integers to __pythran_newBug::test() and the function uses an integer divide, but that's inconsistent with what python3 does.

fixed in https://github.com/serge-sans-paille/pythran/pull/1247

repo: serge-sans-paille/pythran


text:
Assertion error: Function path is chained attributes and name

This little code snippet chokes pythran:
def n_argmin(a, N):
    idx = a.ravel().argsort()[:N]
    return np.stack(np.unravel_index(idx, a.shape)).T

AssertionError: Function path is chained attributes and name

I can reproduce the issue, thanks for reporting!

authors: nbecker serge-sans-paille


text:
supported numpy kwarg?

Hi,
I want to call a stable argsort on a numpy array. I note that argsort works both as a numpy function and as a ndarray method (the second is not mentioned as implemented but I observe it works), but the kwarg kind does not seem to be supported.
My question here is: is any numpy optional kwarg supported in pythran? Could the documentation specify this or which ones are supported?
pythran 0.12.2
Thanks!

We have kwarg support in Pythran, both at user and package level. It relies on the inspect module to automagically discover values, and sometimes need a bit of help from the compiler. Let me have a look for argsort.

ok, in the case of numpy.argsort it's just that I haven't added support for the kind keyword argument in pythonic (the native backend). inspect does its job as expected (otherwise you'd get a syntax error because kwargs are statically checked).

authors: ogauthe serge-sans-paille


text:
reshape with adding an axis

The following functions does not compile
#V, a vector of shape (3, 20644)
p=np.reshape(V,(3,4,-1), order="F")
it's ok for reshape and order="F" but there is a problem in reshape with adding an axis.

On Fri, May 18, 2018 at 08:00:12AM -0700, fdabaghi wrote:

The following functions does not compile
#V, a vector of shape (3, 20644)
p=np.reshape(V,(3,4,-1), order="F")
it's ok for reshape and order="F" but there is a problem in reshape with adding
an axis.

reshape with adding an axis? Can you provide a full « non working »
example?

a simple example:
p=np.ones((3,20))
p=np.reshape(p,(3,4,-1), order="F")
a=test(p,2)
#pythran export test(float64[][][], int32)
def test(p,a):
p*=a
return p

ok, the problem is well known: pythran does not support fortran storage for array with more than two dimensions. I'll keep this issue open to remind me to find a way of implementing that :-)

authors: fdabaghi serge-sans-paille


text:
Add appsettings example

I had a couple of issues using this sink from appsettings, namely that the region endpoint can't be specified because it's a series of abstract class implementations (Serilog is clever enough to cast from strings to Enums, and handle some built-in types like ints/bools), but not to map to the RegionEndpoint classes.
It does work with the ServiceUrl specified instead (see separate PR for an issue I found with this), so thought it would be useful to single it out along with the endpoint gotcha.

Nice one, also I didn't even notice that I forgot to mention Net5 😅

authors: SeppPenner stylesm


text:
Unique Use Case

Hi there.  I've got a case where I've got partially disconnected devices I'd like to use Serilog and Seq with.  It looks like buffering is taken care of already.  One piece that would be a requirement would be a way to tell the sink that it can go ahead and try accessing the network and additionally, telling it when it needs to stop accessing the network.  To be clear, I WANT the logs to be stored, just buffered offline for later sync, so a solution where the log events just stop coming it wouldn't be as helpful (i.e. dynamic processing of each log event.)
Thoughts?

Hi Norman,
After recently reopening this issue tracker (in preference to sharing the one in serilog/serilog) I did the unthinkable and forgot to "watch" it, sorry I missed this!
I think you may be able to achieve what you want by creating a fork of this codebase and adding some form of switching into HttpLogShipper - did you explore that avenue?
Regards,
Nick

Hi Nick, no worries on the reply timeframe.  I've got plenty to keep me busy with other avenues.  I agree in principle with you.  I have not tried that avenue out yet, but that was my thought.  One other possibility is to use some sort of AOP framework to combine in the code I need using an IL merge-style process.  That would save having to maintain a separate fork, just would need automated regression testing to ensure it continued to work as advertised. ;-)

Hi Norman - I wonder if this could be implemented as a "go offline" command for Seq Forwarder? http://blog.getseq.net/help-us-test-seq-forwarder/
Cheers,
Nick

That looks like an awesome solution!
On May 20, 2016 17:00, "Nicholas Blumhardt" notifications@github.com
wrote:

Hi Norman - I wonder if this could be implemented as a "go offline"
command for Seq Forwarder?
http://blog.getseq.net/help-us-test-seq-forwarder/
Cheers,
Nick
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
https://github.com/serilog/serilog-sinks-seq/issues/3#issuecomment-220717328

Clever idea!

@nblumhardt in my scenario, there is a firewall that would limit connectivity, only negative to not telling the forwarder to go offline is that it might wind up in a retry nightmare (consuming CPU needlessly) without exponential back-off.
Is there already a "go offline" mechanism implemented for the forwarder?

No, not in there already. There is an exponential back-off however, the same as the one here: https://github.com/serilog/serilog-sinks-seq/blob/dev/src/Serilog.Sinks.Seq/Sinks/Seq/ExponentialBackoffConnectionSchedule.cs

Very nice. I think we can consider this issue closed out then as it regards my use case.  The efforts look impressive. :-)

authors: IanYates nblumhardt normanhh3

repo: serilog/serilog-sinks-seq


text:
Pull philer/navigation

Since I can't push/pull a new branch in this repo I'm letting you know here that the navigation branch in my fork contains my recent changes (I squashed them into one commit).
All I've really been able to do was the global layout with some basic responsiveness (css/html only). It's still a little rough around the edges. Here's the todo list:

anything in js: I didn't even get to touch it.
mobile menu: Right now all the regular menus get hidden in the mobile view but the mobile menu itself doesn't even exist yet.
work out what should happen with the right sidebar when it gets squashed: Should the toggle stay behind or just hide it altogether?
clean up breakpoints: grep @media will show you a random-ish usage of min-width vs. max-width
clean up comments: I left a lot of stuff in for reference. You'll probably want to get rid of that eventually

If you've got any questions regarding my changes let me know.

I created a new branch called ui-navigation, could you merge into that one?

authors: arekkas philer


text:
POST /set-notification-state

closes #48
Basically copy/pasted 90% from set-uuid-state.

Thanks for the review and the test philosophy explanation :)

Thanks for the review and the test philosophy explanation :)


text:
Function Resource Auth

Signed-off-by: Tihomir Surdilovic tihomir@temporal.io
Many thanks for submitting your Pull Request :heart:!
Please specify parts this PR updates:

[x] Specification
[x] Schema
[x] Examples
[ ] Extensions
[ ] Roadmap
[ ] Use Cases
[ ] Community
[ ] TCK
[ ] Other

What this PR does / why we need it:

Adds the "auth" property to top-level workflow definition. This prop includes reusable auth info for resources that are accessed by operation prop of function definitions. It does not provide auth info for the invocation of the function, but only info how to access the definition file that includes this information.
Adds the "authRef" property to the function definition. This property is used to reference the auth definition by its name
Adds the missing metadata prop to function definitions
Special notes for reviewers:
This is still a Work In progress
Additional information (if needed):

@cdavernas
This is the initial PR ..we need to work on defining the properties for each auth type.
Please help with that :)

@cdavernas update the schema. if its ok ill finish the specification doc next. let me know

Ahhh! Final thought: could we add metadata to all authinfodef? Might be usefull for some exotic use cases

Ahhh! Final thought: could we add metadata to all authinfodef? Might be usefull for some exotic use cases

added

rebased

Arf... Sorry, I just realized when trying to run my tests that we still miss an Authority uri property for the oidcauthenticationproperties

can u show me example?

rebased

@cdavernas added the suggestions, except the "auth/s" thing which i am honestly not sure about but can update no problem :)
Can you check the auth schema now to see if the props are ok and then i can work on finishing the specification text for this

@cdavernas thanks! will finish the spec section and ping you again for review of that.
Yeah we need to find someone that speaks the queens english to help us out with the auth/auths thing :)

authors: cdavernas tsurdilo

repo: serverlessworkflow/specification


text:
🛑 ge.ipservers.xyz is down

In c457ccd, ge.ipservers.xyz (ge.ipservers.xyz) was down:

HTTP code: 0
Response time: 0 ms

Resolved: ge.ipservers.xyz is back up in ffa10f0.

repo: serversshnet/uptime


text:
🛑 fr.ipservers.xyz is down

In ae78c72, fr.ipservers.xyz (fr.ipservers.xyz) was down:

HTTP code: 0
Response time: 0 ms

Resolved: fr.ipservers.xyz is back up in 9da22a0.


text:
🛑 us-ray.ipservers.xyz is down

In f71946c, us-ray.ipservers.xyz (us-ray.ipservers.xyz) was down:

HTTP code: 0
Response time: 0 ms

Resolved: us-ray.ipservers.xyz is back up in 6b41d9f after 3 days, 2 hours, 19 minutes.


text:
🛑 idtro.ipservers.xyz is down

In f02c95c, idtro.ipservers.xyz (idtro.ipservers.xyz) was down:

HTTP code: 0
Response time: 0 ms

Resolved: idtro.ipservers.xyz is back up in 41943c4 after 25 minutes.


text:
🛑 ustro.ipservers.xyz is down

In cf49f40, ustro.ipservers.xyz (ustro.ipservers.xyz) was down:

HTTP code: 0
Response time: 0 ms

Resolved: ustro.ipservers.xyz is back up in abffec0.


text:
Subscription search dose not work

Subscription list(not search anything yet)
[version]
V16.0.4
[Frequency]
Always
[How to reproduce]

login on marketplace
Go to account->subscription
search name, reference, parameters of type string
(ex. Example, ExampleApp_login_zyuryo, 987, foofoo)

[Expected result]
the service can be found
[Observed result]
the service cannot be found
[Note]
This subscription had Japanese character name. I removed Japanese character from name but still I could not search anything.

[Fixed version]
16.0.5
[Detail of fix]
The SubscriptionDao class was refactored to some extent.
[Commit]
38c7c7ee7388e43e9371ba65a58eaff877f775e8

Verified by FNST
[verified version]V16.0 fix5
[verified details]Now the subscriptions can be searched out in "Account"--"subscription" page. So this bug can be verifed.

authors: StavrevaS jiangweiyi

repo: servicecatalog/development


text:
Starting member with dynamically allocated port

Motivation: streamline testing and development and deployments with zero configuration.
the enhancement is to enable creating instance without specifying specific port
Current:
....
ICluster clusterA = Cluster.newInstance(3000).join();
ICluster clusterA = Cluster.newInstance(3001).join();
....
After enhancement it will be possible to run on same  vm several cluster instances:
...
ICluster clusterA = Cluster.newInstance().join();  -- > starts on default port
ICluster clusterB = Cluster.newInstance().join();  ---> starts on default port +1
...

Actually if you run this code right now:
ICluster clusterA = Cluster.newInstance().join();
It will start transport on default port 29001.

Dynamically allocated means on nodes start on default port 29001 + 1
After enhancement it will be possible to run on same vm several cluster instances:
...
ICluster clusterA = Cluster.newInstance().join(); -- > starts on default port
ICluster clusterB = Cluster.newInstance().join(); ---> starts on default port +1

We can do dynamically allocated ports, but there is one problem here.
Cluster creates transport instance in newInstance() method, but start in join() method.
This will cause situation when next code will not work as expected
for (int i = 0; i < 10; i++) {
      clusters.add(Cluster.newInstance());
    }
 for (ICluster cluster : clusters) {
      cluster.joinAwait();
    }

I wonder why we really need to separate newInstance from join?
@antonkharenko @ronenhamias WDYT?

IMHO there are 2 options:
Option 1 (base port)
ICluster clusterA = Cluster.newInstance(3000).join(); // start on port 3000
ICluster clusterB = Cluster.newInstance(3000).join(); // start on port 3001 since 3000 is taken.
Option 2 (port 0)
it means that these 2 lines are the same:
ICluster clusterA = Cluster.newInstance().join();
ICluster clusterA = Cluster.newInstance(0).join();

Don't you think that this approach might lead to unpredictable behavior?
Zero configuration == good defaults, but it does not mean "find some random port just to do not fail".
What if some other application already uses this port (for example, old server instance that was not killed / stuck), and correct behavior in this case should be just fail to start?

@kshchepanovskyi  Basically idea is somewhat similar to what Hazelcast do (see http://docs.hazelcast.org/docs/3.3/manual/html/ports.html) that it doesn't find some random port, but search in the configured ports range (with meaningful defaults) for the free port to bind. If all ports from the configured range are bound then fail. Having only one port basically is just a special case of port range where this range contains single element.

@antonkharenko
Ok, with "automatic cluster node discovery" - similar to Hazelcast's multicast/tcp - it might be good idea.
Anyway, there still are few tricky moments.

Hazelcast always check if service that listens on remote port is actually hazelcast.
Hazelcast has a concept of "cluster name". Cluster nodes should check remote node's "cluster name" so that they are confident they do not connect to wrong node.

That's why I consider this feature danger.

Motivation: streamline testing and development and deployments with zero configuration.

If we do not handle all corner cases, instead of improving things we can make them only worse.

@kshchepanovskyi Basically automatic node discovery is supported  via seed members (it means you need to provide address of at least one existing node on cluster join to discover all other nodes in the cluster). It is not supported multicast discovery (as for now) since it I am not sure it has much value outside of demo or dev environment - multicast often disabled.
Also we have the concept of "cluster name" too. It is called "syncGroup" and it is a part of cluster configuration (ClusterConfiguration.ClusterMembershipSettings.syncGroup) which you can set to arbitrary string identifier. In addition to that Transport send handshake messages on connect so basically node on the other end need to run Transport too in order to pass handshake.

Done at PR: https://github.com/scalecube/scalecube/pull/57

authors: antonkharenko kshchepanovskyi myroslavlisniak ronenhamias

repo: servicefabric/servicefabric


text:
Bindgen tries to generate bindings for methods even with --ignore-methods

Input C/C++ Header
struct Foo {
  void test();
};

Bindgen Invocation
$ bindgen input.hpp --ignore-methods -- --target=i686-pc-win32

Actual Results
thread 'main' panicked at 'Invalid or unknown abi 4 for function "_bindgen_ty_id_2" FunctionSig { return_type: ItemId(6), argument_types: [(Some("this"), ItemId(4))], is_variadic: false, abi: Unknown(4) }', /Users/upsuper/.cargo-target/debug/build/bindgen-96ad8d9060ae5f67/out/codegen.rs:5987
stack backtrace:
   0: std::sys::imp::backtrace::tracing::imp::unwind_backtrace
   1: std::panicking::default_hook::{{closure}}
   2: std::panicking::default_hook
   3: std::panicking::rust_panic_with_hook
   4: std::panicking::begin_panic
   5: std::panicking::begin_panic_fmt
   6: <bindgen::ir::function::FunctionSig as bindgen::codegen::TryToRustTy>::try_to_rust_ty
   7: bindgen::codegen::utils::rust_fndecl_from_signature
   8: <bindgen::ir::function::Function as bindgen::codegen::CodeGenerator>::codegen
   9: <bindgen::ir::item::Item as bindgen::codegen::CodeGenerator>::codegen
  10: <bindgen::ir::module::Module as bindgen::codegen::CodeGenerator>::codegen::{{closure}}
  11: <bindgen::ir::module::Module as bindgen::codegen::CodeGenerator>::codegen
  12: <bindgen::ir::item::Item as bindgen::codegen::CodeGenerator>::codegen
  13: bindgen::codegen::codegen::{{closure}}
  14: bindgen::ir::context::BindgenContext::gen
  15: bindgen::codegen::codegen
  16: bindgen::Bindings::generate
  17: bindgen::Builder::generate
  18: bindgen::main::{{closure}}
  19: std::panicking::try::do_call
  20: __rust_maybe_catch_panic
  21: std::panicking::try
  22: std::panic::catch_unwind
  23: bindgen::main
  24: __rust_maybe_catch_panic
  25: std::rt::lang_start
  26: main

Expected Results
This panics when the target is win32 because we don't support thiscall, while for other platforms, it doesn't panic, but it still generates a binding function for the method.
RUST_LOG=bindgen Output

INFO:bindgen: Clang Version: clang version 4.0.0 (tags/RELEASE_400/final)
WARN:bindgen: Using clang (4, 0), expected (3, 9)
DEBUG:bindgen::ir::context: BindgenContext::add_item(Item { id: ItemId(0), local_id: Cell { value: None }, next_child_local_id: Cell { value: 1 }, canonical_name_cache: RefCell { value: None }, comment: None, annotations: Annotations { opaque: false, hide: false, use_instead_of: None, disallow_copy: false, private_fields: None, accessor_kind: None, constify_enum_variant: false }, parent_id: ItemId(0), kind: Module(Module { name: Some("root"), kind: Normal, children: {} }), detect_derive_debug_cycle: Cell { value: false }, detect_derive_copy_cycle: Cell { value: false } }, declaration: None, loc: None
DEBUG:bindgen::ir::item: Item::from_ty_with_id: ItemId(1)
	ty = Type(Foo, kind: Record, cconv: 100, decl: Cursor(Foo kind: StructDecl, loc: test.hpp:1:8, usr: Some("c:@S@Foo")), canon: Cursor(Foo kind: StructDecl, loc: test.hpp:1:8, usr: Some("c:@S@Foo"))),
	location = Cursor(Foo kind: StructDecl, loc: test.hpp:1:8, usr: Some("c:@S@Foo"))
DEBUG:bindgen::ir::context: builtin_or_resolved_ty: Type(Foo, kind: Record, cconv: 100, decl: Cursor(Foo kind: StructDecl, loc: test.hpp:1:8, usr: Some("c:@S@Foo")), canon: Cursor(Foo kind: StructDecl, loc: test.hpp:1:8, usr: Some("c:@S@Foo"))), Some(Cursor(Foo kind: StructDecl, loc: test.hpp:1:8, usr: Some("c:@S@Foo"))), None
DEBUG:bindgen::ir::context: Not resolved, maybe builtin?
DEBUG:bindgen::ir::context: builtin_or_resolved_ty: Type(Foo, kind: Record, cconv: 100, decl: Cursor(Foo kind: StructDecl, loc: test.hpp:1:8, usr: Some("c:@S@Foo")), canon: Cursor(Foo kind: StructDecl, loc: test.hpp:1:8, usr: Some("c:@S@Foo"))), Some(Cursor(Foo kind: StructDecl, loc: test.hpp:1:8, usr: Some("c:@S@Foo"))), None
DEBUG:bindgen::ir::context: Not resolved, maybe builtin?
DEBUG:bindgen::ir::ty: from_clang_ty: ItemId(1), ty: Type(Foo, kind: Record, cconv: 100, decl: Cursor(Foo kind: StructDecl, loc: test.hpp:1:8, usr: Some("c:@S@Foo")), canon: Cursor(Foo kind: StructDecl, loc: test.hpp:1:8, usr: Some("c:@S@Foo"))), loc: Cursor(Foo kind: StructDecl, loc: test.hpp:1:8, usr: Some("c:@S@Foo"))
DEBUG:bindgen::ir::ty: currently_parsed_types: [PartialType { decl: Cursor(Foo kind: StructDecl, loc: test.hpp:1:8, usr: Some("c:@S@Foo")), id: ItemId(1) }]
DEBUG:bindgen::ir::comp: CompInfo::from_ty(Struct, Cursor(Foo kind: StructDecl, loc: test.hpp:1:8, usr: Some("c:@S@Foo")))
DEBUG:bindgen::ir::function: Function::parse(Cursor(test kind: CXXMethod, loc: test.hpp:2:8, usr: Some("c:@S@Foo@F@test#")), Type(void () __attribute__((thiscall)), kind: FunctionProto, cconv: 4, decl: Cursor( kind: NoDeclFound, loc: builtin definitions, usr: None), canon: Cursor( kind: NoDeclFound, loc: builtin definitions, usr: None)))
DEBUG:bindgen::ir::item: Item::from_ty_with_id: ItemId(2)
	ty = Type(void () __attribute__((thiscall)), kind: FunctionProto, cconv: 4, decl: Cursor( kind: NoDeclFound, loc: builtin definitions, usr: None), canon: Cursor( kind: NoDeclFound, loc: builtin definitions, usr: None)),
	location = Cursor(test kind: CXXMethod, loc: test.hpp:2:8, usr: Some("c:@S@Foo@F@test#"))
DEBUG:bindgen::ir::context: builtin_or_resolved_ty: Type(void () __attribute__((thiscall)), kind: FunctionProto, cconv: 4, decl: Cursor( kind: NoDeclFound, loc: builtin definitions, usr: None), canon: Cursor( kind: NoDeclFound, loc: builtin definitions, usr: None)), Some(Cursor(test kind: CXXMethod, loc: test.hpp:2:8, usr: Some("c:@S@Foo@F@test#"))), None
DEBUG:bindgen::ir::context: Not resolved, maybe builtin?
DEBUG:bindgen::ir::context: builtin_or_resolved_ty: Type(void () __attribute__((thiscall)), kind: FunctionProto, cconv: 4, decl: Cursor( kind: NoDeclFound, loc: builtin definitions, usr: None), canon: Cursor( kind: NoDeclFound, loc: builtin definitions, usr: None)), Some(Cursor(test kind: CXXMethod, loc: test.hpp:2:8, usr: Some("c:@S@Foo@F@test#"))), None
DEBUG:bindgen::ir::context: Not resolved, maybe builtin?
DEBUG:bindgen::ir::ty: from_clang_ty: ItemId(2), ty: Type(void () __attribute__((thiscall)), kind: FunctionProto, cconv: 4, decl: Cursor( kind: NoDeclFound, loc: builtin definitions, usr: None), canon: Cursor( kind: NoDeclFound, loc: builtin definitions, usr: None)), loc: Cursor(test kind: CXXMethod, loc: test.hpp:2:8, usr: Some("c:@S@Foo@F@test#"))
DEBUG:bindgen::ir::ty: currently_parsed_types: [PartialType { decl: Cursor(Foo kind: StructDecl, loc: test.hpp:1:8, usr: Some("c:@S@Foo")), id: ItemId(1) }]
DEBUG:bindgen::ir::function: FunctionSig::from_ty Type(void () __attribute__((thiscall)), kind: FunctionProto, cconv: 4, decl: Cursor( kind: NoDeclFound, loc: builtin definitions, usr: None), canon: Cursor( kind: NoDeclFound, loc: builtin definitions, usr: None)) Cursor(test kind: CXXMethod, loc: test.hpp:2:8, usr: Some("c:@S@Foo@F@test#"))
DEBUG:bindgen::ir::item: Item::from_ty_with_id: ItemId(3)
	ty = Type(Foo, kind: Record, cconv: 100, decl: Cursor(Foo kind: StructDecl, loc: test.hpp:1:8, usr: Some("c:@S@Foo")), canon: Cursor(Foo kind: StructDecl, loc: test.hpp:1:8, usr: Some("c:@S@Foo"))),
	location = Cursor(Foo kind: StructDecl, loc: test.hpp:1:8, usr: Some("c:@S@Foo"))
DEBUG:bindgen::ir::context: builtin_or_resolved_ty: Type(Foo, kind: Record, cconv: 100, decl: Cursor(Foo kind: StructDecl, loc: test.hpp:1:8, usr: Some("c:@S@Foo")), canon: Cursor(Foo kind: StructDecl, loc: test.hpp:1:8, usr: Some("c:@S@Foo"))), Some(Cursor(Foo kind: StructDecl, loc: test.hpp:1:8, usr: Some("c:@S@Foo"))), None
DEBUG:bindgen::ir::context: Not resolved, maybe builtin?
DEBUG:bindgen::ir::item: Avoiding recursion parsing type: Type(Foo, kind: Record, cconv: 100, decl: Cursor(Foo kind: StructDecl, loc: test.hpp:1:8, usr: Some("c:@S@Foo")), canon: Cursor(Foo kind: StructDecl, loc: test.hpp:1:8, usr: Some("c:@S@Foo")))
DEBUG:bindgen::ir::context: BindgenContext::add_item(Item { id: ItemId(4), local_id: Cell { value: None }, next_child_local_id: Cell { value: 1 }, canonical_name_cache: RefCell { value: None }, comment: None, annotations: Annotations { opaque: false, hide: false, use_instead_of: None, disallow_copy: false, private_fields: None, accessor_kind: None, constify_enum_variant: false }, parent_id: ItemId(0), kind: Type(Type { name: None, layout: None, kind: Pointer(ItemId(1)), is_const: false }), detect_derive_debug_cycle: Cell { value: false }, detect_derive_copy_cycle: Cell { value: false } }, declaration: None, loc: None
DEBUG:bindgen::ir::context: add_item_to_module: adding ItemId(4) as child of parent module ItemId(0)
DEBUG:bindgen::ir::item: from_ty_or_ref_with_id: ItemId(5) Type(void, kind: Void, cconv: 100, decl: Cursor( kind: NoDeclFound, loc: builtin definitions, usr: None), canon: Cursor( kind: NoDeclFound, loc: builtin definitions, usr: None)), Cursor(test kind: CXXMethod, loc: test.hpp:2:8, usr: Some("c:@S@Foo@F@test#")), None
DEBUG:bindgen::ir::context: builtin_or_resolved_ty: Type(void, kind: Void, cconv: 100, decl: Cursor( kind: NoDeclFound, loc: builtin definitions, usr: None), canon: Cursor( kind: NoDeclFound, loc: builtin definitions, usr: None)), Some(Cursor(test kind: CXXMethod, loc: test.hpp:2:8, usr: Some("c:@S@Foo@F@test#"))), None
DEBUG:bindgen::ir::context: Not resolved, maybe builtin?
DEBUG:bindgen::ir::context: add_builtin_item: item = Item { id: ItemId(6), local_id: Cell { value: None }, next_child_local_id: Cell { value: 1 }, canonical_name_cache: RefCell { value: None }, comment: None, annotations: Annotations { opaque: false, hide: false, use_instead_of: None, disallow_copy: false, private_fields: None, accessor_kind: None, constify_enum_variant: false }, parent_id: ItemId(0), kind: Type(Type { name: Some("void"), layout: None, kind: Void, is_const: false }), detect_derive_debug_cycle: Cell { value: false }, detect_derive_copy_cycle: Cell { value: false } }
DEBUG:bindgen::ir::context: add_item_to_module: adding ItemId(6) as child of parent module ItemId(0)
DEBUG:bindgen::ir::item: ItemId(6) already resolved: Cursor(test kind: CXXMethod, loc: test.hpp:2:8, usr: Some("c:@S@Foo@F@test#"))
WARN:bindgen::ir::function: Unknown calling convention: 4
DEBUG:bindgen::ir::context: BindgenContext::add_item(Item { id: ItemId(2), local_id: Cell { value: None }, next_child_local_id: Cell { value: 1 }, canonical_name_cache: RefCell { value: None }, comment: None, annotations: Annotations { opaque: false, hide: false, use_instead_of: None, disallow_copy: false, private_fields: None, accessor_kind: None, constify_enum_variant: false }, parent_id: ItemId(0), kind: Type(Type { name: None, layout: Some(Layout { size: 1, align: 4, packed: false }), kind: Function(FunctionSig { return_type: ItemId(6), argument_types: [(Some("this"), ItemId(4))], is_variadic: false, abi: Unknown(4) }), is_const: false }), detect_derive_debug_cycle: Cell { value: false }, detect_derive_copy_cycle: Cell { value: false } }, declaration: Some(Cursor( kind: NoDeclFound, loc: builtin definitions, usr: None)), loc: Some(Cursor(test kind: CXXMethod, loc: test.hpp:2:8, usr: Some("c:@S@Foo@F@test#")))
DEBUG:bindgen::ir::context: add_item_to_module: adding ItemId(2) as child of parent module ItemId(0)
DEBUG:bindgen::ir::context: Invalid declaration Cursor( kind: NoDeclFound, loc: builtin definitions, usr: None) found for type Type { name: None, layout: Some(Layout { size: 1, align: 4, packed: false }), kind: Function(FunctionSig { return_type: ItemId(6), argument_types: [(Some("this"), ItemId(4))], is_variadic: false, abi: Unknown(4) }), is_const: false }
DEBUG:bindgen::ir::context: BindgenContext::add_item(Item { id: ItemId(7), local_id: Cell { value: None }, next_child_local_id: Cell { value: 1 }, canonical_name_cache: RefCell { value: None }, comment: None, annotations: Annotations { opaque: false, hide: false, use_instead_of: None, disallow_copy: false, private_fields: None, accessor_kind: None, constify_enum_variant: false }, parent_id: ItemId(1), kind: Function(Function { name: "test", mangled_name: Some("\u{1}?test@Foo@@QAEXXZ"), signature: ItemId(2), comment: None }), detect_derive_debug_cycle: Cell { value: false }, detect_derive_copy_cycle: Cell { value: false } }, declaration: Some(Cursor(test kind: CXXMethod, loc: test.hpp:2:8, usr: Some("c:@S@Foo@F@test#"))), loc: Some(Cursor(test kind: CXXMethod, loc: test.hpp:2:8, usr: Some("c:@S@Foo@F@test#")))
DEBUG:bindgen::ir::context: add_item_to_module: adding ItemId(7) as child of current module ItemId(0)
DEBUG:bindgen::ir::context: BindgenContext::add_item(Item { id: ItemId(1), local_id: Cell { value: None }, next_child_local_id: Cell { value: 1 }, canonical_name_cache: RefCell { value: None }, comment: None, annotations: Annotations { opaque: false, hide: false, use_instead_of: None, disallow_copy: false, private_fields: None, accessor_kind: None, constify_enum_variant: false }, parent_id: ItemId(0), kind: Type(Type { name: Some("Foo"), layout: Some(Layout { size: 1, align: 1, packed: false }), kind: Comp(CompInfo { kind: Struct, fields: BeforeComputingBitfieldUnits([]), template_params: [], methods: [Method { kind: Normal, signature: ItemId(7), is_const: false }], constructors: [], destructor: None, base_members: [], inner_types: [], inner_vars: [], has_vtable: false, has_destructor: false, has_nonempty_base: false, has_non_type_template_params: false, packed: false, found_unknown_attr: false, detect_derive_debug_cycle: Cell { value: false }, detect_derive_default_cycle: Cell { value: false }, detect_has_destructor_cycle: Cell { value: false }, is_forward_declaration: false }), is_const: false }), detect_derive_debug_cycle: Cell { value: false }, detect_derive_copy_cycle: Cell { value: false } }, declaration: Some(Cursor(Foo kind: StructDecl, loc: test.hpp:1:8, usr: Some("c:@S@Foo"))), loc: Some(Cursor(Foo kind: StructDecl, loc: test.hpp:1:8, usr: Some("c:@S@Foo")))
DEBUG:bindgen::ir::context: add_item_to_module: adding ItemId(1) as child of parent module ItemId(0)
DEBUG:bindgen::ir::context: No replacements to process
TRACE:bindgen::ir::named: constrain ItemId(2)
TRACE:bindgen::ir::named:   initially, used set is {}
TRACE:bindgen::ir::named:     other item: join with successors' usage
TRACE:bindgen::ir::named:       union with ItemId(6)'s usage: []
TRACE:bindgen::ir::named:       union with ItemId(4)'s usage: []
TRACE:bindgen::ir::named:   finally, used set is {}
TRACE:bindgen::ir::named: constrain ItemId(7)
TRACE:bindgen::ir::named:   initially, used set is {}
TRACE:bindgen::ir::named:     other item: join with successors' usage
TRACE:bindgen::ir::named:   finally, used set is {}
TRACE:bindgen::ir::named: constrain ItemId(6)
TRACE:bindgen::ir::named:   initially, used set is {}
TRACE:bindgen::ir::named:     other item: join with successors' usage
TRACE:bindgen::ir::named:   finally, used set is {}
TRACE:bindgen::ir::named: constrain ItemId(1)
TRACE:bindgen::ir::named:   initially, used set is {}
TRACE:bindgen::ir::named:     other item: join with successors' usage
TRACE:bindgen::ir::named:   finally, used set is {}
TRACE:bindgen::ir::named: constrain ItemId(4)
TRACE:bindgen::ir::named:   initially, used set is {}
TRACE:bindgen::ir::named:     other item: join with successors' usage
TRACE:bindgen::ir::named:       union with ItemId(1)'s usage: []
TRACE:bindgen::ir::named:   finally, used set is {}
TRACE:bindgen::ir::named: constrain ItemId(4)
TRACE:bindgen::ir::named:   initially, used set is {}
TRACE:bindgen::ir::named:     other item: join with successors' usage
TRACE:bindgen::ir::named:       union with ItemId(1)'s usage: []
TRACE:bindgen::ir::named:   finally, used set is {}
TRACE:bindgen::ir::named: constrain ItemId(6)
TRACE:bindgen::ir::named:   initially, used set is {}
TRACE:bindgen::ir::named:     other item: join with successors' usage
TRACE:bindgen::ir::named:   finally, used set is {}
TRACE:bindgen::ir::named: constrain ItemId(2)
TRACE:bindgen::ir::named:   initially, used set is {}
TRACE:bindgen::ir::named:     other item: join with successors' usage
TRACE:bindgen::ir::named:       union with ItemId(6)'s usage: []
TRACE:bindgen::ir::named:       union with ItemId(4)'s usage: []
TRACE:bindgen::ir::named:   finally, used set is {}
TRACE:bindgen::ir::named: constrain ItemId(7)
TRACE:bindgen::ir::named:   initially, used set is {}
TRACE:bindgen::ir::named:     other item: join with successors' usage
TRACE:bindgen::ir::named:   finally, used set is {}
TRACE:bindgen::ir::named: constrain ItemId(1)
TRACE:bindgen::ir::named:   initially, used set is {}
TRACE:bindgen::ir::named:     other item: join with successors' usage
TRACE:bindgen::ir::named:   finally, used set is {}
TRACE:bindgen::ir::named: constrain ItemId(0)
TRACE:bindgen::ir::named:   initially, used set is {}
TRACE:bindgen::ir::named:     other item: join with successors' usage
TRACE:bindgen::ir::named:   finally, used set is {}
DEBUG:bindgen::codegen: codegen: BindgenOptions { hidden_types: RegexSet { items: [], set: Some(RegexSet([])) }, opaque_types: RegexSet { items: [], set: Some(RegexSet([])) }, whitelisted_types: RegexSet { items: [], set: Some(RegexSet([])) }, whitelisted_functions: RegexSet { items: [], set: Some(RegexSet([])) }, whitelisted_vars: RegexSet { items: [], set: Some(RegexSet([])) }, bitfield_enums: RegexSet { items: [], set: Some(RegexSet([])) }, constified_enums: RegexSet { items: [], set: Some(RegexSet([])) }, constified_enum_modules: RegexSet { items: [], set: Some(RegexSet([])) }, builtins: false, links: [], emit_ast: false, emit_ir: false, emit_ir_graphviz: None, enable_cxx_namespaces: false, disable_name_namespacing: false, layout_tests: true, derive_debug: true, derive_default: false, unstable_rust: false, use_core: false, ctypes_prefix: None, namespaced_constants: true, msvc_mangling: false, convert_floats: true, raw_lines: [], clang_args: ["--target=i686-pc-win32", "test.hpp"], input_header: Some("test.hpp"), input_unsaved_files: [], dummy_uses: None, parse_callbacks: None, codegen_config: CodegenConfig { functions: true, types: true, vars: true, methods: false, constructors: true, destructors: true }, conservative_inline_namespaces: false, generate_comments: true, generate_inline_functions: false, whitelist_recursively: true, objc_extern_crate: false, enable_mangling: true, prepend_enum_name: true }
DEBUG:bindgen::codegen: <Item as CodeGenerator>::codegen: self = Item { id: ItemId(0), local_id: Cell { value: None }, next_child_local_id: Cell { value: 1 }, canonical_name_cache: RefCell { value: None }, comment: None, annotations: Annotations { opaque: false, hide: false, use_instead_of: None, disallow_copy: false, private_fields: None, accessor_kind: None, constify_enum_variant: false }, parent_id: ItemId(0), kind: Module(Module { name: Some("root"), kind: Normal, children: {ItemId(1), ItemId(2), ItemId(4), ItemId(6), ItemId(7)} }), detect_derive_debug_cycle: Cell { value: false }, detect_derive_copy_cycle: Cell { value: false } }
DEBUG:bindgen::codegen: <Module as CodeGenerator>::codegen: item = Item { id: ItemId(0), local_id: Cell { value: None }, next_child_local_id: Cell { value: 1 }, canonical_name_cache: RefCell { value: None }, comment: None, annotations: Annotations { opaque: false, hide: false, use_instead_of: None, disallow_copy: false, private_fields: None, accessor_kind: None, constify_enum_variant: false }, parent_id: ItemId(0), kind: Module(Module { name: Some("root"), kind: Normal, children: {ItemId(1), ItemId(2), ItemId(4), ItemId(6), ItemId(7)} }), detect_derive_debug_cycle: Cell { value: false }, detect_derive_copy_cycle: Cell { value: false } }
DEBUG:bindgen::codegen: <Item as CodeGenerator>::codegen: self = Item { id: ItemId(1), local_id: Cell { value: None }, next_child_local_id: Cell { value: 1 }, canonical_name_cache: RefCell { value: None }, comment: None, annotations: Annotations { opaque: false, hide: false, use_instead_of: None, disallow_copy: false, private_fields: None, accessor_kind: None, constify_enum_variant: false }, parent_id: ItemId(0), kind: Type(Type { name: Some("Foo"), layout: Some(Layout { size: 1, align: 1, packed: false }), kind: Comp(CompInfo { kind: Struct, fields: AfterComputingBitfieldUnits([]), template_params: [], methods: [Method { kind: Normal, signature: ItemId(7), is_const: false }], constructors: [], destructor: None, base_members: [], inner_types: [], inner_vars: [], has_vtable: false, has_destructor: false, has_nonempty_base: false, has_non_type_template_params: false, packed: false, found_unknown_attr: false, detect_derive_debug_cycle: Cell { value: false }, detect_derive_default_cycle: Cell { value: false }, detect_has_destructor_cycle: Cell { value: false }, is_forward_declaration: false }), is_const: false }), detect_derive_debug_cycle: Cell { value: false }, detect_derive_copy_cycle: Cell { value: false } }
DEBUG:bindgen::codegen: <Type as CodeGenerator>::codegen: item = Item { id: ItemId(1), local_id: Cell { value: None }, next_child_local_id: Cell { value: 1 }, canonical_name_cache: RefCell { value: None }, comment: None, annotations: Annotations { opaque: false, hide: false, use_instead_of: None, disallow_copy: false, private_fields: None, accessor_kind: None, constify_enum_variant: false }, parent_id: ItemId(0), kind: Type(Type { name: Some("Foo"), layout: Some(Layout { size: 1, align: 1, packed: false }), kind: Comp(CompInfo { kind: Struct, fields: AfterComputingBitfieldUnits([]), template_params: [], methods: [Method { kind: Normal, signature: ItemId(7), is_const: false }], constructors: [], destructor: None, base_members: [], inner_types: [], inner_vars: [], has_vtable: false, has_destructor: false, has_nonempty_base: false, has_non_type_template_params: false, packed: false, found_unknown_attr: false, detect_derive_debug_cycle: Cell { value: false }, detect_derive_default_cycle: Cell { value: false }, detect_has_destructor_cycle: Cell { value: false }, is_forward_declaration: false }), is_const: false }), detect_derive_debug_cycle: Cell { value: false }, detect_derive_copy_cycle: Cell { value: false } }
DEBUG:bindgen::codegen: <CompInfo as CodeGenerator>::codegen: item = Item { id: ItemId(1), local_id: Cell { value: None }, next_child_local_id: Cell { value: 1 }, canonical_name_cache: RefCell { value: None }, comment: None, annotations: Annotations { opaque: false, hide: false, use_instead_of: None, disallow_copy: false, private_fields: None, accessor_kind: None, constify_enum_variant: false }, parent_id: ItemId(0), kind: Type(Type { name: Some("Foo"), layout: Some(Layout { size: 1, align: 1, packed: false }), kind: Comp(CompInfo { kind: Struct, fields: AfterComputingBitfieldUnits([]), template_params: [], methods: [Method { kind: Normal, signature: ItemId(7), is_const: false }], constructors: [], destructor: None, base_members: [], inner_types: [], inner_vars: [], has_vtable: false, has_destructor: false, has_nonempty_base: false, has_non_type_template_params: false, packed: false, found_unknown_attr: false, detect_derive_debug_cycle: Cell { value: false }, detect_derive_default_cycle: Cell { value: false }, detect_has_destructor_cycle: Cell { value: false }, is_forward_declaration: false }), is_const: false }), detect_derive_debug_cycle: Cell { value: false }, detect_derive_copy_cycle: Cell { value: false } }
DEBUG:bindgen::codegen: <Item as CodeGenerator>::codegen: self = Item { id: ItemId(2), local_id: Cell { value: None }, next_child_local_id: Cell { value: 1 }, canonical_name_cache: RefCell { value: None }, comment: None, annotations: Annotations { opaque: false, hide: false, use_instead_of: None, disallow_copy: false, private_fields: None, accessor_kind: None, constify_enum_variant: false }, parent_id: ItemId(0), kind: Type(Type { name: None, layout: Some(Layout { size: 1, align: 4, packed: false }), kind: Function(FunctionSig { return_type: ItemId(6), argument_types: [(Some("this"), ItemId(4))], is_variadic: false, abi: Unknown(4) }), is_const: false }), detect_derive_debug_cycle: Cell { value: false }, detect_derive_copy_cycle: Cell { value: false } }
DEBUG:bindgen::codegen: <Type as CodeGenerator>::codegen: item = Item { id: ItemId(2), local_id: Cell { value: None }, next_child_local_id: Cell { value: 1 }, canonical_name_cache: RefCell { value: None }, comment: None, annotations: Annotations { opaque: false, hide: false, use_instead_of: None, disallow_copy: false, private_fields: None, accessor_kind: None, constify_enum_variant: false }, parent_id: ItemId(0), kind: Type(Type { name: None, layout: Some(Layout { size: 1, align: 4, packed: false }), kind: Function(FunctionSig { return_type: ItemId(6), argument_types: [(Some("this"), ItemId(4))], is_variadic: false, abi: Unknown(4) }), is_const: false }), detect_derive_debug_cycle: Cell { value: false }, detect_derive_copy_cycle: Cell { value: false } }
DEBUG:bindgen::codegen: <Item as CodeGenerator>::codegen: self = Item { id: ItemId(4), local_id: Cell { value: None }, next_child_local_id: Cell { value: 1 }, canonical_name_cache: RefCell { value: None }, comment: None, annotations: Annotations { opaque: false, hide: false, use_instead_of: None, disallow_copy: false, private_fields: None, accessor_kind: None, constify_enum_variant: false }, parent_id: ItemId(0), kind: Type(Type { name: None, layout: None, kind: Pointer(ItemId(1)), is_const: false }), detect_derive_debug_cycle: Cell { value: false }, detect_derive_copy_cycle: Cell { value: false } }
DEBUG:bindgen::codegen: <Type as CodeGenerator>::codegen: item = Item { id: ItemId(4), local_id: Cell { value: None }, next_child_local_id: Cell { value: 1 }, canonical_name_cache: RefCell { value: None }, comment: None, annotations: Annotations { opaque: false, hide: false, use_instead_of: None, disallow_copy: false, private_fields: None, accessor_kind: None, constify_enum_variant: false }, parent_id: ItemId(0), kind: Type(Type { name: None, layout: None, kind: Pointer(ItemId(1)), is_const: false }), detect_derive_debug_cycle: Cell { value: false }, detect_derive_copy_cycle: Cell { value: false } }
DEBUG:bindgen::codegen: <Item as CodeGenerator>::codegen: self = Item { id: ItemId(6), local_id: Cell { value: None }, next_child_local_id: Cell { value: 1 }, canonical_name_cache: RefCell { value: None }, comment: None, annotations: Annotations { opaque: false, hide: false, use_instead_of: None, disallow_copy: false, private_fields: None, accessor_kind: None, constify_enum_variant: false }, parent_id: ItemId(0), kind: Type(Type { name: Some("void"), layout: None, kind: Void, is_const: false }), detect_derive_debug_cycle: Cell { value: false }, detect_derive_copy_cycle: Cell { value: false } }
DEBUG:bindgen::codegen: <Type as CodeGenerator>::codegen: item = Item { id: ItemId(6), local_id: Cell { value: None }, next_child_local_id: Cell { value: 1 }, canonical_name_cache: RefCell { value: None }, comment: None, annotations: Annotations { opaque: false, hide: false, use_instead_of: None, disallow_copy: false, private_fields: None, accessor_kind: None, constify_enum_variant: false }, parent_id: ItemId(0), kind: Type(Type { name: Some("void"), layout: None, kind: Void, is_const: false }), detect_derive_debug_cycle: Cell { value: false }, detect_derive_copy_cycle: Cell { value: false } }
DEBUG:bindgen::codegen: <Item as CodeGenerator>::codegen: self = Item { id: ItemId(7), local_id: Cell { value: None }, next_child_local_id: Cell { value: 1 }, canonical_name_cache: RefCell { value: None }, comment: None, annotations: Annotations { opaque: false, hide: false, use_instead_of: None, disallow_copy: false, private_fields: None, accessor_kind: None, constify_enum_variant: false }, parent_id: ItemId(1), kind: Function(Function { name: "test", mangled_name: Some("\u{1}?test@Foo@@QAEXXZ"), signature: ItemId(2), comment: None }), detect_derive_debug_cycle: Cell { value: false }, detect_derive_copy_cycle: Cell { value: false } }
DEBUG:bindgen::codegen: <Function as CodeGenerator>::codegen: item = Item { id: ItemId(7), local_id: Cell { value: None }, next_child_local_id: Cell { value: 1 }, canonical_name_cache: RefCell { value: None }, comment: None, annotations: Annotations { opaque: false, hide: false, use_instead_of: None, disallow_copy: false, private_fields: None, accessor_kind: None, constify_enum_variant: false }, parent_id: ItemId(1), kind: Function(Function { name: "test", mangled_name: Some("\u{1}?test@Foo@@QAEXXZ"), signature: ItemId(2), comment: None }), detect_derive_debug_cycle: Cell { value: false }, detect_derive_copy_cycle: Cell { value: false } }

@fitzgen emilio told me you are investigating this, but I don't see any issue open, nor any pr related, so I just open one in case we forgot. This is a blocker for stylo, as far as I can see.

Yeah, and the regressing PR is https://github.com/servo/rust-bindgen/pull/770. I guess I can also look into it tomorrow.

Thanks for filing this.
First half of a fix is at #827.
If I leave the --target in the test case, I get this panic:
thread 'main' panicked at 'Invalid or unknown abi 4 for function "_bindgen_ty_id_2" FunctionSig { return_type: ItemId(6), argument_types: [(Some("this"), ItemId(4))], is_variadic: false, abi: Unknown(4) }', /home/fitzgen/rust-bindgen/target/debug/build/bindgen-60472a70a279b99b/out/codegen.rs:5987
stack backtrace:
   0: std::sys::imp::backtrace::tracing::imp::unwind_backtrace
             at /checkout/src/libstd/sys/unix/backtrace/tracing/gcc_s.rs:49
   1: std::sys_common::backtrace::_print
             at /checkout/src/libstd/sys_common/backtrace.rs:71
   2: std::panicking::default_hook::{{closure}}
             at /checkout/src/libstd/sys_common/backtrace.rs:60
             at /checkout/src/libstd/panicking.rs:355
   3: std::panicking::default_hook
             at /checkout/src/libstd/panicking.rs:371
   4: std::panicking::rust_panic_with_hook
             at /checkout/src/libstd/panicking.rs:549
   5: std::panicking::begin_panic
             at /checkout/src/libstd/panicking.rs:511
   6: std::panicking::begin_panic_fmt
             at /checkout/src/libstd/panicking.rs:495
   7: <bindgen::ir::function::FunctionSig as bindgen::codegen::TryToRustTy>::try_to_rust_ty
             at ./target/debug/build/bindgen-60472a70a279b99b/out/codegen.rs:5987
   8: bindgen::codegen::utils::rust_fndecl_from_signature
             at ./target/debug/build/bindgen-60472a70a279b99b/out/codegen.rs:7880
   9: <bindgen::ir::function::Function as bindgen::codegen::CodeGenerator>::codegen
             at ./target/debug/build/bindgen-60472a70a279b99b/out/codegen.rs:6031
  10: <bindgen::ir::item::Item as bindgen::codegen::CodeGenerator>::codegen
             at ./target/debug/build/bindgen-60472a70a279b99b/out/codegen.rs:1480
  11: <bindgen::ir::module::Module as bindgen::codegen::CodeGenerator>::codegen::{{closure}}
             at ./target/debug/build/bindgen-60472a70a279b99b/out/codegen.rs:1511
  12: <bindgen::ir::module::Module as bindgen::codegen::CodeGenerator>::codegen
             at ./target/debug/build/bindgen-60472a70a279b99b/out/codegen.rs:1535
  13: <bindgen::ir::item::Item as bindgen::codegen::CodeGenerator>::codegen
             at ./target/debug/build/bindgen-60472a70a279b99b/out/codegen.rs:1476
  14: bindgen::codegen::codegen::{{closure}}
             at ./target/debug/build/bindgen-60472a70a279b99b/out/codegen.rs:6285
  15: bindgen::ir::context::BindgenContext::gen
             at src/ir/context.rs:761
  16: bindgen::codegen::codegen
             at ./target/debug/build/bindgen-60472a70a279b99b/out/codegen.rs:6263
  17: bindgen::Bindings::generate
             at src/lib.rs:1200
  18: bindgen::Builder::generate
             at src/lib.rs:816
  19: bindgen::main::{{closure}}
             at src/main.rs:57
  20: std::panicking::try::do_call
             at /checkout/src/libstd/panicking.rs:454
  21: __rust_maybe_catch_panic
             at /checkout/src/libpanic_unwind/lib.rs:98
  22: std::panicking::try
             at /checkout/src/libstd/panicking.rs:433
  23: std::panic::catch_unwind
             at /checkout/src/libstd/panic.rs:361
  24: bindgen::main
             at src/main.rs:56
  25: __rust_maybe_catch_panic
             at /checkout/src/libpanic_unwind/lib.rs:98
  26: std::rt::lang_start
             at /checkout/src/libstd/panicking.rs:433
             at /checkout/src/libstd/panic.rs:361
             at /checkout/src/libstd/rt.rs:59
  27: main
  28: __libc_start_main
  29: _start

authors: emilio fitzgen upsuper

repo: servo/rust-bindgen


text:
excuseme how can i create a new .xlsx file?

thanks for the very good lib.
i am try to import/export xlsx files with my flutter app, how can i create a new .xlsx file?
thank you!

This library is only a codec.
If you need to create an empty file, I suggest you to embed a template file in your application and to use it as empty file by copying it.

ok,thank you,that a simple way.

authors: sestegra taihangg


text:
Add option to hide logseq tabs

I love using this plugin to reduce clutter while writing in logseq. However, I often use the logseq-tabs plugin too, which results in some clutter even when focus mode is enabled.

It would be great if there was an option to toggle the visibility of these tabs too.

Currently, I'm resorting to manually hiding these tabs through the inspector. Here's how that looks

@aadilayub thank you for the feature request.  I will take a look at this.

@aadilayub this is now possible with the new version of the focus plugin.  Please update and give it a try.  I used #logseq-tabs_lsp_main

authors: aadilayub sethfair

repo: sethfair/logseq-focus-mode


text:
Implement odd? for the Integer

This should tick one more box in #201. @TheGrizzlyDev I've decided to open this PR just so we don't pollute the issue thread. Like I said in discord, this is all quite new to me.
I'm also making this a draft just to make it clear this is not ready for reviewing and merging.
That being said, I did try to lookup how to make odd work for Bignums by looking at the MRI, but I don't think I'm actually implementing odd right even for a simple Fixnum
~Basing myself on the other methods, I added and IntegerValue argument to odd, in order to test wether it's a bignum, but I'm unsure if that's the correct thing to do.~
~I've not actually implemented an odd method for Bignum because I'm still trying to understand what a Bignum is and what does it mean to ask wether it is an odd number or not, in the context of computing: from the MRI it would seem that I need to take a specific digit (the left most, apparently) from the number and & it with 1 and that would mean it's odd. Is that really it?~
EDIT: I've since done some research and I believe I found what could be the right way to test wether a bignum is odd or not. What I do is take the bignum string, get the last char, convert it to an int and I mod that with 2 and test wether it is different from 0.
Not sure if this is right, but it seemed to be what MRI does and bignums seem to be the complement of a value, at least in the case of the fixnum specs.
The case for the bignum context I'll add in a comment below, as it's quite lengthy

So, some specs still fail and, apparently, for odd reasons.

There are 2 specs that call (-bignum_value(num)) on 0 and 1. What I find weird is that, in all my runs, BOTH end up calling the is_odd method in the IntegerValue class and the value of m_integer is 1 for both. I tried running this method in irb but I do not get the same result. I get, as one would expect, the value of calling bignum(0) but with a minus sign. However, if I puts the value of (-bignum_value(0)) or (-bignum_value(1)) I get 1, so there's something odd between running the method in irb and how it's run in the context of the spec...

Also, all of the specs in the context "bignum" block fail. Here, there are different huge numbers being generated, however, once execution goes through the cpp code, it never calls is_odd for BignumValue but only for IntegerValue and there, the value of m_integer is always -9223372036854775808, no matter what number it actually is. Maybe it's a limitation on the side of printf? I still don't know

@mateusdeap yeah, the idea looks good to me :) Are the problems above still there? If so I can try having a look at it later

@TheGrizzlyDev yes. I didn't have much time to figure them out since I posted my comment.

@mateusdeap this is a good start. In order to get the -bignum_value(num) thing to work, we would need to implement BignumValue::negate as a virtual method too. Currently, when - (negate) is called, the Integer version is being called, and it doesn't properly handle the bignum.
It is a similar problem for the other tests, which use num**power. The ** operator is bound to the pow() method on Integer, which has not yet been made Bignum-aware. For an example of what I mean by that, check out the IntegerValue::add method. You will see it properly promotes an overflowed result to a Bignum. The pow (**) method doesn't do that yet.
If I were you, I would probably comment out the failing tests, adding a note like NATFIXME: need to work on IntegerValue::pow() so it promotes to Bignum. Or something like that.

I see. Will do.

So, I've commented the specs that depend either on IntegerValue::negate or IntegerValue::pow and added comment explaining that once those are fixed, these should be revisited

So, @seven1m and @TheGrizzlyDev, I've commented the specs that depend either on IntegerValue::negate or IntegerValue::pow and added comments explaining that once those are fixed, these should be revisited

Looks great, but a bit in contrast with @seven1m instead of commenting out I usually prefer using xit to exclude the test so that it's marked as skipped.

Yeah, I said "comment out" but I guess I meant skip. Sorry!

Hm... true. Had forgotten that that was a possibility. And indeed, much better practice. I'll just fix it up real quick

I asked this in the discord, but maybe you'll see it sooner here: Is there a way to mark a specific assertion as pending? I tried RSpec's pending and skip, but I get NoMethodErrors. Any advice? Or should I just leave them commented?

I asked this in the discord, but maybe you'll see it sooner here: Is there a way to mark a specific assertion as pending? I tried RSpec's pending and skip, but I get NoMethodErrors. Any advice? Or should I just leave them commented?

All the testing machinery is rewritten in Natalie (somewhere under the test folder) so you could just add that yourself, or for the sake of simplicity just using xit instead of it now and leaving the comments with NATFIXME, what do you think about it?

It would be good to have some specs for this yeah?

@seven1m So, considering the conversation I had with @TheGrizzlyDev, we decided to mark them all pending while he added the methods to only mark specific assertions as pending in specs.
However, I could just revert the last commit and have the second it block marked as pending and the first one would run, but 2 of its assertions would be commented out.

@seven1m So, considering the conversation I had with @TheGrizzlyDev, we decided to mark them all pending while he added the methods to only mark specific assertions as pending in specs.
However, I could just revert the last commit and have the second it block marked as pending and the first one would run, but 2 of its assertions would be commented out.

I am honestly not a fan of a slightly divergent spec (other than just either skipping or completely commenting out) so I was thinking of a slightly different solution, can you add more tests (not the ones from ruby/spec) in the test package? Just covering the things you know to be working and have implemented? @seven1m how does this sound?

Yeah, sure. No probs.

Everyone, I'm sorry we killed the momentum on this. I went ahead and tweaked the specs so we can run a bit of something and merged it. Thanks for your patience @mateusdeap, and please, keep up the work now that we ironed out some kinks in the process. :hugs:

Very cool first PR @mateusdeap !

Hey, no worries, and thanks a lot! As soon as I can I'll try and maybe tackle the methods that need fixing for the specs here to work!

authors: TheGrizzlyDev mateusdeap seven1m


text:
导入抢救下来的内容

这个功能是用来解决问题的吗？ / Is your feature request related to a problem? Please describe.
昨天就了很多东西下来，希望可以汇入APP阅读，这个APP的UI设计非常好，希望能把抢救下来的本子汇入。
描述你想要的解决方法 / Describe the solution you'd like
描述应通过何种行为来解决这个问题。
具体而言可以将图片汇入，依照文件夹明显示
-APP目录
--本子名
---1.jpg
---2.jpg...
且希望可以依照编号大小排序显示封面

你需要的是一个本地看图软件，比如快图
导入ehviewer的必要条件是拥有.ehviewer文件，这个文件记录了画廊的id和key，以及每页的key

抱歉，我并不打算让这个应用支持读取本地图片。


text:
Added support for IPv6 connections

Pythons DatagramHandler does not support IPv6 connections.
See Python issue #14855
As a workaround I've overrode makeSocket, and use getsockaddr
to determine the address family of the address before creating the
socket

Hey Thomas thanks for the patch. Unfortunately the method you're overriding is pretty different on py2 and py3 and I'm not comfortable integrating this as I don't understand the change. Also, the corner case handling doesn't look right.

Closing this PR since it's not active.

authors: severb tbartelmess tusharmakkar08

repo: severb/graypy


text:
fix: Fixed compatibility with openssl-probe

https://github.com/alexcrichton/openssl-probe/issues/16
The newer version of openssl-probe has a breaking change (0.1.3 has been yanked, but ultimately it may release a new version anyway, so it is better to be prepared)

It seems like we would make that change when upgrading to a new breaking release of the library, not speculatively now.

Sounds good. Let's keep this PR closed for now, and I will get back once 0.2 is released.

authors: frol sfackler

repo: sfackler/rust-native-tls


text:
Add initial Socratic 37 reading list

I might have missed some interesting discussion pieces, but this is a starting point.
@casey I'm guessing that you might be uncomfortable w/ having an ordinals dashboard under chain weather, but I do think it's an important part of Bitcoin and it is worth spending a minute on.  Like it or not, it does impact the mempool and other aspects of bitcoin even for non-ordinal theorists.

Dope, looks great! If I have time I'll try to add some more stuff. I think ordinals is contributing enough to on-chain weather that it's pretty reasonable to include it 😅

authors: EvanWinget casey

repo: sfbitcoindevs/sfbitcoindevs


text:
Use ?coords= instead of ?ll= as the endpoint for geographic queries.

I think that it isn't immediately obvious what ?ll represents both because it is extremely abbreviated and because the double ell could be mistaken for other characters.  On my system ll and II are so similar that they're pretty much indistinguishable.  ?coords= is clearer.
Any thoughts?

Needs to be updated in code.

Changed in code. Closing.

authors: arenius diafygi

repo: sfbrigade/ballotapi

license: Unlicense


text:
rails_admin when editing a belongs_to association display user name instead of User id

I'm having a problem with a belongs_to association on a model and being able to edit it with the appropriate username/fullname instead of User 1, User 2, etc.  I posted this on Stack but hasn't gotten any hits.
Here is my rails_admin.rb initializer
RailsAdmin.config do |config|
  config.authorize_with do |controller|
    unless current_user.role == 'admin'
      redirect_to main_app.root_path
      flash[:error] = "You are not an admin"
    end
  end

  config.model 'ClockEvent' do
  configure :user, :belongs_to_association
  configure :station, :belongs_to_association
    list do
      field :clock_in
      field :clock_out
      field :user do
        pretty_value do
            value.try(:full_name)
        end
      end
      field :station do
        pretty_value do
            value.try(:station_name)
        end
      end
      field :created_at
      field :updated_at
    end

    show do
      field :clock_in
      field :clock_out
      field :user do
        pretty_value do
            value.try(:full_name)
        end
      end
      field :station do
        pretty_value do
            value.try(:station_name)
        end
      end
      field :comment
      field :hr_comment
      field :created_at
      field :updated_at
    end

    edit do
      field :clock_in
      field :clock_out
      field :user do
        pretty_value do
            value.try(:user).try(:full_name)
        end
      end
      field :station do
        pretty_value do
            value.try(:station_name)
        end
      end
      field :comment
      field :hr_comment
      field :created_at
      field :updated_at
    end
    export do; end
    create do; end
    update do; end
 end
end

As you can see on the show and list actions I'm using pretty_value and it displays the user.full_name and the station.station_name no problem.  But the main issue I'm having is with the edit action being able to display a drop down of user's with full names instead of User #1 User #2 etc.
I know this probably shouldn't be on the issue list, but the docs for rails_admin don't point me in the right direction and stack is pretty much useless.
If you need any further code or examples, please let me know.

I figured this out using enum.
edit do
  	  field :clock_in
  	  field :clock_out
      field :user_id, :enum do
        enum do
          User.employee.collect {|p| [p.full_name, p.id]}
      end
    end
  	  field :station_id, :enum do
        enum do
          Station.all.collect {|p| [p.station_name, p.id]}
      end
    end

Hey @teknull  I tried your solution but I am still getting object text inside dropdown, what am I doing wrong ? Please check screen shot :https://postimg.org/image/uda502c7r/

After I restarted server rails s now its okay, Works!  Thank you!

What should be added to the code to indicate the value that was previously stored, and not the empty input

why it's not working when i run server on production mode?

authors: kasianchuk raniaakh shakycode teknull zirexba


text:
undefined method Per Page Kaminari

Kaminari.configure do |config|
  config.page_method_name = :per_page_kaminari
end

This is giving me an error
undefined method `per_page_kaminari'
And when I remove the file I get this error:
undefined method `per' for #<ActiveRecord::Relation:0x007fc43bcc65a8> #1420

What is this?

#3227 will address this.

authors: Bdoom mshibuya


text:
Battery Sensor to use for Energy Dashboard

Good Day,
Thank you for this awesome integration. Loving it.
I am having a issue where I think not all my battery sensors are available for the energy dashboard.
These are the only ones showing, but they are reporting zero.

Is there something that I am missing?
Also, can you maybe give the sensors that you use for your dashboard? All these sensors are quire confusing to me and I am not 100% sure which ones represent what.
Any help would be much appreciated
EDIT:
I have 282 entities available:

And this is the firmware I am running (Updated to the latest possible)

Thank you for providing the additional information when opening this issue.
Currently I'm using the following entities to track my batteries usage:

Whereby the acin2 to inverter doesn't see any current (my multiplus doesn't have an acin2).
Otherwise I couldn't add the feedin and the self consumption (Since HA doesn't allow for multiple in / out trackers in the same battery system).
Do you have an system with an can-bms battery? (Still waiting on shipping for my can-bms battery and currently using an voltage based highly inaccurate battery monitoring through the multiplusses battery monitoring).
Could you also provide me with a screenshot of your GX device available modbus devices? (under "menu" -> "settings" -> "services" -> "modbus tcp" -> "available services".
This will help in determining what entites should work best for battery tracking in your setup.

Thanks for the prompt response:
Below the modbus devices.

System Overview:

Grid is currently of (due to loadshedding, perks of living in South Africa)
I assume AC-in means from Grid and AC-Out is the AC Loads of my house?

Thank you for the additional information.
Yes the AC-in is GRID/GENERATOR
AC-OUT is LOADS
I just checked the victron modbus spec for any KWH based registers that you could use in your dashboard.
However, it seems that the battery unit doesn't expose KWH counters.
Currently (this might change if victron releases V3 of the gateway and the new modbus spec definition) your best option is to replicate my configuration with the vebus entities.

Hi, I hand coded all of this (there was no repository so great work). You will need to integrate the energy stats for the energy page
Something like
`  #total energy to battery

platform: integration
source: sensor.battery_input_energy
name: total_battery_input_energy
unit_prefix: k
method: left
#or right or trapezoidal for methods
round: 3`

Thank you for the additional information. Yes the AC-in is GRID/GENERATOR AC-OUT is LOADS
I just checked the victron modbus spec for any KWH based registers that you could use in your dashboard. However, it seems that the battery unit doesn't expose KWH counters. Currently (this might change if victron releases V3 of the gateway and the new modbus spec definition) your best option is to replicate my configuration with the vebus entities.

Does this include Lynx 1000A Shunt?

It seems like the entities are present but have 0 values:

Or should I be using a different entity for tracking battery consumption?

Thank you for providing the additional information when opening this issue. Currently I'm using the following entities to track my batteries usage:
Whereby the acin2 to inverter doesn't see any current (my multiplus doesn't have an acin2). Otherwise I couldn't add the feedin and the self consumption (Since HA doesn't allow for multiple in / out trackers in the same battery system).
Do you have an system with an can-bms battery? (Still waiting on shipping for my can-bms battery and currently using an voltage based highly inaccurate battery monitoring through the multiplusses battery monitoring).
Could you also provide me with a screenshot of your GX device available modbus devices? (under "menu" -> "settings" -> "services" -> "modbus tcp" -> "available services". This will help in determining what entites should work best for battery tracking in your setup.

Do these vebus sensors account for MPPT charge controllers and the power going straight into the batteries that doesn't pass through the inverters?

I have a BMS CAN battery (EG4 Communications Hub) and the battery charged/discharged values are not incrementing:

authors: CTRDevelopments mr-birdie mtucker502 sfstar

repo: sfstar/hass-victron


text:
build doc fix for sphinx4+mathjax2

This updates conf.py to support spinx4 using mathjax2, furthermore obsolet add_stylesheet() is fixed. By this the RTD build should work again.

Hello @fs446! Thanks for opening this PR. We checked the lines you've touched for PEP 8 issues, and found:

In the file doc/conf.py:

Line 100:80: E501 line too long (84 > 79 characters)
Line 103:80: E501 line too long (95 > 79 characters)

repo: sfstoolbox/sfs-python


text:
RuntimeError: Timed out in bb8

What language are you using?
Replace this text with the Rust or Python.
What version are you using?
Replace this text with the version.
What database are you using?
e.g. PostgreSQL, MySQL
What dataframe are you using?
e.g. Pandas, Arrow
Can you describe your bug?
Give a high level description of the bug.
What are the steps to reproduce the behavior?
If possible, please include a minimal simple example including:
Database setup if the error only happens on specific data or data type
Table schema and example data
Example query / code
I use pandas to connect like this, it is normal,
from mssql import connect
host = 'host'
port = '1433'
user = 'use'
password = 'pwd'
database = 'AIS20180930224051'
conn = connect(host=host, port=port,user=user, password=password,database=database,charset='utf8')
df = read_sql(sql_str,conn)

but when I try to use connector X to connect, the following error occurs:
conn = 'mssql://use:pwd@host:1433/database?encrypt=true&trusted_connection=true'

What is the error?

Hi @WheaeSong , the error means that connectorx cannot connect to your database. It seems like the database in your connection string should be AIS20180930224051 instead of `database. Also, if you are using azure database, then currently we do not support active directory authentication on it: #308.

authors: WheaeSong wangxiaoying

repo: sfu-db/connector-x


text:
🛑 Civitas RRHH is down

In 6a81177, Civitas RRHH (http://civitas.catamarcaciudad.gob.ar:8080/GRH_CATA/forms/login.jsp) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Civitas RRHH is back up in 65c968a.

repo: sfvc/upptime


text:
定时提醒与自动回复

在config里面把is_auto_relay改成false之后发现运行的时候，虽然确实不会自动回复了，但是还是会显示start auto replying的情况。并且在显示Staat auto replying 的情况下不会发送定时提醒，手动CTRL+c倒是可以让它发送，但是就失去了让它定时发送的意义了。
PS：在config里面应该是auto_reply，写的是relay了

start auto replying 这句话是 itchat 的系统日志。不设置自动回复，定时提醒也是可以用的。这两个功能是互相独立的。


text:
Select Component doesn't work with formik

<Formik
                    initialValues={{
                      areas: "",
                      latitude: location.latitude,
                      longitude: location.longitude,
                      selectedCrops: "",
                    }}
                    onSubmit={(values, _) => {
                      console.log(values);
                    }}
                    validationSchema={Yup.object().shape({
                      // areas in decimal
                      areas: Yup.number().required().positive(),
                      // latitude in decimal
                      latitude: Yup.number().required(),
                      // longitude in decimal
                      longitude: Yup.number().required(),
                      // selectedCrops is a select component
                      selectedCrops: Yup.string().required(),
                    })}
                  >
                    {({touched, errors, setFieldValue, values}) => (
                      <Form className="max-w-md mx-auto bg-white rounded">

                                Latitude

                              <Field
                                type="text"
                                id="latitude"
                                name="latitude"
                                className={`appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline ${
                                  errors.latitude && touched.latitude
                                    ? "ring-2 ring-red-500"
                                    : ""
                                }`}
                                disabled
                              />
                              <ErrorMessage
                                name="latitude"
                                component="div"
                                className="text-red-500 text-sm mt-1"
                              />

                                Longitude

                              <Field
                                disabled
                                type="text"
                                id="longitude"
                                name="longitude"
                                className={`appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline ${
                                  errors.longitude && touched.longitude
                                    ? "ring-2 ring-red-500"
                                    : ""
                                }`}
                              />
                              <ErrorMessage
                                name="longitude"
                                component="div"
                                className="text-red-500 text-sm mt-1"
                              />

                            Area (in acres)

                          <Field
                            id="areas"
                            name="areas"
                            type="number"
                            className={`appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline ${
                              errors.areas && touched.areas
                                ? "ring-2 ring-red-500"
                                : ""
                            }`}
                          />
                          <ErrorMessage
                            name="areas"
                            component="div"
                            className="text-red-500 text-sm mt-1"
                          />

                            Select an Option

                          <Select
                            id="selectedCrops"
                            name="selectedCrops"
                            value={values.selectedCrops}
                            onChange={(value) =>
                              setFieldValue("selectedCrops", value)
                            }
                          >
                            <SelectTrigger className="w-full">
                              <SelectValue placeholder="Select Crop Types" />
                            </SelectTrigger>
                            <SelectContent>
                              <SelectItem value="rice">

Rice

                              </SelectItem>
                              <SelectItem value="wheat">

Wheat

                              </SelectItem>
                              <SelectItem value="corn">

Corn

                              </SelectItem>
                            </SelectContent>
                          </Select>

                        <Button
                          type="submit"
                          className="w-full bg-green-500 hover:bg-green-500 text-white hover:text-white font-bold py-2 px-4 rounded focus:outline-none focus:shadow-outline"
                        >
                          Submit
                        </Button>
                      </Form>
                    )}
                  </Formik>

The form doesn't seem to get submitted

 <Select
                            id="selectedCrops"
                            name="selectedCrops"
                            defaultValue={values.selectedCrops}
                            onValueChange={(value) => {
                              setFieldValue("selectedCrops", value);
                            }}
                          >
                            <SelectTrigger className="w-full">
                              <SelectValue placeholder="Select Crop Types" />
                            </SelectTrigger>
                            <SelectContent>
                              <SelectItem value="rice">

Rice

                              </SelectItem>
                              <SelectItem value="wheat">

Wheat

                              </SelectItem>
                              <SelectItem value="corn">

Corn

                              </SelectItem>
                            </SelectContent>
                          </Select>

It got fixed with the updated parameters, which i overlooked. Issue is solved

repo: shadcn-ui/ui