(Lynne Jones) We should remove 'plottype' from all of the plot methods (just didn't have time to do this before). It's not being used anywhere and is confusing as a result, since 'plottype' eventually ends up being the method name - 'plot'.
(sorry - 'we' translates to you please, since this seems like a good point to clean this up).


I was trying to distinguish it from the style object.   Its the thing you can write on the command line which  I guess is "name or filename".


(Lynne Jones) Clearer to state plt.ylim()[0] instead of plt.axis()[2]? (is this the same thing?)
And maybe update comment to indicate what the bug is?
And how does this work if you are creating a merged or comparison histogram -- does it just use the very last set of histogrammed points to set the y limits? (I mean, I guess if ylim[0] was == max value of histogram, you have to do something to improve things, so maybe this is moot)


(Lynne Jones) sliceDim --> sliceColName


(Lynne Jones) since sliceDataColName changed to sliceColName, make this sliceCol (instead of sliceDataCol) for consistency
(through MAF, in general 'xxxColName' refers to the column name, while the associated 'xxCol' refers to the actual data column .. at least, it should. I know there are a few metrics where this is not true).


(Lynne Jones) Need to add test to check that if setting binMin/binMax in init, that these are respected when creating bins.


(Lynne Jones) Actually, test that binsize is used & respected when creating bins too.


(Lynne Jones) Need to follow consequences of not including these in slicer_init dict (they would be set to defaults .. but then slicePoints would be set okay by restoring slicer


(Lynne Jones) Also ... bins should go to 'slicePoints' , so binMin -> 'sliceMin', binMax -> 'sliceMax', binsize -> 'sliceSize'.
And equivalent for all other slicers.


(Lynne Jones) I would recommend removing _resultsDict and putting this directly into the iterator (or in the sliceSimData method, as that would then return info in exactly the same format as the iterator)
... or, as we just talked about, make _sliceSimData a 'private' method, return idxs and then package into dict in the iterator.


(Lynne Jones) sliceInfo should include 'left' (and possibly 'right') slicePoint values (the values in sliceCol corresponding to left and right of this ipix .. and ipix --> 'pid' I think we decided)


(Lynne Jones) Should 'params' be renamed 'args'?


(Lynne Jones) Oof, now I'm confused. What is _units for and what is units for? How/why are they different? Maybe some comments here would help.


(Lynne Jones) I thought the additional arguments were going to be kwargs, not args?


As I'm sure you figured out, there is no more buildin style called 'yapf'.  There is a style called 'chromium' that yapf itself uses.


(Lynne Jones) So ... if the additional args is always/only slicePoint, perhaps we should just pass this to all metric run methods explicitly, and those that want to ignore it can ignore it. This is basically what's happening now, just spelling out explicitly what that additional arg will be -- and really, that's the only thing if the metric is being used from the driver + sliceMetric setup, I think. What other use cases are we keeping available by having args be variable?  (I think I'd be more open to it being variable if it was kwargs ... but args just seems a bit dangerous to leave as an unknown variable, when we're using this as the template for the API and basically an explanation of 'how to use this').


(Lynne Jones) Hey, I have an update for this (oname) that doesn't deserve to go into its own branch, but addresses Zeljko's problem with < / >.
I'll add it and push, s'ok?


(Lynne Jones) In baseSliceMetric:
        if 'units' not in pParams:
           pParams['units'] = mname
           if '_units' in pParams:
              pParams['units'] += ' ('+ pParams['_units'] + ')'

and then
        if self.slicer.slicerName == 'OneDSlicer':
           if 'ylabel' not in pParams:
              pParams['ylabel'] = mname +' ('+ pParams['units'] + ')'
           if 'xlabel' not in pParams:
              pParams['xlabel'] = self.slicer.sliceColName+' ('+self.slicer.sliceColUnits + ')'
        else:
           if 'xlabel' not in pParams:
              pParams['xlabel'] = pParams['units']

... so if we set self.plotParams['units'] to be the actual units in the baseMetric, then we will never add the metric name to the xlabel. Which may be what we want, but if so then the way this is set in the baseSliceMetric needs to be clearer (for example: pParams['units'] will never not be in pParams, and it will never be set to the metric name unless the metric does not have any innate units .. and in which case, _units might not be set either.).


(Lynne Jones) Never mind - we sorted this out.


The doc does say that when linking to a container aliased as "foo", I should be able to discover foo using environment variables FOO_*. That's all we depend on. The user of this particular image (WORDPRESS) will alias the DB as mysql as they normally do with this image and it should just work. We don't have any knowledge or hard dependency on the specific name "MYSQL" either.

When we program cross host connectivity, we want the experience to be exactly the same as if the containers were linked locally. Environment variables provide a natural extension point for us to hook in. We'd gladly use other discovery mechanisms offered by docker down the road.


(Lynne Jones) We should probably make it easier on our users and always use 'sliceList' instead of binList (or pick one or the other instead of swapping back and forth). Not that it's in any way necessary, but for people who are using these as templates, it might be easier if we're consistent.


(Lynne Jones) Ok!
I think I'm cool with everything except possibly the change of the metric's run method to be "def run(self, simData, *args)". I think I'd like this to be either def run(self, simData, slicePoint) for all metrics, or "def run(self, simData, **kwargs)".
The very few times the args is being used, it's only for the slicePoint, and we currently don't support anything else, so I feel like making it a general args is confusing. If we really do want to make it a general args to be added to every run method, then those that are currently def run(self, simData, slicePoint) need to be changed to "def run(self, simData, slicePoint, *args)" .. I think.
 ... well, the * seems to make things italics and I don't know how to turn it off .. you get the idea.


`err :=` :) i'm afraid you'll have a conflict with your other PR here :) Also this makes me think that there are other `err =` cases in this function that you didn't cover in #12794


call nxt.disconnect() before logger.disconnect() in tearDown Method.


@AlexKVal Honestly, I don't even remember doing that. Most likely I let my casing habits run when I was translating this over to use es6 classes.


If this part is the only change

`if (defaultSchemaName != null && !defaultSchemaName.isEmpty()) {
	schemaName = defaultSchemaName;
    } else {
	schemaName = "dbo";
}`

why are you replacing the whole file? Please look at the commit.


Не мешает, я просто подряд бежал по вашим с Пашей комментариям и исправлял.


smaller_make_shared (lefticus) - i386-Windows-8.1-VisualStudio-14: OK (346 of 346 tests passed)

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


Da, este ultimul element din lista, pe care l-am copiat pe penultima
pozitie.

On Mon, Apr 27, 2015 at 6:25 PM, Victor Grigoriu <notifications@github.com>
wrote:

> Dar, sigur e bun? items[count] vrei să-l setezi la default(T)?
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/adrianaene/MyList/commit/1418e663e535d52852db395b11a2d00881fe0248#commitcomment-10918434>
> .
>


(Lynne Jones) Major changes: binner renamed to slicer. When you iterate over a slicer, it now returns a dict with keys 'idxs' and 'slicePoint': slicePoint has the metadata for the slice - always has 'sid' (like a pixel index) but may have 'ra', 'dec', etc. All metric 'run' methods look like def run(self, dataSlice, slicePoint) as a result -- this is the info that is available from the sliceMetric.  The slicers iterate over the data slices, and the iteration is defined in the base class while the actual data slicing (and indexing to set up for data slicing) is defined in each slicer.
All slicer kwargs moved to __init__ (as mentioned above).
SliceMetric does memoization! (as above).
Minor changes: updated unit tests and driver configuration scripts to work with all other changes in branch.
Additional minor changes that ended up bundled with this branch: cleaned up plot parameters and made them consistent across all slicers, added the option to select figure format and dpi to the driver (and propagated this properly through sliceMetric and into slicers), improved the plotting in the OpsimFieldSlicer (made ellipse plotting faster and smaller file size), and did minor change to output filename generation (replacing '>' etc, with 'gt'), changed name of 'makeMetricConfig' to 'configureMetric' (and same with configureSlicer) to respond to dry run comments.

Probably most important features to check out -- the slicer iteration and slice methods. The memoization in the sliceMetric. Anything else that looks hard to use.


(Lynne Jones) Feature/OPSIM-534 add capability to override metadata
Mostly just updates to SSTAR to make it hopefully easier to modify in the future. Added percentile metrics.
Added 'metadataOverride' option to driver + config files (to remove long proposal list for multi-WFD proposal selections, mostly).

* Added metadataOverride feature.
* Messing around with making sstarDriver.py cleaner and get output in showMaf.py organized in order. Added PercentileMetric to stock metrics so we can calculate 25/50/75th %tiles as was done in SSTAR. (Cathy needs this to compare to SSTAR).
* Make a merge to shorten long histogram names (when making histograms with multiple filters). Update all results page to not show unislicer results except in summary stat tables.


(Peter Yoachim) It's a little counter-intuitive to have a metadata and overrideMetadata.  Why would you set the override when you could just set metadata yourself?  Maybe instead just have a boolean "metadataVerbatim" that defaults to False?  Then you just set the metadata kwarg, and if you don't want the driver to monkey with it at all, just set metadataVerbatim=True.


(Peter Yoachim) Looks like the new percentile metrics aren't always displaying in 'ugrizy' order.  Might be easier to just throw them into the plot legend...


(Simon Krughoff) Why aren't these set in the constructor? I'm probably just missing something.


No entiendo por qué se dio esto de borrar las líneas.
Ahí revierto.


(Simon Krughoff) I'm a little surprised that this can just go away without more refactoring.  Was it not being used, or used to minimally?


removed it because it wasn't working.


(Lynne Jones) Oops - forgot this review was still hanging out there.
The answer to this is that it was never used (Peter thought it would be useful, but it was easier/cleaner to do things in a different way, so never actually used. Deleted to clean up codebase).


Yeah, I'd rather remove it then rewrite. Not a big deal.


(Lynne Jones) Because these are not actually properties of the class. In python you can add additional variables to a class like this, so we're doing it for convenience. It's not needed for the slicer itself, but this way the data is associated with the slicer (for driver purposes only).


(Lynne Jones) It's still two flags ... if you think it's clearer to have just one 'metadata' (which by default, in the driver is combined with the sql constraint for convenience so people don't have to specify both), along with a 'metadataVerbatim' True/False, that's fine. I can switch.


(Lynne Jones) Is this still true? I think I fiddled with this and got it to work ...but I'll double-check.
Can't throw into the plot legend because we don't have a good way to plot other statistics (i.e. percentiles are calculated on a unislicer) as part of the legend of a different plot, when we're using the driver.
We can address this in the next revision of the viz stuff (when we pull plotting out of the slicers and into a second step after running all the metrics).


(Peter Yoachim) Pretty sure this "else" wasn't supposed to get deleted.


(Peter Yoachim) Looks good, I fixed the sstar config so it would run.  Looks like a few of the merged histograms might have some problems, but those can go on a new ticket.


(Peter Yoachim) hmm, maybe the merged histograms are fine and there was conflict with the plot limits that kept things from showing up.


(Peter Yoachim) larger binsize here?  The values should all be ints I think.


(Lynne Jones) Good catch, you're right. I think one of the merge back with master choices must have gone awry.


I see :) Thank you for the answer.


