Make examples simpler, cleaner, more focused and future-facing?

It might be just me, I find this example too "hacky" for what it does:
http://www.freecodecamp.com/challenges/add-different-padding-to-each-side-of-an-element
This element

margin

is put outside of the yellow box, yet it is "brutally" pushed into it by applying the negative margin. Note that the exercise is about padding, so that additional complexity feels distracting with no clear purpose.
Even worse - this element labels "margin", whereas actually none of the other boxes have any margin declared. Which is really confusing.
The current web development trend is towards reusable web components, which is being more and more promoted and enforced by frameworks. In contrast, the given example here embrace the pixel hard-coded design practices that will influence the beginners who learn from it, making it much harder for them later to un-learn it in favour of more flexible and future-facing design patterns. They will be hit hard by the massive variety of devices with varying width they will want to support.
Way too many sites out there are broken on way too many devices, which is frustrating for both users and developers. Is there any reason not to embrace the flexibility right from the start and use percentages, em's and other flexible units?
I understand this example is meant for beginners and is aimed to be as simple as possible, but ironically it actually isn't.
The simplest example really would only need two boxes:

one for comparison and
one working draft.

RE: "Add Different Padding"
Yes, it looks a bit hacky to us, too . . . but the key here is to clearly illustrate a specific concept, hopefully in a clear and unambiguous way.  For the specific area that we're approaching, padding, I think it works.
Negative margins exist and are widely supported by every browser.  I am not aware of any general guideline that suggests that you should not use it.
In fact: https://www.smashingmagazine.com/2009/07/the-definitive-guide-to-using-negative-margins/

Negative margins are not a hack

This is especially true. It’s because of not understanding negative margins properly that it got its hackish image. It only becomes a hack if you use it to fix an error you made elsewhere.
We are, of course, open to suggestion.  If you would like to propose an alternative illustration of the concept, show us some code.

I think you misunderstand the state of users coming into this content.  We're talking about people who have, in many cases, literally never even seen HTML at all.  We're talking about true novices.  They need to establish a basis of understanding before they can move on to more advanced topics.
I had to google "Reusable Web Components", because I'd never heard of them.  Can I Use shows very poor support for several key enabling technologies.  Regardless of the support, those are pretty advanced topics which require a much higher level of understanding then a novice is likely to have - in particular basic JavaScript, which occurs later in the curriculum.
It's all fine and dandy to come in and make these broad suggestions, but I really don't see any clear way for us to implement them.  If you're passionate about them then, well, we're an open source project and we accept Pull Requests.
Thanks and Happy Coding!

Thanks @SaintPeter for taking your time to answer!

RE: "Add Different Padding"
Yes, it looks a bit hacky to us, too . . . but the key here is to clearly illustrate a specific concept, hopefully in a clear and unambiguous way. For the specific area that we're approaching, padding, I think it works.

Glad you agree it is hacky. But I'm not following how this margin addition illustrates padding, which is a different concept?

Negative margins exist and are widely supported by every browser. I am not aware of any general guideline that suggests that you should not use it.
In fact: https://www.smashingmagazine.com/2009/07/the-definitive-guide-to-using-negative-margins/
Negative margins are not a hack

It is a general purpose tool, so it would be hard to give such a general guideline without referring to specific context.
Though, if you really ask -- there are some ;-)
Of course, it has its use but it has to be used very carefully and can easily lead to hacks.
Sadly, I don't find this article doing good and convincing job to showcase thoses uses.
Let me try to explain. I have created a Jsbin based on the proposed code. (If I were the author, I would have linked or embedded such ready-to-use example in the article, but then again I'm not the author ;-).
As you can see in my Jsbin, I have uncommented two declarations - about line-height and list-style. Why? Because they are not related to the demonstrated phenomenon. Which is to create 3 column layout. And now you can see the design is broken. Also you see the boxes have some weird nested structure, which doesn't feel right. So you can easily break the design by tiny customization, which is precisely why this solution is hacky and something I would never want to have in my code.
As a side note, the code given in the article is very careless with no indentation formatting and several
 tags that should actually be the closing
. I know it is trivial matter but can frustrate people trying to copy the code and use or understand.
The second use case doesn't even have a code. It suggests to use negative margins to overlap elements. Which is valid but again, I'm not convinced the negative margins are the best way. What it does is pulling down all of your content before. Would you really want that? It feels more likely that you only want specific elements to pull down. Then it is easy to achieve by positioning those elements whenever you want to, which would feel cleaner and more flexible, i.e. would better adapt to various design changes.
The third example to overlap the text is again easily achievable with proper positioning. Why not simply position both copies inside the same container with slightly different increment? In constrast, using negative margin feels hacky because the margin's value depends on many other particular design element, so clearly more fragile and unflexible.
The author doesn't even bother to provide any code, so can never be completely sure what actually he meant.
For the forth example,
I have also created a Jsbin. That one literally follows the given example with no modification, yet the design is already broken! Just have a look how semantically similar elements are not vertically aligned in both their texts and boxes!
Further this statement in the article is actually wrong or confusing or both ;-)

If no width is applied, adding Negative Margins to its left/right pulls the element in both directions increasing its width. It’s here that the margin acts like a padding.

And here is the proof
Summarizing, in my view, these kinds of articles do, in my view, a disservice to community by promoting bad and hacky practices leading to fragile desing that can easily break under future modifications, leading to more and more hacky breakable code that won't serve anyone. They are also written in a sketchy way with no deep and conceptual discussion of best practices and patterns that are worth learning as long term investment.

This is especially true. It’s because of not understanding negative margins properly that it got its hackish image. It only becomes a hack if you use it to fix an error you made elsewhere.
We are, of course, open to suggestion. If you would like to propose an alternative illustration of the concept, show us some code.

I've actually said it in words -- really dead simple:

padding

padding

I think you misunderstand the state of users coming into this content. We're talking about people who have, in many cases, literally never even seen HTML at all. We're talking about true novices. They need to establish a basis of understanding before they can move on to more advanced topics.

The more they will feel confused by those complex layout. I have few years experience and even I have to scratch my head to understand why it is there. People with less experience will likely be even more overwhelmed by the high noise-to-signal ratio.

I had to google "Reusable Web Components", because I'd never heard of them. Can I Use shows very poor support for several key enabling technologies. Regardless of the support, those are pretty advanced topics which require a much higher level of understanding then a novice is likely to have - in particular basic JavaScript, which occurs later in the curriculum.

Your first link is entitled "Build Reusable Web Components using HTML5 Web Components". I hope it makes it clear how the two are different. The first is a general principle, the second is a particular HTML5 technology that can be used. And the second link is special for that technology, which is actually quite well supported as far as I can see. Not saying that support isn't really a problem as it gets better in the future fast, and even now there are polyfills or ponyfills :). But what I mean is the principle not the specific technology. An example is any Bootstrap component. It is flexible and reusable. And composable. Well, most of the time, at least.

It's all fine and dandy to come in and make these broad suggestions, but I really don't see any clear way for us to implement them. If you're passionate about them then, well, we're an open source project and we accept Pull Requests.

A quick way would be to simplify the code as I suggested above. From my perspective. But then, I don't have the big picture of your course (that I find great BTW), so I imagine it might get difficult with other goals you might be trying to achieve. Which I may not know. That is why I feel having a discussion to better understand it would make it more clear to me. I'll be happy to submit a PR when I better understand the other goals, but I don't want to come with my PRs completely missing the points I'm not aware of.
But for now, I have to say, I'm still unclear about the reason those additional elements complicating the picture cannot be removed. If there are some, I'd be happy to learn.
Finally, please excuse my possibly harsh critics, I actually love what you guys are doing and all my critics has the only purpose to make it better.

Thank you very much for this information. I am attempting to move forward
but I am having trouble with things in the past that keep making my mind
backtrack or divert my attention in a direction I was not intending. Is
there anything which could help you comprehend better. I was taking the
advice which was given on here to take a break for 2 days to put my mind
and body at ease. I am trying to relax, but I am having a bit of anxiety. I
thank you all for your amazing work!
On Feb 4, 2016 3:22 PM, "Dmitri Zaitsev"<EMAIL_ADDRESS>wrote:

