(Scott Daniel) Bugfix/CATSIM-103 update obsMetaData
ObservationMetaData now sets unrefracted(RA,Dec) as follows

if box_bounds/circ_bounds exists and the user specifies a point in the bounds, use the user-specified point

if box_bounds/circ_bounds exists and the user specifies a point outside of the bounds (or does not specify a point at all), use the center of the bounds

otherwise, set them to None

* test behavior of unrefracted[RA,Dec] in presence of box_bounds
* put comments in testObservationMetaData.py
* refactored testObservationMetaData
* oops... one more conflict to resolve
* fixed bug relative to sims_catUtils/examples/generatePhosimInput.py
* did not realize that Opsim actually did store filters as strings, rather than ints
* fixed
* moved epoch from the DBObj class to ObservationMetaData
* oops... never mind; should not have pushed that last commit


(Simon Krughoff) I think this example will actually raise a KeyError, since it is passing a box_bounds to a circ_bounds.


Addressed in 400ce90


sure. that's what happens when you live on the edge of develop ;)


moved to readerTools.ts


unused!


Even these changes can be moved to common class. Would be easier and cleaner.


Also, the log.DefaultCaller will not work (currently) in a call to Log. Maybe this is a sign that we should change the log package, but the code we just merged this morning will only expand Valuers registered in a call to With.


for i in range (10):
  print "Hola mundo"


rax retry tests


We might want to get rid of the `constants` maps altogether now that we can model them as local properties


new function to replace pseudoselector


I think my original comment still stands:

..combines the evaluation of scalar...
..combines the process of evaluating scalar...

Similar changes required for "executing graphs" and "calling functions".

I understand that it 'reads' ok(ish) however, the tense seems wrong. It only makes sense if they are grouped as phrases and/or nouns. e.g. "often combines 'evaluating scalar results', ...", or " evaluating-scalar-results.


this is where the new function gets used. otherwise, I believe MakeSourceTextDivForGroup() is just moved and adapted to typescript.


Yeah looking at history, we've abused the arguments for the constructors for implemented dictionary classes a lot.  The latest released version, 0.9.2, has no positional args (`**kwargs` only) for the memory, redis and zookeeper dicts.  That change got introduced (as you called out) in `0.9.0` (3e9e1650bb3083d7b2cf37d7b0399489e0d0a710).

Looking at this change, it's a good one but should be added to all dict subclasses, not just the Redis one.  Once that's done all dicts will support an API with positional args in a consistent way and we can put this behind us, lol.


there is no comma after this - that's going to be a problem


I like the blocks idea. Just trying to avoid throttling your database, cpu, and i/o. i.e. "Close 100 tabs at once" =

1.) Delete all tabs in the database for this localClient
2.) Add 99 back
3.) Delete all tabs in the database for localClient
4.) Add 98 back
5.) Etc. up to 100 deletes and inserts.

We could have removeAll do a mass deletion I guess, but it seems likely to just mean more state management for us that I wanted to avoid (and confusing behavior for listeners who expect things like 1 "TabDeleted" call for every tab deleted).


If you are not implementing anything inside the branch either remove it or leave a TODO with some comment


Superfiles haven't been mentioned before, a brief explanation should be required.


Looks good, thanks.


see next comment for what's going on here.


JUnit is already part of https://github.com/FITeagle/bootstrap/blob/master/pom.xml - please remove it from here


Convention in Java is to use CamelCase for variable names.


(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

updated unittests to reflect the refactoring of DBObject class
in sim_catalogs_generation


(Scott Daniel) Feature/CATSIM-91 simplify phoSim input
Previously, if one wanted to create a phoSim input file, one had to add an external constraint to make sure that the objects in the file actually had SEDs files somewhere.  This was mostly an issue for galaxies since, for example, all galaxies have a bulge entry in the database, even if they do not actually have a bulge (in which case, the SED is null).  See examples/generatePhoSimInput.py in sims_catUtils as it existed before this branch.

This branch does away with this requirement by adding a list cannot_be_null to InstanceCatalog.  This list contains the names of columns that cannot have null values (where null can be anything from 'Null' to None to nan).  Any rows that have null values in these columns are not printed to the output catalog.  If cannot_be_null is empty, this test is effectively ignored (i.e. all rows are printed to the catalog).

Once this is in place, phoSim input catalogs can ensure that all of their constituent objects have SED files by including the filename 'sedFilePath' in cannot_be_null.  This is accomplished using the PhoSimBase catalog class in exampleCatalogDefinitions/phoSimCatalogExamples.py in sims_catUtils

* added has_key method to fileMaps.py so that phoSim catalogs can internally
test whether spectrum files exist
* added concept of columns that cannot be null to InstanceCatalog
* changed the name of the test database constructed by
testInstanceCatalog.py so that there was no risk of it colliding
with another unittest
* implemented unittest for the list of columns that cannot be null in an
InstanceCatalog
Note: this required changing the test for nullity in InstanceCatalog.
Now, in addition to making sure the column is not None, it also checks that
the column is either a string or is not numpy.isnan()
* factored out test of nullity into its own function
* added test that allows all rows through (i.e. there are no columns
marked as "cannot be null").  This tests whether the
cannot_be_null formalism disrupts any other part of the code
* added doc strings to new code
* added doc strings to the new unit tests


(Scott Daniel) Feature/CATSIM-122 print column origins
This branch provides functionality where by a catalog class can list where its columns come from (the database, default columns, or mixin classes)

A global variable self._column_origins stores that information in a dict keyed on column names.

The method print_column_origins outputs this to the screen.

If verbose is set, print_column_origins is automatically called during the instantiation of the catalog class.

* wrote all of the classes needed to run the test in testColumnOrigins.py
* wrote first test... did not pass
* had to add code to _check_requirements to identify columns drawn from default columns (rather than the database)
* had to add code to _check_requirements to identify columns drawn from default columns (rather than the database)
* first three unit tests pass
* all unit tests pass
* some fomratting changes
* documented testColumnOrigins
* added useful comment to InstanceCatalog.py
* added test to make sure that code still gets the correct origin for columns that are not explicitly required by the catalog


(Peter Yoachim) Well, that looks pretty straight forward with a comprehensive unit test.


(Scott Daniel) Feature/SIM-993 unicode is null
the system for weeding out null values in the InstanceCatalog was not catching unicode strings.  This should fix that.

If you could look over it on Friday, that would be great, as I would like to be able to count on this functionality during my Monday meeting presentation.

Thanks a lot

-- Scott

* allow is_null to interpret unicode strings as well as strings
* use strip() as well as lower() in is_null
* unit test now includes string columns in the is_null test
* the unit test now tests cannot_be_null's ability to catch strings
and unicode
* added comments to unit test
* cleaned up whitespace


(Scott Daniel) Bugfix/CATSIM-142 add all to modules
This branch adds the __all__= [] formalism to the python source code

* added __all__ to InstanceCatalog.py
* added __all__ to decorators.py
* added __all__ to fileMaps.py


(Scott Daniel) Feature/CATSIM-151 split astrometry and photometry
This pull request is the first in a series that will alter the general philosophy behind the Photometry and Astrometry mixins.  When they were written, the mixins were designed to operate solely within the context of an InstanceCatalog.  Every method that did anything interesting was a getter for a database column.  We are now moving to a model where there are, whenever possible, two methods: one method that does the work, but which can be called from outside an InstanceCatalog if so desired, and a getter method that calls the first method.

This pull request touches
sims_catalogs_measures
sims_catUtils
sims_coordUtils
sims_photUtils

changed instance/__init__.py so we can import from fileMaps.py


(Scott Daniel) Bugfix/CATSIM-179 phoSim test is null
modified testInstanceCatalog.py to reflect new spatialBounds API


(Scott Daniel) Bugfix/CATSIM-139 unittest variable scope
This pull request combines two issues:

CATSIM-139 in which we use setUp and tearDown to set and unset unittest instance variables so as to avoid collisions between different unittests

and

CATSIM-115 in which we demand that unittests clean up after themselves so that unnecesssary test outputs don't collect in whatever directory is running the unittests

* made HaversineControl in testCatalogs.py call the haversine function in
sims_catalogs_generation
* whitespace
* added setUpClass and tearDownClass to boundingBoxTest in testCatalogs.py
* updated tearDown in boundingBoxTest in testCatalogs.py
* fixed whitespace in testCatalogs.py
* fixed setUp, setUpClass, tearDown, tearDownClass usage in testColumnOrigins.py
* fixed whitespace in testColumnOrigins.py
* added setUpClass and tearDownClass to InstanceCatalogMetaDataTest in
testInstanceCatalog.py
* added setUp and tearDown to InstanceCatalogCannotBeNullTest in
testInstanceCatalog.py
* fixed whitespace in testInstanceCatalog.py


previous author's comment... ;)


No outputAdapter in this pull request yet. Please clean code.


Please rephrase the commit message to "... without parents".


also pre-existing comments


no outpuAdapter in this pull request. Clean code.


Is there a reason this should be silently ignored? (Worried about bugs and more types of questions)


first version


better encapsulation of reader tools knowledge


The same thought also crossed my mind. I like that idea, let's do it that way.


Thank you for your assistance.
The name attribute is the fallback if no elements are found by ID.  However, it appears that the name attribute only applies to <a> elements.
Something like:
if( responseDoc.getElementById(fragID) || document.getElementByName(fragID).tagName == "A" ){

"If there is an 'a' element in the DOM that has a name attribute whose value is exactly equal to fragid"


Again, any reason for silently erroring?


No its not :) I'll split this out like the others. Thanks for catching.


You're not accessing variables directly at any moment when you call GetData (that's how the encapsulation is handled). So you could just as well call a GetData() in the actual script and use a DoAction() here (instead of the SetData() workaround)


I'm OK with this, but won't this code path be entirely dead after fixing https://github.com/projectatomic/docker-storage-setup/issues/12 ?


>This commit broke just having chat throttle off.

This is intentional.  Having no throttle whatsoever allows someone to potentially crash other clients and waste server CPU by sending sufficiently many messages.

>Also, for the record I think having throttle effect mods too would be a great if it was optional, but having it mandatory is terrible.

As mentioned before, everyone will be affected by some chat throttle going forward.  However, I was planning to change the throttle rate for moderators and when chat throttle is turned off in the channel settings.


Heh... You're absolutely correct: http://www.w3.org/TR/annotation-model/#h4_semantic-tags

You'd think I'd know that already...

:+1: (now) for leaving it as is or changing it (maybe) to `foaf:page` so it's a bit clearer to forgetful people like myself. :smile:


I'm tempted to correct "csrf" to "CSRF" now


Self review: What will this return if (!accordion)?
I should perhaps explicitly return null?


wkwebview only allows one delegate at a time. Is that what you're asking about? We have to do this aggregation if more than one source wants to listen. BVC was kinda just doing that before, notifying everyone it knew about whenever anything changed. Even if we left this there, I guess I think we need a better listener pattern.


Fixed


If you wrapped "ValueFactory::getTempStringValue(output);" and "NValue expected = ValueFactory::getBigIntValue(output);" in overloads for a one-line static function like "NValue setNValue(??? value)" you could replace these largely redundant overloads with a template member function implementation.


