Why nnvm::Node does not have output nodes?

This is more of a question rather than an issue. I am looking at the definition of nnvm:Node in node.h:
class Node {
 public:
  /* \brief The attributes in the node. */
  NodeAttrs attrs;
  /*! \brief inputs to this node */
  std::vector<NodeEntry> inputs;
  /*!
   * \brief Optional control flow dependencies
   *  Gives operation must be performed before this operation.
   */
  std::vector<NodePtr> control_deps;
......

I am wondering why you don't have output Nodes for each of your graph nodes? Since it looks like your graph does not have Edge either (as like the Graph in TensorFlow). Can anyone explain how this works? Thanks!

This is how I see: Note that NodeEntry contains a NodePtr, and NodePtr in NNVM is a shared_ptr, i.e., it's reference counted. If output is also placed in Node, the reference goes both directions. Then the Node objects will not be released properly. Although we have weak_ptr that allow us to refer to Nodes without increment of reference count, it involves more complicated management of resources. So for simplicity, it's not used.
Also, the symbol NodePtr is defined to allow future adjustment of implementation of it. Maybe someday it no longer is a shared_ptr. So we cannot rely on shared_ptr-only features too much, we simply consider it as a reference.

@PENGUINLIONG Thanks for the reply. From memory management point of view, your answer makes sense. Maybe I am thinking too much about the TensorFlow data flow graph, but after more thinking I am a bit confused now, I don't really understand why for the TF data flow graph we need edges and also the index of src/dst for each edge...

It's pretty common that in architecture design period people come up with an idea then find it troublesome a couple of months later. Maybe graph edge is not the best design over all, but when they decided to use it, it just prevailed. Then versions are released, they can't simply abandon it for compatibility concerns.


Adopt current process cwd.

Expected to suggest "E:" items.

The relative completion are based on the current document/file.
I'm not sure how we could get access to that cwd folder inside a notebook.
Feel free to explore and open a PR if you find a good solution for this use case.


Document bug bounty policy

Whilst we receive a number of great issues through the security mailing list, many are accompanied by requests for a financial reward (commonly known as a "bug bounty"). This isn't something Wagtail offers.
This PR explicitly documents that we don't support people requesting money in exchange for reports (also known as a "beg bounty"). This gives us some documented and reviewed wording we can send in response to these requests.

Merged in 6fa39856747523da90e2e0f40bf2322d784b6708


expandAllChildren

Upon initial loading of the tree, it can be completely unfolded. But upon going back to the previous page and subsequently redirecting to this page, the tree does not unfold anew.

also the recursive argument is not used in the code for the function?

duplicate of #34

hi @vsaase
you can achieve this behaviour by using the expandAllChildren(Tree node, {bool recursive = false}) method introduced in the version 2.2.0. You can get the controller on the callback onTreeReady, and then call the expandAllChildren() method on the controller


meta: Allow things annotated with @protected to be accessed in annotations on subclasses

Consider the following situation, using package:freezed:
base_class.dart
import 'package:meta/meta.dart';

abstract class BaseClass {
  @protected
  static const unionKey = 'type';
}

subclass.dart
import 'package:freezed_annotation/freezed_annotation.dart';

import './base_class.dart';

@Freezed(unionKey: BaseClass.unionKey);
class Subclass with _$Subclass implements BaseClass {
  // ...
}

BaseClass provides a static JSON key to be used for deserialisation in implementations, and this implementation uses a package to generate the deserialisation code.
Since BaseClass.unionKey is protected, the linter will show a warning where it's used. This should not be the case, as the value is being used by the subclass.
Should protected things be allowed to be used in annotations on subclasses?

Does it?
This code does not have hints for me.
import 'package:meta/meta.dart';

abstract class BaseClass {
  @protected
  static const unionKey = 'type';
}

@Freezed(unionKey: BaseClass.unionKey)
class Subclass implements BaseClass {
  // ...
}

class Freezed {
  const Freezed({unionKey});
}

@srawlins is this something fixed recently?

I don't think anything has changed with @protected in weeks or months.

That example wasn't compelling for me because protected members are suppose to be visible in the defining library, so I split it into two libraries. Given a.dart:
import 'package:meta/meta.dart';

abstract class BaseClass {
  @protected
  static const unionKey = 'type';
}

and test.dart:
import 'a.dart';

@Freezed(unionKey: BaseClass.unionKey)
class Subclass implements BaseClass {
  // ...
}

class Freezed {
  const Freezed({unionKey});
}

I see no errors. But if I remove the implements clause from Subclass then I see an error. (The message is horrid, by the way: "The member 'unionKey' can only be used within instance members of subclasses of 'package:test_package/a.dart'.".)
But the whole example is still poor because the documentation for protected says

Used to annotate an instance member in a class or mixin which is meant to
be visible only within the declaring library, and to other instance members
of the class or mixin, and their subtypes.

(emphasis mine). So technically the analyzer ought to be flagging the use of the annotation as invalid because it's on a static member. Should we extend the annotation to allow it to be on static members?


Entity Class Label renamed to Check Entity Class Label

resolves #23

I find the label a too long and too specific. I suggest to use a much simpler name: geov-hello-world instead of geov-check-entity-class-label
@perrauda do you agree?

OK, I'll make the changes


change: restyles sing shop + oct shop enhanced vision

The styling introduced for Singularity + Octeract shop "enhanced vision" was met with mixed response in regard to its styling.  The change on hover is quite extreme and takes a bit to get used to, after all.
If nothing else, I hope this prompts some design discussion on what better styling might be & how to make these things to the user without requiring "jarring" styling effects.

This proposal keeps the core styling about the same, opting for tweaks that are generally more consistent with other in-game styles where possible.  Where not possible, it opts for commonly-used visual cues if possible.
So, how would this proposed alternative style change things?

After some fun CSS experimentation, I figured out a way to give a faux green / "completed" background to fully-purchased shop items.  The trick:  the image element is given partial opacity, while its parent element is given a green background.

Note that the green background can't be put on the image element.

The faded crimson background replaces the "blur" styling; that crimson is the same crimson used for the "softcapped" text (as seen in the image) after all filter effects are applied.  Said other effects aim to make the options "pop" more while also reducing opacity in order to composite the 'filtered' version with the original.  (Same image on two layers, one altered, one not - then blended together.)
Items at approximately normal coloration and brightness - they're fully purchasable.  At "half" coloration and brightness, they're "in reach", but the player doesn't have enough quarks.
Finally, the dulled-out, desaturated options are simply unreachable at the current max singularity count ever reached by the player.

Oh, and for octeracts:

Very similar styling has been applied, though with one notable tweak.  Since octeract bonuses have no minimum singularity count, what to do?
"Half" coloration / brightness is used for perks that are, or have been, attainable to purchase at some point - even if only on previously-attained levels.  Note that the highlighted perk, Vitamin O, has purchased levels.  Here in particular, it costs less octeracts than the player's lifetime total as well.  So, on two counts, this particular oct perk isn't hard for the player to attain.
The dulled-out, desaturated options are considered fully unreachable by the player.  The rule of thumb I used?  If the base level of the perk requires more octeracts than the player has ever generated, it's completely out of reach.

It's probably worth note that I am currently unable to test the "completed" styling against the perks with a strong pre-existing background color - some testing may be needed for those.
I've put this PR in draft for now mostly because it could probably use a community review or something, rather than triggering a chain of tweaks across multiple releases.  I don't mind undrafting it if desired, though.

Trying both side-by-side, I would say that the upgrades that you can buy are the most important information you want on mouse-over.  A green background on "already purchased upgrades that you can't buy more of", i.e. something you don't care about, shouldn't be drawing more attention by being the thing that visually changes most. Crimson/drop shadow are hard to notice. Honestly, I had wanted to do more too but it was hard to make effects different enough to be noticeable without being too annoying. We need a <blink> tag for images. That's good UX!
Image you're old, or colorblind. Blur your eyes as you look at the screen, or look at the monitor from twice as far away. Invert wasn't what I wanted at first either. I tried many iterations, and it was the best that I was able to come up with. You want the button to say, 'hey click on me', and I believe it does. Part of the reason I liked my version was that it was pretty easy to refine, and I'm very much open to improvement.
It's a UI/UX problem. Why are you mousing over the grid? To buy something. So you want to draw attention to those exact items. I don't know what style Platonic prefers. If I did, I would just implement it because it's his game and he's in charge. It's obviously all subjective and you might prefer your version while I prefer mine at the same time. However, I firmly believe that any change you make should draw the most attention to the purchasable upgrades. Something like adding a Golden (GQ) border around said upgrades would also work if you really want to keep the green.

It's a UI/UX problem. Why are you mousing over the grid? To buy something. So you want to draw attention to those exact items.

I agree with this, but I'd like to add one extra aspect worth consideration:  I'd like to recognize the items I was planning to buy when I mouse over them.
The visual change and contrast are so extreme I generally have to back off, double-check the item and location, and then click based on the location.  While it's nice to visually filter out all the clearly-irrelevant upgrades, I find I no longer recognize the ones that actually are relevant - in particular, the most relevant given the circumstance.
Here's a screenshot I just took with mouse-over highlighting from the live version:

How easily can you identify the upgrades at row 2, column 5 and at row 3, column 2?  To me, they're far too distorted compared to their base appearance... and the blur filter that's part of the styling doesn't exactly help me recognize the original shapes involved.

A green background on "already purchased upgrades that you can't buy more of", i.e. something you don't care about, shouldn't be drawing more attention by being the thing that visually changes most.

This is likely subjective, but I could argue that while that may happen for a split-second, afterward the green-background items will not be the most visually distinct, and thus will not draw more attention than the upgrades which maintain their brightness and saturation.
To be extremely explicit about my underlying assumption:  Things that are more visually distinct draw more attention than those that are less visually distinct.
For a side-by-side comparison:
With mouse-over:

WIthout mouse-over:

Note how the green-background items are faded in comparison to their non-hovered versions.  Fading something into black nigh-inherently makes it less visually distinct.
The most clear and prominent upgrade icons are those that are purchasable.  I realize that the softcapped items may be slightly less distinct than the non-softcapped ones; that is a hard balance to strike.
So, returning to that prior quote:

It's a UI/UX problem. Why are you mousing over the grid? To buy something. So you want to draw attention to those exact items.

My proposition:  rather than actively draw attention to the exact items, the goal is to reduce the screen's visual noise and provide clear visual "filters" that allow the player to far more easily focus their attention on those items.  In other words... to cause everything else to "step aside" and stop demanding attention.
In other other words:

So you want to let the player's attention easily focus on, and easily recognize, those exact items.

In regard to all the above notes, for the full changeset of this PR and what I believe to be the approximate order of visual distinctiveness:

Upgrades with their full/standard saturation and brightness levels (softcapped and non-softcapped)
Upgrades that have been fully purchased.
Upgrades that are "nearly purchaseable" (octs) / unlocked (singularities)

See Cookies 4 (row 2, col 3), the oct "sell out" upgrade (row 3, col 10), the potion upgrade to its right for examples in the comparison above.

Upgrades that are effectively unpurchasable.

I suppose it is possible that items 1 and 2 are inverted.  That said, if so, I'd like to point to the upgrades, achievements, research, and cube upgrade tabs for the reasons I don't expect the green to distract players for long.  That is, by far, the most standardized visual cue when it comes to upgrades. I've long since learned to "filter out" green upgrades when I'm looking for what to purchase... or to focus on the green upgrades when I want to review my progress toward current objectives.

Image you're old, or colorblind.

As for the changes currently in this PR, I'll admit that I didn't think about red vs green colorblindness - that probably would matter with the backdrop and is a good point; a better color should be selected there.

[ ] Better color selection for softcapped items re: colorblindness

Generally speaking, there may be multiple purchasable upgrades, while I'm currently planning to purchase just one type. I'm roughly familiar enough with the upgrades list to remember about where the item I want to purchase is, and thus I usually have visually "locked onto it" before mousing over. The issue: at that point, the current in-game mouse-over formatting completely changes its appearance and actively draws my attention to all of the purchasable upgrades, breaking my visual lock-on. It's as if the styling used "flares", to use an airplane-combat metaphor. (Just in case, to be explicit, the styling actively and immediately diverts my attention away from what it had been on to focus on something - well, somethings else. The original item is included, yes, but that split-second is easily enough to break the lock-on.)

If you're at the point where you have all the shop items memorized and know what you want to buy, I think you can manage clicking on a square that does not move. I agree that the saturation effect and blur effect does distort the icons, but that was the level they needed to be to be visually distinct enough (IMO). My design angle was that the information is in the tooltip box below, and the icon change is to guide the mouse cursor and reveal that tooltip. Honestly, I'm not even sure softcapping means anything anymore because they run away faster than you can catch them anyway. Could easily just remove the blur/saturate, if that's the main sticking point. Originally, my thought was they give you more bang for your GQ, and deserved special attention, but the cost discrepancies, Sing level unlocks, and runaway softcap levels make the extra bang not so significant.
My bias is also to the new player, to people new to the mechanics, and the most frequent questions in discord channels. Not necessarily relevant here, but either I notice a rough edge personally, or the frequency of the same question / irk draws me to it.  You plop down 61 Singularity upgrades that are not sorted by cost, are also level locked, and it's hard to tell when you can buy and when. Researches also suffer from this; but it's a more farmable resource, and then the autobuyer steps in. Wowcube upgrades also have a similar issue, but again it's another relatively quickly farmable resource. GQ are a little more precious.
 In general it does, but the Sing Shop felt a little lacking. Hence the (old) PR.

It's a UI/UX problem. Why are you mousing over the grid? To buy something. So you want to draw attention to those exact items.

I agree with this, but I'd like to add one extra aspect worth consideration: I'd like to recognize the items I was planning to buy when I mouse over them.
Compounding the noted issue above, the visual change and contrast are thus so extreme that I generally find I have to back off, double-check the item and location, and then click based on the location, actively ignoring the formatting so that my lock-on doesn't break again. While it is nice to visually filter out all the clearly-irrelevant upgrades (and you'll note I generally preserved that styling) I generally find that I no longer recognize the ones that actually are relevant - in particular, the most relevant - given the circumstance.

