## Jenkins Build Summary

Built from [this commit](https://github.com/ximinez/rippled/commit/09af23b529c1eb66db46f50fe79ce5a61a542625)

Built at __20180910 - 16:32:36__

### Test Results

Build Type | Log | Result | Status
---------- | --- | ------ | ------
msvc.Debug | [logfile](http://ci.ops.ripple.com/job/ed-rippled/job/nb-ppt2/20//artifact/msvc.Debug.txt) | 1033 cases, 0 failed, t: 589s | PASS :white_check_mark:
rpm | [logfile](http://ci.ops.ripple.com/job/ed-rippled/job/nb-ppt2/20//artifact/rpm.txt) | 1036 cases, 0 failed, t: n/a | PASS :white_check_mark:
gcc.Release
-Dassert=ON,
MANUAL_TESTS=true | [logfile](http://ci.ops.ripple.com/job/ed-rippled/job/nb-ppt2/20//artifact/gcc.Release_Dassert_ON_MANUAL_TESTS_true.txt) | 1101 cases, 0 failed, t: 928s | PASS :white_check_mark:
docs | [logfile](http://ci.ops.ripple.com/job/ed-rippled/job/nb-ppt2/20//artifact/docs.txt) | 1 cases, 0 failed, t: 2s | PASS :white_check_mark:
msvc.Debug,
NINJA_BUILD=true | [logfile](http://ci.ops.ripple.com/job/ed-rippled/job/nb-ppt2/20//artifact/msvc.Debug_NINJA_BUILD_true.txt) | 1033 cases, 0 failed, t: 605s | PASS :white_check_mark:
gcc.Debug
-Dcoverage=ON | [logfile](http://ci.ops.ripple.com/job/ed-rippled/job/nb-ppt2/20//artifact/gcc.Debug_Dcoverage_ON.txt) | 1036 cases, 0 failed, t: 907s | PASS :white_check_mark:
clang.Debug | [logfile](http://ci.ops.ripple.com/job/ed-rippled/job/nb-ppt2/20//artifact/clang.Debug.txt) | 1036 cases, 0 failed, t: 284s | PASS :white_check_mark:
clang.Debug
-Dunity=OFF | [logfile](http://ci.ops.ripple.com/job/ed-rippled/job/nb-ppt2/20//artifact/clang.Debug_Dunity_OFF.txt) | 1032 cases, 0 failed, t: 304s | PASS :white_check_mark:
gcc.Debug | [logfile](http://ci.ops.ripple.com/job/ed-rippled/job/nb-ppt2/20//artifact/gcc.Debug.txt) | 1036 cases, 0 failed, t: 298s | PASS :white_check_mark:
clang.Release
-Dassert=ON | [logfile](http://ci.ops.ripple.com/job/ed-rippled/job/nb-ppt2/20//artifact/clang.Release_Dassert_ON.txt) | 1036 cases, 0 failed, t: 395s | PASS :white_check_mark:
gcc.Debug
-Dunity=OFF | [logfile](http://ci.ops.ripple.com/job/ed-rippled/job/nb-ppt2/20//artifact/gcc.Debug_Dunity_OFF.txt) | 1032 cases, 0 failed, t: 729s | PASS :white_check_mark:
msvc.Debug
-Dunity=OFF | [logfile](http://ci.ops.ripple.com/job/ed-rippled/job/nb-ppt2/20//artifact/msvc.Debug_Dunity_OFF.txt) | 1029 cases, 0 failed, t: 1217s | PASS :white_check_mark:
gcc.Debug
-Dstatic=OFF | [logfile](http://ci.ops.ripple.com/job/ed-rippled/job/nb-ppt2/20//artifact/gcc.Debug_Dstatic_OFF.txt) | 1036 cases, 0 failed, t: 302s | PASS :white_check_mark:
gcc.Release
-Dassert=ON | [logfile](http://ci.ops.ripple.com/job/ed-rippled/job/nb-ppt2/20//artifact/gcc.Release_Dassert_ON.txt) | 1036 cases, 0 failed, t: 422s | PASS :white_check_mark:
msvc.Release | [logfile](http://ci.ops.ripple.com/job/ed-rippled/job/nb-ppt2/20//artifact/msvc.Release.txt) | 1033 cases, 0 failed, t: 398s | PASS :white_check_mark:
gcc.Debug
-Dstatic=OFF -DBUILD_SHARED_LIBS=ON | [logfile](http://ci.ops.ripple.com/job/ed-rippled/job/nb-ppt2/20//artifact/gcc.Debug_Dstatic_OFF_DBUILD_SHARED_LIBS_ON.txt) | 1036 cases, 0 failed, t: 299s | PASS :white_check_mark:
gcc.Debug,
NINJA_BUILD=true | [logfile](http://ci.ops.ripple.com/job/ed-rippled/job/nb-ppt2/20//artifact/gcc.Debug_NINJA_BUILD_true.txt) | 1036 cases, 0 failed, t: 271s | PASS :white_check_mark:
clang.Debug
-Dunity=OFF -Dsan=undefined,
PARALLEL_TESTS=false | [logfile](http://ci.ops.ripple.com/job/ed-rippled/job/nb-ppt2/20//artifact/clang.Debug_Dunity_OFF_Dsan_undefined_PARALLEL_TESTS_false.txt) | 1032 cases, 0 failed, t: 663s | PASS :white_check_mark:
clang.Debug
-Dunity=OFF -Dsan=address,
PARALLEL_TESTS=false,
DEBUGGER=false | [logfile](http://ci.ops.ripple.com/job/ed-rippled/job/nb-ppt2/20//artifact/clang.Debug_Dunity_OFF_Dsan_address_PARALLEL_TESTS_false_DEBUGGER_false.txt) | 1032 cases, 0 failed, t: 901s | PASS :white_check_mark:


@Southparkfan why? @JohnFLewis dropped this restriction when ManageWiki was first implemented way back when. Why are we restricting bureaucrats from changing the visibility of their wiki?


<html>


@cztomczak I successfully built an armv7l wheel [1] last night, using a lot of manual steps, but it seems to work. I haven't actually been able to run my application yet because of unrelated graphics driver issues.

Also, I compiled CEF on an x86_64 machine to save time, then copied the distribution to an armv7l machine where cefpython3 was built without having to worry about configuring a cross-compiler. This would ideally all be done on the same machine, but will take more work to automate.

[1] https://github.com/jakogut/cefpython/releases/tag/69.0-armv7l


This tested good, thanks. CMake exceeded GNU makefile and Autotools. The other build systems apply it to the `cryptest.exe` program, too.


much clearer, thanks


Sorry, I'm freaking too slow. I forgot to press "build" on CrowdIn. Not sure how many times, I'll have to repeat this mistake. Unfortunately, `crowdin-cli` doesn't afford this. Their API does, but it would take a while to implement.


You are right. Since we do not expand aggregates I do not really know how to write a test for this. I will commit a fix soon.


after giving it more thought, I came up with this: https://github.com/pure-data/pure-data/pull/431
"-xr" | "-xe" = "-x" actually makes sense, so I added a third flag to only disable changing vertices. what do you think? sorry for the nagging :-) (PS: I'm *really* excited about the upcoming Pd 0.49!)


Let's do:

```
if timeout <= 0 {
  // bad
} else if timeout > maxTimeout {
  // bad
}
// good
```

A less-than-zero timeout also now doesn't mean failed parsing, since parsing is done by Kubernetes, not us.


Two questions about this:
- if `hole` is very small, does this overlap the plot area or does the mainDrag take precedence?
- if `hole` is removed entirely, does this element get removed? I guess if the mainDrag takes precedence it might not have any practical effect, but still doesn't seem ideal...


メールフォームの入力画面


First try


Created multidev environment [lawhelp#ci-1203](https://dashboard.pantheon.io/sites/9ec12d94-c804-44b7-968e-166a0b49fdc0#ci-1203).

[![Visit Site](https://raw.githubusercontent.com/pantheon-systems/ci-drops-8/0.1.0/data/img/visit-site-36.png)](https://ci-1203-lawhelp.pantheonsite.io/)


Good point. I need to add a slightly weaker assert since we do not really have a valid base for this pointer and temporaries, yet we still might see temporary.field or this->field.


> if hole is very small, does this overlap the plot area or does the mainDrag take precedence?

That mainDrag is plotted last so it shouldn't interfere. I'll double-check though.

> if hole is removed entirely, does this element get removed? I guess if the mainDrag takes precedence it might not have any practical effect, but still doesn't seem ideal...

Currently, it does not. Good point, we should remove it whenever `hole` is removed.


`ssh://` uses `/` before path, `user@host.xz:path/to/repo.git` uses `:`.


I did this delibelaretly


Thanks Dagobert, excellent find.

@SeanCampbell do you recall why you changed the structure initialization on line 103 (https://github.com/collectd/collectd/commit/df135922b19890047ebf725e6b82cd1c174c6d52#diff-b8d93259adf9834dc89c396937d6b565R103) for non-windows builds?


@samanthasunne Future-dated posts weren't getting published automatically but that should be fixed now.

PS - email me...thanks!


NP, just let me know if the diff still shows issues...


🔥 [Jenkins job](https://jenkins.internalx.com/job/macios/job/master/69/display/redirect) (on internal Jenkins) failed in stage 'Running XM tests on '10.9'' 🔥 : hudson.AbortException: script returned exit code 255

✅ [Build succeeded](https://jenkins.internalx.com/job/macios/job/master/69//console)
🔥 [Failed to publish results](https://jenkins.internalx.com/job/macios/job/master/69//console) 🔥
🔥 [Failed to publish results](https://jenkins.internalx.com/job/macios/job/master/69//console) 🔥
✅ [API Diff (from stable)](http://xamarin-storage/jenkins/xamarin-macios/master/385592b12837238d5fb4302330013d1935d02007/69/jenkins-results/api-diff/index.html)
🔥 [Failed to publish results](https://jenkins.internalx.com/job/macios/job/master/69//console) 🔥
ℹ [API Diff (from PR only)](http://xamarin-storage/jenkins/xamarin-macios/master/385592b12837238d5fb4302330013d1935d02007/69/jenkins-results/apicomparison/index.html) (please review changes)
ℹ [Generator Diff](http://xamarin-storage/jenkins/xamarin-macios/master/385592b12837238d5fb4302330013d1935d02007/69/jenkins-results/generator-diff/index.html) (please review changes)
🔥 [Failed to publish results](https://jenkins.internalx.com/job/macios/job/master/69//console) 🔥
🔥 [Test run failed]() 🔥
🔥 [Xamarin.Mac tests on 10.9 failed](https://jenkins.internalx.com/job/macios/job/master/69/display/redirect) 🔥


It should be one of these
* `ssh://` with port
* `user@host.xz:path/to/repo.git` without port and with  `git -P`.


I think this is always true.


This is not doing anything beside wasting gas. Or perhaps reverting.
The value is already in the contract, the protocol takes care of that.


These length checks are not necessary because it would fail at the `== passwordHash` step anyway.


How can you now make it so your users know how to construct a hash that will work?


I have one comment regarding this PR:
1/ Did it pass the test suite?
2/ That makes it incompatible with older modules and will make them impossible to link, right? I believe we should support detecting both `compile` and `implementation` when unlinking so that it keeps working for everyone. At the same time, `compile` might be already there in the codebase and we want to be aware of it when looking for place to start adding new dependencies.


First, we can start with 39% more code.
```
18:29 $ wc steve.py bin/ngs-code-stats.ngs
      17      63     463 steve.py
      18      38     333 bin/ngs-code-stats.ngs
      35     101     796 total
✔ ~/src/ngs [dev|…20]
18:29 $ ngs -p '463.0/333.0'
1.3903903904
```

Second, it's an area where NGS does not stand out that much. Try to run external program with pipes and redirections in Python.


Don't use `web3.eth.accounts`. Instead remember that:

```javascript
module.exports = function(deployer, network, accounts) {
```


wut?


That's a high amount. Use smaller ones to avoid depleting your test account.


This is now in production!

![shipped](https://media.giphy.com/media/MHBxC3uR71Yyc/giphy.gif)


I think there might be some typos in your example above so I do not really get it.
With:
```
void f(int** pp) {
  __lifetime_pset(pp);  // expected-warning {{pset(pp) = ((invalid))}}
  // since *pp is an output.
}
```

*pp in the example above is an output and invalid by default. Also, I think we only supposed to track top level pointers now. Why do we want to add the deref location to the pmap?


You don't need to make this sync' call because you already have accounts on line 3.


I would avoid naming a variable `contract` because it shadows the `contract` of line 3.


![](https://github.trello.services/images/mini-trello-icon.png) [hi](https://trello.com/c/rtWmTCWA/16-hi)


Can you promisify the sync' `web3.eth.getBalance`?


this is sln to lmts via orr


CC: @Kureev as you originally authored that part, is there anything in particular we should be aware of when it comes to dealing with this change?


is this something you added manually?


@Amanda-Catherine hi, a fix for the bureaucrats was coming in a follow up commit, but we're not going to enable this setting now. So no restrictions for bureaucrats coming.


Nice.


we should see if we can make these not be MonoBehaviors.  We are trying to avoid them in vNext systems where possible. I can help here.


Looks like there have been some additional commits to `master` since #3 was first opened. I'll rebase it for you to ensure it's running the latest tests. (It'll take me a couple of minutes.)


Should this be ShowMemory?


@telackey if you add "babel-plugin-transform-runtime" in devDependencies, you have to add     "babel-runtime" in dependencies.


Same here promisify this sync `.getGasPrice`


Maybe elaborate a bit on what specifically you want to fix


I feel like you should be aware of what this tool is doing when you use it, and that writing this change as a breaking change that you need to replace compile with implem manually during 0.57 upgrade seems fine to me.


This file can be deleted


BTW, you have no certainty that this gas price was used in the tx. You need to look at the gas price in the tx.


привет, я Эда) и это мой первый комментарий!!)))


You should make a precise test that takes account of the gas cost.


1. В классе CafeSwallow незачем создавать поле list, соответсвенно и параметр в конструкторе.
2. Даже если бы поле list и нужно было, то ты забыл указать generic. Помни о сырые типах


@telackey If we add this, we need to make sure that webpack-cli is installed instead of webpack@3.11 otherwise the `wire build` will fail


#este é um comentario de teste


While it's less practical for a journal, it might be good practice to add edit functionality if you complete the rest of the list.  Otherwise, looks great!


Agree, opening a ticket for it.


The author macro was inside the if-clause because in case of no authors (situation that is allowed for web pages) it would always produce a dot.  Did you check if the citation appears correctly in this case with your change?


It happened in one other place too, but I caught that one. Better be more careful with my regexes next time.


Thank you! Fixed.


:tada:


Thx for the info @Rocky640
Anyway I was planning to do smth else after last attempt fails :)


Habrá que ver si es verdad lo que comentan.


can I ask why you think this is taking longer ?


1. в строке 29 ты вызываешь метод createTables, хотя раньше ты этот метод уже вызывал и получается ситуация что в момент работы программы в куче (heap - область оперативной памяти в JVM) будут жить две коллекции со столами - это не то что нам нужно. Вместо этого, ты можешь сделать следующее: в строке кода 8 ты вызываешь метод непосредственно в качестве первого параметра, а что если ты перед тем как создавать объект CafeSwallow напишешь такой код:
`List<Table> initialTables = createTables();`
Соответсвенно эту переменную ты сможешь передать в качестве первого параметра в конструктор, ну а второй параметр тебе и вовсе не нужен (я об этом писал в другом комментарии).
Таким образом метод bookingATable можно не много переделать - указав что он должен принимать на вход лист столов.


hello


> 更新https_dns_proxy中的解析doh域名的dns
这不是下一个 commit 的内容么 2333333


`s/using/used/`


test


I found this while running my program through Valgrind and executing `(progn (set 'a (array 1000)) (for '(set 'i 0) '(< i 1000) '(set 'i (+ i 1)) '(aset a i (random 1000.0))) (foreach 'i a '(print i \n)))`.


I've observed it a few times on the Windows machine in particular.  I'm not sure the cause, but I think it surely must have something to do with how many parallel tests are running at the same time. I suspect it would not be an issue if we did a virtual machine like the other new ones instead of the VDI.


one more adding


I love the detail of this list.  Consider prioritizing what you can finish by end of day Thursday, and make sure that you have something presentable before adding cool features.


I rather agree that, since the main acorn package is under MIT, using different licenses for other packages in the organization, especially copyleft ones, is needlessly confusing.


TL;DR I think it was a mistake.

That was the initialization when I [first started](https://github.com/Stackdriver/collectd/commit/4de4af64b4fde6b655a5dfffdf97c63410279169#diff-b8d93259adf9834dc89c396937d6b565L85) on the Windows port, but was [changed in November 2017](https://github.com/collectd/collectd/commit/a69d01a277f48652481c161be3feea16e50d72eb). So when I cleaned up the port into a PR, I didn't sync correctly and copied over the old initialization.


Thank you for the quick turnaround on this request!


njsdztrpdnjmfgpokfghxkjmpcbnv


I liked this  change quite a lot , it allowed to split some (long) help to be cut in section (cf. '`i?`', Output/Action), which made it much clearer.


Oups yes, sorry ...


Pretty extensive list.  Prioritize the essentials first.  Make sure that you have a basic, presentable app before adding the cooler, more complex features.

Also, how about edit functionality?


@Southparkfan Ok, but why are we doing this anyway? Private/public is not a “dangerous” setting..


@doxygen Please reverse this. The Visual Studio 2017 image contains Visual Studio 2015 as well.


Excellent contribution.


Elapsed time is now displayed in the status bar at build. Please check commit 02b00403.


@eclipseo, @maxice8, @pabloariasal, @szlin, @zmwang ddgr v1.5 is released!


Great list.  You've already basically done this, but make sure that your basic presentable app is complete first then add all the cool/advanced/complex features afterword.

Also, set aside a bit of time to practice your presentation.


Й


table-refactor (nealkruis) - Win64-Windows-7-VisualStudio-14: Tests Failed (1395 of 3008 tests passed, 0 test warnings)

Failures:

integration Test Summary
 * Passed: 1
 * Failed: 634

regression Test Summary
 * Passed: 631
 * Failed: 2

![Build Badge](http://img.shields.io/badge/build%20status-passing-green.png) ![Test Badge](http://img.shields.io/badge/tests%20passed-46.38%25-red.png)


@dogmaphobic FYI ^


```
char command[18];
- sprintf(command,"event MCPINTD%i=%i",intp+(mcp230xx_port*8),((mcp230xx_intcap >> intp) & 0x01));
+ sprintf(command,"event MCPINT_D%i=%i",intp+(mcp230xx_port*8),((mcp230xx_intcap >> intp) & 0x01));
```

@MadDoct Be careful of changes like these - you should have increased the size of command[18] to 19

Not blaming as such, just be on the lookout for when you make changes like this :-)

Fixed with PR https://github.com/arendst/Sonoff-Tasmota/pull/3752


Cool idea.  Be prepared to pivot to a different application if you cant implement basic functionality with image uploading and storage by end of day Tuesday.


Cool, looking forward! Is there are public roadmap of what will be included in the RCs?
I noticed, already taking a look at that :)

Will do, I actually raised two minor pull requests already :)


hi @arvidn, I wonder if this is still the case, even if I don't see an explicit constructor in `block_info`


This completely broke Tetris (to the point that the emulator crashed), something weird is going on with the map->filter->collect chain here.


1. Переменная s нигде не используется, соответсвенно может быть удалена.
2. Кстати, как по мне так метод bookingATable не должен возвращать список столов. Задайся вопросом: "что делает метод bookingATable?" и скорее всего ответ: "просто бронирует стол (ну и выводит на консоль инфо о забронированном столе"), соотвественно в ответе нет упоминания о возвращаемом значении.
 3. В логике ты создал переменную id ее значение будет то что введено с консоли и дальше ты проверяешь ее на числа 1, 2, 3 но это все хардкод, а нужно проверить есть ли в коллекции столов - стол с такой id, соотвественно у клаасс Table можно создать метод getId (знаю - это раскрывает инкапсуляцию, но пока что это самый просто способ).

4. когда ты вызыаешь scan.nextInt(); в этот момент ожидается ввод в консоль, а что если пользователь введет не число а слово или просто букву? Пожксперементируй как это можно обработать, уверен в гугле очень много таких решений


@homes32 Please review this commit.


有点骚


Nice list of features.  I'd suggest starting with the implementation of the essential features necessary to present your app (I'd even say you could have an MVP without some of your yes features), and then add features one by one in a priority.


Direct commit to master, no PR, no review. Great example of open source democracy @ltrzesniewski

![disappointed](https://media.giphy.com/media/U4VXRfcY3zxTi/giphy.gif)


@neo1691 Thanks for reviewing and merging the changes.


_Replying from my phone so bear with me._

@grabbou
1. Test suite did pass, although not on CI since at the time of the PR some steps of the pipeline where broken. However, tests concerning `link` passed.

2. Existing modules are not affected and will be linked correctly, but you're right about unlinking! I did not thought about existing projects upgrading to 0.57.

I agree, we should make `unlink` aware of both `compile` and `implementation`. I wouldn't mind working on these changes if it would be OK. We should also mention it as a breaking change like @Titozzz suggested.


@xavierlepretre
> I think it would allow player1 to front-run player2 and increase the bet amount so that player2 can either match that amount or I suppose forfeit.

This is true. But I think a scenario can arise where player 2 can bet less money looking at the player 1 bet and locks the player 1 to play his / her turn. This way player 2 can practically hijack the move and can even get better result out of it. Although it can be prevented if we allow player to forfeit the game even if player 2 makes his move.


there are bugs in the way the name is computed (doesn't show top-level reference and cv qualifiers), so different tests are wrongly being reported as being unique.


Related to: backdrop/backdrop-issues#3276


For any reason "Head" was added to the first row of the Excel sheet. That is why in R,  the given command lines do not read the variables of the csv-file. I will delete the first row in the next commit.


Very cool idea.  Elaborate on the visual representation functionality you'd like to implement once you're at that stage. Also, I'd probably break down your list a bit further to be more specific than it currently is.

Be prepared to pivot end of day Tuesday if you're overwhelmed with implementing this app.  Start with a basic, presentable app and add features  as time permits.


I have no hope until now to improve STC. Very difficult to detect blocked positions and anticipate them at low depths.
Another difficulty : opening book is very "open". Too few closed positions in comparison with chess statistics.


# This Python 3 environment comes with many helpful analytics libraries installed
# It is defined by the kaggle/python docker image: https://github.com/kaggle/docker-python
# For example, here's several helpful packages to load in

import numpy as np # linear algebra
import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)

# Input data files are available in the "../input/" directory.
# For example, running this (by clicking run or pressing Shift+Enter) will list the files in the input directory

# sklearn preprocessing for dealing with categorical variables
from sklearn.preprocessing import LabelEncoder

# File system manangement
import os

# matplotlib and seaborn for plotting
import matplotlib.pyplot as plt
import seaborn as sns

# List files available
print(os.listdir("../input/"))

# Training data
app_train = pd.read_csv('../input/application_train.csv')
#print('Training data shape: ', app_train.shape)
#app_train.head()

# Testing data features
app_test = pd.read_csv('../input/application_test.csv')
#print('Testing data shape: ', app_test.shape)
#app_test.head()

#Exploratory data Analysis
#Examine the target column
app_train['TARGET'].value_counts()
app_train['TARGET'].astype(int).plot.hist();
# imbalance class problem

# Identify the missing values and create a table
# Function to calculate missing values by column# Funct
def missing_values_table(df):
        # Total missing values
        mis_val = df.isnull().sum()

        # Percentage of missing values
        mis_val_percent = 100 * df.isnull().sum() / len(df)

        # Make a table with the results
        mis_val_table = pd.concat([mis_val, mis_val_percent], axis=1)

        # Rename the columns
        mis_val_table_ren_columns = mis_val_table.rename(
        columns = {0 : 'Missing Values', 1 : '% of Total Values'})

        # Sort the table by percentage of missing descending
        mis_val_table_ren_columns = mis_val_table_ren_columns[
            mis_val_table_ren_columns.iloc[:,1] != 0].sort_values(
        '% of Total Values', ascending=False).round(1)

        # Return the dataframe with missing information
        return mis_val_table_ren_columns

# Missing values statistics
missing_values = missing_values_table(app_train)
missing_values.head(20)

# Encoding Categorical Variables-Lable encoding(sklearn) and One hot encoding(pandas)
# Create a label encoder object
le = LabelEncoder()
le_count = 0

# Iterate through the columns
for col in app_train:
    if app_train[col].dtype == 'object':
        # If 2 or fewer unique categories
        if len(list(app_train[col].unique())) <= 2:
            # Train on the training data
            le.fit(app_train[col])
            # Transform both training and testing data
            app_train[col] = le.transform(app_train[col])
            app_test[col] = le.transform(app_test[col])

            # Keep track of how many columns were label encoded
            le_count += 1

print('%d columns were label encoded.' % le_count)

# one-hot encoding of categorical variables
app_train = pd.get_dummies(app_train)
app_test = pd.get_dummies(app_test)

print('Training Features shape: ', app_train.shape)
print('Testing Features shape: ', app_test.shape)

# Align the training and testing data, keep only columns present in both data frames
train_labels = app_train['TARGET']
app_train, app_test = app_train.align(app_test, join = 'inner', axis = 1)

# Add the target back in
app_train['TARGET'] = train_labels

#check the shape of the training and testing data frames
print('Training Features shape: ', app_train.shape)
print('Testing Features shape: ', app_test.shape)

#Handle anomalies
# Create an anomalous flag column
app_train['DAYS_EMPLOYED_ANOM'] = app_train["DAYS_EMPLOYED"] == 365243

# Replace the anomalous values with nan
app_train['DAYS_EMPLOYED'].replace({365243: np.nan}, inplace = True)

app_train['DAYS_EMPLOYED'].plot.hist(title = 'Days Employment Histogram');
plt.xlabel('Days Employment');

app_test['DAYS_EMPLOYED_ANOM'] = app_test["DAYS_EMPLOYED"] == 365243
app_test["DAYS_EMPLOYED"].replace({365243: np.nan}, inplace = True)

print('There are %d anomalies in the test data out of %d entries' % (app_test["DAYS_EMPLOYED_ANOM"].sum(), len(app_test)))

#correlations
# Find correlations with the target and sort
correlations = app_train.corr()['TARGET'].sort_values()

# Display correlations
print('Most Positive Correlations:\n', correlations.tail(15))
print('\nMost Negative Correlations:\n', correlations.head(15))

# Find the correlation of the positive days since birth and target
app_train['DAYS_BIRTH'] = abs(app_train['DAYS_BIRTH'])
app_train['DAYS_BIRTH'].corr(app_train['TARGET'])

# Set the style of plots
plt.style.use('fivethirtyeight')

# Plot the distribution of ages in years
plt.hist(app_train['DAYS_BIRTH'] / 365, edgecolor = 'k', bins = 25)
plt.title('Age of Client'); plt.xlabel('Age (years)'); plt.ylabel('Count');

plt.figure(figsize = (10, 8))

# KDE plot of loans that were repaid on time
sns.kdeplot(app_train.loc[app_train['TARGET'] == 0, 'DAYS_BIRTH'] / 365, label = 'target == 0')

# KDE plot of loans which were not repaid on time
sns.kdeplot(app_train.loc[app_train['TARGET'] == 1, 'DAYS_BIRTH'] / 365, label = 'target == 1')

# Labeling of plot
plt.xlabel('Age (years)'); plt.ylabel('Density'); plt.title('Distribution of Ages');

# Age information into a separate dataframe
age_data = app_train[['TARGET', 'DAYS_BIRTH']]
age_data['YEARS_BIRTH'] = age_data['DAYS_BIRTH'] / 365

# Bin the age data
age_data['YEARS_BINNED'] = pd.cut(age_data['YEARS_BIRTH'], bins = np.linspace(20, 70, num = 11))
age_data.head(10)

# Group by the bin and calculate averages
age_groups  = age_data.groupby('YEARS_BINNED').mean()
age_groups

plt.figure(figsize = (8, 8))

# Graph the age bins and the average of the target as a bar plot
plt.bar(age_groups.index.astype(str), 100 * age_groups['TARGET'])

# Plot labeling
plt.xticks(rotation = 75); plt.xlabel('Age Group (years)'); plt.ylabel('Failure to Repay (%)')
plt.title('Failure to Repay by Age Group');

# Extract the EXT_SOURCE variables and show correlations with TARGET
ext_data = app_train[['TARGET', 'EXT_SOURCE_1', 'EXT_SOURCE_2', 'EXT_SOURCE_3', 'DAYS_BIRTH']]
ext_data_corrs = ext_data.corr()
ext_data_corrs

plt.figure(figsize = (8, 6))

# Heatmap of correlations
sns.heatmap(ext_data_corrs, cmap = plt.cm.RdYlBu_r, vmin = -0.25, annot = True, vmax = 0.6)
plt.title('Correlation Heatmap');

plt.figure(figsize = (10, 12))

# iterate through the sources
for i, source in enumerate(['EXT_SOURCE_1', 'EXT_SOURCE_2', 'EXT_SOURCE_3']):

    # create a new subplot for each source
    plt.subplot(3, 1, i + 1)
    # plot repaid loans
    sns.kdeplot(app_train.loc[app_train['TARGET'] == 0, source], label = 'target == 0')
    # plot loans that were not repaid
    sns.kdeplot(app_train.loc[app_train['TARGET'] == 1, source], label = 'target == 1')

    # Label the plots
    plt.title('Distribution of %s by Target Value' % source)
    plt.xlabel('%s' % source); plt.ylabel('Density');

plt.tight_layout(h_pad = 2.5)

# Pairs plot of the `EXT_SOURCE` variables and the `DAYS_BIRTH` variable
# Copy the data for plotting
plot_data = ext_data.drop(columns = ['DAYS_BIRTH']).copy()

# Add in the age of the client in years
plot_data['YEARS_BIRTH'] = age_data['YEARS_BIRTH']

# Drop na values and limit to first 100000 rows
plot_data = plot_data.dropna().loc[:100000, :]

# Function to calculate correlation coefficient between two columns
def corr_func(x, y, **kwargs):
    r = np.corrcoef(x, y)[0][1]
    ax = plt.gca()
    ax.annotate("r = {:.2f}".format(r),
                xy=(.2, .8), xycoords=ax.transAxes,
                size = 20)

# Create the pairgrid object
grid = sns.PairGrid(data = plot_data, size = 3, diag_sharey=False,
                    hue = 'TARGET',
                    vars = [x for x in list(plot_data.columns) if x != 'TARGET'])

# Upper is a scatter plot
grid.map_upper(plt.scatter, alpha = 0.2)

# Diagonal is a histogram
grid.map_diag(sns.kdeplot)

# Bottom is density plot
grid.map_lower(sns.kdeplot, cmap = plt.cm.OrRd_r);

plt.suptitle('Ext Source and Age Features Pairs Plot', size = 32, y = 1.05);

# Identify polynomial features
# Make a new dataframe for polynomial features
poly_features = app_train[['EXT_SOURCE_1', 'EXT_SOURCE_2', 'EXT_SOURCE_3', 'DAYS_BIRTH', 'TARGET']]
poly_features_test = app_test[['EXT_SOURCE_1', 'EXT_SOURCE_2', 'EXT_SOURCE_3', 'DAYS_BIRTH']]

# imputer for handling missing values
from sklearn.preprocessing import Imputer
imputer = Imputer(strategy = 'median')

poly_target = poly_features['TARGET']

poly_features = poly_features.drop(columns = ['TARGET'])

# Need to impute missing values
poly_features = imputer.fit_transform(poly_features)
poly_features_test = imputer.transform(poly_features_test)

from sklearn.preprocessing import PolynomialFeatures

# Create the polynomial object with specified degree
poly_transformer = PolynomialFeatures(degree = 3)

# Train the polynomial features
poly_transformer.fit(poly_features)

# Transform the features
poly_features = poly_transformer.transform(poly_features)
poly_features_test = poly_transformer.transform(poly_features_test)
print('Polynomial Features shape: ', poly_features.shape)

poly_transformer.get_feature_names(input_features = ['EXT_SOURCE_1', 'EXT_SOURCE_2', 'EXT_SOURCE_3', 'DAYS_BIRTH'])[:15]
# Create a dataframe of the features
poly_features = pd.DataFrame(poly_features,
                             columns = poly_transformer.get_feature_names(['EXT_SOURCE_1', 'EXT_SOURCE_2',
                                                                           'EXT_SOURCE_3', 'DAYS_BIRTH']))

# Add in the target
poly_features['TARGET'] = poly_target

# Find the correlations with the target
poly_corrs = poly_features.corr()['TARGET'].sort_values()

# Display most negative and most positive
print(poly_corrs.head(10))
print(poly_corrs.tail(5))

# Put test features into dataframe
poly_features_test = pd.DataFrame(poly_features_test,
                                  columns = poly_transformer.get_feature_names(['EXT_SOURCE_1', 'EXT_SOURCE_2',
                                                                                'EXT_SOURCE_3', 'DAYS_BIRTH']))

# Merge polynomial features into training dataframe
poly_features['SK_ID_CURR'] = app_train['SK_ID_CURR']
app_train_poly = app_train.merge(poly_features, on = 'SK_ID_CURR', how = 'left')

# Merge polnomial features into testing dataframe6
poly_features_test['SK_ID_CURR'] = app_test['SK_ID_CURR']
app_test_poly = app_test.merge(poly_features_test, on = 'SK_ID_CURR', how = 'left')

# Align the dataframes
app_train_poly, app_test_poly = app_train_poly.align(app_test_poly, join = 'inner', axis = 1)

# Print out the new shapes
print('Training data with polynomial features shape: ', app_train_poly.shape)
print('Testing data with polynomial features shape:  ', app_test_poly.shape)

#LOGISTIC REGRESSION
from sklearn.preprocessing import MinMaxScaler, Imputer

# Drop the target from the training data
if 'TARGET' in app_train:
    train = app_train.drop(columns = ['TARGET'])
else:
    train = app_train.copy()

# Feature names
features = list(train.columns)

# Copy of the testing data
test = app_test.copy()

# Median imputation of missing values
imputer = Imputer(strategy = 'median')

# Scale each feature to 0-1
scaler = MinMaxScaler(feature_range = (0, 1))

# Fit on the training data
imputer.fit(train)

# Transform both training and testing data
train = imputer.transform(train)
test = imputer.transform(app_test)

# Repeat with the scaler
scaler.fit(train)
train = scaler.transform(train)
test = scaler.transform(test)

print('Training data shape: ', train.shape)
print('Testing data shape: ', test.shape)

from sklearn.linear_model import LogisticRegression

# Make the model with the specified regularization parameter
log_reg = LogisticRegression(C = 0.0001)

# Train on the training data
log_reg.fit(train, train_labels)

# Make predictions
# Make sure to select the second column only
log_reg_pred = log_reg.predict_proba(test)[:, 1]

# Submission dataframe
submit = app_test[['SK_ID_CURR']]
submit['TARGET'] = log_reg_pred

submit.head()

# Save the submission to a csv file
submit.to_csv('log_reg_baseline.csv', index = False)

#LIGHT GRADIENT BOOSTING MACHINE

from sklearn.model_selection import KFold
from sklearn.metrics import roc_auc_score
import lightgbm as lgb
import gc

def model(features, test_features, encoding = 'ohe', n_folds = 5):

    #Train and test a light gradient boosting model using cross validation.
    # Extract the ids
    train_ids = features['SK_ID_CURR']
    test_ids = test_features['SK_ID_CURR']

    # Extract the labels for training
    labels = features['TARGET']

    # Remove the ids and target
    features = features.drop(columns = ['SK_ID_CURR', 'TARGET'])
    test_features = test_features.drop(columns = ['SK_ID_CURR'])

    # One Hot Encoding
    if encoding == 'ohe':
        features = pd.get_dummies(features)
        test_features = pd.get_dummies(test_features)

        # Align the dataframes by the columns
        features, test_features = features.align(test_features, join = 'inner', axis = 1)

        # No categorical indices to record
        cat_indices = 'auto'

    # Integer label encoding
    elif encoding == 'le':

        # Create a label encoder
        label_encoder = LabelEncoder()

        # List for storing categorical indices
        cat_indices = []

        # Iterate through each column
        for i, col in enumerate(features):
            if features[col].dtype == 'object':
                # Map the categorical features to integers
                features[col] = label_encoder.fit_transform(np.array(features[col].astype(str)).reshape((-1,)))
                test_features[col] = label_encoder.transform(np.array(test_features[col].astype(str)).reshape((-1,)))

                # Record the categorical indices
                cat_indices.append(i)

    # Catch error if label encoding scheme is not valid
    else:
        raise ValueError("Encoding must be either 'ohe' or 'le'")

    print('Training Data Shape: ', features.shape)
    print('Testing Data Shape: ', test_features.shape)

    # Extract feature names
    feature_names = list(features.columns)

    # Convert to np arrays
    features = np.array(features)
    test_features = np.array(test_features)

    # Create the kfold object
    k_fold = KFold(n_splits = n_folds, shuffle = True, random_state = 50)

    # Empty array for feature importances
    feature_importance_values = np.zeros(len(feature_names))

    # Empty array for test predictions
    test_predictions = np.zeros(test_features.shape[0])

    # Empty array for out of fold validation predictions
    out_of_fold = np.zeros(features.shape[0])

    # Lists for recording validation and training scores
    valid_scores = []
    train_scores = []

    # Iterate through each fold
    for train_indices, valid_indices in k_fold.split(features):

        # Training data for the fold
        train_features, train_labels = features[train_indices], labels[train_indices]
        # Validation data for the fold
        valid_features, valid_labels = features[valid_indices], labels[valid_indices]

        # Create the model
        model = lgb.LGBMClassifier(n_estimators=10000, objective = 'binary',
                                   class_weight = 'balanced', learning_rate = 0.05,
                                   reg_alpha = 0.1, reg_lambda = 0.1,
                                   subsample = 0.8, n_jobs = -1, random_state = 50)

        # Train the model
        model.fit(train_features, train_labels, eval_metric = 'auc',
                  eval_set = [(valid_features, valid_labels), (train_features, train_labels)],
                  eval_names = ['valid', 'train'], categorical_feature = cat_indices,
                  early_stopping_rounds = 100, verbose = 200)

        # Record the best iteration
        best_iteration = model.best_iteration_

        # Record the feature importances
        feature_importance_values += model.feature_importances_ / k_fold.n_splits

        # Make predictions
        test_predictions += model.predict_proba(test_features, num_iteration = best_iteration)[:, 1] / k_fold.n_splits

        # Record the out of fold predictions
        out_of_fold[valid_indices] = model.predict_proba(valid_features, num_iteration = best_iteration)[:, 1]

        # Record the best score
        valid_score = model.best_score_['valid']['auc']
        train_score = model.best_score_['train']['auc']

        valid_scores.append(valid_score)
        train_scores.append(train_score)

        # Clean up memory
        gc.enable()
        del model, train_features, valid_features
        gc.collect()

    # Make the submission dataframe
    submission = pd.DataFrame({'SK_ID_CURR': test_ids, 'TARGET': test_predictions})

    # Make the feature importance dataframe
    feature_importances = pd.DataFrame({'feature': feature_names, 'importance': feature_importance_values})

    # Overall validation score
    valid_auc = roc_auc_score(labels, out_of_fold)

    # Add the overall scores to the metrics
    valid_scores.append(valid_auc)
    train_scores.append(np.mean(train_scores))

    # Needed for creating dataframe of validation scores
    fold_names = list(range(n_folds))
    fold_names.append('overall')

    # Dataframe of validation scores
    metrics = pd.DataFrame({'fold': fold_names,
                            'train': train_scores,
                            'valid': valid_scores})

    return submission, feature_importances, metrics
submission, fi, metrics = model(app_train, app_test)
print('Baseline metrics')
print(metrics)
fi_sorted = plot_feature_importances(fi)
submission.to_csv('submit.csv', index = False)


Great list, and definitely seems doable (pun intended) by the end of the week.  Start with a basic, presentable app and add optional features as time permits.


@xavierlepretre
> Also, I would tend to merge the join and submit functions.
What is the rationale of separating them?

I thought it's a good idea to keep the move hashes away from the chain as much as possible. This way, as soon as player 2 joins, player 1 can submit his move and locks the deal.


Great breakdown of work.  Start with a basic, presentable app and add optional features, such as image uploading functionality, as time permits.

Make sure to set aside some time to practice your presentation as well.


там где используется `to_i` (или `to_f`) вызов `chomp` (`strip`) не нужен, т.к. `to_i` (или `to_f`) "все сделает сам"


@rob-Hitchens @xavierlepretre Thank you for your comments. New changes pushed for your review.


thank you 😄
(I don't quite understand it now but I'm sure you have thought it)


Great breakdown of work.  Start with a basic, presentable app and add optional features, such as multi-delete at once, as time permits.

Make sure to set aside some time to practice your presentation as well.


Please beware that MCFG_MSM5205_VCLK_CB is m_vck_legacy_cb, not m_vck_cb.


Great breakdown of work.  Start with a basic, presentable app and add optional features, such as image uploading functionality, as time permits.  Don't be afraid to remove items from the list if you won't be able to complete them by the end of the week.

Make sure to set aside some time to practice your presentation as well.


про "чомп" писал выше


Great breakdown of work.  Start with a basic, presentable app and add optional features down in C ,D, and F priority as time permits.  Don't be afraid to remove items from the list if you won't be able to complete them by the end of the week.

Make sure to set aside some time to practice your presentation as well.


1.Timestamp (2 hours)
2.format the display of the items in a list (5 hours)
  *.......
  *.......
  *.......
3.Toggle ability (separate button, so it can make item from list to be completed )(4 hours)
  *(^)....
  *()....
  *(^)....
4.fix the layout(i will try to change the color of layout of page css related)( 2-3 hours)
5.delete confirmation(the window will pop out to ask user if he/she confirms to delete)(1 hour)
6.higlight certain items, mouse over.(1-2 hours);


Great breakdown of work.  Start with a basic, presentable app and add optional features, such as image upload functionality, as time permits.  Don't be afraid to remove items from the list if you won't be able to complete them by the end of the week.

Also, make sure to set aside some time to practice your presentation as well.


в ТЗ: "Также, если треугольник является при этом равнобедренным"
обрати внимание на "Также" - равнобедренность нужно проверять ТОЛЬКО, ЕСЛИ он прямоугольный
у тебя именно так и сделано ниже
НО!
для прямоугольного треугольника проверка должна быть гораздо проще (если он прямоугольный - нет смысла сравнивать все стороны)


Great breakdown of work.  Start with a basic, barebones, presentable app and add optional features, such as image upload functionality, as time permits.  Don't be afraid to remove items from the list if you won't be able to complete them by the end of the week.

Also, make sure to set aside some time to practice your presentation as well.


не рекомендуется использовать вложенные условия (`if / else` блоки), там где можно без потерь обойтись без них
чем более линеен код, тем он более читаем и тем легче его в дальнейшем менять (при необходимости), чем код более читаем и легко-модифицируем, тем выше считается его качество


That's actually a great question!

What we do here is make sure we don't accept session IDs that don't have a matching server-side record; that's the point of `session.use_strict_mode`. But the trick is that this doesn't "only" remove it from the `$_COOKIE` superglobal; it actually changes PHP's global state and makes it as if the cookie was never received and thus forcing the session handler to generate a new ID.

As a by-product of that, calling `_cookie_destroy()` here would be redundant, as the session handler will send an overwriting `Set-Cookie` header anyway. Though this was never really the point, as our goal here is to protect ourselves from a potentially compromised browser, not to interact with it.

See also: https://stackoverflow.com/a/42901457/468027


Yeah I do agree


избегай использования тернарного оператора "ни к месту"
обычно он усложняет чтение кода
его применение бывает удобным и легко читаемым, но в определенных контекстах
возможно самое распространенное и  удачное использование тернарника примерно такое:
```ruby
variable = some_condition ? value1 : value2
```


@jakogut Great progress. Feel free to make updates in Issue #267 ("ARM support"), so others can find this and test as well.

Regarding contributing back. If it's about exposing new APIs it doesn't need to be tested on all platforms (in most cases). Support for new features in tools also shouldn't be a problem. ARM support is welcome as well. But when it's about updating CEF version, that is a more complex task that I would prefer to do myself. If I accept CEF update then I need to support it and that can be time consuming since there are many examples, python versions and platforms to support. I look forward for a long time sponsorship, so I could devote more time to this project.


Nice feature breakdown for your app's MVP.  Make sure you start thinking a bit about what fun stuff you'd like to add and implement one feature at a time.

Also, make sure to set aside some time to practice your presentation as well.


попробуй избавиться здесь от вложенного тернарника - просто добавь еще одну ветвь в основной "иф-элс" блок


extra whitespace


Great breakdown of work.  Start with a basic, barebones, presentable app and add optional features, such as image upload functionality or drag and drop moving of items, as time permits.  Don't be afraid to move items further down the priority grade list if you won't be able to complete them by the end of the week.

Also, make sure to set aside some time to practice your presentation as well.


Great breakdown of work.  Start with a basic, barebones, presentable app and add optional features, such as pagination, as time permits.  Don't be afraid to remove items from the list if you won't be able to complete them by the end of the week.

Also, make sure to set aside some time to practice your presentation as well.


Excuse me... hwat the fcks


just comment out the updateUi line and uncomment the line above it, mAdapter.addAll(earthquakes);
...mfana ibaga o! (no problem o!)


thanks, it's clear my attention level isn't high enough right now. Time to take a break :)


Great breakdown of your basic MVP.  Start thinking about additional features you might want to add if time permits.

Also, make sure to set aside some time to practice your presentation as well.


в формулах (здесь и ниже) ошибка - не хватает скобок в знаменателе


I suspect the returned `Token` needn’t be nullable here. On the Go side, `nil` is used solely to signal end of stream, for lack of `IEnumerable`/`IEnumerator`.


Great breakdown of work.  Start with a basic, barebones, presentable app and add optional features, such as autocomplete, as time permits.  Don't be afraid to remove items from the list if you won't be able to complete them by the end of the week.

Also, make sure to set aside some time to practice your presentation as well.


правильней писать код ветки на следующей строчке после `else`


Created multidev environment [sfgov#ci-1466](https://dashboard.pantheon.io/sites/91d50373-c4cf-40e4-a646-cb73e16a140c#ci-1466).

[![Visit Site](https://raw.githubusercontent.com/pantheon-systems/ci-drops-8/0.1.0/data/img/visit-site-36.png)](https://ci-1466-sfgov.pantheonsite.io/)


Great breakdown of work.  Start with a basic, barebones, presentable app and add optional features, such as image upload functionality, as time permits.  Don't be afraid to remove / not implement items from the list if you won't be able to complete them by the end of the week.  MVP first, cool stuff second.

Also, make sure to set aside some time to practice your presentation as well.


Created multidev environment [next50#ci-173](https://dashboard.pantheon.io/sites/8e7c33cd-c6bd-4dcf-a71d-f1ade4f2e791#ci-173).

[![Visit Site](https://raw.githubusercontent.com/pantheon-systems/ci-drops-8/0.1.0/data/img/visit-site-36.png)](https://ci-173-next50.pantheonsite.io/)


Yea, the build script outputs this folder. I can remove if it's unwanted or confusing.


Great breakdown of work.  Start with a basic, barebones, presentable app and add optional features, such as image upload functionality, as time permits.  Don't be afraid to remove items from the list if you won't be able to complete them by the end of the week.

Also, make sure to set aside some time to practice your presentation as well.


Bacana Wolf!
Depois preciso tirar algumas dúvidas no código. Abs


I was debating on naming. ShowMemory makes it sound like a bool, which it isn't. Although maybe it should be? And the memory output would be both raw and % like discussed, no way to tune. That may be ok, and provide less confusion until someone asks for the ability to change


Because Trakt scrobbling is in another section, and you can't reference other sections, so it was perpetually disabled.


It appears all drivers touched here now have initial resolution of 100x100.  Pretty sure this is incorrect.


Revertir cambios


Same question here. :)