If I `writeGlobalFileStream` a file in one job, and return the ID, will the ID I get as a return value have the size filled in by the time the next job (or the promised requirement) looks at it?


`show_` - избыточно, лучше без префикса


I think the intention here was to also make the length unbounded, 0 representing that. But it should really be added to the comment above, for clarity.


> ###### Originally posted 2017-01-17 16:55 by [Zopieux](https://bitbucket.org/Zopieux/) on Bitbucket

You forgot to add `camisole-languages` as the only optdepends :3


> ###### Originally posted 2017-01-14 03:44 by [serialk](https://bitbucket.org/serialk/) on Bitbucket

`return type(x)(set(x))`?


> ###### Originally posted 2017-01-14 10:39 by [Zopieux](https://bitbucket.org/Zopieux/) on Bitbucket

sets are ordered now?


> ###### Originally posted 2017-02-11 23:19 by [Zopieux](https://bitbucket.org/Zopieux/) on Bitbucket

Test comment please ignore.


> ###### Originally posted 2017-02-11 23:19 by [Zopieux](https://bitbucket.org/Zopieux/) on Bitbucket

Wow, much nested.


> ###### Originally posted 2017-02-11 23:19 by [Zopieux](https://bitbucket.org/Zopieux/) on Bitbucket

Very deep wow.


> ###### Originally posted 2016-09-16 16:39 by [Zopieux](https://bitbucket.org/Zopieux/) on Bitbucket

What about `m = (l.strip() for l in f)`


> ###### Originally posted 2016-09-13 18:21 by [Zopieux](https://bitbucket.org/Zopieux/) on Bitbucket

I guess this will never happen, but if a lang class inherits from another, the "nested" lang will not appear in `Lang.__subclasses__`; recursion is needed.


> ###### Originally posted 2016-09-13 18:23 by [serialk](https://bitbucket.org/serialk/) on Bitbucket

Yeah but it's either that or adding manually a registering mechanism.


> ###### Originally posted 2016-03-09 09:25 by [Zopieux](https://bitbucket.org/Zopieux/) on Bitbucket

Redirecting `stderr` on `stdout`…


> ###### Originally posted 2016-03-09 09:25 by [Zopieux](https://bitbucket.org/Zopieux/) on Bitbucket

… then returning both `stderr` and `stdout`.


> ###### Originally posted 2016-03-03 15:34 by [Zopieux](https://bitbucket.org/Zopieux/) on Bitbucket

Either:

* provide a way to rename the Java class according to the random file name (implies parsing the Java code…)
* provide a way to set the filename to `Main.java` before compilation


> ###### Originally posted 2016-03-03 15:40 by [Zopieux](https://bitbucket.org/Zopieux/) on Bitbucket

Why not `Cpp`?


Spaces :-)