Feels like a straw-man. If you know what the upgrades do based on the icon, you're already far enough along to know what they do base on their spot in the gird. Inversion doesn't change the art, and should be recognizable. Blur and saturate certainly do distort, but nothing refows the grid. Originally I had considered incorporating a hide max, but changing the grid was too disorienting.

Here's a screenshot I just took with mouse-over highlighting from the live version:
How easily can you identify the upgrades at row 2, column 5 and at row 3, column 2 without referencing a different screen or image without the mouseover formatting?

Of course ;d But to mouseout is easy, or mouseover the actual icon gives you the description in the infobox below. I feel like you either know the upgrades or you don't. If you know them, it clearly doesn't matter. If you don't know them, then you have to mouseover every single one. Cutting down the relevant mouseovers from 61(+) to 5-10 is a good thing.

For me... not easily at all. They're far too distorted compared to their base appearance... and the blur filter that's part of the styling doesn't exactly help me recognize the original shapes involved.

Yes blur/saturate is weird and probably not necessary. Although I still kinda like it for the blueness. Art dosen't have to always be practical.

A green background on "already purchased upgrades that you can't buy more of", i.e. something you don't care about, shouldn't be drawing more attention by being the thing that visually changes most.

This is likely subjective, but I could argue that while that may happen for a split-second, afterward the green-background items will not be the most visually distinct, and thus will not draw more attention than the upgrades which maintain their brightness and saturation.

I don't think I expressed this point understandably. Which is sad because it was my main and only point. When I said that I did a side by side comparison, what I did was mouse in and out repeatedly. And when you do that, the green squares absolutely draw more attention. The purchasable upgrades are the only things that don't change, and that's the opposite of what you want to communicate. I maintain that you need to mouseover the individual icon to see cost/effect/buy anyway, and the highlighting is a guide to help achieve that.

To be extremely explicit about my underlying assumption: Things that are more visually distinct draw more attention than those that are less visually distinct.

I agree, this is why invert (which is probably by definition the most different you can make an image ;d) is used to mark the number one priorities. Upgrades you can buy!

I don't expect the green to distract players for long. That is, by far, the most standardized visual metaphor in the game when it comes to upgrades. I've long since learned to "filter out" green upgrades when I'm looking for what to purchase... or to focus on the green upgrades when I want to review my progress toward current objectives.

And yet Plat decided to not use green in the singularity shop. Maybe because it's an evolution of the quark shop, which had icons so big that we needed a hide maxed as the number of upgrades grew? Either way, it's a meaningless UI change with no affect on balance, only usability. I believe it helps new players far more than it distracts seasoned players from being able to click on a memorized box. The fact that I've seen as many positive comments as negative comments about the feature makes me think it's a net gain. Considering that some of the complaints are along the lines of 'why did we get this when all we wanted was a hide max' or something that would be programmatically much harder to implement, I do give more weigh to the positive side.

As for the changes currently in this PR, I'll admit that I didn't think about red vs green colorblindness

Neither did I, until after the fact. It was just luck that it mostly works for various visual impairments. Or subliminal.
Part of me wonders if there would be any negative reaction if this was always the way it was. I feel like it's super useful in the beginning, and by the time you don't need it as much you've already tuned it out.
Sadly, I feel like I'm the only 'discussion' you'll get around this. I tried soliciting feedback on my original PR and it was all crickets. It's great to have someone at least interested to talk to ;p My goal is/was to make it more intuitive for new players. What can we buy? Show them. Are the complaints of the seasoned veterans worth sacrificing that basic premise? I've thought about it a lot. My choices weren't willy-nilly. I'm not trying to prove you wrong, just provide my perspective so you can understand if not agree. Obviously you care enough to contribute, so that's a good thing. Collaboration is fantastic.
TL;DR: Grumpy old farts in later progression channels that don't need any guidance on which upgrades are purchasable do not get to complain about a feature that provides said guidance to new players. Stay off their lawns. (P.s. I am old. And grumpy. But not progressed!) It's late here, but you definitely deserved a response. I hope i was cogent enough; I tried to proofread, but it's very late. I hope i didn't misspell imagine again >_<
Thank you for your consideration. <3

My bias is also to the new player, to people new to the mechanics, and the most frequent questions in discord channels. Not necessarily relevant here, but either I notice a rough edge personally, or the frequency of the same question / irk draws me to it. You plop down 61 Singularity upgrades that are not sorted by cost, are also level locked, and it's hard to tell when you can buy and when. Researches also suffer from this; but it's a more farmable resource, and then the autobuyer steps in. Wowcube upgrades also have a similar issue, but again it's another relatively quickly farmable resource. GQ are a little more precious.
 In general it does, but the Sing Shop felt a little lacking. Hence the (old) PR.

I completely agree.  That is definitely a daunting wall of disorganized upgrades.
The standard set of upgrades is generally well-ordered:  left to right, top to bottom.  Same with researches, though there is a little hopping.  Even then, the fact that many are hidden until certain challenges are completed explains the reasons for the discontinuities.  That 'unlock' factor for researches kept the info flood staggered and manageable - everything there was simpler at first.  It then expanded what was available as the player progressed - so it was never nearly as bad there.  (Unlock thresholds are often a positive thing in games for this very reason!)  Heck, this observation also holds for achievements - left to right, with unlock staging.
But then there are the Singularity upgrades - everything is visible, all at once, that you could ever buy with golden quarks no matter what the minimum singularity level is.  Yep, help is definitely needed there.  100% on board with everything quoted above.  Even though I'm not a fan of the styling, I am a fan of the "something is better than nothing" principle, so thanks for making that PR!

And yet Plat decided to not use green in the singularity shop. Maybe because it's an evolution of the quark shop, which had icons so big that we needed a hide maxed as the number of upgrades grew?

I've noticed that the related icons lack transparency / alpha channels, unlike the icons for the older upgrades.  If those images were donated, and it's hard to add the alpha channels in after the fact... that would make the green hard to implement.
Of course, the previous paragraph being the actual explanation is 90% speculation, 10% inference on my end; it may well be intentional that green wasn't used, regardless of the transparency issue. Without his explicit word on the matter, I don't think we'll know for sure.

Sadly, I feel like I'm the only 'discussion' you'll get around this.

... I'm kind of noticing that, yeah.

Seems like concerns about the formatting have died down, and there's not much interest.  I'll go ahead and retract this.
I'll keep the branch up on my fork for a bit as a just-in-case.


Linking to work items in pull request descriptions doesn't work