Implicit conversion between bool and int is part of your problem here.
More explicit code could even stand without the comment -- which I struggled to follow.
Suggest:

        // An unexpected non-null can return any non-0. Arbitrarily return 1 as if (answer > expected).
        cmpout = answer.isNull() ? 0 : 1;


fork is for creating new node instance and running a script and spawn is for creating new child process and running an arbitrary binary.


@brandtheisey can you replace "opportunity" with the i18n text?  I think it should say "task" if the platform is configured with that text


(Lynne Jones) Feature/OPSIM-640 commit conversion tool and gen output
* updated sql commands to reflect new column names  in summary table.
(filtSkyBright -> filtSkyBrightness and five sigma -> fiveSigmaDepth).
* Updated 'output' to 'summary' in prep_opsim.py.
* Fixed table name.
* Fixed problems with exportSession related to summary table.
* Removed 'vertex' from data added to summary table.
Now hex dither pattern just adds ditheredRA/ditheredDec to summary table, rather than hexdithRA/hexdithDec/vertex.
* Moved v3_0-sqlite.sql into schema_tools.
* Commented out step to move modifySchema.sh ops* created outputs into a directory ../output.
Now the outputs of modifySchema.sh remain where the script was run from.
* Fixed prep_opsim.py query that was left incorrect in 'vertex' removal.
* Pointed createSQLite at proper version of v3_0.sqlite schema.
Also Cleanup empty lines.
* Replaced 'move' of output files  to ../output.


(Michael Reuter) This looks fine to me.


(Kem Cook) Feature/OPSIM-569 commit new default config files
* Updated config files.
* Adding more config files


(Michael Reuter) Feature/OPSIM-651 update version tag in main.py
Updated OPSIM_VERSION to 3.2


(Srinivasan Chandrasekharan) Bugfix/OPSIM-328 fix ra limit
OPSIM-328
Fixed RA absolute limits behavior for WeakLensing.


(Michael Reuter) Feature/SIM-908 write script for opsim documentation
* Adding first cut at script.
* Changing sync mechanism.


(Michael Reuter) Bugfix/SIM-1061 fix bug in getting rottelpos in
Reversing index lookup.


(Scott Daniel) good catch


(Michael Reuter) Bugfix/OPSIM-642 fix visitTime visitExpTime
Fixing the DB write and conversion tools.


(Lynne Jones) Please add comment why these lines are commented out  ... or just delete the extra code (maybe this is preferably after eups update and permanent fix of visitTime/visitExptime?)


(Michael Reuter) Bugfix/OPSIM-670 put hostname and username back
Adding code for getting hostname and username.


(Lynne Jones) I'd prefer this to be OPSIM_HOST and then add the following to the sims_operations.table file .. but we discussed this elsewhere and it's a change that'll happen after eups distrib branch gets done.


(Michael Reuter) Feature/OPSIM-673 update release notes
Updating release notes.
Changing release date.


(Michael Reuter) Feature/OPSIM-672 change version number
Changing version numbers.


(Michael Reuter) Feature/OPSIM-671 use opsim hostname env variable
Adding hostname override mechanism.


(Michael Reuter) Bugfix/OPSIM-674 conversion tool db connection fix
Reducing DB connections.
Removing try/except blocks for seeing real errors.


(Michael Reuter) This shouldn't change any conversion functionality except for reducing the number of DB connections.


(Lynne Jones) Okay - I know you don't want to double up changes, but instead of doing the 'except',  could you just let this fail with the actual error from the cursor? (i.e. remove the try/except).


(Lynne Jones) Same comment about the try/except.


(Michael Reuter) Sure, I can remove the try/excepts.


(Michael Reuter) Feature/OPSIM-636 capture git repo tag into config
Getting version from generated module.
Expanded size for version column in Session table for a bit of safety.


(Lynne Jones) So .. maybe this isn't an issue, but I see that if I'm running from a git version of maf, that '__version__' is 'unknown' .. 'fingerprint' on the other hand keeps the sha1 of the commit.
So maybe this could be import __version__ and import __fingerprint__ , then if __version__ is 'unknown', it uses the __fingerprint__?  (for people running from git).


Thank hải đã review. Mình sẽ update sớm nhất có thể. :+1:


I think this is great, but I would indeed prefer a NSMapTable-based solution...


holy moly


What is this. Why are we doing this and why are we using md5?


vol.py is part of the [Volatility project](https://github.com/volatilityfoundation/volatility). This commit makes it possible to access QEMU's guest memory via a socket, and provides a Volatility plugin that allows Volatility to talk to that socket in order to parse and interpret the QEMU guest memory.

Please don't use line notes on the code for general questions. They're meant for commenting on specific features of the code, such as possible improvements or fixes.


Nevermind it then, you can't condition spell_area itself.


Tämän commitin nimi on `Add school ordering by name`. Siinä tulee mukana `django-extensions`-lisäys, modelsista generoitu PNG ja `.gitignore`:n päivitys. Generoitujen tiedostojen lisäys versionhallintaan on muutenkin vähän huono juttu; nehän pystyy devaaja tuottamaan itse yhdellä komennolla.

Committien on hyvä sisältää vain yksi looginen kokonaisuus, joten jätä tähän committiin pelkästään schools/models.py-muokkaus. `django-extensions`:n voi kyllä lisätä INSTALLED_APPS:eihin, mutta omassa commitissaan.


Tämä on ok.


Where not performance critical, like here in test code, use something like "if (staticVerboseFlag) {" in place of "#if 0" so that debug code continues to get compiler-validated as the surrounding code evolves.


Maybe briefly describe this in the appendix and just add (*c.f.* the Appendix)


Thanks, I am locking our app on 0.8.0 now since the code I put above is crashing


Их много,  но они мелкие, в основном по замечаниям и форматированию кода. Я подумал, что все не влезет в мессэдж, и каких-то глобальных исправлений не сделал


Hey Mark sorry I forgot to reply to this last email;

I just wrapped up chapter 31 :
https://github.com/Diego-F-Aguirre/Blocstagram_V2/tree/master

And I also fixed the issue of the text overlapping the images; I simply
just added an additional padding of 20 and it seem to be working just fine.

On Thu, Apr 23, 2015 at 3:00 PM, dothework <notifications@github.com> wrote:

> @Diego-F-Aguirre <https://github.com/Diego-F-Aguirre> done with my
> review. the height of the cells is not correct when I run the app in the
> simulator. does it work correctly for you?
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/Diego-F-Aguirre/Blocstagram_V2/commit/91e4e95139550f968cf5c86f266d6ea9f5445e0f#commitcomment-10875192>
> .
>

--
:::::::::::::::::::::::::
Diego F. Aguirre
973-885-0724

http://www.linkedin.com/in/diegoaguirre3d
http://diegoa3d.com/


Should we consider at least having an `assert (j < v_.size ());` here and below?


Hmmm. I think it's better to keep this encapsulated and not create special cases. If we need the DOCs outside the config files often, then we can create a getDoc(String property) that returns it for example. If not, it's ok to add the explanation independently.


> Let's just say yeoman-assert like the module name.

+1


Well, SPELL_EFFECT_SCRIPT_EFFECT means it needs to be scripted (so the aura removal *should* be in the spell script, that should be cast here)


We should probably log here that we couldn't get the settings and we hit a timeout.


@pocallaghan @waynetheisinger What about a simple:

    if [ "$include" == "y" -o "$include" == "Y" ]

Portable and easy to read :)


Must be replaced by IntComGeo.

On Mon, Apr 27, 2015 at 7:01 PM, behnamhatami <notifications@github.com>
wrote:

> Warning--string name "ijcga" is undefined
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/behnamhatami/CCCG2015/commit/9c1e056a7111ee7fb01f78b8d3b227002319de19#commitcomment-10917229>
> .
>


Hi Chintan,

So should we use new ISA table generated for RB only,
but it seems we don't get exploded hierarchy for many, if we use RB only.

On Mon, Apr 27, 2015 at 9:08 PM, Chintan Patel <notifications@github.com>
wrote:

> We dont need to create a new table, we can assume that all hierarchy
> relationships in "SAB" = MSH will be RB...
>
> so lets load into ISA
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/nadeemnazeer3/health-vocabulary-rest-api/commit/50cc8e767f3f6b93216334880580f5c68681d0c4#commitcomment-10918683>
> .
>

--
Regards,
Nadeem Nazeer.


For the Fedora Project, we just swapped from individual names to project name: https://github.com/fedora-cloud/Fedora-Dockerfiles/commit/385b96767abcbf8a1a919147a69cd97e7a6191af /cc @larsks


I think we're talking about different things. When Nick and I say "everything" we mean all of storage, all of the profile, and all of Sync. I don't think either of us assumes that UI-related stuff like Browsers should be imported into extensions.

So I think my point is: if using the profile requires knowing about Browsers, then the fix is not to split up the profile (because every consumer of the profile has a different definition of "little"!), it's to make sure UI data structures don't end up in the browser class. That's where the line should be: between model and controller.


Thanks, probably a problem with a previous merge.

Cheers,

Olivier


for **_that_** activity


You should really look into getting paid for your freelance work when working in python for just web-dev.


Or put differently: it's not "ExtensionProfile" and "AppProfile", it's "Profile" and "BrowserController".


acum am dat...imi cer scuze.


@valencik why did you switch from using `pip` to using `apt-get`?

I see that Matplotlib is a little bit of a hassle, however it should not be a problem: http://stackoverflow.com/a/9843560/2578205

With the exception of `matplotlib`, why did you switch `numpy`, `tornado`, `scipy` and `notebook` to `apt-get`?

I want to put all of the Python dependencies into a `requirements.txt` file that this makes it messy / not cross-platform :wink: .


I guess it is best to check this on every statement creation.


well for ISA.SAB=MSH it will be RB

for ISA.SAB = "SNOMEDCT" it could be PAR

On Mon, Apr 27, 2015 at 1:08 PM, nadeemnazeer3 <notifications@github.com>
wrote:

> Hi Chintan,
>
> So should we use new ISA table generated for RB only,
> but it seems we don't get exploded hierarchy for many, if we use RB only.
>
> On Mon, Apr 27, 2015 at 9:08 PM, Chintan Patel <notifications@github.com>
> wrote:
>
> > We dont need to create a new table, we can assume that all hierarchy
> > relationships in "SAB" = MSH will be RB...
> >
> > so lets load into ISA
> >
> > —
> > Reply to this email directly or view it on GitHub
> > <
> https://github.com/nadeemnazeer3/health-vocabulary-rest-api/commit/50cc8e767f3f6b93216334880580f5c68681d0c4#commitcomment-10918683
> >
> > .
> >
>
>
>
> --
> Regards,
> Nadeem Nazeer.
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/nadeemnazeer3/health-vocabulary-rest-api/commit/50cc8e767f3f6b93216334880580f5c68681d0c4#commitcomment-10920789>
> .
>

--
Applied Informatics, Inc. (TrialX)
Technology Lead
315 Fifth Ave, 9th Fl
New York, NY 10016
Office: 212-537-6944
Cell: 914-320-0235
Web: TrialX <http://TrialX.com>, Applied Informatics
<http://appliedinformaticsinc.com/>


