Updated:
Mega Update
Blog posts are like buses … Darn! I already used that joke!
I intended on taking a quick two week break to study for finals, but I got tied up with some other things which leaves me here. Luckily, I have a few projects I never did blog posts on, so that will give me something to write about.
I intend on continuing with Rails and Swift but would also like to start learning the R language. Statistical programming and machine learning looks like something that would be fun to learn and hopefully someday I can make something cool like AlphaGo.
Anyways, in the words of the Beatles: “Here comes the blog posts”. Close enough.


name: inverse layout: true class: center, middle, inverse --- # Workshop on publishing code ## Zsolt Elter ## 2019 --- layout: false .left-column[ ## Content ] .right-column[ How and where to publish your code and some good practices. Example for this presentation on [github.com/ezsolti/TKworkshop](https://github.com/ezsolti/TKworkshop) - Journal of Open Source Software - Version control - Python modules, packages - Checklist for your github repo - Errors, Exceptions and raises - Tests - Docstrings - Documentation Idea here is to have a collection of useful links, such as this one
Anthony Scopatz & Kathryn D. Huff: Effective Computation in Physics
... and motto is: "*I can probably make a presentation without any figures.*" ] --- template: inverse ## Journal of Open Source Software --- .left-column[ ## Publishing code ### JOSS ] .right-column[ **Don't we have enough journals already?** "*Perhaps, and in a perfect world we'd rather papers about software weren't necessary but we recognize that for most researchers, papers and not software are the currency of academic research and that citations are required for a good career.*" /from [JOSS hompage](https://joss.theoj.org/about)/ JOSS (and JOSE for open source education) - provides a simple submission process - paper (250-1000 words) takes few hours (if code is well-documented) - is free and open source - has a nuclear engineer editor and reviewers - has a transparent and open review process in github issues (for example [`feign`'s](https://github.com/openjournals/joss-reviews/issues/1650)). What you get - an article...:) - a code that was installed, tested, reviewed by at least three scientists - experience from a different world... journal run by enthusiastic young people. This is nothing like Elsevier... ] --- .left-column[ ## Publishing code ### JOSS ### Requirements ] .right-column[ For the code - Obvious research application - License, Community guidelines - Documentation (readme) - API documentation - Install instructions - Tests - Examples For the paper - 250-1000 words - Summary for non-specialists - Statement of need - Bibliography with DOI Indeed, you see some articles, which are just 1 page long. [Mine](https://joss.theoj.org/papers/10.21105/joss.01650) was a bit more detailed. ] --- .left-column[ ## Publishing code ### JOSS ### Requirements ### Let's do this! ] .right-column[ - Altogether 3 weeks to prepare my code and documentation for submission - But the paper was 3 hours - Worth it? Today we go through what one needs to know to get python code ready to be published... ... to spend only 3 hours on this next time. ] --- .left-column[ ## Publishing code ### JOSS ### Requirements ### Let's do this! ### What we won't cover ] .right-column[ - How to program decently - Python API, XML, JSON instead of input files (even for C/C++ code) Find an example you like, and try to mimic it. I've relied a lot on [OpenMC's](https://github.com/openmc-dev/openmc) logic. ] --- .left-column[ ## Publishing code ### JOSS ### Requirements ### Let's do this! ### What we won't cover ] .right-column[ - How to program decently - Python API as input (even for C/C++ code) From ```python title,N,M,pitch,p,cells,materials,fuelmap,source,coolantMat,surroundMat,detectorpoints,pool,elines,mu = readInput(inputfilename) dTmap={} for name in detectorpoints: dTmap[name]=distanceInVariousMedia(N,M,pitch,p,cells,materials,fuelmap,source,coolantMat,surroundMat,detectorpoints[name],pool) ``` to ```python pwrClab=Experiment() pwrClab.set_assembly(pwrOrig) pwrClab.set_detectors(F5,F15) pwrClab.set_materials(uo2,he,zr,h2o,ss,air,lead,copper,alu) pwrClab.Run() ``` ] --- .left-column[ ## Publishing code ### JOSS ### Requirements ### Let's do this! ### What we won't cover ] .right-column[ - How to program decently - Python API as input (even for C/C++ code) From ```bash MATERIALS 1 UO2 10.5 /data/UO2.dat 1 2 He 0.00561781 /data/He.dat 1 3 Zr 6.52 /data/Zr.dat 1 4 H2O 1.0 /data/H2O.dat 1 ``` to ```python uo2=Material('1') uo2.set_density(10.5) uo2.set_path(('/data/UO2.dat',1)) he=Material('2') he.set_density(0.00561781) he.set_path(('/data/He.dat',1)) ``` ] --- template: inverse ## Git, GitHub, Version control --- .left-column[ ## Version control ### Why?] .right-column[ - To avoid having hundreds of files - you do not need a github repo for this - just ```git init``` in your folder, and add/commit - review with ```git log``` - also great with Serpent/MCNP inputs - To backup your project - with remote repo (eg. github) - To facilitate contribution - we should use it for our data analysis notebooks - github issues for managing the projects - report bugs - propose changes - discuss ] --- .left-column[ ## Version control ### Why? ### How?] .right-column[ - [Create a repo on github](https://help.github.com/en/articles/creating-a-new-repository) - Don't add here License, .gitignore to make life simpler - Get into your package's folder - And [link it to the repo](https://help.github.com/en/articles/adding-an-existing-project-to-github-using-the-command-line) ```terminal $ git init $ git add . $ git commit -m "some notes" $ git remote add origin https://github.com/ezsolti/TKworkshop.git $ git push origin master Username for 'https://github.com': ezsolti Password for<EMAIL_ADDRESS>Counting objects: 3, done. ``` Origin? Master? Origin is the name of the remote repo. Master is the branch. [Info here](https://git-scm.com/book/en/v1/Git-Basics-Working-with-Remotes#Adding-Remote-Repositories). ```git push [remote-name] [branch-name]``` ] --- .left-column[ ## Version control ### Why? ### How? ### Terminology] .right-column[ - Fork or clone? [Fork vs Clone](https://opensource.com/article/17/12/fork-clone-difference) - Fork means to take a copy with the intention of starting a new project and building a new community around the renamed project - Clone means to take a copy with the intention of contributing to a project. ```bash git clone https://github.com/ezsolti/TKworkshop.git ``` - This will copy the whole log as well. - When contribution is done, send pull request - **BUT**: on GitHub the word *fork* represents the equivalent of *git clone* - Pull or Push? Network commands, only used if there is a remote. - pull = fetch + merge (updates the local with new commits on remote) - push (updates remote with new commits on local) ] --- .left-column[ ## Version control ### Why? ### How? ### Terminology ### Checklist] .right-column[ We will come back to these later, but - License - Readme - Source code, eg python package - Contribution guidelines - .gitignore to specify intentionally untracked files (eg pyc) Then you are good to go. Optionally (eg. for JOSS) - tests - paper - doc - examples - setup.py ] --- .left-column[ ## Version control ### Why? ### How? ### Terminology ### Checklist #### License] .right-column[ **Disclaimer**: you probably should not take any legal advice from me. [OSI-approved licenses](https://opensource.org/licenses) [Choose a license](https://choosealicense.com/) ] --- template: inverse ## Packaging python code --- .left-column[ ## Packaging ### Module] .right-column[ - Modular programming - Simplicity - Maintainability - Reusability - Scoping (separate [namespace](https://www.programiz.com/python-programming/namespace)) - Collection of (in a .py file) - Functions - Classes - Module location - in current directory - `PYTHONPATH` ```python >>> import
>>> from
import
>>> from
import
as
>>> import
as
``` [package vs modules info](https://realpython.com/python-modules-packages/) ] --- .left-column[ ## Packaging ### Module] .right-column[ What is that ```if``` sometimes at the end of the code? To know whether it is imported or run as a script. ```python s = "nuclear for future" def plus(x,y): return x+y def minus(x,y): return x-y if (__name__ == '__main__'): print(s) print(plus(2,3)) print(minus(3,2)) ``` Otherwise, you do not need this. But, this already may do some unittesting of the module! ] --- .left-column[ ## Module vs Package ### Module ### Package] .right-column[ - When you have many modules - Or one what you want to "package" - [`__init__.py`](https://github.com/ezsolti/TKworkshop/blob/master/tkgeom/__init__.py) not necessary (executed when imported) ``` pkg_folder │ mod1.py │ mod2.py │ __init__.py ``` ```python >>> import tkgeom >>> tkgeom.geometry Traceback (most recent call last): File "
", line 1, in
AttributeError: module 'tkgeom' has no attribute 'geometry' ``` ```python >>> import tkgeom.geometry >>> tkgeom.geometry.Point(3,4) Point(3.000, 4.000) >>> Point(3,4) Traceback (most recent call last): File "
", line 1, in
NameError: name 'Point' is not defined ``` ```python >>> from tkgeom import geometry >>> geometry.Point(3,4) Point(3.000, 4.000) ``` ] --- .left-column[ ## Module vs Package ### Module ### Package ### Packaging] .right-column[ - When you want to distribute it - Register in [PyPI](https://pypi.org/) - Python Package Index - Repository of software - Install with [pip](https://pip.pypa.io/en/stable/) - package installer ``` project_folder │ README.md │ LICENSE │ setup.py └───pkg_folder │ │ mod1.py │ │ mod2.py │ │ __init__.py │ └───tests │ test_mod1.py │ test_mod2.py ``` ] --- .left-column[ ## Module vs Package ### Module ### Package ### Packaging] .right-column[ ``` project_folder │ README.md │ LICENSE │ setup.py └───pkg_folder │ │ mod1.py │ │ mod2.py │ │ __init__.py │ └───tests │ test_mod1.py │ test_mod2.py ``` README.md ```markdown # TK workshop example Example package for workshop. ``` Installation, dependencies, getting started, docs, tests, contributing guidelines ] --- .left-column[ ## Module vs Package ### Module ### Package ### Packaging] .right-column[ `setup.py` built script for setuptools. ```python import setuptools with open("README.md", "r") as fh: long_description = fh.read() setuptools.setup( name="tkgeom", version="1.0.0", author="Zsolt Elter", description="tkgeom: 2D geometry module", long_description=long_description, long_description_content_type="text/markdown", url="https://github.com/ezsolti/TKworkshop", packages=setuptools.find_packages(), classifiers=[ "Programming Language :: Python :: 3", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", ], install_requires=[ "numpy" ] ) ``` ] --- .left-column[ ## Module vs Package ### Module ### Package ### Packaging] .right-column[ You can - Generate [distribution packages](https://packaging.python.org/tutorials/packaging-projects/) - Register to PyPI - Or just offer your github link for installation ```bash pip install https://github.com/ezsolti/TKworkshop/zipball/master ``` ```console Collecting https://github.com/ezsolti/TKworkshop/zipball/master Downloading https://github.com/ezsolti/TKworkshop/zipball/master / 163kB 555kB/s Requirement already satisfied: numpy in /home/zsolt/anaconda3/lib/python3.7/site-packages (from tkgeom==1.0.0) (1.16.2) Building wheels for collected packages: tkgeom Building wheel for tkgeom (setup.py) ... done Created wheel for tkgeom: filename=tkgeom-1.0.0-cp37-none-any.whl size=6939 sha256=aa350f7fa43eb757823735e927e8e1ebe8b5ed6cd2cd47f3f8ed3e99ec873d21 Stored in directory: /tmp/pip-ephem-wheel-cache-0_belbzm/wheels/10/ea/44/5d3bce95f1404d8f2f8881b99248043a1a22659611b384bb18 Successfully built tkgeom Installing collected packages: tkgeom Successfully installed tkgeom-1.0.0 ``` ] --- template: inverse ## Error handling --- .left-column[ ## Error handling ### Why?] .right-column[ Not everyone might be an experienced user of your code. ```console $ python planecalc.py Coordinates of 1st point on the plane: 32.1,31.4 Coordinates of 2nd point on the plane: 12.3,43.2 Coordinates of 3rd point on the plane: 56.3,23.1 Test point which is on the "preferred side" of the plane: 0.0,0.0 Traceback (most recent call last): File "planecalc.py", line 39, in
a=ov[0] IndexError: too many indices for array ``` ] --- .left-column[ ## Error handling ### Why?] .right-column[ Sometimes not even you are an experienced user of your code. ```console $ python planecalc.py Coordinates of 1st point on the plane: 32.1,31.4 Coordinates of 2nd point on the plane: 12.3,43.2 Coordinates of 3rd point on the plane: 56.3,23.1 Test point which is on the "preferred side" of the plane: 0.0,0.0 Traceback (most recent call last): File "planecalc.py", line 39, in
a=ov[0] IndexError: too many indices for array ``` VS ```console $ python planecalc.py Coordinates of 1st point on the plane: 32.1,31.4 Coordinates of 2nd point on the plane: 12.3,43.2 Coordinates of 3rd point on the plane: 56.3,23.1 Test point which is on the "preferred side" of the plane: 0.0,0.0 Traceback (most recent call last): File "planecalc.py", line 32, in
raise IndexError('Each point needs 3 coordinates') IndexError: Each point needs 3 coordinates ``` ] --- .left-column[ ## Error handling ### Why? ### Try,Except,Raise] .right-column[ ```python def isFloat(s): try: float(s) return True except ValueError: return False ``` ```console zsolt@phy-draupnir:~$ python -c "float('32A')" Traceback (most recent call last): File "
", line 1, in
ValueError: could not convert string to float: '32A' ``` You have to know the Exceptions to catch them. And to raise them ```python raise TypeError('Has to be int') ``` to catch mistakes of user interacting with your code. ] --- .left-column[ ## Error handling ### Why? ### Try,Except,Raise ### Exceptions] .right-column[ [Python Exceptions](https://docs.python.org/3/library/exceptions.html) - `IndexError` ```python >>> a=[3,2,5] >>> a[5]*3 Traceback (most recent call last): File "
", line 1, in
IndexError: list index out of range ``` - `KeyError` ```python >>> a={'name': 'Fermi', 'nobel': 1938} >>> a['age'] Traceback (most recent call last): File "
", line 1, in
KeyError: 'age' ``` - `TypeError` ```python >>> a={'name': 'Fermi', 'nobel': 1938} >>> sum(a) Traceback (most recent call last): File "
", line 1, in
TypeError: unsupported operand type(s) for +: 'int' and 'str' ``` ] --- template: inverse ## Tests --- .left-column[ ## Tests ### Why?] .right-column[ - Assert behaviour - Find bugs - Provide example usage - Unittest or integration test. [Info](https://realpython.com/python-testing/) Everyone does this at least manually ```python def distance(self, other): dx = self.x - other.x dy = self.y - other.y return math.sqrt(dx*dx + dy*dy) ``` ```python >>> Point.distance(Point(3,4),Point(3,7)) 3.0 >>> Point.distance(Point(3,4),Point(2,4)) 1.0 >>> Point.distance(Point(3,4),Point(5,6)) #sqrt(8) 2.8284271247461903 ``` One should keep track of these tests! ] --- .left-column[ ## Tests ### Why? ### How?] .right-column[ - [Several tools available](https://realpython.com/python-testing/#choosing-a-test-runner) - Easy choice: built-in [unittest](https://www.geeksforgeeks.org/unit-testing-python-unittest/) - You can assert many things, even raises [(list)](https://docs.python.org/3/library/unittest.html#assert-methods) ```python import unittest from tkgeom.geometry import * class TestDistance(unittest.TestCase): def test_distance_horizontal(self): self.assertEqual(Point.distance(Point(3,4),Point(3,7)),3) def test_distance_vertical(self): self.assertEqual(Point.distance(Point(3,4),Point(2,4)),1) def test_distance_1(self): self.assertEqual(Point.distance(Point(3,4),Point(5,6)),np.sqrt(8)) if __name__ == '__main__': unittest.main() ``` ```console $ python3 -m unittest discover tests/ ............................... ---------------------------------------------------------------------- Ran 31 tests in 0.002s OK ``` ] --- template: inverse ## Docstrings, Documentation --- .left-column[ ## Docstrings ] .right-column[ - Basically a comment - Documents specific segment - Not stripped from source tree when parsed - Can be inspected at runtime - Interactive help system ```python >>> import numpy as np >>> ?np.array >>> np.array.__doc__ ``` Describes (some are optional) - Parameters - Attributes - Returns - Raises - Notes - See also - Examples [doctest](https://docs.python.org/2/library/doctest.html) can parse `>>>` and run it for testing. ] --- .left-column[ ## Docstrings ### Formats ] .right-column[ - [Commenting and Docstrings](https://realpython.com/documenting-python-code/) is a big and important topic with some [conventions](https://www.python.org/dev/peps/pep-0257/) - If you want your docstring to be parsed, you have to pick follow some style. - reStructuredText: official python standard. Not really a beginner choice. - Google: better - Numpy: better - These are all supported by Sphinx (comes later) My personal choice was Numpy ([detailed guidelines](https://numpydoc.readthedocs.io/en/latest/format.html)) ] --- .left-column[ ## Docstrings ### Formats ### Example ] .right-column[ ```python class Segment(object): """ A class used to represent a Segment. Parameters ---------- p : Point() first end point of Segment q : Point() second end point of Segment Attributes ---------- p : Point() first end point of Segment q : Point() second end point of Segment slope: float slope of the line (np.Inf if vertical) intercept: float intercept on the y axis (intercept on the x axis if vertical) points: list of Point() list of p and q """ ``` Link to other methods, attributes etc (`:meth:`,`:attr:`) ```restructuredtext :meth:`Pin.add_region()` ``` ] --- .left-column[ ## Docstrings ### Formats ### Example ## Docs ] .right-column[ - If docstrings are written, you are basically done. - [Sphinx](https://www.sphinx-doc.org/en/master/usage/quickstart.html) ```bash $ mkdir docs $ cd docs $ sphinx-quickstart ``` Pick no for ```> Separate source and build directories (y/n) [n]: n``` ```console $ ls _build conf.py index.rst make.bat Makefile _static _templates ``` Modify [`conf.py`](https://github.com/ezsolti/TKworkshop/blob/master/docs/conf.py) by adding extensions (for [notebooks](https://nbsphinx.readthedocs.io/en/0.4.2/) or [markdown](https://www.sphinx-doc.org/en/master/usage/markdown.html), may need install), change template etc. ```python import os import sys sys.path.insert(0, os.path.abspath('..')) extensions = ['nbsphinx','recommonmark','sphinx.ext.autodoc', 'sphinx.ext.coverage', 'sphinx.ext.napoleon','IPython.sphinxext.ipython_console_highlighting'] source_suffix = { '.rst': 'restructuredtext', '.txt': 'markdown', '.md': 'markdown', } ``` ] --- .left-column[ ## Docstrings ### Formats ### Example ## Docs ] .right-column[ Write some reStructuredText: [index.rst](https://github.com/ezsolti/TKworkshop/blob/master/docs/index.rst) ```restructuredtext tkgeom: An example python package ================================= some text Contents ======== Quick start ----------- .. toctree:: :maxdepth: 1 quickstart.rst ex0_geometry.ipynb Api doc ------- .. toctree:: :maxdepth: 2 point.rst segment.rst circle.rst rectangle.rst ``` ] --- .left-column[ ## Docstrings ### Formats ### Example ## Docs ] .right-column[ Write some more reStructuredText: [point.rst](https://github.com/ezsolti/TKworkshop/blob/master/docs/point.rst) (Note: toc-tree: table of content) ```restructuredtext geometry.Point() ================ .. toctree:: :maxdepth: 2 :caption: Contents: .. autoclass:: tkgeom.geometry.Point :members: ``` Will parse the module for docstrings, and renders it. (We set the `conf.py` to find the package in the path.) ] --- .left-column[ ## Docstrings ### Formats ### Example ## Docs ] .right-column[ Build... ```console $ make html $ cd _build/html $ ls circle.html index.html quickstart.html searchindex.js _static ex0_geometry.html objects.inv rectangle.html segment.html genindex.html point.html search.html _sources ``` ... and your html webpage is ready to be opened by the browser or to be deployed. - Linking it to [readthedocs](https://readthedocs.org/) is common - Advanced note, if you want to deploy it on your github (user.github.io) page: ["By default, Jekyll doesn't build files or folders that start with underscore"](https://help.github.com/en/github/working-with-github-pages/about-github-pages-and-jekyll) - [fixwebpage_for_github.py](https://github.com/ezsolti/TKworkshop/blob/master/docs/fixwebpage_for_github.py) removes underscores - [makeezsolti.sh](https://github.com/ezsolti/TKworkshop/blob/master/docs/makeezsolti.sh) builds, copies, pushes (change path). Example: [ezsolti.github.io/tkgeom](https://ezsolti.github.io/tkgeom/) ] --- template: inverse ## Thanks for listening!