(Lynne Jones) I had this problem and thought I had fixed it .. hope it wasn't another thing I lost in merges :(  ... or maybe i'm just confused.
Update - I think I was confused. But I'm not sure why these plots aren't showing up.. the individual histograms seem fine. As you say, new ticket I suspect.


(Lynne Jones) You're right! Also thought I'd gotten this one fixed in the merge, but guess not.


I see now, will open a new PR when that's done.


(Peter Yoachim) Feature/OPSIM-601 make sure everything runs with
I think these are reasonable limits for the sstar.  We should merge this quickly since the install now fails with the healpy errors.


sure I haven't fully checked for `if err :=` vs `if err =` that pr was about `err := ...` and `if err != nil` primary, I'll address this here btw


you have to be logged in to leave comments. i just left a comment. no pushing, no shoving.

they'll let just anybody, i guess. there is more rigamarole if you want to publicly fork your own, and to suggest that your changes be merged. ssh keys and stuff.

On Apr 26, 2015, at 9:0131 PM, r2abraham wrote:

> nice !!!
> if not SSH, how are you doing this …
> pushing via HTTPS ???
> ============
> > On Apr 26, 2015, at 6:55 PM, mi3kie <notifications@github.com> wrote:
> >
> > a busload of lawyers!
> >
> > —
> > Reply to this email directly or view it on GitHub.
> >
>
> —
> Reply to this email directly or view it on GitHub.
>


Good catch.


Bocsi, a Changelogban nem látszott, hogy időközben frissítve lett, ez a commit most most visszalépés lett, de nemsokára kész az igazi.


smaller_make_shared (lefticus) - x86_64-Linux-Ubuntu-14.04-clang-3.5: OK (346 of 346 tests passed)

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


Thanks for integrating this so fast! I got the numbers listed on the test by running it locally with the correct sparsity condition. It seems very reasonable to leave it out, was mostly just to document what I meant by this being a "least surprise" change :)


Hi @or9400,

