Add naming service program

Hi,
here is a short description of a spl-program that would allow issuing, accessing, and managing ownership of: domain names, Solana Pubkeys, URLs, twitter handles, ipfs cid's etc..
The program interface is also given in the readme.
Please let me know if you have any suggestions.

Can we have multiple addresses per name? Is your values an Array of string? Being able to prove that you own your list of public addresses can be important for NFT use-cases.

Thanks for getting this started @Lcchy! I've played with this idea a little and have a sketch of a slight variation.  Here's what the instructions and account state might look like:

/// The data for a Name Registry account is always prefixed a `NameRecordHeader` structure.
///
/// The layout of the remaining bytes in the account data are determined by the record `class`
#[derive(Clone, Debug, BorshSerialize, BorshDeserialize, BorshSchema, PartialEq)]
pub struct NameRecordHeader {
    // Names are hierarchical.  `parent_name` contains the account address of the parent
    // name, or `Pubkey::default()` if no parent exists.
    pub parent_name: Pubkey,

    // The owner of this name
    pub owner: Pubkey,

    // The class of data this account represents (DNS record, twitter handle, SPL Token name/symbol, etc)
    //
    // If `Pubkey::default()` the data is unspecified.
    pub class: Pubkey,
}

/// Instructions supported by the generic Name Registry program
#[derive(Clone, Debug, BorshSerialize, BorshDeserialize, BorshSchema, PartialEq)]
pub enum NameRegistryInstruction {
    /// Create an empty name record
    ///
    /// The address of the name record (account #1) is a program-derived address with the following
    /// seeds to ensure uniqueness:
    ///     * SHA256(`Create::name`)
    ///     * Account class (account #3)
    ///     * Parent name record address, if present (account #4)
    ///
    /// If this is a child record, the parent record's owner must approve by signing (account #5)
    ///
    /// Accounts expected by this instruction:
    ///   0. `[writeable, signer]` Funding account (must be a system account)
    ///   1. `[writeable]` Name record to be created (program-derived address)
    ///   2. `[]` Account owner (written into `NameRecordHeader::owner`)
    ///   3. `[signer]` Account class (written into `NameRecordHeader::class`).
    ///                 If `Pubkey::default()` then the `signer` bit is not required
    ///   4. `[]` Parent name record (written into `NameRecordHeader::parent_name). Optional
    ///   5. `[signer]` Owner of the parent name record. Optional
    ///   6. `[]` System program
    ///
    Create {
        /// Name of the record to create
        name: String,

        /// Number of lamports to fund the name record with
        lamports: u64,

        /// Number of bytes of memory to allocate in addition to the `NameRecordHeader`
        space: u32,
    },

    /// Update the data in a name record
    ///
    /// Accounts expected by this instruction:
    ///   * If account class is `Pubkey::default()`:
    ///   0. `[writeable]` Name record to be updated
    ///   1. `[signer]` Account owner
    ///
    ///   * If account class is not `Pubkey::default()`:
    ///   0. `[writeable]` Name record to be updated
    ///   1. `[signer]` Account class
    ///
    Update {
        offset: u32
        data: Vec<u8>,
    }

    /// Transfer ownership of a name record
    ///
    /// Accounts expected by this instruction:
    ///
    ///   * If account class is `Pubkey::default()`:
    ///   0. `[writeable]` Name record to be transferred
    ///   1. `[signer]` Account owner
    ///
    ///   * If account class is not `Pubkey::default()`:
    ///   0. `[writeable]` Name record to be transferred
    ///   1. `[signer]` Account owner
    ///   1. `[signer]` Account class
    ///
    Transfer { new_owner: Pubkey },

    /// Delete a name record.
    ///
    /// Any lamports remaining in the name record will be transferred to the refund account (#2)
    ///
    /// Accounts expected by this instruction:
    ///   0. `[writeable]` Name record to be transferred
    ///   1. `[signer]` Account owner
    ///   2. `[]` Refund account
    ///
    Delete,
}

The basics
I want the top-level name "michael".  As soon as the name registry exists, I rush to execute NameRegistryInstruction::Create { name: "michael", ...} with a class of Pubkey::default() and set my keypair as the owner (signing with it).  The name record data is whatever I want or even empty.  I have full control over it, and can write data into the record as I please with NameRegistryInstruction::Update, transfer it to somebody else with NameRegistryInstruction::Transfer or delete it with NameRegistryInstruction::Delete.
Also since I own the top-level name "michael", only I can authorize the creation of child records under "michael".
Authority to modify the record data (aka. classes)
The owner of a name record can't always be trusted with the ability to modify it. For example a twitter bot that goes through an off-chain process to link an owner to a twitter handle.  Both the bot and owner need to agree on the handle that will be stored in the record.
Wallet Name Mapping Sketch
Imagine a WalletAddressMap program that's built on top of the name registry.  The WalletAddressMap program owns the top-level "address-to-name" and "name-to-address" records.
I want to link the name "michael" and my wallet address "mvines9iiHiQTysrwkJjGf2gb9Ex9jXJX8ns3qwf2kN".
I ask WalletAddressMap to create two records with my signature:

["michael", "name-to-address"] - holds my wallet address, "mvines..".
["mvines9iiHiQTysrwkJjGf2gb9Ex9jXJX8ns3qwf2kN", "address-to-name"] - holds my name, "michael"

A name-registry aware user wallet can now:
a. Search for the string "michael" in name records under "name-to-address" over RPC to locate my wallet address of "mvines9iiHiQTysrwkJjGf2gb9Ex9jXJX8ns3qwf2kN"
a. Take the address, "mvines9iiHiQTysrwkJjGf2gb9Ex9jXJX8ns3qwf2kN", and resolve the name record under "address-to-name" and read the name "michael" from the account over RPC
If I want to transfer the name "michael" to another user, I need the cooperation of WalletAddressMap to do so. However I can delete the name "michael" without needing WalletAddressMap

@mvines Thanks for the review!

/// The data for a Name Registry account is always prefixed a `NameRecordHeader` structure.
///
/// The layout of the remaining bytes in the account data are determined by the record `class`
#[derive(Clone, Debug, BorshSerialize, BorshDeserialize, BorshSchema, PartialEq)]
pub struct NameRecordHeader {
    // Names are hierarchical.  `parent_name` contains the account address of the parent
    // name, or `Pubkey::default()` if no parent exists.
    pub parent_name: Pubkey,

    // The owner of this name
    pub owner: Pubkey,

    // The class of data this account represents (DNS record, twitter handle, SPL Token name/symbol, etc)
    //
    // If `Pubkey::default()` the data is unspecified.
    pub class: Pubkey,
}

I will add the parent_name field to the NameRecord, sounds good. For the class field I think that this would already be partially given by ValueType. The right to change or not an entry is given to the MetaData authority (the owner in my first draft). For the twitter handle authority this can then be handled exactly like in your WalletNameMapping example.

    /// The address of the name record (account #1) is a program-derived address with the following
    /// seeds to ensure uniqueness:
    ///     * SHA256(`Create::name`)
    ///     * Account class (account #3)
    ///     * Parent name record address, if present (account #4)

Will do, thanks!

I just pushed the modifications to the README, let me know what you think!

Hi Guys!
I believe the readme is missing a list of use-cases. Which use-case are you trying to achieve? :

Decentralized DNS like unstoppable domain
a decentralized username for Solana Users to:
--> receive crypto-payments only of Solana coin? or multiple coins from different blockchains
--> declare their twitter identity
a decentralized username to claim some ownership around public addresses (specially usefull for NFTs creator)
attach identity right and being able to condition asset transfer based on some specific conditions

I would be happy to help or give more feedbacks as I have been CEO of blockchain name service business with starname.
Each use-case is interesting and have some different requirements. At least have a clear picture of which use-cases do the Solana community want to develop is important I believe.
We could organize with the Solana community on this topics with wallet providers etc.. for example.

Hi Antoine, thanks for your feedback!
I believe that with the program draft you would be able to cover most of those use cases, but please let me know if I am missing something:

Decentralized DNS: declare "mywebsite.sol" as a name and write "myrealwebsiteURL.com" as a value for it. When writing "mywebsite.sol" in the browser bar the browser extension will redirect you to the real URL
Decentralized Username: Solana could open a TLD called "sol-user" or something and let people create their usernames name accounts in which they map to any values (solana (or other blockchain) pubkeys, urls, twitter handle etc..). As we plan on integrating the extension to a wallet, you could use it to transfer funds to a username.
Verified username and ownership: As in the readme, use a twitter-scraping-bot which controls issuing of sub-domains of "verified-twitter" for example. The claimed pubkey then has the right to write values into this account and therefore can map to anything it wants.
I didn't get your last point, would this be a degree (strength) of identity verification?

I also thought of a possible integration with keybase which could be nice, it's a sort of identity claiming network where you can share public keys.
But anything is possible, I would be happy to try and make other use cases work with this!

I will add the parent_name field to the NameRecord, sounds good. For the class field I think that this would already be partially given by ValueType.

The ValueType: u16 approach feels too limiting to me.  For example we will run into conflicts when two independent groups decide that a value type of 42 means different things, and now we're back to needing a centralized registry of types.  By using the full Solana address space to define the ValueType, what I called a class, we avoid this as well as introducing the ability to easily connect a ValueType/class to an authority (whomever can sign with that Solana address, be it a system account or program)

Regarding decentralized username

You need to make sure that the owner of the "sol-user" has no right on any username. So the owner of a username is the only one to be able to edit the metadata. Is this the case in your current program?

for decentralized username, it would great to pick a specific format before the username as convention like ~antoine so any wallet partner can recognize the format and resolve to a specific address.

transfer of ownership needs to be possible and ideally we should be able plug a contract to have a secondary market to enable FOMO on SOL username.