--- creation_epoch:<PHONE_NUMBER> lastmod_epoch:<PHONE_NUMBER> categories: Security title: Understanding Cryptographic Key Sizes --- I found a blog site that nicely explains why you see 1024, 2048, 128, or 256 key sizes.
Why some cryptographic keys are much smaller than others - John Graham-Cumming, cloudflare.com, September 20, 2013


The
DET
p56Lck
NOUN
inhibitor
NOUN
Dasatinib
PROPN
was
VERB
shown
VERB
to
PART
enhance
VERB
apoptosis
NOUN
induction
NOUN
by
ADP
dexamethasone
NOUN
in
ADP
otherwise
ADV
GC-
PROPN
resistant
ADJ
CLL
PROPN
cells.
NOUN
This
DET
finding
VERB
concurs
VERB
with
ADP
the
DET
observation
NOUN
by
ADP
Sade
PROPN
showing
VERB
that
DET
Notch-
PROPN
mediated
VERB
resistance
NOUN
of
ADP
a
DET
mouse
NOUN
lymphoma
NOUN
cell
NOUN
line
NOUN
could
VERB
be
VERB
overcome
VERB
by
ADP
inhibiting
VERB
p56Lck.
NOUN
det
compound
nsubjpass
appos
auxpass
aux
xcomp
compound
dobj
prep
pobj
prep
pcomp
npadvmod
amod
compound
pobj
det
amod
prep
det
pobj
prep
pobj
acl
mark
npadvmod
amod
nsubjpass
prep
det
compound
compound
compound
pobj
aux
auxpass
ccomp
prep
pcomp
dobj