The question is: what happens if we actually have a tracking URL in the future? We'd get that URL from config I imagine, in which case it should be reflected here. Just to be clear: I was not discussing whether empty was a good choice, just thinking of adding a TODO so that we get the URL from config if necessary.


The reason "extension profile" doesn't make sense: extensions will do Sync stuff. Sync stuff touches bookmarks, and tabs, and client records, and keys, and…

So extensions will need access to your tabs DB. They don't need access to browsers.


The problem is that the user may not know (and should not know) which ports are available in the different containers of a remote cluster. We need to figure this out, but probably we can keep it like this for now.


(Lynne Jones) Feature/OPSIM-640 commit conversion tool and gen output
* updated sql commands to reflect new column names  in summary table.
(filtSkyBright -> filtSkyBrightness and five sigma -> fiveSigmaDepth).
* Updated 'output' to 'summary' in prep_opsim.py.
* Fixed table name.
* Fixed problems with exportSession related to summary table.
* Removed 'vertex' from data added to summary table.
Now hex dither pattern just adds ditheredRA/ditheredDec to summary table, rather than hexdithRA/hexdithDec/vertex.
* Moved v3_0-sqlite.sql into schema_tools.
* Commented out step to move modifySchema.sh ops* created outputs into a directory ../output.
Now the outputs of modifySchema.sh remain where the script was run from.
* Fixed prep_opsim.py query that was left incorrect in 'vertex' removal.
* Pointed createSQLite at proper version of v3_0.sqlite schema.
Also Cleanup empty lines.
* Replaced 'move' of output files  to ../output.


(Michael Reuter) This looks fine to me.


(Kem Cook) Feature/OPSIM-569 commit new default config files
* Updated config files.
* Adding more config files


(Michael Reuter) Feature/OPSIM-651 update version tag in main.py
Updated OPSIM_VERSION to 3.2


(Srinivasan Chandrasekharan) Bugfix/OPSIM-328 fix ra limit
OPSIM-328
Fixed RA absolute limits behavior for WeakLensing.


(Michael Reuter) Feature/SIM-908 write script for opsim documentation
* Adding first cut at script.
* Changing sync mechanism.


(Michael Reuter) Bugfix/SIM-1061 fix bug in getting rottelpos in
Reversing index lookup.


(Scott Daniel) good catch


(Michael Reuter) Bugfix/OPSIM-642 fix visitTime visitExpTime
Fixing the DB write and conversion tools.


(Lynne Jones) Please add comment why these lines are commented out  ... or just delete the extra code (maybe this is preferably after eups update and permanent fix of visitTime/visitExptime?)


(Michael Reuter) Bugfix/OPSIM-670 put hostname and username back
Adding code for getting hostname and username.


(Lynne Jones) I'd prefer this to be OPSIM_HOST and then add the following to the sims_operations.table file .. but we discussed this elsewhere and it's a change that'll happen after eups distrib branch gets done.


(Michael Reuter) Feature/OPSIM-673 update release notes
Updating release notes.
Changing release date.


(Michael Reuter) Feature/OPSIM-672 change version number
Changing version numbers.


(Michael Reuter) Feature/OPSIM-671 use opsim hostname env variable
Adding hostname override mechanism.


(Michael Reuter) Bugfix/OPSIM-674 conversion tool db connection fix
Reducing DB connections.
Removing try/except blocks for seeing real errors.


(Michael Reuter) This shouldn't change any conversion functionality except for reducing the number of DB connections.


Watch all the things. :watch:

Wait, wrong watch...


(Lynne Jones) Okay - I know you don't want to double up changes, but instead of doing the 'except',  could you just let this fail with the actual error from the cursor? (i.e. remove the try/except).


(Lynne Jones) Same comment about the try/except.


(Michael Reuter) Sure, I can remove the try/excepts.


(Michael Reuter) Feature/OPSIM-636 capture git repo tag into config
Getting version from generated module.
Expanded size for version column in Session table for a bit of safety.


(Lynne Jones) So .. maybe this isn't an issue, but I see that if I'm running from a git version of maf, that '__version__' is 'unknown' .. 'fingerprint' on the other hand keeps the sha1 of the commit.
So maybe this could be import __version__ and import __fingerprint__ , then if __version__ is 'unknown', it uses the __fingerprint__?  (for people running from git).


you will find this ~~is~~ a simpl...
OR
you will find **_that_** this is a simpl...


Works for me :grimacing:


Merke: Wir müssen beim Start upjedes Modul sich beim Master melden lassen mit seiner Aktuellen Konfiguration und diese mit ins Loggfile schreiben!


yes, they are from the report