Thanks @SaintPeter https://github.com/SaintPeter for taking your time
to answer!
RE: "Add Different Padding"
Yes, it looks a bit hacky to us, too . . . but the key here is to clearly
illustrate a specific concept, hopefully in a clear and unambiguous way.
For the specific area that we're approaching, padding, I think it works.
Glad you agree it is hacky. But I'm not following how this margin
addition illustrates padding, which is a different concept?
Negative margins exist and are widely supported by every browser. I am not
aware of any general guideline that suggests that you should not use it.
In fact:
https://www.smashingmagazine.com/2009/07/the-definitive-guide-to-using-negative-margins/
Negative margins are not a hack
It is a general purpose tool, so it would be hard to give such a general
guideline without referring to specific context.
Though, if you really ask -- there are some
http://www.bennadel.com/blog/1174-negative-css-margins-are-not-cool.htm
;-)
Of course, it has its use but it has to be used very carefully and can
easily lead to hacks.
Sadly, I don't find this article doing good and convincing job to showcase
thoses uses.
Let me try to explain. I have created a Jsbin
http://jsbin.com/nesamu/1/edit?html,css,output based on the proposed
code. (If I were the author, I would have linked or embedded such
ready-to-use example in the article, but then again I'm not the author ;-).
As you can see in my Jsbin, I have uncommented two declarations - about
line-height and list-style. Why? Because they are not related to the
demonstrated phenomenon. Which is to create 3 column layout. And now you
can see the design is broken. Also you see the boxes have some weird nested
structure, which doesn't feel right. So you can easily break the design by
tiny customization, which is precisely why this solution is hacky and
something I would never want to have in my code.
As a side note, the code given in the article is very careless with no
indentation formatting and several  tags that should actually be the
closing . I know it is trivial matter but can frustrate people
trying to copy the code and use or understand.
The second use case
https://www.smashingmagazine.com/2009/07/the-definitive-guide-to-using-negative-margins/#overlap-for-added-emphasis
doesn't even have a code. It suggests to use negative margins to overlap
elements. Which is valid but again, I'm not convinced the negative margins
are the best way. What it does is pulling down all of your content
before. Would you really want that? It feels more likely that you only want
specific elements to pull down. Then it is easy to achieve by positioning
those elements whenever you want to, which would feel cleaner and more
flexible, i.e. would better adapt to various design changes.
The third example
https://www.smashingmagazine.com/2009/07/the-definitive-guide-to-using-negative-margins/#smashing-3d-text-effects
to overlap the text is again easily achievable with proper positioning. Why
not simply position both copies inside the same container with slightly
different increment? In constrast, using negative margin feels hacky
because the margin's value depends on many other particular design element,
so clearly more fragile and unflexible.
The author doesn't even bother to provide any code, so can never be
completely sure what actually he meant.
For the forth example
https://www.smashingmagazine.com/2009/07/the-definitive-guide-to-using-negative-margins/#simple-2-column-layouts
,
I have also created a Jsbin
http://jsbin.com/xovihi/1/edit?html,css,output. That one literally
follows the given example with no modification, yet the design is already
broken! Just have a look how semantically similar elements are not
vertically aligned in both their texts and boxes!
Further this statement in the article is actually wrong or confusing or
both ;-)
If no width is applied, adding Negative Margins to its left/right pulls
the element in both directions increasing its width. It’s here that the
margin acts like a padding.
And here is the proof http://jsbin.com/muniwu/1/edit?html,css,output
Summarizing, in my view, these kinds of articles do, in my view, a
disservice to community by promoting bad and hacky practices leading to
fragile desing that can easily break under future modifications, leading to
more and more hacky breakable code that won't serve anyone. They are also
written in a sketchy way with no deep and conceptual discussion of best
practices and patterns that are worth learning as long term investment.
This is especially true. It’s because of not understanding negative
margins properly that it got its hackish image. It only becomes a hack if
you use it to fix an error you made elsewhere.
We are, of course, open to suggestion. If you would like to propose an
alternative illustration of the concept, show us some code.
I've actually said it in words -- really dead simple:

padding
padding
I think you misunderstand the state of users coming into this content.
We're talking about people who have, in many cases, literally never even
seen HTML at all. We're talking about true novices. They need to establish
a basis of understanding before they can move on to more advanced topics.
The more they will feel confused by those complex layout. I have few years
experience and even I have to scratch my head to understand why it is
there. People with less experience will likely be even more overwhelmed by
the high noise-to-signal ratio.
I had to google "Reusable Web Components", because I'd never heard of
them. Can I Use shows very poor support for several key enabling
technologies. Regardless of the support, those are pretty advanced topics
which require a much higher level of understanding then a novice is likely
to have - in particular basic JavaScript, which occurs later in the
curriculum.
Your first link is entitled "Build Reusable Web Components using HTML5 Web
Components". I hope it makes it clear how the two are different. The first
is a general principle, the second is a particular HTML5 technology that
can be used. And the second link is special for that technology, which is
actually quite well supported as far as I can see. Not saying that support
isn't really a problem as it gets better in the future fast, and even now
there are polyfills or ponyfills :). But what I mean is the principle
not the specific technology. An example is any Bootstrap component. It is
flexible and reusable. And composable. Well, most of the time, at least.
It's all fine and dandy to come in and make these broad suggestions, but I
really don't see any clear way for us to implement them. If you're
passionate about them then, well, we're an open source project and we
accept Pull Requests.
A quick way would be to simplify the code as I suggested above. From my
perspective. But then, I don't have the big picture of your course (that I
find great BTW), so I imagine it might get difficult with other goals you
might be trying to achieve. Which I may not know. That is why I feel having
a discussion to better understand it would make it more clear to me. I'll
be happy to submit a PR when I better understand the other goals, but I
don't want to come with my PRs completely missing the points I'm not aware
of.
But for now, I have to say, I'm still unclear about the reason those
additional elements complicating the picture cannot be removed. If there
are some, I'd be happy to learn.
Finally, please excuse my possibly harsh critics, I actually love what you
guys are doing and all my critics has the only purpose to make it better.
—
Reply to this email directly or view it on GitHub
https://github.com/FreeCodeCamp/FreeCodeCamp/issues/6674#issuecomment-180030174
.

RE: Web Components
Sorry, if there is some other aspect of Web Components that is not related to HTML5, a cursory Google search did no reveal a clear alternative definition.  My point is that if I've never heard of them I have no hope of teaching them, let alone completely revamping our curriculum around them.
We do have some Bootstrap content, of course, and we could probably expand that somewhat to explicitly include their components.
RE: Your Proposed Code
It's not clear to me how this is superior in illustrating the difference between something with and without padding.  Additionally, it is not a clean lead-in to the next challenge which talks about margin.  I think that in context the illustrations make sense.

I didn't mean to focus on the Web Components as buzzword.
More on clean reusable patterns that don't break as soon as you change your design :)
Which is exactly what happened with ALL examples in that "negative margin" article. Having read it, I'm even more convinced that negative margin are very likely to lead to hacks. I have yet to see a convincing example to prove that wrong. (But I'm always open to it.)
About illustrating the padding, I really don't see any reason to complicate it with margins. Padding is about the inside of the elements. Margins -- about outside. Each one can be confusing enough for a newcomer, but mixing them will double the confusion. So showing same sized elements with different paddings inside will focus the student's attention to the main point, distraction free.
 That way the student will see the clear difference. I understand that you wanted to keep the the same design, but pedagogically people are more alerted to the changes. So you get their attention right where you want it.