Meraki
Solutions
Meraki
Solutions
Hosting
.
UI/UX
.
Solutions
.
About
.
Contact
Hosting
UI/UX
Solutions
About
Contact
Return
Design
Innovation
Research
Design
Innovation
Research
HOSTING
UI/UX
SOLUTIONS
ABOUT
CONTACT
FOOTER


About Us
Hack Street Boyz is an organization created by group of IU Southeast students. Founded in 2017, we are a young group with big aspirations. Our most recent project is iForgot, which is created by students for students. It aims to organize workload via a responsive calendar and a to-do list.
©2017 - All Rights Reserved


Let ABC and DEF be two triangles having the two angles ABC and BCA equal to the two angles DEF and EFD respectively, namely the angle ABC to the angle DEF, and the angle BCA to the angle EFD, and let them also have one side equal to one side, first that adjoining the equal angles, namely BC equal to EF.
I say that the remaining sides equal the remaining sides respectively, namely AB equals DE and AC equals DF, and the remaining angle equals the remaining angle, namely the angle BAC equals the angle EDF.
If AB does not equal DE, then one of them is greater.
Let AB be greater. Make BG equal to DE, and join GC.
Since BG equals DE, and BC equals EF, the two sides GB and BC equal the two sides DE and EF respectively, and the angle GBC equals the angle DEF, therefore the base GC equals the base DF, the triangle GBC equals the triangle DEF, and the remaining angles equal the remaining angles, namely those opposite the equal sides. Therefore the angle GCB equals the angle DFE. But the angle DFE equals the angle ACB by hypothesis. Therefore the angle BCG equals the angle BCA, the less equals the greater, which is impossible.
Therefore AB is not unequal to DE, and therefore equals it.
But BC also equals EF. Therefore the two sides AB and BC equal the two sides DE and EF respectively, and the angle ABC equals the angle DEF. Therefore the base AC equals the base DF, and the remaining angle BAC equals the remaining angle EDF.
Next, let sides opposite equal angles be equal, as AB equals DE.
I say again that the remaining sides equal the remaining sides, namely AC equals DF and BC equals EF, and further the remaining angle BAC equals the remaining angle EDF.
If BC is unequal to EF, then one of them is greater.
Let BC be greater, if possible. Make BH equal to EF, and join AH.
Since BH equals EF, and AB equals DE, the two sides AB and BH equal the two sides DE and EF respectively, and they contain equal angles, therefore the base AH equals the base DF, the triangle ABH equals the triangle DEF, and the remaining angles equal the remaining angles, namely those opposite the equal sides. Therefore the angle BHA equals the angle EFD.
But the angle EFD equals the angle BCA, therefore, in the triangle AHC, the exterior angle BHA equals the interior and opposite angle BCA, which is impossible.
Therefore BC is not unequal to EF, and therefore equals it.
But AB also equals DE. Therefore the two sides AB and BC equal the two sides DE and EF respectively, and they contain equal angles. Therefore the base AC equals the base DF, the triangle ABC equals the triangle DEF, and the remaining angle BAC equals the remaining angle EDF.
Therefore if two triangles have two angles equal to two angles respectively, and one side equal to one side, namely, either the side adjoining the equal angles, or that opposite one of the equal angles, then the remaining sides equal the remaining sides and the remaining angle equals the remaining angle.
The remaining congruence theorem, side-side-angle, includes some ambiguous cases. Suppose triangles ABC and DEF are such that sides AB and BC are equal to sides DE and EF respectively, and angle A equals angle D. If it is also known that AB is less than or equal to BC, then it follows that the two triangles are congruent. If, however, AB is greater than BC, then the two triangles need not be congruent. Euclid does not include any form of a side-side-angle congruence theorem, but he does prove one special case, side-side-right angle, in the course of the proof of proposition III.14.
Although Euclid does not include a side-side-angle congruence theorem, he does have a side-side-angle similarity theorem, namely proposition VI.7. The analogous congruence theorem could be stated as follows: If two triangles have one angle equal to one angle, two sides adjoining the equal angles equal, namely, one side adjoining the equal angles, and one opposite the equal angles, and the remaining angles either both less or both not less than a right angle, then the remaining side equals the remaining side and the remaining angles equal the remaining angles.
As in propositions I.4 and I.8, it appears that the triangles are in the same plane, but, again, that is not necessary. Indeed, this proposition is invoked in proposition XI.35 when two triangles do not lie in the same plane.