@agilob The icon is based off the old design and caters specifically to OS X. Note the old one being used for uTox on the right and the new on the left. (ignore the middle)
![screen shot 2015-04-27 at 10 10 07 am](https://cloud.githubusercontent.com/assets/11949584/7353146/37dcfce6-ecc6-11e4-90f5-40fd6c5b280f.png)


I wonder if it makes sense to factor out the slow path into another function, in the hope of having the fast path inlined and the slow path out of line.


No worries.  I just put up a diff to fix this in our internal code review system.  I'll cut a release once it's accepted and I land it.


Thanks, I thought the container interface's broadcast domain was being inherited by the FixedCIDR.


r+


yeah, i had it first without it. it didn't work then either.


@brandtheisey oh, looks like we haven't done that for any other email, so I suppose we don't need to stop this commit to do that.  Right now, I think everyone is calling tasks, "opportunities" and the language fits even if the UI were to be configured to call it a task.


Oh, God!


i just removed it again and restarted the server (just for good measure) and still no luck.


Чтобы не хранить статически такие вещи, как имя, индекс и секондари айди окна, которое будет открыто следующим, стоит сделать следующий рефакторинг:

Метод `initialize()` со всем его содержимым удалить.
В `RDOPlotView` после вызова `showView()`, можно найти нужный нам объект `RDOPlotView` с помощью метода `findViewReference()`.
```java
final IViewReference viewReference = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().findViewReference(id, secondaryId);
final IViewPart viewPart = viewReference.getView(false);
```
После этого можно будет обратиться непосредственно с только что открытому объекту `viewPart` и проинициализировать его так, как нужно.

```java
viewPart.setPartName(partName);
viewPart.setIndex(index);
viewPart.setSecondaryId(secondaryId);
```
Все соответствующие поля можно будет после этого либо удалить (например, `partName`), либо сделать нестатическими (пока не уверен, нужны ли еще будут поля типа `index`).

Мапу `<index, secondaryId>` стоит сделать приватной, но оставить статической. И добавить в `RDOPlotView` статический метод, чтобы добавлять в нее записи из `RDOSerializedObjectsView`.

Тогда сам `frame` и все методы для работы с ним (`plotXY()`, `createChart()`) тоже можно будет сделать нестатическими. И вызывать их из `RDOSerializedObejctsView`, предварительно скастив `viewPart` к `RDOPlotView`.

После чего можно будет зарегать на каждый нестатический фрейм диспоз листенер, который будет удалять из мапы запись о нем.


Ok, sounds good.


Discussed briefly [here](http://blog.nottoobadsoftware.com/2015/04/27/set-up-an-open-source-xcode-framework-project/).


We certainly do that in the Fedora-Dockerfiles project.  However, I have mixed feelings about this.  For example, when you issue a "yum update" in a container you can lose sight of what's installed.  We should know what is in the base images though.


Intentional to match against "ta"/"t" ?


Ok, I can add it to the config if you want but I don't think we will need a custom tracking URL, the default one generated by Hadoo is good enough.


Test results:
![image](https://cloud.githubusercontent.com/assets/6345473/7353214/f7c74c8c-ecdf-11e4-95d6-cca358d6c392.png)


App's title is still set to Location Analyzer


App's title still says Location Analyzer


all tests pass:
success: https://travis-ci.org/stellar/stellar-core/builds/60245100


hm, ele deveria começar a contar o 1s apenas depois do primeiro clique


No. `std::vector` in debug builds already has checked calls (in msvc at least).


Multumesc pentru raspunsuri. O sa revin cu modificari

O seara buna,
Adi
Pe 27.04.2015 10:18, "anitzapredescu" <notifications@github.com> a scris:

> Variablia i nu cred ca este folosita la nimic. cand folosesti liste si
> parcurgi listele cu foreach, atunci nu iti trebuie un counter ca sa stii
> unde te afli in lista respectiva.
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/adimihoci/C-Fundamentals/commit/e35e8811aa00db2811a01b43f32901851fcf00ad#commitcomment-10910148>
> .
>


@HowardHinnant Shouldn't this be `std::forward<STObject>(object)`? And then we can do away with the overload?


As explained in the function comment, the purpose of this function is to statically validate (syntactically/semantically) anything that can be validated a priori, only based on the config itself. To this regard, I now see it would be better this function be a method receiver of Config. This way it will be clear the scope of the validation it performs.
This function will be called at the beginning of driver.Config() and we bail out if it returns error.

I agree for the need of another validate function (this time belonging to driver) to be executed after the required operational state is known, in other words t be executed as as the last setup function step.


Unfortunately I think either I have misread this or the logic is not quite right.  It seems you are by default trying hosts `a-e.ably-realtime.com`.  Instead, these fallback hosts should only be used once the default host `rest.ably.io` fails the HTTP request because of a network failure or a 500 / 503 error.  Using a fallback host at the outset is very inefficient as we are not using latency based routing to route the user to the closest data centre.


Yeah :frowning:


Исправлено в daa3f8a3d3bcd43b95f371b0efd8bdb2b3542793


typo: request


Исправлено в cd81826b88d17a6da50be6d7ed863124749329c3


fast-forwarding master to auto = 6899cb86


Thanks, I also hated myself for having a variable called spanElement. Let's ignore the fact that we still have divElement and imgElement mmmk


You don't need this conditional.


You should do this only once, outside the block.


TeamCity MonoGame :: Develop (Win) [Build ???](http://teamcity.monogame.net/viewLog.html?buildId=6393&buildTypeId=MonoGame_DevelopWin&guest=1) outcome was **FAILURE**
Summary: Snapshot dependency failed: MonoGame :: Develop (Mac) Build time: 00:00:00


I am planning to add tagline display to cases but have not yet done so.
Yes, I will also backfill old cases, but this is less of a priority.

On Mon, Apr 27, 2015, 1:45 AM Sylvain Abélard <notifications@github.com>
wrote:

> Update README for translators
>
> With the newly added Tagline.
> BTW @qilessqi, where is the tagline displayed on the site?
> Are you adding Taglines to older cases?
> Also I published 2 more cases of mine (E - "No good code" and F - "Chorus")
> but changed the URL to http://maitre-du-monde.fr/koans/mine.html
> (I made a redirect from the link you made but not for each case... yet?).
>
> ---
> Reply to this email directly or view it on GitHub:
>
> https://github.com/abelards/the-codeless-code/commit/f1f561ae38fb5ee2a9db38a607f7320a5b9fca16
>
>


python setup.py build_ext --inplace && sudo python setup.py install && nosetests |& less


Perfect. The hardest part is done, do the remaining, please:
- [ ] dnf new version build
- [ ] dnf-plugins core release notes
- [ ] dnf-plugins core patch version bump + moved dnf boundaries + build
- [ ] dnf-plugins-extras moved dnf boundaries patch
- [ ] hawkey patch version bump + build after https://github.com/rpm-software-management/hawkey/pull/88 and https://github.com/rpm-software-management/hawkey/pull/87 merged


Discussed briefly [here](http://blog.nottoobadsoftware.com/2015/04/27/set-up-an-open-source-xcode-framework-project/).


Ok, you are right, I forgot the USB PLL!

Indeed, the clock driver is to be in the higher priority of drivers upstream.


Initial package.json check in after running npm init


:smile:


Good catch. Updated.


It's been pulled into DMD - so it needs documenting!


Nice :-)


It is correct as written.  We could go with a `forward` solution, but it will be more complicated than the two-overloads that we have.  The `forward` solution would involve making `push_back` a member template on `STOBJECT_LIKE`.  And to do it right, we would then need to constrain the template parameter `STOBJECT_LIKE` to be convertible to `STObject`.  The `forward` solution will have no performance difference with respect to the two-overload solution.

The `forward` solution becomes attractive when we need to deal with two or more arguments at once (to avoid a 2^n explosion of overloads).


Continue discussion in https://github.com/calzoneman/sync/pull/468


Hi Simon,

thanks for this information. My own plan was to believe the *Julia dev* guidelines which say "**update often**"; so now my priority is to get things running again on the latest release, *with the new syntax for Tuple types* etc. ( As you guess, *I now run a fairly recent version of Julia.... with a number of broken packages*.)

If you could just tell me which commit or branch I should get in you git trees (compatible with latest Julia),
I suppose this will include **GLVisualize**.

I guess that this means I will not achieve much before Julia0.4 feature freeze (supposedly middle of May). If all goes well I will try to have improved my XML and XSD interfaces by then; added unit tests and even may be could spend some time on **macros**.

Viewed differently, **this is the right time for me to adapt to the new interface for Romeo**.

Best
Alain

PS:
* I like the idea of having a couple of objects like the colorswatch and some rulers, and an edit area
* Right now, I use some capabilty to parse/eval some expressions in my XML fields (with eval context in a wired in module), therefore I am interested to know how the interface with the edit area is done.


Problem is, other people haven't tackled this problem :) Every time I think "why I am I doing this?" I think of existing assemblers and see that they simply cannot do what I need. They expect you to number your RAM addresses manually, and have no concept of data structures in RAM. It's so manual that it's impossible to make a flexible, safe-to-modify disassembly. I want a completely dynamic disassembly that could automatically arrange and manage RAM, that could even read a file, process its contents and define an object in RAM based on the calculations made and have the assember rearrange and automagically assign all RAM addresses for me.

And neither did a Sonic 1 disassembly exist before I did it, nor a level editor :) So I'm really treading untouched ground and it's a long and arduous journey!


Good catch, @paulmar.   Indeed, I also overlooked the fact that __fprintf_chk has an extra flag argument.   @MartinNowack, can you either revert the patch or modify it to remove the flag argument?  Thanks.


This is unfortunately not going to work because a lot of REST based libraries are instantiated for every request and thus are not shared.  I am not sure it's a bad thing, but I don't think it will make much difference unfortunately.


awesome work! i'm really excited to test the new commits :)


@razzyfrazzy done with my review. checkpoint complete. your answers to the checkpoint questions shows that you understand the concepts. yes!


I think this should take `libraries t` as parameter. The idea is to allow a user to
- opam install a set of packages and then call `mirage configure --no-opam` manually

but to disallow:
- `mirage-configure --no-opam` when there the ocamlfind libraries that are specified in the config file are not specified.

This is a bit more general than the entropy stuff (so until now it was not a big issue), but in the case of entropy the first case cause the preamble code to not be called which is very bad.


Also updated composer.lock


I am not too mad about the fact that the actual error that causes the failure is not thrown and instead we throw this error.  Surely the last failure's exception should simple be rethrown instead?


Here's a comment explaining why the changes needed to be made.


NP. I was just looking for a fix for my Victara Kernel and seen this. Thought I would drop a line.


hi there is no admin area ?


If this is a constant, why the method call overhead?


This isn't grammar this follows the android guidelines.


That's a good idea, I really did not think about it. Thanks :)


Во-первых так и напиши, ```Code style``` или ```Formatting```. Причйм тут ```some refactoring due to comments to previous commits``` ?
Во-вторых, вижу тут НЕСКОЛЬКО разных коммитов. **Что мешает делать их порозень ?**


Admittedly the `push_back` is redundant with `emplace_back`.  We could eliminate both `push_back` overloads and just use `emplace_back`.  But `push_back` is traditional.  I can't get too worked up about having or not having `push_back`.


This is called createOrUpdate but all I see is 'create'. Are there cases where this needs to 'update'?


I used OSELAS Toolchain (version 2013.12.2).

It looks like there is a series to add this toolchain to buildroot:
http://lists.busybox.net/pipermail/buildroot/2015-January/117790.html


you need to copy the includes also!


Very nice of you. Thanks again!


> I think it should be easy to opt in without having to do extra work

An `AutoMountServiceAccountToken` flag at the container level, perhaps?


Updating author name


Timeout is not the only error code to worry about.  See http://curl.haxx.se/libcurl/c/libcurl-errors.html, CURLE_COULDNT_RESOLVE_HOST, CURLE_COULDNT_CONNECT, CURLE_HTTP2, CURLE_SSL_CONNECT_ERROR, CURLE_TOO_MANY_REDIRECTS etc. are all valid errors that would trigger the use of fallback, as would a status code of 500, 502, 503 or 504.  I think we should retry by default for all curl errors and also explicitly check for 500 and 503 errors and retry as well.


So as currently in ISA tables we have SAB = 'MSH' only,
Should we combine both generated tables for RB and PAR into single, and
simply query single ISA Model using that table behind?

On Mon, Apr 27, 2015 at 10:39 PM, Chintan Patel <notifications@github.com>
wrote:

> well for ISA.SAB=MSH it will be RB
>
> for ISA.SAB = "SNOMEDCT" it could be PAR
>
> On Mon, Apr 27, 2015 at 1:08 PM, nadeemnazeer3 <notifications@github.com>
> wrote:
>
>
> > Hi Chintan,
> >
> > So should we use new ISA table generated for RB only,
> > but it seems we don't get exploded hierarchy for many, if we use RB only.
> >
> > On Mon, Apr 27, 2015 at 9:08 PM, Chintan Patel <notifications@github.com
> >
> > wrote:
> >
> > > We dont need to create a new table, we can assume that all hierarchy
> > > relationships in "SAB" = MSH will be RB...
> > >
> > > so lets load into ISA
> > >
> > > —
> > > Reply to this email directly or view it on GitHub
> > > <
> >
> https://github.com/nadeemnazeer3/health-vocabulary-rest-api/commit/50cc8e767f3f6b93216334880580f5c68681d0c4#commitcomment-10918683
> > >
> > > .
> > >
> >
> >
> >
> > --
> > Regards,
> > Nadeem Nazeer.
> >
> > —
> > Reply to this email directly or view it on GitHub
> > <
> https://github.com/nadeemnazeer3/health-vocabulary-rest-api/commit/50cc8e767f3f6b93216334880580f5c68681d0c4#commitcomment-10920789
> >
> > .
> >
>
>
>
> --
> Applied Informatics, Inc. (TrialX)
> Technology Lead
> 315 Fifth Ave, 9th Fl
> New York, NY 10016
> Office: 212-537-6944
> Cell: 914-320-0235
> Web: TrialX <http://TrialX.com>, Applied Informatics
> <http://appliedinformaticsinc.com/>
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/nadeemnazeer3/health-vocabulary-rest-api/commit/50cc8e767f3f6b93216334880580f5c68681d0c4#commitcomment-10920824>
> .
>

--
Regards,
Nadeem Nazeer.


We need to add a test to ensure that the default host is used first, and then if failed, then the fallback hosts are used.


@yjun2 done with my review. checkpoint complete. press on.

The wine and whiskey classes are so similar... they could be implemented in one class. There are only a few differences.


2 `}` I'm fixing it right now


I suggest to add a `"engines":{"node":">= 0.11.0"]` line in `package.json` if we completely rely on the presence of `rawHeaders` in the response. Or to fallback on all code in case of absence.


BTW, do we need to specify sudo here? I know its highly system configuration dependent, but I never use sudo Command change looks fine :shipit:


``AppWithinMinutes.DynamicMessageTool`` page is deprecated since 4.5M1. We should remove it instead of adding this dependency.


If a fallback host is used, I don't think you will get an expired token error code because the custom exception is thrown.


I suggest to add a `"engines":{"node":">= 0.11.0"]` line in `package.json` if we completely rely on the presence of `rawHeaders` in the response. Or to fall back on old code in case of absence.


Personally I think this check is not necessary, but I see Paddy has implemented this check as well.  I simply check for 40140 in my tests.


Did you meet some issues ?


Ok, I see. I prefer "standard" toolchain though - at least it's tweakable from within Buildroot this way. When I get some time I will hack elf2flt to have proper support (and entry address for binaries).


this is in the wrong commit i assume :)


@Kubo2 , are you using some special modules ? Some people said it's because i have fsockopen off.. This could be a problem ?


But connections tests are slow and require such ugly code as the `fault` to test corner cases.

I already have created enough of a framework (and library as it is already supports 90% of stuff needed) to be able to test stuff like "does the server refuse connection if I don't support TLS1.2 but I'm advertising support for just TLS1.2 ciphers" without "frankensteining" the library more. See https://github.com/tomato42/tlslite-1/commit/ab5e43166c63796e51b5beea5a9b06cf2d3361c0#diff-a84b04fbbce956c34c0b42f8e575c5e0R873 and `MockSocket` specifically and pull #97 in general.


hmm thanks ... learning from your refactoring!!


Nah, just fix it next time you're in the file. Merging the PR.


plot(methylation,type="K",col=2,xlim=c(1,10),ylim=c(0,1),xlab='1Kb Normal sample', ylab='Methylation')
lines(smoothingmethylation,col=2)

this code does not work I am trying to use your code which is

    plotP <- function(sample, label = "", col) {
      plot(positions[1], 0.5, type = "n", xaxt = "n", yaxt = "n",
            ylim = c(0,1), xlim = plotRange, xlab = "", ylab = "")
         plotRects(c(0,1))
     rawp <- getP(BSseq, sample = sample, type = "raw", addPositions = TRUE, addConfint = TRUE)
       cols <- rep(alpha("black", 0.5), nrow(rawp))
       segments(x0 = rawp$pos, y0 = rawp$lower, y1 = rawp$upper, col = cols)
         points(positions, rawp$p, col = cols)
       if(nrow(BSseq$coef) > 0) {
           fitp <- getP(BSseq, sample = sample, type = "fit", addPosition = TRUE, addConfint = FALSE)
            lines(fitp$pos, fitp$p, col = col,, lty = 1)
          lines(fitp$pos, fitp$lower, col = col, lty = 2)
           lines(fitp$pos, fitp$upper, col = col, lty = 2)
           text(plotRange[1], 0.1, labels = label)
        }
   }

I have 2 vector ( meth, smoothing methylation)


Node version was OK, but there was a problem in the code. I reverted the refactoring for now.
It only spared 16 lines (since `rawHeaders` is indeed a table that needs to be structured).


aww @panmari, how cute is that! <3


I raise no objection, it is just my curiosity:
what is the motive to rename `innerHTML` => `innerHtml`.
Official documentations seem prefer the former variant
http://www.w3schools.com/jsref/prop_html_innerhtml.asp
https://developer.mozilla.org/en-US/docs/Web/API/Element/innerHTML
No objections, just curiosity :sparkles:


I like such attention to details :sparkles: :sparkles:


@vmcsg please use this formatting when auto-formatting your code in PHPStorm:
https://www.dropbox.com/s/sqxgq83vg3yq9ax/usvsolutionscodestyle.xml?dl=0


@leahpadgett `UIImage` is a class in `UIKit`. So `UIKit` must be imported before `UIImage` can be used in any way. Add `#import <UIKit/UIKit.h>` to line 10 to solve this error.


Done


Will remove this line.


@leahpadgett need to add `#import <UIKit/UIKit.h>` to line 10 here too.


The syntax did not work when I changed the methods to private. This works:
expect(item.send(:success?)).to be true

but not this:
expect(item.send(:success?)).to have_title?


I think so. I just wanted to make sure that this limitation wasn't due to my misunderstandings about reflection. :D


Should not have + sign.  Only use + on initial reference to ID.  See here for more info: http://stackoverflow.com/a/11161017/2958413

This should instead be (check others as well):
"@id/create_chat_header"


Although this gets initialized in `mangleName()`, I think we should still set it to `null` here, as a convention.


no need for the `tty` variable, we can use `c.Config.Tty` directly


NOTE: this is where `rubber-secret.yml` comes into play


Following up on Scott's comment: unless you are actually the sole maintainer of the Dockerfile, using a person's name as the `MAINTAINER` is a recipe for unhappy consumers of your images.  Most projects are maintained by more than one person, and listing any single person as the "maintainer" Dockerfile does a disservice to anyone else who has helped create it -- and discourages future contributors from making changes.  Most projects have fluid membership; someone who is active today maintaining Dockerfiles might be gone a few months from now; leaving email with questions or bug reports going into a virtual black whole.  For a project with an established bug tracking mechanism, it is far preferable that people be directed to that mechanism, either by email or by URL, since this ensures that problems can be tracked and responded to in an appropriate manner.


Yes, it was a temporary location. I already started moving them to ``xwiki-platform-diff`` so that I can reuse the code for the document history. ``xwiki-platform-model`` is not a bad location either, but I prefer ``xwiki-platform-diff``.


You can avoid Eclipse auto-formatting mangling by adding curly braces around the consequent block.


LOL !!!


What if `mn.name` is `valueOf` or `toString`, could this cause any problems?


(Lynne Jones) Feature/OPSIM-640 commit conversion tool and gen output
* updated sql commands to reflect new column names  in summary table.
(filtSkyBright -> filtSkyBrightness and five sigma -> fiveSigmaDepth).
* Updated 'output' to 'summary' in prep_opsim.py.
* Fixed table name.
* Fixed problems with exportSession related to summary table.
* Removed 'vertex' from data added to summary table.
Now hex dither pattern just adds ditheredRA/ditheredDec to summary table, rather than hexdithRA/hexdithDec/vertex.
* Moved v3_0-sqlite.sql into schema_tools.
* Commented out step to move modifySchema.sh ops* created outputs into a directory ../output.
Now the outputs of modifySchema.sh remain where the script was run from.
* Fixed prep_opsim.py query that was left incorrect in 'vertex' removal.
* Pointed createSQLite at proper version of v3_0.sqlite schema.
Also Cleanup empty lines.
* Replaced 'move' of output files  to ../output.


(Michael Reuter) This looks fine to me.


(Kem Cook) Feature/OPSIM-569 commit new default config files
* Updated config files.
* Adding more config files


(Michael Reuter) Feature/OPSIM-651 update version tag in main.py
Updated OPSIM_VERSION to 3.2


Tak mi to nejde otevřít ve vs 2010


(Srinivasan Chandrasekharan) Bugfix/OPSIM-328 fix ra limit
OPSIM-328
Fixed RA absolute limits behavior for WeakLensing.


(Michael Reuter) Feature/SIM-908 write script for opsim documentation
* Adding first cut at script.
* Changing sync mechanism.


(Michael Reuter) Bugfix/SIM-1061 fix bug in getting rottelpos in
Reversing index lookup.


(Scott Daniel) good catch


Given the context, perhaps it is better to say:
"as two consecutive NULL rows)."


`json.NewEncoder(params).Encode(data)`


(Michael Reuter) Bugfix/OPSIM-642 fix visitTime visitExpTime
Fixing the DB write and conversion tools.


So @whopper you might want to note where this comes from explicitly.  It was introduced in https://github.com/puppetlabs/puppet_for_the_win/commit/0cc32c1a09550c13d725b200d3c0cc17d93ec262


(Lynne Jones) Please add comment why these lines are commented out  ... or just delete the extra code (maybe this is preferably after eups update and permanent fix of visitTime/visitExptime?)


the part I am stuck on is what the standard_searchworks_response should be. Is it just a string copied from the farady response in the console?


(Michael Reuter) Bugfix/OPSIM-670 put hostname and username back
Adding code for getting hostname and username.


(Lynne Jones) I'd prefer this to be OPSIM_HOST and then add the following to the sims_operations.table file .. but we discussed this elsewhere and it's a change that'll happen after eups distrib branch gets done.


(Michael Reuter) Feature/OPSIM-673 update release notes
Updating release notes.
Changing release date.


(Michael Reuter) Feature/OPSIM-672 change version number
Changing version numbers.


(Michael Reuter) Feature/OPSIM-671 use opsim hostname env variable
Adding hostname override mechanism.


(Michael Reuter) Bugfix/OPSIM-674 conversion tool db connection fix
Reducing DB connections.
Removing try/except blocks for seeing real errors.


(Michael Reuter) This shouldn't change any conversion functionality except for reducing the number of DB connections.


(Lynne Jones) Okay - I know you don't want to double up changes, but instead of doing the 'except',  could you just let this fail with the actual error from the cursor? (i.e. remove the try/except).


(Lynne Jones) Same comment about the try/except.


(Michael Reuter) Sure, I can remove the try/excepts.


@guillaumevincent fixed by 1c173fedaecdaa2a8658b6d4b5b279d85c5a0940.


(Michael Reuter) Feature/OPSIM-636 capture git repo tag into config
Getting version from generated module.
Expanded size for version column in Session table for a bit of safety.


(Lynne Jones) So .. maybe this isn't an issue, but I see that if I'm running from a git version of maf, that '__version__' is 'unknown' .. 'fingerprint' on the other hand keeps the sha1 of the commit.
So maybe this could be import __version__ and import __fingerprint__ , then if __version__ is 'unknown', it uses the __fingerprint__?  (for people running from git).


(Michael Reuter) You see the unknown for the version since maf has no tags in git and that is what git describe --tags works off of. That's the command the version file generator runs.


(Michael Reuter) Bugfix/OPSIM-675 fix eups and local installations
* Relying on prefix envvar to handle installation path.
* Adjusting documentation for new mode.
* Revert "Relying on prefix envvar to handle installation path."
* Fixing the real problem. The targets should have been on the install only.
* Splitting up target.
* Updating documentation.


(Michael Reuter) This should hopefully fix the configuration issue for the EUPS installation. Local installations will need to be careful when running scons.


(Simon Krughoff) I must admit that I don't fully understand the fix.  It looks like there were several iterations and the final diff is very short.  I don't see any problems with the diff.  Feel free to merge as far as I'm concerned.


(Michael Reuter) Bugfix/OPSIM-676 fix config default in usage statement
Making usage default config match code.


@leahpadgett the error thrown on this line is caused by having too many square brackets `]`. You can revert to `[self.images removeObjectAtIndex:indexPath.row];` to solve this. But... since `self.items` is an `NSArray` you cannot remove anything from it, it has to be refactored into an `NSMutableArray `. Look at the last section of the checkpoint https://www.bloc.io/users/leah-padgett/checkpoints/518 - titled 'Updating our table to use the new data source' for the steps to fix this.


(Michael Reuter) Bugfix/OPSIM-677 fix documentation for existing
Fixing documentation.
Fixing conflict.


(Michael Reuter) Bugfix/OPSIM-708 remove envset from eups table
Removing envSet as this causes issues when $HOST isn't set.
Fixing docs.
Fixing conflict.


(Michael Reuter) rebuild passes now


I mean 2048kb ;)


What in the world is the use case for this? Note that while the `Char` type can store numeric values in the full range of `UInt32`, the overwhelming majority of those are not valid code points.


because of scope issues, let's keep tty. Thanks runcom!


One large comment explaining how the double map resolution works would be nice.


Fuzzing input.


If you remove a link, don't you remove the linked file with it?


:+1: Looks good. I dont have time to test it now though. I'll try to get to it tonight. Cheers!


Should be 'prepended' element


It doesn't look like the `cloud-config-docs` reference exists


Spaces should be kept within typecasts.


Hmm. Maybe just do `Char(rand(r, UInt32))` then? I would expect `rand(Char)` to give me a valid code point. That's also a far less trivial implementation, which indicates to me that it might be more useful.


Can the descendantPlug ever return null for this? If so, should we be registering null for the externalPlug or should we not be registering anything?


yeah lol merged a pr about this and left this lmao


Always you will increment this?


Please remove this comment.


+1 for having code to discuss – sometimes you have to try something out to see how it feels.


(Peter Yoachim) Feature/SIM-944 quick replotting in maf
It makes the code a bit of a mess, but it does run pretty fast.  Added a flag so you can just say --plotOnly when you call runDriver or runFlexibleDriver.

* Putting in plotOnly option to driver and config
* Looks like it works!
* make sure we don't touch resultsDB when re-plotting. Add flags to runDriver's
* clean up comments


As long as we don't merge into master without some agreement.


(Lynne Jones) Works!


(Lynne Jones) Feature/SIM-901 prepare tag
Let me know if I should assign another reviewer. Sorry that it got a bit big. Feature creep.

* I think the  drivers are ready!?
* Change units to minutes.
* Tweaks to summary stats and captions for science driver.
* Removing non-longer-useful examples.
* runFlexibleDriver actually passes arguments correctly now.
* Format change.
* Allow user to set scale for tGaps consolidated histogram.
* Add tGaps histogram and other small updates to parameters.
* Added slicer metadata into metadata for plots per filter.
* Updated movie scripts for new sliceMetric.


(Peter Yoachim) I think this stacker got tossed?


(Peter Yoachim) Can we come up with a more intuitive name? DeltaTimeChange = change time chage, which is not very helpful.  Maybe generalize to TimeBetweenStates--then you just look at the time gaps between any column that changes values, so could be used to see how long a filter is used, how long a single field is observed, how long the transparency holds steady, etc?


(Peter Yoachim) Looks like you managed to touch just about every file.  I think you just need to toss the one failing test and fix whatever the random merge conflict is and it's good to go.


and just learned type Buffer as Read/Write, ty


(Peter Yoachim) Feature/OPSIM-503 go through comments on early viz
* fix final bin on oneDslicer.
* One more typo in zDriver.py
* Tweaks to display. Still got problems if screen is resized small, but ok otherwise.
* This is what I wanted to do with the content width! Solved that.
* Found auto-generated captions were not properly re-initializing for new metadata when metrics re-used with different slicer constraints - fixed. Tweaks to templates to make active page link highlighted. Tweaks to sstarDriver to make group names match (NVisits and Nvisits).
* Another set of fixes (?) to OneDSlicer + its unit test.  Hope this addresses the issue (if the issue was plots?).
* Fixed metric name on OpenShutterFraction metric after I broke it.
* chopped down the large example
* Tweaks on viz layer, driver config scripts for sstar and cadence, tweaks to opsimdatabase (expTime -> visitTime in config), updates to various metrics to add default captions and groups, update to add label to sky maps for slicers.


This is better than the solution I posted in #280.  Since we're changing this line of code anyway, do we we want "!u ||" or "u &&"?  Something like this might make more sense, unless I've seriously misunderstood something:

    gboolean valid = u && SOUP_URI_IS_VALID(u);


(Lynne Jones) Feature/OPSIM-506 address small changes improvements
A collection of changes to respond to (mostly display-related) items noticed at the Cadence Workshop.
Updates to showMaf.py to use a sqlite tracking database to keep track of all runs (and comments on the runs) and thus allow showing all runs. Also allow long captions/run comments through changes to Table/Database.
Updates to stacker and metric registry to allow imports with packagename.Metric/StackerName rather than including the external file (when using package/module __init__.py).
Changes to various stock driver configuration files  to update groups/subgroups/captions.

* Updated sstarDriver to make sure that filter order recorded for unislicer metrics.
* Changed order for sorting for viz layer (slicer then 'order') to separate unislicer & healpix results. Updated simpleMetrics to actually use new metricName for fracAbove/below. Updated cadenceDriver to actually run SN metric.
* Updated base metric registry to import metrics from a package as 'package.metricName' instead of 'package.filename.metricName'.
* Updated OpsimDatabase to use wfd tag if available and fixed wfdWhere clause in sstar and cadence drivers.
* Updated baseMetric and baseStacker to give "expected" module names to incoming new user metrics when users creating package rather than single file module.
* This commit adds multi-run capability to showMaf.py! Swapped to tracking database (to keep track of all runs). May possibly still be bug related to static files, haven't had time to test that yet.
* Fixed color bar units for 'count' metric that it turns out I broke (in cases where also applying a 'normal'.)
* Tweaks to addRun.py and the order the runList presented in for showMaf.py.
* Bah, another tweak to visitGroups caption.
* Update to Table and Database class to allow long captions, and corresponding changes in viz layer to use long strings / long captions.
Update to metricselect.html template to add datafile to metric data.


This link appears broken. I think you want `#via-the-api`


(Peter Yoachim) Would it make sense to make it possible to just give a list of directory names as arguments, then showMaf can add them all to the trackingDb?  Then it's easy to do things like:
showMaf.py dirname
showMaf.py dirname1 dirname2
showMaf.py --trackingDb dbname


(Peter Yoachim) Why not just put it in the current working dir?  Do we really want people adding files into our directory structure?


(Peter Yoachim) Looks like the "all results" and other buttons throw an error if a run hasn't been selected.  Should they be greyed out or something to force people to select a run?

How about default behavior of auto-selecting if there's only one run to skip some clicking?


(Peter Yoachim) The OpSim comment seems super useful.  Can we add that to the html title's under the run name?


(Peter Yoachim) Looks like the body of the web pages (like "all results") has a fairly small default height.  Probably looks normal on a laptop, but looks cramped on a big screen.


(Lynne Jones) Since it's user-settable, it can be long. I'm not sure we'd want it on every page of the individual run results. What I did for the cadence workshop was copy Cathy's comments from confluence, as they are more descriptive than the comments which "came along for free" with each run.


(Lynne Jones) This is a good idea.


What does it mean? arrayRandomFilling instead of matrixRandomFilling? In this case there is a conflict between the dimensions of the arrays


(Lynne Jones) A good point .. also I should have documented that while hte tracking db can be anywhere, the results which are being shown by the showMaf.py command can only be in directories immediately below the directory where showMaf.py is run. This is due to the static file references in the tornado setup. I should ask Simon if he has any ideas to extend this.


(Lynne Jones) Maybe .. you wouldn't be able to easily add comments if it's a long list though (so maybe just one dir at a time?). Check out
http://140.142.30.250:8888 if you're online in the next little bit for a bigger example of a bunch of runs I set up with more comments. I think the comments are helpful.


(Lynne Jones) This is a tough one .... I wanted the height of the content and hte height of the sidebar to be the same so that the sidebar was always available (so you could jump to a particular section). There may be another way to do this.


(Lynne Jones) Done - Edited the runselect page to set runId to be the first mafRunId value in the rec array of run results. (so if there is only one run, it will be the one which is automatically selected and otherwise, the first run will be automatically selected).


(Simon Krughoff) Maybe you could put it in a tooltip or under a link next to the name.


Can you really do this if you're including the `fqdn` in the config?


(Lynne Jones) http://140.142.30.250:8888  until I close my laptop


(Simon Krughoff) Why not use None as the default.  'NULL' looks databasey, but you never use it that way.  None is also (slightly) easier to test for and doesn't require a convention (someone maintaining the code could misspell it 'Null').


(Simon Krughoff) tmp_opsimRun is not set if configSummary.txt doesn't exist.  This will throw an access before assignment error.  Why not just assign ospimRun and opsimComment in the above block?  Then my comment in the argparser may make less sense, but you may still find it easier to translate all Nones to 'NULL' in one place.


(Lynne Jones) I think using NULL instead of None was a case where I thought I was going to use it once, and then it spiraled. I'll go through and clean it up to using None in Python and interpreting it to NULL in the database classes themselves.


(Simon Krughoff) It's not required to explicitly call exit.  It's clearly not a big deal, but most python scripts in the stack don't call it.  For consistency, I tend to adhere to the tacit convention.


(Simon Krughoff) You may think about passing faviconPath to make_app.


(Simon Krughoff) Bare exceptions can cause bugs to be hard to find.  You should name the exception you are catching (if nothing else 'except Exception').

https://docs.python.org/2/howto/doanddont.html#except


(Simon Krughoff) I'm a little uncomfortable with how many hard coded names there are in this file.  Is it possible to do this via configuration so that names will be easier to change if the schema changes?


(Simon Krughoff) These are unused.


(Lynne Jones) Let me have a look at this and see if I know what you're referring to (is it the column names? the table names are settable via the init, of course).
What kind of thing did you have in mind for 'configuration'? I was thinking that maybe it would be good to at least call out the column names at the top of the class and set them in one place, same thing with the 'wfd' tag, but were you thinking of something even more separate?


(Simon Krughoff) Sorry for this after the review comment, but if you don't know what the capitalization is going to be, isn't it safer to do:
if 'deep' in name.lower() or 'dd' in name.lower()
?


"CoreOS"


(Lynne Jones) That makes a lot of sense.


(Simon Krughoff) There are just a lot of column names being used as keys in python.  When the schema change, code will have to change.  It seems like that should be a configuration level thing so the same code can run on different dbs.


(Peter Yoachim) Feature/OPSIM-508 make it possible for slicers to
Lots of people wanted to see the distribution of observation gaps.  So here's a new metric that computes observation gaps (either gaps between neighboring observations or all observing gaps) that goes with a new slicer that can merge histograms.

I put in the ability to merge the histograms with either a numpy function or a metric.  Maybe that should be simplified.

* Tweaked NOutliers metric name to capture number of sigma.
* Small updates to cadenceDriver.py to clarify metric names and captions.
* Added a caption for the VisitGroups metric. Captions all reduce methods, so ... really long.
* First pass at making a histogram merger slicer
* clean up
* plotParams to plotDict everywhere
* adding documentation
* add ability to run metrics in the slicer.
* unit test for metric


(Lynne Jones) Why change to plotDict versus plotParams? (and if you do want to change it, can you make it plural? this is the pattern I've followed with the other items that are for more than one iid).


(Lynne Jones) (ps - I see (now) that you changed plotParams to plotDict in the metric too .. I guess that makes sense, to make naming the same over the driver and the MAF classes). But this should still be plotDicts here instead of plotDict (i.e. metricNames, simDataNames, sqlconstraints...).


(Lynne Jones) Do we have any slicers that should not plot anything? If so, they should not have any plot functions. Right? (so, self.plotFuncs is then an empty dictionary, and in plotData there is nothing to loop through). Or is there an exception to this that I'm missing?


@abenzzine this is all correct. Please do consider what would happen if the dollars were 1 or 100 or any value not explicitly tested for. No need to change anything - just think about it.


(Lynne Jones) This docstring is not very informative. Without reading the code (is there other documentation available?) I do not know what a numpyReduce or metricReduce does .. these seem like they would be useful to document here. Scratch that .. even after reading the code, I'm not entirely clear on what they do or how they are intended to be used (when should I use a numpyReduce vs a metricReduce? if I have a metricReduce, why do I need the special functionality of the healpixHistSlicer?)

Okay, so .. we've had this discussion before, but for the record, here's the gist of what I'd prefer to see here.
In this class I'd add an additional method:
* one to preview all of the different histograms (i.e. per point in the spatial grid, it makes a tiny plot of the histogram) [or, optionally, for some subset of spatial grid points -- so you can double check what's going on]  (let's say it's called plotAllHistograms)
* one to marginalize all the different histograms over the spatial grid (i.e. what you have here) -- I guess this is where the numpyReduce comes in?   (and I think I'd name it differently than one of the parent class methods, just to simplify things later and make it easier to identify from the results summary db). (let's say it's called plotConsolidatedHistogram)
* I'm trying to think what exactly would happen if I had a metric which computed for each RA/Dec point the error expected in calculating a star's period, for a range of periods (based on the times and limiting mags of each observation) .. I think, this would be plotted just fine as error in period vs period using your 'histogram' method here, but this might be a reason to make the language in this class a bit broader than just 'bins' and 'Hist' values .. maybe just x and y?).

Then I'd make this class inherit from BaseSpatialSlicer, and remove the __init__ in this class (because of inheritance rules at the next stage).

Then to set it up for a healpix hist slicer, it would be something like (assuming this class was then called 'consolidateSlicer')
class healpixConsolidateSlicer(HealpixSlicer, ConsolidateSlicer):
  def __init__(self, **kwargs)
     super(healpixConsolidateSlicer, self).__init__(**kwargs)
     self.plotFuncs = {'plotAllHistograms':self.plotAllHistograms, 'plotConsolidatedHistogram':self.plotConsolidatedHistogram}

and for an opsim consolidating slicer, it would be almost identical. and so on.

That might make it also more obvious that you could calculate the initial values using a normal slicer (healpix slicer, etc) -- and then, later read that metric data file back from disk, and replot using this new healpixConsolidateSlicer method (in which case, you can make "regular" style plots using the healpixSlicer alone, together with metric Reduce functions, and then do the 'all-sky' consolidated plots using the healpixConsolidateSlicer).

Is it just getting too complicated?


(Lynne Jones) You might have to update some of the examples/pythonScripts examples to use plotDict instead of plotParams, to keep everything up to date.


(Lynne Jones) Ah - and to be able to read from disk and keep the info about the bins (which you save in hte plotDict) we should add writing/reading the plotDict to the read/write methods on the baseSlicer. Shouldn't be a big addition, and probably worthwhile anyway since there have been a couple of times I've wished I had that info ready-to-hand.


Thanks. Completely forgot about that.


(Lynne Jones) Shouldn't this be its own unit test? (It would be hard to find if searching for 'testHealpixHistSlicer' in the list of unit tests and will be counter-intuitive to fix if something goes wrong during the 'testHealpixSlicer' unit test).


So... I've done my second assignment as well. It seems to be working, but please notify me if I'm wrong. I am really not sure about my code this time. I couldn't think of a non-recursive solution. I really hope it's alright.


I got it why you are doing this. So you could always initialize nulls = 1 then.  Because this case is prepending a 'null'


(Lynne Jones) Comments below. Please update the pythonScripts examples if needed, and swap plotDict to plotDicts in the sliceMetrics (or conversely, swap all of the other plural dictionaries to singular), and move the unit test to its own unit test. The extension to the healpixHistSlicer into a parent class for multiple *histSlicers .. that's something to consider, but doesn't have to be done (although, if not, I'm sure we will probably get around to it sooner or later).  Needs more documentation though, and I think unless its' necessary, removing the 'metricReduce' option is probably a good idea (although that may be because I don't understand what you're doing there? maybe what i really think is removing the numpyReduce option is the best one, since we replicate things in metrics anyway?)


(Peter Yoachim) Yup. Makes sense.


(Peter Yoachim) oh yeah, I always forget those.  Fixed.


(Peter Yoachim) OK, I got a lot of that in there.  I dropped the numpyReduce since it's not strictly needed (but it's faster, so I'll miss it).

The whole "plot individual histograms" scares me because it seems like it would be easy to accidently plot 3 million histograms, and then you've got 10 gigs of random plots.  I added a kwarg so you can plot any individual healpix, so now there is the functionality to plot a single one and we can think if we want to expand it more.


(Peter Yoachim) This was a flag I had to add so that a slicer could plot metrics that return numpy arrays with dtype=object.


If you solve the remaining test case or can find someone from the upstream
to take a look at this, we can definitely submit a PR for this. I'm not
involved in the upstream repo so I'm not sure if they'll accept it or
intend to move this way with the library.

On Mon, Apr 27, 2015 at 12:10 PM, Scott MacVicar <notifications@github.com>
wrote:

> Any plan to merge this in upstream? Was struggling with getting PyML
> installed too
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/AlexRiina/talon/commit/d8dd82ec261aa0ba72a86be2ac3dac01eef693df#commitcomment-10919489>
> .
>


Factorial of the zero is zero, really?


(Peter Yoachim) yup, fixed the ones that should be "plotDicts".


(Simon Krughoff) A general comment.  The reviews I've done for MAF all have touched a *lot* of files.  I realize that there is a lot of work going on, but splitting functional changes from trivial changes like renaming would make both kinds of review easier to do.


(Simon Krughoff) There is a standard syntax for marking up input parameters.  We should get better about using it so when we have sphinx it will parse correctly.  We should also try our best to document every input and output parameter.


(Simon Krughoff) This sounds like a bug.  Can you make a how to reproduce and file it?


(Simon Krughoff) I imagine there is code like this in every plotting routine.  Should there be a single piece of code that knows how to decorate a plot, rather than coding it for every plotter?


(Simon Krughoff) I know it's tough, but a unit test should probably test something (rather than just test the ability to call a method).  Is there any way to actually test that the result is what you expect?


(Simon Krughoff) This import is unused.


(Peter Yoachim) That's a good point.  Usually we can avoid the repeated code by subclassing, but it would probably be better to have 2-3 decorators that we can use across the different slicers.  I'll make a ticket.


(Simon Krughoff) I probably used a confusing term in the word decorate.  I think you get what I mean that there should be a method that takes a figure and a standard set of arguments and does all the plot labeling and axis setting and such.


(Peter Yoachim) Feature/OPSIM-518 hour angle stacker
Simple stacker to add hour angle as a column.  Also stuck on a new simple metric to take the median of the absolute value of a column.

* made new stacker
* Wow, the HA dist really makes the schedular look bad.
* added unit test
* fix caption
* added MedianAbsMetric


WTH???

This is not the right thing to be doing.


(Scott Daniel) Looks fine to me


i wouldn't like to have this change in this PR. Plus I thought there was already a PR about this


(Lynne Jones) Does this actually guarantee HA is between -90 and 90? Am I being stupid? -- I think this means that if HA was -100 .. then first 'where' moves it to -100+360 = 260 .. which is >90.. so then second 'where' changes it back to -100. ??

(note also np.where can act as an if/then ..
>>> ha = np.arange(0, 10)
>>> ha = np.where(ha<5, 0, ha)
>>> print ha
[0 0 0 0 0 5 6 7 8 9]
.. bit more compact than two where's in the same line).

Also, some old opsim runs had LST going negative instead of between 0-360.. I'm not entirely sure what this does, but I think it may invalidate the HA calculation like this.
An option is to first check LST column, make sure data is between 0-360 and raise warning(exception?) if not (not sure what we should do if it's not).
Another option is to wrap as you have done here, and then test if any remain beyond -90/90


(Lynne Jones) Should probably test the wrapping of the stacker works appropriately too.
May I suggest slightly different data for testing? (that you could test the actual value of the HA returned? especially if you take a few values and run through skycalc or equivalent)
Maybe set lst to be a constant value, and the fieldRA to run through 360 degrees .. see what happens and if it matches what you'd expect at each point in RA.


(Peter Yoachim) Feature/OPSIM-124 add focal plane model
I think this works, but it is pretty painfully slow.  I tried taking advantage of arrays as much as I could, but maybe you can see a better way.  Could be there's no way around the pain since I think we have to loop over every opsim visit no matter what.

* starting camera chip gap test
* runs, but factor of ~700 slower :/
* works again, but still painfully slow on full runs
* fiddling config
* check dithering too
* added unit test


(Scott Daniel) thought I'd be a dork and point out the spelling error in the doc string.  suer - > sure


(Scott Daniel) fyi: there is no plan to change the fact that ObservationMetaData wants degrees.  The thinking from my perspective is that users are likely to want to instantiate ObservationMetaData objects by hand.  Since we try to keep all of the angles that humans see in degrees, the input arguments for ObservationMetaData will likely remain degrees.  If you feel differently, you should speak up.


(Scott Daniel) just checking: you are passing in rotSkyPos in radians, right?  If so, I think there is an inconsistency in ObservationMetaData's interaction with sims_coordUtils (one expects degrees; one expects radians).  I will file a ticket to fix that.


wrong nico


(Scott Daniel) in lsst.sims.catalogs.generation.db there is a method 'haversine' that does this calculation (it is defined in observationMetadataUtils.py).  I have been trying to replace make all of the CatSim angular distance calculations use that method, just so that we only have one implementation lying around.  It's not a deal-breaker for me.  It just seems more aesthetically pleasing.


(Lynne Jones) any thoughts on the differences between haversine and vincenty? (haversine can suffer from rounding errors at large angular separations, which perhaps we don't care about at all .. vincenty is supposed to be a little more intensive to calculate but more accurate - http://en.wikipedia.org/wiki/Great-circle_distance).
I guess I'm actually pretty agnostic about this, and keeping only one implementation seems to make sense to me.


(Lynne Jones) I think what Scott says makes sense .. Opsim should be outputting their field pointings in degrees, not radians. (perhaps we should bug them to do this, although it will make some complications for us).
It may be useful for us to consider a plan that *internally* within MAF, we will always be passing around radians, not degrees, since we mostly want radians for trigonometric functions. What we output should be in degrees, and what we read ought to be in degrees (but for now at least, is in radians). Then we could more easily isolate the conversion to/from degrees/radians and should be easier to deal with opsim outputs if they change.


@abenzzine you can simply return the remainder, no need to test for 0.


(Peter Yoachim) yup, that's in radians.


(Peter Yoachim) Should we make a sims_utils?  It seems like there are more and more little things that I write for one package that I then need somewhere else and have to decide between duplicating or importing from an odd-ball place.  Seems like haversine, healpix binning, etc could be bumped up a level.


neat!  I didn't know that existed.


 if ((d.num_ints > -1) + (d.num_floats > -1) + (d.num_strings > -1) > 1)

Simpler?


(Scott Daniel) If wikipedia is to be believed, vincenty only fails if the points are practically opposite each other on the sphere.  Since we are usually calculating the distance between the center of the field of view and objects that may or may not be in the field of view, such extreme distances should not come up (or, at least, not be required to very high precision).


(Peter Yoachim) yeah, we should probably tell opsim to output all angles as dergees (then the simple metrics will display degrees as they should), and we can just make stackers to make coppies of the columns in radians.


you should log the error like it was the case in OnShutdown


(Scott Daniel) Regarding the speed of everything:

I just ran the chip gap unittest through cProfile.

The code spends 6.694 seconds in setupLSSTCamera
2.388 of those seconds are spent in findChipName
1.94 of those (findChipName) seconds are spent in afw.cameraGeom.findDetectors

if I increase the number of test pointings by a factor of 10 (I assume that's what happens if I increase the nvalues passed to makeDataValues), the code spends
27.036 seconds in setupLSSTCamera
22.058 seconds in findChipName
17.972 in afw.cameraGeom.findDetectors

So, Simon is right (though I can't seem to find where he said it), we can get a lot of speed back if we just make afw.cameraGeom.findDetectors a little quicker.


(Lynne Jones) I was wondering about a sims_utils as well.  I wonder if sims_catalogs_generation would eventually be subsumed in that (or, essentially function in that capacity at the moment), because I think of reading from a database or file as a basic utility too.


Will check from here tomorrow again.  Need to check this calculation carefully.


It can return NULL, yes. It's a slightly tricky case because we don't know if it returned NULL because something was registered to return NULL, or just because nothing was registered. In this case, I took my lead from the equivalent code in `Box::create()`, which has been around a while and hasn't caused problems.


(Scott Daniel) At the very least, we should create a utils/ folder in sims_catalogs_generation.  The obsMetadataUtils.py file just sort of evolved into an accidental place to store general utility functions (often for things like going from RA, Dec to Alt, Az and vice versa).

I'm not sure its worth the trouble of creating an entirely new package, since the package will just contain a handful of function definitions.  The sims_catalogs_generation eups table is already very basic, so making everything depend on sims_catalogs_generation to get access to our utility functions won't bring in too many unnecessary other dependencies.

There is already a ticket to go over obsMetadataUtils.py and have it use PALPY for its back end.  When that happens, I can move it to wherever we decide it should live.


That's because you're sending the `success?` message to the `item` object.  That method returns a boolean (true/false).  `has_title?` is another message that you can send to the `item` object which also returns a boolean.  RSpec has custom matchers that will turn something like `have_title` to send the `has_title?` message to the object and make assertions against it.

What you want is `expect(item).to have_title`, effectively having RSpec send the `has_title?` message to item and assert its truthyness.


(Lynne Jones) Picky thing -- I think our convention is that column names end with "name" while the actual columns end with "col" .. e.g., rotSkyPosCol should be rotSkyPosColName in the kwargs.


(Scott Daniel) with nside=8, nvalues=10000

the code spent
4.28 seconds in setupLSSTCamera
22.748 seconds in presliceFootprint
22.216 seconds in findChipName
18.158 seconds in findDetectors


(Scott Daniel) with nside=16, nvalues=10000

4.404 seconds in setupLSSTCamera
90.034 seconds in presliceFootprint
89.168 seconds in findChipName
74.137 seconds in findDetectors


(Lynne Jones) Not so relevant to this ticket item (but maybe should be done here, int he interest of code cleanliness) -- sliceMultipleSlicePoints is never used and should go away to avoid confusion.

Apart from afw.cameraGeom.findDetectors being too slow, I think we're okay. (looks like Scott may have made a ticket for himself in findChipNames, but should be transparent here).
Thanks for the changes in the code for readability.


(Lynne Jones) One nice thing about Scott's profiling is that it seems to show that we're super fast in the MAF stuff, just that what we're calling needs some time to do its work!
Before we let this loose on the world (not necessarily before merging to master, but before widely advertising the capability), we might want to make a proper calculation of how long a simple test metric will take to run with and without the chip gaps (at fairly high healpix resolution), and give an example of the differences. A useful example might be number of visits and coadded depth, with and without the chip gaps, preferably with and without dithering. These effects (dithering and chip gaps) get bandied about a lot in terms of the effect on the final depth/number of visits.


yes! all custom hooks are vanishing one by one :)


@abenzzine done with my review. checkpoints (multiple) complete. press on!


Line should be indented 8 spaces, but was indented 10 spaces


(Peter Yoachim) Feature/OPSIM-520 add some better colors relevant
I just added some simple example colors for different spectra types (from Bryce), so now one can compare the astrometric precision of B-stars compared to K-stars.

* added spectral type examples for astrometry
* clean up and raise warning if needed


(Lynne Jones) Just for user-friendliness in the future...  might be nice to catch this error:

>>> stellarType = np.array(['O', 'B', 'A', 'F', 'G', 'K', 'M'])
>>> myType = ['G', 'K']
>>> np.where(stellarTypes == myType)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: shape mismatch: objects cannot be broadcast to a single shape

and raise it as something specific (i.e. ValueError: Provide a single stellar type rather than multiples -- ['G', 'K']).
I suppose it's kind of hard to pass in a list instead of a single star, given that pex_config only lets the driver config file contain strings.
So it's not really a big deal, but it would certainly lessen potential confusion if multiple stellar types did manage to get passed in here.


(Lynne Jones) I'm getting careless about this myself, but .. can you add a quick unit test?


(Simon Krughoff) This method really expects a single character string.  If that's the case, then I think this can be done with a dictionary and the np.where isn't necessary.  It would also make it more readable.


(Peter Yoachim) Feature/OPSIM-516 try running maf on stripe 82
Running MAF on Stripe 82.  There might be a more elegant way of finding the chips that contain each healpixel (right now I use a kdtree to find all the enarby images, then test each of those individually).

* starting to connect to fatboy
* now it runs on stripe 82
* started new slicer
* changed to cartview.  Might need to debug sliceSimData some more
* fiddling with different projections
* try plotting sections of the stripe
* slighty better plotting
* fixed color bar and just made it independent.
* need to fix frames that wrap around RA 0
* switch to using gnomic projections so will work away from equator


(Lynne Jones) Just curious - why did you need to add this? Is it due to the driver? If it's the driver, I believe this is something we should move in the driver (we don't always need to get propIDs, so we could only get them if it's an opsim DB class), rather than add to the base class (implying that it's an always-needed function for all db versions .. which I don't think it should be).


It should be an XML string.


(Lynne Jones) Does query_columns_Array method on table not work for this? (so you don't have to build the sqlquery yourself)
(this should avoid your double quotes problem too I think)


(Lynne Jones) Should we add a db registry as well (similar to the metrics and stackers registry?)


(Peter Yoachim) I don't think we need to go to a full registry since you only need one database class at a time.


(Peter Yoachim) Ah, query_columns_Array does work if I fix the quotes first.


IIRC I discussed this with someone on IRC and we agree on removing, I'll change it back if you wish


Done


(Peter Yoachim) Agreed--removed from base class and put in driver.


(Scott Daniel) Now that the default groupBy has been changed, should there be some kind of warning if groupBy is None?


Mine remained, but maybe I should just mv the ota to the renamed zip so there is nothing left over


(Scott Daniel) is this redundant with line 73 of mafConfig.py?  Even if the answer is 'yes,' I'm not sure I can think of a reason that is bad.  I just wanted to make sure that the redundancy (or is it fool-proofing?) was intentional.


(Scott Daniel) should this function be put somewhere more generally accessible (a slicersUtils.py file, for instance).  I can imagine it will eventually become useful somewhere else, and it would be nice to not have to rewrite it (or remember that it is in this source file) every time.


(Scott Daniel) There is no argument 'units' (though it is mentioned in the doc string).  It does not appear that cbarFormat or plotMaskedValues are used.


(Scott Daniel) I do not see where the method _makefilename() comes from


(Peter Yoachim) Good point--I added a warning if people try to do something silly.  Having a default groupBy and the distinctExpMJD is a bit "belt and suspenders", but I don't think it hurts anything.


(Lynne Jones) Not so much so that we could have more than one at a time, more so that people could use contributed database classes without having to put them inside the MAF source tree.


(Lynne Jones) Hmm. I am not sure, but I think that it would be good to
(A) make an example showing the error
(B) turn on verbosity to show the query which is generated, as well as the error
(C) send an email to uwlsst with the problem and ask whether this is something to file a ticket on (and if so where?)

This is probably something that either should be addressed in the catalogs level or something about the behavior of MSSQL that should be better understood and publicized.


(Lynne Jones) It was something that was around for a little while .. but should go back to
self.configDetails  = os.path.join(self.outDir, 'configDetails.txt')

Does config.find('RunName') return a None if RunName is not in the config file? Could we test for that instead of the try/except? Or does it mean that 'spot' is just the end of the file?
Also, as Simon pointed out previously ... the except should be catching a specific exception (even if it's just 'Exception') otherwise it will also catch runtime errors we would want to know about.

PS - will this method (config.find + .split('')[1]) keep multi-word run names together? or will it cut off the run name after the first word? Will it also behave strangely if runName is used as part of the value for one of the lines in configSummary? The configSummary is kind of keyword/value pairs (although not obviously explicitly so, which might be something to take up with the configSummary generation). Maybe it is would be better to read each line, and if the keyword matches 'RunName' then read the rest of the line as the value. (and quit reading the file).


(Peter Yoachim) ah, yes that's a good idea.  I've added that in.

We should probably just make the registry code it's own class somewhere (maybe utils?), and then just subclass it everywhere since I've just blatently copy/pasted it twice now.  Then we could have a handy utility to just list all the metrics, slicers, databases, etc...


(Lynne Jones) Ah, sorry - you need to do a little bit more here.
See the BaseMetric registry: (should be the same for the other registries too, unless I've made a mistake)
        if modname.startswith('lsst.sims.maf.metrics'):
            modname = ''
        else:
            if len(modname.split('.')) > 1:
                modname = '.'.join(modname.split('.')[:-1]) + '.'
            else:
                modname = modname + '.'
        metricname = modname + name

The extra bit of the split lets people import as module.classname if the module is a multi-file package. (i.e. instead of module.filename.classname).

Maybe this should be put in a base registry class, but I'm not entirely sure how to handle the fact that the modname would be different and we want to exclude different Base classes from the registry. Plus that we want different error messages.


(Lynne Jones) Extra whitespace.


(Lynne Jones) This actually does something a little different from defaulting to opsim if the db is not specified. This means that if the user made a mistake in their config file (such as a typo), they will end up using the opsim db class. I think that we actually don't want to do that. By specifying the default as OpsimDatabase in the mafConfig, I think we cover what we want to do, and that a typo or other mistake by the user (such as not adding the db they want to use to their python path) should result in an error.


(Lynne Jones) Is the rest of this line supposed to be commented out? If so, should be removed.


(Lynne Jones) Minor comments except the one about fixing the DB registry to import external classes as expected (modulename.classname instead of modulename.filename.classname) and what to do if the db name doesn't match the names in the registry.


(Peter Yoachim) Feature/OPSIM-333 long gap metric for agn
* Adding agnDriver and longGapAGNMetric
* Adding longGapAGNMetric in __init__
* debug metric
* update metric to handle cases where there is only one observation
* blah
* getting agn done


(Lynne Jones) Bugfix/OPSIM-437 cleaner crash required if sqlite
Update in response to review.


@Kipperlenny Can you send me pull request with your changes? I would like to merge them and release a new version.


@tiborvass viz removed because of this, because eng isn't there anymore and can't leave it, ok with this?


(Lynne Jones) Final push with response to Scott in last review did not actually go through, but I didn't notice before merging. So this includes that last fix, and I will merge again.


(Lynne Jones) Feature/OPSIM-446 rename binner to slicer
The major things to look at:

* binner has been renamed slicer
* slicers now return a dict with keys 'idxs' and 'sliceInfo'.  idxs has the relevant indices for the slice, while sliceInfo is a dict with any additional metadata (e.g., the RA/DEC of the slice, pixel area, etc).  Now all metric run methods look like "def run(dataSlice, *args)" or "def run(dataSlice, sliceInfo).
* Most of the slicers now have a _resultsDict method that builds that dictionary.
* All slicer kwargs are moved to the __init__, even if they are not used until the setup method.  This makes the driver config much simpler.
* The sliceMetric does memoization. It provides a factor of 2 speedup when running lots of cadence metrics.  I'm open to thoughts on how to do it better (e.g., make it a decorator or change from OrderedDict to built-in dicts).


IMHO it could be more idiomatic to implement [fmt::Display](http://doc.rust-lang.org/std/fmt/trait.Display.html)


(Lynne Jones) Will be a few upcoming name changes ... so hold on for one more commit :)


Aha! This'd be why the Parent's doing weird things... the result of this call is being ignored


(Lynne Jones) kwargs here have been moved into init - please update this method and comments (as baseSlicer serves as documentation / API illustration)


(Lynne Jones) Need to update this method & docs on iterator.


(Lynne Jones) Need to move these docstrings to init (for explanation of spatialkeys, leafsize and radius)