(Just to say I had some idea about teaching, I've been university teacher for over 20 years. ;-)
Then again, getting real user's feedback is even better.

TL;DR. Can anyone summarize what is this issue about?

Hi FreeCodeCamp/FreeCod,
I'd like to add you to my professional network on LinkedIn.

Donald

Confirm that you know Donald: https://www.linkedin.com/e/v2?e=0-iksstzd4-47&t=ssuw&tracking=eml-guest-invite-cta&ek=invite_guest&sharedKey=RvydlerC&invitationId=6106202185207468032
You received an invitation to connect. LinkedIn will use your email address to make suggestions to our members in features like People You May Know. Unsubscribe here: https://www.linkedin.com/e/v2?e=0-iksstzd4-47&t=lun&midToken=AQFmrFVhGEd36Q&ek=invite_guest&loid=AQGLqctdyefRgAAAAVL2WrMg4OjU7gG0TCkoWDq3qlSDnrqXm07n_OMxgMxJYcsaHhzi3VsQYJLvdXVub2NSD0XON3JEoNkMoYnhmgvzkYRYfM1LVkHOH96LHVCAaSgtAnYsQ9h-R1GCFngfUDxV8h0LGijB9eiZc4z90B_DKc-Jf8ZqOgx90M4zhK6D-dOr5CKg&eid=0-iksstzd4-47
This email was sent to<EMAIL_ADDRESS>If you need assistance or have questions, please contact LinkedIn Customer Service: https://www.linkedin.com/e/v2?e=0-iksstzd4-47&a=customerServiceUrl&ek=invite_guest
© 2016 LinkedIn Corporation, 2029 Stierlin Court, Mountain View CA 94043. LinkedIn and the LinkedIn logo are registered trademarks of LinkedIn.

Donald Trbovich would like to connect on LinkedIn. How would you like to respond?
Accept: https://www.linkedin.com/e/v2?e=-etft55-il0vxa79-d2&a=preRegInvite&ek=first_guest_reminder_01&li=14&m=hero&ts=accept_text&sharedKey=RvydlerC&invitationID=6106202185207468032
View Donald Trbovich's profile: https://www.linkedin.com/e/v2?e=-etft55-il0vxa79-d2&a=preRegInvite&ek=first_guest_reminder_01&li=3&m=hero&ts=profile_text&sharedKey=RvydlerC&invitationID=6106202185207468032
You received an invitation to connect. LinkedIn will use your email address to make suggestions to our members in features like People You May Know. Unsubscribe here: https://www.linkedin.com/e/v2?e=-etft55-il0vxa79-d2&t=lun&midToken=AQFmrFVhGEd36Q&ek=first_guest_reminder_01&li=16&m=unsub&ts=HTML&eid=-etft55-il0vxa79-d2&loid=AQFNksDGpIkhWQAAAVMUt-s6kD-9ix3M3nd1jeKSYveW-2AFkLsZxF4krS8-i5GOmh22YfWDkSz-aaN5dAydcsyfTf7YItbg1a4R1_v4ODsVYgfzNp2WKqcP5XP82P_MPloO5YUlwZUm8HpF-XEEu4Eroeu09s5tmX0gb6pJKm-joOtAHBl7CgPirF5T0l2WQ2pN
This email was sent to<EMAIL_ADDRESS>If you need assistance or have questions, please contact LinkedIn Customer Service: https://www.linkedin.com/e/v2?e=-etft55-il0vxa79-d2&a=customerServiceUrl&ek=first_guest_reminder_01
© 2016 LinkedIn Corporation, 2029 Stierlin Court, Mountain View CA 94043. LinkedIn and the LinkedIn logo are registered trademarks of LinkedIn.

Hi Jamie,
The email address<EMAIL_ADDRESS>was recently added to your LinkedIn account.
If you don't want that email associated with your account after all, here's how to remove it:
Type https://www.linkedin.com/e/v2?e=4yw241-il187p9e-me&t=nas&midToken=AQE9YEi2DqI_Pw&ek=security_add_email_notification into your browser
Sign in with your email address and password
Find Primary email in the upper left and click Change/Add
Click Remove next to the email address you're removing.
Thanks for using LinkedIn and for helping us to keep your account secure.
The LinkedIn Team
This email was intended for Jamie Burridge (Sales Assistant at XPO LOGISTICS).
Learn why we included this: https://www.linkedin.com/e/v2?e=4yw241-il187p9e-me&a=customerServiceUrl&midToken=AQE9YEi2DqI_Pw&ek=security_add_email_notification&articleId=4788
If you need assistance or have questions, please contact LinkedIn Customer Service: https://www.linkedin.com/e/v2?e=4yw241-il187p9e-me&a=customerServiceUrl&midToken=AQE9YEi2DqI_Pw&ek=security_add_email_notification
© 2016 LinkedIn Corporation, 2029 Stierlin Court, Mountain View CA 94043. LinkedIn and the LinkedIn logo are registered trademarks of LinkedIn.

@LVMC please do not post your LinkedIn invites in the comments of of our Github repo. It is considered spam.

Closing as Stale


Bug 2089419: Don't block upgrades when another CSI driver is found

The first commit refactors two bools into enum, to be able to add a third possible outcome of a failed check.
The second commit then blocks CSI driver installation when the driver is already installed and it's not the OCP one. The operator looks "Available: true" + "Upgradeable: true", however, the Upgradeable condition has a message found existing unsupported csi.vsphere.vmware.com driver.
WIP:

Add unit test.
Think about useful alert.

@openshift/storage

/retest
installation flakes

/retest

/cherry-pick release-4.10


Prevent duplicate labels in :alpha style

This implements a stateful AlphaStyle that disambiguates the labels for the bibliography by appending a suffix "a", "b", etc. This emulates the behavior of the numeric citation style in LaTeX.
The existing :alpha style is automatically upgraded to the new AlphaStyle. It's a lot easier for users to pass style=:alpha than to instantiate the full AlphaStyle, in particular because AlphaStyle needs access to all the entries of the .bib file (so instantiating in manually would end up reading the .bib file twice). Moreover, there's no reason anyone would ever want to use the old "dumb" :alpha style.
In addition to the new AlphaStyle, this also fixes some inconsistencies relative to the alphabetic citation style in LaTeX:

Up to four names are included in the label, not 3 (but 5 or more names results in 3 names and "+")
The first letter of a "particle" of the name is included in the label, e.g. "vWB08" for a first author "von Winckel"

Closes #26

There's a preview at https://juliadocs.org/DocumenterCitations.jl/previews/PR31/gallery/#alphabetic_style

I'm going to mark this as "Draft" for now, since #29 convinced me that I'll probably want to tweak the arguments for the internal functions a little bit, and pass around the full CitationBibliography object (the instantiated plugin). The plugin object contains lots of state: all entries in the .bib file, all citations, which order they were cited in. The lack of access to this state in the various format_* routines already made AlphaStyle a little cumbersome, and implementing #29 or the most general version of #13 would likely be even more cumbersome.
So I'll probably make the changes to the internals and rebase this PR on top of that.

https://github.com/JuliaDocs/DocumenterCitations.jl/issues/29 convinced me that I'll probably want to tweak the arguments for the internal functions a little bit, and pass around the full CitationBibliography object (the instantiated plugin).

It turns out there's a more elegant solution that doesn't require breaking backwards compatibility at all (not that the internal functions are part of the stable API; but I'd still rather not change them unless absolutely necessary):
I've added a new internal function init_bibliography!(style, bib) that is called at the beginning of the ExpandBibliography pipeline step. For the default :numeric style, this function does nothing, but for the revised :alpha/AlphaStyle(), this is where the unique keys for all entries in the .bib file are calculated and cached in an internal attribute of AlphaStyle.
It's a much cleaner implementation for the "smart" :alpha style than the previous iteration, and it also addresses #29.
This should now be ready for a final review and merge, and then I'll follow up with #32

@fredrikekre  Can I go ahead and merge, or did you want to further review this?
Also, since we didn't explicitly talk about this when QuantumCitations got merged back into DocumenterCitations and moved here: Should I still consider myself the primary maintainer of this project, as a direct continuation of QuantumCitations?
If yes, I would be a bit more direct in pushing the further development:

I'll make general design decisions if they come up while dealing with PRs. I'll review and merge PRs.
I'll organize tooling and CI mostly according to my needs and may push trivial and tooling-related commits directly to master
I'll make any non-trivial changes via PRs and give people at least a week for review, but I'll ultimately merge my own PRs if there's no feedback. For any major changes or if I'm responding to feature requests, I'll actively solicit reviews/approval.
I'll tag new releases and manage release notes, following semver.

None of this precludes any co-maintainers, i.e. you/anyone with push access to the repo from also doing any of those same things. In any case, especially with the transition to Documenter 1.0, I'll be coordinating with you and @mortenpi via comments here or on the #Documentation Slack channel.

If there are no further comments, I will merge this tomorrow


Use MySqlConnector in appengine/flexible/CloudSql

MySqlConnector is an alternative MySQL client library for .NET with the following advantages:

fully async, so code like the following will actually execute asynchronously (the current code sample executes synchronously due to a long-standing bug in Connector/NET): https://github.com/GoogleCloudPlatform/dotnet-docs-samples/blob/3564fd1ddf45133795a37c31362d723752628954/appengine/flexible/CloudSql/Controllers/HomeController.cs#L54
supports PEM files in the connection string so the openssl steps at https://cloud.google.com/appengine/docs/flexible/dotnet/using-cloud-sql#configure_ssl_access_to_the_cloud_sql_instance are unnecessary
higher performance, so Google Cloud Platform customers can utilize compute engine instances more efficiently

I'd be happy to open a PR to change the client library from MySql.Data to MySqlConnector (and test the changes) if you'd like: https://github.com/GoogleCloudPlatform/dotnet-docs-samples/blob/3564fd1ddf45133795a37c31362d723752628954/appengine/flexible/CloudSql/CloudSql.csproj#L11

Hi @bgrainger, thanks. We'll keep using MySql.Data for our samples.


Added i2c status checking abilities.

Changes to the Universal_hal to add i2c status (including (N)ACK) functionality.

Oh and don't forget to include your name in the comment at the top of each file you edited. You deserve credits too :)


Provide possibility to use conditional requests (using ETag)

It would be nice to be able to supply an If-None-Match or If-Modified-Since header and receive ETag and Last-Modified headers in order to avoid hitting the rate limit too fast.
See https://developer.github.com/v3/#conditional-requests

I'll investigate the options.

Let me know if you found anything, as I'm looking to tackle this.

I actually think the best option would not to implement etagging here but to implement it as an extension of hyper ( as a connector ) and provide that to hubcaps via the Github::custom constructor that takes a raw hyper client. Having this in another create would technically allow anyone writing a client on top of hyper ( i.e. the whole rust ecosystem :) ) to be able to reuse it.

Here is my WIP.
I started work on this (really early day experiments in https://github.com/softprops/hubcaps/compare/master...dwijnand:conditional_requests).
I found out an implementation which I assume is reasonably complete deep inside Servo: https://github.com/servo/servo/blob/master/components/net/http_cache.rs
I also found static_http_cache, which is independent and, while built for the reqwest library, supposedly supports alternative http backends: https://docs.rs/static-http-cache/0.1.0/static_http_cache/index.html#alternative-http-backends

Although static_http_cache is designed to work with the reqwest library, it will accept any type that implements the traits in the reqwest_mock module.

Because of coherence it's not possible to define implementation of reqwest_mock traits for hyper. So that's a showstopper there.
And it looks complicated to depend on servo or some subset of servo's components.
So I guess I'll start implementing my own? 😕

I'll see what I can do.

So with the hyper 0.12 upgrade landing here I've looked at this again and I don't think this can be done with hyper connectors.
Connect takes a Destination which only has scheme/host/port. We need path, method, headers, etc. It's the wrong level of abstraction.

Seeing as this is not hubcaps specific (as you said: "Having this in another create would technically allow anyone writing a client on top of hyper ( i.e. the whole rust ecosystem :) ) to be able to reuse it."), so I've opened a ticket in hyper: https://github.com/hyperium/hyper/issues/1647


What license is CCNetSlackPublisher released under, if any?

The issue title says it all. What license is the CCNetSlackPublisher released under. I cannot find licensing documentation anywhere.

Thanks for the pull request (MIT looks good to me!)


Performance regression due to absence of lto

Description
The freshly merged static matrix refactor things do slow down stan programs significantly whenever lto is not turned on.
So as of now in the static matrix world we absolutely need the lto optimisation for good performance. Thus, our makefiles should ideally switch on lto whenever the compiler is capable enough of handling it. The user should not be required to add -flto to the make/local to get good performance
Example
See https://github.com/stan-dev/math/pull/2007#issuecomment-672028909
where it is demonstrated that turning on lto gives back the old performance numbers.
Expected Output
Results should be produced as fast as in the pre static matrices.
Current Version:
v3.3.0

So yes I'm working on this right now. I decided to toss the idea of using flto for clang-6 or 7 (it's very hard to tell which version you are on). So as long as the user is using gcc >= 5.0 and clang > 7 we should have everything plus a few extra wizzes and woos we can turn on
It's taking me a minute because a few compiler settings + flto can actually lead to a slow-down(!) / wrong values on the performance tests. My guess is that too many optimizations + flto is causing too much inlining and some other algebra optims can cause slightly different numerics

@wds15 can you throw the model and data up into a gist? If not feel free to email it to me

This will be fixed with an upstream PR, so reopening this until that happens.


Fix for QtCreator 4.0

NOTE: NimRunConfiguration and NimRunConfigurationWidget could be simplifed using the new RunConfigurationAspects. Changing the NimRunConfiguration itself is mostly trivial, but changing the widgets needs bit more tinckering.

Hi, sorry for the lag and thank you for the pull request.
I would really like to accept it but we should rebase it to the latest work i done.
Currently the lastest implementation is here: https://codereview.qt-project.org/#/c/123629/
I should first update this repo with the changes in the codereview and than we could integrate your patch.
Btw can you put the SHA version of the QtCreator you used for building the plugin? this could be useful for others because QtCreator API is not stable and in continous development.
I ask you to wait for next week because i'm working hard for putting out version 5.0.0 of my DOtherSide library and bindings. Obviously i'm happy if you want to bring back the work done in the codereview and adapt it :)
Thank you again