[§159-17] Records of licensees. The board may require licensees to keep the records and information as it deems necessary for the proper enforcement of this chapter. [L 1969, c 214, pt of §1]


This service is for submitting a Python script to run as a YARN application.
After clicking "submit", you'll be redirected to the application's tracking page.


| REQUIREMENT TO FILE FORM 8938 | ||
|---|---|---|
| Form 8938 - Statement of Specified Foreign Financial Assets | ||
| Applicability: | ||
If you have foreign financial assets in excess of below specified threshold limit, you are required to file Form 8938 along with your tax return. This holds good if your are filing a Form 1040 or if you qualify as resident alien in the US but file Form 1040 NR due to DTAA tie breaker rules. |
||
| Whether form 8938 is applicable to you |
|
|
If yes, the requirements and details of this form will be mailed separately to you. |
||
| Threshold Limits | ||
Note 1: Living in USA or outside USA will be determined based on your stay as on 31st Dec 2016. | ||
Note 2: You have to check applicability of 8938 at two points i.e as on year end and during the year. If even one of the condition is satisfied you have to file Form 8938. | ||
Note 3: To calculate the balance during the year, please take the peak balance of every account during the year. | ||
Note 4: To calculate the balance as on year end, please take the closing balance all accounts as on 31st Dec 2016. |