Also, we can only map Solana address right now? It would great if you map any kind of asset (not only Solana Asset) to an address following either:
the CAIP-19 specification (https://github.com/ChainAgnostic/CAIPs/blob/master/CAIPs/caip-19.md) CAIP are already used by wallet connect or the slip44 specification or the trust wallet universal asset id spec.

Another approach would be to use the username has a starting point to link to a DID. There are some did provider like https://www.ceramic.network/ or https://aleph.im/ This way, we can add much more type definition and certificate directly to ceramic network. The username is just a pointer to a much more complete data ressources. This approach make your program simpler and you rely an DID partners to store the information.
Regarding certificate, I think there is a really interesting use-case to solve this problem:
https://twitter.com/laufman/status/1370715624058544128?ref_src=twsrc^tfw|twcamp^tweetembed|twterm^1370715624058544128|twgr^|twcon^s1_c10&ref_url=https%3A%2F%2Fwww.theverge.com%2F2021%2F3%2F20%2F22334527%2Fnft-scams-artists-opensea-rarible-marble-cards-fraud-art
Right now, it is very easy to sell a fake NFT and it is very difficult to prove you are the creator of the NFTs. By attaching certificates a signed message for each pubkey you owned to your username, anyone can verify the list of pubkey that a username controls.
My last point was more about regulated finance, most of the security token cannot move freely if the user doesn't have specific properties. So you could attach a KYC information off-chain or on-chain? to a username and you could move your asset only if the username has specific information attached.

Great input @antoineherzog!  I view the naming service as the primate that enables higher-level constructs like what you describe.
I view this service has merely buckets of name to value mappings that are divided into unique domains under some authority.  Authorities are expressed as a Solana address and could be backed by a person, program, or nothing.
Name records are owned by somebody, and they can be transferred to somebody else (in some cases authority approval is required for the transfer).
All the Solana wallet addresses are under one authority for example. The authorities are well-known and documented. But if somebody doesn't like the existing Solana wallet address domain or authority, they could create their own

One more point,
I think it would be a mistake to replicate ENS in terms of design. For example, recursivity of DNS doesn't add lot of value for decentralized username system and add lots of complexity into the system.
To be honest, we should focus on a primary usecase we want to do well and focus on it.
I tend to think that it is better to have several program like decentralized DNS or decentralized username in two different program instead of doing a one size fit all maybe?
I tend to think as well that decentralized DNS add very low value in terms of use-case as 99.999% are currently using traditionnal DNS to view webpage and works pretty well. Personnally I would focus only on decentralized username. Just my personal view on this topic.

Thanks for the feedback! The applications you mention @antoineherzog seem very interesting, like @mvines I also think that these extensions could be built on the naming service as seperate programs in order to keep the modularity.
For the username vs Dns question I hope that the design will permit both kind of usages, as you could associate a url and a pubkey to any domain name or a username.
I am going to push a first version of the program to the PR tomorrow, let me know what you think!

All right I just pushed the first version :tada: Here are some bullet points about the implementation:

The name address is derived from the following: HASH256(HASH_PREFIX, name). The parent account address isn't always existing so I did not include it. Let me know if you that this is not sufficient.
I used a ValueType = Pubkey, thanks for the suggestion @mvines. This should indeed prevent some common values collisions but it also means that different applications that build on top of this program will each use their own specifications which makes the cross-application usage more difficult. A centralized spec maintained by Solana would be pretty interesting I think as a standard.
The use of an Ownerkind that referres to another name implies a bit more complexity in the account handling as I needed to handle the different possible user inputs.
I wanted to store the values in a HashMap<ValueType, String> but the use of std::collections::HashMap gave an ELF missalignment error when using test-bpf. I ended up using a Vec but I will switch to the faster HashMap hopefully soon.

Let me know what you think, I am totally open to changes of course

I am not familiar yet enought with the rust coding in Solana however I read your code to know which name are valid and which name are not valid.
In case of DNS, the underscore can accepted as subdomain but not as domain.
So the URL _test.antoine.com is valid however
_antoine.com is not
What is the current regex for a valid name in your program?

@antoineherzog I tried to stay as open as possible for the domain names. That means that the hierarchy is only given by the "." separator, any other character is part of the domain name.
In this case URL _test.antoine.com and _antoine.com are both valid names.
So really any string (e.g. "my_name") is valid as a name because even if they contain no points, they will be treated as my_name. where this trailing point is the root domain name (which is "."), in this example my_name is a top-level domain name.

So basically a Solana username could be ______---1# ?
For safety in the username payment usecase, it might be super confusing.
From the DNS perspective, it is not that great as well as we are diverging from the current DNS spec.
Also are you uppercase sensitive currently?  For example, Twitter is uppercase insensitive
Why not start with only alphanumeric regex like "^[a-z0-9]*$"

The use of the wider namespace is that future namings of any sort could be handled.
For the on-chain program the names and values don't mean much as it only keeps them in a registry (that is, apart from the dns-like sub-domain hierarchy ordered by the "." symbol).
The namespace restriction can be done at any level via the issuing_authority that controls which sub-domains that can be issued.
For example, you would first create the top-level domain name solana-user (with the authorization of the root) and hold the keys of the corresponding issuing_authority on a server. The same server could host a UI where the user submits his request to create a username.
You could then verify if the requested username fits a certain wanted pattern in order to sign and send the transaction (or make the client send it).
The username would then look like username.sol-user but I think this is not too bad as this could be stripped in any UI.
Another TLD could be verified-twitter for which the UI also asks for a link to a tweet containing a message signed with the user key with which the user will be able to change the metadata (or values) that the <twitter-handle>.verified-twitter name account will hold.

I understand your point and actually I am agree with the simplicity of your solution as we don't need any governance to update a regex of character allowed for the name service itself which is kind of great.
However let me challenge a little bit your design in two points:

ideally we don't want to have to deal with off-chain signer to on a server owned by an entity (that could be hacked) to allow or not some registration when it comes to enforcing a specific policy. Right now, I think we will need to trust bonfida instead of Solana that you are enforcing some rules regarding regex etc.. You are running technically a program off-chain. It is definitely not ideal for a decentralized username. We should be able to have another sub program on-chain called an issuer for each potential new domain that could be in charge to register or not some sub-domain in its domain on behalf of user. Would it possible in your current solution?  I am not sure it is possible right now as you have having two actors, the issuing authority and the metadata autority. I would make sure that we can have an issuer as program on chain. It opens a lot of possibility even to charge additional fee as the issuer is calling the name service to create a name.

regarding having a dedicated twitter domain, it don't think it is the right approach. Ideally we want a universal username on Solana where each user can freely decide to verify his twitter account by providing the proof of ownership by posting a dedicated twitter message with a link saying for example: I am ~antoine on Solana name service.

I hope it helps

@Lcchy - hey I feel I'm still pretty far design wise from the latest iteration.  I left some comments but I'm happy to jump on a call sometime if you feel like a more interactive discussion would help

@Lcchy I would be happy to jump on a call as well (on my side, more to understand the design decisions at a higher level)

I just pushed some javascript bindings for the program and fixed some small things that were suggested by @mvines, thanks.
This is still temporary while we find a final way of storing the values (one per account or all in one account) and handle the different authorities.

Ok so I just pushed a new (and rewritten) version of the program that fits more closely with the description @mvines gave. This allows for greater flexibility for future usage as the constraints are pretty loose.
More complex functionality can then be built off- and on-chain with UIs and cross program invocations.
Let me know what you think :)

lol automerge is too eager!  CI didn't complete yet but I'll keep an eye on it

Excited about this PR!!


🤖🍻 Setup Gitpod

[ ] Setup Gitpod
[ ] Add badge to readme

https://www.gitpod.io/blog/gitpodify/
https://www.gitpod.io/docs/config-start-tasks

:tada: This issue has been resolved in version 1.3.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


"padding" behavior removed from KeyboardAvoidingView component for IOS

Hello! I am Greg from Russia, Kazan.
We had the following bug in our project. This twitching is shown in the gif.

It was caused by "behavior" property set to "padding" in KeyboardAvoidingView component.
So I've removed this property in your project, cause it is not the proper place for customization like that.
Kind regards.

Hi, You can use the keyboardAvoidingViewProps override the default properties.


Improve the installation page

Create a poetry lock file

Suggestions:

Since setup.py is considered legacy use pyproject.toml
Use a frontend tool for packaging, i.e. pdm, poetry
Fix versions (or ranges of versions) in setup.py or pyproject.toml and test them: is not easy to recognize errors coming from incompatible versions of the dependencies and is not documented what are the ones that work


Fix some issues with going global, add /vol to change radio volume.

Mumble uses the 'grid' system which I haven't been able to find out why it was necessary as it causes a lot more issues than it resolves.
This commit makes the grid the entire map.
Changes certain keybinds to use RegisterKeyMapping instead of looping.
Removes the watermark (you can feel free to add it back if you want to, I just personally dislike watermarks)
Adds a /vol command to reduce the volume of the radio

You're using ESX specific method, and I guess it should be global / Native, and why did you removed the range for the voice / the possibility to change with a keybinding? not radio? o