as mentioned in the comments, the values were determined experimentally. Basically I used a StreetView Pano which contains a grid (similar to the one [in my demo](https://marmat.github.io/google-maps-api-addons/panomarker/examples/basic.html), but with more detailed markings), set the view to a specific zoom level and then looked at where the viewport's border is on the grid.

To get the parameters in the formula, I used Mac's "Grapher" tool, but really any tool that can approximate the parameters of a formula based on a set of input points (the ones I listed in the table) should do.


I tried it in the Meteor shell. The first time the Factory is created it calls those functions once and that's it.


@styner Martin,  NOTE:  There is an enumeration here that is well suited for changing the behavior of how the lambda's are ordered, but It is *NEVER* used!

Perhaps the intended purpose was to if a switch statement at line 67 to implement the 3 different options.  The implicit behavior prior to Ali's patches is "DoNotOrder" Default order of the eigen values obtained after QL method.

There are some cases where subsequent computation of rotationally invariant scalars were producing unexpected results.

lambda_1 = +0.26
lambda_2 = +0.24
lambda_3 = -0.50

would result in MD=0.0, additionally, FA would also be incorrectly skewed.

We would really appreciate your consideration and guidance for how we should modify DTIProcess in order to make it clear what the expected behavior is.


kisbetűvel szoktuk kezdeni a metódusneveket.
[CamelCase](http://en.wikipedia.org/wiki/CamelCase)


I agree, I don't think we should need sudo to set-up any of the tools.  Some users might not even be sudoers on their machines.


smaller_make_shared (lefticus) - x86_64-Linux-Ubuntu-14.04-clang-3.5-LibC++: Build Failed

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


Yeah, I agree the model/view separation gets finnicky here. The WebView holds lots of our state. It is both a model and a view. I know I can probably add a model for Snackbars for instance, and wiggle them out of the Browser (the win there is really minimal though, even in this case where it just involves including two widget classes in Extensions). Maybe I can wiggle the webserver out as well (I've never touched it).

This feels well beyond the scope of this bug though. Even this patch is largely un-necessary to be honest. i.e. We can use TabManager as is and just include the "storage.saveSomeTabs(guid: nil, tabs: tabsArray)" bits here. I'll do that and save these commits off somewhere else for safe keeping.


 - __style__: [src/chaiscript_stdlib.cpp:18](../blob/986699a3fecb8ecdc11966f528e8285a8d4dacc8/src/chaiscript_stdlib.cpp#L18) The function 'create_chaiscript_module_chaiscript_stdlib' is never used. (unusedFunction)
 - __style__: [src/main.cpp:169](../blob/986699a3fecb8ecdc11966f528e8285a8d4dacc8/src/main.cpp#L169) The function 'get_eval_error' is never used. (unusedFunction)
 - __style__: [src/main.cpp:140](../blob/986699a3fecb8ecdc11966f528e8285a8d4dacc8/src/main.cpp#L140) The function 'help' is never used. (unusedFunction)
 - __style__: [src/main.cpp:216](../blob/986699a3fecb8ecdc11966f528e8285a8d4dacc8/src/main.cpp#L216) The function 'myexit' is never used. (unusedFunction)
 - __style__: [src/main.cpp:158](../blob/986699a3fecb8ecdc11966f528e8285a8d4dacc8/src/main.cpp#L158) The function 'throws_exception' is never used. (unusedFunction)


У меня тесты на LossFunction заработали.


Random Unicode strings would be absolutely wonderful for QuickCheck. Since it is a nontrivial problem I punted.


:+1:  Extra :+1: for being responsible test maintainer.


OK


He changed it on Thursday, it's now due Wednesday:
https://piazza.com/class/i7wzfttgh6m6wz?cid=48

On Mon, Apr 27, 2015 at 9:40 AM, Ruben Niculcea <notifications@github.com>
wrote:

> It's actually due today:
>
> Code due: Monday 27th April 2015 at or before 13:00
>
> I'm gonna get to work on it right now.
> Ruben
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/RubenSandwich/CS420HW2/commit/9befe827c4616521b8704837abd26b85fde940f7#commitcomment-10920209>
> .
>


There is no options parameter passed to the constructor, so I think this comment is incorrect.


problem solved by merging #12333 :P, your PR will need a rebase but it's not urgent.


smaller_make_shared (lefticus) - Win64-Windows-8.1-VisualStudio-14: OK (346 of 346 tests passed)

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


Add the versions as well please


like i said above, i just merged #12333


? Mi az a royal?
[Poker Hand Ranking](http://www.pokerlistings.com/poker-hand-ranking)


Should we add:

<pre>
/**
 * @returns {number}
 */
</pre>

here too for completeness?


Comment1 by 2!


Fixed type


cp has nothing to do with the instantiation of relevant_refs.
Why should it have to do with its deletion?


You can use $this->cronRun() for this.


typo (hav)


No.


`-  - Credits to AtlasStation.` Has to be `-  Credits to AtlasStation.`


Ouf, je crois que tu ne devrait jamais séparer ce genre de calcul d'URL à plusieurs endroits. Il serait préférable d'utiliser le router (idéalement, c'est l'une des fonctions d'un routeur) ou sinon d'au moins faire des fonctions genre Ctx.getIdeaURL(idea) que d'autre bout du code peuvent réutiliser.


That was a lot easier than I first thougt :sweat_smile:


`-  - Credits to AtlasStation.` Has to be `-  Credits to AtlasStation.` Besides that, i actually fixed this one myself, but thanks for pointing me out where to look.


Great.


:) Hát igen az api nem ezt mondja, hanem, ahogy eredetileg volt :)


This code assumes that cron did run in the same minute as you are generating the request. This can randomly fail.

Instead, you need to do the same as the list builder does, get the last log, and then use the time from there.

Also add a assertNoText() for Never.


Nit: remove trailing comma here?


Why?


log error please :)


REF #281


AlipayPlugin.callAlipaySDK(order);
但是这个order字段要从服务器端生成并签名，传回到客户端。
在客户端保存签名的私钥是很不安全的。


right, I assumed since we weren't this wasn't needed


rax retry tests


Use tabs to indent.


No dot at the end.


Nit: `named actions`


Why did you choose to put this one inside a `where` block, but not the others?


I'm not really using the phone that much, so I don't have anything extra installed, and don't hit those lag situations. The swapiness and zram size values are what CAF is using on their 512MB devices though. I'm thinking of trying to revert the zram kernel changes back to what's in LA.BF branch, and then see.


smaller_make_shared (lefticus) - x86_64-Linux-Ubuntu-14.04-clang-3.5-AddressSanitizer: OK (346 of 346 tests passed)

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


Should come before `Network.Eureka.Request` alphabetically


i wonder whether this shouldn't stay in NewDaemon. In case of an error, remove the pidfile in a defer. Also remove the pidfile on Close. That way client can be simple: `d, err := NewDaemon(); defer d.Close()`, @runcom @LK4D4 wdyt?


Should reorder alphabetically.


"a LVM thin pool" scans a bit better to me.


smaller_make_shared (lefticus) - i386-Windows-8.1-VisualStudio-12: OK (345 of 346 tests passed)

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


Congrats! Got some release notes I could look over for 0.2?


Oh cool. No rush then.

On Mon, Apr 27, 2015 at 11:13 AM, Casey English <notifications@github.com>
wrote:

> He changed it on Thursday, it's now due Wednesday:
> https://piazza.com/class/i7wzfttgh6m6wz?cid=48
> On Mon, Apr 27, 2015 at 9:40 AM, Ruben Niculcea <notifications@github.com>
> wrote:
>> It's actually due today:
>>
>> Code due: Monday 27th April 2015 at or before 13:00
>>
>> I'm gonna get to work on it right now.
>> Ruben
>>
>> —
>> Reply to this email directly or view it on GitHub
>> <https://github.com/RubenSandwich/CS420HW2/commit/9befe827c4616521b8704837abd26b85fde940f7#commitcomment-10920209>
>> .
>>
> ---
> Reply to this email directly or view it on GitHub:
> https://github.com/RubenSandwich/CS420HW2/commit/9befe827c4616521b8704837abd26b85fde940f7#commitcomment-10922386


Thanks for your input.

This removes a "custom" function and replaces it with another from R base.


Lehetett volna úgy is, hogy van egy osztályszintű konstans listád az alacsony kézkombinációs rankokkal, s azt használod fel:
```java
private static final List<HandRank> ACCEPTABLE_LOW_COMBINATIONS = Arrays.asList(
    HandRank.HIGH_CARD,
    HandRank.PAIR,
    HandRank.TWO_PAIRS
);
```

```java
protected boolean lowCombination(HandRank handRank) {
    return ACCEPTABLE_LOW_COMBINATIONS.containes(handRank);
}
```


true, but might as well :)


@nirvdrum @chrisseaton I added this workaround as a temporary fix for issue: https://github.com/jruby/jruby/issues/2802


My suggestion is because on stock linux Debian-based distributions, no more than 0.10 can be found, and even on official repositories, 0.11 is the `devel` version.


I removed it and can confirm it seems to work here too.


I guess you have a cut&paste error - this class is really `OptionalTypeAnnotationConstraintOnMethodTest` and the current `OptionalTypeAnnotationConstraintOnMethodTest` is ``OptionalTypeAnnotationConstraintOnConstructorTest`.


ok, thanks for the status update. I'll wait for the review :)


Kept in as in-code doc (commented out the values).


smaller_make_shared (lefticus) - x86_64-Linux-Ubuntu-14.04-clang-3.5-ThreadSanitizer: OK (346 of 346 tests passed)

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


hate the use of + in strings. Can we do an sprintf that creates the final URI before hand?


Furcsák ezek a get metódusok, úgy néz ki bet értékeket számolnak, s adja vissza.
Lehetett volna egy BetFactory-t készíteni, amely olyan interfész implementációt ad vissza, amely a kívánt kézhez mérten ad meg bet értéket.


I'd add a `1>&2` here so that it shows up as an error.


sure, most of this was me just putting some code in place for structure. I'll do a sweep and clean it up once we know it's working.


hmmm, when you merge from vix, why do you not include these very good enhancements?
this allows for more customization instead of using locked templates.


smaller_make_shared (lefticus) - x86_64-Linux-Ubuntu-14.04-gcc-4.8: OK (346 of 346 tests passed)

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


Not sure this should go into the public API.


@ufl-taeber Definitely cool to see so many new groups using BB.js!

For what it's worth, Elation (the team I work on) is primarily a Python shop, and we do use the Python<->Node stuff at http://www.bluebuttonjs.com/docs/#parsing (under "An Example Using Python & Node") in production to parse CDAs. The Node script is responsible for handing back JSON, and then we just work with the JSON in our Python app. I know calling out to another language via the shell sounds hacky, but it's proven quite stable, and I can't think of any issues we've had with it.

Of course, if the blocker is something like "administrative approval for running Node on our servers," the port may still make your lives easier. But I thought I'd throw that out there in case it sways your decision to port, since the project does change constantly as we run across new samples/vendors that don't parse well.


I would not check for the defined(FREEBSD_LIBC) here since the cmake project files ensure that it is defined or the build fails during the makefile generation phase.


I was asked to use single quotes.


smaller_make_shared (lefticus) - x86_64-Linux-Ubuntu-14.04-gcc-4.6: Build Failed

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


I talked to someone about this after I patched it, one could theorize that it's actually casting u to a boolean. I just left it as if since C is a spooky language. ¯\_(ツ)_/¯


I used LegacyHostIP because ExternalIP has the external IP address of the master, whereas LegacyHostIP hast the external IP address of each node.

To demonstrate, here's the output if I log the addresses returned for each of the two nodes:

```
INFO: - node addresses: []api.NodeAddress{api.NodeAddress{Type:"ExternalIP", Address:"23.236.59.67"}, api.NodeAddress{Type:"LegacyHostIP", Address:"146.148.74.101"}}
INFO: - node addresses: []api.NodeAddress{api.NodeAddress{Type:"ExternalIP", Address:"23.236.59.67"}, api.NodeAddress{Type:"LegacyHostIP", Address:"130.211.117.116"}}
```

and here's the ground truth from the development console:

![ips](https://cloud.githubusercontent.com/assets/1170062/7354557/feb5b34e-ecd0-11e4-8a96-3a1a70dcac38.png)

So given this bug, it seems like I have three options for this PR:

0. Fix the bug as part of this PR
0. Submit this PR, and have the bugfix PR also change this code
0. Block this PR on that bugfix

What would please the reviewers?


How does this compile? there's another case with same case 't' option at line no: 152. For title.


agreed. Will change.


On most systems you do need `sudo`, the most notable exception is OS X with homebrew.


smaller_make_shared (lefticus) - x86_64-Linux-Ubuntu-14.04-cppcheck-1.67: OK (0 of 0 tests passed)

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


D'oh. Done (not yet pushed).


@Diego-F-Aguirre done with my review. checkpoint nicely done. KVO is your friend in iOS apps. As is NSNotificationCenter - two very similar features.


Ack—will resolve based on how above is resolved.


@StefanKarpinski Why does Char allow invalid code points?  I would think you could just use UInt32 if you want the full range... it would be nice if Char only represented valid characters, i.e. 0 - 0xd7ff, 0xe000-0x10ffff.


@Diego-F-Aguirre a perfectly fine fix. well done here.


A simple way to make the doc more user focused is to use root's README file, if you want something more customisable, I don't think jsdoc will fit, and we'll need to create a static html doc for users with a link to the api doc generated by jsdoc for developers without the tutorials option.


[kna@kna-yandex-mac:~/Canecycle-of-Caerbannog] python -m cProfile -o big_profile.pyprof ./canecycle/ccc.py -b 10 -l train_big_except.txt -H 4
Traceback (most recent call last):
  File "/usr/lib/python2.7/runpy.py", line 162, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "/usr/lib/python2.7/cProfile.py", line 199, in <module>
    main()
  File "/usr/lib/python2.7/cProfile.py", line 192, in main
    runctx(code, globs, None, options.outfile, options.sort)
  File "/usr/lib/python2.7/cProfile.py", line 49, in runctx
    prof = prof.runctx(statement, globals, locals)
  File "/usr/lib/python2.7/cProfile.py", line 140, in runctx
    exec cmd in globals, locals
  File "./canecycle/ccc.py", line 58, in <module>
    main()
  File "./canecycle/ccc.py", line 45, in main
    classifier.fit(reader)
  File "canecycle/classifier.pyx", line 99, in canecycle.classifier.Classifier.fit (canecycle/classifier.c:3315)
    cpdef fit(self, Reader reader, continue_fitting=False):
  File "canecycle/classifier.pyx", line 111, in canecycle.classifier.Classifier.fit (canecycle/classifier.c:3152)
    self.run_train_pass(reader)
  File "canecycle/classifier.pyx", line 96, in canecycle.classifier.Classifier.run_train_pass (canecycle/classifier.c:2891)
    self.weights = self.optimizer.step(item, self.items_processed, self.weights)
  File "canecycle/optimizer.pyx", line 30, in canecycle.optimizer.Optimizer.step (canecycle/optimizer.c:2143)
    cpdef np.ndarray[np.float_t, ndim=1] step(self, item, np.uint64_t step_number,
  File "canecycle/optimizer.pyx", line 41, in canecycle.optimizer.Optimizer.step (canecycle/optimizer.c:1851)
    candidate_weight = weights[col[index]] - newStep.newStep[index]
AttributeError: 'numpy.ndarray' object has no attribute 'newStep'


asignezi de două ori la rind aceleiași variabile, valoarea întoarsă de `new T[index]` se pierde.


@Diego-F-Aguirre adding pull to refresh and infinite scroll used to take sooooo much work. this is done. press on!


La fel aici, asignezi de două ori la rînd variabilei `memory`.


Thanks, done (not yet pushed).


@aembler Is this line ok or it comes from your tests?


fixed


Done and done (also capitalized `Failf(...)` text above) (not yet pushed).


Ha esetleg el akarod kerülni az aláhúzásos enumokat, mert valljuk be igen furán néznek ki :P használhatnád a számok angol nevét :)


@palcalde: This looks like it will overwrite the tableView's current left, right, and bottom contentInset's with zero. Should we not copy the current values when updating?


@MHova fixed in later commit


I guess we can be assured that the back-end won't return something funky like `Content-Type: applicaiton/json;charset=latin1`.


So `err` already exists, and it's also my named output variable.  I think this means `=` is correct?


this `err` here is not straightforward. The variable it's referring to is on graphdriver.New, which if it's `!= nil` then would have the function return so this would never execute.

What you want here, is if there are ANY errors after the graphdriver initialized correctly, then clean up the graphdriver. Also as you can see we're duplicating code that was one in OnShutdown (would be great if we could avoid it).

This is what I suggest: in the NewDaemon function early on make a `defer func() { if err != nil { d.Cleanup() }`, (but then we have scope/readibility problems with `err`). And in Cleanup it would try to clean up every resource, but would check first if it was set or not.


Hey - look at it - we have module, custom trait, generics - doesn't it look cool  - fmt::Display is boring?
Ok probably not... and probably you are right, but i still want to play with mods and crates little more :).


Or is it Go style just to shadow & create a new variable for every `if` block?


This will also throw ArgumentException if filename is not a valid path, and I don't think we actually sanitize the name when we get it from the debugger, so it's worth catching that here, as well.


I had problem in Linux too, with Nvidia (tested with GT 740M, driver 340.76, bumblebee 3.2.1-5, xubuntu 14.04) it only works with "First CI change" or "First primitive draw", or you'll get a flicker screen. With Intel it works fine with "VI origin update".


Arf, Gonetz removed the link to gliden64 source on paulscode, don't hesitate to send me a copy so I can help fixing issues. ;-)


Ok, but `defer func() { if err != nil { d.Cleanup() }` can't be really called that early because not `daemon` struct is created yet, am I wrong? if I put that defer early in NewDaemon it can't call d.Cleanup()


+
+/* HTML5 display-role reset for older browsers */
+article, aside, details, figcaption, figure,
+footer, header, hgroup, menu, nav, section {
+  display: block;
+}
+
+ol, ul {
+  list-style: none;
+}
+
+blockquote, q {
+}
+
+table {
+  border-collapse: collapse;
+  border-spacing: 0;
+}
+


I think `-Werror` was purposely left out here because this library is to be open-sourced.


I keep getting a force close adding a similar commit... Is there anything in this commit that makes it work? I'm trying to add a new banner, and I re-sized it to this one's size (500x200), thanks.


unless daemon struct is created incrementally and in d.Cleanup nilness is checked against to be cleaned field, yes could work


ast could still be null here.  Is that acceptable?


Estimados, dos cosas:

1.Incorporen la clase al proyecto, observen que compile y funcione minimamente
2.El namespace, siguiendo con el patron de usuario es Repository.Model


@MHova why is this a reason? I don't see it


Please really remove this #if, this define is under our control and we ensure that it always exists.


Unfortunately, because using apt-get worked on Ubuntu, and pip did not.
I'd be happier with pip, as these packages end up installed rather outdated python libraries.


Awesome,

thanks for the collaboration!


@mkhanbas what's with passing in a parameter that you set to false in the function call?


Hmm..., I just noticed "set -e" so we will exit as soon as some error happens. I am not sure how 1>&2 will prevent that. I tried following and tried to create a lv of size greater than free space so that creation fails.

lvcreate -L 900G -n docker-pool docker-test 1>&2

Stil script exits. So I am not sure how redirecting standard output to stderr changes "set -e" behavior.

If we are using set -e anyway, how about I just get rid of all the checks of [ $? -ne 0 ] in the code.


The key we have from Google Compute Engine allows us to SSH as the username, not as root. I've switched this to `USER` (not yet pushed). Let me know if I'm confused about this.


@mkhanbas  this code is repeated 3x, turn it into a function and call it


@taphu mentioned that it's bad practice to add `-Werror` to open-source modules because the module is liable to break due to compiler version changes


@mkhanbas  this code is repeated 2x, make it s function and call it or make it a loop


:) úgy néz ki ezt kódoltad le:
```java
return list.contains(hand.getRank());
```


Okay it's fine. For now, in profile view we do not have rows without disclosure indicator.


ok, i buy that


(Lynne Jones) Simon has patched the lsst-eups distributed version of healpy so this should not fail. If someone is running their own version, this is a useful error message, however, healpy has not actually released the patch yet .. the newest healpy released version 1.8.1 will still fail against matplotlib 1.4.0. Because this is somewhat complicated to explain in an error message, and the default LSST installation will work, I think it's okay to just leave it as the original piece of code (without the try/except).
If we get questions, this is an easy one to answer at that point.

In any case, the except should be targeted to a particular exception, not catching all. (except ValueError, etc. or except Exception).


Done: https://github.com/fpco/stackage-server/commit/90ad3afe191e965de4b414ae9913baa60ab45499 and https://github.com/fpco/stackage-content/commit/d37c7f895fe9323be6863a42ff7cdb28d7ddc0ce.


oh, you wanted 1>&2 added to echo so that it goes to stderr. That makes sense.

But right now that echo does not even gets executed because due to "set -e" we exit immediately after error.


I'm about to ssh to root@<vm> to nodes I own. I'm currently trying with gcloud ssh, let me try with the key manually..


Gracias. Aplicaré tu sugerencia en unos minutos.


@mkhanbas the code in the if-else block is extremly similar, restruture it


(Lynne Jones) Why did you remove this check on xMax (so that it's different for most proposals vs DD proposals)? Just trying to understand why it was necessary ... it seems like making the max be 160 will mean that nothing is plotted for DD proposals. Also, is this range 0-160 appropriate for all plots for all proposals?


(Lynne Jones) Hi Peter, can you please clarify what the problem was with healpy? Buildbot seems to be saying that everything builds and installs just fine. Simon has patched the LSST version of healpy so that it will not fail on the graticule call (although the official healpy released version does not include this patch yet .. it's only in their git repo).


(Peter Yoachim) When I tried to do "eups distrib install lsst_sims -t sims" it failed on the graticule.


(Lynne Jones) What version of healpy did it try to install?


(Lynne Jones) Ah - Simon found the problem. The -t sims tag is not tagged correctly. He'll update and do a new release.


(Lynne Jones) Oh, and you had upgraded anaconda yourself (not in the stack)? (apparently anaconda 1.8 is still the packaged/distributed version, so old matplotlib version).
So it's a bit complicated .. but ought to be sorted out in a hour or so.


ha nem adunk be mindent, akkor az hogyan all-in? Ez furi, vagy csak nem látok valamit.


(Lynne Jones) Was this supposed to be in the committed version?


(Lynne Jones) Feature/SIM-978 utility for requested visits
(ran unit tests and sstar driver - look ok)
* Update to opsimDatabase.py
Added fetchRequestedNvisits method (to provide number of visits per filter per field requested by a proposal). Updated science types tags processing to split on ','.  Changed table names to match their actual tables (instead of lower case + Table).
* Updated unit test for OpsimDatabase to match changes.
* Updated getData in mafDriver to remove 'Table' name extension.
* Updated sstarDriver to include request benchmark and match case for table names.


(Peter Yoachim) ahh, a much needed clean-up!


(Lynne Jones) Sorry - I should have updated the sstar test. Thanks!


(Lynne Jones) Feature/OPSIM-89 write unit tests for binmetric
* Some more updates to the Completeness metric and test when I inadvertently discovered a new way it could fail.
* Added Identity metric (to make SummaryStatistics work for unibinner in a more intuitive fashion) and unit test. Removed defunct 'testSimpleMetrics'.
* Unit test complete up to plotting, and baseBinMetric has been slightly updated (picked up one of Peter's changes from another branch where he removed unibinner special case from summaryMetric and discovered/fixed a bug in the masking during runBins).
* Updated completeness metric so all reduce methods work even if a filter has no requested observations (previously would raise Exception), and updated unit test to test for this case (and for case where no observations in one of the filters).
* Some more updates to the Completeness metric and test when I inadvertently discovered a new way it could fail.
* Added Identity metric (to make SummaryStatistics work for unibinner in a more intuitive fashion) and unit test. Removed defunct 'testSimpleMetrics'.
* Unit test complete up to plotting, and baseBinMetric has been slightly updated (picked up one of Peter's changes from another branch where he removed unibinner special case from summaryMetric and discovered/fixed a bug in the masking during runBins).
* Moved _unit to _units (still need to change these in driver config examples, but up to date elsewhere). Moved addOutputFileList to private method (_addOutputFileList).
* Finished basic unit test. Discovered that we may/probably want to reconfigure plotting as a result (make default plotting method 'plotData' and just pass along all plotParams). But basic test to check that we set xlim/ylim/xlabels/ylabels/titles is there, along with unit test for all other existing methods. Updated baseSpatialBinner to use absolute value  of ra/dec to check if radians or not (improvement/possible bug fix). Updated baseBinMetric itself in mostly typographical ways (and...


(Peter Yoachim) This could still be used to pass labels to the histograms, but I'm not sure if anyone wants to label a histogram with only one curve on it.


(Lynne Jones) Yes, it's a good point. I figured we might as well take out labels at this level and make people put it in the title instead, just to keep things simpler (is that unfair though?).


(Lynne Jones) Oh right .. and we don't have an option for setting the 'addLegend' to be true at this point, anyway.


(Peter Yoachim) Feature/OPSIM-575 remove white space trailing and
removed trailing whitespace and used pyflakes to check code and remove unneeded imports and fix a few typos.  If I'd been smart, I would have done those on different commits.


This a rename of the `DATA_LV_SIZE` variable right?  An admin might have specified this before in `/etc/sysconfig/docker-storage-setup` - how about we do:

{{{
DATA_SIZE=${DATA_SIZE:-${DATA_LV_SIZE}}
}}}

around here?


(Lynne Jones) Do we still need this try/except? Or is it outdated by new scipy in stack?


Yeah, that seems to work fine for me.


(Lynne Jones) Merge conflict.


(Lynne Jones) Same comment about the try/except - do we still need it?


(Lynne Jones) PS - meant to mention this before the merge, but pyflakes seems like it's awesome and caught some good bugs! I've been trying to get it installed in my emacs/aquamacs but having a bit of trouble.


(Peter Yoachim) yeah, pyflakes is magic.  It comes with anaconda so I just used it from the command line, but it would be good to plug it into emacs.  I also taught my emacs to clip trailing whitespace on save, so that should help keep things from degrading over time.


(Peter Yoachim) Feature/OPSIM-339 pre configure script for driver
Most of the meat of this merge is in utils/runInfo.py

One issue is that my coadded depth for the stretch values do not match SSTAR.  I'm not sure why.

* updating the completeness calc to what is actually desired
* Added identity metric so unibinner results can easily pass to the summaryStats file
* clean up the baseBinMetric a tiny bit
* update plotting so that only unmasked opsim fields get plotted
* upgrading the fulldb example
* full db driver example works


(Lynne Jones) Hi Peter,

I already did this (sorry) in the pull request you just approved .. (write-unit-test-for-BinMetric).
I added it in the SimpleMetrics (and added a unit test in TestMetrics). Here's the code I used:

class IdentityMetric(SimpleScalarMetric):
    """Return the metric value itself .. this is primarily useful as a summary statistic for UniBinner metrics."""
    def run(self, dataSlice):
        return dataSlice[self.colname]

(I think you want to return the dataslice[colname] not just the whole dataslice).

Remove this from here?


(Lynne Jones) Where do the masked values come from here and what happens if they are not removed? Is this information we actually want to see in the result? (for example, if there are no observations for a particular field, don't we want to see that value in the resulting skymap so that we know that the field existed in the proposal but wasn't observed?)


(Lynne Jones) Just curious - what do you need this for? (wouldn't you just fetch the field data for a particular proposal?)


@mkhanbas I like how you moved all these together, maybe make it a function call that returns a dictionary of enemies mapped to the stage strings or some such


(Lynne Jones) name of 'Config' table should be a kwarg, along with the column or value for the runlength (in case this changes).
This util is actually just scaling predefined Stretch and Design values for a given run, right? (maybe change the name to scaleStretchDesign since I think we will likely want also a method which really does fetch the requested # of visits for a particular proposal and then uses this to set the benchmark values; without renaming, I suspect it will be confusing).
I think I'd also like to see 'Bench' below swapped to 'Design' so that we can be really clear on what is design (system goal), what is stretch (system stretch goal), and then 'bench' being a user-defined or variable value.


(Lynne Jones) Again, I think you want 'Design' instead of 'Bench'.


(Lynne Jones) This is a cool capability!


(Lynne Jones) Swap _unit for _units (I made the changes down in the baseMetric, so _unit won't do anything anymore).


(Lynne Jones) Just curious why commented out - not using this anymore or is it just not needed here?


(Peter Yoachim) I was going to use it, ended up making fetchNFields to get the number of fields for each propID


(Peter Yoachim) yes--'design', 'stretch', and 'benchmark' are good.


(Peter Yoachim) I thought I would need this for completeness calculations--but ended up not needing it.  We can probably get rid of it once everyone decides what they really want for completeness.


(Peter Yoachim) The problem was that the masked points were getting set to badval, so they were all getting plotted as blue--made it hard to see what was going on.  I think to be consistent with the healpix binner, we should not plot fields where nothing was calculated.  But we probably should think of a way to make a plot of all the fields and note which ones were requested but not observed.  Maybe just an 'unmask' plotting keyword?  I have an IdentityMetric on another branch that would work well for this kind of plot.


ClickableImage is a class, so it needs to go up in the class defs, not the function defs


(Peter Yoachim) I was thinking it might want to have something more general to pass everything, but I think you're right that it works the same this way as a simple metric.


(Peter Yoachim) OK, I think this is ready to merge.  I filed a ticket for the one lingering issue on coadded stretch depth.


(Lynne Jones) Ha, I think maybe this was a typo in the xlabel (DesignMark)?


(Lynne Jones) Should include badval as kwarg here, as have to pass it back to Super Init if we want to use it (and to be consistent with other binners, probably should let user set it here too).


(Lynne Jones) Hi Peter, I'd like to see the badval added to the OneDbinner init, but I think you can fix that pretty trivially, so I marked it as approved for merge.


]] Richard Warburton

> Thanks for your investigation on this. I've seen that error message
> too. Rather than setting the src to either 0 or broadcast, would you
> have any objections to setting src to nil (always), so that it picks
> up the interface's IP? (I'm against the client being able to specify
> our src, I'm also not sure about setting a zero ip.) Thanks again.

Setting it to the interface IP would be fine for me.  It might not do
the right thing for interfaces with multiple IPs, but I don't have that
in my setup, and I'm not sure the sending IP actually matters for any
DHCP clients.  I mainly want it to not error with the udp write
error. :-)

--
Tollef Fog Heen
UNIX is user friendly, it's just picky about who its friends are


(Peter Yoachim) hehe, yup, I think that was a s/Bench/Design/g


(Lynne Jones) Feature/SIM-1109 create utility to fetch and write
These were changes that came up in response to the feedback at the RotSkyPos tutorial presentation (and my resulting updates to the tutorial).

* Added utility to write configs.
* Changed name for findDataCols to findReqCols.
* Working on getting angular mean/rms/full range metrics.
* Added angular metrics (Mean/Rms/FullRange) + unit test for FullRangeAngleMetric.
* Added utility to connect to results DB.
* Added writeConfigs to module _all__ list.


(Rahul Biswas) So this is 2 \pi  -  maxdiff(angles). If all angles are between theta and theta + 2 pi, this should be positive.


(Rahul Biswas) I suppose there is no docstring required because this a "private" function. Yet, it would be nice to have a one line comment on what is being achieved: Perhaps ' Add constant c to angles, such that range((c+angles)%(2 pi)) is smallest?'

I believe the assumption is angles has values from 0 to 2 pi?


(Rahul Biswas) Maybe put in a comment stating that the std will be calculated taking periodicity into account, so that we present a smaller std?


(Lynne Jones) Sure - some more documentation of the difference between this and the 'RmsMetric' would be good. (probably same with the other new metrics).


(Lynne Jones) Yes, and will do.


(Lynne Jones) It's not quite. The example of having angles [10, 15, 20, 30] is illustrative - maxdiff would be 10 (due to the way np.diff works, it only takes into account the difference between each successive element, which is why I do a sort at the start). But, the actual maxdiff would be 360 - 30 + 10 -- this could be written as twopi - angles.max() + angles.min(), but I thought it might be faster to use the fact that I'd already sorted the array, rather than doing another max/min search. Actually testing it shows the difference is less than a microsecond, and it's probably more readable the other way, so I can swap it back.


Ai intuit corect că array-ul trebuie crescut ca să încapă elementele, doar că e ineficient să faci asta de fiecare dată. E posibil ca array-ul să fie mai mare decît ai nevoie, și unele poziții să nu fie ocupate. Poți să începi cu el nu de lungime 0, ci mai mare, și cînd e cazl să-i dublezi dimensiunea.


(Lynne Jones) Oh, and yes - it should be positive. Unless you were accidentally feeding it degrees (which I did). So, the 'if' below is really just a bit of a failsafe, but shouldn't need to be there. I could remove it.


hihihi


(Lynne Jones) Oh .. sorry - I was thinking of 'maxdiff' as I define it below. But you mean the max - min of the angles. So, yes. What you said :)


(Rahul Biswas) Yes, actually, the thing that I am a little worried about is that people might miss that this is done and misinterpret what it is giving us (both in rms and mean), though, presumably, the person thinking about this is used to the issue.


(Rahul Biswas) Actually, I just realized that maxdiff may be an array (if there are multiple angles satisfying the condition) which causes problems later.


(Lynne Jones) .. it's unlikely, but you're right, should be the ability to handle this.
I would suggest that (if there are multiple gaps with the same value) that I just choose the one which is closest to 360. Since I already merged this branch, I'll just make a new branch, make the fix, make you the reviewer and hopefully we can get that merged back in to master quickly.


(Rahul Biswas) Yes, I agree this should not happen to floating point precision. Most likely if someone was trying to set up a test using np.arange (which is how I realized this)


(Lynne Jones) Feature/SIM-1126 bugfix for  rotateangles
Updated _rotateAngles to pick max difference (if multiples) and updated MeanAngle to use unit vectors. Updated unit tests.


(Peter Yoachim) Feature/OPSIM-509 create healpix galactic dust extinction
This won't work until Simon adds the new files to sims_dustmaps, but once those are in there the code should run fine.

* started putting in maps
* Added maps and they seem to be working
* add warning
* added test. Made dustmap work for opsimfieldslicer
* forgot to add files, like always
* update ignore file


(Scott Daniel) I think you're going to have an indent problem here.  Also at line 104.


(Scott Daniel) might be easier to read if there was a blank line before the definitions here and in line 26


@mkhanbas structure is much better than previous version, although all 3 door stages call similar code. Function!


(Scott Daniel) Doesn't this map the north pole to a dec of -pi/2?  It looks to me like hp.pix2ang returns the angle between the pointing and the north-south axis as 'lat'.


When I replace this with "root" it doesn't work. I'm unsure what else to change here.

Can you paste the SSH command you're using?


(Scott Daniel) The API for calculateEbv has changed.  It now accepts either:

a 2-d numpy array galacticCoordinates in which the first row is longitude and the second row is latitude

or

a 2-d numpy array equatorialCoordinates in which the first row is RA and the second row is dec


În getter nu verifici că indexul e în range-ul care trebuie.


(Scott Daniel) you should be able to do all of this inheriting from EBVbase rather than EBVmixin.  EBVmixin has been refactored so that it only contains getters for interfacing with an InstanceCatalog


(Scott Daniel) Why do you load the dustMap every time this function is called?  Will it really never be called multiple times in one run?


(Scott Daniel) If I am right about the mapping between healpix's angular coordinates and ra, dec (see comment in createHealDustMap.py), then dec + np.pi/2 would also need to be changed


(Scott Daniel) Should this be 'if self.cacheSize >0'.  The warning that follows warns that the cache has been turned off (I thought that non-zero cacheSize meant the cache was turned on)


Aici verifici, dar nu faci setarea.


(Scott Daniel) This would be easier to read if there were a blank space before the definition of _sliceSimData


(Scott Daniel) I'm not sure why this line is here.  Should it be in setUpSlicer?


(Scott Daniel) A blank line before the def would be nice


(Scott Daniel) again: If I am right about the healpix-to-dec question, this file will need to be changed.  If I am wrong, disregard.


(Peter Yoachim) ugh...the indenting is indeed all over the place.  Kinda impressed that python is smart enough to run it.


(Lynne Jones) It's supposed to be (but after the definition of _sliceSimData, which happens in setupSlicer). This whole method (the def _sliceSimData) happens inside of def setupSlicer. I think that's why I didn't put spaces before those def's.


(Lynne Jones) Scott, you're right .. I don't think it mattered for our internal use, which is why we didn't have problems with this before, but now that we're interfacing with external maps I guess it's a problem. The dec should be dec = np.pi/2.0 - lat (and we'll have to make changes to all of our conversion between ra/dec and lat/lon to match, as well as update the 'rotation' in the skymap).
Checked using :
http://healpix.sourceforge.net/html/intronode4.htm
>>> lat, lon = hp.pix2ang(2, 47)
>>> ra = -lon % (np.pi*2)
>>> dec = (np.pi/2.0 - lat)
>>> print ra/np.pi*180., dec/np.pi*180.
45.0 -66.4435356909

I think the ra might also be wrapped the wrong way, according to that map.


@Gillou68310 Since @gonetz took the link down, I would feel best if you obtained the source from him.  Of course *I* trust you but it's not my code to hand out.


(Lynne Jones) although i'm not 100% convinced on the RA since we have a different convention for increasing direction ..


(Scott Daniel) Okay. I see.  I'm still having trouble thinking in Python.  Disregard my comment.


(Peter Yoachim) I was using it to pass the map in bulk, but it's a good idea to just put it as an attribute and only reload if needed.


(Scott Daniel) Do the coordinate arguments here need to be updated to our assumption that lon = ra and dec = pi/2 - lat? (sorry if this comment comes through twice)


de ce faci `memory = null` și imediat după îi dai altă valoare?


(Peter Yoachim) yup, I missed that one.


(Lynne Jones) The calibration unit test fails  - I had this happen on a different branch and fixed it there (it was a problem in the unit test itself). I'll push the changes I made to the unit here - can you double check on my changes? Of course, I couldn't successfully run testMaps because the required files aren't present. I think this means we can't merge this ticket to master until the dustmaps are updated in sims_dustmaps (because otherwise we will break buildbot on master).


(Lynne Jones) Looks good! Actually, come to think of it .. you should go ahead and merge to master but (unless Simon's put the .npz files into the dustmaps?) just disable the testMaps unit test to avoid breaking buildbot.
One other request though, is to add some documentation on using the dustmap into the confluence pages somewhere. The example is good, but it would be easy to get confused or miss the example. Another thing to consider is that the slicer will 'know' whether or not it's using the dust map, right? So can we automatically turn caching off if the dustmap is turned on rather than relying on the user? Or can you imagine cases where someone would want the dust map but still want to cache the results?


(Lynne Jones) Feature/OPSIM movie
* Correct small error in movie slicer.
* Added filter name -> number converter to stackers.
* Allow for providing metric values to plotSkyMap in BaseSpatialSlicer which are RGBA tuples (metricIsColor).
* Added opsim movie script.


(Peter Yoachim) Should any of these values become kwargs?  They look a little magic-number-ish.


this is so the door choice is just an illusion?  comments in the code please

@mkhanbas


(Peter Yoachim) the () makes it look like tStep is a tuple...I think you can just drop them.


I mean you should rely on arrayRandomFilling in matrixRandomFilling.


(Lynne Jones) They are a little magic-number-ish ... they're what I found worked well. I'm a little wary of overloading the kwargs, but I guess adding alphamax and alphamin at least wouldn't be too bad.The die-down scaling was a little hard to calibrate and I kind of think putting that into the kwargs might be overload with terms that don't mean that much .. if you think it'd be something people want to adjust a lot (we'll see, given that I'm running a much longer run now), then I could put them in, but otherwise I'm inclined to leave them be.
The rgb mapping is also a little 'magic-number-ish' :)


(Lynne Jones) Good point.


(Peter Yoachim) maybe don't go all the way to kwargs, but pull them out and put in a comment that they are hand-tuned so if we use this is a wacky way later we'll know what might need fiddling.


`ssh -i ~/.ssh/google_compute_engine root@146.148.89.85`


(Peter Yoachim) I just ran an example and it looks like the blacked-out part makes a wacky jump at midnight (and might be blocking some observations that are getting made?).  Either way, I'd crank the alpha way up on that so that you can still see the observations that have been made and that have since set.


(Peter Yoachim) Maybe add a little error checking to make sure one doesn't generate 10,000 output files.  Seems like a little typo on the sql could result in a problem.  Maybe also clean up all the intermediate png files by default?


(Peter Yoachim) oh, maybe that was the moon that went crazy?

anyway, you could also think about gray-ing out things below the horizon.


junk


(Lynne Jones) Yes, it was the moon. Sorry, missed that last push. Fixed it.
I'll think about the horizon .. it'd be a good feature, but it would require a bit of extra work to import palpy or pyephem and figure out where the horizon is I think, and I'm not inclined to do it at this time (unless you have something like that?)


Unu că „ce-i” se scrie cu cratimă. Doi, dacă nu ai habar, de ce ai folosit?


(Peter Yoachim) You could just approximate it as plus/minus 6 hours from the current lst, and gray out the dec's above telescope lat+90.  And maybe rotate the projection by dec as well so that zenith is at the center.


I agree that section 6, as written, is essentially meaningless. I bring as evidence article 3 of the New Hampshire constitution, which has never impeded the litany of statist ills perpetrated on residents of New Hampshire:

[Art.] 3. [Society, its Organization and Purposes.] When men enter into a state of society, they surrender up some of their natural rights to that society, in order to ensure the protection of others; and, without such an equivalent, the surrender is void.

The requirement of force or fraud should help.

As for the other changes, perhaps you should split them up into separate PRs for each section, so that it will be clear what's being changed, and so the changes can be discussed separately.


(Peter Yoachim) YES!  This option has already saved me.


(Lynne Jones) AND it lets you make a movie without waiting for the end of the plot generation! I think Chris added this to the original script, was a good idea.


(Lynne Jones) what do you mean .. I'm trying to generate 45000 output files at the moment. on purpose :)  (actually, I wonder if that's something that's making my movie generation slow).


(Scott Daniel) Feature/CATSIM-99 refactor DBObject
refactoring DBObject so that arbitrary SQL queries are possible.  The bulk of the description of this pull request will be in sims_catalogs_generation

* Table class in db/Table.py now inherits from CatalogDBObject, which
contains all of the functionality of the old DBObject class with the
addition of execute_aribtrary() and get_arbitrary_chunk_iterator()
for executing arbitrary SQL queries
* added unittest of arbitrary query to testDB.py
* added test to testDB.py to make sure that arbitrary queries
properly handle the conversion between unicode and str


Wrapped object constructed in-place ....


(Simon Krughoff) Should this also test for a query when you don't know the dtype, or is that done in generation?


(Lynne Jones) I'm a little confused on what you can/can't do with the arbitrary query execution.  Do you always have to know the dtype, or is it just that in some cases the automatic type detection fails and then you have to know the dtype?


By design - we don't want to repeatedly fail, so we cache the failure.


(Lynne Jones) Nice work, Scott. I appreciate that we can just use our current Table object with the new DBObject and CatalogsDBobjects. I think we can try to change some things in MAF to better use DBObject/CatalogDBObject and that maybe doing so will make some of the things you had to do in DBObject to accomodate the MAF Table object not necessary (i.e., the _arbitrary vs non-arbitrary execute/post-process-results).


(Scott Daniel) testJoin in testDBObject.py in sims_catalogs_generation does a test without a known dtype


(Scott Daniel) It's not that automatic dtype detection fails.  I just wanted to leave the option open in case you wanted to impose a dtype by hand.  Mostly I guess that would come in handy if you wanted to change the names of columns to be something other than the names stored in the database.


You're right, it's one.


Sigur condiția din `if` e corectă?


(Lynne Jones) Feature/OPSIM-537 add json dump of metric output
Most of the changes in this branch have to do with updating the viz templates and mafRunResults to allow for downloading either npz or JSON files. There are also changes to the BaseSlicer and BaseSliceMetric to facilitate the JSON file creation.

* Added JSON output to baseSlicer. Added python script (example_json.py) to use it. (also added example_d3.py into files, if we want to use this later .. this was an earlier test for Nan-Chen).
* More work on JSON dumps.
Expanded example_json to test writing JSON for multiple types of data.
Extended base slicer with more JSON writing.
* showMaf port addition and baseMetric typo correction.
These errors should not strictly be here on this branch, but should go into a bug fix elsewhere. (committed here so that I can swap to another branch).
* Fixed typo in description of RA.
* Added streaming JSON output in format Nan-Chen requested.
Reads from files (npz format) and outputs JSON string if possible.
* Handled error condition if complex metric.
* Actually add json template to viz dir.
* Fix to allow data in npz or JSON via same link.
Updates to most templates and to mafRunResults and showMaf control script itself. These updates account for changes in retrieving the data via 'getData' (rather than separately for npz files and JSON files), just changing the 'datatype'. Now both 'types' of data are retrieved in the same way.
* Whitespace removal.
Whitespace removal in other files that I happened to notice while doing edits on the files related to the actual changes in the ticket.


drive by comment - why the removal of btrfs root logic, did something change in that realm?  Not saying it is a problem, only asking since it looks like it's removed in this.


(Simon Krughoff) I don't see where writeJSON is defined.  I see outputJSON.


(Simon Krughoff) Looks good.  Comments:
This adds additional functionality but there are no new tests.  Can the examples (or some stripped down version of them) be modified to be unit tests?
Since we are going this direction, I'm going to mention the commits.  The commits that implemented the full JSON could be in one commit and the cleanup commits could all be in one commit.  This would have been slightly easier to review if it was three or four commits: one for JSON in the slicer, one for JSON in the web forms, one for examples and one for cleanup.  I think they would have all been functional.  Remember, I'm not asking that you code that way, but you are allowed to rebase -i and squash/rearrange commits.  Please don't do it for this pull request, but think about it next time.


whats going on inside this else statement?  too much nesting, its hard to follow,  can you comment it?

@mkhanbas


(Lynne Jones) Will do. I'll have to learn about rebase -i and squashing things. The commits do look messy because we went a couple of different directions .. but a cleanup at the end would be good.
I'll add some unit tests (especially as the example was a test in itself, and is now actually obsolete and won't work, as you found in the piece of code example_json.py).


(Lynne Jones) Responded to review comments and added unit test. Fixed small additional bugs in OneDSlicer + unit test that I discovered (unit test had tests turned off by accident).


(Peter Yoachim) Feature/OPSIM-678 check the chip gaps are being put
Updated MAF so now it's getting the chip gaps right.  Added a few example scripts so it'll be easy to check if things change.

* oof, that's a facepalm.
* 4 positions
* huh, rotskypos needs to be degrees. who knew?


`ssh -i ~/.ssh/google_compute_engine -l root 146.148.89.85` also works


(Scott Daniel) I'm sorry.  When I heard you say "rotSkyPos needs to be in degrees," I thought you meant when passed to the ObservationMetaData constructor.

You are correct that, at the moment, the internals of the CatSim code expect rotSkyPos to be stored in degrees.  This sounds like a bug to me.  I think the correct way to fix this is to change CatSim so that it stores rotSkyPos in radians.

If you agree, I will go ahead and open branches for this ticket in CatSim and make the necessary changes.


(Peter Yoachim) Sounds good.  Opsim is storing all their angles as radians, so that should make everything consistent.  Once you make the change in catsim I'll strip off the np.degrees here and double check it all works.


(Scott Daniel) I just looked at the code again.  It looks like I fixed this problem a few pull requests ago.  Are you using the master versions of the CatSim packages?

line 666 of sims_coordUtils/python/.../coordUtils/Astrometry.py should be

theta = -obs_metadata.rotSkyPos

(which assumes that rotSkyPos is in radians)


(Peter Yoachim) Feature/custom pointings slicer
Lost track of this branch. Pretty simple. There is the pexConfig bottleneck that one can't send a list of ra,dec points through the config, so it has to be run as a script if you want multiple points.

* new slicer and example for using slicer to find overlapping observations
* fixed so it runs through the driver
* minor edit


NO DONT DO THAT


(Lynne Jones) Wow, really is simple. Nice.


(Lynne Jones) Feature/OPSIM-710 update util.sqlwhere to handle
* Updated utils.createSQLWhere to handle non-existing proposal tags.
* Added unit test.


whoops, good catch. thanks.


this is the same code as the if case, flip your if-else and negate it, don't copy paste the code

@mkhanbas


(Peter Yoachim) Feature/OPSIM-613 leave blank space for missing plots
OK, I've fiddled with the sstar config so I think it behaves as desired.  Let me know if I broke something, but it looks better I think.

I made it fairly minimalist where it will only put in blank spots in a few cases, otherwise it just uses the order it was given (since that can be set in the config, it really shouldn't be fiddling with the order much anyway).

I also dropped in a javascript table sorter.  On the plus side, it totally let's you sort on any column.  On the down side, the radio buttons break if you sort.  One solution would be to just toss the radios and make the run names hyperlinks.  Then you only need one click to select a run too.

* got it mostly working
* got the blank.pdf to work
* Now works with multiple sql constraints
* little clean up
* Small changes to format for multicolor plot page.
* fix up the Nvisits a bit.
* more sstar tweaks
* table sorting works!  Still need to figure out how to point to the src.
* sortable table works
* make the radio column unsortable


Can you please explain (here and please add a comment) what getURI should do?

1. I didn't test it, but I googled, to get an absolute path you should use boost::filesystem::canonical(myPath).string();
http://stackoverflow.com/questions/4179322/how-to-convert-boost-path-type-to-string

2. On unix you get a valid URI if you add file:// at the beginning of the path. On windows you will get an __invalid__ uri, e.g. if the path is C:\temp\test.xoj you create an uri which is "file://C:\temp\test.xoj", but it should be "file://C:/temp/test.xoj".

Why you implemented this way. Thank you.


(Lynne Jones) So HERE the min/max should stay even in the merged histogram, as the ratio is only done for the WFD and all visits (so the range should be appropriate for all 'ratio' plots. Also, the range being fixed is what was done in the old SSTAR so that plots and histograms from one run could instantly be compared to plots/etc from another run or between filters).


(Lynne Jones) Comment is misleading, I think. "Isn't this already being done above? " ... yes, but only if there is only one WFD proposal. The plots here *should* be the same as above (so cumulative -1 is good). Perhaps the thing to do is to test if the WFD contains a single proposal, and if so, then skip this section. If not, then run this section to run the 'combined' WFD. Makes labelling in the section above problematic perhaps (maybe the thing to do is actually to skip the previous plotting section, if there is only one WFD proposal).


La fel ca la `Add`, de ce asignezi de două ori la rînd aceleiași variabile valori diferite?


(Lynne Jones) That said, there is something funky going on between these two that should be fixed ... see http://ivy.astro.washington.edu:8888/metricResults?runId=1&metricId=898&metricId=889


(Lynne Jones) Do you need this javascript included in every MAF page? Or just the runselect page? If just the runselect page, this should go there instead.


(Lynne Jones) I still think returning the skymatch plots, then calling the ordering routine from the *template* rather than directly from here is a good idea. It makes the template easier to read (and you understand why you're getting an ordered set of skymaps, including blanks, back).


I just put this back before it was before the PR started. The `isinstance(content, string_or_bytes):` check is the only change.


(Peter Yoachim) ah, it had to go above the {% extends "master.html" %} to work on the runselect page.


NEVER!!!!! RAWER


(Peter Yoachim) Feature/SIM-1004 generic transients metric for maf
* started detect metric
* added more keywords
* Put in constraint to demand multiple detections
* add unit test
* add comments


(Rahul Biswas) What does 'well distributed points'  mean? Not on the same night?


(Rahul Biswas) Can we change the variable name to have an association with rise time


(Rahul Biswas) as a *detection* ?


(Rahul Biswas) why not `lcMags[decline]+=self.declineSlope * (time[decline] - self.peakTime)`


(Rahul Biswas) Not sure what the variable `detectThresh` is. It seems to get incremented every now and then depending on inputs but not on data slice


im pretty sure you mean '==='


(Rahul Biswas) example command line stuff to run this


@secrettriangle, I think I figured out the inconsistency. To test surrogate doubles, I was using U+30000, which is technically and undefined unicode point, however, many implementations treat it as though it was double-width, but every implementation differs. In reality, this character wouldn't be used.

Testing this way caused me to mishandle surrogate singles, so I fixed those and started using a better double-width character (that's actually implemented the same everywhere). Very odd. Hopefully the commit I'm about to push will fix the iTerm2 problem (it fixed it on VTE). Both iTerm2 and VTE were interpreting U+30000 as single-width whereas xterm and rxvt-unicode interpret it as double-width.

That being said, the combining character after the S in your screenshot still looks incorrect. I wouldn't be surprised if we still have trouble with that. I'll test it myself and file an issue on the iTerm2 issue tracker if it turns out it's still broken.


DATA_LV_SIZE was internal to script. We will scan logical volumes and figure out what's the current size of DATA_LV_SIZE.

User will specify desired data volume size using DATA_SIZE. And that has not changed. I just got rid of DATA_LV_SIZE as that did not seem to be required any more. If we are creating pool, then we create DATA_SIZE size data volume. Otherwise we extend the pool to DATA_SIZE to make sure user will see the pool of size DATA_SIZE at the end of script.


(Rahul Biswas) Works but would be much cleaner with a groupby syntax where you have a multi-dimensional array with columns of time, detected, lightcurvenum and you group by lightcurvenum to get detected and time in each lightcurve.
- I suppose you want to stick to numpy/scipy, and I have not used itertools in http://codereview.stackexchange.com/questions/60884/groupby-in-numpy but have used these in astropy Tables, or pandas dataframe.
- I don't know what would happen to performance, but groupby() is really what you are doing so, it is more intuitive and clean


(Peter Yoachim) ah, good catch.  I went and zero-pointed things twice on accident.


két intet így tudunk osztani, hogy double legyen belöle:
```java
int a = 13;
int b = 5;
double c = (double) a / b
```


(Peter Yoachim) Good idea.  I think nPrePeak makes more sense.


This push may have been too soon, because I am now getting failed tests.


(Peter Yoachim) means how many sections of the light curve have to be observed.  I've updated it and put in an example of what it means.


(Peter Yoachim) yeah, that's just how I'm keeping track of how many conditions a light curve has managed to pass.  There might be a slightly more efficient way to do it.


Cum spuneam, e posibil ca array-ul să fie mai mare decît cîte elemente ai. Nu e musai să redimensionezi cînd faci `Remove`.


(Peter Yoachim) ah, yes I am just doing a group-by.  I like np.searchsorted because it's really fast, but I'll check if the scipy grouping works as fast.


(Rahul Biswas) Does this mean pandas is out of the scope for lsst sims ? I think we could just leave it and try it later, but keep a comment/pseudo code in the code indicating the steps that would go together in a groupby .


(Scott Daniel) Feature/SIM-943 move utility functions
changed to reflect existence of sims_utils


loop logic looks good

@mkhanbas


(Lynne Jones) Feature/SIM-910 gawiser dithers
Mostly adding new dithering patterns.
Some rearrangements to sstar.

* Updated plotting in plotDither.py script.
* Updates to sstar-related items.
Updated display caption for completeness metric and updated sstar driver to remove some DD metrics which didn't make sense, as well as change xmin/max values for plots related to individual proposals.
* Swapped name of UniqueMetric to CountUniqueMetric.
(because I couldn't remember 'UniqueMetric' ever and kept looking for CountUniqueMetric).
* Added 'total power' summary metric.
* Updated healpixSlicer to actually use legend location information.
* Modified plotted power spectra to cl*l*(l+1) / 2pi. (added the 1/2pi).
* Updating galaxy number counts metric.
Added dependencies on spicy and healpy, so I think this will probably end up going in sims_maf_contrib.
* Removed GalaxyCountsMetric from core maf and put into sims_maf_contrib.
The metric required scipy, so I thought it might do better in mafContrib.
* Driver to generate dither outputs.
* Examine and compare dithered power spectra.


(Peter Yoachim) This should probably go over in the driverConfigs directory and add a note that ditherDriver.py has to be run first for it to work.


This README won't be included in the `make dist` target and it should be so it's part of the tarball.


(Lynne Jones) Sorry about the unit test failure. It's okay to just tell me to fix it, but thanks very much for doing the fix!


(Lynne Jones) Sure. I wasn't quite sure where to put it .. it's definitely a python script, but it was useful to generate the cosmology dither results, and I didn't want to lose it. I could also put it into sims_maf_contrib, which may be a better spot since it is pretty much interpreting the galaxy number counts. (actually, unless you have objections, I think that's probably what I ought to do).


(Peter Yoachim) yeah, that makes sense.


we gotta create a better name than door lobby lol

@mkhanbas @ScottPatrick @akielkopf


Normal destroy stopped working after this change, fails to destroy jail with "Command not confirmed.  No action taken"


(Peter Yoachim) Ah, and the notebook seems to want a "cls.txt" file that isn't in the repo.

And should the filename start withe lower-case?


(Lynne Jones) Feature/SIM-901 prepare tag
removed 'all stats' from unislicer filter stats.


(Lynne Jones) Feature/OPSIM-472 create metrics registry
Added metaclasses to Stackers, Slicers and Metrics.
Added separate Stacker module, with a baseStacker.
Added user-defined module importing utility (need to add this to driver still).

(automated summary of commit messages below).

* better way of handeling nones in comparision
* Fixes to mafUtils module importer.
Some small changes to metric files, to adjust for metricDtype kwarg change in base class. Also some small changes for formatting (for presentations).
* Added metaclass to the BaseStacker to register all stacker classes. Tweaked stackers slightly as a result, and updated driver to use stacker class registry.
NOTE: stacker units is now a list (so that we can provide different units for different new columns).
colRegistry doesn't quite work as intended here yet, but I'll fix that.
* minor plot tweaks
* Fixed small bugs with baseStacker registry and stackers themselves. Updated badval for OneDSlicer.
* Added a little more info to the doc option on listStackers.
* Updated documentation functions in baseMetric metaclass (added echo of __init__ arguments & defaults if user asks for help for a specific metric). Updated documentation of module loading.
* Fixed problems in metrics unit tests related to changes in metric class. Also updated driver where colNameList -> colNameArr.


(Simon Krughoff) This line is way too long.  Any time you see one of these, just wrap it.


This looks terrible.


(Simon Krughoff) This line and a similar one above should have a space between comma and next keyword argument.  I assume the removal of setupKwargs is o.k.?


(Simon Krughoff) In other places this has ben opsimblitz1_1131.  Is this intentional?


(Simon Krughoff) The following lines should be removed or fixed.


@mkhanbas


(Simon Krughoff) Is this comment necessary?  It seems confusing to me, but maybe it means something in the context of the rest of the examples.


(Simon Krughoff) This and several other places refer to ../../tests/opsimblitz..., but the README.txt still says to download opsimblitz2_1060_sqlite.db.  Is the README out of date?

And did you mean to check in a 520MB file into the git repo?  It's discouraged to check in files that are that big.


Thanks, I've used (flen(signal)+7)//8.


(Simon Krughoff) Why is this commented out?


(Simon Krughoff) There is still a mention of binList.  Other places this was changed to slicerList.


(Simon Krughoff) do you mean slicePoints?  I've seen that term elsewhere.


(Simon Krughoff) binpoints -> slicePoints?


(Simon Krughoff) Mention of bin metric.


(Simon Krughoff) slices?


(Simon Krughoff) I've said this before.  Any time I see lots of narrative commented with '#', I wonder why it's not in the docstring because it's obviously useful.  Users never see comments in '#'.  I think it's useful even in base classes to have the documentation available to help().


(Simon Krughoff) All arguments should be documented.


(Simon Krughoff) slicepoint?


(Simon Krughoff) Should this be an argument?


(Simon Krughoff) sliceBinMetric -> BaseMetric?


(Simon Krughoff) Commented out code.


(Simon Krughoff) Should binsList be slicePointsList or something to keep consistency in naming?


(Simon Krughoff) More commented out code.


(Simon Krughoff) Why do you need a special case oneDSlicer?  Surely NDSlicer can do 1D.


@thibaultCha It is for a plugin, but doesn't need to be there by default. The user can add it if he needs it. Please remove any reference on it from the docs (but not form the nginx plus plugin page)


Hi why do you think running Rack::Timeout at the bottom of the middleware is better? Thanks!


(Simon Krughoff) ditherStackers -> .ditherStackers


(Simon Krughoff) Doesn't this modify simData in place?  If so, why do you need to return it (and do you want to?)?


(Simon Krughoff) Other places this was replaced with slicerList


(Simon Krughoff) Other places this was replaced with slicerList.


Păcatele mele, cum e formatat `if`-ul ăsta? Nu zic să pui acolade, dar măcar să indentezi corpul față de `if`.


(Simon Krughoff) testRunBins -> testRunSlices


@lemire
Thanks for the code review.
I agree: 4 bytes are more than necessary.


(Simon Krughoff) This can't happen.  This line is so long that stash just gave up on displaying the whole thing.


(Simon Krughoff) setupBinner -> setupSlicer


(Simon Krughoff) Why does this test run differently than, say, testBaseSliceMetric.py?


(Lynne Jones) Hi Simon -- are you reviewing this pull request too? (I thought AndyC was going to do this one and you were going to do the other one). If you are, that's fine - just wanted to understand what was up.


Small nit left - I see here a weird space issue, (it's a red star), can you fix it? Worse case I would fix it after pulling your change. Let me know. And sorry that it takes too long, but both of us are leaning from this process.


(Lynne Jones) (also .. I think this should be fixed on the binner -> slicer branch .. although it also needs to be fixed here .. ugh. maybe we fix it there, then rebase here before merging back to master? I'm not sure what the proper procedure should be.)


(Lynne Jones) Okay, this is a question definitely particular to this branch.
Yes. It modifies simData, which should be just a pointer to simData if python is doing what I think it ought to do with numpy structured arrays. I guess I figured returning simData made it more clear that it was being modified?


(Simon Krughoff) Why is None being passed to the run method?  If this is the slicePoint metadata, it should be a keyword argument and default to None.


(Lynne Jones) Yep. Will fix.


(Simon Krughoff) This should have a more descriptive name.  Otherwise people have to grep through the tests.  If the metrics being tested here don't naturally go together, the could be broken out into multiple tests.


s/Client/client


(Simon Krughoff) delete commented out code.


:+1: Nice


(Lynne Jones) It can. Minor differences in general, however, the oneDSlicer is easier to grok and configure. The plotting methods are differently named and we haven't entirely figured out how to control Nd plotting using the driver at the moment (could be done if this was a priority).


(Lynne Jones) In general I've been trying to get rid of the commented out stuff -- this one in particular is something I forgot about because I've been trying to get back and actually make this work. I'll take it out.


I guess these can now be removed from here, and from the skel =)


(Lynne Jones) Maybe. However, this is to make it more in parallel with the oneDSlicer. It seems much more intuitive to ask users to define the 'bins' for their oneDSlicer than their 'slicePoints'. Plus, bins matches numpy's histogram 'bins' kwarg for histograms (and the oneDSlicer acts like a histogram most of the time), in that it takes a number or a numpy array for the histogram bins. We could change this to 'slicepoints' but I think 'bins' lets the user understand what is going on a bit easier. Also, we let the user define 'binsize' instead of 'bins' if desired (because opsim team in particular wants to be able to make histograms that have the same size bins between multiple slicers, but set the min/max values by the data) -- it seems very weird to call this 'slicePointSize' but I guess we could do so. With this in mind, what do you think about the bins/binsList thing? (It's also possible we could just change it to 'slicePoints' for the NDslicer and leave it alone for the OneDSlicer).


I guess I took that from an example in mapfishprint

> On 27 avr. 2015, at 18:33, Éric Lemoine <notifications@github.com> wrote:
>
> @jaykayone why is the scale set in the general attributes as opposed to be in the map specification?
>
> —
> Reply to this email directly or view it on GitHub.
>


(Lynne Jones) Should be 'sliceMetric'. Will update.


(Simon Krughoff) There are many places where this method is called with slicePoint=None.  If it's optional, can't it be defaulted?


(Simon Krughoff) O.K. I made a bunch of comments.  Mostly they are about the word bin showing up when it seems like slice/slicer makes more sense.
I did notice quite a few places where files were not 'git mv'd.  This makes it really hard to tell what has changed since it looks like the file was deleted and added back.  We should strive to 'git mv' whenever possible when renaming a file.


(Lynne Jones) Maybe... I was hoping this (the memoize function overall) would be addressed in the binner-> slicer branch merge.
Peter should weigh in, but I believe that cacheSize should not be an argument because (although using the cache yes/no is an argument), the size of the cache depends on the resolution of the slicer .. we want to keep about 2 rings of the healpix points in memory, because that gives you a way to memoize all of the relevant data points but none of the ones you're not going to reuse.


May be remembering incorrectly, but I think this was a hack due to a bug at the time.


:D ha lennének tesztek...


(Lynne Jones) Yep.


(Simon Krughoff) What did we decide was the workflow?  I'm marking approved, but I would like you to at least read through my comments before it's merged.


(Lynne Jones) I can move it up. In general, I write a lot of notes to myself or future developers that may not need to be passed along to users ... I think this was more along those lines, but if you don't think it's confusing for general users, then I can move it into the docstring.


Right. :)


(Lynne Jones) yep ... more of these hanging around than I had thought.


I will rem from conf ref


(Simon Krughoff) I'm clearly an idiot.  I meant to review the other one.  Argh. Sorry.

For what it's worth, I didn't review any of the registry stuff.  Mea culpa.  I'll look at the other one and try not to dupe too many comments.


(Lynne Jones) So this is an example intended to help users (new to python) understand what the for loop was. However, I think it probably needs to be documented better as to what the line means / what it's for .. will update.
(something like add # Build a list of sql 'where' constraints  above the constraints=[] line, then add # The resulting python list, by the way, looks like the following:  )


(Lynne Jones) 520MB is the opsimblitz1_1131 test file. It's a one year run of opsim.
I guess we can go back and ask them for a smaller test set of data, but we need a test database in order to run the unit tests. Is there any way to download the test data for unit tests separately so we don't have to put it in git?
I had thought a one year run would be small enough to work.  How small should the db be? (Even one month will be about 40MB).

I'll check with Peter about using the test db -- I want the workshop attendees to use a real opsim db (i.e. opsimblitz2_1060) not something that's so small it will not give representative plots. I suspect he swapped to using the test db because it means the examples run faster? (but this will not be impressive if we swap the test db down to a one month run).


Why did you remove
"If you find an issue with in the client library we would appricate you adding an issue here."
You can still have it, just link [here](https://github.com/google/google-api-dotnet-client/issues).


Should have been issue #25


## This is a markdown file


I would just place this under `Sabre\Cs`, because it makes the package name consistent with the namespace.

The `s` is in lowercase, because that's better for abbreviations. Really regret not having done that correctly in sabre/dav since the beginning but in sabre/xml it's also `Xml`.


mintha a függvény leírása nem ezt sugalja: "return 2 if is else 1" :)


Small nits.
Let me know if you prefer me to fix them after pulling.
One small issue that I don't get, is that I don't see your latest change in your repo no this page - https://github.com/LindaLawton/google-api-dotnet-client. WEIRD.


Thanks for dealing with the boring stuff ;-)


This is not needed, the caller is responsible to init it.


This assert should be on the caller.


Getting rid of the `[ $? -ne 0 ]` makes sense to me.


ha megleltük, akkor utána felesleges tovább menni a forciklussal, még ellenőrizgetni másokat, nyomjunk break;-et


Looks good.


LGTM


I am having issues with understanding how the comments work on this.  I thought your comment meant you only wanted to see this.


nope


please provide more info on the purpose of this

i'm unfamiliar with depmod but this sounds like something you want to run on the system you use the kernel on but not on the system you *build* the kernel on


There is no such operator as `!===`, I think you mean `!==` for strict inequality... and above you mention `!==` for inequality when you should mean `!=`. Does that make sense?


tényleg van olyan, hogy nincs meg a játékos állapota?


This could be its own service. and maybe it should be.


ok, I will get rid of all 3 instances of [ $? -ne 0 ] checks.


I'll look into that. Thanks.


See http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-match-query.html for more details.


Oare? Care e ultimul element din listă? Dacă am, de exemplu, trei elemente în listă, cît va fi `count` și care vor fi indecșii elementelor?


We could go more general and go media.


Should be Dominik instead =)


Yeah: https://github.com/Mashape/kong/blob/master/kong/cli/utils/signal.lua#L109 But it's ok I got it.


Это что за коммиты в мастер? O_o


This change breaks bootstrapping; Not sure why

```
../../lib/partialmap.fst(182,110-182,148) : Error
Unexpected type argument ((op_Addition ((length a (append a s1 s2)) == (length s1)) (length s2)))
```


This assert should be in the callee.


csodás


@garnold, how does this work? From your screenshot, it looks like all the nodes are still contained in a palette  "category" labeled "LightBlue Bean", but they are ordered.    Are "-input" and "-output" special suffixes that can be used to do this?   Is there documentation from the Node-RED guys on this?


См. ссылка "Поправить статью с помощью prose.io"


Maleficent! :P


This is currently failing with
```
Failure in test /home/jenkins/workspace/plone-4.3-python-2.7@2/src/plone.app.form/plone/app/form/widgets/datecomponents.txt
Failed doctest test for datecomponents.txt
  File "/home/jenkins/workspace/plone-4.3-python-2.7@2/src/plone.app.form/plone/app/form/widgets/datecomponents.txt", line 0

----------------------------------------------------------------------
File "/home/jenkins/workspace/plone-4.3-python-2.7@2/src/plone.app.form/plone/app/form/widgets/datecomponents.txt", line 174, in datecomponents.txt
Failed example:
    view.result(testdate, use_ampm=True)['ampm']
Expected:
    [{'selected': None, 'id': '--', 'value': 'AM'}, {'selected': 1, 'id': 'AM', 'value': 'AM'}, {'selected': None, 'id': 'PM', 'value': 'PM'}]
Got:
    [{'selected': None, 'id': '--', 'value': 'AM'}, {'selected': None, 'id': 'AM', 'value': 'AM'}, {'selected': None, 'id': 'PM', 'value': 'PM'}]
```

I'm reverting for now. Feel free to readd once that test passes.


I see what you mean, this will be refactored soon.


Missing a call to mono_error_init.


really, I think it's only the diffs that are ugly... Anyways, feel free to mess it up again.


Being able to -x, --pdb and --pdb-fail, or more advanced things like https://github.com/pytest-dev/pytest-incremental. Rewriting in each project is also another place for bugs... like the one below!


This is a common mistake, so I added the explanation to the Coding Conventions to a new Block.

Please don't do this, even if its working usually, on a double delete it makes error searching really hard.

I had already to search for exactly this error in another project and it cost me much time.

Please read this, Thank you!
https://github.com/xournalpp/xournalpp/wiki/Coding-conventions#common-mistakes-please-avoid-them


TeamCity DPCFLib :: BuildAndTest [Build 1](http://46.101.150.79:8111/viewLog.html?buildId=6&buildTypeId=DPCFLib_BuildAndTest&guest=1) is now running


The idea is that the linux kernel can boot from a btrfs root partition, so a /boot partition is no longer needed.


I'm not sure what the two metadata fields are referring to


Mostly the point is `helper` which should now be in the suite (I think) because it defines the `before`/`after` hooks...

Actually, that might work outside suite... I can't remember if I had problems because of it... or if it's just because I'm crazy... Feel free to try and move it around...


This is not really to guide the synthetizers but to be able to use default case when we don't want to redirect data to one of the slaves (for example on the ethernet mac rx, if protocol is not ARP or IP, we will drop simply drop the packet).


This looks wrong, mono_metadata_parse_type_internal should not return NULL under non-failure circumstances. How could it happen?


int[] keys in the API of a class called KeyFMap looks strange. It's about Keys, ints are just an implementation detail.


In fact, cabal will complain if you try to upload such a module. But I don't think I left it out on purpose when I wrote the library.


TeamCity DPCFLib :: BuildAndTest [Build 1](http://46.101.150.79:8111/viewLog.html?buildId=6&buildTypeId=DPCFLib_BuildAndTest&guest=1) outcome was **FAILURE**
Summary: Tests failed: 27 (27 new), passed: 0, ignored: 3 Build time: 00:01:22
### Failed tests
```
DPCFLibraryTest.dll: DPCFLibraryTest.ProjectVersionTest.CloneTest: <no details avaliable>

DPCFLibraryTest.dll: DPCFLibraryTest.ProjectVersionTest.CompareTo: <no details avaliable>

DPCFLibraryTest.dll: DPCFLibraryTest.ProjectVersionTest.CreateProjectVersion1: <no details avaliable>

DPCFLibraryTest.dll: DPCFLibraryTest.ProjectVersionTest.CreateProjectVersion2: <no details avaliable>

DPCFLibraryTest.dll: DPCFLibraryTest.ProjectVersionTest.CreateProjectVersion2Error: <no details avaliable>

DPCFLibraryTest.dll: DPCFLibraryTest.ProjectVersionTest.CreateProjectVersion3: <no details avaliable>

DPCFLibraryTest.dll: DPCFLibraryTest.ProjectVersionTest.CreateProjectVersion3Error: <no details avaliable>

DPCFLibraryTest.dll: DPCFLibraryTest.ProjectVersionTest.CreateProjectVersion4: <no details avaliable>

DPCFLibraryTest.dll: DPCFLibraryTest.ProjectVersionTest.CreateProjectVersion4Error: <no details avaliable>

DPCFLibraryTest.dll: DPCFLibraryTest.ProjectVersionTest.CreateProjectVersionFromString: <no details avaliable>

DPCFLibraryTest.dll: DPCFLibraryTest.ProjectVersionTest.ReturnToString: <no details avaliable>

##### there are 17 more failed tests, see build details
```


log error here too


I agree that's what it's doing.  It's just that, as is, if `soup_uri_new` returns `NULL` to indicate it encountered an error while parsing `temp.c` then `valid` will be true and on line 107 below we'll attempt to set the property to `NULL` too.  Either that's intentional (presumably so we can reset a URI property to `NULL` by specifying a URI that libsoup will fail to parse) or this is a bug that hasn't caused problems yet because a URI libsoup can't parse doesn't normally make it this far.  Anyway, I only mention it because it seems odd to me - I'm new to the code and your change looks like a needed improvement to me, I hope it gets merged.


This function is not calling mono_error_init at its beginning.


I was surprised to see these data points. What do we plan on doing with this information? Will it be one value for each?


I can actually see it, it just under  UpdateReadme branch :) Never mind...