Simple table component with editing, sorting, filtering and pagination for Angular. Built with ng2-smart-table.


Table Name: tabGuardian
| Sr | Fieldname | Type | Label | Options |
|---|---|---|---|---|
| 1 | guardian_name |
Data | Guardian Name | |
| 2 | email_address |
Data | Email Address | |
| 3 | mobile_number |
Data | Mobile Number | |
| 4 | alternate_number |
Data | Alternate Number | |
| 5 | date_of_birth |
Date | Date of Birth | |
| 6 | column_break_3 |
Column Break | ||
| 7 | education |
Data | Education | |
| 8 | occupation |
Data | Occupation | |
| 9 | designation |
Data | Designation | |
| 10 | work_address |
Text | Work Address | |
| 11 | image |
Attach Image | Image | |
| 12 | section_break_13 |
Section Break | Guardian Of | |
| 13 | students |
Table | Students | Guardian Student |
| 14 | section_break_8 |
Section Break | Guardian Interests | |
| 15 | interests |
Table | Interests | Guardian Interest |
Inherits from frappe.model.document.Document
No docs
Load students
from the database
Load Students for quick view
No docs


At this section your uploaded image is displayed. For the best results, make sure your picture has a high resolution and is not overexposed to light. Also remember that currently our algorithm only works on Amstel, Brand, Corona, Grolsch, Heineken, Hertog Jan, Jupiler, Kornuit, Leffe
For more information about this project, please have a look at our GitHub page using the following link.
Go to our github| # | Brand | caps found | bottle price |
|---|---|---|---|
| {{cap.Number}} | {{cap.Brand}} | {{cap.Amount}} | € {{cap.Price}} |


A-F report cards to grade every Oklahoma public school
by Nuria Martinez-KeelEarlier coverage
Oklahoma School Report Cards are about to be released with A-F grades for every public school in the state. These grades will be based on the 2018-19 school year.
When will the report cards come out?
The Oklahoma State Board of Education must vote on whether to approve the annual A-F report cards at its monthly meeting on Monday. If the board approves the report, the Oklahoma State Department of Education will release an interactive dashboard with A-F grades for every public school. This is expected to go live at oklaschools.com by mid- to late afternoon Monday.
How are schools graded?
The report cards comprise several indicators, all of which contribute points to a school’s overall A-F grade. The state evaluates schools on academic achievement, which is based on spring test scores, and academic growth, which indicates how well students progressed in English and math assessments compared to the previous year.
A school report card also considers rates of chronic absenteeism and progress among English language learners. High schools are also graded on graduation rates and post-secondary opportunities.
What do the report card grades mean?
Schools will learn how well they stacked up with every other public school in the state, including charter schools. Those that score in the bottom 5% automatically receive an F grade and qualify for federal school improvement funding for the next three years. Any charter school that falls in the bottom 5% for three years in a row qualifies for closure.


Virtual Yoga Instructor
Rehabilitation Yoga
Home
About
Training
Evaluate
Yoga
For Better Health & Flexibility


Mandor Mountains [an21], mountain, in Mandoria, wilderness
Last updated Turn #117
Mandor Mountains [an21], mountain, in Mandoria, wilderness
------------------------------------------------------------------------
12: 2 [s2p], refugee, arrived from the east.
12: Horde of rats [ep8p], rats, number: 31, arrived from the west.
17: 2 [s2p], refugee, went west.
22: Horde of rats [ep8p], rats, number: 31, went west.
30: It has stopped raining.
Routes leaving Mandor Mountains:
North, swamp, to Barren Bogs [am21], 14 days
East, mountain, to Mandor Mountains [an22], 10 days
Garrison [dc6l], garrison, Mandor Confederacy, with six soldiers
South, mountain, to Mandor Mountains [ao21], 10 days
Garrison [fl1p], garrison, Mandor Confederacy, with eight peasants,
two pikemen
West, swamp, to Barren Bogs [an20], 14 days
Seen here:
Stack of cyclops [gp0t], cyclops, number: 13
Horde of rats [ep8p], rats, number: 31


d3dx9_39.dll missing?
Posted:
Tue Oct 14, 2008 4:56 pm
by Exempt
I get an error saying i'm missing d3dx9_39.dll. It's right after i click Play Game on the launcher.
Lol sorry found the new page a little late...
Re: d3dx9_39.dll missing?
Posted:
Tue Oct 14, 2008 5:11 pm
by Cagen
Re: d3dx9_39.dll missing?
Posted:
Tue Oct 14, 2008 5:17 pm
by Karl G.
Shwoops! I upgraded to the newest version of DirectX, so everyone should download this, unzip it and run the installer (then you can delete it).
http://www.unseenstudios.com/evidyon/download/dx_evidyon.zip
Re: d3dx9_39.dll missing?
Posted:
Wed Oct 15, 2008 10:03 am
by joeafro
so yeah, i downloaded it, and installed it, and it didnt work lol, any other suggestions?
Re: d3dx9_39.dll missing?
Posted:
Wed Oct 15, 2008 10:47 pm
by Burnt Ferret
drag and drop the d3dx9_39.dll file into your windows32 folder.


