Training capability much worse than 2.0.5

Please make sure that the boxes below are checked before you submit your issue. If your issue is an implementation question, please ask your question on StackOverflow or join the Keras Slack channel and ask there instead of filing a GitHub issue.
Thank you!

[X] Check that you are up-to-date with the master branch of Keras. You can update with:
pip install git+git://github.com/fchollet/keras.git --upgrade --no-deps

[X] If running on TensorFlow, check that you are up-to-date with the latest version. The installation instructions can be found here.

[ ] If running on Theano, check that you are up-to-date with the master branch of Theano. You can update with:
pip install git+git://github.com/Theano/Theano.git --upgrade --no-deps

[x] Provide a link to a GitHub Gist of a Python script that can reproduce your issue (or just copy the script here if it is short).

I happened to re-run a model that I trained some months ago. I was surprised that I can't train it to the same level as before. I did the following investigation using different versions of Kerras and Tensorflow. For better interpreting the results note that Y is normalized between -1 and +1.
Model used:
from nntools import helper
import numpy as np
import random
import win32gui
import win32con

from keras.layers import Input, LSTM, Dense, concatenate, BatchNormalization
from keras.models import Model
from keras import optimizers
from keras.callbacks import EarlyStopping, CSVLogger, ReduceLROnPlateau
from keras.utils import plot_model
import os
from phased_lstm_keras.PhasedLSTM import PhasedLSTM as PLSTM

import tensorflow as tf

os.environ["PATH"] += os.pathsep + 'C:/Program Files (x86)/Graphviz2.38/bin/'

hwnd = win32gui.GetForegroundWindow()
win32gui.ShowWindow(hwnd, win32con.SW_MAXIMIZE)

timesteps = 40
holdout_percentage = 0.05  #Not used now
pretrain_epochs = 40
#early_stopping_patiente = 50
datafile = "C:/Data/data40_new3.csv"

xEMA_,y_ = helper.rnn_csv_toXY(datafile,timesteps,["P","ATR"],"T1",False)

adadelta_EMA = optimizers.adadelta()
adam_EMA=optimizers.adam()
sgd_EMA = optimizers.SGD(lr=0.01, decay=4e-5, momentum=0.9, nesterov=False)  #LSTM
sgd_EMA_PLSTM = optimizers.SGD(lr=0.01, decay=4e-5, momentum=0.2, nesterov=False)  #PLSTM
reduce_lr_EMA = ReduceLROnPlateau(monitor='val_loss', factor=0.5, patience=3, verbose=1, cooldown=1, min_lr=0.005)  #For SGD
#im = IncreaseMomentum(step=0.2, max_momentum=0.7)
#early_stopping_EMA = EarlyStopping(monitor='val_loss', min_delta=0.0001,
                                                                        #patience=early_stopping_patiente, mode='auto')
with tf.device('/gpu:0'):
    ema_in = Input(name='ema_in', shape=(xEMA_.shape[1],xEMA_.shape[2]))
    ema_in_BN = BatchNormalization()(ema_in)
    ema_lstm1 = LSTM(1200, name='ema_lstm1', implementation=2, return_sequences=True)(ema_in_BN)
    ema_lstm1_BN = BatchNormalization()(ema_lstm1)
    ema_lstm2 = LSTM(1200, name='ema_lstm2', implementation=2, return_sequences=False)(ema_lstm1_BN)
    ema_lstm2_BN = BatchNormalization()(ema_lstm2)
    ema_dense1 = Dense(2400, name='ema_dense1', activation='tanh')(ema_lstm2_BN)
    ema_dense1_BN = BatchNormalization()(ema_dense1)
    ema_dense2 = Dense(1200, name='ema_dense2', activation='tanh')(ema_dense1_BN)
    ema_dense2_BN = BatchNormalization()(ema_dense2)
    ema_dense3 = Dense(600, name='ema_dense3', activation='tanh')(ema_dense2_BN)
    ema_dense3_BN = BatchNormalization()(ema_dense3)
    ema_output = Dense(1, name='ema_output', activation='tanh')(ema_dense3_BN)

    ema_model = Model(inputs=[ema_in], outputs=[ema_output])
    reduce_lr_M_adadelta = ReduceLROnPlateau(monitor='val_loss', factor=0.5, patience=3, verbose=1, cooldown=1, min_lr=0.5)  #For adadelta
    reduce_lr_M = ReduceLROnPlateau(monitor='val_loss', factor=0.5, patience=3, verbose=1, cooldown=1, min_lr=0.005)  #For SGD
    early_stopping_M = EarlyStopping(monitor='val_loss', min_delta=0.001, patience=40, mode='auto')
    csv_logger = CSVLogger('training_log3_209_LSTM_SGD.csv')

    ema_model.compile(optimizer=sgd_EMA,
              loss={'ema_output': 'mean_squared_error'}, metrics=['mae'])
    #ema_model.compile(optimizer=adadelta_EMA,
    #          loss={'ema_output': 'mean_squared_error'}, metrics=['mae'])
    print("Train EMA on GPU0...")
    ema_model.fit({'ema_in': xEMA_},
          {'ema_output': y_},
          epochs=500, batch_size=40, validation_split=0.1,
          callbacks=[csv_logger, reduce_lr_M, early_stopping_M])

Results with Keras 2.0.9 and TF 1.4.0:
epoch,loss,mean_absolute_error,val_loss,val_mean_absolute_error

0,1.05968262962,0.985275764846,1.10819295021,1.03706740068

1,0.979859521839,0.939838988512,1.0076873856,0.979688630307

2,0.946857691283,0.913535889255,0.750179696942,0.825602595291

3,0.762938497789,0.785929248137,1.08659711466,1.02602888577

4,0.501235865148,0.589149763212,0.132253268072,0.307935305328

5,0.2807936117,0.413878542905,0.114725752961,0.292098902317

6,0.139581092516,0.291962343971,0.070717339354,0.21767100456

7,0.114901034081,0.263645202189,0.0706408966877,0.217224851168

8,0.101012383458,0.245739355278,0.0468780662885,0.176116148001

9,0.0997591257731,0.244218098339,0.0869001861954,0.24957025293

10,0.0957704882136,0.238081805803,0.0793308527111,0.237788404863

11,0.0917768303432,0.232730614943,0.0355999692114,0.154031230826

12,0.0880096098064,0.227360123548,0.0304724577584,0.140374521908

13,0.0856908053515,0.223671286127,0.0345248061943,0.150562275536

14,0.0844831893862,0.22217891928,0.0360884426361,0.154798901412

15,0.0844001181336,0.221470015169,0.030373785525,0.140394812572

Loss does not decrease 0.08 even after longer time.
Results with Keras 2.0.5 and TF 1.2.0:
epoch,loss,mean_absolute_error,val_loss,val_mean_absolute_error

0,0.674994680866,0.787532132172,0.210298314454,0.401246211335

1,0.50003129797,0.640251753075,0.186895873197,0.360440107238

2,0.0864018025559,0.23287392271,0.0184035980327,0.112992629679

3,0.0415469702159,0.159678566147,0.0345238949807,0.166836664362

4,0.0323593134869,0.141381580302,0.0117207404594,0.0815250731591

5,0.0255187416594,0.125329670333,0.00788067547078,0.0707015042412

6,0.0199052717129,0.110094056107,0.0146587090298,0.0996316193543

7,0.0194325417159,0.108653233154,0.022364237375,0.12307138551

8,0.0179296625274,0.103960103221,0.0104151797266,0.0821187130446

9,0.0156120462513,0.0965747672158,0.00753274433028,0.0676462595845

I have ran these a few times and results are always showing the same difference between the two versions. It looks clear that the older version is superior in training speed and converges to a much lower loss. 2.0.5 achieves mse 0.015 after 9 epoch while 2.0.9 is at mse 0.08 after epoch 15. Also version 2.0.9 never achieves mse 0.015 it gets stuck around 0.08 lagging significantly behind the earlier version. I tried to trace back when the change was introduced between the two versions so I ran:
Results with Keras 2.0.6 and TF 1.2.0
epoch,loss,mean_absolute_error,val_loss,val_mean_absolute_error

0,1.01219834391,0.958042641546,0.323887029367,0.507626796452

1,0.987153389447,0.947846812448,0.991314166002,0.972727180805

2,0.913755040475,0.895092398818,0.960553074588,0.954757456198

3,0.887703684235,0.877553070937,0.319060129579,0.459220583437

4,0.42077836859,0.534649828892,0.427964422614,0.602694774897

5,0.166042508874,0.321681825808,0.0520719601093,0.188639527333

6,0.130638394979,0.283327733159,0.0684811605399,0.21664535411

7,0.111096850008,0.259380427971,0.0437811681681,0.170154755492

8,0.105542496341,0.25173293699,0.0437140094443,0.16746392877

9,0.0990599608695,0.243373310091,0.0838070973706,0.238413533012

10,0.0927036643884,0.234348856499,0.0374346287566,0.158595657002

11,0.0888211610787,0.228353776273,0.0463573170836,0.176301127744

12,0.0889625790833,0.228434735812,0.0604750635987,0.202052195814

13,0.0873379450592,0.226243785039,0.0420134068426,0.164519093145

14,0.0842049010805,0.221496316829,0.0536444546858,0.186482944605

15,0.0756696959965,0.20801132382,0.0432103228089,0.169859484031

16,0.0757876485275,0.208129870598,0.0326403788479,0.145170186645

17,0.075430783716,0.207450285694,0.0314801485713,0.143648955088

18,0.0749894291144,0.206845118805,0.0369722390038,0.154727127577

It appears that upgrading keras from 2.0.5 to 2.0.6 causes the decreased efficiency in training therefore it's likely that the problem was introduced with 2.0.6 and it's still there ever since. I ran all tests with same environment with same data, the only change I did was upgrading/downgrading keras and TF.
Can someone check with another model that 2.0.5 is that much better?
Is there perhaps a known issue? I could not find by searching.

