Contribute to Open Source. Search issue labels to find the right project for you!

Ability to position the cursor in the output string


A customizable final position of the cursor in the outputted string

Options could be "start" | "end" | number (position in the final string). Default should be “end”

Proposal: ```js

type Output = (item: Object | string, trigger: ?string) => string | { text: string, caretPosition: “start” | “end” | number }

type triggerType = { [triggerChar: string]: { ?output: Output, dataProvider: (token: string) => Promise<Array<Object | string>> | Array<Object | string>, component: ReactClass<*>, }, } ```

Any thoughts?

Updated 17/10/2017 08:44

UI Question: Move "Members" tab in study groups over to the main "Description" tab?


When I head over to a study group page (e.g., the first tab I want to click on is “Members,” because it’ll show the statuses of each study group member.

screen shot 2017-10-15 at 5 50 00 pm

I know to do this because I’m familiar with the feature, but newcomers might never know or think to click on the “Members” tab, and study group members themselves might not know that they can input their current status.

I’m tempted to remove the “Members” tab and move its content below the Description.

What does everyone think? Or does anyone have alternate suggestions for highlighting the feature found in “Members”?

Updated 17/10/2017 09:08

Open Source License Issue


Related to PR #24 , there was a discussion about the License of Open Source. In the process of writing Travis script, i used some python scripts from Samsung/iotjs project.

In a general view, now we are using many 3rd party libraries, and there will be many cases using other project’s source code. (which allows its use)

Therefore, i think we need to discuss about the use of Open source and libraries, and the mention of Licenses which they have.

Let’s discuss about the way we mention the License of 3rd party libraries and Open Source Projects. (Now, in case of #24 , when i use the python code of Samsung/iotjs, i added some comment to our License file)

Updated 17/10/2017 04:45

How should multiple error messages behave?


Currently, if an input has more than one error, each error message will be rendered.

It would be easy enough to implement a toggle for showing all or one message, but which option should be on by default? Which one provides the best user experience?

Displaying all seems like the best default behavior as it will allow the user to know what criteria must be satisfied all at once.

Does anyone else have opinions regarding this?

Updated 17/10/2017 03:44

[Open discussion] Brainstorm app functionalities


So this app aims to resolve a big issue many people are starting to face: Whenever you want to transfer a cryptocurrency to someone else, you have to have their wallets' hashes. There are people that have many wallets, so you have to find a way to store all of those hashes for further reference.

This app comes right in to serve as a way to save contacts information along with their wallets and addresses. It generates a QR code for any hash so other users could quickly add their wallet hashes to their app. It also copies the hash to the clipboard so you can use to make your transfers.

It is in a really beginner stage so there are MANY possibilities to improve it. This issue will serve as a discussion point for improvements, ideas, tips, etc.. that will eventually become new issues :dancer:

Updated 17/10/2017 02:56

Propose implementation for i18n support in emails, notification, categories and other server provided data


The frontend takes care of translations for all User facing text (like those on buttons and headers). But the text data coming from the server is not translated. The server needs to respond with the appropriate language data depending on the language picked by the user on the frontend.

To facilitate this, the frontend will be making all requests with a header Accept-Language which would have the ISO 639-1 code of the language selected by the user.

Updated 17/10/2017 00:42

Create an image node on image drop


We should support pasting/dropping images (and other media types) into Neos. The problem is what type of node to create on paste? I propose to introduce a config that would tell the UI what node to create based on media type.


          dragType: 'image/jpeg'
          nodeType: 'Neos.Neos.NodeTypes:Image'
          nodeProperty: 'image'

Alternative options: maybe show a node creation dialog on paste? IMO too much hassle.

Updated 17/10/2017 09:05 1 Comments

ProhibitImplicitScopeVariable is not an anitpattern


In my opinion, and probably in most people’s opinion, this should not be considered an antipattern or be enabled by default. Most plugin authors prefer to use implicit scope, at least for local variables inside functions. When scope is specified everywhere, the code inside functions becomes less readable. It also trains the reader to ignore the scope, thereby not noticing when a special scope is used.

Even inside one’s main config file, it would be strange and unnecessary to specify global scope for every variable you set outside of a function.

The default scope rules when don’t specify the scope are very appropriate, global when outside a function, and local when inside a function.

Updated 17/10/2017 02:03 1 Comments

using `svg-url-loader` on svg images - fixes #56


This comes at a price, you are now required to include your svg files (from .css) in " (double quotes).

The loader can do this for you, but then you would have a problem if you were to try loading this into an img tag.

Is there a way around this? This is tricky because in the html src attribute the value is enclosed in "..." (double quotes) anyways.

We could theoretically work around this in our css-loader and add a special case for svg files: if the data starts with data:image/svg+xml replace any ' (single quote) with an escaped version: \'. This would however require us to load them using single quotes. I don’t think we want to go this route.

So I think the options are: - use base64 (default url-loader) - this article votes against this: Optimizing SVGs in data URIs - use double quotes when typing url("./xxx.svg") - create a postcss plugin, or adjust the lib/postcss-plugins/postcss-url-replace plugin to do some magic

Any feedback is welcome :-)

Updated 16/10/2017 20:56 1 Comments

Should we have an Upgrade Note admonition?


297 added a new admonition style for Upgrade Notes.

I’m not sure this is a good idea, but I merged the PR because the information was good and I wanted it to get published.

FIRST - I am going to let @ankita240796 make a case for adding it. THEN - I will mention my concerns. AND THEN - others may comment.

Please note:

  • Do not comment until @ankita240796 and @adammichaelwood (me) have both commented.
  • This is not a democracy. The point of a discussion is to arrive at a good decision, not to vote on a course of action.
  • This is also not a dictatorship. You can disagree with me.
Updated 16/10/2017 22:36 1 Comments

PLEASE VOTE: Should we change object references from JSON methods in the TypeScript typings?


Currently all references to JSON objects in the typings are objects, like

    fromJson(json: object, opt?: ModelOptions): M;
    fromDatabaseJson(row: object): M;
    loadRelated(models: (Model | object)[],

TypeScript’s object has no methods, so if you override, say, $formatDatabaseJson, and your overriding method uses object, you have to use bracket-notation to get member values (like obj["id"] rather than

We could use the any type, but then strings, numbers, functions, and symbols would be legal arguments to these methods, which clearly isn’t correct. We could, however, introduce a new JsonObject:

  type JsonValue = string | number | boolean | Date | null | undefined | JsonObject 

  interface JsonObject {
    [key: string]: JsonValue | JsonValue[]

Please thumb-up if you’d like to see this change, or thumb-down if you think the typings are fine as they are. Feel free to comment, as well.

Updated 17/10/2017 09:17 4 Comments

[Proposal] The `not` keyword as an alternative syntax for the logical not operator (!)


Not sure if this has been brought up before, would love your thoughts on it.


Many of my colleagues and I personally prefer using == false in a negative comparison instead of the bang sign !. The reason being, it’s easier to spot, especially when one is debugging a live-site/SEV in the middle of the night. For example: if (!isUserAuthorized) vs if (isUserAuthorized == false).


The proposal here is to introduce a not keyword as an alternative syntax for the unary logical not operator (!). This keyword should not require a set of parentheses after it (just like the existing ! operator). For example: if (not isUserAuthorized), which is exactly equivalent to if (!isUserAuthorized).

This syntax should also work: if (not(isUserAuthorized)).

For what it’s worth, C++ also has this not keyword (among not_eq, and, and or).

Updated 16/10/2017 19:33 1 Comments

Merging accounts with the same email...


Issue - Enhancement

We got this “fun” side-effect of using auth0 and multiple auth methods: a user that authenticates with Google is a separate accounts from those that authenticate with their email and password.

In the future (where everything is better), if a user authenticates with an account where an email already exists, we could take a number of actions:

1) Warn the user before the new account is created and offer them the option to logout and login with the other account immediately 2) Offer to add the new authentication method to the prior account, effectively merging the accounts 3) (discussion!)

What other options should we consider?

User tally

Here are the number of times this has come up for a user in the field: 2

The above will be incremented every time a support case is opened.

Updated 16/10/2017 18:00

[Proposal] Generic Specialization/Extension: add generic partial<>, override<> and new<>


One thing I always miss, when I go to my c# projects from c++ is template specialization, so I propose a similar mechanism be added to c# reusing the keywords partial, override and new followed by angle brackets:


partial is used to extend certain generic instantiations. It works like the normal partial, but only extends the classes that satisfy the constraint. ```c# public class Base<T> { public static void Foo() { Console.WriteLine(“Base<T>.Foo()”); } public void Bar() { Console.WriteLine(“Base<T>.Bar()”); } public virtual void Baz() { Console.WriteLine(“Base<T>.Baz()”); }

//shorthand for complete partial class definition (see below); equivalent to partial class with single method BarPartial
public partial<> void BarPartial() where T : IEnumerable { Console.WriteLine("Base<Enumerable>.BarPartial()"); }


//angle brackets after partial needed to differentiate it from normal partial public partial<> class Base<T> where T : struct { // if T is struct, Base<T> is extended public static void FooPartial() { Console.WriteLine(“Base<struct>.FooPartial()”); }

public virtual void BazPartial() { Console.WriteLine("Base<struct>.BazPartial()"); }

} //introduce extra generics for more complex cases public partial<TVal> class Base<T> where T : IEnumerable<TVal> { // } c#

Base<int>.FooPartial(); //ok -> Base<struct>.FooPartial() Base<string>.FooPartial(); // compile time error: Foo<string> has no member FooPartial

var bStr = new Base<string>(); bStr.BarPartial(); // ok, string is IEnumerable -> Base<Enumerable>.BarPartial() bStr.BazPartial(); // compile time error, string is not a struct!

var bInt = new Base<int>(); bInt.BarPartial(); //compile time error, int is not IEnumerable bInt.BazPartial(); //ok, int is struct -> Base<struct>.BazPartial() ```


override allows to specialize generic methods/classes for certain constraints/concrete types. ```c# public class Derived<T> : Base<T> { public static void FooGeneric<U>() { Console.WriteLine(“Derived<T>.FooGeneric<U>()”); } //override/specialize Generic Methods on Method generics … public static override<> void FooGeneric<U>() where U : struct { Console.WriteLine(“Derived<T>.FooGeneric<struct>()”); } //… or class generics … public static override<> void FooGeneric<U>() where T : struct { Console.WriteLine(“Derived<struct>.FooGeneric<U>()”); } //or both public static override<> void FooGeneric<U>() where T : struct where U : struct { Console.WriteLine(“Derived<struct>.FooGeneric<struct>()”); }

//introduce new generics for complex cases
//override base class impl only for 2-tuples
public override<U, V> void Baz() where T : (U, V) { Console.WriteLine("Derived<tuple>.Baz()"); }
// constraint on struct allowed  ^^^^^^^^^^^^^^^^ means, that T has to be of that type
// also works for concrete types
public override<> void Baz() where T : int { Console.WriteLine("Derived<int>.Baz()"); }

public void Qux<T>(T param) { Console.WriteLine("Qux(T)"); }
//shorthand for methods: first is equivalent to Qux<T>(T param) where T : int
public override<> void Qux<int>(int param){ Console.WriteLine("Qux(int)"); }
public override<U, V> void Qux<(U, V)>((U, V) param) { Console.WriteLine("Qux(tuple2)"); }
//allow type deduction:
public override<> void Qux(double param) { Console.WriteLine("Qux(double)"); }
public override<U, V, W> void Qux((U, V, W) param) { Console.WriteLine("Qux(tuple3)"); }

} c# void Dispatch1<T, U>() => Derived<T>.FooGeneric<U>(); Dispatch1<string, string>(); // -> Derived<T>.FooGeneric<U>() Dispatch1<string, int>(); // -> Derived<T>.FooGeneric<struct>() Dispatch1<int, string>(); // -> Derived<struct>.FooGeneric<U>() Dispatch1<int, int>(); // -> Derived<struct>.FooGeneric<struct>()

void CallBase<T>(Base<T> b) => b.Baz(); CallBase(new Derived<string>()); // -> Base<T>.Baz() CallBase(new Derived<(int, string)>()); // -> Derived<tuple>.Baz()

void Dispatch2<T>() => new Derived<int>().Qux(default(T)); Dispatch2<string>(); // -> Qux(T) Dispatch2<int>(); // -> Qux(int) (this cannot be achieved with overloading, which would have called Qux(T)) ```


new hides more generic implementations. Specialized versions are only called, when the generic context allows it. (Probably the least usefull of the three, but here for completeness sake) ```c# public class DerivedNew<T> : Base<T> { // hide more generic impementations with more specialized ones public static void FooGeneric<U>() { Console.WriteLine(“DerivedNew<T>.FooGeneric<U>()”); } // will only be called if the generic context is at least as constrained as the context in which the method is called public static new<> void FooGeneric<U>() where U : struct { Console.WriteLine(“DerivedNew<T>.FooGeneric<struct>()”); }

//hide Bar of Base when T is a struct
public void new<> Bar() where T : struct { }

} c# void Dispatch1<T, U>() => DerivedNew<T>.FooGeneric<U>(); //no constraint, will always call the most generic version Dispatch1<string, string>(); // -> DerivedNew<T>.FooGeneric<U>() Dispatch1<string, int>(); // -> DerivedNew<T>.FooGeneric<U>()

void Dispatch2<T, U>() where U : struct => DerivedNew<T>.FooGeneric<U>(); //constraint! will call the more specialized version Dispatch2<string, int>(); // -> DerivedNew<struct>.FooGeneric<U>() ```

(Hopefully) useful example

public struct Tuple2<T1, T2>{ 
    public T1 Item1;
    public T2 Item2;

public partial<T> struct Tuple2<T, T> : IEnumerable<T> { //shorthand for Tuple2<T1, T2> where T1 : T where T2 : T
    /* implement IEnumerable */
    public T this[int index] { get { /*...*/ } set { /*...*/ } }

public partial<> struct Tuple2<T1, T2> : IEquatable<Tuple2<T1, T2>>
        where T1 : IEquatable<T1> where T2 : IEquatable<T2> {
    /* implement IEquatable */
    /* also implement operator == and != */
var tIntDouble = new Tuple2<int, double> { Item1 = 1, Item2 = 3.141 };
Debug.Assert(tIntDouble == tIntDouble); //works, since both int and double are IEquatable
tIntDouble[0] = 5; //compile time error

var tIntInt = new Tuple2<int, int> { Item1 = 21, Item2 = 84 };
tIntInt[0] *= 2;
tIntInt[1] /= 2;
foreach (var elem in tIntInt) { Console.WriteLine(elem); } // works, elem is int
Debug.Assert(tIntInt == new Tuple2<int, int>{ Item1 = 42, Item2 = 42 })

The Same could be applied to System.ValueTuple for useful extra features, when applicable. If Concepts/shapes (#110, #164) are added to the language, much more complex scenarios are possible.

AFAIK the runtime emits specialized code for structs when it resolves generics, so it should be possible as long as the specialization is always constrained to struct. However, I would love for it to work on any type.

I chose the keywords partial, override and new because they already exist and behave to some point similarly to the proposed versions, however other keywords like extend and specialize would of course also work.

Updated 16/10/2017 20:36 4 Comments

Renaming services for Kafka and Zookeeper


Both Kafka and Zookeeper have two separate services. The headless service which make sure that DNS records will be created for individual pods and access to them. In ZK this is needed to bootstrap the cluster. In Kafka this is needed to access the partition leaders directly etc.

Second service is a ClusterIP and does load balancing between available servers. For ZK this is used for client access and for Kafka this is used as the bootstrap sever address. IMHO these services are currently a bit unfortunately named. The headless services are always named ...-headless. That means that the DNS hostnames to access the pods look always a bit strange, such as kafka-0.kafka-headless.myproject... or zookeeper-0.zookeeper-headless.myproject.... The names also don’t make it clear which service should be used for what.‘as well as to simplify the DNS names.

I would suggest to rename the services in following way to make it a bit more clear what should they be used for: * kafka -> kafka-bootstrap * kafka-headless -> kafka * zookeeper -> zookeeper-client * zookeeper-headless -> zookeeper


Updated 16/10/2017 16:09

Add connection-level switch for buffering


Schema-level bufferCommands is confusing, especially since in order to actually disable buffering you need to disable it on the driver’s connection as well. Would be nice to say bufferMaxEntries: 0 in mongoose.connect() disables mongoose buffering as well, but schema-level bufferCommands can still override.

Updated 16/10/2017 15:54

Recording panel (meta bug)


This is a meta bug for tracking and discussing landing a recording panel in DevTools. Most of the work will happen on Bugzilla, but it’ll be nice to have a place to put general information about this project.

Existing DevTools features to consider migrating.

Memory allocation tracker

There is a memory allocation tracker that uses the JS engine’s Debugger API. This is hooked up individually to the tab, so that we can exactly see what kind memory is being allocated. I think this is a really nice feature that other performance products generally don’t have. I’ve used it in the past for WebGL engine optimizations to help with GC. The memory actor where this is implemented is tiend into the functionality of the memory tool, so some care will need to be taken.


Much of the complexity (and noise in the recorded data) comes from emitting a stream of information as information is recorded. The new actors should be able to reduce much of this complexity. I think that simplifying the recording model will make for an easier to maintain product.

We should figure out what behavior we want when you have both the add-on and devtools open. My guess is that starting one should stop the other. We can drop support for multiple concurrent recordings, and the code paths will be much simpler.

FPS via requestAnimationFrame

The current actors instrumented requestAnimationFrame to get the FPS. We shouldn’t do it this way, but it would be nice. to have this information.


Supporting console.profile wouldn’t be too hard to bring over, but I’m still wondering if we should support it.

Docshell markers

The actors have access to the DocShell markers, while the Gecko Profile Add-on does not. The benefit of these markers is that you can know they came from the document being profiled. We need to evaluate if we delete these or keep them. I’d appreciate feedback here from @mstange and @tromey.

if (this._withMarkers || this._withDocLoadingEvents) {
  for (let docShell of docShells) {
    docShell.recordProfileTimelineMarkers = true;

Source maps

Tom didn’t include the performance tool when doing source map work before, so we should consider it here. I believe the easiest solution would be to apply the source maps to the profile before sending it over to perf.html, that way we don’t have to have any funky source map workers, and worry about a lot of complexity that would come with source maps. We should possibly also talk about how and if we include JS sources.

Updated 16/10/2017 15:55 1 Comments

Drag-n-Drop in content canvas


The simplest implementation could be just to add move handle to the inline toolbar and drop targets to before and after elements in CCs. Should work exactly as it does in the tree. The smooth scrolling would be done with the plugin that we use in the tree. We can even make draging work from the tree into inline and vice versa.

@aertmann had an idea back in the ages to show a map of zoomed-out view of all elements on the page on drag. But this would be ofc way harder to implement, and I’m not even sure it would be beneficial, since with a good smooth scroll in place it should be no problem to move elements all over the page.

UX tasks: design the look of the drag handle and of drop targets.

Updated 17/10/2017 08:37

[Proposal] Extensions


I would like to see static extension methods in one of new upcoming C# versions. I’m actually trying to modify Roslyn and implement them on my own. But the one thing that I’m not sure about, how would the syntax look? All the extension methods already need to be static and inside of a static class. So I’ll need some help from you guys on this one. Also, quote from an unofficial C# 8 feature overview:

Improved Extension Support – Ability to use more than just extension methods. Adding support for properties, static methods and much more.

I will leave this here just so they can take some inspiration from this if this gets more heat.

Updated 16/10/2017 19:32 3 Comments

Use an "account-aware" local sync folder name in the multiaccount/server scenario


Following the discussion in

@pmaier1 we discussed this one a really long time ago. It was about using more clear names for the sync folders on the multiaccount scenario to distinguish. Only problem is the length of the names when not syncing the root (see example below)

If I understood correctly that would be helpful to organize all the accounts in the client(s). Imagine the scenario with both a branded and unbranded client that displays 2 top-level dropdowns on the explorer’s sidebar (1 per client):

  • ownCloud (unbranded)
    • Photos - - [when the root is not the folder to sync]
  • testpilotCloud (branded client)
    • user1@private.server.tld
Updated 16/10/2017 13:24 1 Comments




Any questions, improvement suggestions or general discussion about security. Ask and comment freely. I also wanted to clarify why I did the things and improvements this way. The document will be updated randomly when new ideas appear.

HTTP or sockets -> Native Messaging

When a browser extension starts a process using Native Messaging first it loads a JSON config file that holds the path to the binary file and a list of allowed browser extensions. So when comparing this to the plain passifox/chromeipass and KeePassHTTP it much more secure. To gain access to your database or the KeePassXC process a malicous browser extension will not be accepted and Native Messaging returns an error. To “hack” the connection between Native Messaging browser extension and KeePassXC you’d need a rogue application that must change the JSON file content and provide an incorrect or malformed version of the KeePassXC itself. The downside is that the keepassxc-browser extension basically controls the KeePassXC process and it cannot be started beforehand or the connection fails. In short, it’s pretty secure after all.

Proxy application support

At this point the KeePassXC fork/feature supports also UDP socket connection that could handle any messages between keepassxc-browser and KeePassXC with the keepassxc-proxy application. Of course using this method is basically as safe as the current KeePassHTTP implementation. The only difference is that UDP socket cannot be accessed from browser extensions. When using a proxy application through UDP or the old KeePassHTTP method it’s possible that a malicious application captures your keys and acts like a “verified” client. Currently there’s no safe method to ensure if the client is valid without any extra user interaction. Still, libsodium provides a slightly better encryption so the connection doesn’t rely on just one base64 encoded key that’s visible in packet capture.. Instead it uses a keypair where only public keys are transferred but you need the secret key(s) to encrypt or decrypt the data.

Updated 16/10/2017 12:49

Map control



  • [x] Map field based on leaflet js
  • [x] Leaflet Draw plugin to draw and store geojson featurecollection
  • [x] Leaflet Locate button to locate to current geolocation
  • [x] Save
  • [ ] Organize code
  • [ ] onload, refresh, reload needs fixes
  • [ ] locate center of all saved features and start map there.
  • [ ] tests
Updated 17/10/2017 03:35 5 Comments

Plan : Test + Publication de redux-cozy-client sur npm



Pour les tests, je vous propose que Travis lance les tests seulement si un fichier contenu dans src/lib/redux-cozy-client` a été modifié.


Nous allons devoir publier la librairie sur npm (en mode automatique j'espère), je me dis autant mettre ça en place dès maintenant même si la librairie n'est pas encore stable. Nous utiliserons la nomentlature semver.

Prérequis : Il va falloir que l'on ajoute un fichier package.json dans le dossier de la lib.

Je vois plusieurs solutions :

  1. On publie à la main …

  2. A chaque modification Travis publie une nouvelle version automatiquement sur npm. Comment on gère les numéros de version ? … beta-42 ?

  3. A chaque modification du numéro de version Travis publie sur npm (il faut qu'il vérifie sur npm quelle version il y a actuellement et si la version n'existe pas il publie)

  4. Travis push automatiquement le code sur un autre repo (cozy/redux-cozy-client). Ce qui permet d'avoir la documentation, les issues sur un autre repo que cozy-drive. Depuis ce nouveau repo on a juste a créer une release à la main pour que celui-ci publie sur npm (ou on met en place la release automatique quand le numéro de version change). Ca peut permettre de minimiser le temps d'execution coté Travis.

Vous en pensez quoi ?


  • [ ] Renommer la librairie (cozy-client-js ?)
  • [ ] Mettre en place une documentation
  • [ ] Ajouter un
  • [ ] Ajouter un package.json
  • [ ] Compiler la librairie
  • [ ] Tester la librairie seulement si une modification est faite
  • [ ] Publier sur npm à la main
  • [ ] Publier sur npm automatiquement après changement du numéro de version
Updated 17/10/2017 07:21 3 Comments

Error after simulating Modelica.Fluid.Examples.HeatingSystem in OMEdit


After I try simulating the heating system example, I get the following error in the OM Edit output dialog box:

stdout | OMEditInfo | <p>C:/Users/Darcy/OneDrive/Documents/Masters/Cyprus/Eclipse/EclipseLocalRepo/Pentakomo/PentakomoModelling/Working Directory/Modelica.Fluid.Examples.HeatingSystem.exe -port=55016 -logFormat=xmltcp -override=startTime=0,stopTime=6000,stepSize=12,tolerance=1e-06,solver=dassl,outputFormat=mat,variableFilter=.* -r=Modelica.Fluid.Examples.HeatingSystem_res.mat -jacobian=coloredNumerical -w -lv=LOG_STATS</p> assert | warning | <p>The following assertion has been violated at time 0.000000<br> pump.delta_head_init >= 0.0</p> assert | warning | <p>Variable violating min constraint: 0.0 <= pump.delta_head_init, has value: -2.0431</p> stdout | warning | <p>While solving non-linear system an assertion failed during initialization.</p> stdout | warning | <p>The non-linear solver tries to solve the problem that could take some time.</p> stdout | warning | <p>It could help to provide better start-values for the iteration variables.</p> stdout | warning | <p>For more information simulate with -lv LOG_NLS</p> stdout | warning | <p>While solving non-linear system an assertion failed during initialization.</p> stdout | warning | <p>The non-linear solver tries to solve the problem that could take some time.</p> stdout | warning | <p>It could help to provide better start-values for the iteration variables.</p> stdout | warning | <p>For more information simulate with -lv LOG_NLS</p> LOG_NLS | warning | <p>nonlinear system 192 fails: at t=0</p> LOG_NLS | warning | <p>proper start-values for some of the following iteration variables might help</p> LOG_NLS | warning | <p>[1] Real tank.s2</p> LOG_NLS | warning | <p>[2] Real tank.s1</p> LOG_NLS | warning | <p>[3] Real tank.ports[2].p(start=100000, nominal=1e+006)</p> LOG_NLS | warning | <p>[4] Real radiator.statesFM[1].p(start=5e+006, nominal=1e+006)</p> LOG_NLS | warning | <p>[5] Real radiator.statesFM[3].p(start=5e+006, nominal=1e+006)</p> LOG_NLS | warning | <p>[6] Real radiator.mediums[1].p(start=110000, nominal=100000)</p> LOG_NLS | warning | <p>[7] Real radiator.statesFM[2].d(start=150, nominal=500)</p> LOG_NLS | warning | <p>[8] Real pipe.mediums[2].p(start=130000, nominal=100000)</p> LOG_NLS | warning | <p>[9] Real pipe.mediums[2].h(start=335014, nominal=500000)</p> LOG_NLS | warning | <p>[10] Real pipe.mediums[1].h(start=335014, nominal=500000)</p> LOG_NLS | warning | <p>[11] Real pipe.mediums[1].p(start=130000, nominal=100000)</p> LOG_NLS | warning | <p>[12] Real heater.mediums[1].p(start=130000, nominal=100000)</p> LOG_NLS | warning | <p>[13] Real heater.mediums[1].h(start=335014, nominal=500000)</p> LOG_NLS | warning | <p>[14] Real pump.medium.p(start=130000, nominal=100000)</p> LOG_NLS | warning | <p>[15] Real radiator.m_flows2</p> LOG_NLS | warning | <p>[16] Real radiator.mediums[1].h(start=167632, nominal=500000)</p> LOG_NLS | warning | <p>[17] Real m_flow(start=0.01, nominal=1)</p> LOG_NLS | warning | <p>[18] Real tank.medium.h(start=84013.1, nominal=500000)</p> LOG_NLS | warning | <p>[19] Real pump.medium.h(start=167650, nominal=500000)</p> LOG_NLS | warning | <p>[20] Real pump.N(start=1500, nominal=1)</p> assert | debug | <p>Solving non-linear system 192 failed at time=0.<br> For more information please use -lv LOG_NLS.</p> assert | info | <p>simulation terminated by an assertion at initialization</p> stdout | error | <p>Simulation process failed. Exited with code -1.</p>

Updated 16/10/2017 11:50 1 Comments

REST Interface


I am going to update the list with more specific details.



method: GET params: none response: {}






Resources (We most certainly won’t be fully RESTful)

Updated 16/10/2017 10:46

Is there any reason to automatically bump up Stylis versions?


Apologies if this has come up before, but I couldn’t find anything in old issues.

Currently the Stylis dependency version is set to "3.x" in the package.json. Is there any reason this isn’t a standard caret version number?

We have snapshot tests running in our CI pipeline, and because the CI installs the dependencies from scratch every time we often get a new minor release of Stylis without meaning to, which has caused our snapshots to be mismatched with the local versions quite a few times now. The most recent case was a sudden rogue -webkit-clip-path (caused by an inadvertent upgrade to Stylis 3.3.0).

Is there any reason we would want minor releases (with potentially breaking changes) to happen automatically?

Updated 16/10/2017 12:58 9 Comments

Constructor Properties


Allow defining a primary constructor for a class or struct by using a keyword for each parameter This removes boilerplate code but keeps immutability on public fields. This proposal overlaps with the discussions on record types and a previous proposal for primary constructors.

The following syntax csharp public class Point { public in int X { get; } public in int Y { get; } } becomes shorthand for ```csharp public class Point { public int X { get; } public int Y { get; }

public Point(int x, int y)
  this.X = x;
  this.Y = y;

} ```

Of course a different possibly better keywords can be found, since it should probably be a contextual keyword, for example: ```csharp public input int X { get; }

public primary int X { get; }

public constructor int X { get; } ```

Updated 16/10/2017 19:32 6 Comments

Overriding/merging of sequence nodes can lead to weird behavior.


In current conreate, if we have sequence nodes of plain values like:

    - "foo"
    - "bar"

and any module which define this cmd key too, all values are appended and can result in non expected state.

We probably should consider moving everything to mappings syntax, so we can easily override/append values. Drawback is that we must be sure to use OrderedDict in python to not get nodes in not guaranteed order.

Keys, affected by this are: * packages/repositories * packages/install * run/cmd * run/entrypoint

Updated 16/10/2017 09:33

Bug : Convert credit note to discount



When convert a credit note to discount, if the credit note had a absolute discount from the invoice and the vat of absolute discount is différent of other line, two new discounts are created bug the sum is greatter than credit note amount.


  • Version: 5.0.x
  • OS: Debian 8
  • Web server: Apache2
  • PHP: PHP7
  • Database: Mariadb 10
  • URL(s): /comm/remx.php

Steps to reproduce the behavior

  • Create a standard invoice
  • Add a product with sales tax 20% to the invoice
  • Create an absolute discount with sales tax 0% for the customer
  • Apply this absolute discount to the invoice
  • Validate the invoice and then create a credit note with lines from the origin invoice
  • Validate the credit note and convert it into future discount
Updated 16/10/2017 19:34 1 Comments

Implement is_echo() for joypad button input


Ubuntu 17.04 x86_64 NVIDIA GeForce 750GTX, 378.13 Logitech F310 set to Xinput

According to the docs, the if_echo() function

Returns true if this input event is an echo event (only for events of type KEY, it will return false for other types).

Is it possible to have button inputs return true as well?

For example, if I write a jump function as such: ``` if ev.is_action_pressed(“jump”): jump_attempt = true elif ev.is_action_released(“jump”) or ev.is_echo(): jump_attempt = false

``` The character will jump only once when using a keyboard, but will keep hopping when using a joystick, making the behavior inconsistent between input types.

Updated 16/10/2017 17:55 6 Comments

get/set Expression bodied properties


Allow to get and set with expression Bodied properties

public int X <=> point.X;

Equivalent to

public int X
    get => point.X;
    set => point.X = value;

Could be used for indexers too.

public int this[int index] <=> _source[index]; 

Equivalent to

public int this[int index]
    get => _source[index];
    set => _source[index] = value;

Notes to consider

  • expression must be a valid l-value and r-value (as suggested by @benaadams)
Updated 16/10/2017 19:32 14 Comments

SelectPanel 组件接口



  • datasource: Array
    value: '1',
    label: 'Steve Rogers'
    value: '2',
    label: 'Natasha Romanov',
    children: [
        value: '3',
        label: 'Bruce Banner'
  • searchable: boolean

  • filter: Function

  • placeholder: string

  • showMode: 'tree' | 'flat'


  • head

  • no-data


  • default
Updated 17/10/2017 03:24

Tree 组件接口



  • datasource: Array
    value: '1',
    label: 'Steve Rogers'
    value: '2',
    label: 'Natasha Romanov',
    children: [
        value: '3',
        label: 'Bruce Banner'
  • rowToggable: Boolean


  • click

  • expand

  • collapse

Scoped Slots

  • item

  • item-label

Updated 16/10/2017 10:06 6 Comments

[Discussion] Project Details


Hello @naweewan and anyone else in the class.

Thanks for setting up this repo.

I’m not too clear about all the details of this project: - Is this repo a team project to build a finite element library and solver? Where everyone contributes to the code. - Or just a place to get help, post questions, etc, but work on our own solvers individually?


Updated 16/10/2017 03:43 1 Comments

[Suggestion] Explicit Required Named Arguments


I’d like to require certain arguments to be called with a name argument label.

Currently I can sort of fake this requirement by providing a dummy optional parameter as the first parameter when all the arguments are optional.

        // I want to force the caller to use a named paramerter label so please excuse the __paramLabelRequired__
        public void UpdateScreen(int __paramLabelsRequired__ = 0, bool showingTitle = true)

This is how I must call this now. C# view.UpdateScreen(showingTitle: false);

The below will not work because of the dummy first optional argument and this is intentional. C# view.UpdateScreen(false);

This would work though:


It would be awesome if I could require a name argument like this:

        public void UpdateScreen( bool @required showingTitle)

or something like this.

        public void UpdateScreen( bool showingTitle showingTitle)

alternatively if could be added to the method.

        public void UpdateScreen( bool showingTitle)

Currently I am not able to require it in non optional arguments which is where I would want this to work.

The advantage is that the named argument would be required at the call site thus giving more meaningful information to the caller on what the parameters do at a glance.

This could work after this is implemented:

Updated 16/10/2017 19:31 1 Comments

[Feature] CLI parsing


First of all, i really like fusebox :D I missed an way for proper options parsing. Therefore i wrote an module called “fuse-box-cli” (

Are you interested in adding an feature like this to fusebox? (Show help, List tasks, list options, access options)

Updated 16/10/2017 19:18 3 Comments

Generic constraint specifying concrete/non-abstract type


In many of the use-cases I’ve had involving generic types that are abstract, the pattern requires that the type of the generic argument be a non-abstract or concrete type. The new() constructor can enforce that only if the generic argument type provides a public default constructor, which may not always be the case. What I propose is a way to enforce the constraint that a generic argument type be non-abstract, without regards for what constructors it provides:

public class Class1<T> where T: class, new       


In the example, the new keyword is used without trailing parenthesis, and serves as a way to assert that T must not be abstract, without regards for what constructors it has or doesn’t have.

This design would also support the proposed parameterized new constraint as well, and could also be viewed as merely an extension of that.

Updated 16/10/2017 20:18 9 Comments

No effective way to stop a lengthy calculation.


Not sure how Jupyter solves this problem but in SoS, if I accidentally evaluate a large matrix, there is no easy way to stop it. Kernel->interrupt will send ctr-C to the subkernel but the Jupyter frontend still displays * (busy) and will not accept new inputs.

If Ctrl-C has successfully stops the calculation of the underlying kernel, it is a bug in Jupyter or SoS to not able to resume with other commands.

Updated 15/10/2017 21:02

Create template for how system values are watched


As of yet, we haven’t established a template or a reference for how systems watch other systems' values.

To avoid rewriting a lot of code, I propose that we make a universal “setter” function that handles setting the value itself, updating Socketio clients, and updating systems who are watching that value. We would then have every system class inherit that setter function.

Here’s a bit of pseudocode: class System { = "System" this.callbacks = {value1:[ ],value2:[ ]} set(ident,value) { this[ident] = value io.emit("."+ident, value) for(c in this.callbacks[ident]){ call c }} addcallback(ident,callback){ this.callbacks[ident].add(callback) etc

class Power extends System ... turnOn(){ this.set("on",true) etc

So, to set a value and notify all observers (other systems and clients), use set(), and to add a callback (function to be executed when a systems value changes), use addcallback(). What are your thoughts?

Updated 15/10/2017 20:14 1 Comments

State Slices 🍰


One consequence of adding support for state slices 🍰 /modules in Hyperapp is that actions only receive their 🍰 of the state and can only return updates to that 🍰 . This extends to actions wrapped by an HOA as well.

This is good because:

it only shows you the 🍰 of the state that can change during an action, cutting down on extraneous information while debugging.

This is bad because:

it won’t show the other global state at the time the action ran. However, since the global state is unable to affect the outcome of an action that runs against a state 🍰 is this actually useful?

Here are some of our options:

  1. Log only the state 🍰 like we do today.
  2. Log the global state. This will need some hackery to get the entire global state before and after the update happens.
  3. Add more arguments to the custom log function and leave the default logger as-is.
  4. Add a flag to options for switching between 🍰 and global state. The default could be either one.

Now I need to go eat some 🍰 😋

Updated 15/10/2017 23:51 4 Comments

[React Native] text-transform css-to-react-native support



As you know, RN team currently (and for the past 2.5+ years) has seen no apparent reason to implement support for CSS prop text-transform which is great for keepings things separate and generally follows DRY.

Even though there’s no support from RN team on lack of text-transform is it possible to implement it for styled-components? Is there any way to retrieve a Text nodes values in the styled.[[NODE_NAME]] scope and pass it back after parsing and applying text-transform value?

Updated 15/10/2017 18:13 2 Comments

Engine Functionality for rune


We need to have a discussion on the different functionality that will be provided by the Engine and formally define those concepts. We should be thorough with the plan before implementation. I will add a detailed summary here soon.

Updated 15/10/2017 15:57

Feature: don't unfollow active users


What do you guys think about this feature ?


  • users that liked the last 4 posts are saved in a list (active_users)
  • when bot runs, it update the (active_users) list, and add the active_users to friends list (set_dont_include option)
  • when unfollow is called, it wont unfollow friends list

updating the list:

  • add users: users that liked at least one of the latest 4 posts
  • remove users: users that didn’t liked at least one of the latest 4 posts
Updated 15/10/2017 17:15 1 Comments

Create template for how other systems are referred to


One thing we didn’t come up on the 14th was a way for systems to refer to other systems.

One thing we could do is to pass certain required systems to module.exports, like so: module.exports = (io,Power) => { ... turnOn(){ if(Power.Lights > 100){ etc

Power = require('./systems/power')(io) Lights = require('./systems/lights')(io,Power)

The problem with this is that we cannot have any circular dependencies. If Light needs to access the Power system but Power also needs to access the Light system, this won’t work.

What we could do, and what I propose we do, is have a JSON containing all systems that is passed to module.exports:

module.exports = (io,Ship) => { ... turnOn(){ if(Ship.Power.Lights > 100){ etc

Ship = {} Ship.Power = require('./systems/power')(io,Ship) Ship.Lights = require('./systems/lights')(io,Ship)

In this way, Lights has access to all systems it needs, as does Power. What are your thoughts?

Updated 15/10/2017 14:24

API endpoints


Would it be better to include api version in our endpoints ?

For example right now we have /api/auth/ and it doesn’t specify any version. So changing api could cause some problems in the future for the ones that use the previous api. With version it could be something like /api/v0/auth/ and when we change the api we can create a new endpoint such as: /api/v1/auth.

Updated 16/10/2017 07:33 2 Comments

Time out bots


Something something time outs.

Were and how do we want to handle bot-timeouts? What questions do we want/need to ask ourselves?

Some questions already: - Is time-outing a bot responsibility of the gameserver, or the gamerules? - In case gameserver: how do we propagate these errors to the rules? - In case of rules: how do we detect this properly without taking over too much responsibility from the server? - What metric do we use for detecting time out? Do we support multiple? - At what point do we take network latency into consideration? - How would we convey the erroring to the user? - Add more…

Updated 15/10/2017 14:56

Improved inclusion of OpenAL files


I tried to compile OpenTomb with mingw-w64 under CYGWIN. During this process I had got an error because it could not find OpenAL files. This happened because in CYGWIN the path to the compiler does not match only to the compiler name, but it also includes an extra “/sys-root/mingw”. I did a fix into Toolchain-cross-mingw32-linux.cmake by declaring two different constants, one for the toolchain name prefix and one for the toolchain path prefix. In this commit, I left previous situation and I kept commented the fix to CYGWIN. To get it working with this enviroment, the proper macro needs to be uncommented, in a similar manner it had to be done with the compiler name. However, I would like to suggest to change the inclusion of openal files from:

include <al.h>


include <AL/al.h>

by using the same convention tipically used with OpenGL, for example. For this purpose I added src/audio/audio_al.h, that it is included in the various source files for simplify a bit. After that, the extra line in the configuration file for mingw cross compilation for adding a search path to the openal include files become useless, so it has been removed.


PS: I do not own the games, so I tried to run the demos but I could not. Is it a known limitation/bug or I have to follow a particular procedure?

Updated 17/10/2017 06:34 5 Comments

New flash card design


There are a few blog post that review manuskript, and a common reaction that comes often is that the interface is ugly. “Tthe kind of UI that drives people away from open source.” says one. That’s frustrating because I try as much as possible to keep the interface clean.

Recently I had a mail exchange with @camstevenson and came upon is own writing software, eclecdec. I liked the way he did his flash cards (see here), a sober flat design, so i shamelessly copied it:


Compared to the old style:


It’s already been pushed to develop so people can try it. You can easily switch in the preference dialog.

As the old one, it can be customized: background color, border, text color, icon and corner.


What do you think of it ? Is that an improvement? What else could be improved?

Updated 15/10/2017 19:15 2 Comments

Follow rules from Google's PlanetWars AI Challenge more closely


Note: this is a discussion, some points might require their own issue. I’ve fattened the important parts.

The rules.


Planet positions are specified relative to a common origin in Euclidean space. The coordinates are given as floating point numbers.

The growth rate of the planet is the number of ships added to the planet after each turn. If the planet is currently owned by neutral, the growth rate is not applied. Only players can get new ships through growth. The growth rate of a planet will never change. It is given as an integer.


The total trip length is given as an integer, representing the total number of turns required to make the trip from source to destination. The turns remaining is also an integer, representing the number of turns left from the current turn to arrive at the destination.

File Format

Note: this format is also used for gamestate, for which this change might be more relevant.

The map file format is fairly simple. Each line may be blank, a planet, or a fleet, and each line is separated by Unix style line breaks (LF, not CR or CRLF). # characters and everything after them are treated as white space (comments), so a line beginning with a # character is considered blank, too.

Updated 15/10/2017 10:38 1 Comments

Model for keystore, key, subkey interactions



From @ni4 in #497 :

In my opinion subkey should be part of the key, not the separate entity of the keystore. So, for instance, for decryption/verification operation it is searched by keyid, and for encryption/signing - by user id of the main key. @dewyatt, @flowher, @ronaldtse what do you think?

Updated 15/10/2017 09:32 3 Comments

post order traversal


I think an implementation of a recursive traversal may be useful

h5py has visit and visititems, however these visit groups before visiting their elements

Many of the things, particularly rm (#2) require that the group is visited after its elements

My thought is such a post order traversal would be implemented in H5Explorer

Updated 15/10/2017 05:16 1 Comments

Halo interfering with colorama color styles


In my program, I’m attempting to use the library Colorama to use terminal colors, and to brighten up text in my program. I’m also using halo for the spinners, but the two libraries conflict when a halo spinner is added.

Colorama’s colored text automatically gets dimmed, and regardless if I disable the spinner, I’d have to brighten up each print statement, and every color change.

This appears to only be occurring on Windows, and in the default command prompt. I’m thinking the issue stems from changing the terminal color on your side.

Updated 15/10/2017 15:11 2 Comments

Restyle homepage



The homepage is the first thing that people see when they navigate to OpenDominion. In my opinion it’s a bit bland and boring at the moment and I want it to leave a good (or better) impression.

I’m not a designer and I would like to have someone take a look at it and suggest (or PR) things that could be improved here.

Any additional info which could be displayed here:

  • Some more explanation in text on what the game is about, how it’s played etc.
  • Screenshots of the certain pages in the game, since the whole game is behind a login-wall.
  • Current round status, like name + number and how many days are left.
  • Current highscores in the round? Top X players/realms on land size/networth etc.
  • Perhaps more? Feel free to ask or suggest.

Brainstorming out loud, perhaps a 9-3 column setup, where on the right there could be some info boxes regarding the current round and a basic current round highscore list or important events below it?

Here are some examples how other projects in the same PBBG genre do it:

(Do note that the PBBG genre itself is somewhat old and dates back before we had Bootstrap or viewport responsiveness was a thing.)

I want to keep the general style of the current AdminLTE theme, including the colors, blue navigation bar at the top and the links in it. The content area (logo and ‘Welcome to OpenDominion’-box) can be completely restyled if needed. Preferably with elements and components that AdminLTE brings.

And I know using a dashboard theme for this isn’t the best idea, but it works pretty well for me for the most part. If you have any suggestions, feel free to share!

Updated 15/10/2017 10:35

Lag after sending Burst


The app was really laggy after pressing the send Button.

  • Application Version: 0.1.1
  • Android Version: 7
  • Device: Samsung Galaxy S7

Steps: 1. I started the app 2. I pressed send 3. I scanned the QR-Code of the address 4. I wrote the amount and pressed verify 5. I wrote my pin 6. I pressed send

Updated 15/10/2017 15:22 3 Comments

Support TAU constant as well as PI


Nowadays there is a strong case for TAU. Mathematicians and teachers are organically adopting it. (any khan academics here?)

I just coded (discovering for the first time with immense delight this beautiful software that is godot) a simple script to rotate like a trackball a Spatial node from mouse inputs, and the code is easier to understand with whole rotations (TAU) as baseline instead of half-rotations (PI).

Here’s the excerpt :

var TAU = 2*PI

var t = node.get_transform()
var up = t.xform_inv(cameraUp)
t = t.rotated(up, tangent.x * TAU)

I’d suggest going as far as to add a deprecation notice to PI, suggesting TAU, but maybe it’s too soon.

This is a very opinionated feature request, with a hint of a pedagogic stance, so I’m not sure you all will accept this. It’s a breaking change, too, for people who defined TAU already.

But it is future-oriented and rationally justified ; waiting for the world to change is alwayss easy, rarely usseful.

(I just half-quoted Professor Quirrel, so I’m not going to quote Gandhi afterwards, but you get the idea)

Let’s see them thumbs ! What do you think ?

Updated 14/10/2017 22:44 3 Comments

Redaction view navigation improvements


I became lost and frustrated attempting to navigate in the Redaction view:

  • It wasn’t obvious how to get from the editor view back to the card view
  • It wasn’t obvious how to get to the root card view

My suggestion would be to add a “Root” node to the Project Tree, and an “Up level” button to the tab view (see crude mockup).

(If I’m misunderstanding something fundamental, feel free to correct me :-))


Updated 15/10/2017 19:14 5 Comments

C plugin usage



There is a new C plugin as part of our repository available for some time. * Who has already some experience with it? Can you share you experience with us please? * Who has already both cxx and c plugin in parallel in use? Is this working as expected?

Latest snapshot versions are available here:


Updated 14/10/2017 12:03

Make classpath hashing more lightweight


It would be good to have the option to bypass the calculation of a file hash code if the size has not changed and the timestamp has not changed (just the timestamp should be ok). This has huge performance potential… avoiding doing work at all.

Possibly there could be some trigger that the file timestamp must be older than an hour or something… to avoid user interaction problems.

NIO allows a fast mechanism for collecting bulk metadata, it should be possible to traverse a directory and get all of this information very quickly before deciding what needs to be rehashed.

Updated 16/10/2017 09:01 3 Comments

Fork me on GitHub