@Typz this plugin has been officially accepted inside QtCreator. You can test it with a recent build of the QtCreator master branch (or google for QtCreator snapshot for downloading a precompiled version)


PostCSS logo

You have Autoprefixer and cssnext logos, but have not PostCSS, which is base for Autoprefixer and cssnext.
https://github.com/postcss/postcss/blob/master/logo.svg

Oops! :)
Added 9926b3d01fb9abffa26e95cebaf441285581f224


Cookie prompt

will we be using cookies? does design need to provide any comps for handling the cookie prompt?

We should ask privacy, but the current site doesn't have this.

can i lean on you to find the answer to this? if last years site is any kind of indicator, sounds like we're in the clear, but perhaps things have changed.

It'll fall out of the privacy review as part of the login work @surma is doing.


TypeMeta should verify generic type overrides

If generic=True, TypeMeta should verify that __lt__ and __gt__ have been overridden on its type.

No longer relevant.


Addition of Node.Red Support for IOT

Hi would it be possible to add a Node.Red Azure Gateway
Would it be possible to stand up a NodeRed protocol gateway in front of Azure IoT Suite or expect a field gateway (smartphone, PC etc) to bridge Bluetooth to Cloud.

+1

I am working on an update to the project which you can find in the IoTHub branch which replaces Event Hub with IoTHub (which is what Azure IoT Suite uses for ingesting data from devices). This is the first step in having a solution for what you are looking for.
Node.Red addition would definitively be a great addition and is in my todo list.

And now we have a Node-Red node for Azure IoT Hub in the Azure IoT SDKs repo:
https://github.com/Azure/azure-iot-sdks/tree/master/node/device/node-red
I'll work on a sample to send data from Node-Red to the ConnectTheDots website, so I'll keep this issue opened to track this. Stay tuned


Support pylint v3 and drop v1

in pylint v3.0.0, there is https://github.com/pylint-dev/pylint/pull/8404, that breaks the current implementation of:

ClassAttrLoader
FixtureChecker

This fix is an attempt of supporting both pylint v2 and v3.
Other chances:

remove the support of pylint v1 (was only possible in python 3.6. and seems to be broken)
use pylint v3 to check the source code
rework the dev dependencies management to have pinned version. It shall improve repeatability and consistency between CI runs and local dev

Fixes #12

@stdedos , sorry if I overstepped with my last commit. I did it as I was a little confused by the non-deterministic state of the dependencies (specially pylint, where the CI was using v3 and my local vas using v2).
let me know if I should place it in another PR