Out of curiosity, could you try with TF itself as a baseline and/or try with another backed ( if installing it isn't too complicated for you).

Do you also observe a difference if you use GRU instead of LSTM?
Do you also observe a difference if you use tf.keras in TF 1.4 instead of PyPI Keras?

I faced similar situation 2.0.0 (with tf 1.1, cuda 8, cudnn 5.1) vs 2.0.9 (with tf 1.4, cuda 8, cudnn 6).
With so many differences I did not have time to investigate further.
So, wondering if error averaging is changed somehow across the batches per epoch.
Another issue with keras 2.1.1, when I use fit_generator with batch_size = 16, steps_per_epoch=348 (more than the actual samples i.e. 174), it ends the epoch at 11/384 th batch only and starts new epoch. Not sure why it is breaking the epoch, it did not happen before, with 2.0.9 and older. Clearly, 11th batch will have less than 16 samples, don't know why it should cause problem.

While further investigating this issue I ended up receiving NaN as loss when I tried to use different optimizers. To handle that issue I uninstalled everything that was Nvidia on my machine and made a clean install. I also reinstalled keras (now 2.1.2) and TF (1.4). I also removed all the batchnorm layers and NaN is gone, however the model still fails to train with adam but works very well with adadelta (OK, this is probably specific to my data/problem). Now I'm after the batchnorm issue.

Hi, I'm having the same problem. Are there any updates?
My project is a music classification and uses Keras v2.0.4 + TF v1.1.0, which are so outdated.
So, I upgrade them to Keras v2.1.3 + TF v1.4.1, but the performance (ROC-AUC) was so much worse.
Therefore, I investigated by decreasing Keras version from v2.1.3 to v2.0.5.
And it turns out that the performance is bad from v2.1.3 to v2.0.6 and it becomes fine at v2.0.5.
I guess there was something wrong when the version increased to v2.0.6.
I read release note and  to figure out what's wrong

@tae-jun
We must have something in common. It seems most users didn't notice anything, it's only few of us. Why?
Can you please share your code that behaves differently with different versions?
Can you share your hardware setup?
Can you share your software setup?

@AndrasEros Thanks for your quick response!
https://github.com/tae-jun/sample-cnn
This is the project I'm working on! Its task is music classification. The CNN architecture is HERE.
The symptom is so obvious even after only ONE epoch. Below is the training history for each version.
Keras 2.0.5
Epoch 1/100
6631/6631 [==============================] - 1139s - loss: 0.2004 - val_loss: 0.1710
Epoch 2/100
6631/6631 [==============================] - 1133s - loss: 0.1710 - val_loss: 0.1602
Epoch 3/100
6631/6631 [==============================] - 1135s - loss: 0.1616 - val_loss: 0.1571
Epoch 4/100
6631/6631 [==============================] - 1135s - loss: 0.1566 - val_loss: 0.1535

Keras 2.0.6
Epoch 1/100
6631/6631 [==============================] - 1159s - loss: 0.2083 - val_loss: 0.1825
Epoch 2/100
6631/6631 [==============================] - 1150s - loss: 0.1824 - val_loss: 0.1736
Epoch 3/100
6631/6631 [==============================] - 1147s - loss: 0.1726 - val_loss: 0.1601
Epoch 4/100
6631/6631 [==============================] - 1149s - loss: 0.1666 - val_loss: 0.1583

Hardware Setup

GTX 1080Ti x2
(Which information could be helpful?)

Software Setup

CentOS 7.3
CUDA 8 / CuDNN 6
Anaconda 4.3.24 (with Python 3.5)
TensorFlow 1.1.0

Please ask me any other information if you need! Thanks 😄

Very interesting!
Similarities that matter:

I have the same hardware, 2x GTX 1080Ti
We both use Batchnormalization that was touched in Keras 2.0.6

Differences:

I'm on Windows 10
I have Anaconda 4.2.0 (64 bit)

Now I'm just brainstorming what we can check:

I'm not sure Windows and Linux drivers are connected but we can check GPU driver. Mine is 388.13. I upgraded it same time when I upgraded Keras to 2.0.6. We can search open issues or try to downgrade.
We both have a multi-GPU environment and Keras has a multi-GPU processing that is called from fit_generator that was touched in 2.0.6. We both should try to hide one of the GPU so TF and Keras can't see it. How to do it.
Remove Batchnorm completely from our models, don't even import it and try again 2.0.5 vs. 2.0.6.

Additional ideas are welcome from anyone!

My GPU driver version is 381.22
I have 2 GPUs but I use only one GPU for a training, so I guess it's not the reason :disappointed_relieved:
I didn't know that BatchNorm was touched in 2.0.6! I should remove BatchNorms and compare performances. I will let you know the result! 😄

How long do your train-eval loops take? If short(ish) you could use git bisect to find the problematic commit.


Added three sections under books-hindi

I added three sections -

C
HTML
Java

in the books section of the repository for the Hindi Language.

In general, we do not link to file sharing sites, or file hosting sites such as google docs. or dropbox.


Update LAB[MB-800]_M05_Lab03_Process_Cash_Management.md

Module: 00
Lab/Demo: 00
Fixes # .
Changes proposed in this pull request:

Submitted by JoshuaRoweTTS on behalf of MOC Labs Review


Find the Longest Word in a String Challenge

Challenge Find the Longest Word in a String has an issue.
User Agent is: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36.
When you define variable outside function , it returns correct output but doesn't pass the challenge, so it makes this confusing. I know that for the challenges, it is expected to write code inside function and not use global variables , but it will restrict the thinking of a camper who wants to experiment with the below code which I got question in the Help room
Code:

var bigWord=0;

function findLongestWord(str) {

  var strArray=str.split(" ");
  var wordLength=0;
  for (var i=0; i<strArray.length; i++){
    wordLength=strArray[i].length;
    if (wordLength > bigWord){
        bigWord=wordLength;
        }
  }
  return bigWord;
}

findLongestWord("May the force be with you");

@Dave1089 thanks for the issue. There's already a discussion on making global variables work here https://github.com/FreeCodeCamp/FreeCodeCamp/issues/9199. Please continue the discussion over there. Happy coding!


Moving directory reimports image assets and recalculates all metadata

Tested versions
4.2.2 - reproducable
System information
Windows 7
Issue description
Moving a directory of already imported assets (jpgs in this case) re-imports them at great computational expense.
I don't know what the import process entails, but given the insane temporary resource usage (12GB of RAM for this use-case), I expect part of it is analysing the images themselves to gather metadata, which makes sense. However, when moving a directory, Godot should only need to change relative file locations in the metadata; not do anything computationally expensive like recalculate all of the imagery metadata.
Steps to reproduce

Create a new project
add a directory of several hundred MB of pictures to the project. Ideally some of them should be 30+MB in size.
Create a subfolder.
In godot, drag the directory of images into the subfolder

Minimal reproduction project (MRP)
N/A

This always happened for me whenever files are moved, I assumed that's how it's supposed to work? If not then it'd be convenient to have that fixed.

This always happened for me whenever files are moved, I assumed that's how it's supposed to work? If not then it'd be convenient to have that fixed.

Yes, this may be how it works, however it's low-hanging fruit for optimisation. Well, low-hanging on a conceptual level at least, implementation I have no idea about. I guess this is why they flagged it as "performance".

It's far from simple to handle this necessarily, depending on how the test is done it isn't guaranteed it can be assumed the file hasn't changed and needs reimport, though it could be reasonable to assume when moved in the editor

though it could be reasonable to assume when moved in the editor

That's the use-case I'm referring to here.

it isn't guaranteed it can be assumed the file hasn't changed and needs reimport [if you're doing the move outside of godot editor]

That one seems fairly simply to solve too: Keep a hash of the file contents. Upon re-import, rehash the file. If it's the same, it hasn't changed and no need to re-do the computationally expensive stuff.

[if you're doing the move outside of godot editor]

Please do not inject your own assumptions into quotes by me, that's not what I meant at all
But as I said, it might be trivial, but needs investigation, hence the needs testing

Please do not inject your own assumptions into quotes by me, that's not what I meant at all

I was clarifying what I meant, that's why it's in square brackets.

Then do not present it as a quote please, because you are not quoting me, you are putting words in my mouth :) So just say what you mean instead of making claims about what I mean, thank you.
However as I said it depends on the test and when and how it's done, it depends on what we assume even when moving files in the editor

This is another case of #23107


Ubuntu 16.04 Server x64, rTorrent fails to install

Downloading rtorrent source files
######################################################################## 100.0%
######################################################################## 100.0%
Installing xmlrpc
Installing libtorrent
Installing rtorrent
Configuring rtorrent
Installing Rutorrent
Configuring Rutorrent
Installing nginx
Installing autodl-irssi
Setting permissions, Starting services
rtorrent was not running
No session lock file
Starting rtorrent..........
WARNING: Unable to start rtorrent
irssi shutting down using kill -2
irssi has been closed using kill -2
Starting irssi.
irssi has been started

Completely fresh server, just installed from USB.

I had issue installing xmlrpc-c which as a result did not install libtorrent and rtorrent. So I directly installed rtorrent via sudo apt-get install rtorrent. After that I did rt start and it started rtorrent.

I can confirm that xlmrpc-c doesn't compile anymore, maybe it has something to do with the update posted a few days ago (27th December) -> http://xmlrpc-c.sourceforge.net/change_stable.html
I've changed the location of the repository from https://svn.code.sf.net/p/xmlrpc-c/code/stable/ to https://svn.code.sf.net/p/xmlrpc-c/code/super_stable/ and it works.
Can someone more technical please check if it's ok to use that old version of xmlrpc-c?
Thanks!

I will look into this, but for now I have changed the location to the super stable version as per bakkra, post and yes it is fine to use this version.
For those that had problems download the latest version of rtinst, run, it and if you are asked if you want to skip rtorrent installation, answer no.
Post here if you are still having problems


Rearrange OG-USA's executable scripts

I am working to get our conda packaging more smooth for OG-USA, Tax-Calculator and B-Tax.  OG-USA currently has the following files in the ./Python/ dir of the repository and these files are unfortunately not included in the conda package:
Python/execute.py
Python/execute_large.py
Python/execute_small.py
Python/postprocess.py
Python/run_many_ogusa_parallel.py
Python/run_ogusa.py
Python/run_ogusa_baseline.py
Python/run_ogusa_policy.py
Python/run_ogusa_serial.py
Python/run_simulation.py
Python/run_simulation_from_json.py
Python/run_small.py
Python/run_small_baseline.py

This limits the usefulness of an OG-USA conda package.  For example, the conda package currently cannot be used on dropq EC2 workers because dropq workers EC2 workers need some of the scripts not included in the conda package.
I propose the following changes to package structure that will include these files in the conda package and still make them easy to use for interactive development:

[ ] Create a Python/scripts directory with an __init__.py file
[ ] Move .py scripts that reside in the top level of ./Python to ./Python/scripts
[ ] Edit setup.py to create console entry points for each of the scripts being moved, as shown in this example
[ ] Somewhat unrelated: Modify setup.py and MANIFEST.in so that users may run python setup.py install OR python setup.py develop. Currently python setup.py develop does not work as expected.

Basically the idea would be that users could do either one of the following pathways:

Install from a conda package

conda install -c ospc taxcalc ogusa btax
ogusa-execute

where ogusa-execute is the same thing as python Python/execute.py currently, and similar ogusa-* command line tools  exist for all scripts in Python/scripts

Install from source

# Create an environment with taxcalc and other packages
cd OG-USA && python setup.py install
ogusa-execute

Thoughts @martinholmer @MattHJensen @jdebacker ?

@PeterDSteinberg I think this sounds ok, but let me pose a question and a comment.
Comment:  none of the run_*.py files are necessary to run OG-USA.  Rather they are various scripts to run specific policy proposals or to run OG-USA in a specific way  (e.g. in parallel).  They are nice to have in the repo so other users can references to modify for their needs, but they would not need to be in the conda package.
Question: Something I noticed with B-Tax has been that when I do install from python setup.py install and then I've changed some code while working in a branch, I need to redo python setup.py install before I run the model again to have those changes reflected in a run of B-Tax.  This slows down my development time because I've got to wait for the install with each change (and sometimes I run B-Tax before reinstalling and wonder why no change in results).  When I am running OG-USA (for which I've never done a python setup.py install), I can change a file, and then go directly to the command line to run with those changes in effect.    This is much faster.  My question is - is there a way to benefit from the ability to install the package through python setup.py install, but yet be able to develop code without having to reinstall after each change?  Should I just uninstall while making changes?  Or maybe my workflow is just completely silly - glad to take direction here as well.
cc @rickecon @kerkphil

@jdebacker - Regarding the run_*.py scripts: what you're saying makes sense for me.  If these run_*.py scripts are not really general purpose endpoints but rather example script templates one may edit, then we don't need to include them and this issue will just mean to move the execute*.py and postprocess.py to Python/scripts.
For your question on B-Tax and wasted time with python setup.py install: B-Tax should be okay for you to do python setup.py develop.  If you do python setup.py develop then the Python packaging and import system will look for B-Tax in your local clone directory, thereby allowing you to edit the code and not re-install it.  One general note on using python setup.py develop: If you have already installed a package using conda install or python setup.py * and you then want to do python setup.py develop for that package, then it is advisable to run something like conda remove btax;pip uninstall btax.  That line, while not always required, ensures there is no confusion which btax you're using.
As mentioned above, OG-USA has some issue that prevents python setup.py develop from working properly and the work on this issue will include fixing python setup.py develop for OG-USA.

@PeterDSteinberg - thank you for the answer.  I was not aware that one could do python setup.py develop.  Thats exactly the solution I was looking for.


Add filename to Match

I tried this library and noticed that it misses some of my fonts. I then used List to list all the fonts, and noticed some of them had no Name or Family field. If you add the filename to the Match function criteria, it will be able to match some fonts even without a Family or Name field present. Thank you.

I ran across this issue as well.  If you install any Google Font, for example, it typically ends up in ${HOME}/.local/sharefonts.
If I List() the fonts, they show up.  However, if I try to use one of them, it always provides a substitute because the Family and Name fields are empty.

However, stepping through the code, it makes up a family name based on the filename when doing a search, and therefore compares `"bungeeshade"` (for example) to `""` and doesn't find a match.

I think it is a simple fix of making up a family name for these files (based on their filename) so that when it comes time to make a match, it doesn't ignore fonts that have no family name.

I'll see if I can put together a PR.


Automated cherry pick of #11902: feat(mcclient): add k8s cluster monitor component disable option

Cherry pick of #11902 on release/3.7.
#11902: feat(mcclient): add k8s cluster monitor component disable option

/lgtm

/approve


Update template/stack commands to only use -f flag for template files

PR: https://github.com/influxdata/influxdb/pull/18546
With the above functionality and additional PRs, all the template/stack related commands will include -f flag that will accept both file paths and remote URLs for template files.

heck yah 👏


Page Routing, pushState/popState, and

Refer to the discussion in #32

[ ] Make routing helpers in Cycle (?)

Reference https://github.com/rackt/react-router/blob/master/docs/guides/overview.md

Suggested routing helpers:
var AppView = Cycle.createView(function (model) {
  return {
    vtree$: model.get('route$')
      .map(route => Cycle.switchRoute(route, {
        '/posts': {
          '/': h('posts-home-page'),
          '/new': h('create-post-page'),
          '/:id': {
            '/': id => h('post-page', {attributes: {id: id}}),
            '/edit': id => h('edit-post-page', {attributes: {id: id}})
          }
        }
      }))
  };
});

+1

+1

I've got an interesting work in progress in this area. I got stuck in the middle of finishing the proof of concept from a JSPM issue (virtual-dom dependency of a dependency to es5-ext which uses funny CJS folder name that browsers don't like and JSPM possibly needs to work on or virtual-dom should rely on friendlier polyfills, IDK)...
Anyway, I thought maybe I should document some of this before GenCon so that I remember it after GenCon (and maybe someone wants to play with it while I'm away). I smashed a couple of ideas together and ended up with a different, but perhaps more interesting approach to routing (and maybe other things). I started partly with this article where the main takeaway was using JSON documents to enumerate examples of all the potential states of a UI design and realizing with a little bit of extra on top you can have your declarative cake and it eat it too with some sort of simple RegEx-like State object pattern matching. Searches turned up object-pattern and I've been slowly gluing the pieces together into what I think will be a compelling whole. object-pattern is cool because it handles URL-like routing, but can also handle a variety of other JSON pattern matching, in JSON, again presumably including routing, but also more things.
Because no JS project is real without some silly name and because I got trapped into thinking that a project using such a routing system could be used for everything from say page routing to basic state-based template routing (use this template if the widget state is "edit" and this template if the widget state is "view"), to a bunch of other possibilities and it could be nested quite a bit and thus "turtles all the way down". So the cornerstone here is turtle-factory.
So turtle-factory is a simple LISP-like macro for view composition written in ES6 (well, TypeScript, but ES6) that takes in a simple JSON object and spits out a simple export default function view(state) using object pattern and ES6 imports. I think it's pretty neat because other than a dependency on object-pattern (and implicitly on SystemJS), it's relatively pure and makes very few assumptions about what sort of input/output it is working with. (ES6 loader plugins and ES6 template strings make for a surprisingly decent macro-writing experience, which is nifty.)
My plan, once the JSPM issue is sorted out, is take turtle-factory and system-jade-virtualdom (a simple ES6/SystemJS plugin for taking in Jade templates and spitting out virtualdom views) and build a turtle-zoo with Cycle to show off the concept. (Zoo, rather than Gallery, because the idea would be to have "live" views, based upon the metadata in the JSON documents... Sorry, more cutesy JS naming because it's a hard habit to break.)
Sorry about the infodump, but maybe someone will find it interesting/useful to think about while I work on finishing up the proof of concept, aka the zoo. The JSPM thing bugs me so much for getting in my way, because this all currently hinges on SystemJS. Having not finished my proof of concept I also have no idea how well this would perform.
I guess to show an example of what I'm thinking, for your CycleJS view:
import turtleView from 'router.json!turtle-factory';

export default function view(state$) {
    return state$.map(turtleView);
}

Then you might have a router.json which might look something like:
{
  "name": "My Posts Router",
  "turtles": [
    {
       "name": "Create New Post",
       "pattern": "route:/posts/new",
       "require": "create-post-page.jade!jade-vd",
        "examples": [{
            "route": ["posts", "new"]
         }]
    },
    {
       "name": "Edit Post",
       "pattern": "route:/posts/<number>/edit",
       "require": "edit-post-page.jade!jade-vd",
        "examples": [{
            "route": ["posts", 12, "edit"]
         }]
    },
    {
       "name": "View Post",
       "pattern": "route:/posts/<number>",
       "require": "post-page.jade!jade-vd",
        "examples": [{
            "route": ["posts", 12]
         }]
    },
    {
       "name": "Posts Home",
       "pattern": "route:/posts",
       "require": "posts-home-page.jade!jade-vd",
        "examples": [{
            "route": ["posts"]
         }]
     }
  ]
}

Yeah, it's a little verbose, but the idea/goal is you could have a nice zoo for an interesting design time experience... Maybe someone else will find it interesting, too.

@WorldMaker interesting!
Would this
"pattern": "route:/posts/<number>/edit",
"require": "edit-post-page.jade!jade-vd",

mean that edit-post-page.jade gets number as a value to use in the template?

That's just object-pattern syntax for a tour check. At the moment turtle-factory doesn't go any state transformation, it just passes the state directly to the required view function, so the jade template would worst case would use route[1] to grab that id, presumably (or the model to also store it somewhere more interesting in the state object). I researched, briefly, possibilities for declarative object transformation, but didn't find any options I liked and for now I see the burden being in defining the model function to produce the state you want for your templates, or chaining your requires in useful ways. Because that require is just any ES6 module that returns a function of one argument you could require for instance "edit-post" and in edit-post.js:
import template from 'edit-post-page.jade!jade-vd';

export default function view(state) {
  state["post_id"] = state.route[1];
  return template(state)
}

That's the composition pattern in play, any ES6 module can be required that has that export default function view(state), which is also what the turtle-factory which is why you could nest them and maybe instead of require "edit-post-page.jade!jade-vd" you have a require for "edit-post.json!turtle-factory" that routes/pattern-matches based on something like "post_type: blog" versus "post_type: photo" for different editing experiences.

Sorry for typos, sent from my phone. Also, I say ES6 module and use that syntax to describe the concept, but SystemJS happily loads CJS and AMD formats to. The module pattern in CJS would be something like:
function view(state) {
  // ...
}

module.exports = view;

This issue has been superseded by #159.


Rename "Patent Grant" to "Patent Use"

Per the discussion in #168, the consumers of the softare are granted the right to use patents. So "Patent Use" makes more sense from a consumer perspective than "Patent Grant".
Fixes #168

makes more sense from a consumer perspective

Realizing I said the exact opposite over in (#168), should the rules be worded from the code publisher or the code consumer's perspective? From the README:

Our goal is to help you find a license that meets your goals.

I suspect the most common use case is a code publisher coming to the site to choose a license for their code, not a code consumer coming to the site to learn what they can do under a certain license (and TLDR may solve for that better with its long tail of licenses).
Not super strongly opinionated, but we should figure out our target audience (consumers or publishers) and optimize the language accordingly (even if it's been an admittedly squishy concept in the past).

The target audience is definitely publishers, but the Required/Permitted/Forbidden section is about what consumers can do. Does that make sense?

Yeah, that makes sense. In my mind, "you" in the tooltips is almost the publisher speaking to the consumer, or put another way, is the same tense as it would be / is in the license itself. To do anything else (e.g., "downstream consumers are required to...") makes it too cumbersome. :+1:


port inotify test for nuttx

Summary
1 make the libuv run use epoll as backend
2 make the inotify test case runable in nuttx
Impact
select epoll as backend may spend more stack memory
Testing
uv_run_tests    fs_event_watch_dir
uv_run_tests    fs_event_close_in_callback
uv_run_tests    fs_event_watch_file
uv_run_tests    fs_event_watch_file_current_dir
uv_run_tests    fs_event_ref
uv_run_tests    fs_event_immediate_close
uv_run_tests    fs_event_watch_file_exact_path
uv_run_tests    fs_event_no_callback_on_close
uv_run_tests    fs_event_no_callback_after_close
uv_run_tests    fs_event_close_with_pending_event
uv_run_tests    fs_event_close_with_pending_delete_event
uv_run_tests    fs_event_error_reporting
uv_run_tests    fs_event_start_and_close
uv_run_tests    fs_event_watch_file_twice
uv_run_tests    fs_event_getpath
uv_run_tests    fs_event_watch_invalid_path
uv_run_tests    fs_event_stop_in_cb

[Experimental Bot, please feedback here]
The PR summary is lacking some details. Here's a breakdown and suggestions:
What's Missing in the Summary

Why: The summary states WHAT is being changed ("make libuv use epoll", "make inotify test runnable"), but not WHY these changes are necessary.

Is there a bug being fixed?
Is this adding a new capability to NuttX?
Is it improving performance?

How (more details):  The summary is very high-level. It would be helpful to elaborate on HOW these changes are implemented:

libuv epoll:  What parts of the libuv code were modified to support epoll? Were any new files added?
inotify test: What prevented the inotify test from running previously? What changes were needed to make it functional?

Issues/PRs: The summary should explicitly link to any related NuttX issues or pull requests.

Impact Section: Needs More Detail

Stack Memory: Quantify the impact. How much more stack memory is used? Is this a significant concern for resource-constrained devices?
Other Impacts: The PR focuses solely on stack memory. Consider these questions:

Build: Will any build system changes be needed (new configuration options, dependencies)?
Hardware:  Does epoll have any specific hardware requirements or dependencies?
Documentation:  Will documentation need to be updated to reflect these changes?
Compatibility:  Could these changes potentially break existing applications or have compatibility implications?

Testing Section:  Missing Context

Testing Environment: Provide details about your testing setup:

Which NuttX version are you using?
What is your target hardware (or simulator)?
Which compiler and toolchain were used?

Log Snippets: The current logs are just test names. Include relevant snippets of the logs that demonstrate the changes in behavior before and after your modifications. Focus on:

libuv epoll:  Show logs that confirm epoll is being used correctly.
inotify test: Show that the test, which previously failed, now passes.

In conclusion:  The PR needs more detail and context to meet NuttX requirements. Focus on explaining the "why" behind the changes, providing specifics about the implementation, quantifying the impact, and including relevant testing details.

Looks like build errors to be fixed? Will restart failed CI tasks :-)
(...)
x luv-1.44.2-1/src/fs_poll.c
x luv-1.44.2-1/src/thread.c
x luv-1.44.2-1/src/lhandle.c
x luv-1.44.2-1/README.md

100  2058    0  2058    0     0   2955      0 --:--:-- --:--:-- --:--:--  2955
100 1646k    0 1646k    0     0  1454k      0 --:--:--  0:00:01 --:--:-- 3779k
Error: libuv/src/threadpool.c:201:5: error: use of undeclared identifier 'CONFIG_LIBUV_THREADPOOL_PRIORITY'
    DEF_THREADPOOL_PRIORITY
    ^
<command line>:14:33: note: expanded from macro 'DEF_THREADPOOL_PRIORITY'
#define DEF_THREADPOOL_PRIORITY CONFIG_LIBUV_THREADPOOL_PRIORITY
                                ^
1 error generated.
make[2]: *** [threadpool.c.Users.runner.work.nuttx-apps.nuttx-apps.sources.apps.system.libuv.o] Error 1
make[2]: Target `all' not remade because of errors.
make[1]: *** [/Users/runner/work/nuttx-apps/nuttx-apps/sources/apps/system/libuv_all] Error 2
make[1]: Target `all' not remade because of errors.
make: *** [/Users/runner/work/nuttx-apps/nuttx-apps/sources/apps/libapps.a] Error 2
make: Target `all' not remade because of errors.
/Users/runner/work/nuttx-apps/nuttx-apps/sources/nuttx/tools/testbuild.sh: line 385: /Users/runner/work/nuttx-apps/nuttx-apps/sources/nuttx/../nuttx/nuttx.manifest: No such file or directory
  Normalize sim/lua


Refactor rb-page-header to use background images

TP: https://rockabox.tpondemand.com/entity/10914

Needs matching PRs for create and distribute.


Negative Y-value appear on Safari, while hidden on Chrome? [Line graph]

Hello,
First of, I love the simple-to-use graph framework!
I have this complication though, where I'm using negative Y-values in order to add a 'shifting' effect to multiple lines, so they're parallel, in order to make them visible. They're perfectly hidden on Chrome (also mobile), but realised that negative values are visible on Safari.
How can I make the graph look like the one in Chrome?
Thank you.
Safari:

Chome:

Can you please provide a working codepen demo to easily reproduce it?
Also, please specify which version of Safari you tested in.


Implemented graphql reference lookup

In my efforts to enable GraphQL in hapi-fhir-jpaserver-example I found that this method needed an implementation.
For example, you can start with an "Observation" entity, following the "subject" (patient) reference to get the patient's birth date.
http://localhost:8080/hapi-fhir-jpaserver-example/baseR4/Observation/2/$graphql?query={status subject{resource{birthDate}}}
{
  "status":"registered",
  "subject":{
    "resource":{
      "birthDate":"1924-10-10"
    }
  }
}

I'm new to this project, so I apologize for any stylistic oversights.  Feedback welcome.

Hm. "The job exceeded the maximum time limit for jobs, and has been terminated."
I added 2 tests which seemed pretty minimal.


Check if model_parameters are supplied for custom extractor

Quick & ugly fix for #137 , simply checks if a dict is passed for model_parameter and replaces it with an empty dict if not.

@andropar, could you quickly rebase and submit the PR again?

The branch should be up-to-date with master, or am I missing something?


enter_data.py file error

When running python scripts/enter_data.py I get the following Error. I believe i've installed everything correclty. I see this file not there when I trace the file path. I copied it into the location but got the same error. seems to be an install issue?
-replaced my name with XXXXX
Traceback (most recent call last):
File "scripts/enter_data.py", line 47, in
**vars(args))
File "/Users/XXXXXXXXX/anaconda3/lib/python3.6/site-packages/atm-0.0.1-py3.6.egg/atm/config.py", line 541, in load_config
with open(log_path) as f:
FileNotFoundError: [Errno 2] No such file or directory: '/Users/XXXXXXXX/anaconda3/lib/python3.6/site-packages/atm-0.0.1-py3.6.egg/atm/config/templates/log-script.yaml'

What was the full command you were running?

Hey thanks for the response.
I'm at the step to test the installation. Exact command is.
python scripts/enter_data.py
On Sat, Apr 7, 2018 at 12:39 PM, Micah Smith<EMAIL_ADDRESS>wrote:

What was the full command you were running?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/HDI-Project/ATM/issues/91#issuecomment-379494076, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AfwvuQjEhA2FB2NNt0V_G8PxHPbkpOdnks5tmRXzgaJpZM4TLCRD
.

Also I am on a mac. I don't know if that is relevant, but it affected the
install for mysql. I believe I worked through that (used brew install).
On Sat, Apr 7, 2018 at 12:54 PM, Andrew Cudworth<EMAIL_ADDRESS>wrote:

Hey thanks for the response.
I'm at the step to test the installation. Exact command is.
python scripts/enter_data.py
On Sat, Apr 7, 2018 at 12:39 PM, Micah Smith<EMAIL_ADDRESS>wrote:

What was the full command you were running?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/HDI-Project/ATM/issues/91#issuecomment-379494076,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AfwvuQjEhA2FB2NNt0V_G8PxHPbkpOdnks5tmRXzgaJpZM4TLCRD
.

What is your pwd when you run the command?

hey pwd is
/Users/XXXXXXX/Desktop/ATM_MIT/atm$ python scripts/enter_data.py
I'd setup a folder specifically to work with this called ATM_MIT. I appreciate the help
The full error when the command is run:
Traceback (most recent call last):
File "scripts/enter_data.py", line 47, in
**vars(args))
File "/Users/XXXXXXXXX/anaconda3/lib/python3.6/site-packages/atm-0.0.1-py3.6.egg/atm/config.py", line 541, in load_config
with open(log_path) as f:
FileNotFoundError: [Errno 2] No such file or directory: '/Users/XXXXXXXXX/anaconda3/lib/python3.6/site-packages/atm-0.0.1-py3.6.egg/atm/config/templates/log-script.yaml'

I was able to reproduce the error:
$ git clone git@github.com:HDI-Project/ATM.git
$ cd atm
$ mkvirtualenv -p $(which python3.6) -a $(pwd) $(basename $(pwd))
$ pip install -r requirements.txt
$ pip install -r requirements-dev.txt
$ python scripts/enter_data.py
Traceback (most recent call last):
  File "scripts/enter_data.py", line 47, in <module>
    **vars(args))
  File "/home/xals/.virtualenvs/atm/lib/python3.6/site-packages/atm-0.0.1-py3.6.egg/atm/config.py", line 541, in load_config
    with open(log_path) as f:
FileNotFoundError: [Errno 2] No such file or directory: '/home/xals/.virtualenvs/atm/lib/python3.6/site-packages/atm-0.0.1-py3.6.egg/atm/config/templates/log-script.yaml'

The config file log-script.yaml was introduced in this commit: 95f2d321b207642c778f9e5d963dd89ef8296860
So, anything after this commit has this issue.
However, the parent commit, d9600fbd50343c246d4522af08f5043341db476f, has another one, similar:
Traceback (most recent call last):
  File "scripts/enter_data.py", line 44, in <module>
    enter_data(sql_conf, run_conf, aws_conf, args.run_per_partition)
  File "/home/xals/.virtualenvs/atm/lib/python3.6/site-packages/atm-0.0.1-py3.6.egg/atm/enter_data.py", line 114, in enter_data
    dataset = create_dataset(db, run_config, aws_config=aws_config)
  File "/home/xals/.virtualenvs/atm/lib/python3.6/site-packages/atm-0.0.1-py3.6.egg/atm/enter_data.py", line 39, in create_dataset
    meta = MetaData(run_config.class_column, train_local, test_local)
  File "/home/xals/.virtualenvs/atm/lib/python3.6/site-packages/atm-0.0.1-py3.6.egg/atm/encoder.py", line 19, in __init__
    data = pd.read_csv(train_path)
  File "/home/xals/.virtualenvs/atm/lib/python3.6/site-packages/pandas/io/parsers.py", line 709, in parser_f
    return _read(filepath_or_buffer, kwds)
  File "/home/xals/.virtualenvs/atm/lib/python3.6/site-packages/pandas/io/parsers.py", line 449, in _read
    parser = TextFileReader(filepath_or_buffer, **kwds)
  File "/home/xals/.virtualenvs/atm/lib/python3.6/site-packages/pandas/io/parsers.py", line 818, in __init__
    self._make_engine(self.engine)
  File "/home/xals/.virtualenvs/atm/lib/python3.6/site-packages/pandas/io/parsers.py", line 1049, in _make_engine
    self._engine = CParserWrapper(self.f, **self.options)
  File "/home/xals/.virtualenvs/atm/lib/python3.6/site-packages/pandas/io/parsers.py", line 1695, in __init__
    self._reader = parsers.TextReader(src, **kwds)
  File "pandas/_libs/parsers.pyx", line 402, in pandas._libs.parsers.TextReader.__cinit__
  File "pandas/_libs/parsers.pyx", line 718, in pandas._libs.parsers.TextReader._setup_parser_source
FileNotFoundError: File b'/home/xals/.virtualenvs/atm/lib/python3.6/site-packages/atm-0.0.1-py3.6.egg/atm/data/test/pollution_1.csv' does not exist

So, the problem seems to be that setup.py does not include all the folders inside atm which are not packages: atm/config and atm/data.
@acudworth3 This won't work properly until setup.py is fixed to include those dirs.
However, as an interim solution, you can install the package locally using pip instead of setup.py as indicated in the README.md.
To do so, run the following commands inside the repository directory:
pip uninstall -y atm
pip install -e .

After that, it works properly:
$ git checkout master
Already on 'master'
Your branch is up-to-date with 'origin/master'.
$ pip uninstall -y atm
Uninstalling atm-0.0.1:
  Successfully uninstalled atm-0.0.1
$ pip install -e .
Obtaining file:///home/xals/Projects/Pythia/MIT/atm
Requirement already satisfied: sqlalchemy>=1.1 in /home/xals/.virtualenvs/atm/lib/python3.6/site-packages (from atm==0.0.1) (1.1.14)
Requirement already satisfied: numpy>=1.13 in /home/xals/.virtualenvs/atm/lib/python3.6/site-packages (from atm==0.0.1) (1.13.1)
Requirement already satisfied: boto>=2.48 in /home/xals/.virtualenvs/atm/lib/python3.6/site-packages (from atm==0.0.1) (2.48.0)
Requirement already satisfied: pandas>=0.22 in /home/xals/.virtualenvs/atm/lib/python3.6/site-packages (from atm==0.0.1) (0.22.0)
Requirement already satisfied: scikit-learn>=0.18 in /home/xals/.virtualenvs/atm/lib/python3.6/site-packages (from atm==0.0.1) (0.18.2)
Requirement already satisfied: scipy>=0.19 in /home/xals/.virtualenvs/atm/lib/python3.6/site-packages (from atm==0.0.1) (0.19.1)
Requirement already satisfied: sklearn-pandas>=1.5 in /home/xals/.virtualenvs/atm/lib/python3.6/site-packages (from atm==0.0.1) (1.5.0)
Requirement already satisfied: mysqlclient>=1.2 in /home/xals/.virtualenvs/atm/lib/python3.6/site-packages (from atm==0.0.1) (1.3.12)
Requirement already satisfied: pyyaml>=3.12 in /home/xals/.virtualenvs/atm/lib/python3.6/site-packages (from atm==0.0.1) (3.12)
Requirement already satisfied: joblib>=0.11 in /home/xals/.virtualenvs/atm/lib/python3.6/site-packages (from atm==0.0.1) (0.11)
Requirement already satisfied: future>=0.16 in /home/xals/.virtualenvs/atm/lib/python3.6/site-packages (from atm==0.0.1) (0.16.0)
Requirement already satisfied: btb>=0.0.1 in /home/xals/.virtualenvs/atm/src/btb (from atm==0.0.1) (1.0.0)
Requirement already satisfied: python-dateutil>=2 in /home/xals/.virtualenvs/atm/lib/python3.6/site-packages (from pandas>=0.22->atm==0.0.1) (2.7.2)
Requirement already satisfied: pytz>=2011k in /home/xals/.virtualenvs/atm/lib/python3.6/site-packages (from pandas>=0.22->atm==0.0.1) (2018.3)
Requirement already satisfied: six>=1.5 in /home/xals/.virtualenvs/atm/lib/python3.6/site-packages (from python-dateutil>=2->pandas>=0.22->atm==0.0.1) (1.11.0)
Installing collected packages: atm
  Running setup.py develop for atm
Successfully installed atm
$ python scripts/enter_data.py
method logreg has 6 hyperpartitions
method dt has 2 hyperpartitions
method knn has 24 hyperpartitions
Data entry complete. Summary:
	Dataset ID: 2
	Training data: /home/xals/Projects/Pythia/MIT/atm/atm/data/test/pollution_1.csv
	Test data: None
	Datarun ID: 2
	Hyperpartition selection strategy: uniform
	Parameter tuning strategy: uniform
	Budget: 100 (classifier)

@csala That worked! thanks so much. Cool project you guys are working on here.


Use ref from azure-sdk-for-net repo in sparse checkout

When using the sparse checkout step, we typically don't pass a commitish.  Git then uses the repo's default branch for checkout. This breaks scenarios where we want to change the checked out commit by using the resources tab when queuing the build.  Adding the Commitish parameter and using the repository resource's ref corrects this.

Fixes: https://github.com/Azure/azure-sdk-for-net/issues/37033


Also test on node v6

Coverage remained the same at 94.071% when pulling 95bd725334a600d45d747867eaedd8b9791ff70e on node-v6-test into 5721a5242759abf111293a449411cf46208a3f67 on master.

Coverage remained the same at 94.071% when pulling 9862aece7394294f279aa7e6ab8e8d1d6b328666 on node-v6-test into 5721a5242759abf111293a449411cf46208a3f67 on master.


Make it available for on-premise

Ask for tenant_name
Ask for wildcard_domain

provider key

and generate API url for it

Will need URL of system deployed on premises to reach the system APIs also
On Fri, Apr 7, 2017, 01:50 Nicolas Grenié<EMAIL_ADDRESS>wrote:

Ask for tenant_name
Ask for wildcard_domain

provider key

and generate API url for it
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/3scale/3scale-cli/issues/23, or mute the thread
https://github.com/notifications/unsubscribe-auth/AFReLK6nkX9fm9wR3M1lqD3uYDn44aiuks5rtXpfgaJpZM4M2TWB
.

The API is not available at
tenant_name-admin.wildcard_domain/admin/api?

Ah, you could be right - didn't notice WC domain.
On Fri, Apr 7, 2017, 08:48 Nicolas Grenié<EMAIL_ADDRESS>wrote:

The API is not available at
tenant_name-admin.wildcard_domain/admin/api?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/3scale/3scale-cli/issues/23#issuecomment-292455873,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AFReLP4rddjrdKBvEZpsyuZY82b17SHgks5rtdw7gaJpZM4M2TWB
.

Hi.
To avoid issues with certs, main.js cert check should be disabled:
...
var config = require("./config");
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
//Make cli commands available in program object
...

Thanks @gordillo-ramon-redhat for your suggestion.
Could you give more context on what this code is fixing?
Thanks

Or just a PR with an explanation...
Andrew
On Wed, Jun 21, 2017, 19:34 Nicolas Grenié<EMAIL_ADDRESS>wrote:

Thanks @gordillo-ramon-redhat https://github.com/gordillo-ramon-redhat
for your suggestion.
Could you give more context on what this code is fixing?
Thanks
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/3scale/3scale-cli/issues/23#issuecomment-310150949,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AFReLDxawl3YxxYzATas2lZuuEWsH2aVks5sGVQQgaJpZM4M2TWB
.

Yes PR is way better 👍👍
On Wed, Jun 21, 2017 at 12:06 PM Andrew Mackenzie<EMAIL_ADDRESS>wrote:

Or just a PR with an explanation...
Andrew
On Wed, Jun 21, 2017, 19:34 Nicolas Grenié<EMAIL_ADDRESS>wrote:

Thanks @gordillo-ramon-redhat https://github.com/gordillo-ramon-redhat
for your suggestion.
Could you give more context on what this code is fixing?
Thanks
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/3scale/3scale-cli/issues/23#issuecomment-310150949,
or mute the thread
<
https://github.com/notifications/unsubscribe-auth/AFReLDxawl3YxxYzATas2lZuuEWsH2aVks5sGVQQgaJpZM4M2TWB
.

—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/3scale/3scale-cli/issues/23#issuecomment-310175651,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAKgKJRjnXyZAbs_hLHrbmGGau41yhOIks5sGWmrgaJpZM4M2TWB
.

--
Nicolas Grenié - Hacker in residence
3SCALE | Out-of-the-Box API Management Platform
Tel: +1<PHONE_NUMBER>
Web: http://nicolasgrenie.com
Twitter: @picsoung http://twitter.com/picsoung
Github: picsoung http://github.io/picsoung

Please see my comments in PR related to this change.
Sekhar

think this can be closed now?

Is there a fix for the issue?

the tool now works for onprem, there is a separate issue for SSL validation in GH I think


"loading logs using native method..." hangs raspberry pi

Describe The Bug:
After logging in to the UI, the raspberry pi hangs.  I can still get a ping response, but no response with putty.  The remote desktop session that I was on just sits there, did not disconnect but also no response.  Power off/on seems like the only recovery possible.
This happened with homebridge v1.0.4 and v1.1.0.
To Reproduce:
Seems to happen whenever the Config-UI idle timeouts.  Then I tried to log back in as Admin.  As the status screen showed up, the log screen started showing "loading logs using native method...", then it happens. It does not fail the first time after reboot.  Forcing a logout and then logging back in is also ok.

Expected behavior:

Logs:

Show the Homebridge / Homebridge Config UI X logs here.

Homebridge Config:
Show your homebridge config.json here

Screenshots:

Environment:

Node.js Version:
NPM Version:
Homebridge Version:   v1.1.0
Homebridge Config UI X Version: v4.19.0
Operating System: Raspbian / Ubuntu / Debian / Windows / macOS / Docker
Process Supervisor: Docker / Systemd / init.d / pm2 / launchctl / hb-service / other / none

Hi @ssllii can you try the current @test version of the UI to see if this helps?
I've made some changes to the way the log file is managed by hb-service.
https://github.com/oznu/homebridge-config-ui-x/wiki/How-To-Test-Upcoming-Changes

thanks for the quick response.
It did not fail this morning.  I will let it run with v1.1.0/v4.19.0 for a few more days before trying out your test version.  Hope that's alright with you.

I tried the @test version (4.21.1-test.4 but seems to have the same issue. Can’t solve it by rolling back both homebridge and Homebridge ux.
An abort signal is sent from main.js:29123  when trying to show log. And Homebridge service is restarted. This is why we receive a request timeout.
There is an open request on Homebridge github repo .
But I think the issue come from Homebridge-ux.
Any idea about this issue ??

I edit my post and after two restart I can confirm that the 4.21.1-test.4 solve the issue when loading log file.
But there is a side effect and my devices stop working. I have them in my Home app but open/close actions don’t do anything.
I will check your code and try to find an issue in debug mode.

@oznu , I don't believe the issue here is exactly the same as #718, when my "hang" happens, ping is the only thing that works, not even PUTTY gets any response.  Homebridge is out cold.
@jplongo, have you tracked down the cause of the side effect of the test version, <IP_ADDRESS>-test.4?

Is this still an issue on the latest versions?

It is still happening to me with v1.1.6.
The system responds to ping but I can't get a response with SSH.
So it has crashed but it only responds to ping.


Fix animation transition delay after first time load

Fixes a bug that makes delay parameter stop working after first animation

👍


Backport: UI - Add ability to access SSH keys to EKS driver

Backport rancher/rancher#17875

Available in UI index 2.2.87

Version: v2.2-head with ui-index of https://releases.rancher.com/ui/2.2.87/index.html
I'm not sure why, but it looks like call to aws isn't happening so we aren't getting list of ssh keys. I also see translation key.

I then cleared cache again and tried again and confirmed the issue. I see call to ListRoles action and to get VPCs (DescribeVpcs) and that's all. I don't spot anything with our ssh keys.

Bug fixed in UI Index 2.2.88

Version: v2.2-head with ui-index of https://releases.rancher.com/ui/2.2.88/index.html (8268cd5f)
Keypairs show up now, but are in the old Cluster Options area (is in Nodes section in master).
Is this going to be okay?

That said. I can confirm this is working correctly now. I see the call made to get ssh keys (Action=DescribeKeyPairs) and we indeed list all the ssh keys for the region I chose. The only minor issue is the placement is the old location before we fixed and moved to Nodes section.
I was successfully able to pick my ssh key and connect to the nodes when the cluster was up and ready without any issues.
@westlywright per our discussion I'm just going to re-open so we can fix placement of the drop-down since is easy and quick to fix. Should be in the Nodes section like we had it in master.

Version: v2.2-head with ui-index of https://releases.rancher.com/ui/2.2.89/index.html (8268cd5f)
New frontend change to the UI simply moved the location of the drop-down box from Cluster Options pane down to the Nodes pane (which makes more sense) this is what we did in master as well.
I again, confirmed that we are making the call now to aws api (Action=DescribeKeyPairs) and indeed get our list of ssh keys. I picked my key, changed EKS security group to allow inbound ssh port 22, and then I could log in to each node without any issues utilizing my amazon ssh key.
Screenshot of this new placement of the dropdown (just like in master now):


Implement archivepath getfilename

This PR depends on the changes done in #3

Rebased branch to include merged changes from #3


feat(pubsub): introduce PublisherOptionList (g::c::Options)

Start of the work for #6306
Some choices:

used a private enum for FullPublisherAction. I considered having 3 bool options, which might conflict, but ultimately decided that although the enum is verbose, it is clearest. It is also consistent with this in spanner. (I could use a check on doxygen comments for enum values)
default values are just hardcoded in (instead of using constants which have hardcoded values). This is not what was done in bigtable, but it is what was done in spanner.
test for equality of default values instead of testing that default values are > 0. This is not what is done in publisher_options_test, but I personally prefer it.
forward declaration of PublisherOptions is ugly. Not sure how to avoid it though.

This change is

I wanted to get this done but I do not have the patience to set up a development workstation on my windows laptop right now. So I am temporarily closing this, to be reopened in one week.


Better handling of API-only vs DB-only vs both fields in schemas

In Vulcan, any field can be included in:

the database
the API
both

But currently, that distinction is not very clear, and in fact it's not even possible to declare a field to be made available through the API but not insertable in the database at all.
It's all a bit messy, so here is a proposal for a better system.

We keep the existing schema object passed to createCollection for any field that should be included in the database. We keep the current canRead-based permission check to know whether those fields should also be made available through the API.
We support a new apiSchema object that contains fields that should only exist in the API, and not the database.

There are two advantages to this approach:

We are able to distinguish between the two kinds of fields.
We can simplify the syntax for API-only fields:

Before:
const schema = {
  pagePath: {
    type: String,
    optional: true,
    canRead: ["guests"],
    resolveAs: {
      typeName: "String",
      resolver: (post, args, context) => {
        return getPostPageLink(post, false);
      },
  }
}

After:
const apiSchema = {
  pagePath: {
    typeName: "String",
    resolver: () => {...},
  },
}

This would also make it easier to get rid of resolveAs, which while very handy introduces an extra concept that wouldn't be needed if there was an easier way to define API-only fields.

See https://github.com/VulcanJS/Vulcan/tree/apiSchema

This also means moving relation out of resolveAs, which probably makes sense anyway.

I think you should also do something with the hidden property.  I think this gets a little confusing between specifying fields on smart form and having view related things on the schema.

Here's a diagram:

An added benefit is that API schemas only need to be defined on the server, which lightens the client bundle a tiny bit.

I like the idea of tightly coupling Vulcan to mongodB, however I think while working in this area, we can get some of the naming conventions to revolve more around GraphQL types than MongoDB collections.

We could even have a separate database schema to mirror the API schema and hold fields that exist in the database but not in the API, since those fields also don't need to be exposed to the client. This is also an elegant way of improving security, since you'd know there'd be no chance of a dbSchema field being exposed through the API by mistake.

One thing though as far as the syntax to consider is what will it look like using typescript interfaces.  Implementing interfaces would help with code hinting on how your data is structured without having to reference the schema.

Blog post WIP: https://medium.com/@sachagreif/vulcan-1-16-apischema-dbschema-7a85655dca26


Temporary queue race proposed fix

For review regarding #871

@michaelrsweet can we create points/steps what needs to be implemented/fixed to make this working? We can look into it as separate issues so make it happen one by one.
The current PR implements resetting temporary queue timer if client requests its creation, which can be one step.

@zdohnal This requires a bit of thought. For starters we need to update cupsd to look for an existing queue with the same device URI. The server also needs to update the temporary queue's expiration date whenever the queue is accessed or listed (not just for print jobs) to prevent the queue from going away while a client is actively polling it.

@michaelrsweet so proposal:

[ ] add_printer() and create_local_printer() in scheduler/ipp.c has to check existing queues on uri - if the same device URI exists and it is temporary queue, update state time of printer
[ ] every IPP request on the temporary queue has to update state time of printer as well.

I've pushed a different change to master:
[master https://github.com/OpenPrinting/cups/commit/9383b377eba6ddb5ed80ebb244907e9be6ccd169] Update CUPS-Create-Local-Printer to preserve the existing printer based on the device URI (Issue https://github.com/OpenPrinting/cups/issues/871)
See #871 for followup reporting if the problem isn't resolved for you.


Add e2e tests

Add playwright e2e tests

Would be very cool if we could isolate the testing of features of the app from onboarding

@stunningpixels sorry what do you mean ?
right now we have separate onboarding tests and separate functionality tests


[Extension API] Drag and Drop controller for text/uri-list appears to be broken with multiple URIs

Does this issue occur when all extensions are disabled?: Yes
Problem:
The documentation for the TreeDragAndDropController<T> interface function handleDrag says "The data for "text/uri-list" should be a string with toString()ed Uris separated by newlines" but it appears that this does not actually work.  It appears that when you provide two or more uris for the 'text/uri-list' MIME type (separated by newlines), it still attempts to open it as a single file with a single uri, as opposed to two separate URIs.
Example, when providing the uri string to the text/uri-list data transfer:
file:///home/luke-callaghan/dev/node/vscode/wt/envs/test-color-context/data/chapters/chapter-1676055319229-52eb5f16-0986-4cea-a053-69983d27b07f/fragment-1676055319230-dec4e8b3-ee5b-4eb2-b6f6-13fa11f30af0.wt
file:///home/luke-callaghan/dev/node/vscode/wt/envs/test-color-context/data/chapters/chapter-1676055319229-52eb5f16-0986-4cea-a053-69983d27b07f/fragment-1696516859036-6177fe8c-fb36-487f-af66-e502420edfcc.wt

(ignore the absurdly long paths -- working on it)
I get this result:

As you can see when I hover over the tab that vscode opened for me, the URI that vscode is attempting to read is the same literal string I pasted above, and not two separate tabs, like the documentation says it should.
I've confirmed that my drag/drop controller works well with single uris, but when I try to provide more than one it breaks.

VS Code Version: Visual Studio Code - Insiders October 2023 (version 1.84)
OS Version: Windows 11

Steps to Reproduce:

Create a tree view with Drag and Drop controller Microsoft Example
Make sure the value 'text/uri-list' is in the dragMimeTypes and dropMimeTypes arrays
In handleDrag add the line treeDataTransfer.set('text/uri-list', new vscode.DataTransferItem("<<URI 1>>\n<<URI 2>>")); replacing "<< URI 1>>" and "<< URI 2>>" with the uris for two valid files on your file system.
Simulate a drag/drop of multiple items by dragging one of the items in your tree view into the editor.
An error screen will appear, as vscode attempted to open a file literally "<< URI 1 >>\n<< URI 2 >>" instead of two separate URIs (which is the behavior).

(NOTE: I've tried this on linux as well.  I've also tried this by escaping the newline's escape character ("<<URI 1>>\n<<URI 2>>") -- does not work with either)

Could it be that the Uri separator should be \r\n and not just \n?

Per documentation elsewhere, it should be \r\n:
https://github.com/microsoft/vscode/blob/302857c98ab1bb48423f1e0245b65c498e6edf86/src/vscode-dts/vscode.d.ts#L11254-L11258
Updating the other documentation here: https://github.com/microsoft/vscode/pull/195133

I think the website documentation is updated from the JS doc in the codebase periodically. @gregvanl how often is the website API doc updated?

@alexr00 We update the API reference each release when we set the vscode.d.ts commit ID to the release commit. The next update will be at the beginning of November for the 1.84 release.
We don't typically move to a new commit ID mid-milestone since this would include APIs not yet released.

Updating next release makes sense!


Proper way to collect all open missing functions & definitions of WinObjC

Hi guys, I',m pretty sure a lot of people try to compile their existing iOS App with WinObjC and nearly everybody will find missing API definitions, functions and methods. If we all create an issue for each missing method the issue forum will be flooded - a little bit what is happened ;) Don't get me wrong I appreciate to see that there is an overview of missing features upfront to find out if it make sense to spend effort to try to compile a project before.
I guess it would be a good idea to create a wiki page of missing features & functions. It might be helps the core team to be focused to find out what the most wanted APIs & functions to successfully compile projects. A voting would helpful to get a priority. Maybe there is a better tool for that instead of a wiki. Let me know what you think about that.

up. Like

A good approach to this might be Microsoft opening up a UserVoice for WinObjC?
That would allow people to add in the missing APIs that they find and search for ones that have already been found to be missing, then vote them up if they feel it's really important.
That being said although it does flood the issue forum I do think having open issues for missing APIs in GitHub is important, it allows everyone who is watching this project to see the progress on missing APIs in once place vs having to search out to multiple places.

Can't this be automated to some degree? I wrote a naive "Sanity Check" for Xcode projects at https://github.com/fdierick/WinObjC-Check ... It's a starting point. Need to look into digging deeper to see which symbols are defined/missing. Not sure where to start with that.

First off @fdierick love the tool you wrote, it's awesome. Yes I agree that it could be automated to some degree, though I'm not sure how an automated solution would work with a voting solution, for ranking particular APIs?

@Volkrass, I will give definitely the tool of @fdierick a try. I agree with @NuttGuy, question is how we could combine an automated tool with voting & ranking for particular APIs? One thought come in my mind: What would be when we can use the tool and it automatically generator a statistic which can be upload to an github page where we collect the ranking? There are several things we have to consider like fraud protection or how we can avoid fake entries?

I'm down for a tool. Sorry about all the reports. Once we get something that allows us to submit and prioritize missing APIs, we can migrate most of my issues to that.


Filters and "hide" buttons do not work

Before we do double work: I would like to look into that.
As far as a short analysis goes: when "updateFilters" is called on @change event, the "hideGilded" flag is undefined. Therefore it is deleted from the store, instead of being updated.
Regarding the category, I have not analyzed until now.

Thanks for checking @Voigtus! I'll look into it now! 😄

As far as I understand it, you are you emit change="$emit('update:modelValue')"  in the FilterComponent.js, but the FiltersComponent.js is listening to a change event. At least after changing the emit value to 'change' I get a value that is not "undefined". Unfortunately still not the right one, but hey, babysteps....

I copied most of this from the Orion tracker to save time in development, but the Orion tracker is built upon Vue 2 while I updated this tracker to Vue 3, so some of the v-model handling has changed between the two and I'm still not entirely up to speed on Vue 3 yet (we still use Vue 2 in my daily work as well 😅). I'll see if I can figure out how to do it with Vue 3 syntax 😄

Fixed it! 🎉


ARM64 support progress

I know ARM64 support for HoloLens 2 has been brought up several times in the past, but I find it difficult to follow the progress.
Is there a link to somewhere where it is being worked on?
And what is an approximate time of completion? 1 month? 6 months? 2 years? No need to be exact numbers, just nice to have an idea of where the progress is at the moment.

Hi @eirikhollis,
Thanks for opening that issue, I'll take it as an opportunity for a recap and roadmap regarding ARM/64 support.

The current version of MixedReality-WebRTC builds upon the WebRTC UWP SDK project, which uses the M71 milestone of Google's libwebrtc implementation. This milestone is rather old and has no support for ARM64 at all.
The WebRTC UWP SDK project uses a fork of Google's repository, which makes it very difficult to upgrade to a more recent milestone.
Around last year or so, our best plan of action was to upgrade to M75 because the WebRTC UWP SDK project team was also working on a fork of that milestone. This was an experimental branch though, which had not been really validated in production code, and was missing all the changes we made in particular to improve support and quality of H.264 video.
We never managed to get the proper resourcing to push that work through, and as time passed the M75 milestone was getting old itself. In parallel ownership of the WebRTC UWP SDK project changed and the new team decided instead to bootstrap the WinRTC project, which the aim of replacing the WebRTC UWP SDK project and directly building over the Google repository instead of forking it, to make future upgrades much easier.
Today, our current plan of action is to wait for the WinRTC team to provide parity with WebRTC UWP SDK, and then make the switch, which will have the consequence of upgrading MixedReality-WebRTC internally from M71 to at least M80 if not latest (master branch). Since support for ARM64 has been added around M73 or M74 if I recall correctly, we will have ARM64 support internally, and can then work to make sure we expose it. This switch is referred to as "undocking" (the experimental/undock branch, which we use internally for this and do not support publicly, just to set expectations).
The current expectation is to get parity (@LoadLibrary currently actively working on this) and make the move in the next few months. We will probably not wait for it for 2.0, but might get a 2.1 version after that which would leverage that undocking and all the benefits it brings, while maintaining the same feature set as 2.0.
One consequence we noticed is that we might have to drop ARM(32) support in the process, because for ARM/64 UWP we need the Visual Studio compiler, and Google never added support for cl.exe ARM(32), only ARM64. At this point if anyone really need ARM(32) support we encourage them to get in touch, but the amount of work to continue this support is large, and involves either changes in Visual Studio itself to support a clang-cl UWP ARM toolchain (so a bit unlikely) or reverting back to the Clang toolchain, which works on ARM64 but has its own set of issues for UWP support.

I hope this makes things more clear. On our side, we'd be interested to know why you are eager to get ARM64 support. Is there a specific issue with ARM(32) running on ARM64 devices like HoloLens 2? What do you expect to get from ARM64?

@djee-ms Thanks for the response! A great read!

What do you expect to get from ARM64?

The main compatibility issue for us right now is Azure Remote Rendering, which does not support ARM(32). Rather than trying to implement ARR in ARM(32), I'd much rather have WebRTC move to ARM64.
We almost never do one-to-one calls with the library. It's a lot of connected devices and/or websites in a many-to-many configuration. I hope that an ARM64 version of the library will provide a performance improvement, and if it doesn't, at least other parts of the application will run better on ARM64.
Unity does not support ARM64 in their new XRSDK. However, latest preview does in fact add support for ARM(32), so I'm hoping to test that out soon.

So as of right now, most, if not all components we have, run on ARM64, and it's only the WebRTC bit that is blocking us from moving over. Do you have an estimate on when the WinRTC team will achieve parity with M71? That could help us decide if ARR + WebRTC is a dream for next year or maybe possible sometime soon.

The current expectation is to get parity (@LoadLibrary currently actively working on this) and make the move in the next few months.

Current ETA is parity in the next few weeks, and then we need to integrate the change and do some extensive testing to make sure there's no regression. I don't have an estimate for that other than a few extra weeks, but I can tell you it's where our focus is with 2.0 so that will not be next year.

HI Jerome (@djee-ms ), I just re-read your very helpful roadmap summary above and was reminded of the likelihood of ARM being dropped.  I don't know much about ARM64 tooling in Visual Studio, but have observed that all C# builds appear to be dotnet native builds, regardless of how you set the dotnet native build flag in the project file (i.e. including all debug builds).  I hope to learn that there is in fact a way to do an ARM64 build that is not a dotnet native build, but I'll proceed here as if ARM64 builds are dotnet native only.
As I'm sure you know, dotnet native builds can be very time consuming.  If we can only use ARM64 on HoloLens 2 then every incremental change in our app will incur the dotnet native build time which can be a big productivity hit especially when working on the kinds of issues that require a lot of guess-and-check style investigation.
(And if your project dependencies aren't kept very clean, as ours admittedly are not at the moment, then builds will be done on launch even when no inputs have changed.  So just re-launching the app -- e.g. to set an earlier breakpoint -- will incur the build time penalty.  That at least is in our control.)
I understand that supporting both architectures is potentially very costly for you.  I just wanted to be sure that you are aware of the productivity implications of ARM64-only so you can factor it into the decision making.

Thanks for the feedback @kspark-scott, I will have a look but unfortunately this is not about the support cost, this is a technical limitation of Google not supporting the MSVC toolchain on ARM. They do support MSVC but only for x86/x64/ARM64; for ARM one has to use Clang.
With the current version we use webrtc-uwp-sdk which does some magic compiling parts with clang and parts with MSVC as I remember, which is somewhat dangerous, and we had troubles in the past with it. I think we had also to disable some SIMD optimizations because of that, which increases the CPU load in a non-negligible way. Anyway we cannot continue with webrtc-uwp-sdk which is deprecated and unmaintained.
Going forward upgrading to a more recent milestone via the WinRTC patches for UWP, we are back on an (almost) clean Google repository, which means we cannot compile with MSVC on ARM. Unfortunately, Visual Studio doesn't have an ARM/64 clang-cl toolchain for UWP, and there is little chance to get one in the short term at least, which means we are stuck between Google's clang-only libwebrtc and Visual Studio's MSVC-only UWP support. As it sounds dangerous if at all possible to compile part of the code with one compiler and part with the other, we are considering dropping ARM altogether because even before the cost of maintenance, we are not even sure there is a way to make it happen in the first place (at least for UWP).

Thanks for the clarification that it is not just about the cost of creating and supporting a customized mutli-compiler build, but also about the technical risks of doing so.  Honestly I would be surprised if you would seriously consider such a thing for relatively minor issues like the one I described, but thought I should state the issue for the record if nothing else.  We will plan accordingly.

I am still trying to understand why ARM has no .NET support (though I confirmed it doesn't indeed) and why Google has not added support for ARM, which apparently has something to do with Visual Studio CRT not being available unless you target Windows 10, or something in that flavor. So there's a possibility we can work around, but it's slim.

Are there any updates on the ARM64 support progress?

@eirikhollis sorry, but moving away from WebRTC-UWP proved to require much more effort than we estimated and we have had to drop it from the list of features included in the 2.0 release. It is now on the backlog, but we don't have an ETA yet.

@fibann
I'm sad to hear this, but I understand that the port process must be quite difficult.
Could I ask an unrelated question? I see that the activity in the repository, both here and on winrtc has dropped significantly the last couple of months, and I was wondering what the cause was. Has the work for WebRTC/UWP projects been dropped lately?

MR-WebRTC is still active - we are working on several projects at the same time, so the degree of activity on each one of them will change over time. winrtc is developed by a different team so I really don't have enough info to comment!

I'd also be interested in ARM64 support and the winrtc project going forward.
Is there any news or maybe a rough estimate when it is ready? Insertable streams would be an interesting feature for us.

Hi team, thanks for providing WebRTC tool, it works great with ARM. However some other Unity Hololens plugins only support ARM64 , any news on this ARM64 support? Thanks

FYI: About a week ago, the README was extended with a notice mentioning the following:

With the announcement of Microsoft Mesh, we want to provide an update regarding our plans for the future of the MR-WebRTC project [...] With that in mind, we have decided to scale back our development resources in the MR-WebRTC project [...] While we are reducing our development investment in MR-WebRTC, we will continue to host it as a project, and accept pull-requests for the project. We also encourage anyone wishing to continue to develop the project to fork it and move forward with it.

This does not say arm64 isn't coming but I'd say it at least implies that the team won't allocate (needed) resources to it.  Especially considering the effort required to switch to WinRTC.

This does not say arm64 isn't coming but I'd say it at least implies that the team won't allocate (needed) resources to it.

Actually the notice says:

While we are reducing our development investment in MR-WebRTC, we will continue to host it as a project, and accept pull-requests for the project. We also encourage anyone wishing to continue to develop the project to fork it and move forward with it.

...which means no change will be made by the dev team itself.

That's really sad but makes sense to focus effort.
I'm keeping my eye on the WebRTC implementation from Unity ( https://github.com/Unity-Technologies/com.unity.webrtc )
They plan to support arm64 windows(HL2) with release 2.5 (which I hope could be released later this year)
see https://github.com/Unity-Technologies/com.unity.webrtc/issues/15

...which means no change will be made by the dev team itself.

Fair enough. Thank you for the clarification.

I'm keeping my eye on the WebRTC implementation from Unity

I was about to post that link as well :). I guess this is currently the most promising approach for WebRTC for HL2.


Metrichor can write new basecalls with alternative serial numbers

Running Metrichor multiple times, e.g. with different versions will give you keys:
/Analyses/Basecall_2D_000/
/Analyses/Basecall_2D_001/
/Analyses/Basecall_2D_002/
etc.
poretools will use 000 by default and there is no way of changing this.
Therefore I think the way to handle this would be to:

add an option to allow the group number to be selected
permit a way of interrogating which groups are available in a file, and their associated Metrichor versions
for discussion; error out if multiple group numbers are detected in a file and no group number is specified on the command line (defaulting to 000 if there is just one group, as per current behaviour).

I am not sure if there is a way of seeing whether multiple groups are present other than querying for the existence of 001. I am also not sure if non-sequential serial numbers e.g. 000, 002 are possible.

Fixed this with --group parameter to fasta/fastq


[Release-1.0] Setup Initial Firebase Project

[ ] Setup initial project in Firebase
[ ] Setup new Grüvee Backend Repo

We have a backend repo located here now:
https://github.com/PixelogicDev/Gruvee-Backend


Cancel http read only queries if client socket goes away

I hereby agree to the terms of the CLA available at: https://yandex.ru/legal/cla/?lang=en
For changelog. Remove if this is non-significant change.
Category (leave one):

Improvement

Short description (up to few sentences):
Cancel http read only queries if client socket goes away
Detailed description (optional):
To check the socket status, try to read one byte from socket in a
non-blocking way:
0 - client closed the connection
>= 1 - client send more data, we are ignoring this case for now
timeout - normal case, client is waiting for response
... - socket broken?
Dirty, but should do the job. Limiting to readonly queries as I don't
want to mess with alter queries / insert select and others.
Closes #1403

Can Socket#poll be used for this without abusing read and making too many assumptions about how Poco handles sockets?

Let's write a test with cancellation of infinite query like SELECT count() FROM system.numbers.

@alexey-milovidov the test is in, let me know if it works.
re readonly guard, I didn't want to alter the behaviour for pending inserts, alters or any other similar queries. Although this better be handled in other places (it might be actually), I wanted to be extra cautious. (also, initially it was implemented without _PEEK flag).
re poll, I tried if (socket->poll(Poco::Timespan(), SelectMode::ERROR)) cancelQuery() but it does not pass the test on macOS, haven't checked other OS. Maybe this is not the correct way of doing it, I'm not very familiar with these things.


Document env_specific on settings

Migrated from GitLab: https://gitlab.com/meltano/meltano/-/issues/3535
Originally created by @tayloramurphy on 2022-05-26 17:10:54

Looking in https://gitlab.com/meltano/meltano/-/blob/master/src/meltano/core/bundle/settings.yml#L10 it seems like env_specific: BOOLEAN is an option on settings. Per @DouweM

Tells meltano config set to prefer storing in .env or the system DB instead of meltano.yml. Now with environments support, we may not need that behavior anymore

It does not seem to be documented in https://docs.meltano.com/contribute/plugins#setting-definitions

View 6 previous comments from the original issue on GitLab


Preliminary fix for saving results

BACKEND PULL REQUEST
Related Issue

Attempting to fix #4642

Changes Proposed

There are two different changes here:

Reference the savedEvent instead of the original testEvent
Move the saving of Results into the main method, instead of a helper function. Apparently @Transactional doesn't work correctly if called on methods within the same class.

Additional Information

I haven't been able to replicate the issue locally, so this fix is a bit of a guess. My plan is to try running this in prod for a few days/weeks and see if it stops the number of TestEvents saved without a corresponding Result. If it does, I'll go back and manually update/resend the originally affected TestEvents.
Long-term, I don't think we're following best practices for TestOrderService. Ideally, each repository should have its own service class, and those service methods would be called from TestOrderService (or maybe even QueueMutationResolver).

Testing

If you have ideas on testing this, go for it!

Reporting back that this fix does seem to have worked - no more TestEvents have been created without the corresponding Result.


GLTF serializer doesn't resolve the promise in some cases

Bug

Bug repro on playground: https://www.babylonjs-playground.com/#CQNGRK#35 at line 40
Expected result: the serializer should export and resolve the promise
Current result:the serializer seems to never resolve the promise

This is working in most cases except this one mentioned in the above playground.
The start scene of the BabylonJS Editor also has the problem: https://github.com/BabylonJS/Editor/issues/144

@sebavan do you mind having a look?

You ll have a fix in a couple of hours.

You rox! Thanks a lot!


made sAdmin::loginUser public

Currently it is not possible, or very complicated, to overwrite sAdmin::sLogin and the checks in it, this PR fixes this by making sAdmin::loginUser public.
With this fix it is possible to do the following:

replace sAdmin::sLogin using $this->subscribeEvent('sAdmin::sLogin::replace',           'replaceSLogin');
implement custom logic to verify that the user has entered the right credentials in replaceSLogin
trigger sAdmin::loginUser using  $arguments->getSubject()->executeParent(              'loginUser', $getUser, $email, $password, $isPreHashed, $encoderName, $plaintext, $hash);

This wont be a BC break.

Hello,
thank you for creating this pull request.
I have opened an issue on our Issue Tracker for you. See the issue link: https://issues.shopware.com/#/issues/SW-15127.
Please use this issue to track the state of your pull request.

What is your exact intent with this change? Can you describe it a little bit further?


[state-node] Include all proof for children

Includes all children proof when is_shallow=true.

The unit test also has just been updated. PTAL! @platfowner

Thanks for the review! merging now!


Add version flag

This is primarily intended as a test of boilersuite's CI, but it's also a useful feature in its own right.
After this, we'll tag v0.1.0 and cut a release
Note that the presubmit will have a line like this until we create the first tag:
fatal: No names found, cannot describe anything.

It's not actually a fatal error, it's just saying we can't get the name of the latest tag

/lgtm
/approve


feat: Transaction stats 2

Description
Resolves #447
Demo

Checklist:

[x] I have read and followed the Contributing Guide
[x] add transactions stats

It seems that TRANSACTIONS IN LAST 24H is not updating at all

Interesting, I cannot confirm the same issue. Maybe there was some downtime at the moment you were reviewing it. If it appears repeatedly, I will investigate and report it.

It seems that TRANSACTIONS IN LAST 24H is not updating at all

Interesting, I cannot confirm the same issue. Maybe there was some downtime at the moment you were reviewing it. If it appears repeatedly, I will investigate and report it.

@janmichek still not working for me, I've tried in different browsers. Also no visible issues in console.

@Liubov-crypto could you check again?

improvement followup, noticed after the merge https://github.com/aeternity/aescan/issues/646


adding simulator commands to cov.py

Hi Tao
I want to add sim commands to underlying rtl sim used for coverage, eg +UVM_VERBOSITY=UVM_HIGH
eg to the run.py simulator runs undereath cov.py
how do I do this - do we need to add a new cov.py --sim_opts "+UVM_VERBOSITY=UVM_HIGH"
thanks
Simon

This is now fixed. When running with -v, UVM_VERBOSITY will be set to UVM_HIGH automatically.


Refactored declarative and resource rules

Added 2 new classes:

DeclarativeResourceRule -> ResourceRule -> Rule
ResourceRule implements match() where it handles iterating over the items in a resource array or the categories in a plural resource, calling matchString() on each of them

this can be used for declarative or programmatic resource rules

DeclarativeResourceRule implements matchString() and handles running a set of regular expressions on each string by calling checkString()
ResourceMatcher, ResourceSourceChecker, and ResourceTargetChecker all now inherit from DeclarativeResourceRule and implement the checkString() method

For these general comments, they should probably be addressed in a separate PR

Rebased on main so ready for re-review. This has a lot of whitespace changes from indentation in the tests. Use the "hide whitespace" when looking at those.

ready for re-re-review


Add evm invoke method to call contract.

.

To add some context - this will be used in filplus-registry to support the new contract-based allocators. Right now filplus-registry just calls (via multisig) Verifreg actor directly. With this PR, it will be possible to make it call contract instead.


Some text should not be highlighted in red

After running a test, I noticed that some text was colored red, and its probably because of some regex that needs to be modified. I also found another instance of this, check the second screenshot. I think it has to do with the dash '-' character.
https://skitch.com/titusx/8rgia/mm-scheduled-action-set.rb-rpp-web-app
https://skitch.com/titusx/8r8ja/cm-contact-spec.rb-rpp-web-app

I'm having a similar issue where all the output is red from when the first test doesn't pass running "guard-rspec".

note to self, this issue has been resolved in my local dev branch, should be merged in soon.


Add dataframe as dataset for Open lineage

Please describe the feature you'd like to see

Once the specs are added on Open lineage https://github.com/OpenLineage/OpenLineage/blob/main/spec/Naming.md for dataframe, pass the lineage values for input and output facets for dataframe on OL.

define a namespace/name for those datasets that AstroSDK temporarily stores in XCom. It needs to be unique and not reused. I’m not sure what’s the best, something like namespace=xcom://{airflow instance namespace} name=/{dag.task.runid ???}
Optionally: Add a dataset facet that clarifies that this was a transient/temporary dataset that was deleted after it was read. (this is not in the spec yet but we should add it IMO)

{
  namespace: "xcom://{airflow instance namespace}",
  name: "/{dag.task.runid ???}",
  facets: {
    temporary: {
      ...
    }
  }
}

Describe the solution you'd like

Pass the lineage values for input and output facets for dataframe on OL.

Acceptance Criteria

[ ] Run example DAGs for the operator with dataframe and check it on Marquez and astro-cloud. Post the screenshot of the same.
[ ] All checks and tests in the CI should pass
[ ] Unit tests (90% code coverage or more, once available)
[ ] Integration tests (if the feature relates to a new database or external service)
[ ] Example DAG
[ ] Docstrings in reStructuredText for each of  methods, classes, functions and module-level attributes (including Example DAG on how it should be used)
[ ] Exception handling in case of errors
[ ] Logging (are we exposing useful information to the user? e.g. source and destination)
[ ] Improve the documentation (README, Sphinx, and any other relevant)
[ ] How to use Guide for the feature (example)

@rajaths010494 to update this ticket with the latest discussion on OL

https://astronomer.slack.com/archives/C03RTC9BQ4F/p1668446730868129

@rajaths010494 any update on this?

I had asked this in the channel no updates yet. https://astronomer.slack.com/archives/C03RTC9BQ4F/p1673870857024399?thread_ts=1668446730.868129&cid=C03RTC9BQ4F


tweaks of example for msd

resolve the bug in #265

We should also just remove the legacy examples.

ok. I just delete the legacy test for this example, and the new script will be automatically tested I guess. I am not sure if we should just delete the legacy way, or there is a bug need to be fixed when the ndets = 1?

LGTM. Open an issue to track the ndet = 1 case and we can come back to it later.

Ah, you need to add the scf script to the run_afqmc.py script as we seem to have adopted a one script workflow in the examples.


Option to read fields first

Sorry to re-open an old one -- but as mentioned in #43, there's an issue when you want to process the fields of a form before you handle the file stream. Basically if the file field appears first in the upload form, you can't read the fields until you resume() the stream.
Now let's say I want to have a form like so:
        <input type="file" name='backupFile' accept=".tar"> Restore Backup
        <label>
        <input type="checkbox" value="drop" name="drop" checked='checked'>
          Drop Existing Data?
        </label>

AFAIK there's no way currently to know whether I need to drop data before I pipe it to the restore handler; I'd need to move the checkbox above the file.
I prose a readFieldsFirst option to get around this.

This simply isn't possible (unless you save all files to disk first, which is not a goal of this module) because of the way multipart/form-data works and how browsers send forms.
What it boils down to is you have to place the non-file fields literally before the file fields in the html, as that is what determines the order in which the browser sends the form fields.

There's several workarounds for this, such as using duplicate hidden elements, re-ordering the form right before submission, or using XHR2's FormData to create a separately ordered form.
An example of the first workaround would be (in your particular example) to have a hidden input element with name="drop" and drop the name="drop" from your actual checkbox. Then it's a matter of attaching an onchange handler for the checkbox so that it sets the value of the hidden input.

Thank you for the insights -- I now understand why it's not possible.

@mscdex Thank you for explaining the limitations.
I noticed that Dicer uses StreamSearch here https://github.com/mscdex/dicer/blob/master/lib/Dicer.js#L124
Would it be possible/ make sense to search the stream for the delimiters, notes the positions of files, (whilst ignoring the data parameter from StreamSearch for files) and creating a "fileStream(s)" from the recorded position for the sake of memory efficiency?

@jsdevtom That doesn't work because you have to do something with that data (imagine a multi-GB file upload that comes before non-file fields). Typically that would involve buffering in memory or writing to permanent storage somewhere. That's not the kind of decision busboy should be making.
It's easier/more efficient to just re-arrange the fields on the client side.

@mscdex Got it thanks


Bing initialises to wrong zoomlevel

See, for example, examples/bing-tiles.html which should set to zoomlevel 11, but if you look at map.zoom, you'll find it's set to 10. Problem only occurs on initial setCenter; if you redo in console
map.setCenter(new OpenLayers.LonLat(-71.147, 42.472).transform(
new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject()),
11);
it sets zoomlevel correctly. Problem also occurs if you set center/zoom in map.options.
Not a regression, as I see the same problem in http://dev.openlayers.org/releases/OpenLayers-2.11/examples/bing-tiles.html

not worth spending time on any more


OneToMany JoinColumn options where cause

Hello,
For the moment it looks like we have it possible to join just a single column when processing the join.
Most SQL engines allow the multiple columns "join  on =:1 and =:2" statements.
Possible solution:
Add similar to the "@ Index"
options={"where": "(((id IS NOT NULL) AND (name like 'Mr%')) AND (email like '%@%'))"}
Why it is important:
With such options="where()" that will be added to the JOIN ON cause it would be possible to save the time for the separated custom SELECT when do we need to restrict JOIN select for the single field like 'language like "%English%" or currency like "%Euro%"'.
Could this make scense?
Thank you for the attention and wish you good Christmas!

While at surface it looks like a good idea, it is actually a terrible feature.
The reason is simple: the ORM operates under the assumption that the in-memory data structure mirrors the db data.
Addibg conditional filters on associations makes this extremely unreliable, as the data you save may no longer be visible after a refresh operation (while still there).
We already provide such functionality via SQL filters abd it has bitten many, many, many people due to broken proxy references to filtered records.
Therefore this is not possible/feasible. What you want is a read model rather than an association in your entities.