So you think it is better to leave this behavior and [a workaround gym](https://github.com/openai/gym/blob/c4321c27913e71c0b343163e40e70789600b9341/gym/envs/atari/atari_env.py#L87)? I do not understand...


after recompiling everything it seems to work. thx


It makes the parser tolerant of non-strict code, which is totally legal in Node modules, for better or worse. I don't think it should be the role of Reify to complain if you violate strict mode rules. One possible improvement: detect if `code` contains `"use strict"` and respect that choice.


develop (EnergyArchmage) - x86_64-Linux-Ubuntu-14.04-cppcheck-1.61: OK (0 of 0 tests passed, 0 test warnings)

![Build Badge](http://img.shields.io/badge/build%20status-passing-green.png)


Fix this!


Thanx dudes! 'twas an adventure again.


Turns out the problem was with cirrus being hidden when the easter egg was being added: ddefb8f41dc5e6fd740b4f024cd6fb13e54ab43b


but you changed the package structure into something like main.java.de.robo... I think. What does this main.java mean? and how can it be in the folder structure but not in the package structure of the classes?


``writeGlobalFileStream`` does not return a FileID object but what you are describing works with ``writeGlobalFile``. Size is actually filled in as soon as it is the function returns.


ok, good to know ...


Inherited from here: https://github.com/benjamn/reify/blob/94de68c2becf5f3cd46b5ad02e2b2febd57fa88e/lib/parsers/acorn.js#L16


А если в будущем какие-нибудь новый тип появится, для перевозки скотины, например - ещё один метод писать? Но они все будут очень похожими. Сделай один метод, который в качестве аргумента будет принимать тип поезда.


> ###### Originally posted 2017-01-17 16:55 by [Zopieux](https://bitbucket.org/Zopieux/) on Bitbucket

You forgot to add `camisole-languages` as the only optdepends :3


> ###### Originally posted 2017-01-14 03:44 by [serialk](https://bitbucket.org/serialk/) on Bitbucket

`return type(x)(set(x))`?


> ###### Originally posted 2017-01-14 10:39 by [Zopieux](https://bitbucket.org/Zopieux/) on Bitbucket

sets are ordered now?


> ###### Originally posted 2017-02-11 23:19 by [Zopieux](https://bitbucket.org/Zopieux/) on Bitbucket

Test comment please ignore.


> ###### Originally posted 2017-02-11 23:19 by [Zopieux](https://bitbucket.org/Zopieux/) on Bitbucket

Wow, much nested.


> ###### Originally posted 2017-02-11 23:19 by [Zopieux](https://bitbucket.org/Zopieux/) on Bitbucket

Very deep wow.


> ###### Originally posted 2016-09-16 16:39 by [Zopieux](https://bitbucket.org/Zopieux/) on Bitbucket

What about `m = (l.strip() for l in f)`


> ###### Originally posted 2016-09-13 18:21 by [Zopieux](https://bitbucket.org/Zopieux/) on Bitbucket

I guess this will never happen, but if a lang class inherits from another, the "nested" lang will not appear in `Lang.__subclasses__`; recursion is needed.


> ###### Originally posted 2016-09-13 18:23 by [serialk](https://bitbucket.org/serialk/) on Bitbucket

Yeah but it's either that or adding manually a registering mechanism.


> ###### Originally posted 2016-03-09 09:25 by [Zopieux](https://bitbucket.org/Zopieux/) on Bitbucket

Redirecting `stderr` on `stdout`…


> ###### Originally posted 2016-03-09 09:25 by [Zopieux](https://bitbucket.org/Zopieux/) on Bitbucket

… then returning both `stderr` and `stdout`.


> ###### Originally posted 2016-03-03 15:34 by [Zopieux](https://bitbucket.org/Zopieux/) on Bitbucket

Either:

* provide a way to rename the Java class according to the random file name (implies parsing the Java code…)
* provide a way to set the filename to `Main.java` before compilation


> ###### Originally posted 2016-03-03 15:40 by [Zopieux](https://bitbucket.org/Zopieux/) on Bitbucket

Why not `Cpp`?


Tu peux nous expliquer un peu comment tu as procédé ?  @davidmilIs


Maven supports the usage of different source types, the package for java sources should start from the /src/main/java folder. Just revert the commit and keep the original package.


Matlab model of a combined PV thermoelectric system.


This is weird. I had to add LD_LIBRARY_PATH parameter to profile.d/cuda.sh.
Otherwise, cuda enabled devices would not know the library PATH. I guess
that maybe in our environment, these parameters has got defined somewhere
else historically. Can you please echo $LD_LIBRARY_PATH in a regular bash
and see if this is defined?

In my systems, I had to include it in the profile.d directory. Also, it
should be safe to run profile.d scripts, since this was our point to define
all Relion environment there. It is rather a bug that other modules work
without running scripts from profile.d ....

On Fri, Mar 17, 2017 at 2:39 PM, darthweider <notifications@github.com>
wrote:

> Ah. I think it might just be gctf. I've been running autopick, 2d, 3d
> classification, and refinement on GPU without the bash command.
>
> On Fri, Mar 17, 2017 at 2:22 PM, kuybeda <notifications@github.com> wrote:
>
> > I've got cuda errors when running gctf. So it seems like any GPU based
> > module needs the login bash ...
> >
> > On Mar 17, 2017 2:09 PM, "darthweider" <notifications@github.com> wrote:
> >
> > > @kuybeda <https://github.com/kuybeda> bash -l only needs to be
> prepended
> > > for unblur_tbz. All other modules do not rely on profile.d environment
> > > variables.
> > >
> > > Until we need to, it might be safer to allow the other modules to run
> in
> > > standardized non-login shell environment.
> > >
> > > —
> > > You are receiving this because you were mentioned.
> > > Reply to this email directly, view it on GitHub
> > > <https://github.com/KryoEM/relion2/commit/
> 6a99fb22f400611bd4071de9eb1e07
> > c7ca2a3098#commitcomment-21376867>,
> > > or mute the thread
> > > <https://github.com/notifications/unsubscribe-auth/AWZRDUrluA0zYClY_
> > atE8bOzMUob2Zrmks5rmsw7gaJpZM4Mg7LC>
> > > .
> > >
> >
> > —
> > You are receiving this because you commented.
> > Reply to this email directly, view it on GitHub
> > <https://github.com/KryoEM/relion2/commit/6a99fb22f400611bd4071de9eb1e07
> c7ca2a3098#commitcomment-21377089>,
> > or mute the thread
> > <https://github.com/notifications/unsubscribe-auth/AGwLcO8avWo_
> XYAQDgPA4aU1pG4736Moks5rms9PgaJpZM4Mg7LC>
>
> > .
> >
>
> —
> You are receiving this because you were mentioned.
> Reply to this email directly, view it on GitHub
> <https://github.com/KryoEM/relion2/commit/6a99fb22f400611bd4071de9eb1e07c7ca2a3098#commitcomment-21377332>,
> or mute the thread
> <https://github.com/notifications/unsubscribe-auth/AWZRDVXncW-bYFognrGbpGfYQJnLOekpks5rmtNigaJpZM4Mg7LC>
> .
>


is not needed anymore


Switched 'labels' and 'inputs' in call to sampled_softmax because param placement has seemed to change. Current signature shown below:
tf.nn.sampled_softmax_loss(weights, biases, labels, inputs, num_sampled, num_classes, num_true=1, sampled_values=None, remove_accidental_hits=True, partition_strategy="mod", name="sampled_softmax_loss")


NewErrorWhenHoursShownInFirstColumnOfTable (JasonGlazer) - x86_64-Linux-Ubuntu-14.04-gcc-4.8: OK (2523 of 2523 tests passed, 0 test warnings)

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


add GPL license.


I can't do anything about that. I don't have any control over the spices website. I just help maintain this repository. Besides that, it's an internal variable. It's really just there so that the author's name appears on the spices website. I added the original_author field here, so that we'd at least have that information somewhere.


Есть какой-то глубинный смысл в присваивании значения этой переменной? ) Она же нигде не используется, да и не должна. Сразу возвращай значение


Bluemix [toolchain](https://console.ng.bluemix.net/devops/toolchains/760b25fe-63c3-433f-832d-83b9d565f14c "acmefreight-lw"): [Delivery Pipeline](https://console.ng.bluemix.net/devops/pipelines/ac59b818-6bdf-46c7-aa51-5304f612f166 "erp (prod)") deployed this commit to [logistics-wizard](https://console.ng.bluemix.net/apps/eb6b2068-d857-4fb1-b004-0f87aa234e30 "ibm:yp:us-south:rvennam@us.ibm.com:logistics-wizard")


show_ здесь тоже не лишнее


No problem. btw: most of changes I made are cosmetic. just to improve
readability.

17 марта 2017 г. 20:54 пользователь "Jakub Jirutka" <
notifications@github.com> написал:

Ok. I’d just reject this patch
<http://patchwork.alpinelinux.org/patch/3140/>, it mixes too many different
changes in a single patch, so it’s very hard to see what has been actually
changed. Also many changes are really not improvements.

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<https://github.com/alpinelinux/aports/commit/e07695e1581744e63bd459f7fa827f51c4d8dbf7#commitcomment-21377598>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AXacLvQKwI7HOEYkmm2pq6SROHE4Om2-ks5rmtbIgaJpZM4MgfUz>
.


@jimi-c I ran into this in one of my modules as well, but only sometimes -- is there a section in the plugin developer README that touches on this?


thanks for your message!

the way i did it (IIRC) was a bit hokey due to the way oF is implemented on Android... at the same time there are definitely use cases where this would be cool to have for the overall oF landscape...

let me think about it a bit and get back to you!


NewErrorWhenHoursShownInFirstColumnOfTable (JasonGlazer) - x86_64-Linux-Ubuntu-14.04-cppcheck-1.61: OK (0 of 0 tests passed, 0 test warnings)

![Build Badge](http://img.shields.io/badge/build%20status-passing-green.png)


чтобы не путаться с методами, возвращающими следующую и предыдущую станцию, назови эти методы forward и backward, например


Yes.


When we do create a separate package for kernel tan, the package name should be

```
@stdlib/math/base/special/kernel-tan
```
and the function name

```
kernelTan
```


хм, а нет ли у тебя метода, возвращающего следующую станцию? ;)


> ###### Originally posted 2017-01-17 16:55 by [Zopieux](https://bitbucket.org/Zopieux/) on Bitbucket

You forgot to add `camisole-languages` as the only optdepends :3


> ###### Originally posted 2017-01-14 03:44 by [serialk](https://bitbucket.org/serialk/) on Bitbucket

`return type(x)(set(x))`?


> ###### Originally posted 2017-01-14 10:39 by [Zopieux](https://bitbucket.org/Zopieux/) on Bitbucket

sets are ordered now?


> ###### Originally posted 2017-02-11 23:19 by [Zopieux](https://bitbucket.org/Zopieux/) on Bitbucket

Test comment please ignore.


> ###### Originally posted 2017-02-11 23:19 by [Zopieux](https://bitbucket.org/Zopieux/) on Bitbucket

Wow, much nested.


> ###### Originally posted 2017-02-11 23:19 by [Zopieux](https://bitbucket.org/Zopieux/) on Bitbucket

Very deep wow.


> ###### Originally posted 2016-09-16 16:39 by [Zopieux](https://bitbucket.org/Zopieux/) on Bitbucket

What about `m = (l.strip() for l in f)`


> ###### Originally posted 2016-09-13 18:21 by [Zopieux](https://bitbucket.org/Zopieux/) on Bitbucket

I guess this will never happen, but if a lang class inherits from another, the "nested" lang will not appear in `Lang.__subclasses__`; recursion is needed.


> ###### Originally posted 2016-09-13 18:23 by [serialk](https://bitbucket.org/serialk/) on Bitbucket

Yeah but it's either that or adding manually a registering mechanism.


> ###### Originally posted 2016-03-09 09:25 by [Zopieux](https://bitbucket.org/Zopieux/) on Bitbucket

Redirecting `stderr` on `stdout`…


> ###### Originally posted 2016-03-09 09:25 by [Zopieux](https://bitbucket.org/Zopieux/) on Bitbucket

… then returning both `stderr` and `stdout`.


ok I think I got this but how can I build the final jar file with maven to test the plugin?


> ###### Originally posted 2016-03-03 15:40 by [Zopieux](https://bitbucket.org/Zopieux/) on Bitbucket

Why not `Cpp`?


legit


develop (EnergyArchmage) - x86_64-Linux-Ubuntu-14.04-gcc-4.8-UnitTestsCoverage-Debug: OK (1287 of 1287 tests passed, 0 test warnings)

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


Hey Will - great solution here. I like the use of `.upto` as it's very descriptive for this solution. One piece of advice I'd like to offer is to practice breaking to new lines for your if/elsif/else lines of execution.

Yes, this technically adds more lines of code to your solution, but that almost doesn't matter here. What matters more is that your `if` statement is readable, plus this stays in line with Ruby style conventions.

```
1.upto(1000) do |i|
   if i % 3 == 0 and i % 5 == 0 and i % 7 == 0
      puts "SuperFizzBuzz"
   elsif i % 3 == 0 and i % 7 == 0
      puts "SuperFizz"
   elsif i % 5 == 0 and i % 7 == 0
      puts "SuperBuzz"
   elsif i % 3 == 0 and i % 5 == 0
      puts "FizzBuzz"
   elsif i % 3 == 0
      puts "Fizz"
   elsif i % 5 == 0
      puts "Buzz"
   elsif i % 7 == 0
      puts "Super"
   else
      puts i
   end
 end
```


What does `state.quiz[state.currentQuestion].choices` return ? You already have a pointer to current question no need to have two pointers


On my system those byte swaps consume about the half of forward pass time. So it is nice way to spend cpu time.


This one is correct and needs to stay.


Ihan totta. Muutan ton


cede


cd


Avoids loading type/assembly if it is never used.


Note: this is safe without a try..catch because `this.body` will never be a circular object


Да и зачем вообще эта переменная? Она везде только присваивается, но нигде не используется. Для отслеживания перемещения поезда по маршруту мы используем индекс станции,

А вот что надо сделать - это убрать поезд с текущей станции и поставить его на станцию, куда едет поезд. Вот в этом случае текущая станция может понадобится :)


![image](https://cloud.githubusercontent.com/assets/3065949/24066772/6e774868-0b43-11e7-9635-836666a0a764.png)

i.e. we don't have to worry about that ^^^


> ###### Originally posted 2017-01-17 16:55 by [Zopieux](https://bitbucket.org/Zopieux/) on Bitbucket

You forgot to add `camisole-languages` as the only optdepends :3


> ###### Originally posted 2017-01-14 03:44 by [serialk](https://bitbucket.org/serialk/) on Bitbucket

`return type(x)(set(x))`?


> ###### Originally posted 2017-01-14 10:39 by [Zopieux](https://bitbucket.org/Zopieux/) on Bitbucket

sets are ordered now?


> ###### Originally posted 2017-02-11 23:19 by [Zopieux](https://bitbucket.org/Zopieux/) on Bitbucket

Test comment please ignore.


> ###### Originally posted 2017-02-11 23:19 by [Zopieux](https://bitbucket.org/Zopieux/) on Bitbucket

Wow, much nested.


> ###### Originally posted 2017-02-11 23:19 by [Zopieux](https://bitbucket.org/Zopieux/) on Bitbucket

Very deep wow.


Meh... they seemed like things that *could* be useful to *someone*...

I can take them down if you want.

> How about adding a "plugin" that links to a short page describing how to add this to a theme?

Sounds more like a cookbook topic, but I feel like it would mostly just point to Facebook's own [Comments Plugin/Code Generator](https://developers.facebook.com/docs/plugins/comments/) Page (and, maybe that's *okay* for a cookbook entry).  I'll come back to this idea in a moment though. (Stay tuned until the very end!)

>  Webservers can do this way better

But rewrite rules are *hard*.  ...though, technically, they wouldn't be if you were just redirecting pages 1:1 in the same manner as this plugin. :unamused:

I feel like it's something that could be done better too... like with a "redirect" metadata field on the individual pages themselves, instead of an external list.

> Most users would probably be satisfied by less "magic" by specifying the share image manually

Actually, this plugin allows that... but everything else is still generated by "magic". :sweat:

> Doing this manually doesn't require a plugin at all, just Twig.

Indeed, NotePaper has both Facebook comments and Open Graph, and as you know, there's no php there. :wink:

So... I'm definitely not *advocating* for these plugins.  I just added them because I saw them get added to the wiki and they seemed at least *semi*-useful.

They'd probably make better cookbook topics than plugins though.  I'll take these entries down in a bit.

---

As a quick aside, I haven't actually been testing any of the themes that (@)BesrourMS has been porting.  The screenshots are always of the original versions' live demos... :sweat_smile:

I know that they *probably* aren't of the quality I would put out, but I'm a bit of a perfectionist so I try not to judge much :confused:.  For example though, I see a lot of "replace the image files in the themes folder" kind of stuff, where I would probably go the "add your urls to the YAML header or config" route.

So... I'm just *assuming* that they've got all the bits and pieces they need to work properly.  Also... I think he's figured out that he can get away with not making a website submission because I'll end up doing it for him. :disappointed:

---

So... I had a thought up above.  A halfway compromise to your *Facebook comments as a "plugin"* idea.

What if we structured the cookbook as another WebPaint portfolio?

The tiles work well enough for plugins, which are usually too abstract to screenshot, and I feel like we could find more things to screenshot with the cookbook anyway.

Obviously the pop-ups for this would use the same layout as the plugins, not the themes.  This would provide a lot of room for the content, but still feel like a snippet instead of an entire page.

Just something to think about for the future. :wink:


Great solution here, Will. I have a few things you can rework/refactor.

Similar to my advice on your superfizz solution, all executable code in your if statements should be broken to a new line. One thing to remember with that is that the `else` branch never takes in a condition. It's like a catch-all for failed-to-be-met conditions above it. Thusly, it should always live on its own line. Line 15 of your solution would then look like:

```
else
    ready_to_quit = true
    puts "THANK YOU FOR CALLING!"
```

Also be careful with `=` vs `==`.  `=` is defining or redefining a value; `==` is checking equality. It looks like on line 18, you'd want to use `==` instead.


You can use wildcard (`*`) in `.gitignore`.


Those changes never been pushed!


Thanks. You make my day. :sunglasses:


Probably going to have to do something about performance soon. This is starting to get pretty slow on older servers.


@zacker-22 ruined the English on purpose !


ok thank


anyone know why arena not work? I tried several pc, some of them not work, some of them work


Looks like I forgot to do a commit after enabling the "Climb assist module"


Ah, yes, you're right: it shouldn't continue to wait if the socket is explicitly closed.  Thanks for the correction!


Weird, I think httpbin.org must have upgraded recently, because I'm getting different response behavior.


英語が駄目駄目な私がいうのもなんですが(合っている保証もないです)

`OpenFlow v1.0/v1.2/v1.3,`とありますが

`OpenFlow v1.0, v1.2 and v1.3,`
もしくは
`OpenFlow v1.3 or earlier,`

と書くことが一般的なのかもしれません。


Bluemix [toolchain](https://console.ng.bluemix.net/devops/toolchains/db7468e4-75af-4c93-8a0b-1a6ccd73cdf5 "IAmAma"): [Delivery Pipeline](https://console.ng.bluemix.net/devops/pipelines/67650d37-3fff-426a-9ce9-78b86750a60b "IAmAma") deployed this commit to [dev](https://console.ng.bluemix.net/apps/b31920d4-9b08-4352-b441-8a9de9f2ae26 "ibm:yp:us-south:Ramustha Studio:dev")


Yes, It's all fine.


@Counter-pain becoz of some setting in some pc
1.patch bluestack
2.reinstall graphic driver and use default setting


And yet, this demo could still be more minimal... removing FaviconsWebpackPlugin?


I think this is because Github creates a dangling commit by copying the current commit w/o parent etc. information and then tags it. Tagged dangling commits don't get garbage collected, and, AFAIK, this is one way linux kernel developers share their PGP public keys, they create a dangling commit with only their public key (or a collection/keyring of public keys) and then tag it.


Weird, the repo owner of httpbin just went through and closed all issues about 30 minutes ago: https://github.com/kennethreitz/httpbin/issues?q=is%3Aissue+is%3Aclosed+sort%3Aupdated-desc


Fixed #166


If there is an easier way to do that ? Like do you really need separate class for each button


kiva-init (EnergyArchmage) - x86_64-Linux-Ubuntu-14.04-gcc-4.8-IntegrationCoverage-Debug: OK (1884 of 1887 tests passed, 0 test warnings)

![Build Badge](http://img.shields.io/badge/build%20status-passing-green.png) ![Test Badge](http://img.shields.io/badge/tests%20passed-99.84%25-yellow.png) ![Coverage Badge](http://img.shields.io/badge/coverage%20status-71.45%25-green.png)


So you are pushing 0 or 0 into each array?.. Struggling to understand the further logic of what you are gonna do. But let's roll with it


ahaha yes ! :)


Okay, i will try it, colour problem that you suspect then.

On 17 Mar 2017 10:08 am, "dreammed" <notifications@github.com> wrote:

> @Counter-pain <https://github.com/Counter-pain> becoz of some setting in
> some pc
> 1.patch bluestack
> 2.reinstall graphic driver and use default setting
>
> —
> You are receiving this because you were mentioned.
> Reply to this email directly, view it on GitHub
> <https://github.com/dreammed/SevenKnightsAI/commit/5400b0351756863c8a50e1194c15ff3894c97133#commitcomment-21365254>,
> or mute the thread
> <https://github.com/notifications/unsubscribe-auth/ATP93HMH5n1jVUlSJGGhF5mU1QKICFDIks5rmfk4gaJpZM4MZIvj>
> .
>


Great changes! Thanks for taking this to the finish so quickly. =)


The following doc(s) have been deployed to the [testingplu](https://testingplu-static-docs.pantheonsite.io/docs) Multidev environment:
- [docs/terminus/plugins/create](https://testingplu-static-docs.pantheonsite.io/docs/terminus/plugins/create)


Nicely done.


Bluemix [toolchain](https://console.ng.bluemix.net/devops/toolchains/fbf12a03-0636-48ac-92bb-afd9ddc03855 "tim-au-nr1"): [Delivery Pipeline](https://console.ng.bluemix.net/devops/pipelines/95f7e388-5527-4491-afbb-8391dcaeb493 "tim-au-nr1") deployed this commit to [staging](https://console.ng.bluemix.net/apps/840e56bb-1149-48e3-a8c5-1856322231f2 "ibm:yp:us-south:tim-au:staging")


"installedOrNot", according to naming conventions.


Ok, thanks.


@sangd


NewErrorWhenHoursShownInFirstColumnOfTable (JasonGlazer) - Win64-Windows-7-VisualStudio-14: OK (2397 of 2487 tests passed, 1 test warnings)

 * 1 test had: ERR diffs.

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


Bluemix [toolchain](https://console.ng.bluemix.net/devops/toolchains/fbf12a03-0636-48ac-92bb-afd9ddc03855 "tim-au-nr1"): [Delivery Pipeline](https://console.ng.bluemix.net/devops/pipelines/95f7e388-5527-4491-afbb-8391dcaeb493 "tim-au-nr1") deployed this commit to [devopstest](https://console.ng.bluemix.net/apps/08f78930-3242-463c-8430-eff052b19faa "ibm:yp:us-south:tim-au:devopstest")


will return
```
{
"1":{
"id":"1",
"type":"taxonomies",
"attributes":{"created_at":"2017-03-09T06:17:40Z","updated_at":"2017-03-09T06:17:40Z","last_modified_user_id":null,"title":"Human rights body","tags_recommendations":true,"tags_measures":false},
"categories":11 // <= COUNT
},
"2":{
}
```


niceu commit m8
👍 👍 👍 👍 👍 👍 👍
🎉 🌮 🍰 🌵
👌


Yeah yeah haha

Is fixed now, forced push


`remove_if` doesn't actually remove anything. It just shuffles the elements around. Is this really what is needed here? The old code actually erased the disabled subscribers.


Clarification on timer subscriber handling.


Went home for the evening, thanks for taking care of this.


fixing bug on bundle file


dev configs for better testability


above will return something like
```
{
  6: {
    attributes:{...},
    categories:{         // <= first extend on categories
      59:{
        assigned: { ... },  // <= second extend on measure_categories, should currently return the table row but could be requested as bool
        attributes: { ... }
        id:"59"
        type:"categories"
      },
     ...
    }
  },
  ...
}


haha


你上面的
`d => new `
改成
`d => new AccountViewModel` 就好了


the above will return
{
"id":"66",
"type":"measures",
"attributes":{"created_at":"2017-03-16T00:47:25Z","updated_at":"2017-03-16T05:08:31Z","last_modified_user_id":"1","title":"all new action","description":"some descriptions ","draft":false},
"user":{    // <= extended user, reverse: true as "last_modified_user_id" is foreign key
  "id":"1",
  "type":"users",
  "attributes":{"created_at":"2017-03-09T06:18:23Z","updated_at":"2017-03-17T03:33:30Z","last_modified_user_id":"1","email":"admin@nmrf.com","name":"testadmin"
  }
}
}


True. You know - we gladly accept pull requests for things like this. :)


above is the most basic case, will return a rec list without yet looking for associations


Bluemix [toolchain](https://console.ng.bluemix.net/devops/toolchains/f8aca289-3f6a-4046-ac51-4d4c6c3264ef "tc-harimp-03social"): [Delivery Pipeline](https://console.ng.bluemix.net/devops/pipelines/90d53c47-87be-4f86-abbc-c89435db5db9 "tc-harimp-03social") deployed this commit to [dev](https://console.ng.bluemix.net/apps/bc964284-e30b-49b9-a037-69dc25865cd2 "ibm:yp:us-south:harry.harim.park:dev")


![](https://github.trello.services/images/mini-trello-icon.png) [Text](https://trello.com/c/aMdVrI2G/11-text)


single entity select...


can be extended by single entity, eg whats the user that modified it


The `getChart` method is in this file, not in this commit. You should download the repo and check it out.


I'd recommend you to do it using HTML. I tried it using chart canvas built in functions and it got a bit complex. I pushed it here so you can see: https://github.com/yannbf/ionic2-components/commit/828e8138b6598c69f5de53fc641cd13591a6301b#diff-b11c4bf9edf926854f67e25f8bd72d55R230


or extended by list of things, eg what are all the categories of specific taxonomy


Spacing.


the expensive selector, caches by passing in where as string


Semi colons


上記で提示しておいてなんですが、
よく考えたら、jsonのデータ変換を行うわけですから
`to_jsondict()`で一発でしたね。
そうなると、`bytes_to_str()`も不要？


select multiple entities...


lol


Good job me!!


here only allows extending by list of things, eg for all taxonomies, give me all categories

should also support single entities in the future if we can all get behind this flexible approach


 $event_loop_class = self::getEventLoopName();
变量命名不规范啊，这里都是驼峰法。。


new fork


không login được vào với account cũ tại https://easyadmincp.com.

F2, Debug thì thấy lỗi https://api.....  500, @vvthinh mỗi lần up gì mới, đã có test lại không vậy?


因為這是 Razor 你在 Web.config 加上的會對應到 ASPX 唷
第五天會講到怎麼讓它簡單一點，我還不確定要不要提早破哏


Use case 3


OpenVPN


Executing the daily benchmark build, I will reply here when finished:

@nanosoldier `runbenchmarks(ALL, isdaily = true)`


Bluemix [toolchain](https://console.ng.bluemix.net/devops/toolchains/db7468e4-75af-4c93-8a0b-1a6ccd73cdf5 "IAmAma"): [Delivery Pipeline](https://console.ng.bluemix.net/devops/pipelines/67650d37-3fff-426a-9ce9-78b86750a60b "IAmAma") deployed this commit to [dev](https://console.ng.bluemix.net/apps/b31920d4-9b08-4352-b441-8a9de9f2ae26 "ibm:yp:us-south:Ramustha Studio:dev")


При этом несоразмерно усложнится метод select_train.


*destroy ;)


This is the only place where `term` was used throughout the scraper, to construct a URL to the screen where party affiliations are scraped.  This function is only called by the lower chamber scraping function as each Representative's party affiliation is not present on the individual member screen.  So, `term` has been dropped throughout and the Texas scraper continues to only retrieve current legislators.


????

`.chooseDefault()` is meaningless; you already specified `.chooseSwitch(i)` for player 2.


Thanks to @divergentdave for the pointer to `self.latest_session()` so we can drop `term` from the scraper completely.


Mr chrisruk,I'm sorry to bother you, but is the freezegraph avilable ?
When tensor.py is running,it always say "ImportError: No module named freezegraph"
I'm a beginner, and I'm looking forward for your reply~


I went ahead and added a layer of indirection here to minimize edits and match the example NC code at the top level.


# Changes in D3 4.0

D3 4.0 is modular. Instead of one library, D3 is now [many small libraries](#table-of-contents) that are designed to work together. You can pick and choose which parts to use as you see fit. Each library is maintained in its own repository, allowing decentralized ownership and independent release cycles. The default bundle combines about thirty of these microlibraries.

```html
<script src="https://d3js.org/d3.v4.js"></script>
```

As before, you can load optional plugins on top of the default bundle, such as [ColorBrewer scales](https://github.com/d3/d3-scale-chromatic):

```html
<script src="https://d3js.org/d3.v4.js"></script>
<script src="https://d3js.org/d3-scale-chromatic.v0.3.js"></script>
```

You are not required to use the default bundle! If you’re just using [d3-selection](https://github.com/d3/d3-selection), use it as a standalone library. Like the default bundle, you can load D3 microlibraries using vanilla script tags or RequireJS (great for HTTP/2!):

```html
<script src="https://d3js.org/d3-selection.v1.js"></script>
```

You can also `cat` D3 microlibraries into a custom bundle, or use tools such as [Webpack](https://webpack.github.io/) and [Rollup](http://rollupjs.org/) to create [optimized bundles](https://bl.ocks.org/mbostock/bb09af4c39c79cffcde4). Custom bundles are great for applications that use a subset of D3’s features; for example, a React chart library might use D3 for scales and shapes, and React to manipulate the DOM. The D3 microlibraries are written as [ES6 modules](http://www.2ality.com/2014/09/es6-modules-final.html), and Rollup lets you pick at the symbol level to produce smaller bundles.

Small files are nice, but modularity is also about making D3 more *fun*. Microlibraries are easier to understand, develop and test. They make it easier for new people to get involved and contribute. They reduce the distinction between a “core module” and a “plugin”, and increase the pace of development in D3 features.

If you don’t care about modularity, you can mostly ignore this change and keep using the default bundle. However, there is one unavoidable consequence of adopting ES6 modules: every symbol in D3 4.0 now shares a flat namespace rather than the nested one of D3 3.x. For example, d3.scale.linear is now d3.scaleLinear, and d3.layout.treemap is now d3.treemap. The adoption of ES6 modules also means that D3 is now written exclusively in [strict mode](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode) and has better readability. And there have been many other significant improvements to D3’s features! (Nearly all of the code from D3 3.x has been rewritten.) These changes are covered below.

### Other Global Changes

The default [UMD bundle](https://github.com/umdjs/umd) is now [anonymous](https://github.com/requirejs/requirejs/wiki/Updating-existing-libraries#register-as-an-anonymous-module-). No `d3` global is exported if AMD or CommonJS is detected. In a vanilla environment, the D3 microlibraries share the `d3` global, even if you load them independently; thus, code you write is the same whether or not you use the default bundle. (See [Let’s Make a (D3) Plugin](https://bost.ocks.org/mike/d3-plugin/) for more.) The generated bundle is no longer stored in the Git repository; Bower has been repointed to [d3-bower](https://github.com/mbostock-bower/d3-bower), and you can find the generated files on [npm](https://unpkg.com/d3) or attached to the [latest release](https://github.com/d3/d3/releases/latest). The non-minified default bundle is no longer mangled, making it more readable and preserving inline comments.

To the consternation of some users, 3.x employed Unicode variable names such as λ, φ, τ and π for a concise representation of mathematical operations. A downside of this approach was that a SyntaxError would occur if you loaded the non-minified D3 using ISO-8859-1 instead of UTF-8. 3.x also used Unicode string literals, such as the SI-prefix µ for 1e-6. 4.0 uses only ASCII variable names and ASCII string literals (see [rollup-plugin-ascii](https://github.com/mbostock/rollup-plugin-ascii)), avoiding encoding problems.

### Table of Contents

* [Arrays](#arrays-d3-array)
* [Axes](#axes-d3-axis)
* [Brushes](#brushes-d3-brush)
* [Chords](#chords-d3-chord)
* [Collections](#collections-d3-collection)
* [Colors](#colors-d3-color)
* [Dispatches](#dispatches-d3-dispatch)
* [Dragging](#dragging-d3-drag)
* [Delimiter-Separated Values](#delimiter-separated-values-d3-dsv)
* [Easings](#easings-d3-ease)
* [Forces](#forces-d3-force)
* [Number Formats](#number-formats-d3-format)
* [Geographies](#geographies-d3-geo)
* [Hierarchies](#hierarchies-d3-hierarchy)
* [Internals](#internals)
* [Interpolators](#interpolators-d3-interpolate)
* [Paths](#paths-d3-path)
* [Polygons](#polygons-d3-polygon)
* [Quadtrees](#quadtrees-d3-quadtree)
* [Queues](#queues-d3-queue)
* [Random Numbers](#random-numbers-d3-random)
* [Requests](#requests-d3-request)
* [Scales](#scales-d3-scale)
* [Selections](#selections-d3-selection)
* [Shapes](#shapes-d3-shape)
* [Time Formats](#time-formats-d3-time-format)
* [Time Intervals](#time-intervals-d3-time)
* [Timers](#timers-d3-timer)
* [Transitions](#transitions-d3-transition)
* [Voronoi Diagrams](#voronoi-diagrams-d3-voronoi)
* [Zooming](#zooming-d3-zoom)

## [Arrays (d3-array)](https://github.com/d3/d3-array/blob/master/README.md)

The new [d3.scan](https://github.com/d3/d3-array/blob/master/README.md#scan) method performs a linear scan of an array, returning the index of the least element according to the specified comparator. This is similar to [d3.min](https://github.com/d3/d3-array/blob/master/README.md#min) and [d3.max](https://github.com/d3/d3-array/blob/master/README.md#max), except you can use it to find the position of an extreme element, rather than just calculate an extreme value.

```js
var data = [
  {name: "Alice", value: 2},
  {name: "Bob", value: 3},
  {name: "Carol", value: 1},
  {name: "Dwayne", value: 5}
];

var i = d3.scan(data, function(a, b) { return a.value - b.value; }); // 2
data[i]; // {name: "Carol", value: 1}
```

The new [d3.ticks](https://github.com/d3/d3-array/blob/master/README.md#ticks) and [d3.tickStep](https://github.com/d3/d3-array/blob/master/README.md#tickStep) methods are useful for generating human-readable numeric ticks. These methods are a low-level alternative to [*continuous*.ticks](https://github.com/d3/d3-scale/blob/master/README.md#continuous_ticks) from [d3-scale](https://github.com/d3/d3-scale). The new implementation is also more accurate, returning the optimal number of ticks as measured by relative error.

```js
var ticks = d3.ticks(0, 10, 5); // [0, 2, 4, 6, 8, 10]
```

The [d3.range](https://github.com/d3/d3-array/blob/master/README.md#range) method no longer makes an elaborate attempt to avoid floating-point error when *step* is not an integer. The returned values are strictly defined as *start* + *i* \* *step*, where *i* is an integer. (Learn more about [floating point math](http://0.30000000000000004.com/).) d3.range returns the empty array for infinite ranges, rather than throwing an error.

The method signature for optional accessors has been changed to be more consistent with array methods such as [*array*.forEach](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach): the accessor is passed the current element (*d*), the index (*i*), and the array (*data*), with *this* as undefined. This affects [d3.min](https://github.com/d3/d3-array/blob/master/README.md#min), [d3.max](https://github.com/d3/d3-array/blob/master/README.md#max), [d3.extent](https://github.com/d3/d3-array/blob/master/README.md#extent), [d3.sum](https://github.com/d3/d3-array/blob/master/README.md#sum), [d3.mean](https://github.com/d3/d3-array/blob/master/README.md#mean), [d3.median](https://github.com/d3/d3-array/blob/master/README.md#median), [d3.quantile](https://github.com/d3/d3-array/blob/master/README.md#quantile), [d3.variance](https://github.com/d3/d3-array/blob/master/README.md#variance) and [d3.deviation](https://github.com/d3/d3-array/blob/master/README.md#deviation). The [d3.quantile](https://github.com/d3/d3-array/blob/master/README.md#quantile) method previously did not take an accessor. Some methods with optional arguments now treat those arguments as missing if they are null or undefined, rather than strictly checking arguments.length.

The new [d3.histogram](https://github.com/d3/d3-array/blob/master/README.md#histograms) API replaces d3.layout.histogram. Rather than exposing *bin*.x and *bin*.dx on each returned bin, the histogram exposes *bin*.x0 and *bin*.x1, guaranteeing that *bin*.x0 is exactly equal to *bin*.x1 on the preceeding bin. The “frequency” and “probability” modes are no longer supported; each bin is simply an array of elements from the input data, so *bin*.length is equal to D3 3.x’s *bin*.y in frequency mode. To compute a probability distribution, divide the number of elements in each bin by the total number of elements.

The *histogram*.range method has been renamed [*histogram*.domain](https://github.com/d3/d3-array/blob/master/README.md#histogram_domain) for consistency with scales. The *histogram*.bins method has been renamed [*histogram*.thresholds](https://github.com/d3/d3-array/blob/master/README.md#histogram_thresholds), and no longer accepts an upper value: *n* thresholds will produce *n* + 1 bins. If you specify a desired number of bins rather than thresholds, d3.histogram now uses [d3.ticks](https://github.com/d3/d3-array/blob/master/README.md#ticks) to compute nice bin thresholds. In addition to the default Sturges’ formula, D3 now implements the [Freedman-Diaconis rule](https://github.com/d3/d3-array/blob/master/README.md#thresholdFreedmanDiaconis) and [Scott’s normal reference rule](https://github.com/d3/d3-array/blob/master/README.md#thresholdScott).

## [Axes (d3-axis)](https://github.com/d3/d3-axis/blob/master/README.md)

To render axes properly in D3 3.x, you needed to style them:

```html
<style>

.axis path,
.axis line {
  fill: none;
  stroke: #000;
  shape-rendering: crispEdges;
}

.axis text {
  font: 10px sans-serif;
}

</style>
<script>

d3.select(".axis")
    .call(d3.svg.axis()
        .scale(x)
        .orient("bottom"));

</script>
```

If you didn’t, you saw this:

D3 4.0 provides default styles and shorter syntax. In place of d3.svg.axis and *axis*.orient, D3 4.0 now provides four constructors for each orientation: [d3.axisTop](https://github.com/d3/d3-axis/blob/master/README.md#axisTop), [d3.axisRight](https://github.com/d3/d3-axis/blob/master/README.md#axisRight), [d3.axisBottom](https://github.com/d3/d3-axis/blob/master/README.md#axisBottom), [d3.axisLeft](https://github.com/d3/d3-axis/blob/master/README.md#axisLeft). These constructors accept a scale, so you can reduce all of the above to:

```html
<script>

d3.select(".axis")
    .call(d3.axisBottom(x));

</script>
```

And get this:

As before, you can customize the axis appearance either by applying stylesheets or by modifying the axis elements. The default appearance has been changed slightly to offset the axis by a half-pixel;  this fixes a crisp-edges rendering issue on Safari where the axis would be drawn two-pixels thick.

There’s now an [*axis*.tickArguments](https://github.com/d3/d3-axis/blob/master/README.md#axis_tickArguments) method, as an alternative to [*axis*.ticks](https://github.com/d3/d3-axis/blob/master/README.md#axis_ticks) that also allows the axis tick arguments to be inspected. The [*axis*.tickSize](https://github.com/d3/d3-axis/blob/master/README.md#axis_tickSize) method has been changed to only allow a single argument when setting the tick size. The *axis*.innerTickSize and *axis*.outerTickSize methods have been renamed [*axis*.tickSizeInner](https://github.com/d3/d3-axis/blob/master/README.md#axis_tickSizeInner) and [*axis*.tickSizeOuter](https://github.com/d3/d3-axis/blob/master/README.md#axis_tickSizeOuter), respectively.

## [Brushes (d3-brush)](https://github.com/d3/d3-brush/blob/master/README.md)

Replacing d3.svg.brush, there are now three classes of brush for brushing along the *x*-dimension, the *y*-dimension, or both: [d3.brushX](https://github.com/d3/d3-brush/blob/master/README.md#brushX), [d3.brushY](https://github.com/d3/d3-brush/blob/master/README.md#brushY), [d3.brush](https://github.com/d3/d3-brush/blob/master/README.md#brush). Brushes are no longer dependent on [scales](#scales-d3-scale); instead, each brush defines a selection in screen coordinates. This selection can be [inverted](https://github.com/d3/d3-scale/blob/master/README.md#continuous_invert) if you want to compute the corresponding data domain. And rather than rely on the scales’ ranges to determine the brushable area, there is now a [*brush*.extent](https://github.com/d3/d3-brush/blob/master/README.md#brush_extent) method for setting it. If you do not set the brush extent, it defaults to the full extent of the owner SVG element. The *brush*.clamp method has also been eliminated; brushing is always restricted to the brushable area defined by the brush extent.

Brushes no longer store the active brush selection (*i.e.*, the highlighted region; the brush’s position) internally. The brush’s position is now stored on any elements to which the brush has been applied. The brush’s position is available as *event*.selection within a brush event or by calling [d3.brushSelection](https://github.com/d3/d3-brush/blob/master/README.md#brushSelection) on a given *element*. To move the brush programmatically, use [*brush*.move](https://github.com/d3/d3-brush/blob/master/README.md#brush_move) with a given [selection](#selections-d3-selection) or [transition](#transitions-d3-transition); see the [brush snapping example](https://bl.ocks.org/mbostock/6232537). The *brush*.event method has been removed.

Brush interaction has been improved. By default, brushes now ignore right-clicks intended for the context menu; you can change this behavior using [*brush*.filter](https://github.com/d3/d3-brush/blob/master/README.md#brush_filter). Brushes also ignore emulated mouse events on iOS. Holding down SHIFT (⇧) while brushing locks the *x*- or *y*-position of the brush. Holding down META (⌘) while clicking and dragging starts a new selection, rather than translating the existing selection.

The default appearance of the brush has also been improved and slightly simplified. Previously it was necessary to apply styles to the brush to give it a reasonable appearance, such as:

```css
.brush .extent {
  stroke: #fff;
  fill-opacity: .125;
  shape-rendering: crispEdges;
}
```

These styles are now applied by default as attributes; if you want to customize the brush appearance, you can still apply external styles or modify the brush elements. (D3 4.0 features a similar improvement to [axes](#axes-d3-axis).) A new [*brush*.handleSize](https://github.com/d3/d3-brush/blob/master/README.md#brush_handleSize) method lets you override the brush handle size; it defaults to six pixels.

The brush now consumes handled events, making it easier to combine with other interactive behaviors such as [dragging](#dragging-d3-drag) and [zooming](#zooming-d3-zoom). The *brushstart* and *brushend* events have been renamed to *start* and *end*, respectively. The brush event no longer reports a *event*.mode to distinguish between resizing and dragging the brush.

## [Chords (d3-chord)](https://github.com/d3/d3-chord/blob/master/README.md)

Pursuant to the great namespace flattening:

* d3.layout.chord ↦ [d3.chord](https://github.com/d3/d3-chord/blob/master/README.md#chord)
* d3.svg.chord ↦ [d3.ribbon](https://github.com/d3/d3-chord/blob/master/README.md#ribbon)

For consistency with [*arc*.padAngle](https://github.com/d3/d3-shape/blob/master/README.md#arc_padAngle), *chord*.padding has also been renamed to [*ribbon*.padAngle](https://github.com/d3/d3-chord/blob/master/README.md#ribbon_padAngle). A new [*ribbon*.context](https://github.com/d3/d3-chord/blob/master/README.md#ribbon_context) method lets you render chord diagrams to Canvas! See also [d3-path](#paths-d3-path).

## [Collections (d3-collection)](https://github.com/d3/d3-collection/blob/master/README.md)

The [d3.set](https://github.com/d3/d3-collection/blob/master/README.md#set) constructor now accepts an existing set for making a copy. If you pass an array to d3.set, you can also pass a value accessor. This accessor takes the standard arguments: the current element (*d*), the index (*i*), and the array (*data*), with *this* undefined. For example:

```js
var yields = [
  {yield: 22.13333, variety: "Manchuria",        year: 1932, site: "Grand Rapids"},
  {yield: 26.76667, variety: "Peatland",         year: 1932, site: "Grand Rapids"},
  {yield: 28.10000, variety: "No. 462",          year: 1931, site: "Duluth"},
  {yield: 38.50000, variety: "Svansota",         year: 1932, site: "Waseca"},
  {yield: 40.46667, variety: "Svansota",         year: 1931, site: "Crookston"},
  {yield: 36.03333, variety: "Peatland",         year: 1932, site: "Waseca"},
  {yield: 34.46667, variety: "Wisconsin No. 38", year: 1931, site: "Grand Rapids"}
];

var sites = d3.set(yields, function(d) { return d.site; }); // Grand Rapids, Duluth, Waseca, Crookston
```

The [d3.map](https://github.com/d3/d3-collection/blob/master/README.md#map) constructor also follows the standard array accessor argument pattern.

The *map*.forEach and *set*.forEach methods have been renamed to [*map*.each](https://github.com/d3/d3-collection/blob/master/README.md#map_each) and [*set*.each](https://github.com/d3/d3-collection/blob/master/README.md#set_each) respectively. The order of arguments for *map*.each has also been changed to *value*, *key* and *map*, while the order of arguments for *set*.each is now *value*, *value* and *set*. This is closer to ES6 [*map*.forEach](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/forEach) and [*set*.forEach](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set/forEach). Also like ES6 Map and Set, *map*.set and *set*.add now return the current collection (rather than the added value) to facilitate method chaining. New [*map*.clear](https://github.com/d3/d3-collection/blob/master/README.md#map_clear) and [*set*.clear](https://github.com/d3/d3-collection/blob/master/README.md#set_clear) methods can be used to empty collections.

The [*nest*.map](https://github.com/d3/d3-collection/blob/master/README.md#nest_map) method now always returns a d3.map instance. For a plain object, use [*nest*.object](https://github.com/d3/d3-collection/blob/master/README.md#nest_object) instead. When used in conjunction with [*nest*.rollup](https://github.com/d3/d3-collection/blob/master/README.md#nest_rollup), [*nest*.entries](https://github.com/d3/d3-collection/blob/master/README.md#nest_entries) now returns {key, value} objects for the leaf entries, instead of {key, values}. This makes *nest*.rollup easier to use in conjunction with [hierarchies](#hierarchies-d3-hierarchy), as in this [Nest Treemap example](https://bl.ocks.org/mbostock/2838bf53e0e65f369f476afd653663a2).

## [Colors (d3-color)](https://github.com/d3/d3-color/blob/master/README.md)

All colors now have opacity exposed as *color*.opacity, which is a number in [0, 1]. You can pass an optional opacity argument to the color space constructors [d3.rgb](https://github.com/d3/d3-color/blob/master/README.md#rgb), [d3.hsl](https://github.com/d3/d3-color/blob/master/README.md#hsl), [d3.lab](https://github.com/d3/d3-color/blob/master/README.md#lab), [d3.hcl](https://github.com/d3/d3-color/blob/master/README.md#hcl) or [d3.cubehelix](https://github.com/d3/d3-color/blob/master/README.md#cubehelix).

You can now parse rgba(…) and hsla(…) CSS color specifiers or the string “transparent” using [d3.color](https://github.com/d3/d3-color/blob/master/README.md#color). The “transparent” color is defined as an RGB color with zero opacity and undefined red, green and blue channels; this differs slightly from CSS which defines it as transparent black, but is useful for simplifying color interpolation logic where either the starting or ending color has undefined channels. The [*color*.toString](https://github.com/d3/d3-color/blob/master/README.md#color_toString) method now likewise returns an rgb(…) or rgba(…) string with integer channel values, not the hexadecimal RGB format, consistent with CSS computed values. This improves performance by short-circuiting transitions when the element’s starting style matches its ending style.

The new [d3.color](https://github.com/d3/d3-color/blob/master/README.md#color) method is the primary method for parsing colors: it returns a d3.color instance in the appropriate color space, or null if the CSS color specifier is invalid. For example:

```js
var red = d3.color("hsl(0, 80%, 50%)"); // {h: 0, l: 0.5, s: 0.8, opacity: 1}
```

The parsing implementation is now more robust. For example, you can no longer mix integers and percentages in rgb(…), and it correctly handles whitespace, decimal points, number signs, and other edge cases. The color space constructors d3.rgb, d3.hsl, d3.lab, d3.hcl and d3.cubehelix now always return a copy of the input color, converted to the corresponding color space. While [*color*.rgb](https://github.com/d3/d3-color/blob/master/README.md#color_rgb) remains, *rgb*.hsl has been removed; use d3.hsl to convert a color to the RGB color space.

The RGB color space no longer greedily quantizes and clamps channel values when creating colors, improving accuracy in color space conversion. Quantization and clamping now occurs in *color*.toString when formatting a color for display. You can use the new [*color*.displayable](https://github.com/d3/d3-color/blob/master/README.md#color_displayable) to test whether a color is [out-of-gamut](https://en.wikipedia.org/wiki/Gamut).

The [*rgb*.brighter](https://github.com/d3/d3-color/blob/master/README.md#rgb_brighter) method no longer special-cases black. This is a multiplicative operator, defining a new color *r*′, *g*′, *b*′ where *r*′ = *r* × *pow*(0.7, *k*), *g*′ = *g* × *pow*(0.7, *k*) and *b*′ = *b* × *pow*(0.7, *k*); a brighter black is still black.

There’s a new [d3.cubehelix](https://github.com/d3/d3-color/blob/master/README.md#cubehelix) color space, generalizing Dave Green’s color scheme! (See also [d3.interpolateCubehelixDefault](https://github.com/d3/d3-scale/blob/master/README.md#interpolateCubehelixDefault) from [d3-scale](#scales-d3-scale).) You can continue to define your own custom color spaces, too; see [d3-hsv](https://github.com/d3/d3-hsv) for an example.

## [Dispatches (d3-dispatch)](https://github.com/d3/d3-dispatch/blob/master/README.md)

Rather than decorating the *dispatch* object with each event type, the dispatch object now exposes generic [*dispatch*.call](https://github.com/d3/d3-dispatch/blob/master/README.md#dispatch_call) and [*dispatch*.apply](https://github.com/d3/d3-dispatch/blob/master/README.md#dispatch_apply) methods which take the *type* string as the first argument. For example, in D3 3.x, you might say:

```js
dispatcher.foo.call(that, "Hello, Foo!");
```

To dispatch a *foo* event in D3 4.0, you’d say:

```js
dispatcher.call("foo", that, "Hello, Foo!");
```

The [*dispatch*.on](https://github.com/d3/d3-dispatch/blob/master/README.md#dispatch_on) method now accepts multiple typenames, allowing you to add or remove listeners for multiple events simultaneously. For example, to send both *foo* and *bar* events to the same listener:

```js
dispatcher.on("foo bar", function(message) {
  console.log(message);
});
```

This matches the new behavior of [*selection*.on](https://github.com/d3/d3-selection/blob/master/README.md#selection_on) in [d3-selection](#selections-d3-selection). The *dispatch*.on method now validates that the specifier *listener* is a function, rather than throwing an error in the future.

The new implementation d3.dispatch is faster, using fewer closures to improve performance. There’s also a new [*dispatch*.copy](https://github.com/d3/d3-dispatch/blob/master/README.md#dispatch_copy) method for making a copy of a dispatcher; this is used by [d3-transition](#transitions-d3-transition) to improve the performance of transitions in the common case where all elements in a transition have the same transition event listeners.

## [Dragging (d3-drag)](https://github.com/d3/d3-drag/blob/master/README.md)

The drag behavior d3.behavior.drag has been renamed to d3.drag. The *drag*.origin method has been replaced by [*drag*.subject](https://github.com/d3/d3-drag/blob/master/README.md#drag_subject), which allows you to define the thing being dragged at the start of a drag gesture. This is particularly useful with Canvas, where draggable objects typically share a Canvas element (as opposed to SVG, where draggable objects typically have distinct DOM elements); see the [circle dragging example](https://bl.ocks.org/mbostock/444757cc9f0fde320a5f469cd36860f4).

A new [*drag*.container](https://github.com/d3/d3-drag/blob/master/README.md#drag_container) method lets you override the parent element that defines the drag gesture coordinate system. This defaults to the parent node of the element to which the drag behavior was applied. For dragging on Canvas elements, you probably want to use the Canvas element as the container.

[Drag events](https://github.com/d3/d3-drag/blob/master/README.md#drag-events) now expose an [*event*.on](https://github.com/d3/d3-drag/blob/master/README.md#event_on) method for registering temporary listeners for duration of the current drag gesture; these listeners can capture state for the current gesture, such as the thing being dragged. A new *event*.active property lets you detect whether multiple (multitouch) drag gestures are active concurrently. The *dragstart* and *dragend* events have been renamed to *start* and *end*. By default, drag behaviors now ignore right-clicks intended for the context menu; use [*drag*.filter](https://github.com/d3/d3-drag/blob/master/README.md#drag_filter) to control which events are ignored. The drag behavior also ignores emulated mouse events on iOS. The drag behavior now consumes handled events, making it easier to combine with other interactive behaviors such as [zooming](#zooming-d3-zoom).

The new [d3.dragEnable](https://github.com/d3/d3-drag/blob/master/README.md#dragEnable) and [d3.dragDisable](https://github.com/d3/d3-drag/blob/master/README.md#dragDisable) methods provide a low-level API for implementing drag gestures across browsers and devices. These methods are also used by other D3 components, such as the [brush](#brushes-d3-brush).

## [Delimiter-Separated Values (d3-dsv)](https://github.com/d3/d3-dsv/blob/master/README.md)

Pursuant to the great namespace flattening, various CSV and TSV methods have new names:

* d3.csv.parse ↦ [d3.csvParse](https://github.com/d3/d3-dsv/blob/master/README.md#csvParse)
* d3.csv.parseRows ↦ [d3.csvParseRows](https://github.com/d3/d3-dsv/blob/master/README.md#csvParseRows)
* d3.csv.format ↦ [d3.csvFormat](https://github.com/d3/d3-dsv/blob/master/README.md#csvFormat)
* d3.csv.formatRows ↦ [d3.csvFormatRows](https://github.com/d3/d3-dsv/blob/master/README.md#csvFormatRows)
* d3.tsv.parse ↦ [d3.tsvParse](https://github.com/d3/d3-dsv/blob/master/README.md#tsvParse)
* d3.tsv.parseRows ↦ [d3.tsvParseRows](https://github.com/d3/d3-dsv/blob/master/README.md#tsvParseRows)
* d3.tsv.format ↦ [d3.tsvFormat](https://github.com/d3/d3-dsv/blob/master/README.md#tsvFormat)
* d3.tsv.formatRows ↦ [d3.tsvFormatRows](https://github.com/d3/d3-dsv/blob/master/README.md#tsvFormatRows)

The [d3.csv](https://github.com/d3/d3-request/blob/master/README.md#csv) and [d3.tsv](https://github.com/d3/d3-request/blob/master/README.md#tsv) methods for loading files of the corresponding formats have not been renamed, however! Those are defined in [d3-request](#requests-d3-request).There’s no longer a d3.dsv method, which served the triple purpose of defining a DSV formatter, a DSV parser and a DSV requestor; instead, there’s just [d3.dsvFormat](https://github.com/d3/d3-dsv/blob/master/README.md#dsvFormat) which you can use to define a DSV formatter and parser. You can use [*request*.response](https://github.com/d3/d3-request/blob/master/README.md#request_response) to make a request and then parse the response body, or just use [d3.text](https://github.com/d3/d3-request/blob/master/README.md#text).

The [*dsv*.parse](https://github.com/d3/d3-dsv/blob/master/README.md#dsv_parse) method now exposes the column names and their input order as *data*.columns. For example:

```js
d3.csv("cars.csv", function(error, data) {
  if (error) throw error;
  console.log(data.columns); // ["Year", "Make", "Model", "Length"]
});
```

You can likewise pass an optional array of column names to [*dsv*.format](https://github.com/d3/d3-dsv/blob/master/README.md#dsv_format) to format only a subset of columns, or to specify the column order explicitly:

```js
var string = d3.csvFormat(data, ["Year", "Model", "Length"]);
```

The parser is a bit faster and the formatter is a bit more robust: inputs are coerced to strings before formatting, fixing an obscure crash, and deprecated support for falling back to [*dsv*.formatRows](https://github.com/d3/d3-dsv/blob/master/README.md#dsv_formatRows) when the input *data* is an array of arrays has been removed.

## [Easings (d3-ease)](https://github.com/d3/d3-ease/blob/master/README.md)

D3 3.x used strings, such as “cubic-in-out”, to identify easing methods; these strings could be passed to d3.ease or *transition*.ease. D3 4.0 uses symbols instead, such as [d3.easeCubicInOut](https://github.com/d3/d3-ease/blob/master/README.md#easeCubicInOut). Symbols are simpler and cleaner. They work well with Rollup to produce smaller custom bundles. You can still define your own custom easing function, too, if desired. Here’s the full list of equivalents:

* linear ↦ [d3.easeLinear](https://github.com/d3/d3-ease/blob/master/README.md#easeLinear)¹
* linear-in ↦ [d3.easeLinear](https://github.com/d3/d3-ease/blob/master/README.md#easeLinear)¹
* linear-out ↦ [d3.easeLinear](https://github.com/d3/d3-ease/blob/master/README.md#easeLinear)¹
* linear-in-out ↦ [d3.easeLinear](https://github.com/d3/d3-ease/blob/master/README.md#easeLinear)¹
* linear-out-in ↦ [d3.easeLinear](https://github.com/d3/d3-ease/blob/master/README.md#easeLinear)¹
* poly-in ↦ [d3.easePolyIn](https://github.com/d3/d3-ease/blob/master/README.md#easePolyIn)
* poly-out ↦ [d3.easePolyOut](https://github.com/d3/d3-ease/blob/master/README.md#easePolyOut)
* poly-in-out ↦ [d3.easePolyInOut](https://github.com/d3/d3-ease/blob/master/README.md#easePolyInOut)
* poly-out-in ↦ REMOVED²
* quad-in ↦ [d3.easeQuadIn](https://github.com/d3/d3-ease/blob/master/README.md#easeQuadIn)
* quad-out ↦ [d3.easeQuadOut](https://github.com/d3/d3-ease/blob/master/README.md#easeQuadOut)
* quad-in-out ↦ [d3.easeQuadInOut](https://github.com/d3/d3-ease/blob/master/README.md#easeQuadInOut)
* quad-out-in ↦ REMOVED²
* cubic-in ↦ [d3.easeCubicIn](https://github.com/d3/d3-ease/blob/master/README.md#easeCubicIn)
* cubic-out ↦ [d3.easeCubicOut](https://github.com/d3/d3-ease/blob/master/README.md#easeCubicOut)
* cubic-in-out ↦ [d3.easeCubicInOut](https://github.com/d3/d3-ease/blob/master/README.md#easeCubicInOut)
* cubic-out-in ↦ REMOVED²
* sin-in ↦ [d3.easeSinIn](https://github.com/d3/d3-ease/blob/master/README.md#easeSinIn)
* sin-out ↦ [d3.easeSinOut](https://github.com/d3/d3-ease/blob/master/README.md#easeSinOut)
* sin-in-out ↦ [d3.easeSinInOut](https://github.com/d3/d3-ease/blob/master/README.md#easeSinInOut)
* sin-out-in ↦ REMOVED²
* exp-in ↦ [d3.easeExpIn](https://github.com/d3/d3-ease/blob/master/README.md#easeExpIn)
* exp-out ↦ [d3.easeExpOut](https://github.com/d3/d3-ease/blob/master/README.md#easeExpOut)
* exp-in-out ↦ [d3.easeExpInOut](https://github.com/d3/d3-ease/blob/master/README.md#easeExpInOut)
* exp-out-in ↦ REMOVED²
* circle-in ↦ [d3.easeCircleIn](https://github.com/d3/d3-ease/blob/master/README.md#easeCircleIn)
* circle-out ↦ [d3.easeCircleOut](https://github.com/d3/d3-ease/blob/master/README.md#easeCircleOut)
* circle-in-out ↦ [d3.easeCircleInOut](https://github.com/d3/d3-ease/blob/master/README.md#easeCircleInOut)
* circle-out-in ↦ REMOVED²
* elastic-in ↦ [d3.easeElasticOut](https://github.com/d3/d3-ease/blob/master/README.md#easeElasticOut)²
* elastic-out ↦ [d3.easeElasticIn](https://github.com/d3/d3-ease/blob/master/README.md#easeElasticIn)²
* elastic-in-out ↦ REMOVED²
* elastic-out-in ↦ [d3.easeElasticInOut](https://github.com/d3/d3-ease/blob/master/README.md#easeElasticInOut)²
* back-in ↦ [d3.easeBackIn](https://github.com/d3/d3-ease/blob/master/README.md#easeBackIn)
* back-out ↦ [d3.easeBackOut](https://github.com/d3/d3-ease/blob/master/README.md#easeBackOut)
* back-in-out ↦ [d3.easeBackInOut](https://github.com/d3/d3-ease/blob/master/README.md#easeBackInOut)
* back-out-in ↦ REMOVED²
* bounce-in ↦ [d3.easeBounceOut](https://github.com/d3/d3-ease/blob/master/README.md#easeBounceOut)²
* bounce-out ↦ [d3.easeBounceIn](https://github.com/d3/d3-ease/blob/master/README.md#easeBounceIn)²
* bounce-in-out ↦ REMOVED²
* bounce-out-in ↦ [d3.easeBounceInOut](https://github.com/d3/d3-ease/blob/master/README.md#easeBounceInOut)²

¹ The -in, -out and -in-out variants of linear easing are identical, so there’s just d3.easeLinear.

² Elastic and bounce easing were inadvertently reversed in 3.x, so 4.0 eliminates -out-in easing!

For convenience, there are also default aliases for each easing method. For example, [d3.easeCubic](https://github.com/d3/d3-ease/blob/master/README.md#easeCubic) is an alias for [d3.easeCubicInOut](https://github.com/d3/d3-ease/blob/master/README.md#easeCubicInOut). Most default to -in-out; the exceptions are [d3.easeBounce](https://github.com/d3/d3-ease/blob/master/README.md#easeBounce) and [d3.easeElastic](https://github.com/d3/d3-ease/blob/master/README.md#easeElastic), which default to -out.

Rather than pass optional arguments to d3.ease or *transition*.ease, parameterizable easing functions now have named parameters: [*poly*.exponent](https://github.com/d3/d3-ease/blob/master/README.md#poly_exponent), [*elastic*.amplitude](https://github.com/d3/d3-ease/blob/master/README.md#elastic_amplitude), [*elastic*.period](https://github.com/d3/d3-ease/blob/master/README.md#elastic_period) and [*back*.overshoot](https://github.com/d3/d3-ease/blob/master/README.md#back_overshoot). For example, in D3 3.x you might say:

```js
var e = d3.ease("elastic-out-in", 1.2);
```

The equivalent in D3 4.0 is:

```js
var e = d3.easeElastic.amplitude(1.2);
```

Many of the easing functions have been optimized for performance and accuracy. Several bugs have been fixed, as well, such as the interpretation of the overshoot parameter for back easing, and the period parameter for elastic easing. Also, [d3-transition](#transitions-d3-transition) now explicitly guarantees that the last tick of the transition happens at exactly *t* = 1, avoiding floating point errors in some easing functions.

There’s now a nice [visual reference](https://github.com/d3/d3-ease/blob/master/README.md) and an [animated reference](https://bl.ocks.org/mbostock/248bac3b8e354a9103c4) to the new easing functions, too!

## [Forces (d3-force)](https://github.com/d3/d3-force/blob/master/README.md)

The force layout d3.layout.force has been renamed to d3.forceSimulation. The force simulation now uses [velocity Verlet integration](https://en.wikipedia.org/wiki/Verlet_integration#Velocity_Verlet) rather than position Verlet, tracking the nodes’ positions (*node*.x, *node*.y) and velocities (*node*.vx, *node*.vy) rather than their previous positions (*node*.px, *node*.py).

Rather than hard-coding a set of built-in forces, the force simulation is now extensible: you specify which forces you want! The approach affords greater flexibility through composition. The new forces are more flexible, too: force parameters can typically be configured per-node or per-link. There are separate positioning forces for [*x*](https://github.com/d3/d3-force/blob/master/README.md#forceX) and [*y*](https://github.com/d3/d3-force/blob/master/README.md#forceY) that replace *force*.gravity; [*x*.x](https://github.com/d3/d3-force/blob/master/README.md#x_x) and [*y*.y](https://github.com/d3/d3-force/blob/master/README.md#y_y) replace *force*.size. The new [link force](https://github.com/d3/d3-force/blob/master/README.md#forceLink) replaces *force*.linkStrength and employs better default heuristics to improve stability. The new [many-body force](https://github.com/d3/d3-force/blob/master/README.md#forceManyBody) replaces *force*.charge and supports a new [minimum-distance parameter](https://github.com/d3/d3-force/blob/master/README.md#manyBody_distanceMin) and performance improvements thanks to 4.0’s [new quadtrees](#quadtrees-d3-quadtree). There are also brand-new forces for [centering nodes](https://github.com/d3/d3-force/blob/master/README.md#forceCenter) and [collision resolution](https://github.com/d3/d3-force/blob/master/README.md#forceCollision).

The new forces and simulation have been carefully crafted to avoid nondeterminism. Rather than initializing nodes randomly, if the nodes do not have preset positions, they are placed in a phyllotaxis pattern:

Random jitter is still needed to resolve link, collision and many-body forces if there are coincident nodes, but at least in the common case, the force simulation (and the resulting force-directed graph layout) is now consistent across browsers and reloads. D3 no longer plays dice!

The force simulation has several new methods for greater control over heating, such as [*simulation*.alphaMin](https://github.com/d3/d3-force/blob/master/README.md#simulation_alphaMin) and [*simulation*.alphaDecay](https://github.com/d3/d3-force/blob/master/README.md#simulation_alphaDecay), and the internal timer. Calling [*simulation*.alpha](https://github.com/d3/d3-force/blob/master/README.md#simulation_alpha) now has no effect on the internal timer, which is controlled independently via [*simulation*.stop](https://github.com/d3/d3-force/blob/master/README.md#simulation_stop) and [*simulation*.restart](https://github.com/d3/d3-force/blob/master/README.md#simulation_restart). The force layout’s internal timer now starts automatically on creation, removing *force*.start. As in 3.x, you can advance the simulation manually using [*simulation*.tick](https://github.com/d3/d3-force/blob/master/README.md#simulation_tick). The *force*.friction parameter is replaced by *simulation*.velocityDecay. A new [*simulation*.alphaTarget](https://github.com/d3/d3-force/blob/master/README.md#simulation_alphaTarget) method allows you to set the desired alpha (temperature) of the simulation, such that the simulation can be smoothly reheated during interaction, and then smoothly cooled again. This improves the stability of the graph during interaction.

The force layout no longer depends on the [drag behavior](#dragging-d3-drag), though you can certainly create [draggable force-directed graphs](https://bl.ocks.org/mbostock/ad70335eeef6d167bc36fd3c04378048)! Set *node*.fx and *node*.fy to fix a node’s position. As an alternative to a [Voronoi](#voronoi-d3-voronoi) SVG overlay, you can now use [*simulation*.find](https://github.com/d3/d3-force/blob/master/README.md#simulation_find) to find the closest node to a pointer.

## [Number Formats (d3-format)](https://github.com/d3/d3-format/blob/master/README.md)

If a precision is not specified, the formatting behavior has changed: there is now a default precision of 6 for all directives except *none*, which defaults to 12. In 3.x, if you did not specify a precision, the number was formatted using its shortest unique representation (per [*number*.toString](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toString)); this could lead to unexpected digits due to [floating point math](http://0.30000000000000004.com/). The new default precision in 4.0 produces more consistent results:

```js
var f = d3.format("e");
f(42);        // "4.200000e+1"
f(0.1 + 0.2); // "3.000000e-1"
```

To trim insignificant trailing zeroes, use the *none* directive, which is similar `g`. For example:

```js
var f = d3.format(".3");
f(0.12345);   // "0.123"
f(0.10000);   // "0.1"
f(0.1 + 0.2); // "0.3"
```

Under the hood, number formatting has improved accuracy with very large and very small numbers by using [*number*.toExponential](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toExponential) rather than [Math.log](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/log) to extract the mantissa and exponent. Negative zero (-0, an IEEE 754 construct) and very small numbers that round to zero are now formatted as unsigned zero. The inherently unsafe d3.round method has been removed, along with d3.requote.

The [d3.formatPrefix](https://github.com/d3/d3-format/blob/master/README.md#formatPrefix) method has been changed. Rather than returning an SI-prefix string, it returns an SI-prefix format function for a given *specifier* and reference *value*. For example, to format thousands:

```js
var f = d3.formatPrefix(",.0", 1e3);
f(1e3); // "1k"
f(1e4); // "10k"
f(1e5); // "100k"
f(1e6); // "1,000k"
```

Unlike the `s` format directive, d3.formatPrefix always employs the same SI-prefix, producing consistent results:

```js
var f = d3.format(".0s");
f(1e3); // "1k"
f(1e4); // "10k"
f(1e5); // "100k"
f(1e6); // "1M"
```

The new `(` sign option uses parentheses for negative values. This is particularly useful in conjunction with `$`. For example:

```js
d3.format("+.0f")(-42);  // "-42"
d3.format("(.0f")(-42);  // "(42)"
d3.format("+$.0f")(-42); // "-$42"
d3.format("($.0f")(-42); // "($42)"
```

The new `=` align option places any sign and symbol to the left of any padding:

```js
d3.format(">6d")(-42);  // "   -42"
d3.format("=6d")(-42);  // "-   42"
d3.format(">(6d")(-42); // "  (42)"
d3.format("=(6d")(-42); // "(  42)"
```

The `b`, `o`, `d` and `x` directives now round to the nearest integer, rather than returning the empty string for non-integers:

```js
d3.format("b")(41.9); // "101010"
d3.format("o")(41.9); // "52"
d3.format("d")(41.9); // "42"
d3.format("x")(41.9); // "2a"
```

The `c` directive is now for character data (*i.e.*, literal strings), not for character codes. The is useful if you just want to apply padding and alignment and don’t care about formatting numbers. For example, the infamous [left-pad](http://blog.npmjs.org/post/141577284765/kik-left-pad-and-npm) (as well as center- and right-pad!) can be conveniently implemented as:

```js
d3.format(">10c")("foo"); // "       foo"
d3.format("^10c")("foo"); // "   foo    "
d3.format("<10c")("foo"); // "foo       "
```

There are several new methods for computing suggested decimal precisions; these are used by [d3-scale](#scales-d3-scale) for tick formatting, and are helpful for implementing custom number formats: [d3.precisionFixed](https://github.com/d3/d3-format/blob/master/README.md#precisionFixed), [d3.precisionPrefix](https://github.com/d3/d3-format/blob/master/README.md#precisionPrefix) and [d3.precisionRound](https://github.com/d3/d3-format/blob/master/README.md#precisionRound). There’s also a new [d3.formatSpecifier](https://github.com/d3/d3-format/blob/master/README.md#formatSpecifier) method for parsing, validating and debugging format specifiers; it’s also good for deriving related format specifiers, such as when you want to substitute the precision automatically.

You can now set the default locale using [d3.formatDefaultLocale](https://github.com/d3/d3-format/blob/master/README.md#formatDefaultLocale)! The locales are published as [JSON](https://github.com/d3/d3-request/blob/master/README.md#json) to [npm](https://unpkg.com/d3-format/locale/).

## [Geographies (d3-geo)](https://github.com/d3/d3-geo/blob/master/README.md)

Pursuant to the great namespace flattening, various methods have new names:

* d3.geo.graticule ↦ [d3.geoGraticule](https://github.com/d3/d3-geo/blob/master/README.md#geoGraticule)
* d3.geo.circle ↦ [d3.geoCircle](https://github.com/d3/d3-geo/blob/master/README.md#geoCircle)
* d3.geo.area ↦ [d3.geoArea](https://github.com/d3/d3-geo/blob/master/README.md#geoArea)
* d3.geo.bounds ↦ [d3.geoBounds](https://github.com/d3/d3-geo/blob/master/README.md#geoBounds)
* d3.geo.centroid ↦ [d3.geoCentroid](https://github.com/d3/d3-geo/blob/master/README.md#geoCentroid)
* d3.geo.distance ↦ [d3.geoDistance](https://github.com/d3/d3-geo/blob/master/README.md#geoDistance)
* d3.geo.interpolate ↦ [d3.geoInterpolate](https://github.com/d3/d3-geo/blob/master/README.md#geoInterpolate)
* d3.geo.length ↦ [d3.geoLength](https://github.com/d3/d3-geo/blob/master/README.md#geoLength)
* d3.geo.rotation ↦ [d3.geoRotation](https://github.com/d3/d3-geo/blob/master/README.md#geoRotation)
* d3.geo.stream ↦ [d3.geoStream](https://github.com/d3/d3-geo/blob/master/README.md#geoStream)
* d3.geo.path ↦ [d3.geoPath](https://github.com/d3/d3-geo/blob/master/README.md#geoPath)
* d3.geo.projection ↦ [d3.geoProjection](https://github.com/d3/d3-geo/blob/master/README.md#geoProjection)
* d3.geo.projectionMutator ↦ [d3.geoProjectionMutator](https://github.com/d3/d3-geo/blob/master/README.md#geoProjectionMutator)
* d3.geo.albers ↦ [d3.geoAlbers](https://github.com/d3/d3-geo/blob/master/README.md#geoAlbers)
* d3.geo.albersUsa ↦ [d3.geoAlbersUsa](https://github.com/d3/d3-geo/blob/master/README.md#geoAlbersUsa)
* d3.geo.azimuthalEqualArea ↦ [d3.geoAzimuthalEqualArea](https://github.com/d3/d3-geo/blob/master/README.md#geoAzimuthalEqualArea)
* d3.geo.azimuthalEquidistant ↦ [d3.geoAzimuthalEquidistant](https://github.com/d3/d3-geo/blob/master/README.md#geoAzimuthalEquidistant)
* d3.geo.conicConformal ↦ [d3.geoConicConformal](https://github.com/d3/d3-geo/blob/master/README.md#geoConicConformal)
* d3.geo.conicEqualArea ↦ [d3.geoConicEqualArea](https://github.com/d3/d3-geo/blob/master/README.md#geoConicEqualArea)
* d3.geo.conicEquidistant ↦ [d3.geoConicEquidistant](https://github.com/d3/d3-geo/blob/master/README.md#geoConicEquidistant)
* d3.geo.equirectangular ↦ [d3.geoEquirectangular](https://github.com/d3/d3-geo/blob/master/README.md#geoEquirectangular)
* d3.geo.gnomonic ↦ [d3.geoGnomonic](https://github.com/d3/d3-geo/blob/master/README.md#geoGnomonic)
* d3.geo.mercator ↦ [d3.geoMercator](https://github.com/d3/d3-geo/blob/master/README.md#geoMercator)
* d3.geo.orthographic ↦ [d3.geoOrthographic](https://github.com/d3/d3-geo/blob/master/README.md#geoOrthographic)
* d3.geo.stereographic ↦ [d3.geoStereographic](https://github.com/d3/d3-geo/blob/master/README.md#geoStereographic)
* d3.geo.transverseMercator ↦ [d3.geoTransverseMercator](https://github.com/d3/d3-geo/blob/master/README.md#geoTransverseMercator)

Also renamed for consistency:

* *circle*.origin ↦ [*circle*.center](https://github.com/d3/d3-geo/blob/master/README.md#circle_center)
* *circle*.angle ↦ [*circle*.radius](https://github.com/d3/d3-geo/blob/master/README.md#circle_radius)
* *graticule*.majorExtent ↦ [*graticule*.extentMajor](https://github.com/d3/d3-geo/blob/master/README.md#graticule_extentMajor)
* *graticule*.minorExtent ↦ [*graticule*.extentMinor](https://github.com/d3/d3-geo/blob/master/README.md#graticule_extentMinor)
* *graticule*.majorStep ↦ [*graticule*.stepMajor](https://github.com/d3/d3-geo/blob/master/README.md#graticule_stepMajor)
* *graticule*.minorStep ↦ [*graticule*.stepMinor](https://github.com/d3/d3-geo/blob/master/README.md#graticule_stepMinor)

Projections now have more appropriate defaults. For example, [d3.geoOrthographic](https://github.com/d3/d3-geo/blob/master/README.md#geoOrthographic) has a 90° clip angle by default, showing only the front hemisphere, and [d3.geoGnomonic](https://github.com/d3/d3-geo/blob/master/README.md#geoGnomonic) has a default 60° clip angle. The default [projection](https://github.com/d3/d3-geo/blob/master/README.md#path_projection) for [d3.geoPath](https://github.com/d3/d3-geo/blob/master/README.md#geoPath) is now null rather than [d3.geoAlbersUsa](https://github.com/d3/d3-geo/blob/master/README.md#geoAlbersUsa); a null projection is used with [pre-projected geometry](https://bl.ocks.org/mbostock/5557726) and is typically faster to render.

“Fallback projections”—when you pass a function rather than a projection to [*path*.projection](https://github.com/d3/d3-geo/blob/master/README.md#path_projection)—are no longer supported. For geographic projections, use [d3.geoProjection](https://github.com/d3/d3-geo/blob/master/README.md#geoProjection) or [d3.geoProjectionMutator](https://github.com/d3/d3-geo/blob/master/README.md#geoProjectionMutator) to define a custom projection. For arbitrary geometry transformations, implement the [stream interface](https://github.com/d3/d3-geo/blob/master/README.md#streams); see also [d3.geoTransform](https://github.com/d3/d3-geo/blob/master/README.md#geoTransform). The “raw” projections (e.g., d3.geo.equirectangular.raw) are no longer exported.

## [Hierarchies (d3-hierarchy)](https://github.com/d3/d3-hierarchy/blob/master/README.md)


remove this log out


![](https://github.trello.services/images/mini-trello-icon.png) [when adding new machine, no need to check-device-status](https://trello.com/c/6ryXqobW/331-when-adding-new-machine-no-need-to-check-device-status)


I'm a little concerned this may blow something up, but there aren't any empty district seats at the moment.


yeah, I accidentally deleted my local copy of my edited version, and was attempting to fix it... but said fuck it, this plugin project is dead.


osw_results (macumber) - x86_64-MacOS-10.10-clang: Build Failed

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


This is more insidious than I thought:

http://stackoverflow.com/questions/39710289/can-i-use-markdown-syntax-to-compose-e-mails-in-moonmail

Joost Farla is also affiliated with MoonMail's authors (https://www.google.com/search?q="Joost%20Farla"%20moonmail), all three users participating in that post are. So, definitely one to look out for. *Might* be a good idea to blacklist moonmail as a keyword as well, but not yet, will do some more research.


それは... 別に良いのでは？？
短くなりますし、コミットタイトルを短縮したい時に、私もやった記憶があります。


@ikki84 If that is an attempt to bring DrChat's attention to these comments, that is not necessary and will only serve to be irritating.


These two lines seem to be missing the hyphens.


![](https://github.trello.services/images/mini-trello-icon.png) [Text](https://trello.com/c/aMdVrI2G/11-text)


Np!  There may be some state that's not reset correctly. I would recommend calling resetGLStates on the render target if you still see weirdness. But this patch worked in the trivial cases for me.


新增SystemOut


Git can not tell differences between uploadList and UploadList on Mac, so these changes were not committed.


up test


`to_jsondict()` は Ryu 固有の機能で、かつまだお話していない機能だったので、
初版の際にはコメントしていませんでした。
ただ、素敵に使うとこんな感じで等価な機能ができるメソッドになります。
```
def get_desc_stats(dp, waiters, to_user=True):
    stats = dp.ofproto_parser.OFPDescStatsRequest(dp, 0)
    msgs = []
    ofctl_utils.send_stats_request(dp, stats, waiters, msgs, LOG)

    # Note: OFPDescStatsReply has single body structure.
    s = msgs[0].body.to_jsondict()["OFPDescStats"]

    return wrap_dpid_dict(dp, s, to_user)
```


Created multidev environment [build-tools-46#ci-1](https://dashboard.pantheon.io/sites/69fe6cfe-495a-49dc-acb0-46dae7930f75#ci-1).

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


add control buffer, for forward in ex stage


私も同意見です。
同じコードを２回書いた時点で、コードを共通化できる可能性を考える、としておくと、
今後、良いことがあるかも知れません。


osw_results (macumber) - x86_64-Linux-Ubuntu-14.04-clang-3.5: Build Failed

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


@prazanna This method ends up calling `moveInFlightToComplete` which expects the first instant to be in flight. The 3 `saveAsComplete` calls here are what are causing renames from same source to destination.


Bluemix [toolchain](https://console.ng.bluemix.net/devops/toolchains/db7468e4-75af-4c93-8a0b-1a6ccd73cdf5 "IAmAma"): [Delivery Pipeline](https://console.ng.bluemix.net/devops/pipelines/67650d37-3fff-426a-9ce9-78b86750a60b "IAmAma") deployed this commit to [dev](https://console.ng.bluemix.net/apps/b31920d4-9b08-4352-b441-8a9de9f2ae26 "ibm:yp:us-south:Ramustha Studio:dev")


我儿出息了


Need to change false to true


Can you create a PR to get this into the mainline? Whether it's this fix or the separating output and error that we discussed out of channel, that can be the basis for a conversation about it.


累计持股,和累计投资 计算总和在下面的页面上没有显示


osw_results (macumber) - x86_64-Linux-Ubuntu-14.04-cppcheck-1.61: Build Failed

![Build Badge](http://img.shields.io/badge/build%20status-failing-red.png)


这是我目前的问题所在


This is great, thanks for the fix.


I'm not certain, since Amir is moving the main site over to Firebase, but we might be using GitHub Pages to host our assets as a sort of CDN, and we need this for that.


I met the same problem!!! Back to the previous version can solved problem!


Такая проверка подразумевает, что в качестве параметра может приходить только объект того же класса, в котором мы находимся, но на самом деле для проверки достаточно наличия поля name у объекта (т.е. это могут быть любые потомки Child). В общем, для таких целей существует более универсальный способ проверки: оператор instanceof или метод isInstance.


Ugh, that's a mess. Don't have time to dig into it right now, but flags would be good if you haven't already,


Firebase should be fine for hosting assets as well, in my opinion. Allows us to build and review stuff before actually
deploying it to the site.


Yes, but we only get limited bandwidth, and images are generally the worst for eating it up. gh-pages is totally free and still backed by superior infrastructure


Hi Asbjørn,
Did you ever get the cms50D+ working on a Pi 3? What usb port did you use?
Thanks Mike


This is looking A-OK!


Don't worry, I got this. Digging in hard.


局部变量用下划线，函数的属性及方法用驼峰。


Images will likely be in SVG, so I don't think they will take a significant amount of bandwidth. I don't think we're going to be hosting other assets than those that are required for the site, are we?


All of the images, probably JS, possibly CSS (but doubtful). But the idea of a CDN is that you dump the URL into your apps / extensions / whatever to get network-located resources, and it'll get pinged every time a user wants a fresh non-cached version


Mano isso dá pau em um dos casos da lista 😭


This preloads the page


ありがとうございます。
OF 1.4/1.5の実装に合わせ、ofctl_v1_0.py/v1_2.py/v1_3.pyについて、以下のように実装します。
```
def get_desc_stats(dp, waiters, to_user=True):
    stats = dp.ofproto_parser.OFPDescStatsRequest(dp, 0)
    msgs = []
    ofctl_utils.send_stats_request(dp, stats, waiters, msgs, LOG)

    for msg in msgs:
        stats = msg.body
        s = stats.to_jsondict()[stats.__class__.__name__]

    return wrap_dpid_dict(dp, s, to_user)
```


SORT カラムでソートをしています。

`SELECT t0.ADDRESS, t0.COMPANY_ID, t0.CREATE_DATE, t0.FAX_NUMBER, t0.GROUP_NAME, t0.IN_TELEPHONE, t0.OUT_TELEPHONE, t0.POST_NAME, t0.SORT, t0.UPDATE_DATE, t0.ZIPCODE, t0.POST_ID FROM eip_m_post t0 ORDER BY t0.SORT LIMIT 10`


Rereading, it looks like you meant to write

    battle.p2.chooseSwitch(i).foe.chooseDefault();

Fortunately, my refactor caught this. :]


This is redundant.

```go
return pl, exists
``


ありがとうございます。
今後はコードの共通化に気をつけます。
(今回はto_jsondict()を利用する実装に修正いたしますので、bytes_to_str()は削除いたします。)


This is redundant:

```go
return username, exists
```


Commit attığımda tüm commitleri göndermediği için gönderilmeyen ve değişiklik olan tüm dosyaları tek tek commit etmek durumunda kaldım.


I'm still confused about how to work.  If I create a branch to perform some specific tasks and then create a PR for those changes I must wait for you to accept and merge the PR for me to pull them to my master branch.  If I create another branch to work on different tasks before you accept the changes then I won't have the latest changes and sometimes this will effect what I'm working on.  How should I be working so that I don't have this problem? Do I need separate branches for each PR?


I tested this. It makes all the crud scripts hard to access `.ap-input` (algolia-places input) because all the scripts loaded before algolia-places bind all `data-address` elements.

I prefer we put all the crud scripts right before `@endsection` like this
```
    <script src="{{ asset('vendor/backpack/crud/js/crud.js') }}"></script>
    <script src="{{ asset('vendor/backpack/crud/js/form.js') }}"></script>
    <script src="{{ asset('vendor/backpack/crud/js/'.$action.'.js') }}"></script>
@endsection
```


Name this function `Stats` and make the comment in the form of:

```go
// Stats returns a string with the player's stats.
func (p *Player) Stats() string {
  // ...
```

By nature of it being receiving a pointer to a player struct, it being named Stats and returning a string, it's implied that you'd be getting the value somehow, so naming it `get*` is redundant.


This `.foe.chooseDefault()` is unnecessary, and I'm surprised this code doesn't crash.


![Uploading Income Range vs return with prosper rating.jpeg…]()
![prosperrating vs return](https://cloud.githubusercontent.com/assets/23446958/24029210/baa478a8-0a91-11e7-952c-29049657df65.jpeg)


Income Range vs Return with Prosper Rating


```go
response += fmt.Sprintf("You are a pony. aaaaa finish this later\r\n\r\n%s", tmpPlayer.Stats())
```


Just note that the `server.Listen()` call will block the current goroutine. If you don't want to do that:

```go
go server.Listen()

// do other things

for {
  select{} // block forever
}
```


Your patch based on the newest master but not the master which is used in test. This is relevant because the speed relevant patch is so only included https://github.com/official-stockfish/Stockfish/pull/1026.
This would favor your patch. Please update master.


```go
return fmt.Sprintf("You pick up the %s.", i.name)
```


@hvelarde Jenkins CI reporting about code analysis
See the full report here: http://jenkins.plone.org/job/package-plone.tiles/28/violations
```
plone/tiles/interfaces.py:19:15: Q000 Remove bad quotes.
plone/tiles/interfaces.py:21:40: Q000 Remove bad quotes.
plone/tiles/interfaces.py:23:42: Q000 Remove bad quotes.
plone/tiles/interfaces.py:25:35: Q000 Remove bad quotes.
plone/tiles/interfaces.py:27:43: Q000 Remove bad quotes.
plone/tiles/interfaces.py:30:15: Q000 Remove bad quotes.
plone/tiles/interfaces.py:31:21: Q000 Remove bad quotes.
plone/tiles/interfaces.py:32:21: Q000 Remove bad quotes.
plone/tiles/interfaces.py:33:21: Q000 Remove bad quotes.
plone/tiles/interfaces.py:59:15: Q000 Remove bad quotes.
plone/tiles/interfaces.py:60:21: Q000 Remove bad quotes.
plone/tiles/interfaces.py:61:21: Q000 Remove bad quotes.
plone/tiles/interfaces.py:65:15: Q000 Remove bad quotes.
plone/tiles/interfaces.py:66:21: Q000 Remove bad quotes.
plone/tiles/interfaces.py:67:21: Q000 Remove bad quotes.
plone/tiles/interfaces.py:68:21: Q000 Remove bad quotes.
plone/tiles/interfaces.py:69:21: Q000 Remove bad quotes.
plone/tiles/interfaces.py:70:21: Q000 Remove bad quotes.
plone/tiles/interfaces.py:80:21: Q000 Remove bad quotes.
plone/tiles/interfaces.py:81:21: Q000 Remove bad quotes.
plone/tiles/interfaces.py:82:39: Q000 Remove bad quotes.
plone/tiles/interfaces.py:83:44: Q000 Remove bad quotes.
plone/tiles/interfaces.py:90:15: Q000 Remove bad quotes.
plone/tiles/interfaces.py:91:21: Q000 Remove bad quotes.
plone/tiles/interfaces.py:92:21: Q000 Remove bad quotes.
plone/tiles/interfaces.py:93:21: Q000 Remove bad quotes.
plone/tiles/interfaces.py:94:21: Q000 Remove bad quotes.
plone/tiles/interfaces.py:95:21: Q000 Remove bad quotes.
plone/tiles/interfaces.py:173:40: Q000 Remove bad quotes.
plone/tiles/__init__.py:4:1: I003 isort expected 1 blank line in imports, found 0
plone/tiles/testing.py:45:9: D001 found xmlconfig.file( replace it with self.loadZCML(
plone/tiles/testing.py:47:9: D001 found xmlconfig.file( replace it with self.loadZCML(
plone/tiles/type.py:41:16: Q000 Remove bad quotes.
plone/tiles/data.py:196:1: C901 'map_to_pairs' is too complex (14)
plone/tiles/data.py:248:1: C901 'encode' is too complex (16)
plone/tiles/data.py:331:1: C901 'decode' is too complex (13)
plone/tiles/meta.py:23:15: Q000 Remove bad quotes.
plone/tiles/meta.py:24:21: Q000 Remove bad quotes.
plone/tiles/meta.py:29:15: Q000 Remove bad quotes.
plone/tiles/meta.py:30:21: Q000 Remove bad quotes.
plone/tiles/meta.py:35:15: Q000 Remove bad quotes.
plone/tiles/meta.py:41:15: Q000 Remove bad quotes.
plone/tiles/meta.py:42:21: Q000 Remove bad quotes.
plone/tiles/meta.py:47:15: Q000 Remove bad quotes.
plone/tiles/meta.py:48:21: Q000 Remove bad quotes.
plone/tiles/meta.py:49:21: Q000 Remove bad quotes.
plone/tiles/meta.py:54:15: Q000 Remove bad quotes.
plone/tiles/meta.py:55:21: Q000 Remove bad quotes.
plone/tiles/meta.py:60:15: Q000 Remove bad quotes.
plone/tiles/meta.py:61:21: Q000 Remove bad quotes.
plone/tiles/meta.py:66:15: Q000 Remove bad quotes.
plone/tiles/meta.py:67:21: Q000 Remove bad quotes.
plone/tiles/meta.py:72:15: Q000 Remove bad quotes.
plone/tiles/meta.py:77:15: Q000 Remove bad quotes.
plone/tiles/meta.py:82:15: Q000 Remove bad quotes.
plone/tiles/meta.py:83:21: Q000 Remove bad quotes.
plone/tiles/meta.py:88:15: Q000 Remove bad quotes.
plone/tiles/meta.py:89:21: Q000 Remove bad quotes.
plone/tiles/meta.py:94:15: Q000 Remove bad quotes.
plone/tiles/meta.py:95:21: Q000 Remove bad quotes.
plone/tiles/esi.py:12:1: I003 isort expected 1 blank line in imports, found 0
plone/tiles/esi.py:12:1: I003 isort expected 1 blank line in imports, found 0
plone/tiles/esi.py:12:1: I003 isort expected 1 blank line in imports, found 0
plone/tiles/esi.py:17:1: I001 isort found an import in the wrong position
plone/tiles/esi.py:18:1: I001 isort found an import in the wrong position
plone/tiles/esi.py:19:1: I001 isort found an import in the wrong position
plone/tiles/esi.py:65:13: Q000 Remove bad quotes.
plone/tiles/esi.py:88:1: E302 expected 2 blank lines, found 1
plone/tiles/tile.py:9:1: I001 isort found an import in the wrong position
```
Follow [these instructions](https://github.com/plone/jenkins.plone.org/blob/master/docs/source/run-qa-on-package.rst) to reproduce it locally.


恢复


@hvelarde Jenkins CI reporting about code analysis
See the full report here: http://jenkins.plone.org/job/package-plone.tiles/29/violations
```
plone/tiles/interfaces.py:19:15: Q000 Remove bad quotes.
plone/tiles/interfaces.py:21:40: Q000 Remove bad quotes.
plone/tiles/interfaces.py:23:42: Q000 Remove bad quotes.
plone/tiles/interfaces.py:25:35: Q000 Remove bad quotes.
plone/tiles/interfaces.py:27:43: Q000 Remove bad quotes.
plone/tiles/interfaces.py:30:15: Q000 Remove bad quotes.
plone/tiles/interfaces.py:31:21: Q000 Remove bad quotes.
plone/tiles/interfaces.py:32:21: Q000 Remove bad quotes.
plone/tiles/interfaces.py:33:21: Q000 Remove bad quotes.
plone/tiles/interfaces.py:59:15: Q000 Remove bad quotes.
plone/tiles/interfaces.py:60:21: Q000 Remove bad quotes.
plone/tiles/interfaces.py:61:21: Q000 Remove bad quotes.
plone/tiles/interfaces.py:65:15: Q000 Remove bad quotes.
plone/tiles/interfaces.py:66:21: Q000 Remove bad quotes.
plone/tiles/interfaces.py:67:21: Q000 Remove bad quotes.
plone/tiles/interfaces.py:68:21: Q000 Remove bad quotes.
plone/tiles/interfaces.py:69:21: Q000 Remove bad quotes.
plone/tiles/interfaces.py:70:21: Q000 Remove bad quotes.
plone/tiles/interfaces.py:80:21: Q000 Remove bad quotes.
plone/tiles/interfaces.py:81:21: Q000 Remove bad quotes.
plone/tiles/interfaces.py:82:39: Q000 Remove bad quotes.
plone/tiles/interfaces.py:83:44: Q000 Remove bad quotes.
plone/tiles/interfaces.py:90:15: Q000 Remove bad quotes.
plone/tiles/interfaces.py:91:21: Q000 Remove bad quotes.
plone/tiles/interfaces.py:92:21: Q000 Remove bad quotes.
plone/tiles/interfaces.py:93:21: Q000 Remove bad quotes.
plone/tiles/interfaces.py:94:21: Q000 Remove bad quotes.
plone/tiles/interfaces.py:95:21: Q000 Remove bad quotes.
plone/tiles/interfaces.py:173:40: Q000 Remove bad quotes.
plone/tiles/__init__.py:4:1: I003 isort expected 1 blank line in imports, found 0
plone/tiles/testing.py:45:9: D001 found xmlconfig.file( replace it with self.loadZCML(
plone/tiles/type.py:41:16: Q000 Remove bad quotes.
plone/tiles/data.py:196:1: C901 'map_to_pairs' is too complex (14)
plone/tiles/data.py:248:1: C901 'encode' is too complex (16)
plone/tiles/data.py:331:1: C901 'decode' is too complex (13)
plone/tiles/meta.py:23:15: Q000 Remove bad quotes.
plone/tiles/meta.py:24:21: Q000 Remove bad quotes.
plone/tiles/meta.py:29:15: Q000 Remove bad quotes.
plone/tiles/meta.py:30:21: Q000 Remove bad quotes.
plone/tiles/meta.py:35:15: Q000 Remove bad quotes.
plone/tiles/meta.py:41:15: Q000 Remove bad quotes.
plone/tiles/meta.py:42:21: Q000 Remove bad quotes.
plone/tiles/meta.py:47:15: Q000 Remove bad quotes.
plone/tiles/meta.py:48:21: Q000 Remove bad quotes.
plone/tiles/meta.py:49:21: Q000 Remove bad quotes.
plone/tiles/meta.py:54:15: Q000 Remove bad quotes.
plone/tiles/meta.py:55:21: Q000 Remove bad quotes.
plone/tiles/meta.py:60:15: Q000 Remove bad quotes.
plone/tiles/meta.py:61:21: Q000 Remove bad quotes.
plone/tiles/meta.py:66:15: Q000 Remove bad quotes.
plone/tiles/meta.py:67:21: Q000 Remove bad quotes.
plone/tiles/meta.py:72:15: Q000 Remove bad quotes.
plone/tiles/meta.py:77:15: Q000 Remove bad quotes.
plone/tiles/meta.py:82:15: Q000 Remove bad quotes.
plone/tiles/meta.py:83:21: Q000 Remove bad quotes.
plone/tiles/meta.py:88:15: Q000 Remove bad quotes.
plone/tiles/meta.py:89:21: Q000 Remove bad quotes.
plone/tiles/meta.py:94:15: Q000 Remove bad quotes.
plone/tiles/meta.py:95:21: Q000 Remove bad quotes.
plone/tiles/esi.py:55:13: Q000 Remove bad quotes.
```
Follow [these instructions](https://github.com/plone/jenkins.plone.org/blob/master/docs/source/run-qa-on-package.rst) to reproduce it locally.