Uuum, definitely some changes need to be rationalized to be merged in this PR 😅
I'll try to review quickly tonight.
However, even if this gets accepted as-is, release will happen earliest Monday (I don't want to give weekend surprises to anyone 😅)

Yeah, I have "quite a few" questions wrt https://github.com/pylint-dev/pylint-pytest/pull/27/commits/87baf06518a211f0aa6826d130d258473f8e5622.
Definitely I do not think it belongs to this PR.
Please force-push revert it, so we can merge this.
OTOH, thank you very much for showing this: It was a mash-up of TILs for me 🙃
And one of them (constraints) would've been a lot helpful ... 1-2y ago 😅

Yeah, I have "quite a few" questions wrt 87baf06. Definitely I do not think it belongs to this PR.
Please force-push revert it, so we can merge this.
OTOH, thank you very much for showing this: It was a mash-up of TILs for me 🙃 And one of them (constraints) would've been a lot helpful ... 1-2y ago 😅

Ok, done. I will re-submit the dependency management part in a later PR, let's juste keep in mind that some differences might show up in between local and CI depending of the dependencies version.


"Upgrade Error- Validation failed in API"  messages seen in UI after upgrading from 1.2.0-pre3 to 1.2.0-pre4-rc14

Rancher Version: 1.2.0-pre3 to 1.2.0-pre4-rc14
**Docker Version:**1.11.2
**OS and where are the hosts located? (cloud, bare metal, etc):**Ubuntu, Cloud
**Environment Type: (Cattle/Kubernetes/Swarm/Mesos)**Cattle and Kubernetes
Steps to Reproduce:

Create a Cattle and Kuberentes setup in 1.2.0-pre3
Upgrade to 1.2.0-pre4-rc14

Results:
Upgrade Error- Validation failed in API:action messages are seen in the UI.

The messages persisted in Cattle even after upgrade

These types of error messages never go away automatically in the UI, so that part is normal.

Tested with upgrade from 1.2.0-pre3 to rc15. The above error messages did not show up.


Ord SEND error with Insufficient Funds

I can't figure out what i'm doing wrong and would appreciate any input.  I'm trying to SEND the remaining cardinal amount from my ORD wallet to a different wallet address.  No matter what amount of sats I select (or fee rate) I always get an "Insufficient funds" error.
This is the amount in the ord wallet:
{
"cardinal": 2700200,
"ordinal": 0,
"runes": {},
"runic": 0,
"total": 2700200
}
I'm trying with this command:
ord --cookie-file "D:\bitcoin-26.1\Bitcoin.cookie" wallet send --fee-rate 40 3BDRJ8EMsdCZJ6PFJQCSdhBkpx4xn8Ho9H 2000000sats
What am I missing?

Hi dkofoed,
This issue could be due to a few problems causing the wallet.  If you run ord wallet transactions do you see any that are outstanding and have 0 confirmations?  If you run bitcoin-cli -datadir=<DATA_DIR> -rpcwallet=<WALLET> listunspent and total up each, does it equal 2700200?

Does this look like the correct command?
bitcoin-cli -datadir="D:\bitcoin-26.1\Bitcoin" -rpcwallet bc1pvxn8evmrfnvctwhypsw4qc95he02ckyqrnvu3y7zpg34xy2k6t4sw50d4t listunspent
I get:
error code: -32601
error message:
Method not found

Does this look like the correct command?
bitcoin-cli -datadir="D:\bitcoin-26.1\Bitcoin" -rpcwallet bc1pvxn8evmrfnvctwhypsw4qc95he02ckyqrnvu3y7zpg34xy2k6t4sw50d4t listunspent
I get: error code: -32601 error message: Method not found

no, you must specify the name of your ord wallet, not the address, in the rpcwallet flag, which is probably ord.  so try something like bitcoin-cli -datadir="D:\bitcoin-26.1\Bitcoin" -rpcwallet=ord listunspent

cool, got that to work and after adding up the UXTOs they add up to 0.027002 which seems correct.  I ran the transactions command as well and get this:
{
"transaction": "f9a7520f1a2e6c14b1e69b20080d85aa7a03e6c82b5a7c9baf509f3ed2425feb",
"confirmations": 1047
},
{
"transaction": "a2bc96901493f0116ae7f375d1ed023a8b6d1db3f00e0a74cc4bbd1dc88a576b",
"confirmations": 1031
},
{
"transaction": "a2bc96901493f0116ae7f375d1ed023a8b6d1db3f00e0a74cc4bbd1dc88a576b",
"confirmations": 1031
},
{
"transaction": "a2bc96901493f0116ae7f375d1ed023a8b6d1db3f00e0a74cc4bbd1dc88a576b",
"confirmations": 1031
},
{
"transaction": "a2bc96901493f0116ae7f375d1ed023a8b6d1db3f00e0a74cc4bbd1dc88a576b",
"confirmations": 1031
},
{
"transaction": "a2bc96901493f0116ae7f375d1ed023a8b6d1db3f00e0a74cc4bbd1dc88a576b",
"confirmations": 1031
},
{
"transaction": "a2bc96901493f0116ae7f375d1ed023a8b6d1db3f00e0a74cc4bbd1dc88a576b",
"confirmations": 1031
},
{
"transaction": "a2bc96901493f0116ae7f375d1ed023a8b6d1db3f00e0a74cc4bbd1dc88a576b",
"confirmations": 1031
},
{
"transaction": "a2bc96901493f0116ae7f375d1ed023a8b6d1db3f00e0a74cc4bbd1dc88a576b",
"confirmations": 1031
},
{
"transaction": "a2bc96901493f0116ae7f375d1ed023a8b6d1db3f00e0a74cc4bbd1dc88a576b",
"confirmations": 1031
},
{
"transaction": "fdea7686f3437eaffdb927ed87f06102455b4049e8e985f56b8bd6a5693aabd5",
"confirmations": 410
}

ok, can you try using the --dry-run flag with your original send command in combination with lower --fee-rates until you find a value that is accepted?  The --dry-run flag will stop the tx from being signed or broadcasted, so it acts as a test to find a fee-rate that the wallet will allow.
Examples:

ord --cookie-file "D:\bitcoin-26.1\Bitcoin.cookie" wallet send --dry-run --fee-rate 40 3BDRJ8EMsdCZJ6PFJQCSdhBkpx4xn8Ho9H 2000000sats
ord --cookie-file "D:\bitcoin-26.1\Bitcoin.cookie" wallet send --dry-run --fee-rate 35 3BDRJ8EMsdCZJ6PFJQCSdhBkpx4xn8Ho9H 2000000sats
ord --cookie-file "D:\bitcoin-26.1\Bitcoin.cookie" wallet send --dry-run --fee-rate 30 3BDRJ8EMsdCZJ6PFJQCSdhBkpx4xn8Ho9H 2000000sats
ord --cookie-file "D:\bitcoin-26.1\Bitcoin.cookie" wallet send --dry-run --fee-rate 25 3BDRJ8EMsdCZJ6PFJQCSdhBkpx4xn8Ho9H 2000000sats

test to see at what --fee-rate value you no longer get this insufficient funds message.  this should give us more information as to why the system things this tx will be so expensive.

Got it figured out ... thanks for the help!


Incorrect Naming of Platform - "Nyanjyoti" Should be "Gyanjyoti"

The platform is currently named "Nyanjyoti," which appears to be a misspelling or misrepresentation of the intended name. The correct term should be "Gyanjyoti," where "Gyan" (ज्ञान) means knowledge in Sanskrit and aligns with the purpose of the platform—promoting education and learning. The current name may cause confusion and diminish the platform's credibility.

Impact:
Misinterpretation of the platform’s core values and mission.
Potential confusion among users, particularly those familiar with the word "Gyan" in educational contexts.
The platform may not resonate well with users, as "Gyanjyoti" carries a more meaningful and culturally relevant message.
Proposed Solution:
Rename the platform to "Gyanjyoti" to reflect the intended focus on education and knowledge.
Update branding, logos, URLs, and all marketing materials to reflect the correct name.
Communicate the change clearly to users to avoid any confusion during the transition.

@Iamanujosh, the platform name cannot be changed as it has already been listed under Hacktoberfest and GSSOC with the same name. Additionally, PA @Vin205 has rejected the request. We apologize for the inconvenience and encourage you to contribute to other functionalities instead.


Indexing jobs sent to queue runner only run from primary site

Hello!
We've encountered an bug when using multi-site in CraftCMS 4 where entries enter the queue when they are saved, but they don't make it into Algolia. Disabling the queue and/or pushing the sync through the utilities works perfectly. Digging into the jobs code, we found an element query that doesn't include all sites, and that often keeps other sites from indexing when using the queue runner.
https://github.com/studioespresso/craft-scout/blob/16f13633b62fe1f11f558af4bc20f2841756c209/src/jobs/IndexElement.php#L18C7-L18C7
Changing this line as follows appears to correct the issue:
$element = Craft::$app->getElements()->getElementById($this->id, NULL, "*"); // Parameters: ID, Type, and Site ID
https://docs.craftcms.com/api/v4/craft-services-elements.html#method-getelementbyid
Thanks for taking a look, we truly appreciate the work you're putting into this plugin!
CraftCMS Version: 4.4.17
Scout Version: 3.1.2

Hey @benlobach, thanks for reporting this. A colleague of mine reported a similar issue in #270 (where the indexing job doesn't fire when an item is save from a non-primary site).
Changing the getElementById code doesn't seem to fix it on my end - but I don't specify any site in my Scout configuration. Could you share the criteria you have in scout.php? Thanks!

Hey @janhenckens, thanks for looking into it! We are specifying the site in both locations, and it appears to be working with this configuration along with the getElementbyId change.
->criteria(function (\craft\elements\db\EntryQuery $query) {     return $query->siteId(4)->type(['articles']);   })

hey @benlobach , a fix for this is out in 3.1.3. Can you give that a try? Thanks!

Thank you, @janhenckens!

On my end I still have this issue. When saving an Entry not in a primary site, the after save hook for indexing gets triggered but it only indexes the Entry from the primary site. The relations are saved correctly in all sites.
The Refresh buttons index them properly.

@mathg Thanks for adding that, I'll try to reproduce and get back to you over the weekend!

Hey all, I just released an update that includes a fix for this. Could you update and give it a try? Thanks!

@janhenckens it works properly on my end now, thanks!


Request for Dynamic Desktops Feature

Description of the new feature / enhancement
I would like to see the implementation of dynamic desktops, similar to the ones found in GNOME.
Dynamic desktops allow users to have multiple workspaces that are created as needed and removed automatically if no windows are on them. This feature would greatly enhance productivity and organization, especially for users who work with multiple applications or tasks simultaneously.
Scenario when this would be used?
When you open the workspace list with the gesture, if I drag a window on "new desktop" this should be created automatically. If no window is on a specific desktop, it should be removed.
Supporting information
No response

If we do this can we have hotkeys for "send active window to desktop " and "go to desktop "? like for example   Win+F goes to desktop  and Win+Alt+F sends the active window to desktop .


Node version doesn't work in browser

I use react-redux starter kit.
I installed keras-js with npm install keras-js --save
when I try to include {Model} from 'keras-js' then I get the following errors:
ERROR in ./~/keras-js/lib/Model.js
Module not found: Error: Cannot resolve module 'fs' in /media/v/a218f425-0329-45ac-8571-5497bea24d71/home/v/workspaces/webstorm/newMIDIcheck/node_modules/keras-js/lib
@ ./~/keras-js/lib/Model.js 215:50-63
ERROR in ./~/keras-js/lib/Tensor.js
Module not found: Error: Cannot resolve 'file' or 'directory' ./texture_copy.glsl in /media/v/a218f425-0329-45ac-8571-5497bea24d71/home/v/workspaces/webstorm/newMIDIcheck/node_modules/keras-js/lib
@ ./~/keras-js/lib/Tensor.js 142:40-70
it misses a lot of other glsl files, and yes, they aren't there. Also as far as fs goes, It shouldn't be used in the browser, how to get around that?
Thanks everyone & srry for noob question.

I've also tried to use the bundle from keras-js /dist after building for browser, that one failed too.

These glsl files are missing, what is the reason behind that? They're included in this repo, but not in the node pkt.

I'm having the same problem, any news?

I've just deleted the file reading prop in the object + moved some glsl files and it worked for me.

where did you move the glsl files to?

I don't really remember. If you check the repo, you can find the missing glsl files. Move them into the same directory ( or wherever it looks for )

I've tried to use this library with npm, but also had similar problem:
These relative modules were not found:

* ./texture_copy.glsl in ./~/keras-js/lib/Tensor.js
* ./activation.glsl in ./~/keras-js/lib/ext/core/WebGLActivation.js
* ./input_transform.glsl in ./~/keras-js/lib/ext/convolutional/WebGLConv2D.js
* ./conv2d.glsl in ./~/keras-js/lib/ext/convolutional/WebGLConv2D.js
* ./maxpooling2d.glsl in ./~/keras-js/lib/ext/pooling/WebGLPooling2D.js
* ./avgpooling2d.glsl in ./~/keras-js/lib/ext/pooling/WebGLPooling2D.js
* ./batchnorm.glsl in ./~/keras-js/lib/ext/normalization/WebGLBatchNorm.js

Files was in the right places, simple copying had no effect. Finally, I solved this issue for me without copying files with changing  webpack.config:
From:
{ test: /\.(frag|vert)$/, use: ['raw-loader', 'glslify-loader']},
{ test: /\.(glsl)$/, use: ['raw-loader', 'glslify-loader']}

To:
{ test: /\.(glsl)$/, loader: 'url-loader'}


Upgrade past 1.9.3 introduces KeyError to Production App

Describe the bug
When attempting to programmatically add a custom type to a schema, we are receiving the following error:
Dry::Container::KeyError:
  key not found: "{:type?=>Types::CalendarDate}"

I believe this was introduced when extract_type_spec was wrapped around the value and filled internals within Schema::Macros::DSL.
To Reproduce
The minimal amount of code to reproduce using RSpec tests:
# frozen_string_literal: true

require 'dry-schema'
require 'dry-container'
require 'dry-types'

module Types
  include Dry.Types()

  class CalendarDate < ::Date
    def to_json(*_a)
      strftime("--%m-%d")
    end
    alias_method :as_json, :to_json

    def self.parse(date)
      mon, mday = Date._iso8601(date).values_at(:mon, :mday)
      raise ArgumentError, "invalid ISO8601 calendar day string, expected format \"--MM-DD\"" unless mon && mday

      new(2000, mon, mday)
    end
  end

  def self.to_calendar_date(input, &block)
    CalendarDate.parse(input)
  end

  CalendarDay = Nominal(CalendarDate).constructor(method(:to_calendar_date))

  Container = Dry::Schema::TypeContainer.new
  Container.register(:calendar_day) { Types::CalendarDay }
end

Schema = Dry::Schema.JSON do
  config.types = Types::Container
  optional(:date).maybe(:calendar_day)
end

RSpec.describe Schema do
  let!(:data) { { "date" => "--02-09" } }
  let(:result) { described_class.(data) }

  context "call" do
    it "is expected to succeed" do
      expect(result).to be_a_success
    end
  end
end

Expected behavior
The above test passes on version 1.9.3 but now fails on versions 1.10.1 and 1.10.2
I would expect this to pass as written in 1.10.2.
My environment

Affects my production application: YES
Ruby version: 3.0.4

It's likely related https://github.com/dry-rb/dry-schema/pull/419


Scrutinizer Auto-Fixes

@robotomize requested this pull request.
It consists of patches automatically generated for this project on Scrutinizer:
https://scrutinizer-ci.com/g/robotomize/fujes/

Ok, meged


NO_NFC on iOS

NFC worked via phonegap-nfc a couple of weeks ago, but no longer. I re-built my code with phonegap-nfc 1.0.4 and switched between cli-8.0.0 and cli-9.0.0 (via PGB) but I still get NO_NFC.
Other NFC apps work, so it's not generic to a certain iOS version.
Anyone with the same issue?

I used the wrong provisioning profile. Sorry about that.


Clarify command line argument for cargo-embed

The current help text for cargo-embed looks like this:
Common options used when building artifacts with cargo

Usage: cargo-embed [OPTIONS] [config]

Arguments:
  [config]

Options:
      --chip <chip>
      --probe <PROBE_SELECTOR>  Use this flag to select a specific probe in the list.
                                Use '--probe VID:PID' or '--probe VID:PID:Serial' if you have more than one probe with the same VID:PID.
      --list-chips
      --disable-progressbars
      --work-dir <WORK_DIR>     Work directory for the command
  -h, --help                    Print help

config here is actually the profile in the config file, so this should be clarified.

maybe config-name?


Infolists: Add KeyValueEntry component

Description

This PR introduces KeyValueEntry which is similar to Form's KeyValue.

[x] Visual changes (if any) are shown using screenshots/recordings of before and after.

Code style

[x] composer cs command has been run.

Testing

[x] Changes have been tested.

Documentation

Will write the docs when API is finalized.

[ ] Documentation is up-to-date.

Thanks!


Don't mix callbacks and async/await

The code at https://github.com/ycechungAI/cmd-ssg/blob/main/bin/index.js#L155 is using both await (promises) and also providing a callback.  Pick one.

Same issue at https://github.com/ycechungAI/cmd-ssg/blob/main/bin/index.js#L161


Implement from_pixel_float

Was it missed accidentally or intentionally?

I'm thinking the functions should be renamed. What from_pixel_float would be, is from_round now.

I've opened a PR that adds the from_pixel method here #7

@dpc This can be closed since it was implemented in my PR above :)