const logger = require('./../../logger.js');
const Plugin = require('./../../plugin.js');
const Command = require('./../../command.js');
/**
* SoundboardPlugin supports playing sounds by typing commands.
* The config file has to be in the form:
* @example
* {
* "sounds": [
* {
* "command": "mrgl", //command to type
* "files": //files to play for command
* [
* "sounds/murloc0.mp3",
* "sounds/murloc1.mp3"
* ]
* }
* ]
* }
*/
class SoundboardPlugin extends Plugin {
constructor() {
super("soundboard")
}
startPlugin() {
this.loadSounds()
this.isReady = true
}
stopPlugin() {
this.isReady = false
}
defaultConfig() {
return {
sounds: []
}
}
loadSounds() {
for(let sound of this.config.sounds) {
sound.last = -1
sound.noticeMeTimer = sound.noticeMeTimer || 0
this.commandContainer.add(new Command()
.setIdentifier(sound.command)
.setHandler((args, message)=>{
const soundFile = this.chooseRandomSoundFile(sound)
const channel = message.member.voiceChannel
if(channel) {
this.playSoundFile(soundFile, channel)
} else {
message.channel.send('You must be in a voice channel to do that.')
}
})
.setOptions({requiredChannelType: "guild"})
)
if(sound.files.length > 1) {
for(let i=0; i<sound.files.length; i++) {
const file = sound.files[i]
this.commandContainer.add(new Command()
.setIdentifier(sound.command+i)
.setHandler((args, message)=>{
const soundFile = sound.files[i]
const channel = message.member.voiceChannel
if(channel) {
this.playSoundFile(soundFile, channel)
} else {
message.channel.send('You must be in a voice channel to do that.')
}
})
.setOptions({requiredChannelType: "guild"})
)
}
}
}
}
/**
* Join a channel and play a sound.
* If the sound object just has one sound file it chooses that one
* else it chooses one randomly.
* @param {object} file the sound file to play
* @param {VoiceChannel} channel the channel to join
*/
playSoundFile(file, channel) {
if(this.isReady) {
this.isReady = false
channel.join().then(connection => {
const dispatcher = connection.playFile(`${this.dataDirLocation()}/${file}`)
dispatcher.on("end", end => {
channel.leave()
this.isReady = true
})
}).catch(err => logger.error(`${err} occured while playing sound.`))
}
}
/**
* Choose a sound file randomly from a sound object.
* If the sound contains only one sound file it chooses that one.
* @param {object} sound the sound object to choose the sound file from
* @returns {string} a path to the sound file
*/
chooseRandomSoundFile(sound) {
const files = sound.files
let file
if (files.length > 1) {
let index
do {
index = Math.floor(Math.random() * files.length)
} while(sound.last === index);
sound.last = index
file = files[index]
} else {
file = files[0]
}
return file
}
}
module.exports = SoundboardPlugin


1. What are the names of the columns in the Visited table?
2. Write a query that selects only the name column from the Site table.
3. Does capitalization matter for SQL queries?
Write a query that selects distinct site from the Visited table.
Write a query that displays the full names of the scientists in the Person table, ordered by family name.
Normalized salinity readings are supposed to be between 0.0 and 1.0. Write a query that selects all records from Survey with salinity values outside this range.
Hint: putting an expression in brackets, like (a<3 or a>7) makes it evaluate first, just like in algebra.
The SQL test *column-name* like *pattern* is true if the value *column-name* matches the pattern given by *pattern*; the character '%' can be used any number of times in the pattern to mean "match zero or more characters". For example, A% would match any word starting with a capital A, while %z% would match any word with 'z' anywhere in it.
The expression *column-name* not like *pattern* inverts the test. Using like, write a query that finds all the records in Visited that aren't from sites labelled 'DR-something'.
So far, we've seen how to choose columns of data, indicate the table to get those columns from, and optionally sort and filter the results. What are the commands used to start each of these four operations, and in what order do they appear in an SQL query?
After further reading, we realize that Valentina Roerich (roe) was reporting salinity as percentages. Write a query that returns all of her salinity measurements from the Survey table with the values divided by 100.
The union operator combines the results of two queries; for example, try:
select * from Person where ident="dyer" union select * from Person where ident="roe";
Use union to create a consolidated list of salinity measurements in which Roerich's, and only Roerich's, have been corrected as described in the previous challenge.
Consider a query like:
select * from someTable order by intensity;
where intensity is some real number. Where in the result should entries with NULL for intensity appear, based solely on what we know about NULL algebra?
Write a query that sorts the records in Visited by dated, omitting entries for which the date is not known (i.e., is NULL).
For reference, the commands we just learned were:
Write a query to determine the last time each site was visited, based on the Visited table.
Write a query that lists all radiation readings from the DR-1 site.


The United States established in 1840 a central office to oversee the census of the population of its states and territories. This office today is known as the United States Census Bureau. They perform a decenial census, the last one being in 2010. With this information they produce what is called PEPANNRES - Annual Estimates of the Resident Population in which they do population estimates by different geographic levels. In March 2018 they published the estimates for municipalities in the year 2017. This is exactly what we need for our analysis.
The Census Bureau makes their data available through many pages and API's. Here we are going to use the FactFinder webpage and download the data manually, but it is worth noting that there are API wrappers in Python such as:
If you want to get the data manually it is available in the following LINK. However, it is included as a zip file in the repository for reproducibility purposes.
import pandas as pd
import os
import unidecode
The data is stored in a compressed form, we need to extract it and save it in a place where we can use it.
Steps:
unzip
commanddata/
folder ---- -d data/
commandos.system("unzip ../data/PEP_2017_PEPANNRES.zip -d ../data/")
pd.read_csv
is a function from the pandas package that allows us to load Comma Separated Values (CSV) files into Python with ease. The head()
method let's us see the top rows of the data frame.
data = pd.read_csv("../data/PEP_2017_PEPANNRES.csv", encoding='latin-1')
data.head()
Spanish is a beautiful language, however, when dealing with names when programming, sometimes it's hard given some inconsistencies. This comes because of a wrong encoding of the files, typing some of the names in English and some in Spanish, or simply skiping 'weird' characters. To deal with this inconsistencies, we convert the names to their english-letter representation and to an upper case. This way we standarize all the names for all the files.
Steps:
municipalities = []
for i in range(0, 78):
muni_raw = data['GEO.display-label'][i].split(" Municipio, Puerto Rico")[0]
muni_clean = unidecode.unidecode(muni_raw)
muni_upper = muni_clean.upper()
municipalities.append(muni_upper)
data['ResidencePlace'] = municipalities
data_processed = data[['ResidencePlace', 'respop72017']]
data_processed.head()
Let's save the population estimates for 2017 to use the file later in our pipeline
data_processed.to_csv("../data/census.csv")
Finally, clean the data directory to only remain with the files we need to reproduce this analysis and produce it's output.
os.system("rm ../data/PEP_2017_PEPANNRES.csv ../data/PEP_2017_PEPANNRES_metadata.csv ../data/PEP_2017_PEPANNRES.txt ../data/aff_download_readme.txt")
1) What is the municipality with the highest population? How about the least?
2) Which municipality changed the most between 2016 and 2017?
3) How about between 2010 and 2017?
4) Can you find the municipality that has stayed the most stable (less variability) between all these years?
5) Are there some municipalities consistingly losing people and other winning them?
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.


| GUI Layout Toolbox 2.2.1 |
1: Panels |
|
| 1.1 uix.Panel | Arrange a single element inside a standard panel |
| 1.2 uix.CardPanel | Show one element (card) from a list |
| 1.3 uix.BoxPanel | Arrange a single element in a panel with boxed title |
| 1.4 uix.TabPanel | Arrange elements in a panel with tabs for selecting which is visible |
2: Boxes |
|
| 2.1 uix.HBox | Arrange elements horizontally in a single row |
| 2.2 uix.VBox | Arrange elements vertically in a single column |
| 2.3 uix.HBoxFlex | Arrange elements horizontally with draggable dividers |
| 2.4 uix.VBoxFlex | Arrange elements vertically with draggable dividers |
| 2.5 uix.HButtonBox | Arrange buttons horizontally in a single row |
| 2.6 uix.VButtonBox | Arrange buttons vertically in a single column |
3: Grids |
|
| 3.1 uix.Grid | Arrange elements in a two dimensional grid |
| 3.2 uix.GridFlex | Arrange elements in a two dimensional grid with draggable dividers |
4: Other functions |
|
| 4.1 uix.Empty | Create an empty space |
| 4.2 layoutRoot | Return the folder containing the GUI layout toolbox |
| Front page | [Top] | uix.Panel |


