TeamCity OSS :: Kubernetes Mesos :: 4 - Smoke Tests [Build 17677](https://teamcity.mesosphere.io/viewLog.html?buildId=148605&buildTypeId=Oss_KubernetesMesos_5SmokeTestsDockerMesos&guest=1) outcome was **SUCCESS**
Summary: Tests passed: 1, ignored: 243 Build time: 00:05:27


cool thanks!


@173210  Looks like a bad idea mixing system and user includes. Better keep #include "..." and use -iquote instead of -I
https://gcc.gnu.org/onlinedocs/cpp/Include-Syntax.html


Copy/paste nerf!


Should make the max size 0.


Avoid unused local variables such as '$ability'.


TeamCity Civic Assembly :: Build frontend [Build default-frontend-7](http://build.civicconnecttlabs.com/tc/viewLog.html?buildId=1500&buildTypeId=CivicAssembly_BuildFrontend&guest=1) is now running


Photon
---


c'est etrange que ça le fasse a nous mais pas a toi :/


message is wrong. should have `explicitly require set`


Can you add C++ as another example of a backend language? Looks great otherwise! :thumbsup:


I don't have a qt4 build atm but I trust you.


My system doesn't seem to have a binary by this name (I don't know if anything else does).

Replacing `tempfile` with `mktemp` works.


teste


I just plain don't understand what's going on here.


commit


Yeah, that's a lot of extra effort. However, at the moment I can't think of another solution either. The only possibility that came to my mind was `slice`, but that's pretty "expensive" in terms of performance.


Do not merge the commits at this point please.


@jmchapman Yes, there's a slight delay. The commit should be visible in the repository immediately; the .github.io page takes a few minutes to update, as it runs jekyll to generate the website.


I'm thinking we should avoid duplicate test cases. There are already tons of them and I don't feel like adding more. For units we know are generated the same way, I don't think we should generate N tests, but instead just test one or a couple of them. For instance, it could be useful to test Length and Information, since they have different numeric representation internally (double vs decimal).


Once https://github.com/gregorio-project/gregorio/pull/966 is merged, there won't be any need for this whole paragraph and the changes in `\grecommentary` below. Also, I don't see the top of the "f" being cut in Libertine... Looking at it in fontforge, the bounding is correct (at least in the version I have, 5.1.6), are you sure about the f being cut?


ArrayList<Category> categories = categoryManagement.getAllCategory();
for (Category category:categories ){
list.add(categoty.getCategory())}
return list;


MNT=/mnt

chrootx() {
    arch-chroot "$MNT" "$@"
}

mirrorlist() {
    country=$1; shift
    tmp=$(mktemp)

    # Retrieve mirrorlist from server
    curl -o "$tmp" "https://www.archlinux.org/mirrorlist/?country=$country"

    if ! cat "$tmp" | head -n 1 | grep -q "^##$"; then
        echo "Unable to find a mirrorlist for country '$country'." >&2
        return 1
    fi

    # Uncomment server lines
    sed -i "s/^#Server/Server/g" "$tmp"

    # Write new mirrorlist
    cat "$tmp" > /etc/pacman.d/mirrorlist
}

bootstrap() {
    pacstrap "$MNT" "$@"
}

fstab() {
    genfstab "$@" "$MNT" >> "$MNT/etc/fstab"
}

locale() {
    locale=$1; shift

    if ! grep -q "^#$locale " "$MNT/etc/locale.gen"; then
        echo "Given locale '$locale' does not exists in '$MNT/etc/locale.gen'." >&2
        return 1
    fi

    # Uncomment locale
    sed -i "/^#$locale /s/^#//g" "$MNT/etc/locale.gen"

    # Generate
    chrootx locale-gen
}

linux() {
    chrootx mkinitcpio -p linux
}

syslinuxi() {
    disk=$1; shift

    # Install package and init
    pacstrap "$MNT" syslinux
    chrootx syslinux-install_update -aim

    # Change default disk to real disk
    sed -i "s/sda3/$disk/g" "$MNT/boot/syslinux/syslinux.cfg"
}

autoconfigure() {
    configure=$1; shift
    echo "# AUTORUN ARCH CONFIGURE" >> "$MNT/root/.profile"
    echo "$configure" >> "$MNT/root/.profile"
}

finish() {
    chrootx passwd
    umount -R "$MNT"
    reboot
}


Are the changes in this file accidentally commited?


OK. I just wanted this function explained. The recursion had me confused.


Found this change per accident, think it's not good to save this kind of information in config table.
I wrote a change for it to log the name in cron_lock https://tracker.phpbb.com/browse/PHPBB3-14012
It's working perfectly and no extra config record needed.


rien a voir, mais je viens de tester Stundman, énorme progrès, j'affiche enfin le ingame :D
![capture d ecran 2016-02-28 22 31 24](https://cloud.githubusercontent.com/assets/5261759/13382028/16eea628-de6b-11e5-9ccf-670702d5d068.png)


TeamCity Civic Assembly :: Build frontend [Build default-frontend-7](http://build.civicconnecttlabs.com/tc/viewLog.html?buildId=1500&buildTypeId=CivicAssembly_BuildFrontend&guest=1) outcome was **SUCCESS**
Summary: Tests passed: 208 Build time: 00:07:41


@ldoktor a couple of comments:

* We already have a non-ideal implementation, based on the fact that we are silent about removal link removal failures. On the progression you mentioned:

    1. avocado1 removes the symlink
    2. avocado2 removes the symlink
    3. avocado2 creates the symlink
    4. avocado1 crashes as the symlink already exists

We can have a (link removal) failure in step 2, and it will go unnoticed.

* The solution, IMHO, is quite the opposite. Instead of silencing the creation of the symlink, we should fail when the expectation is not met.

* *"when other process already created it, it means we are not the latest result anymore"*. We can not be sure about that, because there's no definition of what it means to be the **latest**. Do we mean the process that started the latest? The process that tried to create the link the latest? What we need is an atomic tie-breaker.

Finally, I did some experimentation and came up with this:

```
diff --git a/avocado/core/job.py b/avocado/core/job.py
index 5eebbf1..6a05e55 100644
--- a/avocado/core/job.py
+++ b/avocado/core/job.py
@@ -147,14 +147,25 @@ class Job(object):
         """
         basedir = os.path.dirname(self.logdir)
         basename = os.path.basename(self.logdir)
+        proc_latest = os.path.join(basedir, "latest.%s" % os.getpid())
         latest = os.path.join(basedir, "latest")
         if os.path.exists(latest) and not os.path.islink(latest):
             raise OSError('"%s" already exists and is not a symlink' % latest)
-        try:
-            os.unlink(latest)
-        except OSError:
-            pass
-        os.symlink(basename, latest)
+
+        # We can be pretty confident that, if a symlink with the same name as
+        # ours exist, that is, "latest.<PID>", it was generated by a previous
+        # avocado run that crashed or was interrupted between the per-process
+        # link creation and its rename into "latest". Either way, we can assume
+        # we have rights over the "latest.<PID>" name, and because of that, we
+        # can try to remove the previous one. If the removal fails, an
+        # exception should and will be raised, just like it's raised manually
+        # when "latest" exist and is not a "symlink".
+        if os.path.exists(proc_latest):
+            os.unlink(proc_latest)
+
+        os.symlink(basename, proc_latest)
+        # The rename is atomic, and this defines which one is the latest job
+        os.rename(proc_latest, latest)

     def _start_sysinfo(self):
         if hasattr(self.args, 'sysinfo'):

```

Please review the ideas in there. Thanks!


Thank you! I know that a hue app for setting capture zones is under development over here: https://github.com/FlyingHippo/MovieHue/
I'm going to be keeping an eye on that repository for when there are more updates.


I have mixed feelings about adding overloads with nullable, but I do see it has some convenience and I don't have any better suggestions.

However, I do think we should avoid duplicating the code, and return null or call the original method and return that. I'm just slightly worried that the library is getting unnecessarily fat, byte-wise.


Notice how this doesn't stop the execution of the block. It calls the callback, but the next line also runs. Eventually, the callback gets called again on line 33, even if there was an error.


👋, we just deprecated the `rails` namespace in https://github.com/rails/rails/pull/23439 — don't think this is in beta3, did you try with latest master? 😁


aand more edits


Я немного поправил Lambda. Сделал тест.  Вот регулярное выражение,  ^Hi Ruslan$, на этом выражении оно нашло сообщение:
Author: User 1
 Hi Ruslan
 2016-02-16 12:08:19


Hey, looks like an attempt at sneaking a workaround for the slowdown currently imposed by enabling ORCJIT. :-)


@mauritsvanrees Jenkins CI reporting about code analysis
See the full report here: http://jenkins.plone.org/job/package-plone.indexer/6//violations
```
plone/indexer/interfaces.py:0:1: I001 isort found changes, run it on the file
```
Follow [these instructions](https://github.com/plone/jenkins.plone.org/blob/master/docs/source/run-qa-on-package.rst) to reproduce it locally.


Should probably escape all illegal chars too, but too lazy for that now


Interesting. Wasn't aware of these lines. I encountered Screen.notifySettingsChanged() problem here too: https://github.com/MachinePublishers/jBrowserDriver/commit/2e05797f30d780ded96a345b2b46736bb48b966d

What version of Java 8 are you using?


It was being cut on my machine, though when I checked the bounding box in another document (using `\fboxsep=0pt\fbox{\itshape f}`), it went all the way to the top.  It might be that my understanding of why it was getting cut was innaccurate.  Are you saying that when you compile the document you don't see the "f" getting cut off (without the rule, of course)?


>The recursion had me confused.

Well I was wrong. This is what had me confused: I thought the call to `Session::expandCategory()` in the 2nd foreach was a call to the same function (aka `expandCategories()`).


TeamCity OSS :: Kubernetes Mesos :: 4 - Smoke Tests [Build 17678](https://teamcity.mesosphere.io/viewLog.html?buildId=148606&buildTypeId=Oss_KubernetesMesos_5SmokeTestsDockerMesos&guest=1) outcome was **SUCCESS**
Summary: Tests passed: 1, ignored: 243 Build time: 00:09:24


A lot of sneakiness going around right now, ref https://github.com/JuliaLang/julia/pull/15258#discussion-diff-54300738 ;)


I feel really uneasy of this -- there are all kinds of keys here. Such things should be placed in 0700 file somewhere instead -- since `libreswan` runs with root rights this should be trivial. Otherwise anyone who has any kind of access to the server (simple Web exploit) can read the file in the Nix store and then connect to the server's internal network.


get a life nerd


Hi John, thanks again for helping me making this better.

Can we make it a single task and pass it a variable such as `ntpd_state` -> `state={{ ntpd_state }}`

This way it reduces std output and you skip a conditional check...

I will undoubtly merge it!

Thanks again!


This should fix https://github.com/libretro/Genesis-Plus-GX/issues/43


A float can be of higher value than an int. Use long instead.


Comments and formatting makes code easy to read.


Indeed, I don't see the f being cut... Maybe there's a problem with anti-aliasing sometimes? If you open the pdf with gimp with auto-aliasing disabled, do you see the f cut?


revert this, useless flags , it is already defined in samsung common i think ...


ahhh ok, bon ba enfaite le jeux est jouable :D
je tourne a 2 fps en llvm et quand rpcs3 affiche les erreur rsx le jeux freeze
j'avais oublié que le jeux etais beau, et graphiqueùment ya quasqiment aucun bug, a part j'ai vu les arbres qui fessait des truc etrange, comme des carré gris sur les feuille ^^
![capture d ecran 2016-02-28 22 42 57](https://cloud.githubusercontent.com/assets/5261759/13382107/b5d993d2-de6c-11e5-9268-e06bc2f25207.png)


I'm not a fan of such changes. `! $res` is totally fine IMO.


already wait flag on this line


revert


That shouldn't be changed. If Scrutinizer has issues with this format then we have to make Scrutinizer to ignore them.


Those might indeed be useful; I haven't reviewed them deeply but I haven't found a `trim` function in `lib`. If you want, let's move this to `strings.nix` and look at them separately.


@oschulze Updates and links are great.
Here's my :+1:


Very good point. These steps are extra steps just like the applying crop to the source data according to (sx, sh, sw, sh). So I label these steps as "format the ImageBitmap object's bitmap data", and this step happens after cropping the source data. Does that make sense?


@mauritsvanrees Jenkins CI reporting about code analysis
See the full report here: http://jenkins.plone.org/job/package-plone.resourceeditor/2//violations
```
plone/resourceeditor/__init__.py:0:1: C101 Coding magic comment not found
plone/resourceeditor/__init__.py:0:1: I001 isort found changes, run it on the file
plone/resourceeditor/__init__.py:19:31: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:0:1: I001 isort found changes, run it on the file
plone/resourceeditor/browser.py:80:16: P002 found "hasattr", consider replacing it
plone/resourceeditor/browser.py:144:31: S001 found %i formatter
plone/resourceeditor/browser.py:146:39: S001 found %s formatter
plone/resourceeditor/browser.py:258:19: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:258:20: S001 found %s formatter
plone/resourceeditor/browser.py:283:13: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:284:13: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:285:13: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:286:13: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:360:13: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:361:13: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:362:13: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:363:13: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:368:1: C901 'FileManagerActions.__call__' is too complex (13)
plone/resourceeditor/browser.py:394:22: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:395:37: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:398:22: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:399:37: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:400:37: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:403:22: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:404:37: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:405:37: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:408:22: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:409:37: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:410:37: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:413:22: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:414:37: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:415:37: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:418:22: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:419:37: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:428:19: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:450:27: S001 found %s formatter
plone/resourceeditor/browser.py:458:1: C901 'FileManager.__call__' is too complex (13)
plone/resourceeditor/browser.py:523:24: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:523:35: S001 found %s formatter
plone/resourceeditor/browser.py:550:16: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:550:17: S001 found %s formatter
plone/resourceeditor/browser.py:555:16: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:555:17: S001 found %s formatter
plone/resourceeditor/browser.py:617:26: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:617:27: S001 found %s formatter
plone/resourceeditor/browser.py:620:26: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:620:27: S001 found %s formatter
plone/resourceeditor/browser.py:652:35: S001 found %i formatter
plone/resourceeditor/browser.py:654:43: S001 found %s formatter
plone/resourceeditor/browser.py:662:19: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:662:20: S001 found %s formatter
plone/resourceeditor/browser.py:666:23: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:666:24: S001 found %s formatter
plone/resourceeditor/browser.py:673:28: S001 found %s formatter
plone/resourceeditor/browser.py:676:27: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:676:28: S001 found %s formatter
plone/resourceeditor/browser.py:773:23: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:773:24: S001 found %s formatter
plone/resourceeditor/browser.py:798:13: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:799:13: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:800:13: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:801:13: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:802:13: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:816:19: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:816:20: S001 found %s formatter
plone/resourceeditor/browser.py:840:13: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:841:13: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:842:13: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:843:13: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:879:13: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:880:13: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:881:13: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:882:13: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:961:28: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:961:29: S001 found %s formatter
plone/resourceeditor/browser.py:984:64: S001 found %s formatter
plone/resourceeditor/browser.py:1049:25: S001 found %s formatter
plone/resourceeditor/browser.py:1066:13: Q000 Remove bad quotes.
plone/resourceeditor/testing.py:28:10: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:0:1: I001 isort found changes, run it on the file
plone/resourceeditor/tests.py:2:80: E501 line too long (82 > 79 characters)
plone/resourceeditor/tests.py:24:21: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:24:33: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:40:42: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:42:52: P103 other string does contain unindexed parameters
plone/resourceeditor/tests.py:42:52: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:130:22: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:131:22: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:133:25: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:145:25: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:149:22: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:150:22: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:152:25: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:164:21: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:164:33: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:168:22: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:169:22: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:171:25: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:176:37: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:176:50: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:182:21: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:182:33: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:186:22: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:187:22: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:189:25: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:189:33: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:197:37: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:197:50: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:205:28: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:205:33: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:212:37: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:212:50: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:217:21: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:217:33: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:221:28: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:221:33: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:226:37: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:226:50: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:235:32: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:235:37: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:242:21: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:242:33: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:246:28: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:246:41: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:255:37: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:255:49: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:260:25: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:261:30: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:261:42: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:265:28: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:265:47: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:274:46: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:274:58: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:279:21: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:279:33: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:280:21: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:280:32: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:284:28: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:284:41: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:293:37: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:293:49: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:298:21: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:298:33: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:302:28: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:314:30: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:314:42: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:318:28: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:332:28: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:341:25: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:342:21: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:342:33: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:346:26: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:346:39: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:353:26: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:358:25: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:359:30: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:359:42: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:360:21: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:360:33: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:364:26: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:364:39: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:371:26: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:376:21: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:376:33: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:380:26: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:380:39: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:391:21: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:391:33: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:394:26: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:394:47: 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.


Hey NP.

I'm still learning Ansible and I'm not sure how I would set an ntpd_state variable, based on how another variable (ntpd_enabled) is set.

Any idea how that would work or have you seen an example of that?


You explicitly set in the constructor anyway...


@obct537 Jenkins CI reporting about code analysis
See the full report here: http://jenkins.plone.org/job/package-plone.resourceeditor/1//violations
```
plone/__init__.py:0:1: C101 Coding magic comment not found
plone/__init__.py:4:20: E261 at least two spaces before inline comment
plone/resourceeditor/__init__.py:0:1: C101 Coding magic comment not found
plone/resourceeditor/__init__.py:0:1: I001 isort found changes, run it on the file
plone/resourceeditor/__init__.py:19:31: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:0:1: C101 Coding magic comment not found
plone/resourceeditor/browser.py:0:1: I001 isort found changes, run it on the file
plone/resourceeditor/browser.py:84:16: P002 found "hasattr", consider replacing it
plone/resourceeditor/browser.py:91:21: E265 block comment should start with '# '
plone/resourceeditor/browser.py:92:21: E265 block comment should start with '# '
plone/resourceeditor/browser.py:97:1: W293 blank line contains whitespace
plone/resourceeditor/browser.py:134:80: E501 line too long (88 > 79 characters)
plone/resourceeditor/browser.py:140:13: F841 local variable 'created' is assigned to but never used
plone/resourceeditor/browser.py:150:31: S001 found %i formatter
plone/resourceeditor/browser.py:152:39: S001 found %s formatter
plone/resourceeditor/browser.py:176:12: E111 indentation is not a multiple of four
plone/resourceeditor/browser.py:181:1: W293 blank line contains whitespace
plone/resourceeditor/browser.py:182:13: E265 block comment should start with '# '
plone/resourceeditor/browser.py:182:80: E501 line too long (82 > 79 characters)
plone/resourceeditor/browser.py:183:80: E501 line too long (90 > 79 characters)
plone/resourceeditor/browser.py:189:1: W293 blank line contains whitespace
plone/resourceeditor/browser.py:194:1: W293 blank line contains whitespace
plone/resourceeditor/browser.py:235:35: E128 continuation line under-indented for visual indent
plone/resourceeditor/browser.py:236:35: E128 continuation line under-indented for visual indent
plone/resourceeditor/browser.py:257:19: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:257:20: S001 found %s formatter
plone/resourceeditor/browser.py:282:13: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:283:13: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:284:13: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:285:13: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:348:35: E128 continuation line under-indented for visual indent
plone/resourceeditor/browser.py:349:35: E128 continuation line under-indented for visual indent
plone/resourceeditor/browser.py:356:13: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:357:13: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:358:13: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:359:13: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:364:1: C901 'FileManagerActions.__call__' is too complex (11)
plone/resourceeditor/browser.py:386:22: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:387:37: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:390:22: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:391:37: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:392:37: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:395:22: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:396:37: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:397:37: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:400:22: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:401:37: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:402:37: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:405:22: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:406:37: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:407:37: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:410:22: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:411:37: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:414:1: E302 expected 2 blank lines, found 1
plone/resourceeditor/browser.py:419:19: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:441:27: S001 found %s formatter
plone/resourceeditor/browser.py:449:1: C901 'FileManager.__call__' is too complex (13)
plone/resourceeditor/browser.py:514:24: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:514:35: S001 found %s formatter
plone/resourceeditor/browser.py:541:16: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:541:17: S001 found %s formatter
plone/resourceeditor/browser.py:542:36: E127 continuation line over-indented for visual indent
plone/resourceeditor/browser.py:546:16: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:546:17: S001 found %s formatter
plone/resourceeditor/browser.py:557:8: E122 continuation line missing indentation or outdented
plone/resourceeditor/browser.py:558:8: E122 continuation line missing indentation or outdented
plone/resourceeditor/browser.py:559:8: E122 continuation line missing indentation or outdented
plone/resourceeditor/browser.py:607:26: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:607:27: S001 found %s formatter
plone/resourceeditor/browser.py:610:26: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:610:27: S001 found %s formatter
plone/resourceeditor/browser.py:635:80: E501 line too long (88 > 79 characters)
plone/resourceeditor/browser.py:642:35: S001 found %i formatter
plone/resourceeditor/browser.py:643:17: E128 continuation line under-indented for visual indent
plone/resourceeditor/browser.py:643:43: S001 found %s formatter
plone/resourceeditor/browser.py:643:80: E501 line too long (110 > 79 characters)
plone/resourceeditor/browser.py:651:19: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:651:20: S001 found %s formatter
plone/resourceeditor/browser.py:655:23: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:655:24: S001 found %s formatter
plone/resourceeditor/browser.py:662:28: S001 found %s formatter
plone/resourceeditor/browser.py:665:27: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:665:28: S001 found %s formatter
plone/resourceeditor/browser.py:719:35: E128 continuation line under-indented for visual indent
plone/resourceeditor/browser.py:720:35: E128 continuation line under-indented for visual indent
plone/resourceeditor/browser.py:742:24: E711 comparison to None should be 'if cond is not None:'
plone/resourceeditor/browser.py:758:23: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:758:24: S001 found %s formatter
plone/resourceeditor/browser.py:783:13: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:784:13: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:785:13: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:786:13: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:787:13: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:801:19: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:801:20: S001 found %s formatter
plone/resourceeditor/browser.py:825:13: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:826:13: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:827:13: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:828:13: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:856:35: E128 continuation line under-indented for visual indent
plone/resourceeditor/browser.py:857:35: E128 continuation line under-indented for visual indent
plone/resourceeditor/browser.py:863:13: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:864:13: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:865:13: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:866:13: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:945:28: Q000 Remove bad quotes.
plone/resourceeditor/browser.py:945:29: S001 found %s formatter
plone/resourceeditor/browser.py:968:64: S001 found %s formatter
plone/resourceeditor/browser.py:1033:25: S001 found %s formatter
plone/resourceeditor/browser.py:1050:13: Q000 Remove bad quotes.
plone/resourceeditor/testing.py:0:1: C101 Coding magic comment not found
plone/resourceeditor/testing.py:0:1: I001 isort found changes, run it on the file
plone/resourceeditor/testing.py:15:80: E501 line too long (92 > 79 characters)
plone/resourceeditor/testing.py:23:69: Q000 Remove bad quotes.
plone/resourceeditor/testing.py:23:80: E501 line too long (103 > 79 characters)
plone/resourceeditor/tests.py:0:1: C101 Coding magic comment not found
plone/resourceeditor/tests.py:0:1: I001 isort found changes, run it on the file
plone/resourceeditor/tests.py:3:80: E501 line too long (82 > 79 characters)
plone/resourceeditor/tests.py:24:21: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:24:33: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:40:42: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:42:52: P103 other string does contain unindexed parameters
plone/resourceeditor/tests.py:42:52: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:130:22: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:131:22: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:133:25: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:145:25: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:149:22: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:150:22: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:152:25: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:164:21: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:164:33: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:168:22: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:169:22: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:171:25: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:176:37: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:176:50: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:182:21: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:182:33: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:186:22: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:187:22: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:189:25: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:189:33: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:197:37: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:197:50: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:205:28: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:205:33: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:212:37: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:212:50: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:217:21: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:217:33: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:221:28: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:221:33: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:226:37: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:226:50: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:235:32: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:235:37: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:242:21: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:242:33: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:246:28: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:246:41: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:255:37: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:255:49: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:260:25: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:261:30: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:261:42: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:265:28: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:265:47: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:274:46: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:274:58: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:279:21: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:279:33: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:280:21: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:280:32: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:284:28: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:284:41: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:293:37: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:293:49: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:298:21: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:298:33: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:302:28: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:314:30: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:314:42: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:318:28: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:332:28: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:341:25: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:342:21: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:342:33: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:346:26: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:346:39: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:353:26: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:358:25: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:359:30: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:359:42: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:360:21: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:360:33: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:364:26: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:364:39: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:371:26: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:376:21: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:376:33: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:380:26: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:380:39: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:391:21: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:391:33: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:394:26: Q000 Remove bad quotes.
plone/resourceeditor/tests.py:394:47: 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.


This actually is just because material dialogs needs to be updated. Can you revert this and update that dependency to the latest version instead?


This is what I get on my machine without the two corrections (before applying #966):
[main-no-margin.pdf](https://github.com/rpspringuel/gregorio-project.github.io/files/150150/main-no-margin.pdf)


Indeed. Thanks.


Oh, no, I totally used pretty much your entire css layout. I made a few
changes, but I learned a lot more about the way css works due to the way
you did it.  the only thing I put back to the way it was before is I wanted
the prompt next to the input box, but you totally got the css stuff the way
I wanted.


$ cat input
this   is input	file
you need	to read this
$ ./a.out < input
this is input file
you need to read this


@173210  googled a bit more about pragma once vs include guards. Looks like even after pragma once became undeprecated, newer GCC versions may be unpredictably slower with it. So yes, it really looks like not worth reducing a header file by two lines. Will fall back to include guards before next rebase from master.


Bad


Reference: Exercise 1-9. Write a program to copy its input to its output, replacing each string of one or more blanks by a single blank
The C PROGRAMMING LANGUAGE, Second Edition, Brian W. Kernighan & Dennis M. Ritchie


This is exactly why we need code reviews.  I'll add comments before we merge this into master


If your talking about the last 16 bits set to zero, I fell it's the job of the caller to give ready to use IV, so SRTPCipherCTR* are just standard AES CTR implementation (with simple init/process interface)


And with gregorio-project/gregorio#966 applied it looks like this:
[main-no-margin.pdf](https://github.com/rpspringuel/gregorio-project.github.io/files/150151/main-no-margin.pdf)


$ cat input
this   		is input \b file
you need	to \\ read this
$ ./a.out < input
this   \t\tis input \\b file
you need\tto \\\\ read this


Reference: Exercise 1-10. Write a program to copy its input to its output, replacing each tab by \ t, each backspace by \b, and each backslash by \ \. This makes tabs and backspaces visible in an unambiguous way.
The C PROGRAMMING LANGUAGE, Second Edition, Brian W. Kernighan & Dennis M. Ritchie


Resolves https://github.com/ArmorDarks/ekzo.sass/issues/43


Thanks!


You should let the scripter do any Z corrections on there positions (Z - 0.3). Example in my gamemode I already compensate this for most positions and teleports etc, this could mess with some people's GM.


Resolves https://github.com/ArmorDarks/ekzo.sass/issues/46


Resolves https://github.com/ArmorDarks/ekzo.sass/issues/47


ps, I had vDiagram on the mind when I wrote the commit, but this is really for Extremes report


Yeah, I'd be fine suppressing this in test mode.


pinging @georgebarnick


@S7aesis i know. But it isnt working yet and i tried at least 3 tools for capturing now. Hueimmersive is the tool with  no errors. Its slim and a 2 click start wonder. No extra software is needed.

I would strongly recommend to keep developing on hueimmersive rather then try to invent the wheel new.

Thanks for the download link :)


I've just added this: This will also have fixed the need for a root element in included templates, take a look at #46 for examples.

Hopefully now this is implemented and will work for most use-cases I can focus on some of the other issues.


can you add
   			$player1->setGamemode(1);
   			$player2->setGamemode(1);
when match is done and can you try to increase 5 blocks to 30 to spawn.

And also add 8 arrows and 1 bow?

I would appriciate it alot :)


@rErEaT https://github.com/IntellectualSites/PlotSquared/blob/master/target/PlotSquared-Bukkit.jar


Not quite O(log n) as required :)

a regex is best case O(N)
and this loop is O(N) too

😈


@AlbertoSONIC Reopened #392 for the launcher


I thought it would be better D:


I'll drop the dlopen part, as the OpenSSL ABI isn't stable enough (see one of my email on the ML)


einer seltsamen


Hi,
good point. I'll do as much as I've positively tested.


proiob, tot ok :)


u should use here: armv7-a-neon


accidentally pushed to master... did git revert origin af74a8b9ccc2cd6feb3a9148fec3e6cd42021a7c
and my console said it reverted the files. Idk why it's still here though, unless it's just regestering the commit/revert


`0: Object;` or  `0: any;` ?


Also, finally I've changed my mind about italic correction by default... Maybe the way to change the commentary should be cleaner though, something like

```
\grechangestyle{commentary}{\begingroup\footnotesize\itshape}[\ifvmode\else\/\fi\endgroup]
```

?


same here: `0: Object;` or  `0: any;` ?


You don't need to add these to the `package.json` as they are included in the `babel-preset-es2015`. I know I said that in a comment the other day but when I said that I didn't know that the user's `package.json` had possibly already included `babel-preset-es2015`. Sorry for the confusion.


Off-by-one typo: P*or*duct  😂


Oh yeah, I'm sorry for the quickfix, I just wanted to get it working so I could do stuff. I'll fix it up.


Thanks for sharing this btw, looks amazing!


Why not `EscriptTestWithoutMain`? (with capitalized letters)


Storing JSON data per user can result in complicated migrations. It would probably be better to store the data in a structured format. You don't need a second backend, you can just reuse the existing persistent or postgresql connection and model.


Can you explain the regex(or what you want to match) so I can double check with my limited knowledge on this?


`debug` calls `console.log` under the hood.  This test runs user code that calls `debug` and then we check if `console.log` as called.


I'm actually thinking the best thing to do is subtract the season number from the season year...It may not be 100% accurate, but it will be most times.


Okay then Brickimedia/extensions needs to be updated since the GlobalContribs submodule hasn't been updated in a year.


Yeah, and we do that, as we now tear down our whole graphics system every time we lose focus instead of letting it go away at some mysterious later point anyway so can just drop this whole mechanism... feels better. Although it would be nice to be able to keep context around in the background for a while I don't trust Android to do it right anymore :P


Thanks for sharing your own reflection on the class, Arthur. Interested in pursuing PE/VC post-graduation, I definitely share your perspective on potentially applying what we learnt in class to tech investing. I have learnt a lot from this course as well as from every teammate and much appreciated for the rewarding experience.


The main Foundation-Sites repo individually includes only the babel plugins we use to keep the repo lighter and save a little time during `npm install`. The entire `babel-preset-es2015` is included in the templates so that the user can add plugins from the preset to `.babelrc` and not have to also add them to `package.json`.


This was actually from https://github.com/zurb/foundation-sites/issues/8256#issuecomment-189725269

Again I had to do a lot of poking around before the gulp 4.0 CLI was even an issue - not sure if it was package.json, including the zurb-template .babelrc (though that didn't work for the commentor above) along with nuking node, npm, and gulp, but there's more to it than the gulp CLI npm hiccup.

The meh was more of an end to the process / warning for fellow teammates. ;)


Thanks to @stevenhoneyman for suggesting the fix!


since this constructor is new, maybe just remove it instead of adding it DOE?


>for in arrays

http://stackoverflow.com/questions/500504/why-is-using-for-in-with-array-iteration-such-a-bad-idea


I don't see any problem with your first pdf, here's a zoom with no anti-aliasing:

![f](https://cloud.githubusercontent.com/assets/60868/13382260/6b29c2d6-de70-11e5-86cf-83f05e988b58.png)


Why no code element for file names? According to the [spec](https://www.w3.org/TR/html5/text-level-semantics.html#the-code-element), it is proper to use it.

> The `code` element represents a fragment of computer code. This could be an XML element name, a file name, a computer program, or any other string that a computer would recognize.


These actually aren't errors. `godep` vendors all the libraries *without* their tests. All this is saying is that a lot of the packages in the vendor directory are missing tests.

We can ignore the vendor directory with a command like
```
go test -v $(go list ./... | grep -v /vendor/)
```
but I don't think that's necessary.


Might be worth hooking into PlayerAuth as well in case of a possible Steam ID spoof.


Thank you so much for the template fix
I now get this error though
> Warning: DOMDocument::createTextNode() expects parameter 1 to be string, object given in C:\Users\admin\OneDrive\Documents\Programing Stuff\Web development\serverRoot\elemukulek\lib\Transphporm\Property\Content.php on line 67
>Catchable fatal error: Argument 1 passed to DOMNode::appendChild() must be an instance of DOMNode, null given in C:\Users\admin\OneDrive\Documents\Programing Stuff\Web development\serverRoot\elemukulek\lib\Transphporm\Property\Content.php on line 67

tss
```css
main { content: template('calendar.xml'); bind: data(model.gettingdata()) }

title, #pageTitle { content: "Events"; }

// main:before { content: '<a class="button admin" href="events/create">Create Event</a>'; format: html; }

#calendar-title h2 { content: data(cal_links.datetime); format: date "F Y"; }

#year { bind: data(cal_links); }
#year option { repeat: data(year_select); content: iteration(); }
#year option:attr(value) { content: iteration(); }
#year option[value=data(year)]:attr(selected) { content: 'selected'; }
```
xml
```xml
<div id="calendar-title" class="row">
    <h2 class="title five columns">November 2015</h2><!-- style="padding-right: 30px; float: left; margin: 0.5ex 0;" -->
    <form class="controls calendar seven columns" method="get">
        <select name="month" id="month">
          <option value="1">January</option>
          <option value="2">February</option>
          <option value="3">March</option>
          <option value="4">April</option>
          <option value="5">May</option>
          <option value="6">June</option>
          <option value="7">July</option>
          <option value="8">August</option>
          <option value="9">September</option>
          <option value="10">October</option>
          <option value="11">November</option>
          <option value="12">December</option>
        </select>
        <select name="year" id="year">
          <option value="2015">2015</option>
        </select>
        <input name="submit" type="submit" value="Go" />
        <br />
      <a href="events/" class="previous"><< Previous Month</a> | <a href="events/" class="next">Next Month >></a>
    </form>
</div>
<div style="overflow-x: auto;" class="row">
<table class="calendar">
  <thead >
    <tr class="calendar-row">
      <th class="calendar-day-head">Sunday</th>
      <th class="calendar-day-head">Monday</th>
      <th class="calendar-day-head">Tuesday</th>
      <th class="calendar-day-head">Wednesday</th>
      <th class="calendar-day-head">Thursday</th>
      <th class="calendar-day-head">Friday</th>
      <th class="calendar-day-head">Saturday</th>
    </tr>
  </thead>
  <tbody>
    <tr class="calendar-row">
      <td class="calendar-day">
        <div class="day-number">1</div>
        <div class="event">
          <a href="events/5">Event 5</a><!--   -->
        </div>
      </td>
    </tr>
  </tbody>
</table>
</div>
```


Well done!


BTW, the Silicon Valley map you shared is very intriguing. I am visiting Bay Area this coming spring break and this map serves a great guidance.


Meh, commit message was supposed to be:

> new experimental redirect filter to lower breakage by EasyPrivacy's `/b/ss/*&aqe=`

Somehow the end got truncated.


I don't see this function called somewhere and I can't understand what you are trying to achieve with the `isDisableASMWhenCategorySavePathChanged()` if-else.
(I haven't finished reading it though)


is this correct?


problem


TeamCity OSS :: Kubernetes Mesos :: 4 - Smoke Tests [Build 17679](https://teamcity.mesosphere.io/viewLog.html?buildId=148615&buildTypeId=Oss_KubernetesMesos_5SmokeTestsDockerMesos&guest=1) outcome was **SUCCESS**
Summary: Tests passed: 1, ignored: 243 Build time: 00:04:53


i don't like the fact that a css file is inside the js folder


I haven't looked into the source yet but could you not have just used `httputil. NewSingleHostReverseProxy`. I see that theirs doesn't set the request Host but only the URL Host. What's the impact of not changing both?


does this do the same thing as including the app.css file in the head of each page?


good question. i don't remember why i did this. hm.


Minor typo issue


TeamCity OSS :: Kubernetes Mesos :: 4 - Smoke Tests [Build 17680](https://teamcity.mesosphere.io/viewLog.html?buildId=148617&buildTypeId=Oss_KubernetesMesos_5SmokeTestsDockerMesos&guest=1) outcome was **SUCCESS**
Summary: Tests passed: 1, ignored: 243 Build time: 00:04:00


Alright, so you would suggest something like this:
`if (err) { return callback(err); }`
`...`
`return callback(null, business)`


I'd prefer to change `$translation->save()` to only return true/false, but I don't know how much depends on the null return.

`! $res` is technically ambiguous so checking for it is the "right" thing to do if we're return it.


Ah, right.  Heh, yeah, I'm with you on that.

-[Unknown]


This is interesting but I think the model should stay the same.


Also, this is Electron, so you can probably write:

```js
console.log(`Window load time: ${global.atom.getWindowLoadTime()}ms`);
```


@gforcada Jenkins CI reporting about code analysis
See the full report here: http://jenkins.plone.org/job/package-plone.resourceeditor/3//violations
```
plone/resourceeditor/browser.py:84:16: P002 found "hasattr", consider replacing it
plone/resourceeditor/browser.py:372:1: C901 'FileManagerActions.__call__' is too complex (13)
plone/resourceeditor/browser.py:462:1: C901 'FileManager.__call__' is too complex (13)
plone/resourceeditor/tests.py:43:52: P103 other string does contain unindexed parameters
```
Follow [these instructions](https://github.com/plone/jenkins.plone.org/blob/master/docs/source/run-qa-on-package.rst) to reproduce it locally.


The direction is OK, I'd like to reflect the user doing something important in the design. It makes fun working on this idea :dancers:


IIRC, that will try to connect to the origin server, but send `Host: localhost`


This is a great summary Cheney, succinct and to the point. I very much agreed that a lot of topics we covered in the class are highly practical and relevant in today's increasing integrated business and technology world. Similarly I also liked the guest speaker session discussing the three development techniques to “Go Mobile” with pros and cons, which is very informative. I have learnt a lot from this course as well as from every teammate and many thanks to you for the rewarding experience.


Actually the `$var` format is incorrect, array key's are not variables so using the `$` syntax for them is incorrect.

The bit of digging I did online actually indicates the `@type` is no longer supported in PHPDoc, so the entire thing may need to be moved to the comments instead of the @param line.


Forgot to mention this with the last pullreq, but why is there an mdn- in front of classlist.js?


No, I'm not talking about the initial IV. SRTP AES-CM is not the same as AES-CM. The last two bytes of the IV are treated as an unsigned short in SRTP AES-CM and need to be incremented for every block.
See https://tools.ietf.org/html/rfc3711#section-4.1.1


data for the proper dihedral ones:)


You have in commit
" +MODULE_AUTHOR("andip71");
 +MODULE_DESCRIPTION("dynamic fsync - automatic fs sync optimization for msm8974");
 +MODULE_LICENSE("GPL v2");"

But this commit is for msm8994 lol


true. i'll have to change the associated tests then. no prob.


ditch this


excuse me
fantastic repository
sincerely


Thanks for the explanation about the `vendor` complaints. Since our `vendor` directory does not have many libraries, there hopefully won't be too many complaints, and the `vendor` complaints come after the ones from our tests. However, if adding a simple pipe command ensures that the output of `go test` is relevant and that `go test` outputs only checks when all tests pass, that sounds ideal.


finger -> fingering


Watching SpaceX launches, prepping for trainings... The things we do on late Sunday nights!


ore updates


Oh okay. I seen the `<table>` and thought that was the same layout you had before :sweat_smile:


Avoid unused parameters such as '$user'.


Avoid unused parameters such as '$project'.


Class ProjectPolicy is missing a docblock.


ProjectPolicy::view is missing a docblock.


ProjectPolicy::deploy is missing a docblock.


If you are already doing it, why would you use this?

Also it's not a correction. It's to put the player's feet just below the ground level so when the object streams the player is shifted upwards.


If it gets too bad I'll add a makefile with commands like `make test`


I greatly enjoyed reading your summary Rebecca, very well-thought-out takeaways. The discussion on key qualities to look for in a competent developer in today's highly integrated business and tech worlds is spot on and insightful. Also as a first time user on GitHub, I certainly feel the same way about it, cooperating on this platform as a team is really fun experience. I have learnt a lot from this course as well as from every teammate and many thanks to you for the rewarding experience.


Please remove dead code


Are you sure you don't want to check for `resumed` anymore?


Forgot to mention that --nocolor was also added.


No matter how cool that seems to be, it is way more time consuming than I though...


Should be:

String resourceFilename = "/arena/backgrounds/trap_04.gif";
InputStream is = this.getClass().getClassLoader().getResourceAsStream(resourceFilename);
LocatedImage img = new LocatedImage(is, resourceFilename);
super.setArenaBackground(img);


There isn't any bucle on this code


Why do you think that adding the piping is unnecessary, given the argument that I just made?


I have different structure, custom. With govs and tuning,  also with more gpu freq steps. And OC. Its works just fine. I dont see a reason to change that. Nothing new here.


If you need the data passed I can supply that too.


Are you using Eclipse? If so, please import the code formatter profile in formatter.xml at the root of the ShootOFF repository and do a ctrl + a followed by a shift + ctrl + f.


ok


is okay to leave it like this for now until there's a use case?


TeamCity OSS :: Kubernetes Mesos :: 4 - Smoke Tests [Build 17681](https://teamcity.mesosphere.io/viewLog.html?buildId=148619&buildTypeId=Oss_KubernetesMesos_5SmokeTestsDockerMesos&guest=1) outcome was **SUCCESS**
Summary: Tests passed: 1, ignored: 243 Build time: 00:04:08


Please remove dead code and set the label location using super.getArenaHeight() to position dynamically based on the size of the arena.


i'm gonna go with ```keys``` so the use can provide several keys that can be mapped to a letter.


Is there a reason the exercise doesn't just keep repeating? A lot of people hate having to walk back to their computer repeatedly.


I made a mistake!!! Sorry


Looks like you misspelled "canola"!


```patch
diff -wrt info/terrismc/itemrestrict/ConfigStore.java old/info/terrismc/itemrestrict/ConfigStore.java
13c13
< import java.util.*;
---
> import java.util.List;
212,213d211
<     HashMap<Integer,String> strings = new HashMap<Integer,String>();
<
215,225c213
<         int hash = hash(block.getTypeId(),block.getData());
<         String s = strings.get(hash);
<         if(s == null) { s = block.getTypeId() + "-" + block.getData(); strings.put(hash,s);}
<         return s;
<     }
<
<     public int hash (int a, byte b)
<     {
<         long n = a; n = n << 32L;
<         n ^= b;
<         return Long.valueOf(n).hashCode();
---
>         return block.getTypeId() + "-" + block.getData();
228d215
<     private HashMap<Integer,String> base = new HashMap<Integer,String>();
230c217
<         String name = base.get(block.getTypeId()); if (name == null){ name = block.getTypeId()+""; base.put(block.getTypeId(),name); } return name;
---
>         return new StringBuilder().append(block.getTypeId()).toString();
235,238c222
<         int hash = hash(item.getTypeId(),matData.getData());
<         String s = strings.get(hash);
<         if(s == null) { s = matData.getItemTypeId() + "-" + matData.getData(); strings.put(hash,s);}
<         return s;
---
>         return matData.getItemTypeId() + "-" + matData.getData();
242c226
<         String name = base.get(item.getTypeId()); if (name == null){ name = item.getTypeId()+""; base.put(item.getTypeId(),name); } return name;
---
>         return new StringBuilder().append(item.getTypeId()).toString();
```


I would say this didn't fix the streaming freezes while playing videos


I'll add a makefile


Programming is just sequence, decision, and repetition. And now that I've removed all the loops there is just sequence and decision; however, I believe that this part of the code is somehow the cause of an endless loop (it is only executed once but is looping for some reason):

````javascript
function simulate(element)
{
    if (document.createEvent)
    {
        var oEvent = document.createEvent('MouseEvents');
        oEvent.initMouseEvent("click", true, true, document.defaultView,
        0, 0, 0, 0, 0, false, false, false, false, 0, element);
        element.dispatchEvent(oEvent);
    }
}
simulate(document.getElementById("SubmitButton"));
````


time - 1.5 hours


It's part of the coding standards, see https://make.wordpress.org/core/handbook/best-practices/inline-documentation-standards/php/#1-1-parameters-that-are-arrays.


Don't forget to add the description to the translation file. Otherwise `Marketplace_PluginDescription` might appear as description...


This needs a better name. To me this implies something much more serious than it actually is. disableTPSafetyCheck or similar.


This is no good--it loses typechecking.


@ForumHulp why do you think so?
lock_db class is generally not obligated to be used for Cron.
Moreover it is used in CLI where your fix results in empty suffix.

What's wrong with adding a new config table entry?


Hi @remitamine ,

i see a lot of efforts you've done , but this code should not work anymore :+1:


An issue is here!


Here in line 4, there's a spelling mistake!


Oh, this'll end up below!!


Oh, this'll too end up below!!


This is still very fragile. I can not get it working locally :(


`.text()` missing in the comment


Fixed. Thank you!


Ляськи масяськи


Что за говно понаписано


I would remove all `PageObject.` references except for `PageObject.create`. I think it adds too much noise to the examples.


fix typo error


Only code I worked on was analyzed.


RR7 aussi est ingame, mais ya une tonne de bug lumineux, et a pêne la course demaré le jeux freeze
![capture d ecran 2016-02-28 23 58 44](https://cloud.githubusercontent.com/assets/5261759/13382544/3686425a-de77-11e5-903e-a8e874074bf5.png)
Et pour Hitman ca marche pas pouyr moi en gl, le chargement qui doit afficher le menu ne se finis pas :/


hmmm...
Aegis mapproperty does this too


Why not trim?


Why is this deleted now after fixing it for issue #799 ?


merged by cherry-pick. But this issue also applies to the API class. Therefore I've modified the exception class to a generic one BadEnvironment to be used on both classes


That's a typo. It should be `HeartRateButton`. The same holds true for `onHearRateTest()` in 1c9be79c679aa5825af57260a841445394ff6010.


@thebigsmileXD I have tried this way three days ago. Your method is wrong which I wrote four days ago.


There are some other changes that you need to be aware of when migrating

- [ ] `.isVisble` does not throw an exception when element doesn't exist in DOM
- [ ] Renamed `index` option to `at` and it is 0-based index
- [ ] Collections are 0-based index now


merge by cherry-pick


Remove.


Incorrect indentation.


I would close the post inviting people to try the new version and take a look at the new features (links to the alpha, beta and major versions' release notes)


@scelis, could you explain this regex to me? I don't get the `\\.` part. Key and value are either something not containing `"` and `\` or a series of dots? oO
Isn't `/"([^"\\]*)"\s*=\s*"([^"\\]*)"/` equivalent?


Indentation


couldn't this be simplified using the vec! macro?


Surely the year name in the folder will be accurate more often ?


This doesn't seem to be compatible with fat_stack, which also uses this layer.


Hi Yorik, the complete .icns file is in https://github.com/FreeCAD/FreeCAD/pull/106


Thanks, corrected.


merged by cherry-pick


Because I like strong typing I propose limiting usage of the `auto` keyword only when the type is long. eg `std::vector<int>::iterator`


Are you checking for an empty list here? Or could `bounds == None`?


Why isn't there a `if !pkg.IsCommand() || pkg.UpToDate {` check here (there was before)?


weasdasdd


Same question, why is there no `if !pkg.IsCommand() || pkg.UpToDate {` check here anymore?


Initial commit


Why semicolon?


This is checking for `None`, so we need it.


Here too.


And here.

I just want to confirm there's a reason why the `!pkg.IsCommand() || pkg.UpToDate`, that used to happen here previously, is no longer needed.


I see, thanks.

Something else, even though it's not the place to ask. Is there any way to lazy load the images and be compatible with shower?


and still it passes ))


I think just having an explicit return here would be better than all those else { None }


This is what was causing the panic in https://github.com/gopherjs/gopherjs/pull/409#discussion_r53921847, isn't it? But it wasn't caught before.


I think, the dnsmasq-neutron.conf.j2 template is missing yet.


Great animations


iteratorがクリアかえす順番の仕様は？どうなっていますでしょうか？


== を使ってない理由はありますでしょうか？


I agree with you that it seems that OANDA does not have a lot of priority for this project. But it is up to OANDA to decide whatever they want.
Personally I think it is a very bad practice to break code on purpose. So I will not merge the code modifications we discussed. Your other code I've partially merge by cherry-picking
Extending the code with extra methods might be interesting


som.columnsとsom.rowsが同じ場合のテストをしている理由はなんでしょうか？


I think it's extremely benefitial to document the type of `string` in the map key.

As I understand, this is the "full-without-vendor-stripped" import path like "example.com/user/otherrepo/baz/vendor/example.com/user/repo/foo/bar", is that right?

What about `Types` below, what does its map key represent? `string` doesn't describe what it is.


Should probably mark it deprecated and make it a wrapper for the new function.


Is `pkg.ImportPath` also the "full-without-vendor-stripped" import path like "example.com/user/otherrepo/baz/vendor/example.com/user/repo/foo/bar" here? I think so, just confirming.


Nobody will accept doc changes with bad grammar.


cell9でも良さそうにおもうのですが、なぜcell8なのでしょうか？


Yeah, i tried on latest master.. weird. so it should be `app:` ?


The difference is that the git-smart format also shows the author and commit time.


This is pretty good sharing! Great job, Cheney! 👍👍👍


There was nothing technically wrong with the original statement.


i recommend placing all this in a `def main():`, then all the variables aren't global any more and can be lowercased.
then call that main in

``` python
if __name__ == "__main__":
    main()
```


This should be changed to `allow_questions`


more love ,more happiness!


@nik-tar simple and informative at the same time and definitely not 'MyProc' :)


This commit sucks.


Primeiro commit


2.2 block OTP acess (it's not me who think this,it's @motezazer)


``separator_lookup`` is a 256-entry array of bool, so indexing it with a ``char`` is always safe. It is just misleading how this code converts the ``char`` to unsigned before indexing it.


This bug when subs are hardcoded and also streamed was reported in #838


It might be helpful to document these methods to state whether they are (kinda) pure funcs that always do the work, or if they check a cache first.

`BuildPackage` checks a cache because it has `if archive, ok := s.Archives[pkg.ImportPath]; ok { return archive, nil }` at the top.

That means `buildImportPathWithSrcDir` does too, indirectly, right? But it also does more work in `importWithSrcDir`.

However, I'm concerned about the code in 387-389:

```Go
if path == pkg.ImportPath || path == pkg.ImportPath+"_test" {
	return s.Archives[path], nil
}
return s.BuildImportPath(path)
```

However, because none of these funcs have documentation stating the responsibilities regarding cache, it's hard to be sure whether an additional cache check makes sense at a given location.


An issue is here!


Here in line 4, there's a spelling mistake!


Oh, this'll end up below!!


Oh, this'll too end up below!!


some people may learn to love others;


those are probably the vanilla bounds


Can this function actually fail ? mono_string_is_interned_lookup  () only sets error if 'insert' is TRUE.


Beside that one comments, lgtm.


I actually just noticed that there's an [auth initializer](https://github.com/travis-ci/travis-web/blob/master/app/initializers/auth.js#L9) that injects this automatically. I will update the PR to reflect this.


hello,

why this delay ?

regs,


This is the synthesized test package. It is always a command and not up to date.


A username 'user' with password 'pass' is created by the setup script.


Hello anatoly.
Thank you for your reply.
That's exactly what is happening.
So, I created this page name PagePromo.qml with the code below:
`import QtQuick 2.5
import QtQuick.Controls 1.4
import QtWebView 1.0

MyPage {

    id: pagePromo

    title: qsTr("Super-Promos Para Você!")

    WebView {
        id: webView
        parent: pagePromo
        url: baseUrl
        anchors.fill: parent
    }
}`
And it's beeing called in the MainMenu.qml as you can see below (i am using the same icon for tests):
`ListModel {
        id: modelMenu
        ListElement {
            item: "page_tradicionais"
            icon: "qrc:/images/icon_game.png"
            page: "PageTradicionais.qml"
        }
        ListElement {
            item: "page_precos"
            icon: "qrc:/images/icon_game.png"
            page: "PagePrecos.qml"
        }
        ListElement {
            item: "page_promo"
            icon: "qrc:/images/icon_game.png"
            page: "PagePromo.qml"
        }
        ListElement {
            item: "page_pedidos"
            icon: "qrc:/images/icon_game.png"
            page: "PagePedidos.qml"
        }
    }

    function textItemMenu( item )
    {
        var textReturn = ""
        switch( item ) {
        case "page_tradicionais":
            textReturn = qsTr("Pizzas Tradicionais")
            break;
        case "page_pedidos":
            textReturn = qsTr("Bambinella Pedidos")
            break;
        case "page_promo":
            textReturn = qsTr("Promoções")
            break;
        case "page_precos":
            textReturn = qsTr("Preços")
            break;
        }
        return textReturn
    }`
I haven't changed any other code on the main.qml and on the MainMenu.qml
I've added though some code to main.cpp wich I add some file to a templocation so webview can load html locally (embedded html).
But I really don't think that's the issue on this case, because I've made a test with webview opening a page from the web and it happens just the same.
The others page I've added are very simple test pages and in those the side panel works just fine.


The check 3 lines above makes sure this is a command. `UpToDate` can not become true here because the `pkg` has no path for the package object set.


I agree. The security should be improved over the typical `libreswan` install to prevent users from inadvertently harming themselves. The secrets are only used for one stage of authentication; any typical VPN setup uses 2-stage auth that requires a password as well. But still, it may as well be a root-only file.

Do you know of a standard idiom to set the file permissions? Or should I just manually write a `stdenv.mkDerivation` expression? Or better yet, should `writeTextFile` be extended to support a permissions argument?


By "look at them separately", do you mean as a separate pull request?


Since the listenerRef is a weak reference, how can this lead to memory leaks?


I'll add it here.


nice :)


Unfortunately we don't have any way to handle secrets via Nix now -- if the file is in Nix store one way or another, it's world readable automatically. Current way of handling this (used by e.g. ssh, OpenVPN and others) is to let the user specify _path_ to the file as a string. Then, to enforce security, we can check this file' permissions in `preStart` hook (`ExecStartPre` in your implementation) and fail if it's readable by non-owner with some message.


@mariogamer2 "whatever-more-than-2.2"
*more-than*


:heart:


**Suggestion**  The next and previous shouldn't be clickable if the are no more pages.


lol,bad XD


No, this was just a bug introduced in e3a9838fe85c461e4cd869da5065ea1f21b1759e of this PR.


It always has to be the full/real path here, because only those identify packages unambiguously.


www


Yes.


Hey Peter!

How's the job hunt going? Any progress on the postgres db notes?

How did you get  2 / (n * (n + 1)) for the probability? and are you sure
the best case scenario for random is n^2?

cheers,
Ray

On Sun, Feb 28, 2016 at 1:10 PM, Peter Chiang <notifications@github.com>
wrote:

> Python shuffle implements the Fisher–Yates shuffle which runs in O(n) time.
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/pccchiang/misc/commit/c76f525adee777dc5fda7f877e8904b5cb06d7ca#commitcomment-16378708>
> .
>


LGTM.


What do you mean "clearly in need of attention?"


Shield sounds better than Divine in my opinion


OOh, juicy


how can i download this?


Yup it's definitely a work in progress. That's why it's in a branch and not in master yet. Those boxes were for debugging before glyph generation was implemented. I just added glyph generation so glyphs should show up now, although there's still something slightly off with the glyph texture alpha values. It'll all be working soon :)


I am confused. What does `m_total` count and what `m_torrentsCount` ?


delete this ?


You should preserve the code comment.


4 lines above - should use the whitening constant ?


```
if path == pkg.ImportPath || path == pkg.ImportPath+"_test" {
    return s.Archives[path], nil
}
return s.BuildImportPath(path)
```
Is a special case because the test packages (especially the `_test` one) are not normal Go packages, so I have to make sure that `build.Import` is not called on those.

But yes, this code is still not really nice. I'd love to replace most of it with your go tool approach and only keep a simplified version for the playground, etc.


hello! yes I am ok with at-large. not sure how to phrase the annotation...


Changed.


By doing it already I meant the player pos correction part of it (Z - 0.3).. many people use that to get a perfect spawn position. That's what I meant but okay. Don't worry about it.


Okay, I'll make the option just to specify the secrets file rather than the contents.

I'm all for addng an `ExecStartPre` hook as you suggest, since this seems to cover the general case security concerns. However, if the user is creating the file, I think technically it's their responsibility to ensure the permissions are correct. The service shouldn't arbitrarily ensure the file is only root readable in this case since there may in fact be some reason the user wants a group to have access to it.

But if the other packages use this approach, and no one has yet complained of a use-case that was contradictory to the security that these packages enforce, then it shouldn't be an issue.


hello,

Just read the commit. This patch need to be in, I agree. Personally I would only pass active to install_keyword_root (all others keywords will inherit this).

regs,


This is my first GitHub project!


This is my first GitHub comment!


@rafaelcorreiapoli: A última versão estava cheia de bugs no attachmetsAdd. Acabei de ver que esse package tinha sido removido. Ele é responsável pelo progressBar do gridFS. Não podemos removê-lo.


*Doesn't work yet


@peterdd a multiple email control has been pulled in #529


@rafaelcorreiapoli: Também tinha quebrado o layout do attachments. Esse era o motivo.


This also fixed it for me.


【説明訂正】userとのアソシエーション追加


But then storing user specific data would be tied to the backend, right? Furthermore, using `u_more` is not required. Would something like `type User = User' ()` be a good enough compromise?


This comment caused bug #492


【説明訂正】newのviewの追加


yeah...


test edit submitted


Hmm, do you think this means `mdl` will try to analyze files other than ones that end with `.md` and `.markdown`?

If so, should this pass `#{path}**/*.md` and `#{path}**/*.markdown` to `mdl`?


I was very misleading, sorry. What I meant is that other packages use string option, but other part of my sentence (about enforcing via `ExecStartPre`) was an idea (not opinionated, even) rather that something that is widely adopted. Your arguments also make sense; let's not enforce this policy -- user that sets up a VPN client would likely be informed of necessity of restricted access to secrets.


All the logging stuff doesnt seem to actually be doing anything


This will emit a signal which will call the `CategoryFiltersList::categoryRemoved()` slot. In there `m_categories` will get modified and the iterators for this loop will get invalid.


That's all right, it's a hopeful idea at least. Once Nix has support for handling secrets things will be more reliably secure anyway. I'll just remove the secrets option then (since secretsfile can already be specified in configSetup).


But some weird things happen
First startup is fine, but after every restarts, it stuck about 5mins on "System process is not responding"
What does that mean?


Thanks for the shout out!


HE'S JAKE!


BASIL!


So what is crazy about that?


Do you need me to send you the crazy play he wrote!


That's like saying you're ZACHARY!


TAYLOR!


Sure.


Well, it's so gorey and awful. give me your personal email


Добавил контролеры в игнор. Ругалось на Use nested module/class definitions instead of compact style. Так и оставлять?


OK, I will forward the forward the forward from Jake to Gabe to Me to You.


Okay.


Tell me when and if you get it!


I got it.


Well, he **never** proofread!


It's weird.


TeamCity OSS :: Kubernetes Mesos :: 4 - Smoke Tests [Build 17645](https://teamcity.mesosphere.io/viewLog.html?buildId=148448&buildTypeId=Oss_KubernetesMesos_5SmokeTestsDockerMesos&guest=1) outcome was **FAILURE**
Summary: Exit code 2 (new) Build time: 00:00:40


YEP!
Now you know why he is _**INSANE**_


I don't know that I would call it "insane".  Maybe just emotionless.


using System;
using System.Linq;
using System.Collections.Generic;
using elobuddy;
using elobuddy.net;
using elobudy;
using Color = System.Drawing.Color;
using Collision = LeagueSharp.Common.Collision;

namespace kalista.Champions
{
    public static class Kalista
    {
        static Obj_AI_Hero Player { get { return ObjectManager.Player; } }
        static Orbwalking.Orbwalker Orbwalker { get { return SharpShooter.Orbwalker; } }

        static Spell Q, W, E, R;

        public static void Load()
        {
            Q = new Spell(SpellSlot.Q, 1150f) { MinHitChance = HitChance.High };
            W = new Spell(SpellSlot.W, 5000f);
            E = new Spell(SpellSlot.E, 1000f);
            R = new Spell(SpellSlot.R, 1500f);

            Q.SetSkillshot(0.25f, 40f, 1200f, true, SkillshotType.SkillshotLine);

            var drawDamageMenu = new MenuItem("Draw_RDamage", "Draw (E) Damage", true).SetValue(true);
            var drawFill = new MenuItem("Draw_Fill", "Draw (E) Damage Fill", true).SetValue(new Circle(true, Color.FromArgb(90, 255, 169, 4)));

            SharpShooter.Menu.SubMenu("Combo").AddItem(new MenuItem("comboUseQ", "Use Q", true).SetValue(true));
            SharpShooter.Menu.SubMenu("Combo").AddItem(new MenuItem("comboUseE", "Use E", true).SetValue(true));

            SharpShooter.Menu.SubMenu("Harass").AddItem(new MenuItem("harassUseQ", "Use Q", true).SetValue(true));
            SharpShooter.Menu.SubMenu("Harass").AddItem(new MenuItem("harassMana", "if Mana % >", true).SetValue(new Slider(50, 0, 100)));

            SharpShooter.Menu.SubMenu("Laneclear").AddItem(new MenuItem("laneclearUseQ", "Use Q", true).SetValue(true));
            SharpShooter.Menu.SubMenu("Laneclear").AddItem(new MenuItem("laneclearQnum", "Cast Q If Can Kill Minion Number >=", true).SetValue(new Slider(3, 1, 5)));
            SharpShooter.Menu.SubMenu("Laneclear").AddItem(new MenuItem("laneclearUseE", "Use E", true).SetValue(true));
            SharpShooter.Menu.SubMenu("Laneclear").AddItem(new MenuItem("laneclearEnum", "Cast E If Can Kill Minion Number >=", true).SetValue(new Slider(2, 1, 5)));
            SharpShooter.Menu.SubMenu("Laneclear").AddItem(new MenuItem("laneclearMana", "if Mana % >", true).SetValue(new Slider(60, 0, 100)));

            SharpShooter.Menu.SubMenu("Jungleclear").AddItem(new MenuItem("jungleclearUseQ", "Use Q", true).SetValue(true));
            SharpShooter.Menu.SubMenu("Jungleclear").AddItem(new MenuItem("jungleclearUseE", "Use E", true).SetValue(true));
            SharpShooter.Menu.SubMenu("Jungleclear").AddItem(new MenuItem("jungleclearMana", "if Mana % >", true).SetValue(new Slider(20, 0, 100)));

            SharpShooter.Menu.SubMenu("Misc").AddItem(new MenuItem("killsteal", "Use Killsteal (With E)", true).SetValue(true));
            SharpShooter.Menu.SubMenu("Misc").AddItem(new MenuItem("mobsteal", "Use Mobsteal (With E)", true).SetValue(true));
            SharpShooter.Menu.SubMenu("Misc").AddItem(new MenuItem("lasthitassist", "Use Lasthit Assist (With E)", true).SetValue(true));
            SharpShooter.Menu.SubMenu("Misc").AddItem(new MenuItem("soulboundsaver", "Use Soulbound Saver (With R)", true).SetValue(true));
            SharpShooter.Menu.SubMenu("Misc").AddItem(new MenuItem("autoEHarass1", "Auto Lasthit a Minion For Harass (With E)", true).SetValue(false));

            SharpShooter.Menu.SubMenu("Drawings").AddItem(new MenuItem("drawingAA", "Real AA Range", true).SetValue(new Circle(true, Color.FromArgb(0, 230, 255))));
            SharpShooter.Menu.SubMenu("Drawings").AddItem(new MenuItem("drawingQ", "Q Range", true).SetValue(new Circle(true, Color.FromArgb(0, 230, 255))));
            SharpShooter.Menu.SubMenu("Drawings").AddItem(new MenuItem("drawingW", "W Range", true).SetValue(new Circle(false, Color.FromArgb(0, 230, 255))));
            SharpShooter.Menu.SubMenu("Drawings").AddItem(new MenuItem("drawingE", "E Range", true).SetValue(new Circle(true, Color.FromArgb(0, 230, 255))));
            SharpShooter.Menu.SubMenu("Drawings").AddItem(new MenuItem("drawingR", "R Range", true).SetValue(new Circle(false, Color.FromArgb(0, 230, 255))));

            SharpShooter.Menu.SubMenu("Drawings").AddItem(drawDamageMenu);
            SharpShooter.Menu.SubMenu("Drawings").AddItem(drawFill);

            DamageIndicator.DamageToUnit = GetComboDamage;
            DamageIndicator.Enabled = drawDamageMenu.GetValue<bool>();
            DamageIndicator.Fill = drawFill.GetValue<Circle>().Active;
            DamageIndicator.FillColor = drawFill.GetValue<Circle>().Color;

            drawDamageMenu.ValueChanged +=
            delegate (object sender, OnValueChangeEventArgs eventArgs)
            {
                DamageIndicator.Enabled = eventArgs.GetNewValue<bool>();
            };

            drawFill.ValueChanged +=
            delegate (object sender, OnValueChangeEventArgs eventArgs)
            {
                DamageIndicator.Fill = eventArgs.GetNewValue<Circle>().Active;
                DamageIndicator.FillColor = eventArgs.GetNewValue<Circle>().Color;
            };

            Game.OnUpdate += Game_OnUpdate;
            Drawing.OnDraw += Drawing_OnDraw;
            Obj_AI_Hero.OnProcessSpellCast += Obj_AI_Hero_OnProcessSpellCast;
            Orbwalking.OnNonKillableMinion += Orbwalking_OnNonKillableMinion;
        }

        static void Game_OnUpdate(EventArgs args)
        {
            if (Player.IsDead)
                return;

            if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo)
                Combo();

            if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Mixed)
                Harass();

            if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear)
            {
                Laneclear();
                Jungleclear();
            }

            Killsteal();
            Mobsteal();

            #region E harass with lasthit for anytime
            if (SharpShooter.Menu.Item("autoEHarass1", true).GetValue<bool>())
            {
                var Minion = MinionManager.GetMinions(Player.ServerPosition, E.Range, MinionTypes.All, MinionTeam.Enemy).Where(x => x.Health <= E.GetDamage(x)).OrderBy(x => x.Health).FirstOrDefault();
                var Target = HeroManager.Enemies.Where(x => E.CanCast(x) && E.GetDamage(x) >= 1 && !x.HasBuffOfType(BuffType.Invulnerability) && !x.HasBuffOfType(BuffType.SpellShield)).OrderByDescending(x => E.GetDamage(x)).FirstOrDefault();

                if (E.CanCast(Minion) && E.CanCast(Target))
                    E.Cast();
            }
            #endregion
        }

        static void Drawing_OnDraw(EventArgs args)
        {
            if (Player.IsDead)
                return;

            var drawingAA = SharpShooter.Menu.Item("drawingAA", true).GetValue<Circle>();
            var drawingQ = SharpShooter.Menu.Item("drawingQ", true).GetValue<Circle>();
            var drawingW = SharpShooter.Menu.Item("drawingW", true).GetValue<Circle>();
            var drawingE = SharpShooter.Menu.Item("drawingE", true).GetValue<Circle>();
            var drawingR = SharpShooter.Menu.Item("drawingR", true).GetValue<Circle>();

            if (drawingAA.Active)
                Render.Circle.DrawCircle(Player.Position, Orbwalking.GetRealAutoAttackRange(Player), drawingAA.Color);

            if (Q.IsReady() && drawingQ.Active)
                Render.Circle.DrawCircle(Player.Position, Q.Range, drawingQ.Color);

            if (W.IsReady() && drawingW.Active)
                Render.Circle.DrawCircle(Player.Position, W.Range, drawingW.Color);

            if (E.IsReady() && drawingE.Active)
                Render.Circle.DrawCircle(Player.Position, E.Range, drawingE.Color);

            if (R.IsReady() && drawingR.Active)
                Render.Circle.DrawCircle(Player.Position, R.Range, drawingR.Color);
        }

        static void Obj_AI_Hero_OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            if (sender.IsMe && args.SData.Name == E.Instance.Name)
                Utility.DelayAction.Add(250, Orbwalking.ResetAutoAttackTimer);

            if (SharpShooter.Menu.Item("soulboundsaver", true).GetValue<Boolean>() && R.IsReady())
            {
                if (sender.Type == GameObjectType.obj_AI_Hero && sender.IsEnemy)
                {
                    var soulbound = HeroManager.Allies.FirstOrDefault(hero => hero.HasBuff("kalistacoopstrikeally", true) && args.Target.NetworkId == hero.NetworkId && hero.HealthPercent <= 20);

                    if (soulbound != null)
                        R.Cast();
                }
            }
        }

        static void Killsteal()
        {
            if (!SharpShooter.Menu.Item("killsteal", true).GetValue<Boolean>() || !E.IsReady())
                return;

            var target = HeroManager.Enemies.FirstOrDefault(x => !x.HasBuffOfType(BuffType.Invulnerability) && !x.HasBuffOfType(BuffType.SpellShield) && E.CanCast(x) && (x.Health + (x.HPRegenRate / 2)) <= E.GetDamage(x));

            if (E.CanCast(target))
                E.Cast();
        }

        static void Mobsteal()
        {
            if (!SharpShooter.Menu.Item("mobsteal", true).GetValue<Boolean>() || !E.IsReady())
                return;

            var Mob = MinionManager.GetMinions(Player.ServerPosition, E.Range, MinionTypes.All, MinionTeam.Neutral, MinionOrderTypes.MaxHealth).FirstOrDefault(x => x.isKillableAndValidTarget(E.GetDamage(x), E.Range));

            if (E.CanCast(Mob))
                E.Cast();

            var Minion = MinionManager.GetMinions(Player.ServerPosition, E.Range, MinionTypes.All, MinionTeam.Enemy, MinionOrderTypes.MaxHealth).FirstOrDefault(x => x.Health <= E.GetDamage(x) && (x.SkinName.ToLower().Contains("siege") || x.SkinName.ToLower().Contains("super")));

            if (E.CanCast(Minion))
                E.Cast();
        }

        static float GetComboDamage(Obj_AI_Base enemy)
        {
            float damage = 0;

            if (E.IsReady())
                damage += E.GetDamage(enemy);

            return damage;
        }

        static List<Obj_AI_Base> Q_GetCollisionMinions(Obj_AI_Hero source, Vector3 targetposition)
        {
            var input = new PredictionInput
            {
                Unit = source,
                Radius = Q.Width,
                Delay = Q.Delay,
                Speed = Q.Speed,
            };

            input.CollisionObjects[0] = CollisionableObjects.Minions;

            return Collision.GetCollision(new List<Vector3> { targetposition }, input).OrderBy(obj => obj.Distance(source, false)).ToList();
        }

        static void Orbwalking_OnNonKillableMinion(AttackableUnit minion)
        {
            if (!SharpShooter.Menu.Item("lasthitassist", true).GetValue<Boolean>())
                return;

            if (E.CanCast((Obj_AI_Base)minion) && minion.Health <= E.GetDamage((Obj_AI_Base)minion))
                E.Cast();
        }

        static void Combo()
        {
            if (!Orbwalking.CanMove(1))
                return;

            if (SharpShooter.Menu.Item("comboUseQ", true).GetValue<Boolean>())
            {
                var Qtarget = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Physical, true);

                if (Q.CanCast(Qtarget) && !Player.IsWindingUp && !Player.IsDashing())
                    Q.Cast(Qtarget);
            }

            if (SharpShooter.Menu.Item("comboUseE", true).GetValue<Boolean>() && E.IsReady())
            {
                var eTarget = HeroManager.Enemies.Where(x => x.IsValidTarget(E.Range) && E.GetDamage(x) >= 1 && !x.HasBuffOfType(BuffType.Invulnerability) && !x.HasBuffOfType(BuffType.SpellShield)).OrderByDescending(x => E.GetDamage(x)).FirstOrDefault();

                if (eTarget != null && eTarget.isKillableAndValidTarget(E.GetDamage(eTarget)))
                    E.Cast();
            }
        }

        static void Harass()
        {
            if (!Orbwalking.CanMove(1) || !(SharpShooter.getManaPer > SharpShooter.Menu.Item("harassMana", true).GetValue<Slider>().Value))
                return;

            if (SharpShooter.Menu.Item("harassUseQ", true).GetValue<Boolean>())
            {
                var Qtarget = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Physical, true);

                if (Q.CanCast(Qtarget) && !Player.IsWindingUp && !Player.IsDashing())
                    Q.Cast(Qtarget);
            }
        }

        static void Laneclear()
        {
            if (!Orbwalking.CanMove(1) || !(SharpShooter.getManaPer > SharpShooter.Menu.Item("laneclearMana", true).GetValue<Slider>().Value))
                return;

            var Minions = MinionManager.GetMinions(Player.ServerPosition, E.Range, MinionTypes.All, MinionTeam.Enemy);

            if (Minions.Count <= 0)
                return;

            if (SharpShooter.Menu.Item("laneclearUseQ", true).GetValue<Boolean>() && Q.IsReady())
            {
                //-------------------------------------------------------------------------------------------------------------------------------
                foreach (var minion in Minions.Where(x => x.Health <= Q.GetDamage(x)))
                {
                    var killcount = 0;

                    foreach (var colminion in Q_GetCollisionMinions(Player, Player.ServerPosition.Extend(minion.ServerPosition, Q.Range)))
                    {
                        if (colminion.Health <= Q.GetDamage(colminion))
                            killcount++;
                        else
                            break;
                    }

                    if (killcount >= SharpShooter.Menu.Item("laneclearQnum", true).GetValue<Slider>().Value)
                    {
                        if (!Player.IsWindingUp && !Player.IsDashing())
                        {
                            Q.Cast(minion.ServerPosition);
                            break;
                        }
                    }
                }
                //-------------------------------------------------------------------------------------------------------------------------------
            }

            if (SharpShooter.Menu.Item("laneclearUseE", true).GetValue<Boolean>() && E.IsReady())
            {
                var minionkillcount = 0;

                foreach (var Minion in Minions.Where(x => E.CanCast(x) && x.Health <= E.GetDamage(x))) { minionkillcount++; }

                if (minionkillcount >= SharpShooter.Menu.Item("laneclearEnum", true).GetValue<Slider>().Value)
                    E.Cast();
            }
        }

        static void Jungleclear()
        {
            if (!Orbwalking.CanMove(1) || !(SharpShooter.getManaPer > SharpShooter.Menu.Item("jungleclearMana", true).GetValue<Slider>().Value))
                return;

            var Mobs = MinionManager.GetMinions(Player.ServerPosition, Orbwalking.GetRealAutoAttackRange(Player) + 100, MinionTypes.All, MinionTeam.Neutral, MinionOrderTypes.MaxHealth);

            if (Mobs.Count <= 0)
                return;

            if (SharpShooter.Menu.Item("jungleclearUseQ", true).GetValue<Boolean>() && Q.CanCast(Mobs[0]))
                Q.Cast(Mobs[0]);

            if (SharpShooter.Menu.Item("jungleclearUseE", true).GetValue<Boolean>() && E.isReadyPerfectly())
                if (Mobs.Any(x => x.isKillableAndValidTarget(E.GetDamage(x))))
                    E.Cast();
        }
    }
}


Emotionless, no: He has hate


And love for his clarinet!


What do you mean?


How does he have hate?


I got **no** reaction for my
No, I am sympy

Those characters represent **actual people!!!!!**


Yes SenpaiOK, I wil
No, I am SYMPY


Yes Senpai
No, I am SYMPY


What?  What didn't you get a reaction for?  And whom does each person represent, or do you know?


And why the sudden use of Senpai?


Well, that's a reaction to Alex's sudden use of Senpai,
then I replied:
No, I am SYMPY
(python joke)


@Mottie bet you didn't know, but for simple packages like this, you can run `npm version patch` to bump version.


Is he talking to you?


string addition of **company/repo** feels too long for me.  I should have chatted with you before I accepted it.  **GH-** is 3 chars, we are so limited in regards to commit description that I think we should reconsider or at least have a chat.


Oh, and feel free to put it on Userstyles :)


Okay, then checks like [this](https://github.com/google/blockly/blob/develop/core/variables.js#L59) will not be required any more.


That was in an old version of main.bat in Beeping of stuff, it was in
::...


should be `prismjs`.


:: And then the text, its a batch file


SPMeta2.Validation.Validators.* was the "old" way to implement validation for M2.
It used to be a separate assembly, at some point we merged assemblies and moved the codebase straight to SPMeta2.dll. Simple saying, all of these obsolete and needs to be cleaned up at some point.

Essentially we need to check a single definition, a collection of the definitions, and relationships between definitions. There used to be a few base classes for that which is not a great thing. Later on we realised that having access to the whole model tree is a much better option, that's exactly how current validation works. Besides, we have to be able to add / remove these validation handlers from the core at runtime, so that backward compatibility or accidental issues could be mitigated.

Validation on top of TypedDefinitionModelHandlerBase works same way as provision model handlers. Same model tree walk, same type match per definition and then exceptions if needed. An eggregated exception is raised if something is wrong. All validation handlers are imported as PreDeploymentServices within provision services.

All in dev, testing and polishing.


LOL ok, ummm but shouldn't this repo be named "Github-code-wrap"? :grin:


Oh, okay.


I deleted it though


Just imagine the power of me,you,Alex, andConnor
IF WE HAD FREE TIME


Well, correct me if I'm wrong, but Alex and Connor mostly do robotics, right?  No graphics programming or anything like that.


@Intyre :+1:


And whom did the people in the play represent?


Well, Alex does do Batch. Connor and Linux


```externalApps``` causes build errors! Do you know why?


I'm Richard,
Jake is the crazy killer,
I think my sister is mary,
my x is liz


And you need to import math on law of cosines!


What do you mean Connor does Linux?  Do you just mean C?  And I did import math, it just might not have been the one I uploaded.  I'll check.


No, C++. he's a LINUX NUT!


Sry you did import math!


@swhopkins do you know what this would be for Heroku?


TeamCity OSS :: Kubernetes Mesos :: 4 - Smoke Tests [Build 17646](https://teamcity.mesosphere.io/viewLog.html?buildId=148449&buildTypeId=Oss_KubernetesMesos_5SmokeTestsDockerMesos&guest=1) outcome was **SUCCESS**
Summary: Tests passed: 1, ignored: 238 Build time: 00:04:22


Okay, that must mean he doesn't like designing things.  Because most of the time Linux people don't care if something "looks good".  As a web app developer, I have to care about how things look and feel.


But that's just a stereotype.  I think he uses ArchLinux.


I'm adding 'devise' as it's required for ActiveAdmin, but I'm getting stuck on some errors when creating a 'User' model in Devise -- something with my db seems to be conflicting


Well, I'm not Connor but I use Ubuntu on my personal


Hmm, I think it's fine. I like simple titles :)


Yeah, I like how Ubuntu looks.  I think if I had to rate operating systems, it would go like this:

1. OSX
2. Ubuntu
...
100000. Windows


LOL ok, I named it "GitHub Code Wrap" on userstyles: https://userstyles.org/styles/124860


it keeps auto correcting to 3, but I mean like 100000


Search Bitshift Variations. That is amazing, I would switch OSX and Ubuntu, and Windows wouldn't be last:
It would be low though


I can use Windows, and it's definitely not the worst operating system, but I think a lot of Linux distros are better.


Yeah, I agree!
And I love having gcc!


aplay


oh never tried charging without it so didn't knew.. I guess now I can directly use your repo for personal use ..
Thanks for working on cancro, we are lucky to have you and other dev's :)


this is great


Oh well, renamed!


And use Sympy, it makes life easier


@rt3norio Se liga ai.


That's cool.  I've heard of people making songs with C, or other languages.


What is Sympy used for?


this is great
![call marc](https://cloud.githubusercontent.com/assets/17521905/13377260/a0ab8dd0-dda9-11e5-9f66-6163bac824aa.jpg)


Math, it manipulates equations, sqrts, imagins, fractions


area code 506


Well, the code can be reduced 4 chars, 2 pairs are useless


What is its advantage over just importing math and/or cmath?


this is cool.


What do you mean 2 pairs are useless?


YES, it manipulates roots symbolicly
so
sqrt(2) 0->
sqrt(2)
not some ugly decimal

and that two pairs of parens can be removed from his music code


Does it simplify radicals, or would I have to implement that feature myself?


IT DOES IT!


·        Complete Requirements
·        Complete Product Specifications
·        Complete Software Project Management Plan
·        Preliminary Detail Design
·        Preliminary Test Plan
·        Prototype
·        **Presentation on 3/29**


You have to download the source code,
then extract it into the Lib folder of python,
and get that dependency


Okay, I'll do that sometime soon.  What is Numpy?


is it really #80?
this kind of change definitely needs CI check.


@swhopkins here's where I'm running into issues. Added the gem 'activeadmin', get to `rake db:migrate` and I'm told I have duplicate tables & routes.
[Was following directions here](https://github.com/activeadmin/activeadmin/blob/master/docs/0-installation.md)


I took a peek and this all looks good. Easy to follow.