Automated Package Upgrade

:tada: This PR is included in version 2.2.219 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Make API for UI construction more fluent

The main API for constructing UIs is Add(view). By making the
API return the view (typed to the received view type), we allow
further operations on the view (i.e. save it to a variable, set
additional properties, etc.).
This makes the calling patterns more concise, so instead of:
var label = new Label("...");
Add(label);

You can just do:
var label = Add(new Label("..."));

for example. Or:
Add(new TextField("")
{
  Y = Pos.Right(Add(new Label("Password: ")))
});

This API change is backwards compatible and none of the existing
demo code had to change.

This is causing a stackoverflow on some code paths, not worth it :)


Packagist hook

Hi Derek,
Can you add the Packagist hook on the project ?
https://packagist.org/about#how-to-update-packages
Thanks,
Samuel

I thought it was there. I'll check.

Seems to work now :)  The branch develop was not showing up a couple of days ago.
    "creof/doctrine2-spatial": "dev-develop"  is now working

I noticed that when I was looking and had to click the update button for it to show up. I've reentered all the settings, maybe create a temp branch to test it now?

Working !


Move / update documentation about release process

There is already a lot of documentation here: https://github.com/freme-project/technical-discussion/wiki/Release-Howto
But it needs to be updated and moved to the documentation homepage

done: http://rv1443.1blu.de/doc/knowledge-base/freme-for-developers/howto-release.html


gi-docgen: 2023.1 -> 2023.3

Changes:

https://gitlab.gnome.org/GNOME/gi-docgen/-/tags/2023.3
https://gitlab.gnome.org/GNOME/gi-docgen/-/tags/2023.2

Description of changes

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Priorities
Add a :+1: reaction to pull requests you find important.

@GrahamcOfBorg eval


Allow easy conversion between libc::timeval, libc::timespec and std::time::Duration

One way to do this is impl From<Duration> for timespec, impl From<Duration> for timeval and the reverse - impl From<timeval> for Duration and impl From<timespec> for Duration. Also on the table is impl From<timeval> for timespec and impl From<timespec> for timeval. This solution has the issue that Duration and timespec have nanosecond resolution, while timeval has microsecond resolution. In this system, conversions to timeval would be lossy in nanoseconds, and I think that's okay.
A more heavy-handed approach might look similar to Nix's TimeValLike - a trait for constructing values and getting time units.

As explained in #469, I don't think this is an acceptable request.
Thanks for opening the issue anyway :)


Gradle 7.0 upgrade

https://docs.gradle.org/7.0/release-notes.html

Also including the change to mostly avoid native image and android builds unless explicitly opted in.  Will try to bring them back in CI first.
Also fixes a couple of issues triggering with animal sniffer and process resources

@swankjesse requesting post submit review - want to have smaller target PR for testing with build caching.  This is not strictly necessary but makes forward progress possible and isn't affecting deployed code (src/main/java).


Failing match media test

#382, but in a local branch

This is failing on the Promise polyfill in FF3.6, which is also failing on master, so I'm going to merge it.  I'm not sure how Promises began failing as it hasn't changed for yonks.


Can't see "View all" action when selecting it under High Contrast - Black/White theme

Storage Explorer Version: 1.32.0-dev (93)
Build Number: 20230827.1
Branch: main
Platform/OS: Windows 10/Linux Ubuntu 20.04/MacOS Ventura 13.5 (Apple M1 Pro)
Architecture: x64/x64/x64
How Found: From running test cases
Regression From: Not a regression
Steps to Reproduce

Launch storage explorer -> Change the theme to 'High Contrast - Black'.
Open 'Settings' -> Select 'Services'.
Set the setting 'Storage Nodes Trailing Action' to "View all".
Refresh the tree view -> Expand one storage account -> Blob Containers.
Click "View all" in the tree view.
Check whether "View all" action is visible.

Expected Experience
"View all" action is visible.
The screenshot under Dark theme:

Actual Experience
Can't see "View all" action.

Additional Context
This issue doesn't reproduce when hovering over "View all" action.

@MRayermannMSFT, verified this issue on the build 20230901.1 it still reproduces under High Contrast - White theme. So, we are going to re-open it.

Updated stylings to address things I missed. :)

Verified this issue on the main build 20230904.1. Fixed.


Fix(esmm_example):add one more classification task

According to line110-111 in mtl_trainer.py:
if isinstance(self.model, ESMM):
loss = sum(loss_list[1:])  #ESSM only compute loss for ctr and ctcvr task
we need to set three classification tasks in task_types to make sure total_loss = loss_{ctr} + loss_{ctcvr}, otherwise, total_loss = loss_{ctr}.

模型这样修改后和esmm原始论文里面的实现不一样了


Fix metronome configs

They were assuming interval to be nanoseconds.
Pull request
Description

Related

Related docs PR

Checklist

[x] The RFC, if required, has been submitted and approved
[x] Any user-facing impact of the changes is reflected in docs.tremor.rs
[x] The code is tested
[x] Use of unsafe code is reasoned about in a comment
[x] Update CHANGELOG.md appropriately, recording any changes, bug fixes, or other observable changes in behavior
[x] The performance impact of the change is measured (see below)

Performance

metronome is using nanoseconds, the documentation and the examples are out of date. This is what i am fixing here.


feature: on_demand_tls verification over local socket

A clear and concise description of what you want the system to do.

Typically the on_demand_tls requires a webserver that would perform checks.
{
    on_demand_tls {
        ask  http://localhost:8888/verify
        interval 2m
        burst 5
    }
}

What are the Caddyfile directives that need to be added.

Add Caddyfile directive:
{
  on_demand_tls {
    ask  unix:///var/run/tlsverify.sock
    interval 2m
    burst 5
  }
  security {
    tls verify host foo.bar.baz
    tls verify hosts {
      foo.bar
      *.bar.foo
    }
    tls verify listener unix:///var/run/tlsverify.sock
  }
}

Per advice from Francis, the same could be accomplished by:
:8888 {
    @allowed expression {query.domain}.matches("your-regexp")
    respond @allowed 200
    respond 400
}


Slow loading for datasets with a high number of language pairs

I'm opening this issue to discuss changes to how some datasets are loaded
I wrote more details about this issue here https://github.com/embeddings-benchmark/mteb/pull/386#issuecomment-2072443114. The TLDR is that when you have a dataset with a high number of subsets (in our case this is often language tags), they are currently loaded iteratively one subset at a time, with a load_dataset call: https://github.com/embeddings-benchmark/mteb/blob/5370b44435e63a9c00e76db51d01812824b559d0/mteb/abstasks/MultilingualTask.py#L26-L30 https://github.com/embeddings-benchmark/mteb/blob/5370b44435e63a9c00e76db51d01812824b559d0/mteb/abstasks/CrosslingualTask.py#L24-L27
This turns out to be way slower than simply loading the same amount of data in one chunk. The reason is in part because many network request must be done to query each file, but mostly because the datasets lib has a constant overhead when loading datasets where it checks for newer versions of each files. Importantly, even when the dataset is cached, loading it is still slow: in this PR https://github.com/embeddings-benchmark/mteb/pull/330, loading a dataset with 250 subsets would take 15 minutes from the network, and 12 minutes from cache
This issue has been there from the very beginning, but isn't too noticeable when the number of subsets/languages is low, which is the case for most datasets. However for crosslingual tasks like bitext mining where the number of language pairs can be very large, some datasets can take hours to load (https://github.com/embeddings-benchmark/mteb/pull/386, https://github.com/embeddings-benchmark/mteb/pull/330), so it would be relevant to solve this in the context of MMTEB and speeding up things https://github.com/embeddings-benchmark/mteb/issues/381
I ran some experiments with this dataset https://huggingface.co/datasets/loicmagne/open-subtitles-bitext-mining , which contains 1759 language pairs (= subsets), where each subset contains 1000 sentence pairs, which in total is ~300MB of data. Loading it in the iterative way from the network takes around an hour (I don't have the exact number but it's long)
Solution 1
From https://github.com/huggingface/datasets/issues/6800 there is a way to load multiple subsets all at once with load_datasets:
data_files = "data/*.jsonl"
ds = load_dataset("loicmagne/open-subtitles-250-bitext-mining", data_files=data_files, split="train")