Following the guide here doesn't seem to work and the editor seems to treat # as regular markdown instead of linking to a work item. I can also see the # button under the editor is missing, when comparing to the examples on this page.

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

ID: 22780209-b809-62af-1d6e-ed4c91db867a
Version Independent ID: 1d6afe6e-6420-2395-0e0b-05902572f7ab
Content: Link work items to other objects - Azure DevOps
Content Source: docs/notifications/add-links-to-work-items.md
Product: devops
Technology: devops-collab
GitHub Login: @chcomley
Microsoft Alias: chcomley

Thanks for your feedback, @jgn-epp. Once I've published an update, this issue will close. Thanks again!

Hi @jgn-epp, are you still experiencing issues? I've looked into this and the "link to work items" feature is available for Azure DevOps Services, Azure DevOps Server, and TFS 2015 and above.

Maybe I am misunderstanding things, but I expected this to link to a work item, but instead it is acting like regular markdown. And also I am not seeing the # button from the documentation for linking to a work item. How can I check which version of Azure Devops the organization I'm part of is using?


Add a way to know when a TileMapLayer's cell is modified

Hi !
This PR adds the signal cell_changed to the TileMapLayer. It allows for making tools that react to modifications to the TileMapLayer's cells.
This feature was discussed in godotengine/godot-proposals#668. Back in godot 3.2, godotengine/godot#27500 made so the TileMapEditor called TileMap.set_cell through Object.call, this allowed the function to be overridden in GDScript or C# in @tool scripts. However with the tile map reworks, this was removed.
I decided not to reimplement the fix from godotengine/godot#27500 as having a signal seemed simpler while having the same capabilities.

I think this does make sense as a callback. There's certain types of automation tools which automatically place relevant tiles based on the context of surrounding tiles, but such tools require a callback like this.

We lightly discussed in the past (@groud), and we generally agreed that it's not a good idea as is.
This will be emitted every time any tile change occurs. However, to make it brief, emitting a signal for potentially many changes quickly adds up, even if the signal is not connected to anything. Tile maps are not exactly known for their performance as they are now, either.
I may be completely wrong on this, but this will even be emitted on initialization, for every single existing cell.
Despite the concerns, this feature is very much desired. I myself would need this, as I relied on similar behavior in 3.x. What I was somewhat thinking is as follows:

Store the modified cell. This is already done by marking the cell as dirty, see the surrounding code.
When they are all updated in bulk, emit a single signal containing an array of cells that have been modified.

One alternative is to make this signal only available in the editor. It can be argued that while editing the TileMap the performance hit is pretty minor.
Another alternative is to find a way to toggle the emission of this signal but... I wouldn't know how to feel about that.

The issue raised with overloading the signal does seem valid, yes. It's tricky to handle this in a way that won't seem like overengineering things, but a batched solution like you suggested might be desirable. Another potential suggestion I'll offer is that you could make it so that emitting a signal dependent on whether an explicit mode is set in the TileMapLayer, hopefully removing any unwanted overhead for users who don't require such a callback. While not a signal, there is some precedent in the engine already with NOTIFICATION_TRANFORM_CHANGED which requires the explicit calling of set_notify_transform(), which removes the overhead when its not needed as opposed to making it an explicit editor vs not-editor thing.

While not a signal, there is some precedent in the engine already with NOTIFICATION_TRANFORM_CHANGED

Indeed. And that is not a signal for... roughly the same reasons.