So you bought a new flat-screen TV... Congratulations! Nothing enhances your entertainment experience like a huge flat-panel TV. You probably had to make a few choices along the way. What technology do I want? What size do I want or need? Here's another question we get asked quite often: "Should I wall mount my new TV?".
Here's three reasons why you should wall mount your TV:
Get the most out of your flat-panel TV by mounting it on the wall for optimal performance. Today's wall mounts can extend, tilt and swivel, making it easy to find the best viewing angle and reduce glare from lights or windows.
You can create valuable space on top of furniture or remove your furniture altogether for a clean, modern look in any room. Mounting your TV on the wall and out of the way is a great way to emphasize its sleek, thin design.
Protect your family by mounting your flat-panel TV securely on the wall. Its the smartest way to prevent accidental bumping or smudging.
Mentor TV offers professional delivery and wall mount installation of flat-panel TV's to customers in the Northeast Ohio area. This service typically includes our Installers quickly and professionally unpacking and setting up the TV, installing the wall mount bracket and securely attaching the TV, concealing wires inside the wall and neatly dressing any exposed wires. We proudly service the Cleveland area including Beachwood, Bratenahl, Chagrin Falls, Chardon, Concord, Eastlake, Gates Mills, Kirtland, Mayfield, Orange, Painesville, Solon, Willoughby, and Woodmere, Ohio. We invite you to visit our showroom or simply give us a call at<PHONE_NUMBER>.


Classes | |
| class | Builder |
Public Member Functions | |
| void | Register (INAuthenticateMessage message, Action< INSession > callback, Action< INError > errback) |
| void | Login (INAuthenticateMessage message, Action< INSession > callback, Action< INError > errback) |
| void | Connect (INSession session) |
| void | Connect (INSession session, Action< bool > callback) |
| void | Disconnect () |
| void | Disconnect (Action callback) |
| void | Logout () |
| void | Logout (Action< bool > callback) |
| void | Send< T > (INCollatedMessage< T > message, Action< T > callback, Action< INError > errback) |
| void | Send (INUncollatedMessage message, Action< bool > callback, Action< INError > errback) |
| override string | ToString () |
Static Public Member Functions | |
| static NClient | Default (string serverKey) |
Properties | |
| uint | ConnectTimeout [get] |
| string | Host [get] |
| string | Lang [get] |
| INLogger | Logger [get] |
| uint | Port [get] |
| string | ServerKey [get] |
| long | ServerTime [get] |
| bool | SSL [get] |
| uint | Timeout [get] |
| bool | NoDelay [get] |
| bool | Trace [get] |
| Properties inherited from Nakama.INClient | |
| uint | ConnectTimeout [get] |
| string | Host [get] |
| string | Lang [get] |
| INLogger | Logger [get] |
| uint | Port [get] |
| string | ServerKey [get] |
| long | ServerTime [get] |
| bool | SSL [get] |
| uint | Timeout [get] |
| bool | Trace [get] |
Events | |
| EventHandler | OnDisconnect |
| EventHandler< NErrorEventArgs > | OnError |
| EventHandler< NMatchmakeMatchedEventArgs > | OnMatchmakeMatched |
| EventHandler< NMatchDataEventArgs > | OnMatchData |
| EventHandler< NMatchPresenceEventArgs > | OnMatchPresence |
| EventHandler< NTopicMessageEventArgs > | OnTopicMessage |
| EventHandler< NTopicPresenceEventArgs > | OnTopicPresence |
| Events inherited from Nakama.INClient | |
| EventHandler | OnDisconnect |
| EventHandler< NErrorEventArgs > | OnError |
| EventHandler< NMatchmakeMatchedEventArgs > | OnMatchmakeMatched |
| EventHandler< NMatchDataEventArgs > | OnMatchData |
| EventHandler< NMatchPresenceEventArgs > | OnMatchPresence |
| EventHandler< NTopicMessageEventArgs > | OnTopicMessage |
| EventHandler< NTopicPresenceEventArgs > | OnTopicPresence |
Detailed Description
Definition at line 30 of file NClient.cs.
Member Function Documentation
◆ Connect() [1/2]
| void Nakama.NClient.Connect | ( | INSession | session | ) |
Implements Nakama.INClient.
Definition at line 146 of file NClient.cs.
◆ Connect() [2/2]
| void Nakama.NClient.Connect | ( | INSession | session, |
| Action< bool > | callback | ||
| ) |
Implements Nakama.INClient.
Definition at line 151 of file NClient.cs.
◆ Default()
|
static |
Definition at line 156 of file NClient.cs.
◆ Disconnect() [1/2]
| void Nakama.NClient.Disconnect | ( | ) |
Implements Nakama.INClient.
Definition at line 161 of file NClient.cs.
◆ Disconnect() [2/2]
| void Nakama.NClient.Disconnect | ( | Action | callback | ) |
Implements Nakama.INClient.
Definition at line 166 of file NClient.cs.
◆ Login()
| void Nakama.NClient.Login | ( | INAuthenticateMessage | message, |
| Action< INSession > | callback, | ||
| Action< INError > | errback | ||
| ) |
Implements Nakama.INClient.
Definition at line 139 of file NClient.cs.
◆ Logout() [1/2]
| void Nakama.NClient.Logout | ( | ) |
Implements Nakama.INClient.
Definition at line 171 of file NClient.cs.
◆ Logout() [2/2]
| void Nakama.NClient.Logout | ( | Action< bool > | callback | ) |
Implements Nakama.INClient.
Definition at line 179 of file NClient.cs.
◆ Register()
| void Nakama.NClient.Register | ( | INAuthenticateMessage | message, |
| Action< INSession > | callback, | ||
| Action< INError > | errback | ||
| ) |
Implements Nakama.INClient.
Definition at line 132 of file NClient.cs.
◆ Send()
| void Nakama.NClient.Send | ( | INUncollatedMessage | message, |
| Action< bool > | callback, | ||
| Action< INError > | errback | ||
| ) |
Implements Nakama.INClient.
Definition at line 216 of file NClient.cs.
◆ Send< T >()
| void Nakama.NClient.Send< T > | ( | INCollatedMessage< T > | message, |
| Action< T > | callback, | ||
| Action< INError > | errback | ||
| ) |
Implements Nakama.INClient.
Definition at line 190 of file NClient.cs.
◆ ToString()
| override string Nakama.NClient.ToString | ( | ) |
Definition at line 234 of file NClient.cs.
Property Documentation
◆ ConnectTimeout
|
get |
Definition at line 32 of file NClient.cs.
◆ Host
|
get |
Definition at line 34 of file NClient.cs.
◆ Lang
|
get |
Definition at line 36 of file NClient.cs.
◆ Logger
|
get |
Definition at line 38 of file NClient.cs.
◆ NoDelay
|
get |
Definition at line 82 of file NClient.cs.
◆ Port
|
get |
Definition at line 54 of file NClient.cs.
◆ ServerKey
|
get |
Definition at line 56 of file NClient.cs.
◆ ServerTime
|
get |
Definition at line 59 of file NClient.cs.
◆ SSL
|
get |
Definition at line 78 of file NClient.cs.
◆ Timeout
|
get |
Definition at line 80 of file NClient.cs.
◆ Trace
|
get |
Definition at line 84 of file NClient.cs.
Event Documentation
◆ OnDisconnect
| EventHandler Nakama.NClient.OnDisconnect |
Definition at line 40 of file NClient.cs.
◆ OnError
| EventHandler<NErrorEventArgs> Nakama.NClient.OnError |
Definition at line 42 of file NClient.cs.
◆ OnMatchData
| EventHandler<NMatchDataEventArgs> Nakama.NClient.OnMatchData |
Definition at line 46 of file NClient.cs.
◆ OnMatchmakeMatched
| EventHandler<NMatchmakeMatchedEventArgs> Nakama.NClient.OnMatchmakeMatched |
Definition at line 44 of file NClient.cs.
◆ OnMatchPresence
| EventHandler<NMatchPresenceEventArgs> Nakama.NClient.OnMatchPresence |
Definition at line 48 of file NClient.cs.
◆ OnTopicMessage
| EventHandler<NTopicMessageEventArgs> Nakama.NClient.OnTopicMessage |
Definition at line 50 of file NClient.cs.
◆ OnTopicPresence
| EventHandler<NTopicPresenceEventArgs> Nakama.NClient.OnTopicPresence |
Definition at line 52 of file NClient.cs.
The documentation for this class was generated from the following file:
- Nakama/NClient.cs