or using this loading config:
  - config_name: all
    data_files: data/*.jsonl

When doing so, the loading time is now 17 minutes. The issue is that the result doesn't contain the name of the subset anymore:
>>> ds
DatasetDict({
    train: Dataset({
        features: ['sentence1', 'sentence2'],
        num_rows: 247809
    })
})

The only way I have found to fix this is to add a "lang" feature to each row, which increases slightly the size of the dataset
Solution 2
17 minutes is already a good speedup but it's still way higher than loading 350MB of data, this is because the dataset is split into several files for each language. The 2nd solution is to merge all the data in a single file, in my case a single .jsonl file where each row looks like {'sentence1': ..., 'sentence2': ..., 'lang': ...}. This brings the loading time of the dataset from the network to 30 seconds.
The drawback of this method is that since all the subsets are merged, the dataset will no longer support the subsets features from the HuggingFace Hub, like visualizing each subsets with the dataset viewer, or downloading one subset at a time.
Recovering each subsets
One remaining issue with these two solutions is that the resulting dataset looks like his:
Dataset({
    features: ['sentence1', 'sentence2', 'lang'],
    num_rows: 247809
})

In the case of bitext mining, we need to recover each subsets and group rows with the same lang key. I haven't found any way to do it natively on HF datasets, so you have to filter each language one by one like this:
ds_split = {}
for lang in ds.unique("lang"):
    ds_split[lang] = ds.filter(lambda x: x['lang'] == lang)

This is again very slow, and it takes around an hour. Luckily there has been a recent Polars integration with HF Datasets https://github.com/huggingface/datasets/pull/6531 which allows to performs quick queries on a dataset, in our case we can use the group_by operation to split the rows by language:
ds_split = ds.to_polars().group_by('lang')

This operation takes 0.3s on my dataset, but requires to add the polars library as a dependency
Summary
There is a solution to bring the loading time of datasets with a high subset count from multiple hours to <1min. This solution requires a specific dataset format, and loading procedure, so it should be an opt-in thing that we only activate on the specific datasets that requires it. There are two drawbacks that I can identify:

It requires to add polars as a dependency
The speedup only works when loading all the subsets, so when evaluating on specific subsets you would over-download data

This would unlock two PRs (https://github.com/embeddings-benchmark/mteb/pull/386, https://github.com/embeddings-benchmark/mteb/pull/330) and speedup some existing tasks, let me know WDYT and if you have any suggestions
@KennethEnevoldsen

thanks for this @loicmagne. My thoughts:

Seems like there is a general issue here and it might be worth looking into a PR to datasets if that makes sense (that would be the best place to fix it)

I am actually unsure if the problem is HF or the loading script?

Solution 2: the existing datasets used for mteb are already not built for viewing (no dataset sheet ect.), so that solution seems reasonable.

I don't think polars support is a big issue (I haven't had any compatibility issues with it)
overdownload is only really a problem for truly large datasets (which we might want to avoid anyway)
This would also allow us to remove "trust_remote_code", which is probably reasonable for security (I can't seem to find any way to have a multilingual dataset on HF without this, which seems problematic?)

This would take quite a while to reformat all MTEB datasets to this format. A solution would be to just do it for bitext mining where the overhead is by far the largest.

Seems like there is a general issue here and it might be worth looking into a PR to datasets if that makes sense (that would be the best place to fix it)

I am actually unsure if the problem is HF or the loading script?

I think there is some overhead from the HF datasets side that could be reduced although I don't know the details of the internals, but I'll try to look into it

This would take quite a while to reformat all MTEB datasets to this format. A solution would be to just do it for bitext mining where the overhead is by far the largest.

Yes I didn't plan to reformat every datasets, in fact for datasets with <10 languages the speedup would probably be negligible. I was thinking of implementing it as an alternative loading method for CrosslingualTask that could be optionally toggled, and only use it on a few datasets where the speedup is significant

Super nice investigation @loicmagne!
Just thinking out loud here, but where do we think the slow-down occurs? I would imagine the number of network requests should be quite reasonable. E.g. for:

Importantly, even when the dataset is cached, loading it is still slow: in this PR https://github.com/embeddings-benchmark/mteb/pull/330, loading a dataset with 250 subsets would take 15 minutes from the network, and 12 minutes from cache

Indicates that it spends (12 minutes · 60 s/min)/250 subsets = 3 seconds per subset. Perhaps this means all the calls are being made synchronously, but even so, 3 seconds seems like a lot for a round-trip?
I could imagine slowdowns happening at:

Network latency (to-from huggingface)

Shouldn't make this large a difference. Typical round-trip should be less than 100 ms. However,

Huggingface-hub processing/selection of file/CDN

I could imagine latency on their storage solution could be pretty high, so this seems reasonable to me. Does not match that loading all subsets in one chunk is much faster, though, which supports the network latency argument).

Processing of dataset on huggingface before download (e.g. load_dataset file on huggingface)

From what I can see from your example dataset, this doesn't have such a file, so doesn't explain the slowdown here.

Processing of dataset locally (if anything happens here?)

If, indeed, network latency is a large part of the problem, perhaps we could solve it using strategic async code?
With that said, we have discussed adding an MTEB mirror of some datasets anyway, so adding mirrors of slow/large datasets that conform to a fast format seems quite reasonable. Then we "just" have to ensure that they keep sufficiently aligned with the source (i.e. a cache-invalidation problem).
Again, thanks a ton for your investigation and a very nice report!

Async code might not be a bad idea, actually - it should be fast enough to try out.

We improved speed in datasets 2.19 btw, see comments at https://github.com/huggingface/datasets/issues/6800 :)

A bit late, but my thoughts are:  go for solution 2 and use polars.
I think it's okay to have a language feature, it would maybe require an update of BitextMiningAbsTask? Or we can just handle it in the data_transform function of the dataset.
The issue occurs also with Flores, it contains more than 40K language pairs, since it's a collection of English texts translated to 200 languages (200^2).

From this I would probably suggest the following:

Set a lower bound of datasets to 2.19 (optional really, but the decrease in download speed is significant)
Create a script that downloads all current bitext tasks adds the "lang" column to it and re-uploads them to the mteb org (this is something I have already considered we do for all tasks)
redo the loading function to use solution 1, adding polars as a dependency for the groupby

let me know what you guys think

I ran experiments on the latest 2.19 datasets release and it's indeed very good, I think it makes solution 2 useless, merging files together doesn't provide a significant speedup. I would go with solution 1, simply adding a "lang" column to every current files

From this I would probably suggest the following:
0. Set a lower bound of datasets to 2.19 (optional really, but the decrease in download speed is significant)

1. Create a script that downloads all current bitext tasks adds the "lang" column to it and re-uploads them to the mteb org (this is something I have already considered we do for all tasks)

2. redo the loading function to use solution 1, adding polars as a dependency for the groupby

let me know what you guys think

Sounds great I'll start the PR 👍

Wonderful @loicmagne!


select.poll() is not supported on windows

I get the following error from windows 10 22H2, python 3.10.2, when _socket_setup is called in pysolarmanv5.py:
AttributeError: module 'select' has no attribute 'poll'
select.poll() is not supported on windows and since the commit below, compatibility is broken:
https://github.com/jmccrohan/pysolarmanv5/commit/bba4543bbaa469d54f43b76d2f8ef8d7d5889dff
Just wondering if you are interested in keeping compatible with windows and I could see if there is a workaround (with my crude abilities), or maybe you would be better suited.

Sorry about that. I didn't mean to break anything. Already doing a research how to fix it.

@dauheeIRL are you able to test this branch to confirm that it is OK now on Windows.
The tests are passing on Windows 11 with Python 3.11, but I don't have access to a datalogger from that machine to confirm personally.

Oh wow that was quick. What I've done is a loop to try every 20 seconds and it seems to generate an error periodically:
Exception in thread Thread-36 (_data_receiver):
Traceback (most recent call last):
  File "C:\Program Files\Python310\lib\threading.py", line 1009, in _bootstrap_inner
    self.run()
  File "C:\Program Files\Python310\lib\threading.py", line 946, in run
    self._target(*self._args, **self._kwargs)
  File "C:\Program Files\Python310\lib\site-packages\pysolarmanv5\pysolarmanv5.py", line 298, in _data_receiver
    data = self.sock.recv(1024)
ConnectionAbortedError: [WinError 10053] An established connection was aborted by the software in your host machine

it also leaves a buildup of threads (QueueFeederThread + Process_Request_Thread), some of them seem to clear but others don't. when I call modbus.disconnect() after getting my logger data I get the following error:
Exception in thread Thread-41 (_data_receiver):
Traceback (most recent call last):
  File "C:\Program Files\Python310\lib\threading.py", line 1009, in _bootstrap_inner
    self.run()
  File "C:\Program Files\Python310\lib\threading.py", line 946, in run
    self._target(*self._args, **self._kwargs)
  File "C:\Program Files\Python310\lib\site-packages\pysolarmanv5\pysolarmanv5.py", line 298, in _data_receiver
    data = self.sock.recv(1024)
OSError: [WinError 10038] An operation was attempted on something that is not a socket

I will have time tomorrow to do some extra testing

Was able to reproduce this. If  the exit event is set early, however,  as in 638ed8e,  the socket is closed properly on disconnect.  Can you confirm this .

Thats working perfectly!! I hammered it every second did lots of connecting and disconnecting and couldn't get it to complain :)
Nice one, much appreciated

Thank you for the cooperation!
By the way you can use the auto_reconnect=True option and to read/write indefinitely. There is no need to disconnect and create new instances all the time.

Thats great thanks. Yeah auto_reconnect=True has been working flawlessly

Resolved by #38.
Thanks @dauheeIRL for the report, and @githubDante for the fix!


Strange very old doc pages on orchardrpoject.net

For exemple this one
http://docs.orchardproject.net/Documentation/themes-includes

Yeah some of the docs are massively out of date but people are thin on the ground that are interested in contributing.
We actually have a project in the works at the moment where we are converting everything over to the "read the docs" platform. It currently lives here but this has changed several time while we've tried out the various features of the platform so that url might not last.
This will let us set versions up. When it goes live there will be a legacy branch and then a main 1.10 branch. After that I will be a lot more liberal about culling old content.

It was in the archived specs (http://docs.orchardproject.net/Documentation/archived-specs), so it was even before Orchard 1.0.

I get it searching with search box  from main page ?

Ok, thanks for the precision. With the next version, there will be a breadcrumb and will be more clear that is under the 'archived specs' section.

http://orcharddoc.readthedocs.io/en/mkdocs/Documentation/Themes-includes/


Revert response codes 202-2XX back to being negative responses

So the 204 (no content) code will continue to work as a non-failure logged negative response to resumable.js "test GET" requests.
This PR partially reverts the unintended and undesirable side-effects of another recently merged PR, per my comments here: https://github.com/23/resumable.js/pull/231#issuecomment-121111135
Thanks!  -Vaughn

Just to be clear, the side-effects were made intentionally. That's why I supposed to use a version number that makes this "change of behaviour" clear. As far as I know, the merged changes have not being part of any official release yet.

I meant "unintended" in the sense that the justification for your PR was specifically that 201 should be  "successful" response (which I agree with), but the code submitted flipped the meaning of all other 2XX codes, which led to the unintended consequence of breaking implementations that were counting on 204 as a semantically meaningful negative response. I didn't mean imply that you didn't understand the scope of your change, just that it exceeded what you were actually specifically asking for (201).

Just to complete the circle... The 404 failure logging issue has been reported as an issue for resumable.js here: https://github.com/23/resumable.js/issues/127, and the final resolution was to use 204 as the response instead of 404.

Hey guys -- I'm merging the pull request to revert this with apologies. I simply messed up the check on 204 especially. Going back to the old behaviour at least is the preferable compromise.

@vsivsi @steffentchr Thanks guys. I wasn't aware of issue #127. Glad it has been sorted out :)


Adding ability to notify about the new position of the target element

It's very useful to know then tether changed position of the target element.
var tether = new Tether(tetherConfig);

// and we want to track each target's move (change of position):
tether.on("position", function (placement) {
    // placement has two keys: `attachment` and `targetAttachment`
    // use can use them to know there is your target now
    console.log(placement);
});

I found a better way to implement this. Closing this one...


cannot find Pattern in typing

Environment data

VS Code version: 1.35.1
Extension version (available under the Extensions sidebar): python 2019.5.18875
OS and version: win10
Python version (& distribution if applicable, e.g. Anaconda): python3.7.3 32-bit
Type of virtual environment used (N/A | venv | virtualenv | conda | ...):  N/A
Relevant/affected Python packages and their versions: XXX
Jedi or Language Server? (i.e. what is "python.jediEnabled" set to; more info #3977):  Language Server

Expected behaviour
a. suggest field or method
Actual behaviour
import typing
import re
a: typing.Pattern = re.compile(r'text')
a.

a. does not suggest any thing

Duplicate of #1015. Needs to be specialized as per #535 like other things in typing.


Marc/fix vm

fixe the remaining failing Mips instr
see : https://github.com/o1-labs/proof-systems/issues/2075
Closes #2075

Can you rebase on top of https://github.com/o1-labs/proof-systems/pull/2700 for the CI please?

@marcbeunardeau88 can you change the target branch to match @shimkiv one please?

Please reopen the PR targetting master, @marcbeunardeau88


Can't build it. Linker command failed with exit code 1

Hello!
I tried to build it but got errors:
note: "cc" "-m64" "-arch" "x86_64"
note: ld: library not found for -lSDL2
Maybe you have ideas why that happened?
Thanks!

what OS do you use?

Thanks! That was a problem.
To build it on MacOS you should have sdl2 installed.
It can be done by running this one:
brew install sdl2


added a debian package

asked aurie and another friend to verify it works, and they both has said it works on their system.

I don't think I want to just include a .deb file in the code repository. The proper solution here is probably to try and get this into the official debian repositories, although that's probably not gonna happen any time soon.
I'll close this for now tho, I'm sorry uwu


ha-tahoma V2.4.9: all entities unavailable

Dear team,
After the update to V2.9.4 all my tahoma entities have become unavailable.
I am using a supported device (Tahoma Box) and the integration is installed on HA supervised in VM.
Untill update V.2.9.3 everything was running fine.
Also all scenes have become unavailable.
Furthermore, I have no issues logging in into Tahomalink from the same IP.
Could you please inform me which steps I can take to have everything working again?
Many thanks.
Kind regards,
Robin

I have to set up samba first to roll back. Also, I will share the logs later as I have discovered a very stranger bug. If I delete the Tahoma integration from both the Integrations page and HACS and reboot, everything works fine again. When I reinstall the Tahoma integration again and reboot, everything is unavailable again... So somehow the Tahoma integration keeps running in the background, even after deleting it, and is only functional if it is not listed in the Integrations page and HACS.

I got only 1 issue related to the Tahoma integration in the logs:
init() missing 1 required keyword-only argument: 'last_update_time'
Traceback (most recent call last):
File "/config/custom_components/tahoma/init.py", line 114, in async_setup_entry
places = await client.get_places()
File "/usr/local/lib/python3.8/site-packages/backoff/_async.py", line 133, in retry
ret = await target(*args, **kwargs)
File "/usr/local/lib/python3.8/site-packages/pyhoma/client.py", line 307, in get_places
places = Place(**humps.decamelize(response))
File "/usr/local/lib/python3.8/site-packages/pyhoma/models.py", line 515, in init
self.sub_places = [Place(**p) for p in sub_places] if sub_places else None
File "/usr/local/lib/python3.8/site-packages/pyhoma/models.py", line 515, in
self.sub_places = [Place(**p) for p in sub_places] if sub_places else None
TypeError: init() missing 1 required keyword-only argument: 'last_update_time'

I am running the latest firmware of the Tahoma box (2021.1.4-20). It was an update of a day or two ago.

Many thanks for looking into it. I will try to roll back to a previous version in the meantime. If I somehow can help testing it, please let me know. :)

Could you give https://github.com/iMicknl/ha-tahoma/archive/refs/heads/fix/428.zip a try? Extract this file and place custom_components/tahoma in your custom_components folder.

Sorry for the late response. I will give it a try this evening and inform  you immediately. Many thanks.

I have tested the fix and now everything works perfectly. Many thanks for the solution.


Can't get the dashboard up and running

I have tried several different methods on getting hystrix to work and all of them failed.
I am trying to get this thing to launch in an weblogic container and even tried using the stand alone
If I run the following command
\Hystrix-master\hystrix-dashboard>gradle appRun --stacktrace
I get this error:
FAILURE: Build failed with an exception.

Where:
Build file 'D:\Users Documents\francois17\My Documents\component-management-framework\hystrix\Hystrix-master\build.gradle' line: 11

What went wrong:
An exception occurred applying plugin request [id: 'nebula.netflixoss', version: '3.4.0']

Failed to apply plugin [id 'nebula.netflixoss']
Cannot set property 'defaultVersionStrategy' on null object

Try:
Run with --info or --debug option to get more log output.

If I try and deploy the war in weblogic I get this error. Library cannot have Implementation-Version set, without also specifying its Specification-Version
If I try and make use of the standalone jar I get this error
Could not find or load main class com.github.kennedyoliveira.hystrix.contrib.standalone.dashboard.HystrixDashboardLauncher
I don't know what to do anymore

If you just want to simply run it you can try out this one.
https://github.com/kennedyoliveira/standalone-hystrix-dashboard

@Hillkorn I tried that already.
If I try and make use of the standalone jar I get this error
Could not find or load main class com.github.kennedyoliveira.hystrix.contrib.standalone.dashboard.HystrixDashboardLauncher

I checked the repository out and it worked without changing anything. Just ran "./gradlew run"

Hey @s4ndman1 do you have docker? If yes, you can run docker run --rm -ti -p 7979:7979 kennedyoliveira/hystrix-dashboard  and the app will be running on http://localhost:7979/hystrix-dashboard/ or you can checkout the project and run, like this:
git clone https://github.com/kennedyoliveira/standalone-hystrix-dashboard.git
cd standalone-hystrix-dashboard
./gradlew runDashboard

Closing due to inactivity


[PE-D][Tester B] Adding appointment for date in the past

The app allows adding appointment to date which has already passed:
e.g. aa i/S1234567A d/2024-02-20 from/15:00 to/15:30 t/Blood Test note/Follow-up from last consultation

as the time has already passed there isn't too much point in having the appointment created and to be marked as complete or incomplete

Labels: severity.Low type.FunctionalityBug
original: SeaHogs/ped#1

Won't Fix as intended behaviour.
Allow flexibility of backdating appointments in case of exceptional reasons.
Addressed by @ThatGirlJam in the updated FAQ.


[Dynamic Regions]  Some metrics are missing in raftstore-v2

Bug Report

What version of TiKV are you using?

nightly.
What operating system and CPU are you using?

Steps to reproduce

What did you expect?
What did happened?
Some metrics, like tikv_raftstore_apply_log_duration_seconds, raft log lag, are missing

raft log is available now. But apply log duration is still not available.


Standalone pytrees

I think pytrees are among the neatest parts of jax's API, and they are useful in many non-jax projects, too. While you can already use jax.tree_utils for structures of, for example, pytorch tensors, it would be nicer to avoid jax as a dependency in a pytorch project. I think it would be great if pytrees were a separate project/module form jax.
Part of the motivation for this request is that I saw that pytorch internally started following the same design, and that seems a bit silly.

Checkout dm-tree from Deep Mind.

Ah, thanks for the pointer! That sounds like what I was looking for.

Still, it would be amazing if the community collaborated and both pytorch AND jax used the same tree package.
Then downstream packages could define only once packing/unpacking routines for pytrees and get compatibility with both packages...

@PhilipVinc, I agree, even if this initially requires (trivially) wrapping the common tree package for compatibility.