Mmh.. Right, I do agree, having the signal here is not a great idea. I understaind how trying to emit the signal would impact performance negatively, and the function actually seems to be called a few times per cell on init. If we add to that the fact that modifying the tile that has just been changed through the signal would require it to be called once more, that is probably a bit much.
A batched solution would definitly be better, as it solves most of the issues. Such a signal/callback would still be called multiple times if tile modifications are made within it.
Would it be better to have the solution inside the TileMapLayerEditor ? (like in godotengine/godot#27500)
Having the TileMapLayerEditor asks some component (either the TileMapLayer itself or some other thing - eg. a TileMapSomethingPlugin) before modifying the TileMapLayer now seems to me like a better choice: it would most likely perform better, and it would prevent issues with having functions called several times.
Was there a particular reason why godotengine/godot#27500 was not kept in 4.0 ?

If we add to that the fact that modifying the tile that has just been changed through the signal would require it to be called once more, that is probably a bit much.

Actually, this would cause a feedback loop and crash the application, unless it is checked manually. It also happens when handling NOTIFICATION_TRANFORM_CHANGED & similar, so perhaps this implementation detail is inevitable. The batched solution wouldn't have this issue, indeed.

Would it be better to have the solution inside the TileMapLayerEditor ?

It's a good suggestion, although TileMapLayerEditor is not exposed to scripting languages so it may not matter too much. Though I can see the desire in having this work at run-time, as well.

Was there a particular reason why #27500 was not kept in 4.0 ?

Being able to override non-virtual methods has always been quirky. Whether it actually works as imagined depends purely on whether the internal code calls the method directly (with pointers), or through Object.call(). In Godot 4.0 most calls are done directly, which is blazingly fast in comparison, but it also means the calls do not go through the overridden methods in a custom script.
I hope I explained it correctly.

Actually, this would cause a feedback loop and crash the application, unless it is checked manually. It also happens when handling NOTIFICATION_TRANFORM_CHANGED & similar, so perhaps this implementation detail is inevitable. The batched solution wouldn't have this issue, indeed.

It is not that bad because it is checked internally (for what I assume are performance reasons). So as long as the tile that the user wants to place does not change between calls, there should not be any feedback loop. However, if the user ever decide to use randomness in the setting of the tile (to make use of tile alternatives for example), there is a chance of a feedback loop crashing godot.

I hope I explained it correctly.

I think you did, thanks :).
Maybe there could be two functions to set a cell then: a "checked" and an "unchecked" one.
The "unchecked" version is the current TileMapLayer.set_cell. The "checked" one would try to call a virtual _set_cell function that can be overridden in a scripting language (giving the same functionnality as godotengine/godot#27500). If it is not overridden, then the "checked" set_cell would do the same thing as the "unchecked" one.
This would work both in editor and at runtime because the user can call the "checked" version if they want. And as a (small) bonus, it would still be possible to call the "unchecked" version from a script if needed for performance.

Hi, thanks for the contribution.
As mentioned by others, I don't think this is a good idea. And, in general, we avoid adding signals that are direct consequences of the user's action (like, here, you need to call set_cell on the TileMap, we would avoid generate a signal right away as the user can simply call another function right away).
Either we add this to the editor, but it might not be easy to do, as there are likely several places where this is called, and it does not handle use cases for in-game situations.
That being said, I think one thing that could be done is adding a callback in the TileMapLayer when cells are updated. Updated are deferred (to avoid too many updates), and they work with a "group of cells to update" being provided. So we could have a virtual method called:
_update_cells(PackedVector2iArray p_array)

And, in general, we avoid adding signals that are direct consequences of the user's action (like, here, you need to call set_cell on the TileMap, we would avoid generate a signal right away as the user can simply call another function right away).

Alright, good to know ! I think it makes sense as well.

That being said, I think one thing that could be done is adding a callback in the TileMapLayer when cells are updated. Updated are deferred (to avoid too many updates), and they work with a "group of cells to update" being provided. So we could have a virtual method called:
_update_cells(PackedVector2iArray p_array)

Yup, that could work. It would still be called mutliple times when trying to use set_cell inside _update_cells to put constrains on cells or to have a custom autotile, which would seem to be the most common usecase of such a feature. However the impact is far smaller than having separate callbacks for each cell modification, so maybe it's the way to go regardless.

Maybe there could be two functions to set a cell then: a "checked" and an "unchecked" one.
The "unchecked" version is the current TileMapLayer.set_cell. The "checked" one would try to call a virtual _set_cell function that can be overridden in a scripting language (giving the same functionnality as #27500). If it is not overridden, then the "checked" set_cell would do the same thing as the "unchecked" one.

If I'm not mistaken, this would not have any of the issues raised so far, as it is called before any modification to the tilemap. In addition, the new function would be called only by the TileMapLayerEditor and by the user when they need it, so it would probably not hinder performances too much.
Though maybe it should be batched. Some use cases could benefit from it (I know I could make use of that). Then the callback could look something like: _set_cells_checked(PackedVector2iArray coords, PackedInt64Array source_id, PackedVector2iArray atlas_coords, PackedInt64Array alternative_tiles) (I don't really like this name: I don't feel that it properly describes what it does).
Should I try some of the ideas and see what sticks ? They don't seem to require a lot of work to have in a working state, so that might help decide on what is best.
If I do so, should I link the experiments here or should it be done elsewhere ?
Also, should this PR be closed and replaced by another one when a solution has been reached, should it be commited in this PR ?

Yup, that could work. It would still be called mutliple times when trying to use set_cell inside _update_cells to put constrains on cells or to have a custom autotile, which would seem to be the most common usecase of such a feature. However the impact is far smaller than having separate callbacks for each cell modification, so maybe it's the way to go regardless.

No. This function is guaranteed to be only run once per frame. So if you call set_cell in that function, the update will be ran in the next frame. I believe it's an acceptable tradeoff though, to avoid infinite updates.
As a side note, I'd really avoid making the API more complex than it is right now. I'd rather avoid adding more argument to set_cell, or new functions it's hard to understand what they do at a glance.

 Yes I did something wrong, I was about to work on @Mickeon's and @groud's idea and wanted to reset the previous commits.
Should I reset to get back those commits ? We did all agree that what was initially done was not a good idea, and that something else had to be done.

I'd suggest opening a new PR with a separate branch so you avoid issues with the master branch, good to start from scratch

This is how I use it


Cannot find module 'beam-client-node/lib/ws'

I am trying to update to 1.x.x from 0.13.0, when I try to run there is this error "cannot find module 'beam-client-node/lib/ws'
I believe I had ws 1.0.0 installed with 0.13.0 (since 0.13.0 required ws 1.0.0)

The project structure was changed with v1 (hence the breaking change), you should be able to import all contents from the root package eg. beam-client-node.

@SimonSchick  thank you for the reply.

Currently I just change the version of beam-client-node in package.json to 1.0.0 and run 'npm install'

Sorry, my mistake, in my code I required beam-client-node/lib/ws.


Add four missing diagrams, provide contributor instructions, and update mermaid.

The addon was missing support for MindMaps, Quadrants, XY, and Block-Beta.

Added Support for those types.

Added instructions for contributors to help out.

Let me know if you'd like me to change anything. I was a little iffy on the instructions. It's seems like there should be something more general purpose, but a lot of it is all about creating a plugin from scratch.

Bumped mermaid to the latest version.

Screenshots of new diagrams rendering in my local vanilla Backstage instance:

Mermaid adds Katex support in 10.8

@jtreher this looks great, would you mind running yarn install locally and committing the resulting lockfile?

@johanneswuerbach Ah, I was running yarn install, but it was only generating the lock file for the root Backstage folder. I had to remove the monorepo tooling.
Also, I bumped the package version.
It still seems like I need to do something.

Thank you for the contribution @jtreher 🤩 , published as<EMAIL_ADDRESS>


Clean up warnings and suggestions rule

Corrects quick replace text
Removes CRUD from Warning rule since "CRUD" is caught by the Abbreviations rule
Removes a lot of Suggestion terms because these are now in the reworked Usage rule https://github.com/redhat-documentation/vale-at-red-hat/pull/585

This PR is a more manageable piece of this larger PR: https://github.com/redhat-documentation/vale-at-red-hat/pull/539

@aireilly - Updates LGTM :+1:  - Think this one is ready to merge :tada:


Browse Blueprints

Browse Blueprints should be a top level feature.
From the home page (or anywhere) I would like to be able to navigate to Browse Blueprints.
I would like an easy way to see all of the available blueprints.  Perhaps Browse Blueprints could show a list of most recently uploaded/updated blueprint by default, and then allow the user to search or select ways to filter them.

@garretsimpson thanks for your feedback!
As you correctly mentioned, I will change the default sort order to "created descending".
You can use https://shapez.soren.codes/blueprint/search to view all blueprints. It can be reached if you use the general search function (top-right) to search for blueprints.
Would you like to have a dedicated button for that?

It can be reached if you use the general search function (top-right) to search for blueprints.

I can't figure out how to get to https://shapez.soren.codes/blueprint/search from the search function.  You either have to enter a value (which filters the results) or click on a link, none of which go there.  Yes, I would like a way to get to an unfiltered Browse Blueprints with one button.

 - this will be the button.
You can search for blueprints, users, features and enter shape codes. This is a common tool/feature on modern websites.


LineEdit doesn't open keyboard

Godot version: 3.5-rc5
OS/device including version:
Issue description: When clicking on LineEdit the keyboard doesn't show up
Steps to reproduce:
Minimal reproduction project:

You need to use Actions builds for OSK support. This will come to release in a later update


"getBoundingBox" request

Hi again,
Can I ask to add support of 'getBoundingBox' method in VisNetworksService?
Thank You!

you can give<EMAIL_ADDRESS>a shot

Thx! Check It,

work like a charm =)

glad to here

Released as version 2.3.0: https://github.com/hypery2k/ngx-vis/releases/tag/v2.3.0


katex parser error

$\S$

produces
ParseError: KaTeX parse error: Expected 'EOF', got '\S' at position 2: \S̲
    at new h (http://<IP_ADDRESS>:8801/ab011a1/beaker/app/dist/beakerVendor.js:101202:4740)
    at p.expect (http://<IP_ADDRESS>:8801/ab011a1/beaker/app/dist/beakerVendor.js:101202:5254)
    at p.parseInput (http://<IP_ADDRESS>:8801/ab011a1/beaker/app/dist/beakerVendor.js:101202:5521)
    at p.parse (http://<IP_ADDRESS>:8801/ab011a1/beaker/app/dist/beakerVendor.js:101202:5363)
    at a (http://<IP_ADDRESS>:8801/ab011a1/beaker/app/dist/beakerVendor.js:101204:6421)
    at Object.p [as render] (http://<IP_ADDRESS>:8801/ab011a1/beaker/app/dist/beakerVendor.js:101202:959)
    at i (http://<IP_ADDRESS>:8801/ab011a1/beaker/app/dist/beakerVendor.js:101206:1232)
    at o (http://<IP_ADDRESS>:8801/ab011a1/beaker/app/dist/beakerVendor.js:101206:1407)
    at s (http://<IP_ADDRESS>:8801/ab011a1/beaker/app/dist/beakerVendor.js:101206:2016)
    at preview (http://<IP_ADDRESS>:8801/ab011a1/beaker/app/dist/beakerApp.js:6805:47)(anonymous function) @ angular.js:10126(anonymous function) @ angular.js:7398Scope.$apply @ angular.js:12911(anonymous function) @ markdown-editable-directive.js:139CodeMirror.signal @ codemirror.js:8033onBlur @ codemirror.js:4152(anonymous function) @ codemirror.js:8199

should produce

Seems to not even work on http://khan.github.io/KaTeX/ with \S
This might be worth raising on the KaTeX repo an an issue.

https://github.com/Khan/KaTeX/issues/237

It's just not in the subset of LaTeX that is supported.
We will need to catch these errors then, and pass the source through, but with a hover that reports that KaTeX error.

https://github.com/twosigma/beaker-notebook/pull/1770


Temporary files not deleted

Hi,
The named temporary files that are created never seem to get deleted (delete=False). This causes the files to pile up in my /tmp dir. I've found the _cleanup function, but it doesn't seem to get invoked. One reason could be exception raising and the stream never being iterated at all. I think there should be some kind of context manager to prevent this. I'm also not sure how this should work with the wait=False mode.

So the model you are running is raising exception?
If so, this is the expected behavior.
The idea is that when an error raises PyMzn does not delete the model so you can check where the error is.

Ahh, I get it now, thank you. I would have expected it only keeps files around when keep=True. I'll close this  issue as "by design" then.


[$250] Changing "Purchase bill date" clears "Purchase bill status" Authorised value

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Issue found when validating #41583
Version Number: 1.4.74-2
Reproducible in staging?: y
Reproducible in production?: new feature
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: Applause internal team
Slack conversation:
Action Performed:

Log in with a new expensifail account
Create a workspace
Enable accounting from the Workspace settings
Connect to Xero
Navigate to Workspace settings - Accounting - Export - Purchase bill date
Change it to a different value
Log out
Log in with the same account
Navigate to Workspace settings - Accounting - Expor

Expected Result:
The value shouldn't clear.
Actual Result:
Changing "Purchase bill date" clears "Purchase bill status" Authorised value. I'm unable to set any value for the field.
NOTE : We are not sure it is intended
Workaround:
Can the user still use Expensify without this being fixed? Have you informed them of the workaround?
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence
https://github.com/Expensify/App/assets/43996225/a0532805-e02d-41cd-9469-d71e430afd2f

View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~011cccc97f51a7d2bb
Upwork Job ID:<PHONE_NUMBER>142639104
Last Price Increase: 2024-05-22

Issue OwnerCurrent Issue Owner: @getusha

Adding to #wave-collect as this is a Xero bug

Trying to reproduce the issue

🎀 👀 🎀

@luacmartins could you please check if this is something we can fix on the BE? thanks! https://github.com/Expensify/App/issues/42317#issuecomment-2123740638

Yea, this seems like internal work cc @lakchote

This is internal, no update just yet - @lakchote are you across this?

Go away Melvin

@greg-schroeder @luacmartins @kavimuru @getusha not a bug, and no BE fix needed.
Testing needed to be done on the ad hoc build, since there was the merge freeze.
You can test it out here: https://42340.pr-testing.expensify.com/ (PR)
I've tested it there, and the value for Purchase bill status doesn't clear out, and we can choose different values for it.

Nice, so can we just close this issue then?

Nice, so can we just close this issue then?

Yes, I'm closing it


Refresh CUDA 12 migrator

Recently the CUDA 11.8 migrator was closed out ( https://github.com/conda-forge/conda-forge-pinning-feedstock/pull/5340 ). As part of that it was determined a small updated was needed to the CUDA 12 migrator ( https://github.com/conda-forge/conda-forge-pinning-feedstock/pull/5340#discussion_r1441268175 ). While this largely works for most feedstocks without changes, those that have use_local: true will have issues with re-rendering until the CUDA 12 migrator they have is updated. This PR pulls over those updates to fix re-rendering on the feedstock. Please let us know if you have any other questions.

Hi! This is the friendly automated conda-forge-webservice.
I've started rerendering the recipe as instructed in #60.
If I find any needed changes to the recipe, I'll push them to this PR shortly. Thank you for waiting!
Here's a checklist to do before merging.

[ ] Bump the build number if needed.

Fixes #60

@conda-forge-admin , please re-render

This is passing! 🎉
@conda-forge/pytorch_scatter this is ready for review 🙂


Request: Mark Truths

While marking the lie in each row is an extremely useful feature, it's also tricky and frustrating when it's narrowed down to, say, one of two positions. Having some alternative that could help me remember the three letters that must be valid clues for the solution would be really nice in these situations - rather than having to bounce the flags back and forth between two complex chains of possibilities and try to juggle all that in my head.

it may take me a while to get to this, but my thinking is that right click or long-press a tile could put a padlock on it. if it's unflagged that means it's true, and if it's flagged that means it's false (and not being used speculatively). does that sound like it would work?

Hmm, I'm not totally seeing how that works in my mind's eye from that description, but maybe rephrasing it would help it make more sense.
Thinking about it from what would feel natural (and fast!) to me - despite it being a slight controls change - is making a short press/left click toggle between 'uncertain' (default, no icon) and 'trustworthy' (lock or thumbs up or idk).
Marking lies would be the slower option (because it requires more information to do) and I'd suggest making the flags larger, draggable icons that could be dropped onto letters when you're confident they were incorrect. Tapping the original spot they started could reset it; and right click and long-press are valid alternate controls as well.

Giving the keyboard letters a border or something when it's color is marked as verified somewhere would be a neat touch, too!

I used today's puzzle to make a mockup of what I was thinking in this and the other thread about UX design - a basic check seems like it's mostly alright with most forms of impaired color vision (but would definitely need some tweaks for high contrast mode).
Probably should have used an unlimited instead of spoiling today's puzzle but oh well, hopefully no one is checking github on this specific day before doing the puzzle.

that looks pretty good!
i added a really basic thing today. it's just right click to highlight a tile. it doesn't have any effect on the keyboard (yet) nor any mobile control, just want to see how it feels.
btw you said marking lies takes more information than truths. technically true, but i don't know if it matches how people use the flags in practice. personally, i liberally mark things as lies in a speculative fashion, then i make a guess that fits the lies i've marked. i don't wait until i know something is a lie to start marking it.
when i look at your mock up, it kind of make me want to:

get rid of the flags and replace them with these red underlay Xs
right click a tile to "lock it in". if it's a truth it displays a light blue border (and keyboard updates accordingly). if it's flagged/X'd it displays a dashed black border (like the final puzzle does on the actual lies).
maybe: when you lock in a lie, it auto-toggles the rest of the rows to locked-in truths

i'm enjoying the current implementation. please reopen if it doesn't fit your needs!


Uncaught TypeError: Unable to get value of the property 'replace': object is null or undefined

I'm working with asp.net mvc 2 and 3. No matter what I try I get this error. I've referenced the js/css files using the following code.
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">        google.load("jquery", "1.4.2"); </script>
<script src="../../Scripts/jqtouch.js" type="application/x-javascript" charset="utf-8"></script>
<style type="text/css" media="screen">@import "../../Content/jqtouch.css";</style>
<style type="text/css" media="screen">@import "../../Content/themes/jqt/theme.css";</style>

I've also initialized jqt using the following code.
<script type="text/javascript">
    var jQT = new $.jQTouch({ icon: "jqtouch.png", addGlossToIcon: false, startupScreen: "jqt_startup.png", statusBar: "black" });
</script>

The script explodes in the "setHash" method on the jqtouch.cs file on the following line.
hash = hash.replace(/^#/, ''),
Any help is most certainly going to get a "Your the man response" as this has been one of the most frustrating experiences I've had in a while.
Thanks,
Corey

For the benefit of others who might be having the same issue (ahem), it would be helpful to post what it was you were doing wrong.

Sure, I started a fresh asp.net mvc project and added the refs. Apparently I must have left something out the first time but I am not sure what. If you ask me this should be handled by the lib. Nothing worse than poor error handling.
I understand the frustration of seeing someone with the problem who doesn't bother to mention their solution, happens to me quite a bit.


armoryctl atecc command and Error : sysfs-i2c: no such device or address

Hello (yeah again), when I reboot the usbarmory and run  the command armoryctl atecc info before the command  armoryctl atecc self_test, the command return the following error : Error : sysfs-i2c: no such device or address. (Same for new commands I add to the tool)
Any idea why ?
Thank you in advance.

Ensure that i2c modules are loaded:

sudo lsmod |grep -i i2c

i2c_dev                16384  0
i2c_imx                20480  0
i2c_core               40960  2 i2c_imx,i2c_dev

Ensure that you are running armoryctl with sudo:

sudo ./armoryctl atecc info
serial:0x... revision:0x00006002

I am in root mode (sudo su -) and when I type the command lsmod |grep -i i2c, there are no problem.
In fact the problem comes for the first command(s) I type, regardless if it is info or self_test.
But when it is detected it doesn't fail anymore.

To resume the situation : I am in root mode (sudo su -) and I have the same result as you for the lsmod |grep -i i2c command.
And what ever I am doing, the info and selftest commands return the error message what ever I am doing (i2cdetect, lsmod..., make) before I run them. And when it works fine once, it works fine after.

We think this is due to the device needing a sync and/or wake-up depending on the I2C bus state, we are pondering options to mitigate it in armoryctl library.
FYI i2cget (the Linux command to query the I2C bus) does the same, though it would make sense to work this around in our library.

I don't if it helpful but this problem came to me after you changed the library to change the sleep state to an idle state in the ExecuteCmd function.

Can you try and re-introduce this sleep to see if it solves the isssue?

The problem seems to be solved with it

I am currently testing narrowing it down per datasheet, it should be:
time.Sleep(1500 * time.Microseconds)

Can you please test this fix and close the issue if it works? Thanks!

time.Sleep(1500 * time.Microsecond) is better  (Microsecond without s).  And it works also with time.Sleep(CmdExecutionTime).
However when I shut down my usbarmory (unplug it) and replug it I don't have the response (neither an error) of the command typed (example: armoryctl atecc info). I have to use the make command to have the response again.

Typo fixed in my last commit.
I am afraid I don't get the second part, can you rephrase please?

Nevermind it works.
I said that when I rebooted the usbarmory and ran an armoryctl command, it was not printing the resulting string (for info command, the serial number) but it works now.
Thank you for your responses and reactivity.


Allow me to configure bevy to panic if a resource doesnt exist, like it did in 0.14 (infallible resources)

What problem does this solve or what need does it fill?
bevy 0.15 is very annoying for me now because if i forget to register a resource, the code just wont work and i dont know why without digging through my logs.
What solution would you like?
I would prefer if I could make it works like in 0.14 where it would panic when a resource is not registered.
What alternative(s) have you considered?
na
Additional context

duplicate of #16578


Epic: Desktop developers can package, distribute, release, and update their applications to multiple desktop platforms and architectures

Summary
.NET 6 is introducing multiple new targets including Xamarin 6 and the possibility for Blazor client applications. As these applications will offer deployment scenarios on platforms and architectures that are not currently supported for client applications, we will expand our deployment tooling to cover these scenarios.

Note: This is a proposed experience for .NET 6 and not yet committed.

User Stories
User Stories under this Epic:

[ ] Xamarin 6 developers building desktop applications need to package and update their applications for multiple platform targets.
[ ] .NET 6 desktop application developers need to manage their build pipelines, versions, telemetry, and channels for their releases.
[ ] Create installable artifacts for Blazor hybrid desktop apps for Windows, macOS, and Linux.

Bulk closing .NET 6 epics and user stories. If you think this issue was closed in error, please reopen the issue and update it accordingly.


-beta halloween

How do we do this with arkmanager?

Unofficals can enable the event by updating to the “-beta halloween” branch

https://github.com/FezVrasta/ark-server-tools/commit/d5a14c74a842f06df272467d58b5661dd707da86

There was an update for it today.  That link above shows it's info.

tnx, https://github.com/FezVrasta/ark-server-tools#configuration-files
os it a setting for arkmanager.cfg or?


Cullgraph should remove empty namespaces

Decided that it should not. Lots of issues pop up if I remove the namespaces.


Faster Tag Substitution

BonMot 4.0 uses (NS)XMLParser. We believe there are some performance gains to be made by using a home-grown XML parser that supports only the subset of features that we care about.
NOTE: We currently don't see a lot of value in maintaining the custom start/end tag approach. Argue your case here!

(NS)XMLParser seems to be doing fine. Feel free to reopen if you see specific performance issues you'd like to see addressed.


SAML audience support

Can I set audience in the app,it was needed when it supply the saml auth methord.

Closed as resolved


Revert "fix(proxy-cache): changes age param"

Reverts Kong/kong#12812

Could I get the explain for this revert?

Could I get the explain for this revert?

we can get away without a schema change to get the desired behavior. see #13387


CTest-based dashboard testing

The requests adds new CTest scripts for OpenCV dashboard testing, which includes:

repository update;
project configuration via CMake;
building;
testing;
code coverage analysis;
memory check analysis via valgrind;
packaging;
submitting results to remote server (currently disabled).

The new scripts will allow users to perform full OpenCV testing on their machines and send reports to a common place, for example CDash server (http://my.cdash.org/index.php). This can be used as an extension for current testing procedure to cover larger number of possible configurations (OS, compilers, features like CUDA, etc.).
For detailed information please refer to the README file.

@asmorkalov, please, don't forget about this PR.

@asmorkalov, can you look at the PR?

@jet47, @asmorkalov, why did you close this PR? I think it's useful.

I will improve it and reopen later.


Pip3 requirements

Sorry if this is a noob question, but i encounter this error when running the command "pip3 install -r requirements.txt"?
ERROR: Could not find a version that satisfies the requirement tensorflow>=1.4.1 (from -r requirements.txt (line 7)) (from versions: none)
ERROR: No matching distribution found for tensorflow>=1.4.1 (from -r requirements.txt (line 7))
Im using windows 64 , Python 3.5.2 , and pip 19.3.1 . Thanks

Oh i think i need python 64 for this...

Nvm that didn't seem to help.. i tried python 3.7.3 as well

Ok so im using AMD gpu.. could that be the issue?

May this stackoverflow posts helps you out
https://stackoverflow.com/questions/38896424/tensorflow-not-found-using-pip
Just try to search for a wheel-File for the desired tensorflow version. Also consult the tensorflow documentation for more informations.

Thanks, but that answer link he posted looks like its for mac? not windows?
"The windows version of the URL (for v.1.2.1) is storage.googleapis.com/tensorflow/windows/cpu/…. This only works with the AMD64 version of Python"

Did it work? Or do you still have the same issue?

I dont know, i dont really understand how to run it..

python extract_data.py
Traceback (most recent call last):
File "extract_data.py", line 1, in
from DataExtractor.extractor import Extractor
ImportError: No module named 'DataExtractor'

Ok i did pip install natsort and pipinstall tqdm now i get this error ...

Traceback (most recent call last):
File "DataExtractor/extract_data.py", line 1, in
from DataExtractor.extractor import Extractor
File "C:...\cnn-number-detection\DataExtractor\extractor.py", line 11, in
from tensorflow.python.keras.preprocessing.image import ImageDataGenerator
ImportError: No module named 'tensorflow'

I dont really have time to figure this out now i have to study other things tomorrow

No.. still trying to get it to work
python DataExtractor/extract_data.py

Using TensorFlow backend.
C:\Python36\lib\site-packages\skimage\external\tifffile\tifffile.py:305: UserWarning: ImportError: No module named '_tifffile'. Loading of some compressed images will be very slow. Tifffile.c can be obtained at http://www.lfd.uci.edu/~gohlke/
"ImportError: No module named '_tifffile'. "
Traceback (most recent call last):
File "DataExtractor/extract_data.py", line 2, in
from Trainer.Models.model_gnet_deep_v2 import ModelGNetDeepV2

@FabianGroeger96  Broo @crzdg  do you guys have any ideas?? Did you guys even test this on clean
python windows 10 installation? Do i need linux to make this work?

@ugotjelly Hi!
We do not have time to solve this problem at the moment as we in big stress with work at the end of the year.
For sure this is tested and working? Tested against Mac, Linux (Raspberry Pi) and Windows. I'm happy to test it again as soon I can get into it.
Meanwhile, please watch your tone! We normally don't give any support for problems which clearly environment related. We assume that you have the proper knowledge and background to get projects like this running. We're doing this out of goodwill!
Please study the README again and follow the steps carefully and completly. This project won't run out of the box, as clearly stated in the README.
Enjoy your weekend. I will get back to you as soon wee find time for it.

Ok thanks

Anyway i feel like this needs more steps explanation "run the extract_data.py file and call the method extract_data() from the Extractor" seems ambiguous to me . How do i call the method (by editing the python file?) and where do i run it from? I uncommented the extractor.extract_data() line and ran it from the root cnn directory but then i got another error so i uncommented "Trainer.Models.model_gnet_deep_v2 import ModelGNetDeepV2" and delete "brightness_range=[0.5, 1.5]" Now it created some pickle files outside my directory but data_extracted contains empty folders

@ugotjelly
We will do a refactoring of our code so that it is easier to use. We will keep you updated.
Thank you for your remarks


cmd/dex-worker: wait 'til connectors are available

Otherwise, if worker starts without connectors, and then connectors are
added workers have to be restarted to pick up the changes.

LGTM


loading fonts?

How would this work with csjs/csjs-inject? Doesn't look like anyone has tried this yet.

@font-face should work normally as it would in CSS, but I think maybe you're getting at a couple of things:

Flash of unstyled text
This is basically unavoidable with csjs-inject. If your styles are known at build-time, one option is to use csjs-extractify and serve up plain CSS. Alternatively, you could use csjs-styletron which is essentially a better version of csjs-inject that also supports server-side render-time extraction of CSS. So if you are doing server-rendering, you can serve up the needed styles as an inline CSS element which should help reduce FOUC. I haven't had a chance to document it that module yet, but it works and styletron itself is pretty mature. I think csjs-styletron is probably the best approach (in conjunction with server-rendering) since it doesn't require any buildtime tooling but still can provided nice prerendered initial pageloads.

Scoping of fonts
It seems to me fonts are sort of a global resource so I haven't really looked into it.

But generally, I think because fonts are typically completely static for an app and rarely change, it's best to put all the font-related CSS on a CDN and just stick it in the static document template in the <head>.

Thanks for the info! I'm sure people will find this useful.


Add methods for core-only feature

This is a implementation for #24.
There are remaining tasks:

[ ] Add tests
[ ] Compare ASCII_{LOWER,UPPER}CASE_MAP to a simple if expression.

I have done most of this already, just missing tests for AsciiStr, will open another pull request.

Closing because this PR is superseded by #26.


Default for Fansi Format

If a term cannot be parsed, fansi format should just render its toString method.

Done.


Add the possibility to Tag ApiGateway

Hello!

Vote on this issue by adding a 👍 reaction
If you want to implement this feature, comment to let us know (we'll work with you on design, scheduling, etc.)

Issue details
I'm trying to create an API Gateway with this plugin, and it's all super easy and convenient. I only noticed that tagging is not supported.
Since this plugin uses the pulumi-aws package, I suppose this can be done easily. Can you consider adding it in future releases?

Thanks for the suggestion @MarcoMarinoniMoov. It should be possible to add tags using transformations today, but I agree that it would be nice if we exposed tags on the component resource itself.


Android port of Atom

Since there are keyboards available for Android tablets, it makes a lot of sence to use a modern text editor on these devices. Since Atom is based on Chromium and web technologies, it should be possible to port it to Android.
I guess Atom could be a great first step to coding on Android devices.

There are tablets with fairly beefy 8-core CPUs and full OpenGL and OpenCV (hardware-accelerated 2D rendering API) support that outperform some current laptops and MacBook Pros from a few years ago.  Also, tablets keep getting far better displays than laptops.  Seen the Samsung 10.4 S's?
There are some good Android programming editors but even if it's sluggish compared to a native app, I'd love to have Atom running on my tablet alongside my laptop for coding.

If someone wants to attempt this it should be theoretically possible, but I suspect it would be a metric ton of work. However, it would actually also be super interesting, because of ARC Welder - this could be a vector to get Atom onto ChromeOS, but not be limited by ChromeOS's super strict APIs

Also the "Can we do web-based?" question keeps coming up:
http://discuss.atom.io/t/what-parts-of-atom-are-desktop-dependent/16054
Naturally, if anybody can spend that metric ton of sweat, that would be an even more universal solution.

Porting electron to Android should be the first step.

As a BlackBerry user, I can see this being very useful as my device has both Android app compatibility and a full keyboard. This device has become a little server management machine, and this would only make the experience greater.

for those curious and beyond, GNURoot (i tested deb,fedora,gentoo) & debian noroot are on android firing off linux.  Aiming at a portable javadev/sa setup, it wasn't ideal, but the whole desktop is available ... and therefore running. i haven't run a desktop on it but plenty of ppl on yt have as i was more interested in running java from command line - LAMP stack is readily available.
for MEAN deving a keyboard with trackpad is more workable, i might give it a go - i'm new to atom but the perceived clunkiness may be really good on a touch screen i.e. copy paste rename a file compared to command line is an order of magnitude slower ;)

Yes, please. Maybe Webassembly can make it happen?

+1, I've been moving more and more of my dev environments to docker containers running on aws. Then when on my laptop, i mount the drive locally and use in atom. More and more I've been sshing into the machines with juicessh on my tablet (nexus5) and using vim, but i miss multiple cursors and all my favorite packages. Just a possible use case for all the skeptics out there.

@bgrayburn Check out https://github.com/terryma/vim-multiple-cursors

Ooh that is cool :) thanks @mbirth, would still enjoy having atom
everywhere, but this vim package makes remote editing better for sure
On Sat, Nov 28, 2015, 16:01 Markus Birth<EMAIL_ADDRESS>wrote:

@bgrayburn https://github.com/bgrayburn Check out
https://github.com/terryma/vim-multiple-cursors
—
Reply to this email directly or view it on GitHub
https://github.com/atom/atom/issues/3322#issuecomment-160335247.

What's so bad about DroidEdit or similar editors?

I want the web to win, so a web based solution would help that cause. DroidEdit itself is a great example of something we can aim for with a web-based solution. To this day, there's still no web-based editor that I can use on an Android phone or iPhone. The Ace and CodeMirror experiences on mobile are horrible.

Would be very cool to have with Android OS going mainstream soon.
Also new products like Pixel (from Google, https://pixel.google.com) would be very interesting to see run Atom.

We completely agree that it would be cool to have Atom available on Android and other mobile platforms :grinning: Right now, we're focusing on making Atom an amazing desktop application. Support for mobile platforms isn't on our roadmap at the current time or in the foreseeable future. When that changes, we'll reopen this.
Thanks everyone for your support of Atom!

It's not so much Atom in particular that brought me to this issue, but rather my wondering if Electron supported Android platforms (since Atom is built on Electron). I suppose I was hoping that "cross-platform" in this context included mobile.

checkout Intel's XDK and Crosswalk. it is basically chromium ported to android and it works amazingly fast.

https://crosswalk-project.org/documentation/android.html

So will this ever happen? I would love to program on my tablet in atom.

@FireAntJoe See my comment above.

I'd love to have it on iOS, too! I use Coda now but it's not as fully featured as Atom.

Since people seem to be missing my comment above, I'm going to repost it here and then lock this Issue for comments so that it remains at the bottom for people to see:

We completely agree that it would be cool to have Atom available on Android and other mobile platforms :grinning: Right now, we're focusing on making Atom an amazing desktop application. Support for mobile platforms isn't on our roadmap at the current time or in the foreseeable future. When that changes, we'll reopen this.

Thanks everyone for your support of Atom!


getManifest does not include derivative urns and statuses

The docs state that getManifest includes derivative URNs, but the returned manifest doesn't include them.
I've used forge.commandline-nodejs to test. Calling node forge-cb.js manifest Au.obj (after all other steps, as described in the readme) returns this:
{
    "urn": "dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6dG1wYmNrdDEvQXUub2Jq",
    "type": "manifest",
    "progress": "complete",
    "status": "success",
    "hasThumbnail": true,
    "derivatives": [
        {
            "name": "Au.obj",
            "hasThumbnail": true,
            "progress": "complete",
            "status": "success",
            "children": [
                {
                    "type": "geometry",
                    "role": "3d",
                    "name": "3d Scene",
                    "hasThumbnail": true,
                    "progress": "complete",
                    "status": "success"
                }
            ],
            "outputType": "svf"
        }
    ],
    "region": "US"
}

But the expected object (as tested using cURL) looks like this:
{
  "type": "manifest",
  "hasThumbnail": "true",
  "status": "success",
  "progress": "complete",
  "region": "US",
  "urn": "dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6dG1wYmNrdDEvQXUub2Jq",
  "version": "1.0",
  "derivatives": [
    {
      "name": "Au.obj",
      "hasThumbnail": "true",
      "status": "success",
      "progress": "complete",
      "outputType": "svf",
      "children": [
        {
          "type": "geometry",
          "role": "3d",
          "name": "3d Scene",
          "status": "success",
          "progress": "complete",
          "hasThumbnail": "true",
          "children": [
            {
              "type": "resource",
              "urn": "urn:adsk.viewing:fs.file:dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6dG1wYmNrdDEvQXUub2Jq/output/Au.obj.svf",
              "role": "graphics",
              "mime": "application/autodesk-svf"
            },
            {
              "type": "resource",
              "urn": "urn:adsk.viewing:fs.file:dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6dG1wYmNrdDEvQXUub2Jq/output/Au.obj.svf.png01_thumb_400x400.png",
              "resolution": [
                400.0,
                400.0
              ],
              "mime": "image/png",
              "role": "thumbnail"
            },
            {
              "type": "resource",
              "urn": "urn:adsk.viewing:fs.file:dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6dG1wYmNrdDEvQXUub2Jq/output/Au.obj.svf.png01_thumb_200x200.png",
              "resolution": [
                200.0,
                200.0
              ],
              "mime": "image/png",
              "role": "thumbnail"
            },
            {
              "type": "resource",
              "urn": "urn:adsk.viewing:fs.file:dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6dG1wYmNrdDEvQXUub2Jq/output/Au.obj.svf.png01_thumb_100x100.png",
              "resolution": [
                100.0,
                100.0
              ],
              "mime": "image/png",
              "role": "thumbnail"
            }
          ]
        }
      ]
    }
  ]
}

There are children inside children of derivatives when using cURL, which don't exist when using the library.

Commit d61e20c06c769af140abe0c1e52789042019fffa fixes this issue. Thank you @cyrillef !

no problem :) the swagger parser give me some headaches sometimes ;)


Rename "animation-time-range" -> "animation-range" to match the accepted spec

TL;DR
Rename "animation-time-range" to "animation-range" because this is the latest spec (according to this comment).
WHY
At the moment polyfill implementation diverged from the latest spec.
That means we can't produce tutorials or educational materials that show use of the latest (accepted) spec because the polyfill itself is not up-to-date with the latest spec.
This PR brings the polyfill a little bit closer to the current version of the spec.
@bramus @flackr @kevers-google My apologies for poking you like this directly in this PR. I am not sure how else to draw attention to this 😀

great work. but the author doesn't seem to be maintaining the project anymore? Maybe we should start another project to merge these PRS


apollo5.0 Invalid bazel-bin link

After apollo5.0 is successfully compiled, the bazel-bin link is invalid and cannot be debugged in vscode.

@wuzp986 thanks for using Apollo. We have not tested debugging inside vscode. Please work with vscode team on how to do it. This ticket is being closed. Please feel free to open new issues if you have any. Thank you~~


Resource-Providers

Honestly I would like to have someone else figure out what resource providers are required or optional but here is my list so for after a few deployments.

Summary of the Pull Request

References

PR Checklist

[x] Closes Issue #xxx
[x] Code of Conduct signed. If not, go to Code of Conduct.

Validation Steps Performed

I ran into issues where I was not registered with everything I needed, took a few attempts to find everything I needed.


Sqlite in memory composite unique index not working

I'm using Sqlite "in memory" for unit testing purposes.
I'm setting up a unique index using a composite of 3 properties.
If you can excuse the generics, here is the actual configuration that get's applied to my entity:
 public class MenuItemBaseConfiguration<TMenu, TMenuItem> : IEntityTypeConfiguration<TMenuItem>
        where TMenu : class, IMenu<TMenu, TMenuItem>
        where TMenuItem : class, IMenuItem<TMenu, TMenuItem>
    {
        public virtual void Configure(EntityTypeBuilder<TMenuItem> builder)
        {
            builder.HasKey(a => a.Id);
            builder.HasIndex(a => new { a.MenuId, a.ParentId, a.Name }).IsUnique();

            builder.HasMany(e => e.Children)
                  .WithOne(e => e.Parent)
                  .HasForeignKey(e => e.ParentId);
        }
    }

The issue is, I am able to add multiple of these entities with the same values for MenuId, ParentId, and Name, and SaveChanges successfully - when it should throw an error as it violates that unique index.
I know indexes and constraints don't work for the normal "InMemory" provider, however I was lead to believe (via numerous articles like this mentioning to use sqlite provider instead of inmemory: https://stackoverflow.com/questions/55359713/entity-framework-core-unique-index-testing) that sqlite provider does honour indexes.
I was also getting promising results initially, in the same solution, I also set up a unique index on just a single property, and that does indeed get enforced as expected, so as far as I can tell the problem just seems to be to when using a composite. I've made my repo public with the relevent unit tests to repro the issue.
I'm using latest stable version of EF which is 2.2.6.
Steps to reproduce
See the failing test here named "Cannot_Create_Menu_With_Child_Items_With_Duplicate_Name": https://github.com/dazinator/Dazinator.Extensions.Menus
The test fails because it's expected that an exception will be thrown when saving changes, as the two items that are added both have the same 3 properties used for the unique index.
Note that another unit test titled: "Cannot_Create_Menus_With_Duplicate_Name" passes, and that is checking the unique index on just a single property "Name" rather than composite, and behaves as expected.

Further technical details
EF Core version: 2.2.6
Database Provider: Sqlite with an InMemory connection string
Operating system: windows 10
IDE: (e.g. Visual Studio 2019 16.3 preview 2)

ahhh gees.
I was adding the entity to a collection on a parent entity. It seems that isn't enough for EF to detect that its a new entity for some reason, so the reason it wasn't violating the unique constrain is because I beleive it wasn't actually inserting the entity.
I had to also add the item to the context like this:

 var newMenu = new Menu() { Name = "Foo" };
                var newItem = new MenuItem() { Name = "Same" };
                context.MenuItem.Add(newItem); // I was missing this line
                newMenu.Items.Add(newItem);

                newItem = new MenuItem() { Name = "Same" };
                context.MenuItem.Add(newItem); // I was missing this line
                newMenu.Items.Add(newItem);
                menuSet.Add(newMenu);

                // context.SaveChanges();
                Assert.Throws<DbUpdateException>(() => context.SaveChanges());

Once I did that, it worked as expected.


Provide ability to define resource requests & limits for chaos resources

Today, the chaos resources (runner, experiment job, helper pods) created by litmus do not have resource specification via the chaosengine. While these resources themselves do not eat up much resources (and are typically, run-to-completion entities), it is still necessary to be able to define the resources via the engine, as optional param.
The framework inherently supports this in the chaosengine via:

.spec.components.runner (for chaos-runner)
spec.experiments.spec[].spec.components  (for experiment-jobs/helper pods)

This also ties in with the general requirements to be able to influence deployment decisions of the litmuschaos pods (ex: https://github.com/litmuschaos/litmus/issues/1240 on where to run the pods in the cluster)

cc: @sumitnagal (thank you for suggesting this :rocket: )

This is now available in 1.8.2 release.


RED7Community Creator Tool Download

v<IP_ADDRESS> - RED7Community-Creator-v<IP_ADDRESS>.zip
v<IP_ADDRESS> - RED7Community-Creator-v<IP_ADDRESS>.zip
v<IP_ADDRESS> - RED7Community-Creator-v<IP_ADDRESS>.zip

#7

Replaced by the built in installer!


Enable editing deploy name for each chat session

This PR is to enable users to edit the deploy names of their Azure OpenAI models for each chat session.
Known issue (bug):

When the global deploy name changed, the chat sessions using global configs will not change their deploy name.

sorry for missed the message. just curious about when a user would use a different deploy model without changing their api-key?

I think it's for gpt3.5 and gpt3.5-16k


youtube-dl fails to load video using mpv.net-lib with recent versions of mpvlib/ytdl

Mpv.NET (lib) Version
v1.2.0
Describe the bug
I'm unable to get youtube videos to play, in either my own application (which I thought was at fault at first since it's .NET Core 3.1 WPF) or the example application provided in this repo.
I've tested several different combinations of different versions mpvlib, ytdl, and the ytdl-hooks lua script.

Latest version of each (as of posting)
Versions included in example WPF project
Version of mpvlib included in example WPF project with new ytdl version (with new and included ytdl-hooks)
New version of mpvlib with existing version of ytdl (with new and included ytdl-hooks)
X64 and X86 builds of latest version of each, unfortunately I don't know what version is included in the example, so I can't test the X64 build of that one

I figure the reason why keeping all existing versions the same fails is because ytdl is out of date and no longer works on youtube, so I updated it to the latest (which I tested, and it works in the latest version of mpv standalone), but that still didn't work so I updated the ytdl-hooks script, still nothing, and as I already knew updating the the latest mpv also doesn't work.
To Reproduce
Steps to reproduce the behavior:

Download the latest version of mpvlib, ytdl, and ytdl-hooks and drop in lib/ folder of example wpf project
Add player.EnableYouTubeDl(); before player.Load()
Change player.Load() to use a youtube URL (I've tried several, but the one I'm currently using is player.Load("https://www.youtube.com/watch?v=PXFFEM2UxmY"); FWIW)
Build and run the project
Application window opens, but stays empty

Expected behavior
The youtube video should load and start playing in the application window
Additional context
Here's the MpvLogLevel.Debug output https://gist.github.com/GrumpyBear57/3d46c7411b7cf6179520bdbe7eabc95a
To me it looks like ytdl is technically running, just failing to grab the video from yt properly, but when I run youtube-dl.exe -F https://www.youtube.com/watch?v=PXFFEM2UxmY (or with -f bestvideo) directly from the lib/ directory, it works fine, and as mentioned above, using the same ytdl exe works with mpv standalone.
Interestingly, when I set my own project to debug log, I don't get any output when loading a youtube video, but do when loading a local file. Again, I'm running .NET Core 3.1 for that, so that may be an explanation as to minor differences in output?
Any help figuring this out would be greatly appreciated, let me know if you need any additional information or testing from me.
EDIT: Fixed typo I had in my youtube url, it still fails with the same output, but actually links to the video now
EDIT 2: Some additional things I forgot to mention but realized I probably should (will add more edits here if I think of anything else to test -- unless I fix it, then I'll post a new comment)

Yes I updated ytdl-hooks.lua to set path = "lib\\youtube-dl.exe" (even tried doing ./lib/youtube-dl.exe for shits and giggles), along with checking file permissions on it (windows did seem to be blocking it at first, but after unblocking it it still doesn't work)
I also attempted to manually set the video quality by adding player.YouTubeDlVideoQuality = YouTubeDlVideoQuality.Medium; before player.Load() to no avail

I know it's been over a year but have you resolved this by any chance?
If not, youtube-dl has been superseeded by yt-dlp so you could try upgrading to this.
Also, in your log I saw error [ytdl_hook] youtube-dl failed: not found or not enough permissions so make sure that the youtube-dl.exe or yt-dlp.exe are set to be copied to the output directory as per the instructions in the README.


Reaxff and Input Parameter Validation

Next big contribution!
Addition of ReaxFF Potential
reaxff requires the charge atom type and real units scheme.
Therefore this required an atomic type and unit scheme to be specified for each potential type.
This doesn't break back compatability
Generalisation and Validation of Input Parameters
I generalised some of the input parameter options (e.g. allowing for different integration schemes), and created validation schema for the inputs. This makes the calculation a bit more flexible and also gives early validation of the parameters (before getting to LAMMPS).
This does break back compatibility slightly; a) for the structure of the optimize/md parameter dictionaries (see the tests and examples), and b) I also removed the kbar -> bar pressure conversion, in favour of enforcing a LAMMPS unit scheme.
Ta,
Chris

Great!


HTTPS link to https://ogp.me

saves a HTTP redirect

We have moved the Hugo site source to its own repository, so we would appreciate if you could open this PR directly in hugoDocs:  https://github.com/gohugoio/hugoDocs/pulls


Subset of metatensor.learn.Dataset fails at indexing

When I do
for structure, _ in train_dataset:

where train_dataset is a torch.utils.data.Subset of a metatensor-learn Dataset, I get
ValueError: Index 30 not in dataset

@frostedoyster please may you provide an MWE so we can get quicker to the problem? Also is it possible that this was fixed in #500 ?
I've attempted one here, but with no error:
import torch
from metatensor.learn.data import Dataset

dset = Dataset(
    structure=[0, 1, 2, 3, 4, 5],
    y=[0, 1, 2, 3, 4, 5],
)

train_dset, test_dset = torch.utils.data.random_split(dset, [4, 2])

for structure, _ in train_dset:
    print(structure)

for structure, _ in test_dset:
    print(structure)

outputs:
5
0
2
1
4
3

@frostedoyster MWE or shall I close?


on_classical_vals consistency

add a pylint checker (manual use only, for now)
use keyword arguments everywhere
some style commits
Fix the on_classical_vals methods in arithmetic bloqs

Then there's a more controversial commit that lets us use the classical sim protocol on cirq-ft-style bloqs.
Take a look; The commits should be pretty atomic and I can pull out the less controversial ones; let me know

where's the controversial commit?

where's the controversial commit?

nvm, got it

pulled out the good stuff into #585


Update Mattis-Bardeen fits to extract Rs, gseam

Fix (hopefully) Codefactor on plot_mb.py
Add confidence intervals and constrained fit
This fits Qi^-1 vs. yseam, returns Rs, gseam

Interesting that pylint failed to find any files and thus returned an error. I'll have to look into that since the changes look good.

@nmaterise Upon reviewing the tests workflow and trying to find what broke pytest I discovered that this line remained unchanged and attempts to reference the Mattis Bardeen package which we no longer want to use. I will push the updated tests workflow but it will fail until this is resolved.


Adding compatibility recipes for Tech Reborn and Energized Power

Added some basic compatibility between Oritech and Tech Reborn/Energized Power.
Some highlights:

Ore compatibility in pulverizers/grinders
Alloying compatibility
Added Oritech assembling recipe to Energized Power assembler (not the other direction, Oritech doesn't currently support using more than one item out of an ingredient stack)
Added Oritech ores to output of Energized Power's Filtration Plant
Added Fuel Generation recipes for Tech Reborn's advanced fuels.
Added a couple of tags to recipes to allow for items to be usable in more crafting recipes. Example: any Energized Power wires are usable in place of Oritech's Fine Wire.
Reorganized recipes into directory structure

What this does NOT do:

Attempt to duplicate all of the recipes from other machines
Allow machines from other mods to produce Fluxite/Enderic Compound

Overall, I think that these new recipes should make it more comfortable to use Oritech with the other major tech mods available on Fabric while still leaving the Oritech machines and the other mods' machines with their own specialties.

I also attempted to move the Alloy Forgery recipes into datagen. Trying to add Alloy Forgery to dependencies and import it for datagen completely broke datagen. Alloy Forgery was running its own datagen and producing all of its recipes, and none of the Oritech recipes were being produced. I ended up deciding to leave it as-is.

Damn, this must have been a ton of work. Huge thanks, this is looking great


Move Popular to the right side, Likes to the left

When a user isn't signed in, the whole right side is bare:

This is because unauthenticated users have no likes and no recent songs.
To fix this:

Move Likes to the left side
Hide Likes when empty
Move popular to the right.
Hide Recent when empty

Do this, and unauthenticated users will see this instead:

Implemented.


"kubecfg update" removes server-set default values (v1/Service "ports[].nodePort" field)

Summary
When using kubecfg update to apply a set of manifests to the API server, for Service objects of type "NodePort" that already exist, we lose the ports[].nodePort values set by the server, causing the server to assign fresh node ports. This mutation occurs whether or not we've changed anything in the source manifest for the Service object.
This issue follows preceding discussion in the "ksonnet" channel of the "Kubernetes" Slack team.
Reproducible Example
Consider this Service manifest:
apiVersion: v1
kind: Service
metadata:
  name: example
spec:
  selector:
    app: example
  ports:
  - protocol: TCP
    port: 80
  type: NodePort

Note that the ports[].nodePort fields are absent. If we apply it three times in succession—without editing it in between—we see that kubecfg update induces the API server to supply a fresh node port each time.
% kubecfg update --namespace=default service.yaml
INFO  Validating services example
INFO  validate object "/v1, Kind=Service"
INFO  Fetching schemas for 1 resources
INFO  Updating services example
INFO  Creating non-existent services example

% kubectl --namespace=default get service example
NAME      TYPE       CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
example   NodePort   <IP_ADDRESS>   <none>        80:32585/TCP   25s

% kubecfg update --namespace=default service.yaml
INFO  Validating services example
INFO  validate object "/v1, Kind=Service"
INFO  Fetching schemas for 1 resources
INFO  Updating services example

% kubectl --namespace=default get service example
NAME      TYPE       CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
example   NodePort   <IP_ADDRESS>   <none>        80:30499/TCP   39s

% kubecfg update --namespace=default service.yaml
INFO  Validating services example
INFO  validate object "/v1, Kind=Service"
INFO  Fetching schemas for 1 resources
INFO  Updating services example

% kubectl --namespace=default get service example
NAME      TYPE       CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
example   NodePort   <IP_ADDRESS>   <none>        80:31269/TCP   11m

After creating the Service, we get node port 32585. Then applying the manifest again yields node port 30499 and then 31269, when no changes should have occurred the second or third time.
I suspect the problem is due to kubecfg update sending a patch that overwrites the core/v1.ServicePort object, leaving the "NodePort" field with its zero value, which the API server then takes as a request to assign a fresh port.
Versions

kubecfg
kubecfg version: v0.9.0
jsonnet version: v0.10.0
client-go version: v0.0.0-master+$Format:%h$
kubectl
version.Info{Major:"1", Minor:"11", GitVersion:"v1.11.2", GitCommit:"bb9ffb1654d4a729bb4cec18ff088eacc153c239", GitTreeState:"clean", BuildDate:"2018-08-08T16:31:10Z", GoVersion:"go1.10.3", Compiler:"gc", Platform:"darwin/amd64"}
Kubernetes server components
version.Info{Major:"1", Minor:"11", GitVersion:"v1.11.2", GitCommit:"bb9ffb1654d4a729bb4cec18ff088eacc153c239", GitTreeState:"clean", BuildDate:"2018-08-07T23:08:19Z", GoVersion:"go1.10.3", Compiler:"gc", Platform:"linux/amd64"}

Aha. This is because ports[] is an array, and the semantics for a json-merge-patch (as used by kubecfg) are that arrays are replaced.  This was the motivation for the k8s "strategic merge patch" type that has lots of k8s-specific logic to try to work out how to "merge" json arrays that are conceptually actually named maps or sets in the k8s types.
So: this fix is not trivial and requires replacing the core update primitive.  The (easy-ish) solution is to replace it with strategic-merge-patch (requires other changes too) and do what kubectl apply does.  This has other issues unfortunately, so it isn't as obviously appealing as it might seem (eg: it halves the max size of k8s objects).  I knew improvements here were necessary, but so far had (surprisingly?) not found a hard failure example that was important enough to raise the priority of this work.  I think this bug is that example, and a good test case for future improvements.
The workaround in the meantime is simple (but annoying): set an explict nodePort value in these services, in the yaml/jsonnet source.

If we used strategic merge patch instead, given that the core/v1.Service.Ports field is annotated to use the "Port" field as its key for the "merge" patch strategy, what happens with the "NodePort" field? If the client-submitted JSON object arrives without a "nodePort" field, does strategic merge patch preserve the field that's present in the server's version of the target object?

Yes s-m-p would preserve the nodePort present in the server's version.
If kubecfg used s-m-p, it would look like this:

Before creating the Service, kubecfg stores a duplicated copy of the original object stored as json in a particular annotation.
Send to server with a normal "create" operation.
Some k8s-internal controller allocates a specific nodePort value and updates the ports[0].nodePort field.
A later kubecfg update to this Service, sends the object via a type=strategic-merge-patch "patch" operation (with an updated json-encoded copy in the annotation, to use as the base for future updates).  At this point the server does:

Pull out the "original" object from the annotation on the current/existing value.
Generate a "diff" between the patch request body and the original object.
Apply the diff to the current/existing value of the object.

The server uses hard-coded internal knowledge about v1.Service.Ports (the fact that the ports[] array is conceptually a map keyed by port) to make the "diff" generation/application ignore the actual ordering of elements in the ports[] array.

This "hard-coded internal knowledge" is what makes this all a bit unpleasant, since the client can't actually know what's going to happen.  For example, if you specify a new array of podspec.containers, do you want to replace the existing set of containers, or merge in with the existing set?  Good luck working out what the server will do.
One solution to this is to run the s-m-p logic client-side, which is technically not too difficult, because you can just link in the relevant golang library.  ksonnet/ksonnet does this in newer versions, for comparison.  This is good for predictability, but means the client now has to contain all the hard-coded internal knowledge, which makes the code much larger and ties us strongly to particular k8s server/schema versions.  In any case (server or client side), "2nd tier" objects like CRDs or (with client-side) non-core objects like openshift lose out because they don't have an opportunity to embed their specific logic everywhere.
This last bit is getting slowly better as the mergeKey metadata is added to the exported openapi schema, and CRDs are allowed to publish schemas.  It's literally years behind "tier 1" object types, however.
I've been thinking about this for years (since first starting work on kubecfg), and I'm pretty sure I can intuit most cases from the openapi schema, without needing a 3-way merge.  I just need to code it up (and teach everyone about a different set of odd corner cases).  Unfortunately there's never enough time :(

Another case came to light: If a Deployment's "spec.template.spec.containers" entry lacks a "resources" field, but some other agent then adds that field to the Deployment (such as addon-resizer), the next time I run kubecfg update, even if I haven't changed anything about the Deployment's manifest, kubecfg still overwrites that container entry (again with no "resources" field), which then causes a new ReplicaSet to come along, and then addon-resizer adjusts the Deployment again, and so on.
I'm not sure whether a strategic merge patch would preserve the "resources" field added by the addon-resizer.

Another case: Removing annotations from a PodSecurityPolicy. First I defined the annotations I wanted, and had kubecfg put them in place while creating the object. Later I decided to remove the annotations, deleted them from my manifest, and ran kubecfg update. It fails to remove the annotations.

Thank you! 🎉