User management
Use this page to add, edit and delete users
New password must be 6-10 characters in length and contain a number, etc.
| Current users | |||
|---|---|---|---|
| Username | Active? | Roles | Actions |
| admin | ADMIN |
New password must be 6-10 characters in length and contain a number, etc.
| Current users | |||
|---|---|---|---|
| Username | Active? | Roles | Actions |
| admin | ADMIN |


The "Nick's Desk" philosophy.
Hi, my name is Nicholas Gerancher. I am a software developer as well as a web developer (not a great front end developer lol), currently developing this portfolio as you are reading it! As a developer, I have many self-developed personal habbits and principles when developing projects. For example, when starting a project, I always end up using Git and sublime text (for most web projects and some C++ projects). Git is a vital tool for me as a developer as it allows very quick and seemless transition between work stations and developers.


Basic info
{% include ui/icon.html icon="calendar" class="mr-2" %}
Went to:
{{ p.university }}
{% include ui/icon.html icon="briefcase" class="mr-2" %}
Worked at:
{{ p.company }}
{% include ui/icon.html icon="home" class="mr-2" %}
Lives in:
{{ p.city }}, {{ p.country }}
{% include ui/icon.html icon="map-pin" class="mr-2" %}
From:
{{ p.country }}


This performs the following steps:
Learning the error rate for each run separately
Inferring sequence variants for each run and sample
Merging of feature tables across runs
Consensus chimera removal
Taxa assignment with Naive Bayes
Species assignment by exact alignment
Diagnostic plots of the error rates
You will usually want to preprocess the read files first with
preprocess
.
Depending on your config the sequences might be represented by
an MD5 hash. In this case the taxa table has an additional `sequence` column
containing the real sequences.
denoise(object, ...)
| object | An experiment data table as returned by
|
|---|---|
| ... | A configuration as returned by
|
A list containing the workflow results:
Matrix of sequence variant abundances. Samples are and sequences are columns.
Matrix of taxonomy assignments. Rows are sequences and columns are taxonomy ranks.
The error profiles estimated by DADA2. One for each run and read direction (forward/reverse).
Plotted error profiles. One for each run and read direction (forward/reverse).
How many reads were kept in each step. Rows are samples and columns are workflow steps.
The proportion of sequence variants that could be where a specific taxa rank could be classified.


NCP shifts MLAs to two hotels amid fear of poaching
Amid the high political drama in Maharashtra and fear of 'poaching' of MLAs, the Nationalist Congress Party has shifted its legislators from a five-star resort to two other hotels in Mumbai.
According to sources, the NCP MLAs, who were staying at Hotel Renaissance in Powai area, have been moved to Hotel Grand Hyatt in Santacruz and Sofitel in Bandra-Kurla Complex.
Incidentally, Bharatiya Janata Party leader Ravindra Chavan was on Sunday seen entering Hotel Renaissance.
The Congress legislators are still in J W Marriott hotel in suburban Andheri, the sources said.
The Shiv Sena MLAs are currently staying at The Lalit hotel, located near the international airport in Andheri, but they may be shifted to another resort, the sources added.
Senior Congress leader Ashok Chavan on Sunday alleged that BJP leaders had booked rooms in a hotel where his party MLAs were put up and were contacting some of them.
The BJP made a return to power in a dramatic way early Saturday morning after NCP leader Ajit Pawar joined hands with the saffron party, leading to Governor Bhagat Singh Koshyari swearing in Devendra Fadnavis as chief minister and Pawar as his deputy.
Given the political scenario in the state, the role of MLAs has become far more crucial during the floor test in the 288-member House where the halfway mark is 145.
In the last month's assembly polls, the BJP won 105 seats, the Shiv Sena 56, the NCP 54 and the Congress 44.
According to sources, Independent legislators and other MLAs could tilt the scales in favour of either the BJP-led government of Fadnavis backed by Ajit Pawar or the Sena-Congress-NCP combine during the floor test.


Menhir Wall
Summon a wall of lesser rune stones to block and distract enemies.{^n}{^y}These stones can cast elemental bolts, but need Energy to do so. The Runic Golem can provide it.
^a${value} Second(s) Recharge
15
${value} Energy Cost
72 74 76 78 80 82 84 86 88 90 92 94 96 98 100 102 104 106 108 110
Life Time ${value} Seconds
30
MaxLevel
16
UltimateLevel
20


Perfume Global Project WebGL
dance performanced by perfume.
using dance motion and sound from
here
please follow original licence as described above site.


About Me
My Favourite Books
My Family
My Pets
Easter
My Favourite books
Epic Books
Harry Potter
Goosebumps
Northern Lights
Top Three Books
Position
Name
Rating
Images
1
Harry Potter
8/10
2
Goosebumps
10/10
3
Northern> Lights
5/10