I like the parts where you cleaned up the duplicate voiceData checks etc
I don't like the implementation of RegisterKeyMapping, i believe it could be made a lot more configurable for the normies, and I previously had mapping in before but at the time they didn't always work.
The watermark, doesn't bother me, but instead of completely removing it I believe it could be made a configurable option
You included your specifc server config, which is annoying tbh
You also changed the radio list default format (I'd rather leave it as is, you are free to change whatever you want)
I don't agree with removing the grid, if it works for you, it works for you.
The changes made to how the grid channel targets are set I do agree with, might even be the reason for one of the bugs going around
Was there a specific reason you disabled the 2dAudioInVehicles check? is that a cause of one of the github issues?

TL;DR
I like some of the changes but i'm not gonna pr this.

Sorry, I thought I had removed the ESX portion that was in it, it should be completely removed now.
I've used the RegisterKeyMapping's for a while and haven't had any issues, so far it seems to have cleaned up the loops.
I removed the server-specific config, sorry about that.
The Trigger events were also leftover code from stuff that's specifically for my server, they'll be removed in one of the following commits.
I'm sorry if this came off as 'fuck your grid system', but the grid system for me has caused a lot of issues (like the not being able to talk to either on cars, players not being able to hear each other, players going global for no reason).
^ This is the reason I set 2dAudioInVehicles to false, as using a much bigger grid makes this not a problem anymore.

@kevinmlsilva They're not removed, you're able to set them in your keybinds (Fivem->Settings)

This should fix #95 #92 #82 #79 and add's feature #83

Afew things ive noticed is you removed the controls from the config
so speaking on the radio with caps no longer works
and trying to set the speaking distance from shouting to whispering ect usually done with z also no longer works
and setting the watermark to false in the config does not remove it.

@ONYX-X The default keys changed with this (you'll have to change them in your FiveM settings) I'll add a way to configure this so you can set your default keys.

My bad :D to early in the morning for me haha.
great work man honestly we were having the global issue for awhile.

@ONYX-X I understand that one, I'm about to go pass out 🤣 latest commit should fix the issues you described.

@AvarianKnight We tried to use your fork (although your original commit, not tried after your changes yet), we have realized an issue with phone calls. It seems like when you call somebody that is currently in your "grid"(?), others that are in the same grid can hear you, but you cannot hear them anymore, including the other person you called with.
The issue is solved by running out of the "grid", and back in. We tried to look for it briefly yesterday, but could not isolate the issue just yet. Maybe you know, what could be the cause of this. Script was basically run completely original, without any changes of us.
Wanted to throw this in before this gets merged, I am not quite sure if this is already happening on the current mumble-voip latest, I did not get to test that yet.

@JulienGelmar If you could find any reproduction steps that would be great, I haven't had it happen on the server I develop for so unless I get repro I can't do much.

I keep hitting the close with comment button 🤣

@AvarianKnight
The way we tested it is the following:

Have 4 people close to each other
2 people call each other (here done over gcphone), speak, it'll work all fine, others around you can hear you speak and you can hear them
Hang up, now you cannot hear anybody anymore (not even the person you called), but everybody can hear you
Walk out of range, come back, it will reset and everything it back to normal
This is not happening with radio, there it all works.

@JulienGelmar Can you send me how you're doing all of it in GCPhone? I can't reproduce it with how my server does it (we use 8bit_phone)

Okay disregard my issues, gcphone was invoking a native by its hex instead of the native itself, so I didn't notice it...That is my bad, sorry for false reporting.

@JulienGelmar You're fine, sometimes it happens 🤷♂

I have still issue's when i speak to someone. I can hear everyone in the server no matter whats the range

@patr

I have still issue's when i speak to someone. I can hear everyone in the server no matter whats the range

Do you have OneSync?

Yeah i have onesync

Do you have these set
set voice_use3dAudio true
set voice_useSendingRangeOnly true

or in the server.cfg?

added to server.cgf but still the same issue that i can hear someone

This doesn't 'fix' the issue, was just a bandage (which broke when over 120+ players).


New package: ThreadPool v0.1.0

Registering package: ThreadPool
Repository: https://github.com/tro3/ThreadPool.jl
Created by: @tro3
Version: v0.1.0
Commit: 0e8b1b5421a36c0ef0f6789cf6e9dff72c8db4be
Git reference: master

Block automerge.  Will move to plural name


Support #![no_std] on stable Rust.

alloc is stable on Rust 1.36.0 which is the minimum supported version.

Thanks for merging and publishing v2.0.1 so quickly!


Add "Landscape" Mode

Hey, awesome project!
I was able to achieve this by updating some CSS styles and SVG updates in chrome.

Would there be anything else that needs to be addressed here such as the PNG export ? Or would it mainly be visual updates?
I'm assuming there would probably be a checkbox for toggling landscape mode and probably a mode: "landscape" | "portrait" key in the JSON export.
Can you think of anything else and would you accept a PR for this?

Hi @dmastrorillo , yes, PRs are very welcome, as I don't have much time left for this project!
I think export to png is unproblematic.
But getting json import/export to work properly is an important requirement. Being able to switch between portrait/layout dynamically (with block width/height and position being scaled accordingly) would be perfect.
Where in the UI would you place such a portrait/landscape toggle option?

Great @dynobo ,
I'll see how I go with it.
I'm thinking the checkbox could live inside the toggle layout helper as there are a few other checkboxes in there that govern the look and feel of the reMarkable Canvas. What do you think?

I was toying with the idea of using the Options class to also store layout options in the script.js
globalOptions = new Options({})
layoutOptions = new Options({gridlines: false, guidelines: false, orientation: "portrait"})

That way we can render the layout options dynamically like you do with the global options, and we can also export them in the JSON export.
I didn't know if that was overkill though :D

Yes, that's a great idea! :+1:
Let me know, in case you have further questions or need a second opinion or sth. :)

Hello,
+1 I'm very interested by having a Landscape mode ;)
Thank you,


Multiple analyses/tasks per FdScript

I think it would be neat to be able to create and run multiple models and analyses etc from the same FEM-Design application. This might give better possibilities to iterate over different models and/or save partial models etc.
In a FdScript this can be done by appending any number of cmdopen, cmdcalculation, cmdlistgen etc.
Proposal
I propose we update the class FdScript to take a list of cmd-commands.
Example:
public interface IFdScriptCommand
{

}

[XmlElement("cmdopen")]
public partial class CmdOpen : IFdScriptCommand
{
  ...
}

[XmlRoot("fdscript")]
public partial class FdScript
{
  public FdScriptHeader FdScriptHeader { get; set; } // FDSCRIPTHEADER

  public List<IFdScriptCommand> Commands = new List<IFdScriptCommand>(); // FDSCRIPTCOMMAND

  public static FdScript ReadStr(string strPath, List<string> bscPaths = null)
  {
    Commands.Add(new CmdOpen(strPath));
    foreach (var bscPath in bscPaths ?? Enumerable.Empty<string>())
    {
      Commands.Add(new CmdListGen(bscPath, outputPath));
    }
    Commands.Add(new CmdSave(Path.ChangeExtension(strPath, ".struxml")));
    Commands.Add(new CmdEndSession());
    return fdScript;
  }
}

@andosca Maybe this should be included in 21.2.1? Together with the #297

Will reprioritise at some point and might add this then.
@xRadne What is the use-case for this?

One example would be to run a batch of calculations, and list the results in from each iteration only opening and closing FEM-Design once.
This will improve the speed of my scripts.
Current workflow adds a lot of copies of the structure to the same struxml and runs a single fdscript, but it is a bit tedious.

Another example of where this is useful is when running a design calculation.
Currently FemDesign is opened twice in Application.RunDesign if design.ApplyChanges is true.
https://github.com/strusoft/femdesign-api/blob/f49dd0e4ab31e70b0d04cc79e010e27900b28ee8/FemDesign.Grasshopper/Calculate/ApplicationRunDesign.cs#L146
https://github.com/strusoft/femdesign-api/blob/f49dd0e4ab31e70b0d04cc79e010e27900b28ee8/FemDesign.Grasshopper/Calculate/ApplicationRunDesign.cs#L205-206
And typically (but optionally) the user wants to re-calculate the analysis once more to get the correct forces. In this case FEM-Design has to be opened and closed 3 times...
Opening and closing FEM-Design several times

takes time
look ridiculous

I no longer think interfaces will work. But XmlInclude attribute like Marco used for the Edge child classes (#468) should be sufficient I think,

See #546 and #535


Domain activation is Failed - CNAME Exists Error

App Id: dl7f5usz6ipk4
Region: us-east-1
Step: Domain activation
Status: Failed

Note: Do not include information that is sensitive in nature such as your domain name, company etc.

Issue/question
A clear and concise description of what the issue/question is.
Error message
If there is an error message, please include it here.
Note: Be sure to check the message for sensitive information.
Additional information
Please add any other relevant information. Please feel free to include screenshots.
When trying to setup the domain, I'm getting a generic error message about one of the CNAMES is already in use. I don't know which name, there doesn't appear to be any details of what's wrong.
My domain is already hosted at Route 53, and is a working website. I'm trying to move it over to Amplify, but the DNS setup is failing.

Started over from the beginning, and its all working now. No idea what changed.


Can't get a valid URL from showRSS

I've read https://github.com/mipstian/catch/wiki/Configuration but I still can't get a valid URL from showrss.info. I have http://showrss.info/user/182812.rss?magnets=true&namespaces=true&name=null&quality=null&re=null
Here's a screenshot of my settings:

I'm using the latest version of Catch.app as far as I know:
CFBundleShortVersionString: 1.9.4
CFBundleVersion: 508

Can you tell me what I'm doing wrong?
Thanks

That URL is valid, so I think the problem is the copying it into Catch part. Try right clicking and using Copy Link.


Make devices hashable

Background: _sum_sqnorm_grads in #7641
devices_map would not be required.

Jenkins, test this please.

Jenkins CI test (for commit 865d0218b933e21a54d865480ae1bca42a344219, target branch master) succeeded!

@niboshi Does it backport or not?

@okapies I think we don't have to backport it.

Ok, let's merge it.


[Android] Implementing Play Store Subscriptions

Hey everyone,
I'm wondering if anyone could help me out with implementing a subscription system for my game.
I've checked Trello and it seems there's already support for this in Soomla but I couldn't find any documentation - is there an example project or something similar available somewhere? How should I proceed (not sure where to start -> sorry if I sound a bit like a noob)
One more question - does it act like a subscription (the user pays the price and it automatically renews every X period of time?)
Thanks in advance,
Eugen

Hello. He is not released yet. We will write documentation for it when it will be released.
Sorry for waiting.


Combine Resources and Templates

We could merge the templates and theme concepts into one.  The default or maybe base template is where we find everything for the core system.
/daux/templates/default/layout/
/daux/templates/default/partials/
/daux/templates/default/assets/
/daux/templates/default/assets/js/
/daux/templates/default/assets/css/
/daux/templates/default/assets/images/
/daux/templates/default/assets/less/

We then override the default files with customizations as needed within a theme.
/daux/templates/daux-blue/
/daux/templates/daux-blue/assets/css/
/daux/templates/daux-blue/assets/images/
/daux/templates/daux-blue/assets/less/

A theme handler can do a simple lookup:
$handler = new ThemeHandler( 'path_to_templates', 'daux-blue' );
$handler->getTemplate( 'content.php' );

Which would look within:
/daux/templates/daux-blue/content.php
/daux/templates/default/content.php

The same logic could work with assets.
$handler = new ThemeHandler( 'path_to_templates', 'daux-blue' );
$handler->addScriptAsset( 'jquery.plugin.xxx/plugin.js' );

Which would look within:
/daux/templates/daux-blue/assets/js/jquery.plugin.xxx/plugin.js
/daux/templates/default/assets/js/jquery.plugin.xxx/plugin.js

I don't understand a few things why you say :  The /libs/resources/themes folder should be moved. The ressources are not currently inside the libs folder.
Plus, the behaviour you explain already works today, inside your theme you can add a file that has the same name as the original template and this one will be loaded automatically.
But you're right, the structure could be improved and we could also overload resources. I wanted to change the structure like you described it so that the theme contains all resources, and not the other way around.

Sorry - you are absolutely correct, I was typing that from memory and way off base, so scratch the /libs/ comment.
I wasn't aware that we could already overload the template files - so this is perfect. All we need to do is collapse templates and resources together and we're good.  Glad we're on the same page there.

No problem, the fault is on my part, I didn't write the documentation yet on how to override templates.

I close this as pull request #304 is underway


Feature/newblogs

Three IoT Ensemble blogs: IAQ TVOC Mom blog; Restaurant refrigeration; Floral Shop cooling

Added Todd as a reviewer. Removed Mike as a reviewer since he's out of office.


Remove require.main.path reliance

require.main is undefined if the node-ebook-converter consumer is using esm, so this PR removes the lines of code relying on it. The consumer should pass in the whole path without concern about the entry module.

Closing--I meant to open this in a fork. DM me if this is a change you'd consider upstream! It's breaking.

I consider it mainstream. I will update the current implementation to accept full path instead of relative paths.


Twitter (X) hover effect corrected

📥 Pull Request
Description
The Twitter (X) logo now successfully changes to purple when hovered, consistently applying the intended color effect. Hover behavior is confirmed to be smooth, with no style conflicts detected.
Fixes #1534
Type of change

[X] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation update

Checklist:

[X] My code follows the style guidelines of this project
[X] I have performed a self-review of my code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have added tests that prove my fix is effective or that my feature works
[X] New and existing unit tests pass locally with my changes
[ ] Any dependent changes have been merged and published in downstream modules

Kindly review and merge it @ajay-dhangar .


added  ref.wav in custom model upload

custom_model still has an issue. zip cannot be extracted. I think it's a inattention mistake.... will see later

👍


Update ipa-files.md

Fixing redirect issue on resigning

[ ] Documentation fix (typos, incorrect content, missing content, etc.)

@lysannep  is this a test flakyness problem or i did indeed failed something

@lysannep  is this a test flakyness problem or i did indeed failed something
looks like the issue is with sauceconnect tunnel timing out

@kristofmuhi Agnieszka and I both encountered a similar test failure last week -- re-running the failed job usually works. .


input files missing for ssudan_mscalecity

Hi Ali.
I made some progress, and after fixing a few bugs I get a missing input file.
I run python3 ssudan_mscalecity 0, which then gives me the following error:
FileNotFoundError -> examples/ssudan_input_files/conflict_period.csv
Could you please upload this file and any other missing input files to the GitHub repo in your branch?

Actually the files have been uploaded, the address to the input files was wrong and I correct it.

Ah, thanks a lot. I'll try it again now :).


Issue: Adding images on existing devices does not work

Describe the bug
Once I edit an existing device, and I want to attach an image to it, but the drag'n'drop/select image widget does not work.
By opening the dev console, there is no network activity available.
To Reproduce
Steps to reproduce the behavior: (traccar latest, 6.5, container based)

Settings
Devices
Edit specific device
Device Image
Select Device image

Expected behavior
When a new device is created for the first time, it is possible to attach an image to the device. Same behaviour should be for existing devices
Screenshots
(not applicable)
Desktop:

OS: MacOS/Windows
Browser Chrome
Version latest (130.0.6723.70)

Smartphone:
(currently unable to test)
Additional context
I tested on my local instance and on a demo instance (4)

thank you. can you try on https://demo4.traccar.org/ for an existing device?

thank you, I figured out, the "silent rejection" is abit confusing.
https://www.traccar.org/forums/topic/image-upload-issue/
Perhaps change this issue to "feature request": user input feedback?

Feel free to create a feature request.


issue: help commands #9

As the bot is already straightforward to use, fixing the welcome message and some general improvement was all what the PR needed.
Closes #9

Squashed the commits as well!


fix(plugin): directly push arguments to dataLayer

Usage with accordance to https://developers.google.com/gtagjs/devguide/datalayer

Thanks!

Hi @kirillbunin sorry i had to revert this merge since pushing as function and object is also possible (see: https://developers.google.com/tag-manager/devguide)
PS this could be a breaking change. I would suggest if needing array, use $gtm([...]) syntax.


Internal HTTP clients should use a low connect timeout

Internal HTTP clients use http.DefaultTransport which uses a connect timeout of 30s which is a lot higher than needed. We should use an explicit transport with a lower timeout (e.g. 5s).

Flynn is unmaintained and our infrastructure will shut down on June 1, 2021. See the README for details.


replace BIO_free(bio_err) as BIO_free_all(bio_err)

Because dup_bio_err() can return a BIO chain when 'OPENSSL_SYS_VMS' is defined, it is better to use BIO_free_all() to release rather BIO_free().

24 hours has passed since 'approval: done' was set, but this PR has failing CI tests.  Once the tests pass it will get moved to 'approval: ready to merge' automatically, alternatively please review and set the label manually.

Merged to master and 3.0 branches. Thank you for your contribution.


Hide aesthetic controls

@johnmclear is there a plugin or easy way to hide things like bold, italic, indent, etc?

Didn't we decide that we need to keep these?

No, we're going to be applying separate styling on export anyway, so these don't make sense.  They're just a distraction

I thought we discovered that lawyers are directly going to need to be able to do this for some legislation types.

Some will think they need them, but the idea is to move away from this.  We aren't going to pull them right away, but it would be useful for a side-by-side demo ( different instances ) to explain the difference when the time comes.  We will eventually be dropping them.


Unit tests to improve coverage

This change is

Changes Unknown when pulling<PHONE_NUMBER>56dab99deab792e7880cd0e3ae4c8a on ropable:master into ** on parksandwildlife:master**.


Add a /cmd command for getting a room's userlist

Why? It looks like cmd userlist would be the new best cmd app-layer DoS vector?
Why not base it off room.getUserList()?

Fair points actually. I didn't think the DoS would be a big issue, but if it is, I can maybe restrict it to only global +. The main use for this is in bots anyway. I am probably overcomplicating things with the (10 lines of) implementation, I'll look at it again tomorrow.

Why can't bots be happy with the user list sent when joining the room?

I asked you to use room.getUserList() when I told you to make the PR. :|

I was tired ok!!!!

amidoinitrite

Ok @Slayer95 would you be fine with this if I made it so it's gvoice+? This would be a very useful thing to have in my bot, and probably more bots as well.

I still fail to see how this would be useful. A bot can and probably should track the users in a room in the same way the official client does :|

I thought mostly since the server already keeps a list of who is in which
room, and not every client wants to keep track of all users in a room at
all times. I guess I could always implement this clientside.

Sounds like a generic argument to add another way to do something that can already be trivially done.


Remove unused imports

@mureinik happy to get merged if rebased from master as hamcrest-core and hamcrest-library has been merged into hamcrest so can't currently merge in.

@nhojpatrick wow, I forgot about this PR completely :-)
Rebased and ready for review/merge.

@mureinik i forgot i became a contributor... distracted by a few other open source projects...
cheers for pr

@nhojpatrick didn't mean that as a dig, and sorry if it may have come out like that.
thanks for taking care of this!


samples: bluetooth: peripheral_hids: Unable to communicate with paired device after board reset

Describe the bug
After building the peripheral_hids sample source, I paired the Desktop with the board.
I confirmed that the value of the battery is reduced well by modifying the source to reduce by 1 per 500ms.
Reset the board succeeds in reconnecting, but does not reduce the value of the battery.
Environment (please complete the following information)
OS: Linux ubuntu 18.04
Toolchain: zephyr-sdk-0.11.1
Commit SHA or Version used: 7a3b253ced7333f5c0269387a7f3ed1dee69739d
To Reproduce
Steps to reproduce the behavior:

mkdir build; cd build
cmake -DBOARD=nrf52840dk_nrf52840 ..
west flash

Expected behavior
Reset the board (power off and on) should also reduce the value of the battery on the paired device (Desktop).
Additional context
(Modified test source)
void main(void)
{
	uint8_t battery_val = 100;

	err = bt_enable(bt_ready);
	if (err) {
		printk("Bluetooth init failed (err %d)\n", err);
		return;
	}

	bt_conn_cb_register(&conn_callbacks);
	bt_conn_auth_cb_register(&auth_cb_display);

	while (1) {
		if (battery_val == 10) {
			battery_val = 100;
		}
		bt_bas_set_battery_level(battery_val);
		battery_val--;
		k_msleep(500);
	}
}

Logs and console output
(First-time connection)

(Verify connections and battery values are reduced)

(board reset)

(debug message after reset)

The connection with the paired device is successful by resetting the board, but the value of the battery is not decreasing.
Is there a way to enable battery service separately?
It is connected to a paired device, but why doesn't the value of the battery decrease?
I'd appreciate it if you could reply.

The CCC is not stored in flash when the board is reset. CCCs are by default stored in flash when the connection is disconnected.
If the use-case is to support this reset in the middle of the connection then CONFIG_BT_SETTINGS_CCC_STORE_ON_WRITE should be enabled.

The CCC is not stored in flash when the board is reset. CCCs are by default stored in flash when the connection is disconnected.
If the use-case is to support this reset in the middle of the connection then CONFIG_BT_SETTINGS_CCC_STORE_ON_WRITE should be enabled.

As you said, we tested it by setting it to CONFIG_BT_SETTINGS_CCC_STORE_ON_WRITE=y.
Once the board has been reset, the connection with the paired device is successful.
However, the problem is not solved.
There is still no change in the value of the battery.
We tested it on the nrf52840dk_nrf52840 board and the nucleo_wb55rg board.

@wngur300 Did you remove the existing bond before trying? west flash --erase would make sure that existing bonds from previous testing is removed, since that one is stored without the CCC previously.
From the commit that you have put in the issue description you have Zephyr v2.4.0 release, can you try to switch to v2.4-branch?
There is a fix to Lazy loading of CCCs after 2.4.0 release, and Lazy loading seems to be on in this sample.

@wngur300 Did you remove the existing bond before trying? west flash --erase would make sure that existing bonds from previous testing is removed, since that one is stored without the CCC previously.
From the commit that you have put in the issue description you have Zephyr v2.4.0 release, can you try to switch to v2.4-branch?
There is a fix to Lazy loading of CCCs after 2.4.0 release, and Lazy loading seems to be on in this sample.

When c2a0b0f50bdb3c928e9d329cea93157e7cf0a469 commitment is applied and CONFIG_BT_SETTINGS_CCC_STORE_ON_WRITE=y is set,
it works well even after the board is reset.
The problem has been solved. Thank you!

@wngur300 Did you remove the existing bond before trying? west flash --erase would make sure that existing bonds from previous testing is removed, since that one is stored without the CCC previously.
From the commit that you have put in the issue description you have Zephyr v2.4.0 release, can you try to switch to v2.4-branch?
There is a fix to Lazy loading of CCCs after 2.4.0 release, and Lazy loading seems to be on in this sample.

I'd like to ask you a question that has nothing to do with the issue.
Is there a function that can confirm that the board is paired with another device after it is powered on?

@wngur300 There is bt_foreach_bond function, that can be used to iterate over all the bonds, you can see how many there are, and the address of the peer that is paired. You can also remove a bond with bt_unpair.
Closing as problem has been solved.


feat: determine bootstrap behavior based on sharding type

This is a feature or change request
Context
the defaultBootstrap option was set in an effort to keep the code as agnostic as possible in terms of reliance to Logos/Status infra. This was done when js-waku was one monolithic codebase.
Now, js-waku is a mono repo with agnostic implementation of the protocols (core, message-encryption, etc) and an opinionated, good default and easy to use interface @waku/sdk.
Moreover, with the introduction of the Waku Network Gen 0, a new fleet of nodes with RLN and autosharding enables has been deployed. This fleet should be used as bootstrap when using autosharding and RLN.
The old fleet only supports named sharding on default pubsubtopic.
Problem
Currently the default bootstrap behavior is to connect to old Waku (namespace, default pubsub topic) fleet.
js-waku now supports namespace sharding (to be deprecrated) and autosharding. The default bootstrap behaviour should match the sharding strategy so it can hit the right fleet.
Proposed Solutions
The fleet to use for bootstrapping  should be determined by whether the Waku node is setup to use named sharding or auto sharding.
If using static sharding, then the developer must provide an enrtree for bootstrapping.
Notes
Consider dropping the defaultBootstrap argument to make the API simpler.
If a developer pass their own bootstrap node, then it should override the default behaviour and not connect to Waku fleet.

Depends on #1505

As of now js-waku uses TWN (thought without RLN) and RLN as a service should be provided soon so there is no reason to go back to named sharding.
For TWN use cases js-waku node need to know contentTopics or shardInfo in advance to be bootstrapped properly.
defaultBootstrap is still relevant as it enabled discovery approaches that are useful for end user.
Considering it I think Proposed Solution section is met and we can close it.
@adklempner , please, re-open if you think otherwise.


Possible feature addition: Biome display

I see that Minutor has been trimming back on viewing modes since a few years back, but has added biome and block ID display. You might be interested in the recent addition to Mineways, adding biome display as a viewing mode. See the image attached. The current Mineways code does not support reading in the grass and foliage PNGs, the default biome colors are just hard-wired in - that's plenty for most people.
The hard part of adding biome display to Mineways was figuring out all the equations used for computing the color. Most of that code is now encapsulated in biomes.cpp and .h in https://github.com/erich666/Mineways/tree/master/Win; there's a bit in MinewaysMap.cpp, mostly in checkSpecialBlockColor() at the end. The only bit that Mineways could not emulate was Swamplands, a biome which varies between two very different colors based on a location fed into a Perlin noise function.
Anyway, just a suggestion, and I'm happy to explain any of my code. I'm also happy to have gotten a huge leg-up by basing Mineways off of Minutor. I hadn't looked at Minutor in awhile - wow, your block read speed has improved enormously since a few years back, I'll definitely have to take a look at it.

If anyone is still interested in this, I also wanted this feature, so I added biome display to my local build of Minutor.  Just to clarify, by biome display I mean a toggleable view mode in which all blocks in a given biome type have the same color.
I got around the need to compute the colors by adding colors to the biome.json definition file, which of course allows for easily adding moded biomes.
I still need to finish defining colors for all of the biomes before it will be ready for a pull request, but would there be interest once I finish?

I still need to finish defining colors for all of the biomes before it will be ready for a pull request

This is all in a table for you already.
I hope you did look at Mineways' display system (try it out, and source is here), and I definitely hoped you used the data in biomes.cpp, which has all the temperature and rainfall data, as well as the special odd changes for swamp, roofed forest, mesa, etc. I spent way too much time gathering all these weirdnesses, no reason to go through that again.
Anyway, I hope someone else has an interest - I think it's kind of cool to be able to turn on the biomes in Mineways.

I made a quick attempt to run Mineways to see how it looks, but sadly I ran into some issues with Wine what a surprise :/
But from looking at biomes.cpp that you linked it looks like you are talking about the subtle differences in grass color as they actually appear in Minecraft (which might also be interesting to add to Minutor).
But what I have written is more for visualization, like the 'Mob Spawning' option, so oceans and rivers are blue, forests are green, mesa might be orange, etc. My main intention was to be able to easily search for various biomes, especially rare ones.
To show what I'm going for, here's some screenshots with and without my biomes colors toggled (and my very rough and incomplete color definitions).

I don't think this feature is suited for Minutor. Have you tried Amidst? It is a tool specifically designed to display biomes and structures, with zoomable display (zooming out even into <100% zoom, which Minutor won't do)
http://www.minecraftforum.net/forums/mapping-and-modding/minecraft-tools/2626547-amidst-now-has-1-9-support-and-a-new-home

Just for comparison, here's Mineways' biome mode off and on. It's actually surprising to me how much Minecraft changes the color of stuff in some of the biomes.

@highthunder if you have trouble to find good colors, use the ones from AMIDST as linked by madmaxoft. Most Minecrafters would be familiar with them.
Do you use AMIDST? As madmaxoft states, it has the feature you are looking for. And erich666 was describing a different feature, as you can see from his images.
But in my opinion it would also be possible to add this to Minutor. Extending *_biomes.json with the colors should be easy and the data is present already.
(Regarding the feature from this issue: It is still on my list of things to add. But at the moment I lack spare time...)

My feature would handle some things that AMIDST doesn't: biomes edited by McEdit or similar tools or terrain generated in different versions. As well as the ability to quickly switch back and forth between these views.  AMIDST is great for predicting where biomes and structures will be, while Minutor is great for seeing what is actually in a world.
Aside for populating biomes.json (and thanks for the suggestion to borrow the colors from AMIDST) the feature I'm talking about is done, I was just checking to see if there was any interest for me to share it.

Are you interested in adding my feature to Minutor?  If so, should I create a new issue for it, issue a pull request, or something else?

Sure, issue a pull request.

@highthunder I have reviewed your feature and would like to ask a question:
Do you intend the Biome overlay to be a:

completely different rendering mode
transparent overlay above the already rendered chunks

I'm asking, because rendering gets slow due to all the added features over the last years. If you say (1), we could write a separate and fast render function only for Biome display and keep it out of the normal rendering. Maybe there is also other stuff that can be optimized.

Hello @erich666 !
As you probably assumed from my commit to your project, I try do add this Biome color feature during Xmas. I browsed the Minecraft code with MCP931 (1.10) and noticed some places which differ from Minecraft-Wiki and your code. Maybe you have time to give some comments about that...

It seems that the limit below Y=64 is not valid anymore. At least I found no check for negative values. It looks like the temperature increases the same way as it decreases above.
The factor is exactly 1/600 per meter.
There is also a perlin noise generator on the normal temperature deviation. Not only in Swamps. But probably I will skip this for performance reasons.
Birch and Pine do not use Foliage.
Changed temperature and humidity values are already pushed to Mineways.

All the other stuff looks consistent for me.
Merry Christmas and a happy new year
EtlamGit

And another question for @erich666 :
Do you know how (or where) the Foliage/Grass color is applied to Blocks like Reeds or TallGrass?
I assume, that their texture is mixed in some way with this color. But up to now, I did not found how this is done. Just simple mixing would result in too dark colors. So there must a trick to get it brighter.

Sorry, I can't answer most of your questions because I don't recall - about all my knowledge is encoded in my Mineways code. Study it and you'll see what I do, though of course it may well be wrong or may have changed.

Birch and Pine do not use Foliage

It's Birch and Spruce, and the hard-wired color values are covered here in the Mineways code.

Do you know how (or where) the Foliage/Grass color is applied to Blocks like Reeds or TallGrass?

I don't recall anything special I did for tall grass, it's considered a grass in the code, which gets changed as usual here. So, it's just another form of grass, and I assume you take the gray and multiply by the color computed by BiomeColor, as usual.
I don't have sugar cane getting affected by the biome, and in fact it comes in colored (tallgrass.png is gray), so I'm pretty sure that's right.
Anyway, if you do confirm any changes, please let me know. I'm ridiculously busy until August, but it'd be fun to delve back into this area after then.

When applying the colors retrieved from the Biome Colorizer, they should be mixed somehow with the "texture" of the corresponding block. Minecraft is doing this probably on the GPU, at least OpenGL is doing this for free.
Not doing it (pure Biome Colorizer) looks like this:

Averaging texture and colorizer:

Multiplying texture and colorizer:

I have to play a bit to view the vanilla color behavior...
But the trees are not so visible anymore, maybe we should give them a bit more contrast.

And yes, Sugar Cane (reeds internal to the game) is changing by the Biome.
The same is with Vines, Fern, double tall Fern TallGrass and double tall TallGrass.
Also the Jungle Leaves texture has some yellowish parts.
Birch ans spruce/pine is completely colored and extra handled by the game code.

Just to save my impressions from vanilla Minecraft:
Some trees close to spawn, Birch is different and Leaves darker than Grass:

The Swamp in the South, with clearly visible perlin noise generator (we only have the brownish color):

And an acacia tree in the middle of the map which has 2 Biomes:

I found a nice looking way to mix the hue (color tone) and average saturation and lightness.
Now also the foliage is finished (and trees are darker than the grass).
Any comments before I create a PullRequest?

Looks good.  Go for it.

Is it still possible to turn the biome-dependent colors on and off? I wouldn't like to lose the current display style.

Easy toggling the mode from the current one described here and the "old" one is not possible for several reasons:

The old mode used too bright colors for trees. This is adapted to vanilla Minecraft now and is obviously different. So some colors have changed.
The Biome based mode uses the "colorized" color and mixes it with the averaged vanilla texture. But vanilla textures for grass and leaves are monochrome (in most cases) . So you would get gray trees and grass.

What you can do instead is this: Save (or maintain) the old definition files. If Minutor loads the old files, it behaves exactly as before. Every new feature is only enabled when triggered through the definition files.
What could be implemented is: Switch off Biome based interpolation via temperature and humidity. This could easily be done be forcing temperature and humidity to 0.5. Then you get something very similar to the old mode (but with darker leaves). You can also force this yourself by removing every temperature and humidity tags from vanilla_biomes.json.


Update Application Insights documentation for 1.0 release of .NET SDK

This pull request contains changes in Application Insights documentation for the 1.0 release of the Application Insights .NET SDK.

Hi @olegsych, I'm your friendly neighborhood Azure Pull Request Bot (You can call me AZPRBOT). Thanks for your contribution!

In order for us to evaluate and accept your PR, we ask that you sign a contribution license agreement. It's all electronic and will take just minutes. I promise there's no faxing. https://cla.azure.com.

TTYL, AZPRBOT;

@olegsych, Thanks for signing the contribution license agreement so quickly! Actual humans will now validate the agreement and then evaluate the PR.
Thanks, AZPRBOT;

I created a new PR for these changes. Please close this one.

Could you reference the new PR here?
Did I do something wrong with this one?

https://github.com/Azure/azure-content-pr/pull/12087
Just that it seemed to be taking a long time for this to go through.


[Snyk] Security upgrade pyyaml from 5.1.2 to 5.4

Snyk has created this PR to fix one or more vulnerable packages in the `pip` dependencies of this project.
Changes included in this PR

Changes to the following files to upgrade the vulnerable dependencies to a fixed version:

requirements.txt

Vulnerabilities that will be fixed
By pinning:

Severity
Priority Score (*)
Issue
Upgrade
Breaking Change
Exploit Maturity

876/1000  Why? Mature exploit, Has a fix available, CVSS 9.8
Arbitrary Code Execution SNYK-PYTHON-PYYAML-590151
pyyaml:  5.1.2 -> 5.4
No
Mature

(*) Note that the real score may have changed since the PR was raised.
Some vulnerabilities couldn't be fully fixed and so Snyk will still find them when the project is tested again. This may be because the vulnerability existed within more than one direct dependency, but not all of the effected dependencies could be upgraded.
Check the changes in this PR to ensure they won't cause issues with your project.

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.
For more information:
🧐 View latest project report
🛠 Adjust project settings
📚 Read more about Snyk's upgrade and patch logic

Coverage decreased (-0.06%) to 90.271% when pulling 0458e762edc3ad9981231a187978aec11af5caac on snyk-fix-54a18186f57bd1187ada5df2ff3a4455 into efb7245b32876d494e9c02ac718277a0e4c0c0b5 on master.

Coverage decreased (-0.06%) to 90.271% when pulling 0458e762edc3ad9981231a187978aec11af5caac on snyk-fix-54a18186f57bd1187ada5df2ff3a4455 into efb7245b32876d494e9c02ac718277a0e4c0c0b5 on master.


Doesn't work with plugins - whitelist and inAppBrowser

Both of these plugins fail to work in Ripple.
The whitelist plugin gives the following error message every ten seconds:
No Content-Security-Policy meta tag found. Please add one when using the cordova-plugin-whitelist plugin.
The InAppBrowser does not fire the loadstart event.

Regarding the No Content-Security-Policy meta tag found message: Can you explain why you regard this as "failing to work? That message is output (to the console) by the plugin if your content doesn't have a Content-Security-Policy meta tag (and isn't displayed if your content does have the tag). That console message surfacing in Ripple seems to me to be expected behavior.

Sorry, I should have been clear. The meta tag is indeed present in the source HTML file, and the warning  does not appear when run on the Android emulator platform.

Hmmm, that's weird. I can't repro (that is, I see the message if I don't have the CSP meta tag, and don't see it if I do). The plugin's logic that handles this is very basic, and it doesn't seem it is doing anything where Ripple have any impact.
Couple of questions:

What version of Ripple are you using (ripple version from a shell prompt will tell you that)?
Are you able to repro with a blank Cordova project (as in "cordova create foo")?

Oh, and the InAppBrowser problem is because the plugin specifically bypasses Ripple here:
    // special patch to correctly work on Ripple emulator (CB-9760)
    if (window.parent && !!window.parent.ripple) { // https://gist.github.com/triceam/4658021
        module.exports = window.open.bind(window); // fallback to default window.open behaviour
        return;
    }

I wonder why InAppBrowser has that "special patch"? I will try removing that check and see if it helps. If not, I'm sure I can find a workaround.
The Content-Security-Policy meta tag issue appears to have been user error. Apparently there's something wrong with my build setup, because clearing out the www directory and rebuilding caused the issue to go away. I'll keep an eye on the issue and update you if I can reproduce it more reliably.
Thanks for your help!

Ok, thanks @eddieSullivan. Good news about the CSP.
I believe that code was added to InAppBrowser because some apps relied on a real window being opened (often hidden) to do stuff (where-as Ripple would just display a popup showing the URL that would have been opened, but didn't actually open it). The proper fix, I think, will be to modify Ripple in some fashion to actually open a window (then remove that code from InAppBrowser).

Ah, I see. That seems about right, because when I remove that special patch, I see a faked-out page (although not in a popup) with a "InAppBrowser Emulation  It is like a browser, only it is all up in your app" message.
Ok, thanks again. If I have some time I'll dig more into the proper fix you describe.


resx to json conversion

Current behavior

Expected behavior

What is the motivation / use case for changing the behavior?

How do you think that we should implement this?

Hi, is there any way to convert .resx files into JSON

Seems that this can be done with a script that can read xml files.
I am closing this request because it does not have anything to do with ngx-translate core.


Feature Request: Enums as number

I'd like to be able to do this:
#[derive(Encode)]
#[repr(u8)]
enum MessageType {
    One,
    Two,
    Three,
    Four,
}

assert_eq!(bincode::serialize(&MessageType::One).unwrap(), &[1]);
assert_eq!(bincode::serialize(&MessageType::Two).unwrap(), &[2]);
assert_eq!(bincode::serialize(&MessageType::Three).unwrap(), &[3]);
assert_eq!(bincode::serialize(&MessageType::Four).unwrap(), &[4]);

This is often required when interfacing with any C code or operating system level data, which is most of what I have been using bincode for.
I know there is https://github.com/dtolnay/serde-repr, but it'd be nice if this worked with the new Encode, Decode traits.

Thanks for the detailed response! I’ll look into these resources


Feature #38 header banners

Resolves #38

SonarQube analysis reported 5 issues

 2 critical
 2 major
 1 info

Watch the comments in this conversation to review them.
2 extra issues
Note: The following issues were found on lines that were not modified in the pull request. Because these issues can't be reported as line comments, they are summarized here:

 OrganizationsApiImpl.java#L222: Define a constant instead of duplicating this literal "Failed to stream image to client" 3 times.
 OrganizationsApiImpl.java#L224: Define a constant instead of duplicating this literal "Internal Server Error" 3 times.

Coverage decreased (-2.5%) to 25.884% when pulling 1b16d48aa56e7030102405ae7af05450ff814f5b on feature-#38-header-banners into 6075489a469f5d84f50ec43ebd8d7461db7077df on develop.

SonarQube analysis reported 2 issues

 1 major
 1 info

Watch the comments in this conversation to review them.

Coverage decreased (-2.5%) to 25.884% when pulling 7a55575359f66c2ec243b5c66594f2b6ff082915 on feature-#38-header-banners into 6075489a469f5d84f50ec43ebd8d7461db7077df on develop.


refactor template file for puppet v4

refactor file for newer verison of puppet
in preparation for puppet v4

@propyless Thanks! I took your commit into https://github.com/Ericsson/puppet-module-citrix_unix/pull/7

released in v0.1.2


Create 0000-01-02-ganeshreddy1396.md.

In these i will add some content

In these you want add some contents


ZF Comments

Hi all. First off, really like where you all are going with these.  I was unable to run some of your plots because one of the files required for the plots (district-membership-17-21.parquet) was not in the project/ was not in the data folder. Thus, I was unable to actually see 2 of your 3 plots. However, I was able to go through the code and get the gist of what you were trying to do. I like that you all are deciding to zone in on Oregon, I do not think many others are choosing to do that, so that will make your presentation unique. Well done.
Strengths

Strong foundation to build upon for final products
Zooming in Oregon as opposed to nationally is a great idea; this will set you apart from other groups that are going broader.
Very thorough with the annotating for the final plot. I think that this will make the plot incredibly more understandable for the viewer. (Though I was unable to actually run the plot).

Improvement:

Work on the color choices for geom_cols. The colors used are not colorblind friendly, and they actually hurt my eyes a bit looking at them (that bright green GOT ME).
Make sure that all files needed to reproduce plot are available in the project/data folder. I was unable to actually view some plots because of this.
You may want to make the goal for each plot more obvious. In the first plots I was able to see what was happening, but the labels were overlapping and I was unable to understand the overall goal of the plot.
Overall, things just need a bit of extra drafting to finalize plots.

Learned

Though we went over it in class... I learned how to effectively annotate. You all built this into your code very well. I would like to try and do this for our project, so thank you for sparking the idea.

Overall:
Your data wrangling was strong and relatively easy to follow; which is very different from our project. We made it very confusing with a bunch of unneeded steps (and you did not, well done). With the visuals, you need a little work at labeling levels of of variables (LEAID) to make them understandable. Keep in mind what color palettes you use.
@datalorax

Nice review Zach.
Tingyu, Manuel, and Errrol - please let me know if you are having file size issues that are preventing you from posting the data to GitHub. I want to make sure it's reproducible for your final project submission.


Special characters function handling of percentages (%)

Is your feature request related to a problem? Please describe.
ConvertSpecialChars function will remove the character "%" from a result value so it can be used as a numeric value, but it doesn't change the result unit to "%". This change is, however, tracked in the TADA.ResultValueDataTypes.Flag column, where the entry is "Percentage".
Describe the solution you'd like
Convert TADA.Unit to "%".
Describe alternatives you've considered
But, need to check if over-writing the pre-existing unit could be problematic. Currently, EDH has mostly seen the unit in these situations as "Choice List", which isn't any more informative than "%".
Additional context
Add any other context or screenshots about the feature request here.

I've overwritten as fraction (0/100), so that it can be treated like ppm etc. Only concern would be if that makes it prone to being entered inconsistently (e.g., 50% vs 0.5).

I think this may have been addressed with the previous updates to TADA_ConvertSpecialChars. I will look at some test data sets with "Choice List" units for percentage data to verify.

Some of the choice list options include the ">" or "<" in a percentage range. For example, ">0-25%". I am working on updating the code so that this will be flagged as "Percentage Range - Averaged" and included in the averaging calculations (if user specifies that percentage averages should be calculated).

@cristinamullin - if a result is both a percentage and a greater or less than such as "<1%" should that show up labeled as "Percentage" or "Less Than"?

I think "Less Than" is better in this case since the % can be captured as the unit


String literal type inconsistency in overload resolution

As far as I see, the TS compiler still sees a string literal type of a single literal as an old style "string parameter" thing. I thought that the concept of string literal types should replace overloading on string parameters, but seems that it doesn't.
That complicates things, and results in a "strange" behaviour in overload resolution:
class A256 {
    m(a): any;
    m(a: "a" | "b"): string;
    m(a: "c"): string;
    m(a): any {}
}

var foo1 = new A256().m("a"); // 'any'
var foo2 = new A256().m("c"); // 'string'

What should be the correct logic with string literal types in overload resolution?
Shouldn't overloads with unions of literals precede the others as well, when resolving overloads?

Typescript's handling of overloads is very confusing. From the manual:

In order for the compiler to pick the correct typecheck, it follows a similar process to the underlying JavaScript. It looks at the overload list, and proceeding with the first overload attempts to call the function with the provided parameters. If it finds a match, it picks this overload as the correct overload. For this reason, it’s customary to order overloads from most specific to least specific.

From that, I would have expected both foo1 and foo2 to be typed as any. However, it's potentially debatable since you're not following the 'most specific to least specific' rule of thumb. Removing the first m(a): any declaration causes both variables to be string, as expected from the "a" and "c" definitions.
One problem here is that duplicate overloads get ordered inconsistently. Maybe the compiler should raise an error on duplicate overloads for this reason, although that might be hard due to the way inheritance is handled internally.
Another problem here is that it compiles at all with this function body, given that the function returns undefined. That definitely violates type safety.

I ran into this issue recently with a similar example (playground link):
function f4(x: string): string;
function f4(x: "foo"): number;
function f4(x: number): boolean;
function f4(x: number): string;
function f4(x: any): any {
    return x;
}

// note that the type of x is inferred to be number.
// This is different from what the old typescript documentation stated, e.g.
// that overloads would be processed from top to bottom, selecting the first
// matching overload.
// In this case, I would expect the first matching overload for f4 with the
// argument "foo" to be f4(x: string): string.
let x = f4("foo");

// y is inferred to have type boolean, which is consistent with the
// top-to-bottom first matching order.
let y = f4(3);

// note that if the type is a union, the resolution is consistent with the
// top-to-bottom first matching order.
function f8(x: string): string;
function f8(x: "foo"|"bar"): number;
function f8(x: any): any {
    return x;
}

// both inferred to have type string
let z = f8("foo");
let w = f8("baz");

Note that the new version of the Handbook does not discuss the order in which overloads are resolved at all. I can put together a PR to include information about function overload resolution order on that page if desired, but I want to double check that my understanding is correct first.
As a result of changes made due to #1133, it seems that during overload resolution, resolution candidates are reordered, with signatures that contain specialized types (according to the old language spec this only refers to string literal types, but in practice it seems like this also applies to number literals) ordered before any other signatures. AFAICT unions of string literals or number literals are not considered specialized types.
Thus, the overload resolution order appears to be (ignoring inheritance):

If no overloaded signatures contain specialized types, the first signature (in declaration order) that matches the argument types is chosen.
If any of the overloaded signatures contain specialized types (e.g. string or number literal types), then those signatures are checked first (in declaration order) and if any match, that signature is chosen as the resolved overload. If none of those signatures match the argument types of the call in question, then the remaining signatures are checked as usual: the first signature (in declaration order) that matches the argument types is chosen.


Add configs with processed data in medical_dialog dataset

There exist processed data files that do not require parsing the raw data files (which can take long time).
Fix #4122.

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.


Try to fix podspec error

When building on AppCenter:
[!] The RNBeginBackgroundTask pod failed to validate due to 1 error:
- ERROR | [iOS] attributes: Unacceptable type Hash for homepage. Allowed values: [String].
It's not clear why it's a Hash, for example RNDeviceInfo do the same thing, but they don't seem to have problems.

It did not work


Preserve job's stdout and stderr

We should save the jobs stdout and stderr. We should prefix each line with a UTC microsecond timestamp (timestamped on the client side, since the timestamp is used for interleaving), and call the saved files stdout and stderr in cloud storage. In the UI we can interleave these by default but give the user the option to show one or the other.

Done and included in 0.4.20


Connecting to multiple nodes

Version: 3.5.3
Platform: Python 3.8 on MacOS Catalina 10.15.7
Description: How to connect to multiple nodes of a Redis Cluster ?

@KarthikRevanuru redis-py do not support this feature, my lib that jakob posted a link to is the way to go for a client connecting to a redis-cluster.
@andymccurdy This is closeable


Move anonymous TomcatEmbeddedServletContainerFactory to separate class

This should be logically the same as it was previously but extracts the anonymous TomcatEmbeddedServletContainerFactory into a separate class so that CAS implementations can use it as a base for their own EmbeddedServletContainerFactory customisation.

@mmoayyed as discussed in #3220.  I'm not sure if the extracted factory package / method visibility is correct, any thoughts?
I also pulled the configureContextForSessionClustering method out of the customiser and into the container factory as it was related and IMHO there's not much point running it without the corresponding tomcat container changes.


Web-UI no steps logs

Picture ref: botom of #107

browser's req:  Firefox 60.0 in debian9

http://<IP_ADDRESS>:8000/api/v1alpha/logs?runID=0000001engstt-0000000000001&taskID=10c766e2-89a1-467e-9649-bd926a873bd7&step=4

resp:

cache key "cache-sum-1b62b963287f3264b6408e7cb26533d2"
cache for key "cache-sum-1b62b963287f3264b6408e7cb26533d2" already exists

code: executor.go line 471, func doSaveCacheStep

	resp, err := e.runserviceClient.CheckCache(ctx, key, false)
	if err != nil {
		// ignore 404 errors since they means that the cache key doesn't exists
		if resp != nil && resp.StatusCode == http.StatusNotFound {
			fmt.Fprintf(logf, "no cache available for key %q.

Then I found the frontend js err:

I use Firefox 60.0 in debian9, Then I changed to Chromium Version 62.0.3202.89, this time logs shows ok:

Amazing Project!
Wish more peaple use and then get more compatible.

I use Firefox 60.0 in debian9,

Logs use fetch streams that are enabled from firefox 65: https://developer.mozilla.org/en-US/docs/Web/API/Streams_API/Using_readable_streams#Browser_support
Looks like firefox 60 have streams already implemented but disabled by default. From https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API#Browser_compatibility :
This feature is behind the dom.streams.enabled preference and the javascript.options.streams preference. To change preferences in Firefox, visit about:config.

I use Firefox 60.0 in debian9,

Logs use fetch streams that are enabled from firefox 65: https://developer.mozilla.org/en-US/docs/Web/API/Streams_API/Using_readable_streams#Browser_support
Looks like firefox 60 have streams already implemented but disabled by default. From https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API#Browser_compatibility :
This feature is behind the dom.streams.enabled preference and the javascript.options.streams preference. To change preferences in Firefox, visit about:config.

Thx. I tried with a new version Firefox 68.1.0esr x64, this works now

And in my Firefox 60.0, followed your advice it works now, thx very much!


general question about top level hierarchy of FOODON

Hi
I am thinking using FOODON for my dataset and was looking at the hierarchy structure (via OLS https://www.ebi.ac.uk/ols4/ontologies/foodon?tab=classes&viewMode=tree).
Currently the top level structure includes terms I would not expect to be there:
eg:  [apricot juice],  [knish] etc

I have previously worked within the human disease/biology domain so have in the past contributed extensively to MONDO/GO ontologies, so I am just wondering if FOODON ontology is relatively new and therefore is still very much an evolving ontology in comparison?

Hi, Thanks for reporting this.  What is happening is that the built version of FoodOn can trigger the placement of top-level terms that our source code files don't make apparent. I'll correct the parentage of the top level terms so they reflect where they are within the /src/ontology/foodon-edit.ofn file.  Sometimes this has to do with processing that OLS is doing that we don't anticipate on the /foodon.owl file.
For our term development, we're still in the process of revising hierarchies of terms that were inherited from LanguaL, a very longstanding food composition term thesaurus, and from a SIREN database of food products.  As well receiving new terms from PTFI project and USDA FDC mappings as well as introducing standardized templates for animal and plant material.  So various changes yes, but we are trying to provide continuity of hierarchic access to foods/ingredients.

I will close this now, but feel free to reopen if further action is needed.


Unable to build code and then run tests in parallel

Maybe I'm doing something wrong here, or my general approach just isn't fitting with the GitLab CI flow.
In order to run our integration tests for our product, you need to ensure bundler is installed and have run a "bundle install" to set up and install/update the gem dependencies.
Once this has been done, then I'd like the integration tests to run. For example we could split our integration tests into 3 or 4 chunks and run these in parallel.
On GitLab CI, I can't see any way to only run one job for a project first (not in parallel), and then have all other parallel jobs start after its finished.  Is this something that GitLab CI can do?
I guess I'd like to understand how other people are using the GitLab CI. For example, to run our acceptance tests, we'd need to make sure there was a fully up-to-date deployment of our software that was accessible for the tests to run.  But if I can't use GitLab CI to deploy the software first, THEN run all the tests, how could I make this work?
We currently use TeamCity as our CI server, where you can set up a series of jobs in sequence which works well for us, but doesn't take advantage of parallel jobs as standard.

GitLab CI is not designed for this because each build is independent. But it is OK to run bundle install for each build. 'bundle install` takes few seconds (if it is not first time run), so it is not a big overhead.

Thanks @vsizov, appreciate your fast response.
Could you maybe give me an indication of how GitLab CI is designed to be used as I'm not 100% clear on this.  By design, does it assume that you already have a deployed system somewhere that is ready to be tested?   Or is GitLab CI only for running tests that don't require install or deployments?

I'm working on documentation for jobs. But I can give you a quick example:
export PATH=~/bin:/usr/local/bin:/usr/bin:/bin
gem install bundler
cp config/database.yml.mysql config/database.yml
cp config/application.yml.example config/application.yml
bundle
RAILS_ENV=test bundle exec rake db:setup
RAILS_ENV=test bundle exec rake spec

So you need to setup runner first to be able  to run tests

I recommend you to try to run tests on runner manually. Maker sure that everything work as expected.

https://gitlab.com/gitlab-org/gitlab-ci/tree/master/doc/jobs Documentation

Thanks @vsizov.
Yes I already have a build runner and I'm successfully running my tests. But I'm not sure how I can run them in parallel. If I was to split my tests up in to 3 chunks, how would I do all the setup stuff (eg. gem install bundler, bundle, rake db:setup, etc) once and then run the 3 chunks of tests in parallel?
How would you take the example you've given, and take advantage of parallel jobs/tests? Do you have an example where there are multiple jobs running in parallel?

You have to have more than one runner. In this case if you have several parallel jobs then runners will execute them in parallel

@artlepool You might want to try out [gitlab-ci-multi-runner(https://github.com/ayufan/gitlab-ci-multi-runner/tree/master) which allows to have concurrent jobs one one machine.

Right, so if I have multiple runners, then it will do a git clone/fetch on each of the runners, run the setup setups, and then run the tests that you've assigned it to run?  I think I get it now.
I guess I was approaching this in a slightly different way the GitLab CI was designed but your explanations make it clear, thanks very much @vsizov!
And thanks @Razer6, will certainly check it out.


General 3D Modeling Workflow

Issues

[ ] Can't seem to grab the AO data from just the Sculpt. It keeps rendering the intersection of the Lo Poly and Hi Poly models.
[ ] How far can we push Blender? Can we reasonably:

[ ]  model,
[ ] sculpt,
[ ] and paint all in one yet?

What should our open source modeling workflow be?

Box Modeling: Model > UV > Texture.
Hi Poly Sculpts: Vert Model + Skin Modifier > Sculpt. (color paint?)
Lo Poly Retopo: Snap Model > UV > Texture Bake > Texture Paint.
Texturing: Stitch > Touch Up > Export.

Deliverables
Static mesh and associated textures.
Reference
When modeling a new game object, we start by gathering reference. What makes this thing believable in the world we wish to build?
Reference can be any type of media that communicates the next steps we need to proceed:

Text Descriptions
Image Search
Concept Art
Photos
Maquettes
Drawings on napkins.
Whiteboards
Lego Bricks
A cut up paper bag with stickers.
Any; or all of the above!

Store any reference images into a PrueRef file in the game object's folder. PurRef is an awesome reference image layout application that streamlines the image gathering and sorting process for digital artists of any kind. (not sponsored). The app may be used for free, but please consider supporting the developers of this wonderful tool - https://www.pureref.com/download.php
Model
Sculpt
Lo Poly Retopo
Bake Hi Poly to Lo Poly
Normal Map
AO (Ambient Occlusion)

hello!


Unit tests for pFile GetTags

@igor-govorov,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot


Properties for propylene are wrong

Using this as reference:
http://www.nt.ntnu.no/users/skoge/book-cep/diagrams/additional_diagrams/Propylene col.pdf (it says that this chart is based on Allprops)
H = 100e3 J/kg and P = 1e6 Pa should put us somewhere in the wet steam (two phase region)
In python:
PhaseSI('H',100e3,'P',1e6,'propylene')
'liquid'
The web based Coolpropgit seems to agree with this:
http://ibell.pythonanywhere.com/coolpropgit/default/next?_formkey=5df936bc-e413-4ec8-9d72-e184310948e1&_formname=default&fluid=Propylene&name1=Pressure+[Pa]&name2=Enthalpy+[J%2Fkg]&unit_system=Mass-based&value1=1e6&value2=100e3
Quality = -1
I can't confirm if the chart is at fault or the numbers in the code because I don't have another source of data. Can someone look into this?
Thanks

This is the old respository.  The new coolProp is at
https://github.com/CoolProp/CoolProp.
Futhermore, this is almost certainly a question of reference state for
enthalpy: https://github.com/CoolProp/CoolProp/blob/master/FAQ.md
Recalculate the enthalpy using CoolProp and it should work fine.
On Tue, Apr 14, 2015 at 11:36 AM, stefann82<EMAIL_ADDRESS>wrote:

Using this as reference:
http://www.nt.ntnu.no/users/skoge/book-cep/diagrams/additional_diagrams/Propylene col.pdf
(it says that this chart is based on Allprops)
H = 100e3 J/kg and P = 1e6 Pa should put us somewhere in the wet steam
(two phase region)
In python:
PhaseSI('H',100e3,'P',1e6,'propylene')
'liquid'
The web based Coolpropgit seems to agree with this:
http://ibell.pythonanywhere.com/coolpropgit/default/next?_formkey=5df936bc-e413-4ec8-9d72-e184310948e1&_formname=default&fluid=Propylene&name1=Pressure+[Pa]&name2=Enthalpy+[J%2Fkg]&unit_system=Mass-based&value1=1e6&value2=100e3
http://ibell.pythonanywhere.com/coolpropgit/default/next?_formkey=5df936bc-e413-4ec8-9d72-e184310948e1&_formname=default&fluid=Propylene&name1=Pressure+[Pa]&name2=Enthalpy+[J%2Fkg]&unit_system=Mass-based&value1=1e6&value2=100e3
Quality = -1
I can't confirm if the chart is at fault or the numbers in the code
because I don't have another source of data. Can someone look into this?
Thanks
—
Reply to this email directly or view it on GitHub
https://github.com/ibell/coolprop/issues/254.


Gefyra install process

refactor/rework/review

Checked the whole install process. It looks good, I tried out a few things.
We could probably refactor to not use the download-github-release package in the future, however I think it's fine for now.


No bug - Pass stdout through to console. r=me

This is already the case now. Not sure when this merged, but it did.


Fix/QB-2405: Fix typed and parse func

In continuation of:
https://github.com/stratosnet/cosmos-sdk/pull/6
https://github.com/stratosnet/cosmos-sdk/pull/7
Working more stable as in case of [] it case an error during parsing as it is not escaped. Currently, it will not store as json value, it will be a stringified value of any type. It ok parsed after.

I will remove a draft when evm will be fully tested.

[] still has an issue, closing.

Fixed in more general way, closed


X is on list L tests only check the first xpath result

activity.xpath(xpath) may return multiple results. For instance, activities may have many <sector> tags, and we probably want to check all of those sector codes are on the Sector codelist.
Currently, only the first xpath result is checked.

Just FYI, this was originally deliberate and could presumably lead to some significant changes in scores

Just FYI, this was originally deliberate

Ah! Why? To make it run faster?

could presumably lead to some significant changes in scores

It’s possible, yes… Scores would only go down, though. To mitigate this, we could (fix and) use at least one X is on list L.

Ah! Why? To make it run faster?

No I don't think it would make much difference to performance. The reason was that foxpath essentially returns TRUE or FALSE results, so you either have to be strict or lax in terms of how you handle multiple results. E.g. if you have 5 sectors and one of them is not using a code on the codelist, then should the organisation fail the test for that activity? Maybe, but that might be a little punitive? We previously generally erred on the side of generosity (though doesn't necessarily mean that it should remain that way).

We previously generally erred on the side of generosity (though doesn't necessarily mean that it should remain that way).

So X is on list L previously did something like “the first X is on list L”. I don’t think the first encountered X should get special treatment, so I think this is wrong.
I’ve changed it so it does something more like all X are on list L. It might be preferable to instead add at least one X is on list L and use that instead.
I’m basically just aiming to make the foxpath expressions a bit more self-explanatory.

Okay – in 7f0289f7 I’ve tried to be a bit more explicit that we are checking “at least one”. I’ve also added every X is on list L in case that becomes useful.
Ideally, I think the tests should explicitly state “at least one X is on list L” and the default should be “every” (since that seems more of a natural way to understand it) but for backward compatibility I’ve done the opposite.

I’ve swapped this around again, so we’re using “at least one X is on list L”. That’s because I’m not sure how to handle conjunctions and empty lists. Consider these two tests:

x exists or y exists
at least one x is on list L or at least one y is on list L

2 is a stricter test than 1, in the sense that all activities that pass 2 will necessarily pass 1.

every x is on list L and every y is on list L

Depending on how this is implemented, 3 may not be a stricter test than 1 (if neither x nor y exist, I’d expect 3 to pass.) If ‘every …’ instead expects its input to exist and we use ‘or’ instead of ‘and’, passing activities would be a subset of those that pass 1… But using ‘every … or every …’ is really weird, and making ‘every’ implicitly insist on existence is also weird.
For now, let’s use ‘at least one … or at least one …’. This sort of change is more appropriate for the github consultation, anyway.


[SPARK-9373][SQL] follow up for StructType support in Tungsten projection.

cc @JoshRosen this should fix all the problems you mentioned.

Merged build triggered.

Merged build started.

Merged build finished. Test FAILed.

Test build #1216 has started for   PR 7720 at commit d9757f5.

Test build #1216 has finished for   PR 7720 at commit d9757f5.

This patch passes all tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
 public static class StructWriter
abstract class InternalRow extends Serializable with SpecializedGetters
case class CreateStructUnsafe(children: Seq[Expression]) extends Expression
case class CreateNamedStructUnsafe(children: Seq[Expression]) extends Expression
case class LastDay(startDate: Expression) extends UnaryExpression with ImplicitCastInputTypes
case class NextDay(startDate: Expression, dayOfWeek: Expression)
case class TungstenProject(projectList: Seq[NamedExpression], child: SparkPlan) extends UnaryNode


Bug in Transition of the toggle button in mobile view 🥴

I have solved the bug after doing a lot of transition and finding whats the problem.
@smaranjitghose Have a look :)

ss:

I have solved the bug after doing a lot of transition and finding whats the problem.
@smaranjitghose Have a look :)

ss:

This introduces a bug in the transition effect of the entire toggle button itself


Validation of input json string in the main merge method

The main merge method accepts two json strings (JsonMerge.merge(srcJsonStr, targetJsonStr);). There is no input validation for non correct values like null or "" or "    ". For example invocation with null produces following error: java.lang.IllegalArgumentException: argument "content" is null
I suggest to validate input strings and throw a corresponding exception like IllegalArgumentException with a clear error message.
@hemantsonu20 what do you thing about it?  If it's ok for you, I will create a pull request.

Thanks for your suggestion. So basically I agree with you, we should validate the inputs. In this case inputs are simply delegated to readTree method without any processing, and it's already validating the input, so it will be a duplication at our end. If there were some processing on inputs, then it was necessary to validate the inputs.


getting error on ie on src/cross.js

getting error from IE 11 on
function reducer(reduce) {
return values => reduce(...values);
}

See #87 - apparently d3-array 2.0 will not support IE and you have to stay with 1.*


Issue with Digital Ocean and CentOs 7.2

As posted from the OOS blog: http://www.oraopensource.com/blog/2015/2/25/video-how-to-build-oracle-xe-apex-machine

I've created a new Droplet on DigitalOcean and tried to use OXAR to configure everything but with no success. Everything installs correctly but when I connect to the server it shows a blank page. http://server/i/apex_version.txt shows correct APEX version.
I've tried with CentOS 6.8 and 7.2 because 7.0 is not available.
I'm a newbie configuring Oracle and APEX so I might be missing something basic. Any suggestions?

I found out that this problem only happens when creating a Droplet with 512Mb RAM. With the 1Gb Droplet it works correctly. Is this a limitation?

@pedropalmares Yes, Oracle needs 1gb of RAM to work. I had tested with a 1GB machine but it didn't work. Still looking into it.

@martindsouza It worked on mine (CentOS, converted to Oracle Linux 7.2, already with Apex 5.0.4). I haven't tested it thoroughly but at least it logins.