We are uncovering better ways to making digital health data more clinically useful by doing it and helping others. Through this work we have come to value:
Transparency And Clarity over ambiguity and obscurity.
Open Community Collaboration over top-down standardization.
Extensible frameworks over static standards.
Simplicity over complexity.
Rough consensus and running code over bureaucratic black boxes
Utility for patients and clinicians today over building the perfect system without feedback
Patient originated data over entirely clinically generated
We value the items more on the left than on the right.
Authors include: Deborah Estrin, Ida Sim, David Haddad, Emerson Farrugia, Jasper Speicher, Peter Chislett, Katie McCurdy, Chris Schaefbauer. With the help and refinement of Open mHealth community.
This site was created by David Haddad and was inspired by the Agile Manifesto. Feel free to copy, forward and share. (c) 2016


A simple web dashboard to monitor your Nexus switches.
Features
Drop-in Installation
No command-line. No packages. Simply drop linux-dash into your web directory and enjoy.
Customizable Layout
Drag and drop each widget to customize the layout. Turn widgets on or off to meet your personal preference.
Beautiful, Responsive Interface
Monitor your server from a beautiful bootstrap template. Just as clean from your smartphone, desktop, or laptop.
Monitor Key Metrics
Monitor your server with 15+ widgets.
Know up-to-date metrics for your CPU, RAM, disk, Network, and more.


Fan Speed
Current Speed
Average Speed (5min)
CPU Temperature
Current Temperature
Average Temperature (5min)


Read the Docs Sphinx Theme¶
This Sphinx theme was designed to provide a great reader experience for documentation users on both desktop and mobile devices. This theme is used primarily on Read the Docs but can work with any Sphinx project. You can find a working demo of the theme in the theme documentation
Installation¶
This theme is distributed on PyPI and can be installed with pip
:
$ pip install sphinx-rtd-theme
To use the theme in your Sphinx project, you will need to add the following to
your conf.py
file:
import sphinx_rtd_theme
extensions = [
...
"sphinx_rtd_theme",
]
html_theme = "sphinx_rtd_theme"
For more information read the full documentation on installing the theme
Configuration¶
This theme is highly customizable on both the page level and on a global level. To see all the possible configuration options, read the documentation on configuring the theme.
Contributing¶
If you would like to help modify or translate the theme, you’ll find more information on contributing in our contributing guide.


minimize(fun, x0, args=(), method=None, jac=None, hess=None, hessp=None,
bounds=None, constraints=(), tol=None, callback=None, options=None)
Minimization of scalar function of one or more variables.
Parameters
----------
fun : callable
Objective function.
x0 : ndarray
Initial guess.
args : tuple, optional
Extra arguments passed to the objective function and its
derivatives (Jacobian, Hessian).
method : str or callable, optional
Type of solver. Should be one of
- 'Nelder-Mead'
- 'Powell'
- 'CG'
- 'BFGS'
- 'Newton-CG'
- 'Anneal (deprecated as of scipy version 0.14.0)'
- 'L-BFGS-B'
- 'TNC'
- 'COBYLA'
- 'SLSQP'
- 'dogleg'
- 'trust-ncg'
- custom - a callable object (added in version 0.14.0)
If not given, chosen to be one of ``BFGS``, ``L-BFGS-B``, ``SLSQP``,
depending if the problem has constraints or bounds.
jac : bool or callable, optional
Jacobian (gradient) of objective function. Only for CG, BFGS,
Newton-CG, L-BFGS-B, TNC, SLSQP, dogleg, trust-ncg.
If `jac` is a Boolean and is True, `fun` is assumed to return the
gradient along with the objective function. If False, the
gradient will be estimated numerically.
`jac` can also be a callable returning the gradient of the
objective. In this case, it must accept the same arguments as `fun`.
hess, hessp : callable, optional
Hessian (matrix of second-order derivatives) of objective function or
Hessian of objective function times an arbitrary vector p. Only for
Newton-CG, dogleg, trust-ncg.
Only one of `hessp` or `hess` needs to be given. If `hess` is
provided, then `hessp` will be ignored. If neither `hess` nor
`hessp` is provided, then the Hessian product will be approximated
using finite differences on `jac`. `hessp` must compute the Hessian
times an arbitrary vector.
bounds : sequence, optional
Bounds for variables (only for L-BFGS-B, TNC and SLSQP).
``(min, max)`` pairs for each element in ``x``, defining
the bounds on that parameter. Use None for one of ``min`` or
``max`` when there is no bound in that direction.
constraints : dict or sequence of dict, optional
Constraints definition (only for COBYLA and SLSQP).
Each constraint is defined in a dictionary with fields:
type : str
Constraint type: 'eq' for equality, 'ineq' for inequality.
fun : callable
The function defining the constraint.
jac : callable, optional
The Jacobian of `fun` (only for SLSQP).
args : sequence, optional
Extra arguments to be passed to the function and Jacobian.
Equality constraint means that the constraint function result is to
be zero whereas inequality means that it is to be non-negative.
Note that COBYLA only supports inequality constraints.
tol : float, optional
Tolerance for termination. For detailed control, use solver-specific
options.
options : dict, optional
A dictionary of solver options. All methods accept the following
generic options:
maxiter : int
Maximum number of iterations to perform.
disp : bool
Set to True to print convergence messages.
For method-specific options, see :func:`show_options()`.
callback : callable, optional
Called after each iteration, as ``callback(xk)``, where ``xk`` is the
current parameter vector.
Returns
-------
res : OptimizeResult
The optimization result represented as a ``OptimizeResult`` object.
Important attributes are: ``x`` the solution array, ``success`` a
Boolean flag indicating if the optimizer exited successfully and
``message`` which describes the cause of the termination. See
`OptimizeResult` for a description of other attributes.
See also
--------
minimize_scalar : Interface to minimization algorithms for scalar
univariate functions
show_options : Additional options accepted by the solvers
Notes
-----
This section describes the available solvers that can be selected by the
'method' parameter. The default method is *BFGS*.
**Unconstrained minimization**
Method *Nelder-Mead* uses the Simplex algorithm [1]_, [2]_. This
algorithm has been successful in many applications but other algorithms
using the first and/or second derivatives information might be preferred
for their better performances and robustness in general.
Method *Powell* is a modification of Powell's method [3]_, [4]_ which
is a conjugate direction method. It performs sequential one-dimensional
minimizations along each vector of the directions set (`direc` field in
`options` and `info`), which is updated at each iteration of the main
minimization loop. The function need not be differentiable, and no
derivatives are taken.
Method *CG* uses a nonlinear conjugate gradient algorithm by Polak and
Ribiere, a variant of the Fletcher-Reeves method described in [5]_ pp.
120-122. Only the first derivatives are used.
Method *BFGS* uses the quasi-Newton method of Broyden, Fletcher,
Goldfarb, and Shanno (BFGS) [5]_ pp. 136. It uses the first derivatives
only. BFGS has proven good performance even for non-smooth
optimizations. This method also returns an approximation of the Hessian
inverse, stored as `hess_inv` in the OptimizeResult object.
Method *Newton-CG* uses a Newton-CG algorithm [5]_ pp. 168 (also known
as the truncated Newton method). It uses a CG method to the compute the
search direction. See also *TNC* method for a box-constrained
minimization with a similar algorithm.
Method *Anneal* uses simulated annealing, which is a probabilistic
metaheuristic algorithm for global optimization. It uses no derivative
information from the function being optimized.
Method *dogleg* uses the dog-leg trust-region algorithm [5]_
for unconstrained minimization. This algorithm requires the gradient
and Hessian; furthermore the Hessian is required to be positive definite.
Method *trust-ncg* uses the Newton conjugate gradient trust-region
algorithm [5]_ for unconstrained minimization. This algorithm requires
the gradient and either the Hessian or a function that computes the
product of the Hessian with a given vector.
**Constrained minimization**
Method *L-BFGS-B* uses the L-BFGS-B algorithm [6]_, [7]_ for bound
constrained minimization.
Method *TNC* uses a truncated Newton algorithm [5]_, [8]_ to minimize a
function with variables subject to bounds. This algorithm uses
gradient information; it is also called Newton Conjugate-Gradient. It
differs from the *Newton-CG* method described above as it wraps a C
implementation and allows each variable to be given upper and lower
bounds.
Method *COBYLA* uses the Constrained Optimization BY Linear
Approximation (COBYLA) method [9]_, [10]_, [11]_. The algorithm is
based on linear approximations to the objective function and each
constraint. The method wraps a FORTRAN implementation of the algorithm.
Method *SLSQP* uses Sequential Least SQuares Programming to minimize a
function of several variables with any combination of bounds, equality
and inequality constraints. The method wraps the SLSQP Optimization
subroutine originally implemented by Dieter Kraft [12]_. Note that the
wrapper handles infinite values in bounds by converting them into large
floating values.
**Custom minimizers**
It may be useful to pass a custom minimization method, for example
when using a frontend to this method such as `scipy.optimize.basinhopping`
or a different library. You can simply pass a callable as the ``method``
parameter.
The callable is called as ``method(fun, x0, args, **kwargs, **options)``
where ``kwargs`` corresponds to any other parameters passed to `minimize`
(such as `callback`, `hess`, etc.), except the `options` dict, which has
its contents also passed as `method` parameters pair by pair. Also, if
`jac` has been passed as a bool type, `jac` and `fun` are mangled so that
`fun` returns just the function values and `jac` is converted to a function
returning the Jacobian. The method shall return an ``OptimizeResult``
object.
The provided `method` callable must be able to accept (and possibly ignore)
arbitrary parameters; the set of parameters accepted by `minimize` may
expand in future versions and then these parameters will be passed to
the method. You can find an example in the scipy.optimize tutorial.
.. versionadded:: 0.11.0
References
----------
.. [1] Nelder, J A, and R Mead. 1965. A Simplex Method for Function
Minimization. The Computer Journal 7: 308-13.
.. [2] Wright M H. 1996. Direct search methods: Once scorned, now
respectable, in Numerical Analysis 1995: Proceedings of the 1995
Dundee Biennial Conference in Numerical Analysis (Eds. D F
Griffiths and G A Watson). Addison Wesley Longman, Harlow, UK.
191-208.
.. [3] Powell, M J D. 1964. An efficient method for finding the minimum of
a function of several variables without calculating derivatives. The
Computer Journal 7: 155-162.
.. [4] Press W, S A Teukolsky, W T Vetterling and B P Flannery.
Numerical Recipes (any edition), Cambridge University Press.
.. [5] Nocedal, J, and S J Wright. 2006. Numerical Optimization.
Springer New York.
.. [6] Byrd, R H and P Lu and J. Nocedal. 1995. A Limited Memory
Algorithm for Bound Constrained Optimization. SIAM Journal on
Scientific and Statistical Computing 16 (5): 1190-1208.
.. [7] Zhu, C and R H Byrd and J Nocedal. 1997. L-BFGS-B: Algorithm
778: L-BFGS-B, FORTRAN routines for large scale bound constrained
optimization. ACM Transactions on Mathematical Software 23 (4):
550-560.
.. [8] Nash, S G. Newton-Type Minimization Via the Lanczos Method.
1984. SIAM Journal of Numerical Analysis 21: 770-778.
.. [9] Powell, M J D. A direct search optimization method that models
the objective and constraint functions by linear interpolation.
1994. Advances in Optimization and Numerical Analysis, eds. S. Gomez
and J-P Hennart, Kluwer Academic (Dordrecht), 51-67.
.. [10] Powell M J D. Direct search algorithms for optimization
calculations. 1998. Acta Numerica 7: 287-336.
.. [11] Powell M J D. A view of algorithms for optimization without
derivatives. 2007.Cambridge University Technical Report DAMTP
2007/NA03
.. [12] Kraft, D. A software package for sequential quadratic
programming. 1988. Tech. Rep. DFVLR-FB 88-28, DLR German Aerospace
Center -- Institute for Flight Mechanics, Koln, Germany.
Examples
--------
Let us consider the problem of minimizing the Rosenbrock function. This
function (and its respective derivatives) is implemented in `rosen`
(resp. `rosen_der`, `rosen_hess`) in the `scipy.optimize`.
>>> from scipy.optimize import minimize, rosen, rosen_der
A simple application of the *Nelder-Mead* method is:
>>> x0 = [1.3, 0.7, 0.8, 1.9, 1.2]
>>> res = minimize(rosen, x0, method='Nelder-Mead')
>>> res.x
[ 1. 1. 1. 1. 1.]
Now using the *BFGS* algorithm, using the first derivative and a few
options:
>>> res = minimize(rosen, x0, method='BFGS', jac=rosen_der,
... options={'gtol': 1e-6, 'disp': True})
Optimization terminated successfully.
Current function value: 0.000000
Iterations: 52
Function evaluations: 64
Gradient evaluations: 64
>>> res.x
[ 1. 1. 1. 1. 1.]
>>> print res.message
Optimization terminated successfully.
>>> res.hess
[[ 0.00749589 0.01255155 0.02396251 0.04750988 0.09495377]
[ 0.01255155 0.02510441 0.04794055 0.09502834 0.18996269]
[ 0.02396251 0.04794055 0.09631614 0.19092151 0.38165151]
[ 0.04750988 0.09502834 0.19092151 0.38341252 0.7664427 ]
[ 0.09495377 0.18996269 0.38165151 0.7664427 1.53713523]]
Next, consider a minimization problem with several constraints (namely
Example 16.4 from [5]_). The objective function is:
>>> fun = lambda x: (x[0] - 1)**2 + (x[1] - 2.5)**2
There are three constraints defined as:
>>> cons = ({'type': 'ineq', 'fun': lambda x: x[0] - 2 * x[1] + 2},
... {'type': 'ineq', 'fun': lambda x: -x[0] - 2 * x[1] + 6},
... {'type': 'ineq', 'fun': lambda x: -x[0] + 2 * x[1] + 2})
And variables must be positive, hence the following bounds:
>>> bnds = ((0, None), (0, None))
The optimization problem is solved using the SLSQP method as:
>>> res = minimize(fun, (2, 0), method='SLSQP', bounds=bnds,
... constraints=cons)
It should converge to the theoretical solution (1.4 ,1.7).


The following commands manipulate defmessage-handlers.
LIST-DEFMESSAGE-HANDLERS
PPDEFMESSAGE-HANDLER
PREVIEW-SEND
UNDEFMESSAGE-HANDLER


--- layout: post title: Surge 2010 date: 2010-02-27 21:42:46.000000000 +01:00 categories: - blog tags: - iit-k - iitk - nit - surge - surge-iitk-iit-kanpur-nit-results status: publish type: post published: true meta: _edit_last: '1' author: ---
UPDATE: Results declared!
UPDATE: From the IIT-K Surge Site:
The results of SURGE 2010, for Non-IITK students, will be declared on Tuesday, 6th April 2010. Thank you for your patience and sorry for the delay.
Update: The results of SURGE 2010, for Non-IITK students, will be declared by the end of March 2010.
Its been over two years since I first blogged about surge 2008. I followed it up with another one on surge 2009 after seeing the traffic on that particular post. Here is the info on the series about surge 2010.
First and foremost, What is Surge?
Summer Undergraduate Research Grant for Excellence
SURGE at IIT Kanpur
The Under the Summer Undergraduate Research Grant for Excellence (SURGE) program, undergraduate students from IITK and other participating institutions will undertake short duration, but focused research projects and push their intellectual abilities beyond those driven by the classroom. The duration is 10 weeks from early-May to end-July of each year. Students working at IITK will receive a stipend of Rs.10,000 for the entire 10-week duration; an additional Rs.10,000 Award plus a commendation certificate will be given to those SURGE students who produce exceptional quality research during the 10 weeks. IITK students in overseas institutions will receive a stipend as fixed by the agreement between IITK and the participating institutes.
Surge has added a couple of more foreign institutes to its list in 2010. Now the Universities for SURGE 2010 are California Institute of Technology (http://www.caltech.edu), Ecole Polytechnique (http://www.polytechnique.edu), Ecole Centrale de Paris (http://www.ecp.fr) and Rice University (http://www.rice.edu).
However the above is available only to IIT-K students.
Surge 2010 has a new feature! People from other colleges can also apply to Surge. Also, now First year M.Sc/ MA can also apply to Surge. Earlier only B.Tech students of NITs could apply for surge.
Unfortunately it seems that this year's application dates are over :(
The completed application form along with the paper copies will be due on/before February 12, 2010.
Students studying in the following colleges are eligible to apply for the SURGE program in 2010 at IIT Kanpur. Please note that students from any department of these colleges can apply to any department at IIT Kanpur.
The SURGE program is open to all students currently in their 2nd year and 3rd year of bachelors (BA/B.Sc/B.E/B.Tech) or 1st year of M.Sc/MA.
Students from all IITs, NITs, IISERs and NISERs are eligible to apply for the SURGE program. In addition, students from the following colleges may also apply.
The list of colleges that are eligible for Surge application are:
1. Aligarh Muslim University, Aligarh
2. Amrita Institute, Coimbatore
3. Andhra University
4. Anna University
5. Banaras Hindu University (all departments including IT-BHU)
6. Bengal Engineering and Science University, Shibpur
7. Bharadidasan University
8. Birla Institute of Technology & Science, Pilani
9. Birla Institute of Technology and Science, Pilani - Goa Campus
10. Birla Institute of Technology Mesra, Ranchi
11. Birsa Institute of Technology, Sindri
12. Burdwan University
13. BV Bhoomaraddi College of Engineering and Technology, Hubli
14. Chennai Mathematical Institute (CMI), Chennai
15. Cochin University, Kochi
16. College of ceramic technology Kolkata
17. College of Engineering, Pune
18. College of Engineering, Trivandrum
19. College of Technology, G B Pant University
20. CSJM University, Kanpur
21. Delhi College of Engineering
22. Delhi School of Economics
23. Delhi University
24. Dhirubhai Ambani Institute of Infomation and Communication Technology, Gandhinagar
25. Govt. College of Engg. Salem (Metallurgical Engg.)
26. Gulbarga University
27. Guru Nanak Dev Engineering College, Ludhiana, Punjab
28. HBTI, Kanpur
29. Indian Statistical Institute (ISI), Kolkata
30. Indian Statistical Institute (ISI),Bangalore
31. Indian Statistical Institute Delhi
32. Indira Gandhi Institute of Development Research Mumbai
33. Institute of Mathematics and Application, Bhubaneshwar
34. International Institute of Information Technology Hyderabad
35. Jadavpur University
36. Jawaharlal Nehru Technical University (JNTU), Hyderabad
37. Jawaharlal Nehru University
38. Kalinga Institute of Industrial Technology University, Bhubaneswar
39. Lucknow University
40. Madras School of economics
41. Madurai Kamaraj University
42. Mahatma Gandhi University, Kottayam.
43. Mangalore University
44. Manipal University
45. MIT, Anna University, Chennai
46. MS University Baroda
47. National Institute of Foundry and Forge Technology, Ranchi
48. National Institute of Industrial Engineering (NITIE), Mumbai
49. Osmania University
50. Pondicherry University
51. Presidency College, Kolkata
52. PSG College of Technology, Coimbatore
53. Punjab Engineering College
54. Punjab University
55. Rajiv Gandhi Institute of Petroleum Technology
56. Sardar Patel University, Vallabh Vidyanagar
57. Saurashtra University, Rajkot, Gujarat
58. St. Stephens College
59. St. Xavier's College, Kolkata
60. St. Xavier's College, Mumbai.
61. Thapar Institute of Engineering and technology
62. The Laxmi Nivas Mittal Institute of Information Technology, Jaipur
63. Thiyagarajar College of Engg, Madurai
64. UIET, Kanpur University
65. University College of Science & Tech, Calcutta University
66. University Department of Chemical Technology
67. University of Bombay
68. University of Calcutta
69. University of Hyderabad
70. University of Madras, Chennai
71. University of Pune
72. Veer Jijamata Technical Institute, Mumbai
73. Vellore Institute of Technology
74. Visva-Bharati University, Santiniketan
75. West Bengal University of Technology


In all her glory, but there is nothing in here yet, go back to my main page.
To make that I simply use the already knows methods to go back to my main page


Home
Convert Audio to Text
Make sure your audio is .wav and with length under 1 minute, otherwise we can't transcribe it.
{% for message in get_flashed_messages() %}
{{ message }}
{% endfor %}
Choose language
English
Indonesia
TRANSCRIBE
{% if transcript != "" %}
Result
{{ filenames }} :
{{ transcript }}
{% endif %}


You username is required.
* By hitting submit you are agreeing to the Ultimate Totals service aggreement.


Accountant with 20+ years of experience. Passionate about programming and IT. Looking for opportunities to develop in that field.
Apart from working as an accountant and studying programming, I really enjoy active lifestyle including traveling, windsurfing and tracking. Also jogging and swimming are part of my weekly routine.
When forced indoors, I follow a number of sci-fi, fantasy and drama genre movies and television shows. I also get a lot of pleasure from my pets.


This is a test
addind a list
a level 1
a level 2
another level 2
alevel 3
another level 1
Now testing special charactersàéèöôî
Now testing special characters
àéèöôî


Sagebrush High School Class of 1987 graduates Romy White (Mira Sorvino) and Michele Weinberger (Lisa Kudrow) share a dream. Along with everyone else who was ever snubbed by the popular clique in school, they want to get even.
So the duo determine to bury their true underachieving selves and attend their 10-year reunion in Tucson as brilliant businesswomen who've made a fortune in L.A. After all, says Romy, ``What's the point of going if we're not going to impress people?''
And so begins ``Romy and Michele's High School Reunion,'' which could just as easily have been called ``Ditzy and Ditzier.'' Friends since their teens, when Romy was chubby and Michele was stuck in a squeaky neck brace, the two have spent the past decade clubhopping, working run-of-the-mill jobs and wearing out their video of ``Pretty Woman.''
Living large has never been in their picture, but ``we never had a really good reason like a reunion to motivate us,'' says Romy.
Now, Romy has decided to go on a fat-free diet: ``nothing but Gummi Bears, jelly beans and candy corn.'' Michele has made stylish power-suits on her sewing machine. A Jaguar convertible has been borrowed for transportation.
Getting a hot boyfriend to escort them isn't so simple, however. Romy applies to MTV's ``Singled Out,'' only to be rebuffed by a production assistant, who sneers, ``Our cut-off age is 25. Try VH1.'' Lines like that give ``Romy and Michele'' the kind of hip cache that made ``Clueless'' all the rage two years ago.
Consumed by the grand delusion that they're much cooler than they actually are, Romy and Michele could easily have been turned into self-indulgent culture vultures, but writer Robin Schiff manages to keep them delightfully quirky.
After such a portentous build-up, however, the reunion itself seems a little flat. Most of what you might expect to happen happens: the one-time dreamboat is now an alcoholic, the class nerd has struck it rich, etc. Even with only 91 minutes to fill, Schiff runs out of plot and has to throw in an overextended fantasy sequence to keep things going.
As it is, the movie's best moments are often incidental, as when Michele goes job-hunting in Beverly Hills or Romy evades a pick-up artist by hobbling away, telling him ``Excuse me, I cut my foot earlier and my shoe is filling up with blood.''
Best of all is a tense argument between the women about who's the cutest one, or rather who's ``the Mary'' and who's ``the Rhoda.''
Much of the comedy's success stems from Sorvino, who proves her Oscar for ``Mighty Aphrodite'' was not a one-shot triumph. Her delivery and timing are absolutely impeccable, and Sorvino seems to empathize with Romy's compulsion to dazzle. ``If anybody needs to make a call, I've got a phone,'' Romy announces to sarcastic ``A-group'' witches she's trying to impress, completely unaware that the device lost its ``wow'' factor years ago.
Kudrow makes the best of Michele, but the character is not far removed from her TV role as Phoebe on ``Friends,'' and Schiff shortchanges Michele in the wisecrack department.
The most acidic quips go to the priceless Janeane Garofalo, as the endlessly crabby Heather Mooney, who holds a grudge against Sagebrush High in general and herself in particular. As she proved in ``Reality Bites'' and ``The Truth About Cats and Dogs,'' nobody does self-loathing better than Garofalo, and her few scenes spark the picture.
Like the concurrent reunion-themed ``Grosse Pointe Blank,'' ``Romy and Michele'' features a marvelous soundtrack of '80s anthems, from the Vapors' ``Turning Japanese'' and the Pretenders ``Don't Get Me Wrong'' to Kenny Loggins' ``Footloose,'' which Romy and Michele struggle in vain to sing along with.
Even when the comedy runs out of steam, it's hard to knock any movie that dares to include not one, but two totally awsome hits by Bananarama, the Romy and Michele of pop.
James Sanford
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


[CHAPTER 346G]
HOSPITAL SUSTAINABILITY PROGRAM
Section
346G-1 Title
346G-2 Findings and declaration of necessity
346G-3 Definitions
346G-4 Hospital sustainability program special fund
346G-5 Hospital sustainability fee
346G-6 Hospital sustainability fee assessments
346G-7 Federal approval
346G-8 Multifacility locations
346G-9 Penalties for failure to pay the hospital
sustainability fee
346G-10 Private hospital payments through enhanced rates
to medicaid managed care health plans
346G-11 Special designation of hospital sustainability
program special fund
346G-12 Termination
346G-13 Severability
Note
Chapter repealed June 30, 2019, except for §346G-4, which is repealed December 31, 2019. L 2012, c 217, §5; L 2013, c 141, §2; L 2014, c 123, §2; L 2015, c 70, §2; L 2016, c 60, §3; am L 2017, c 59, §5.


Certificates and Documents
Pilot Currency
To act as pilot in command of a glider you must have:
- Your pilot certificate
- Some form of photo-ID
- A bi-annual flight review logged in the last 24 calendar months
- Logged currency experience
- To carry passengers this is 3 takeoffs and 3 landings in the past 90 days
Reimbursement
The private pilot cannot pay more than the pro-rata share of operating expenses for the flight. This includes:
- Aircraft rental fees
- Tow fees
- Fuel/oil costs for self-launch gliders
Some exceptions:
- Search and rescue operations conducted by the CAP
- Glider towing
Aircraft Airworthiness
Remember AROW or (ARROW for outside the U.S.):
- A: Airworthiness Certificate - Must be viewable in the aircraft
- R: Registration Certificate
- State Registration (if applicable)
- Federal Registration
- R*: Radio operators certificate
- If flying outside of the U.S.
- O: Operating Limitations of the aircraft
- A POH must be in the aircraft if it’s available
- If not, we can use the cockpit placards as a substitute
- W: Weight and Balance informations
Aircraft placards must be legible.


Taking up a hobby like painting isn’t just for the creative types. The more analytical left-brainers can stimulate and nurture their creative growth by painting as well.
Cameras are complicated. I just couldn’t capture what I saw through my viewfinder. When I managed to work it all out, I started taking some pretty spectacular images.
To someone who has never worked with video, the editing process can seem mysterious and overwhelming. And you only need to understand a few basic techniques and principles to get started.
I believe that, for some reason, the idea of writing a book is viewed differently than other forms of art and entertainment. Most people agree that painting a portrait is a difficult, involved process that takes patience


Hield fined $25,000 by NBA for kicking ball into stands
by Associated PressSacramento guard Buddy Hield has been fined $25,000 by the NBA for kicking the ball into the stands following the Kings’ victory over Boston.
The ball bounced toward midcourt after Marcus Smart’s potential winning shot bounced off the rim Sunday. Hield chased it down and kicked it into the crowd.
The penalty was announced Monday by Kiki VanDeWeghe, the NBA’s executive vice president of basketball operations.
Hield scored a season-high 35 points in Sacramento’s 100-99 victory that snapped the Celtics’ 10-game winning streak.


{% extends "project/web_questionnaire_questions.html" %} {% load i18n %} {% block action_section_block %}
{% trans 'This is only a preview. To send in data, Go to the "Data" tab, then to "Web Submission".' %}


Please log in to manage your account.
| user | |||
|---|---|---|---|
| {{user.value.name}} | {{user.value.email}} |
Please log in to upload a dataset.
| Dataset | Description | Number of lines | Zip size | Owner | Uploaded | |||
|---|---|---|---|---|---|---|---|---|
| {{row.value.name}} | {{_util.limitedString(row.value.description, 200)}} | {{row.value.lines}} | {{_util.humanFileSize(row.value.zipSize)}} | {{row.value.username}} | {{row.value.uploaded | date:'dd.MM.yyyy - HH:mm'}} |


Functions to help when working with Barks.
This package makes it easier to work with the Bark scale when analyzing and plotting acoustic data. It contains two pairs of functions. The first (bark
and hz
) convert between Hz and Barks. The other (scale_x_bark
and scale_y_bark
) make it easy to plot data in ggplot2 using the Bark scale.
To install the package, you can do so by downloading it from github.
# install.packages("remotes") # <- if not already installed remotes::install_github("joeystanley/barktools")
You can then load it like any other library.
library(barktools)
For this little vignette, I’ll load some sample vowel data from my own speech. It’s got some outliers, but that’s the nature of automatically-processed data.
library(tidyverse) vowels <- read_csv("http://joeystanley.com/data/joey.csv")
Here’s a simple plot that shows my vowel space. For now, I’ll just keep it simple.
ggplot(vowels, aes(F2, F1)) + geom_point() + scale_x_reverse() + scale_y_reverse() + theme_minimal() + labs(title = "Joey's vowels", subtitle = "Data and plot are in Hz")
Now, let’s say I want to plot using Barks. You can use the bark()
function to convert the formant frequencies into Barks.
vowels_with_barks <- vowels %>% mutate(F1_bark = bark(F1), F2_bark = bark(F2)) ggplot(vowels_with_barks, aes(F2_bark, F1_bark)) + geom_point() + scale_x_reverse() + scale_y_reverse() + theme_minimal() + labs(title = "Joey's vowels", subtitle = "Data and plot are in Barks")
The Bark scale turns the nonlinear Hz data into something a little more linear, so the shape of the vowel space should change somewhat.
The problem is most people can’t readily interpret the Barks unit. What is the Hz equivalent of 6 Barks? We can look this up using the hz()
function:
hz(6)
But it would be better if we could incorporate more interpretable values into the plot itself. I think the first time I saw this was in Harrington et al’s (2000) paper on how the Queen of England’s speech changes over time:
Notice how the axes are in Barks, but the data is still plotted in Hz. This is a perfect case for using the scale_x_bark()
and scale_y_bark()
functions. Like the other scale_*
functions in ggplot2, this will transform the axes of your plot. In this case, it’ll convert the plotting area to the Bark scale, but the values will be in Hz still.
ggplot(vowels, aes(F2, F1)) + geom_point() + scale_x_bark() + scale_y_bark() + theme_minimal() + labs(title = "Joey's vowels", subtitle = "Data is in Hz; plot is in Barks")
Now, you can see that the shape of the vowel space is identical to the plot above, except the axis labels are more useful: I have a better idea of what 500Hz means. Note that the axes are reversed as well, just like scale_*_reverse
.
At this point, it might be useful to modify the axes with some additional labels. Since scale_*_bark
is just a wrapper around scale_*_continuous
, any argument that you would normally include in the latter function will work just fine in the bark function. Specifically, I’ll modify which values get labels with breaks
and the gridlines with minor_breaks
.
ggplot(vowels, aes(F2, F1)) + geom_point() + scale_x_bark(breaks = c(c(500, 1000, 1500, 2000, 3000)), minor_breaks = seq(0, 4000, 100)) + scale_y_bark(breaks = c(c(200, 400, 600, 800, 1000, 1500)), minor_breaks = seq(0, 3000, 100)) + theme_minimal() + labs(title = "Joey's vowels", subtitle = "Data is in Hz; plot is in Barks")
Exactly which values you want to put is up to you, obviously, so play around with it until it looks good.
The other type of plot you might want to use scale_y_bark
for is something that looks like a spectrogram, that is a time-by-hz plot. You’ll have to transform the data a little bit. You can use the code that I provided in my tutorial with the new pivot_longer
function in dplyr
. I’ll just pull out my /aʊ/ vowel for this plot:
vowels_long <- vowels %>% filter(vowel == "AW") %>% select(contains("@")) %>% rowid_to_column("phoneme_id") %>% pivot_longer(cols = contains("@"), names_to = c("formant", "percent"), names_pattern = "(F\\d)@(\\d\\d)%", names_ptypes = list(formant = factor(levels = c("F1", "F2")), percent = integer()), values_to = "hz") %>% unite(traj_id, phoneme_id, formant, remove = FALSE)
Here’s what a spectrogram-like plot might look like
ggplot(vowels_long, aes(percent, hz, color = formant, group = traj_id)) + geom_path(alpha = 0.5) + theme_bw()
Now, a lot of the change in /ai/ happens along the F1 dimension, but because of the logorithmic nature of sound, F2 visually takes up most of the vertical space and F1 is sort of squished down at the bottom. We can emphasize F1 by transforming the y-axis into the Bark scale.
ggplot(vowels_long, aes(percent, hz, color = formant, group = traj_id)) + geom_path(alpha = 0.5) + scale_y_bark(rev = FALSE) + theme_bw()
Note that this time, I added the argument rev = FALSE
to scale_y_bark
. By default, the function will flip the axis (like scale_y_reverse
), but in this case that behavior is not desired. So, you can suppress that flip by specifying rev = FALSE
.


JavaScript Unit Testing & TDD
JavaScript Unit Testing & TDD
All about Testing
- The general idea across all testing frameworks is to allow developers to write code that would specify the behavior of a function or module or class.
- Testing one function at a time is vulnerable to false negatives and false positives.
Why do we test?
- To make sure everything works.
- Increase flexibility & reduce fear of code.
Automated Tests are known as Specs, they:
- Make collaboration easier.
- Produce Documentation.
How We Test
- Testing Framework : Runs the tests and presents them to a user.
- Assertion Libraries : Backbone of written tests, the code that we use to write our tests.
- Mocha : JS testing framework which is highly flexible; supports a variety of assertion libraries.
- Domain Specific Language : Refers to a computer language specialized for a particular purpose
What do we Test?
- The public interface:
- Ask yourself, “What is the public interface of the module or class I’m writing?”
- When in doubt, make sure that you at least have the most important and/or complex parts of that interface working as intended.
The Testing Pyramid
Unit Tests : The smallest unit of testing.
- Used to test smallest pieces in isolation before putting everything together.
- Tests ONE THING.
Integration Tests : Test the interactions between two pieces of your application.
End to End : Closest automated tests come to testing the actual user experience of your application.
Reading Tests
- Most important thing about a test is that it is readable and understandable.
describe("avgValue()", function () {
it("should return the average of an array of numbers", function () {
assert.equal(avgValue([10, 20]), 15);
});
});
- avgValue() => The function we will be testing.
- it(“string”) => describes the desired output.
Test-Driven Development
- TDD is a quick repetitive cycle that revolves around first determining what a piece of code should do and writing tests for that behavior before actually writing any code.
A simple example just to give an idea of what test code looks like… note that it reads more like spoken English than normal code…
Writing Tests
File Structure
-
Whenever you are running tests with Mocha the important thing
to know is that the Mocha CLI will automatically be looking
for a directory named
test
. -
The files you want to test will be loaced in the
problems
directory. -
The created
test
directory's file structure should mirror that of theproblems
directory. -
Each test file should have the word
-spec
appended to the end of the file name.
Ex:
testing-demo
└──
problems
└── myFile.js
test
└── myFile-spec.js
Testing Blocks
- describe(string, callback)
-
The
describe
function is an organizational function that accepts a descriptive string and a callback. We'll use thedescribe
function todescribe
what we will be testing. -
The callback handed to the
describe
function will be where we insert our actual tests. - Note: When testing instance methods, it is customary to include “prototype.” followed by the method name in the description
- it(string, callback)
-
The
it
function is an organizational function we will use to wrap around each test we write. Theit
function accepts a descriptive string and callback to set up our test. -
We can insert the actual test we intend to write within the
callback handed to the
it
function. - Arrange: Getting/creating what we’ll need for our test
- Act: Executing logic to be tested
- Assert: Testing logic
- context(string, callback)
-
The
context
function has the same functionality as thedescribe
block and is used for organizational purposes. -
We use
context
instead of nestingdescribe
blocks.
Testing Classes with Chai
Setup:
- npm init — y
- npm install chai
// set up chai in our test file
const chai = require("chai");
const expect = chai.expect;
We will frequently use the expect function inside our
it
blocks.
Please use the following resources to find available methods:
Docs:
https://www.chaijs.com/api/bdd/
Cheatsheet (right column):
https://devhints.io/chai
Mocha Hooks
We use Mocha Hooks to keep our code DRY. Mocha Hooks can:
- do set up prior to running a related group of specs
- do some clean up after running those specs
Types of hooks:
-
beforeEach
be invoked before each test
- Most common hook
-
before
will be invoked before the block of tests is run
- 2nd most common hook
-
after
will be invoked after the block of tests is run -
afterEach
will be invoked after each test
Ex:
const chai = require("chai");
const expect = chai.expect;
describe('Hooks demo', () => {
before(() => {
console.log('Before hook...');
});
beforeEach(() => {
console.log('Before each hook...');
});
afterEach(() => {
console.log('After each hook...');
});
after(() => {
console.log('After hook...');
});
it('Placeholder one', () => {
expect(true).to.be(true); // will always pass
});
it('Placeholder two', () => {
expect(true).to.be(true); // will always pass
});
});
beforeEach
We typically use
beforeEach
to
set up an initial condition for each of our tests. We can also
define these hooks within nested
describe
or
context
functions. However, it is very helpful to be able to define a
beforeEach
hook
in a top-level
describe
function that will run before every test in that block and
before every test within nested
describe
or
context
functions.
Chai Spies
The Chai Spies library provides a lot of added functionality including the ability to determine if a function has been called and how many times that function has been called.
Setup: npm install chai-spies
// set up chai and chai spies in our test file
const chai = require("chai");
const expect = chai.expect;
const spies = require("chai-spies");
chai.use(spies);
In order to spy on a function we first need to tell Chai which
function we’d like to spy on using the
chai.spy.on
method.
Chai checks how many times a function has been invoked using the
method chain
expect(func).to.have.been.called.exactly(n)
where n
is the
number of times
func
is
expected to be called.
Testing Errors
We do not want to invoke code which will throw an error. This will interupt our tests and throw an error.
The syntax we use in Chai for testing if an error will be thrown is:
expect(() => myFunc()).to.throw(Error)
We pass the expect block a function which when invoked will then invoke the function which will throw the error.


Returns the CIE UCS colourspace uv chromaticity coordinates from given correlated colour temperature \(T_{cp}\) and \(\Delta_{uv}\) using given method.
| Parameters: |
|
|---|---|
| Returns: | CIE UCS colourspace uv chromaticity coordinates. |
| Return type: | tuple |
| Raises: | ValueError – If the computation method is not defined. |
Examples
>>> from colour import STANDARD_OBSERVERS_CMFS
>>> cmfs = 'CIE 1931 2 Degree Standard Observer'
>>> cmfs = STANDARD_OBSERVERS_CMFS.get(cmfs)
>>> CCT = 6507.4342201047066
>>> Duv = 0.003223690901512735
>>> CCT_to_uv(CCT, Duv, cmfs=cmfs)
(0.1978003..., 0.3122005...)
Returns the CIE UCS colourspace uv chromaticity coordinates from given correlated colour temperature \(T_{cp}\), \(\Delta_{uv}\) and colour matching functions using Yoshi Ohno (2013) method.
| Parameters: |
|
|---|---|
| Returns: | CIE UCS colourspace uv chromaticity coordinates. |
| Return type: | tuple |
References
| [4] | Yoshi Ohno, Practical Use and Calculation of CCT and Duv, DOI: https://doi.org/10.1080/15502724.2014.839020 |
Examples
>>> from colour import STANDARD_OBSERVERS_CMFS
>>> cmfs = 'CIE 1931 2 Degree Standard Observer'
>>> cmfs = STANDARD_OBSERVERS_CMFS.get(cmfs)
>>> CCT = 6507.4342201047066
>>> Duv = 0.003223690901512735
>>> CCT_to_uv_ohno2013(CCT, Duv, cmfs)
(0.1978003..., 0.3122005...)
Returns the CIE UCS colourspace uv chromaticity coordinates from given correlated colour temperature \(T_{cp}\) and \(\Delta_{uv}\) using Robertson (1968) method.
| Parameters: |
|
|---|---|
| Returns: | CIE UCS colourspace uv chromaticity coordinates. |
| Return type: | tuple |
References
| [7] | Wyszecki & Stiles, Color Science - Concepts and Methods Data and Formulae - Second Edition, Wiley Classics Library Edition, published 2000, ISBN-10: 0-471-39918-3, page 227. |
| [8] | Adobe DNG SDK <IP_ADDRESS>: dng_sdk_1_3/dng_sdk/source/dng_temperature.cpp: dng_temperature::xy_coord. |
Examples
>>> CCT = 6500.0081378199056
>>> Duv = 0.0083333312442250979
>>> CCT_to_uv_robertson1968(CCT, Duv)
(0.1937413..., 0.3152210...)
Returns the correlated colour temperature \(T_{cp}\) and \(\Delta_{uv}\) from given CIE UCS colourspace uv chromaticity coordinates using given method.
| Parameters: |
|
|---|---|
| Returns: | Correlated colour temperature \(T_{cp}\), \(\Delta_{uv}\). |
| Return type: | tuple |
| Raises: | ValueError – If the computation method is not defined. |
Examples
>>> from colour import STANDARD_OBSERVERS_CMFS
>>> cmfs = 'CIE 1931 2 Degree Standard Observer'
>>> cmfs = STANDARD_OBSERVERS_CMFS.get(cmfs)
>>> uv_to_CCT((0.1978, 0.3122), cmfs=cmfs)
(6507.5470349..., 0.0032236...)
Returns the correlated colour temperature \(T_{cp}\) and \(\Delta_{uv}\) from given CIE UCS colourspace uv chromaticity coordinates, colour matching functions and temperature range using Yoshi Ohno (2013) method.
The iterations parameter defines the calculations precision: The higher its value, the more planckian tables will be generated through cascade expansion in order to converge to the exact solution.
| Parameters: |
|
|---|---|
| Returns: | Correlated colour temperature \(T_{cp}\), \(\Delta_{uv}\). |
| Return type: | tuple |
References
| [3] | Yoshi Ohno, Practical Use and Calculation of CCT and Duv, DOI: https://doi.org/10.1080/15502724.2014.839020 |
Examples
>>> from colour import STANDARD_OBSERVERS_CMFS
>>> cmfs = 'CIE 1931 2 Degree Standard Observer'
>>> cmfs = STANDARD_OBSERVERS_CMFS.get(cmfs)
>>> uv_to_CCT_ohno2013((0.1978, 0.3122), cmfs)
(6507.5470349..., 0.0032236...)
Returns the correlated colour temperature \(T_{cp}\) and \(\Delta_{uv}\) from given CIE UCS colourspace uv chromaticity coordinates using Robertson (1968) method.
| Parameters: | uv (array_like) – CIE UCS colourspace uv chromaticity coordinates. |
|---|---|
| Returns: | Correlated colour temperature \(T_{cp}\), \(\Delta_{uv}\). |
| Return type: | tuple |
References
| [5] | Wyszecki & Stiles, Color Science - Concepts and Methods Data and Formulae - Second Edition, Wiley Classics Library Edition, published 2000, ISBN-10: 0-471-39918-3, page 227. |
| [6] | Adobe DNG SDK <IP_ADDRESS>: dng_sdk_1_3/dng_sdk/source/dng_temperature.cpp: dng_temperature::Set_xy_coord. |
Examples
>>> uv = (0.19374137599822966, 0.31522104394059397)
>>> uv_to_CCT_robertson1968(uv)
(6500.0162879..., 0.0083333...)
Returns the CIE XYZ colourspace xy chromaticity coordinates from given correlated colour temperature \(T_{cp}\) using given method.
| Parameters: |
|
|---|---|
| Returns: | xy chromaticity coordinates. |
| Return type: | tuple |
Returns the CIE XYZ colourspace xy chromaticity coordinates from given correlated colour temperature \(T_{cp}\) using Kang, Moon, Hong, Lee, Cho and Kim (2002) method.
| Parameters: | CCT (numeric) – Correlated colour temperature \(T_{cp}\). |
|---|---|
| Returns: | xy chromaticity coordinates. |
| Return type: | tuple |
| Raises: | ValueError – If the correlated colour temperature is not in appropriate domain. |
References
| [11] | Design of Advanced Color - Temperature Control System for HDTV Applications |
Examples
>>> CCT_to_xy_kang2002(6504.38938305)
(0.3134259..., 0.3235959...)
Converts from the correlated colour temperature \(T_{cp}\) of a CIE Illuminant D Series to the chromaticity of that CIE Illuminant D Series.
| Parameters: | CCT (numeric) – Correlated colour temperature \(T_{cp}\). |
|---|---|
| Returns: | xy chromaticity coordinates. |
| Return type: | tuple |
| Raises: | ValueError – If the correlated colour temperature is not in appropriate domain. |
References
| [12] | Wyszecki & Stiles, Color Science - Concepts and Methods Data and Formulae - Second Edition, Wiley Classics Library Edition, published 2000, ISBN-10: 0-471-39918-3, page 145. |
Examples
>>> CCT_to_xy_illuminant_D(6504.38938305)
(0.3127077..., 0.3291128...)
Returns the correlated colour temperature \(T_{cp}\) from given CIE XYZ colourspace xy chromaticity coordinates using given method.
| Parameters: |
|
|---|---|
| Returns: | Correlated colour temperature \(T_{cp}\). |
| Return type: | numeric |
Returns the correlated colour temperature \(T_{cp}\) from given CIE XYZ colourspace xy chromaticity coordinates using McCamy (1992) method.
| Parameters: | xy (array_like) – xy chromaticity coordinates. |
|---|---|
| Returns: | Correlated colour temperature \(T_{cp}\). |
| Return type: | numeric |
References
| [9] | http://en.wikipedia.org/wiki/Color_temperature#Approximation (Last accessed 28 June 2014) |
Examples
>>> xy_to_CCT_mccamy1992((0.31271, 0.32902))
6504.3893830...
Returns the correlated colour temperature \(T_{cp}\) from given CIE XYZ colourspace xy chromaticity coordinates using Hernandez-Andres, Lee & Romero (1999) method.
| Parameters: | xy (array_like) – xy chromaticity coordinates. |
|---|---|
| Returns: | Correlated colour temperature \(T_{cp}\). |
| Return type: | numeric |
References
| [10] | Calculating correlated color temperatures across the entire gamut of daylight and skylight chromaticities, DOI: https://doi.org/10.1364/AO.38.005703 |
Examples
>>> xy_to_CCT_hernandez1999((0.31271, 0.32902))
6500.0421533...


Now first of all, there is nothing illegal going on here, this is a social place where you can chat and share files with people around you, anonymously!
This is an off-line network, specially designed and developed for file-sharing and chat services only. Staying off the grid is a precaution to maintain your full anonymity.
Please have fun, chat with people and feel free to share any files you may like.
Welcome to the Chat!
100% Anonymity. Chat with others on the network.
About the PirateBox
Inspired by pirate radio and the free culture movment, PirateBox is a self-contained mobile collaboration and file sharing device. PirateBox utilizes Free, Libre and Open Source software (FLOSS) to create mobile wireless file sharing networks where users can anonymously share images, video, audio, documents, and other digital content.
PirateBox is designed to be safe and secure. No logins are required and no user data is logged. The system is purposely not connected to the Internet in order to prevent tracking and preserve user privacy.
PirateBox was created by David Darts and is registered under a Free Art License (2011). To learn more about the project or to find out how to build your own PirateBox system, please visit http://wiki.daviddarts.com/piratebox.


Peonies
" Peony, (genus Paeonia), genus of about 30 species of flowering plants (family Paeoniaceae) known for their large showy blossoms. All but two species are native to Europe and Asia, and several species are cultivated as ornamentals and for the floral industry. "
Colorful roses
" Yellow roses create warm feelings and provide happiness. Giving yellow roses can tell someone the joy they bring you and the friendship you share. White roses, the purist of colors, represent innocence, purity and charm. White roses are traditionally used in weddings and can represent new beginnings. "
Red roses
" Rose, (genus Rosa), genus of some 100 species of perennial shrubs in the rose family (Rosaceae). Roses are native primarily to the temperate regions of the Northern Hemisphere. Many roses are cultivated for their beautiful flowers, which range in colour from white through various tones of yellow and pink to dark crimson and maroon, and most have a delightful fragrance, which varies according to the variety and to climatic conditions. "


Type that encapsulate user data for easy access. More...
| Import Statement: | import Firebase 1.0 |
FirebaseUser simply holds data about the users authenticated in the firebase. This type is used by FirebaseAuth to hold a reference to the user currently authenticated and can also be used to create models/lists of all available users in the FirebaseDatabase.
Specifies if the email of this user has already been verified. A verification email can be sent using FirebaseAuth::sendEmailVerification()
Specifies the users idToken, often used for actions that require authentication such as writing/reading data from the FirebaseDatabase or managing the user profile with FirebaseAuth. This token expires after 1 hour and should be refreshed using the refreshToken.
Note: for more information about use, see FirebaseAuth::currentUser
Returns the refresh token, tipically used to refresh the idToken after it expires.
Note: for more information about use, see FirebaseAuth::exchangeRefreshToken
Specifies the unique identifier of the user in the entire Firebase project.
Warning: this identifier will change if the email of the user is altered.


|
Bullet Collision Detection & Physics Library
|
#include "BulletCollision/CollisionShapes/btConvexShape.h"
#include "BulletCollision/CollisionShapes/btTriangleShape.h"
#include "BulletCollision/NarrowPhaseCollision/btSubSimplexConvexCast.h"
#include "BulletCollision/NarrowPhaseCollision/btGjkConvexCast.h"
#include "BulletCollision/NarrowPhaseCollision/btContinuousConvexCollision.h"
#include "BulletCollision/NarrowPhaseCollision/btGjkEpaPenetrationDepthSolver.h"
#include "btRaycastCallback.h"


Here are some of my ideas from my interaction with Yelp.
- Customized suggestions by user attributes
I noticed that Yelp mostly does its suggestion based on locations. However there are a lot more aspects to a person's preferences to choose businesses/restaurants that one can be thinking of, such as dietary restrictions, religion, tolerence to spice etc. These factors can be considered when listing businesses. Further more this can even be applied to recommemd single product/dish for particular businesses/restaurants. This can be done through analysis on user data or initiation by user selections (acquiring user information by direcly asking them in app like: "Do you mind spicy food?").
- Basic photo editing for smoother posting experiences and better content
Many restaurants have really dark lighting for atmosphere which directly results in low photo quality. Unlike other social apps, Yelp doesnt seem to have an editing feature. Yes, maybe it helps reflect the true image of food. Yet, it mostly doesn’t. Better images help other users to know more and be more open about exploring.
Filters don’t have to be robust.
A simple change in brightness can lift the experience by a lot:
Before filter
After filter
- Themed suggestions based on context
Themed content based on the time would also raise the engagement a lot. Creating a user habit where they not only come to Yelp when they need to to but would casually browse like browsing news. For example, September 28, 2015 is both the Lunar Festival and the Super Moon. Imagine if we can browse which restaurants have a patio that can be good to watch the moon.


{% extends "partials/tooltips/base.html" %}
{% block title %}
Health Related Expenses
{% endblock %}
{% block inner %}
Includes orthodontic treatments, counselling, physiotherapy, occupational
therapy, speech therapy, hearing therapy, prescription drugs, hearing aids, glasses,
and contact lenses
{% endblock %}
{% block label %}
{% if text %}{{ text }}{% else %}Health related expenses{% endif %}
{% endblock %}


Khareta (خريطة) means "Map" in Arabic, It is a jQuery plugin that transforms your average textarea into a Google Maps Input component where the user can place points, polylines or polygons on the map and have the result serialized to the textarea immediately.
For documentation please visit Khareta on GitHub
You can pick a mode from the lower left corner of the map then click the map to add points, to remove points just click the markers again, to move existing points around drag the point's marker.
To allow yourself more freedom click the "Full Screen" button on the upper right corner of the screen to go in Fullscreen mode that will allow you more space to place your points. to go back to the normal mode click the "Full Screen" button again.
This is the simplest possible example for Khareta acheived by this code:
$('#textarea_1').khareta();
o see the internal data of this map, open your console and write
$('#textarea_1').khareta('getData');
Click "Transform To Map" button to attach khareta to this element
In this example, the textarea is shown so that you can see the changes as they occur, and you can change the textarea value by hand.


AWS Billing and Cost Management Budget BudgetData
The BudgetData
property type specifies all of the parameters that AWS CloudFormation uses to create
the budget. These parameters include
the time period that the budget covers, the amount that the budget is
for, the name of the budget, what costs, usage, or RI utilization the Billing and
Cost Management budget is for, and whether the budget tracks
what you have spent or what you are forecast to spend.
BudgetData
is a property of the AWS::Budgets::Budget resource.
Syntax
To declare this entity in your AWS CloudFormation template, use the following syntax:
JSON
{ "BudgetLimit" : Spend, "TimePeriod" : TimePeriod, "TimeUnit" :
String
, "CostFilters" :Json
, "BudgetName" :String
, "CostTypes" : CostTypes, "BudgetType" :String
}
YAML
BudgetLimit: Spend TimePeriod: TimePeriod TimeUnit:
String
CostFilters:Json
BudgetName:String
CostTypes: CostTypes BudgetType:String
Properties
BudgetLimit
-
The total amount of cost, usage, or RI utilization that you want to track with your budget.
The BudgetLimit is required for cost or usage budgets, but optional for RI utilization budgets. RI utilization budgets default to the only valid value for RI utilization budgets, which is
100
.Required: No
Type: Spend
Update requires: No interruption
TimePeriod
-
The period of time covered by a budget. Has a start date and an end date. The start date must come before the end date. There are no restrictions on the end date.
If you create your budget and don't specify a start date, AWS defaults to the start of your chosen time period (i.e. DAILY, MONTHLY, QUARTERLY, ANNUALLY). For example, if you create your budget on January 24th 2018, choose
DAILY
, and don't set a start date, AWS sets your start date to01/24/18 00:00 UTC
. If you chooseMONTHLY
, AWS sets your start date to01/01/18 00:00 UTC
. If you don't specify an end date, AWS sets your end date to06/15/87 00:00 UTC
.After the end date, AWS deletes the budget and all associated notifications and subscribers.
Required: No
Type: TimePeriod
Update requires: No interruption
TimeUnit
-
The length of time until a budget resets the actual and forecasted spend to zero.
Valid values are:
DAILY
,MONTHLY
,QUARTERLY
, andANNUALLY
.Required: Yes
Type: String
Update requires: No interruption
CostFilters
-
The cost filters applied to a budget, such as service or region.
Required: No
Type: Json
Update requires: No interruption
BudgetName
-
The name of a budget. Unique within accounts.
:
and\
characters are not allowed in theBudgetName
. If you do not include aBudgetName
in the template, Billing and Cost Management assigns your budget a randomly generated name.Required: No
Type: String
Update requires: Replacement
CostTypes
-
The types of costs included in this budget, such as credits, subscriptions, or taxes.
Required: No
Type: CostTypes
Update requires: No interruption
BudgetType
-
Whether this budget tracks monetary costs, usage, or RI utilization.
Valid values are
USAGE
,COST
,RI_UTILIZATION
, andRI_COVERAGE
.Required: Yes
Type: String
Update requires: No interruption


NHAI fined Rs 6.84 crore for causing pollution in UP
The authority has also been instructed to sprinkle water wherever construction work is being undertaken around Agra, officials said
by PTIThe National Highways of India (NHAI) of India has been fined Rs 6.84 crore for polluting air due to consistent construction activity in Uttar Pradesh's Agra, officials said on Sunday.
The authority has also been instructed to sprinkle water wherever construction work is being undertaken around Agra, they said.
A fine of Rs 6.84 crore has been imposed on NHAI for causing air pollution through construction activities, said Bhuvan Yadav, Regional Officer of the Uttar Pradesh Pollution Control Board in Agra.
Also, directions have been issued to Agra Nagar Nigam to carry out mechanized sweeping work to help reduce air pollution, he said.
The anti-pollution board has also instructed brick kilns around the city using old technology to switch over to Zig-Zag technology to help reduce air pollution.
Various government agencies such as the Agra Development Authority, Awas Vikas and the PWD, have been instructed if they carry out construction activities, they have to use dust suppressant, the official said.
In addition, all the demolition and construction waste rules have to be followed like sprinkling of water, establishing green cover, covering raw materials, among others, Yadav added.Special Thursday Expiry on 10th 7th Nov
Early Closure to The Great Diwali Discount. Last Chance to get Moneycontrol PRO for a year @ Rs. 289/- only
Coupon code: DIWALI


Introduction¶
While this tutorial is intended to be as robust as possible, there are some additional processes and considerations that may be needed for individual datasets. This section serves to provide examples of when and how to incorportant various tools and commands that were not necessary for our example HapMap dataset, but are likely to come up in other analyses.
Liftover¶
Note
This section is neccessary when the build of your own dataset is different from the reference set used for annotation or population stratification anchoring. While the update-map tool can be used (as demonstrated in the Population Stratification section), Liftover is also useful when performing a meta-analysis to ensure all individual datasets are in the same build prior to combining summary statistics. The commands outlined here will provide an example for downloading Liftover and neccessary associated files to convert a data set from build hg38 to hg19.
You can install Liftover and its dependencies with the following commands:
wget http://hgdownload.soe.ucsc.edu/admin/exe/linux.x86_64/liftOver
##replace the following chain file to match your desired build conversion
wget https://hgdownload.soe.ucsc.edu/goldenPath/hg38/liftOver/hg38ToHg19.over.chain.gz
wget https://raw.githubusercontent.com/Shicheng-Guo/GscPythonUtility/master/liftOverPlink.py
chmod +x liftOverPlink.py
chmod +x liftOver
Once you have downloaded the necessary filesets and changed the permissions to facilitate running the python code you can declare your starting fileset:
fileset=startingfileset
Next you need to change from space delimiter to tab delimiter with the '--recode tab' handle.
plink --bfile $fileset --recode tab --out $fileset.tab
Finally, you can run liftover to change your fileset build and then convert back to plink format.
./liftOverPlink.py -m $fileset.tab.map -p $fileset.tab.ped -o $fileset.hg19 -c hg38ToHg19.over.chain.gz -e ./liftOver
plink --ped $fileset.hg19.ped --map $fileset.hg19.map --make-bed --out $fileset.final.hg19
To confirm your file was appropriately lifted over, it is good practice to choose a few snps from your bim file and confirm on dbgap whether your snpid appropriately matches with the corresponding chr:bp positions presented.
Here, we see we appropriately lifted-over to build hg19 (GRCh37)
Imputation¶
Meta-Analysis using METAL software¶
Separated by Chromosome¶
Here, we demonstrate how to perform population stratification using the much larger updated 1000 Genomes data set that is separated by chromosome. The steps here are not only useful for the purpose of population stratification but also to teach users how to handle any data set separated by chromosome (common for large datasets)
First, we can download the data set using a wget command:
gr=_GRCh38
for chr in {1..22}; do \
wget http://ftp.1000genomes.ebi.ac.uk/vol1/ftp/release/20130502/supporting/GRCh38_positions/ALL.chr$chr$gr.genotypes.20170504.vcf.gz
wget http://ftp.1000genomes.ebi.ac.uk/vol1/ftp/release/20130502/supporting/GRCh38_positions/ALL.chr$chr$gr.genotypes.20170504.vcf.gz.tbi
done
This loop takes a long time to run. You may want to let it sit over night if you have the option to.
for chr in {1..11}; do \ plink --vcf ALL.chr\(chr\)gr.genotypes.20170504.vcf.gz --make-bed --vcf-half-call m --out chr_$chr.GRCh38 done
for chr in {12..22}; do \
plink --bfile chr_\(chr.GRCh38 --exclude 1000genomes_hg38-merge.missnp --allow-extra-chr --make-bed --out chr\)chr.exclude¶
plink --bfile chr_\(chr.GRCh38 --allow-extra-chr --make-bed --out chr\)chr done ls .exclude.bed >allfiles.txt sed 's/..\(//' < allfiles.txt > test sed 's/..\)//' < test > allfiles.txt plink --bfile chr_10 --merge-list allfiles.txt --allow-extra-chr --make-bed -out 1000genomes_hg38


Back
GO
Upload
Download
Refresh
Delete
New Dir
unzip
zip
Reset Path
×
Uploading ...
60% Complete
×
Please enter a name
×
Are the selected files removed?
×
Unzip Info


by Javier Gutierrez<EMAIL_ADDRESS>source: https://github.com/gutierrezj/eudevsummit2017
presentations:


All Mothercare UK stores to close
Troubled baby goods retailer Mothercare has called in administrators, putting 2,500 UK jobs at risk.
There will be a phased closure of all of its 79 UK stores, administrators from PwC said.
The UK firm "has been loss-making for a number of years", but international franchises are profitable, PwC said.
On Monday the baby goods firm said it was "not capable" of being sufficiently profitable and that it had failed to find a buyer.
Joint administrator Zelf Hussain said: "This is a sad moment for a well-known High Street name," adding that Mothercare "has been hit hard by increasing cost pressures and changes in consumer spending."
"It's with real regret that we have to implement a phased closure of all UK stores. Our focus will be to help employees and keep the stores trading for as long as possible," Mr Hussain said.
Pensions move
Mothercare chairman Clive Whiley said there was "deep regret and sadness that we have been unable to avoid the administration of Mothercare" and that the board "fully understand the significant impact on those UK colleagues and business partners who are affected".
He added: "However, the board concluded that the administration processes serve the wider interests of ensuring a sustainable future for the company, including the wider group's global colleagues, its pension fund, lenders and other stakeholders."
Mothercare said it was in continuing talks over possible UK concession stores and about using the brand to sell goods online.
It said it would move its pensions scheme across to its international business.
'The only baby shop on the island'
Former Mothercare store manager Michelle Smith lost her job in October 2018 when her Isle of Wight store was one of 51 to close.
She said she felt sorry for the people who will lose their jobs due to the administration.
When her store closed, it was "devastating" for the Isle of Wight, she said.
"My store was the only child and baby shop on the island," she said.
While branded baby products can be cheaper online, a lot of people like to see, touch and feel products before buying them, she added.
However, online retailers don't have the same overheads, she said.
Michelle is now a store manager for Co-op.
The administration will be "disappointing for all the employees but it's not unexpected", said Diane Wehrle, marketing and insights director at Springboard.
Since the firm negotiated a rescue deal with lenders last year, "they haven't changed anything fundamentally", she said.
"The levels of investment needed to future-proof the business would have been so significant and they couldn't make that leap," she added.
Ultimately, supermarkets and department stores ate into their market, plus cheaper online competitors, she said.


Greetings, human.
Beep! Boop! I am a robot. Give me a number and I will show you my counting skills.
Please give me a number.
What is your name?
Count
Count Backward??
Reset
Okay
. I will now count to
.
Remember, as a robot I
always
start with "0". That is the robot way.
Okay
. I will now count backward from
down to 0.
Remember, as a robot I
always
include the number "0". That is the robot way.


| cell_type | hs_gene_symbol | organism | pert_type | gene_set_type | Combined |
|---|---|---|---|---|---|
| 2102Ep human embryonal carcinoma cell line | SOX2 | human | KO | down & up | |
| NTera-2 human embryonal carcinoma cell line | SOX2 | human | KO | down & up | |
| AZ-521 gastric cancer (GC) cell line - 18 Hours | SOX2 | human | KD | down & up | |
| AZ-521 gastric cancer (GC) cell line - 24 Hours | SOX2 | human | KD | down & up | |
| MCF10A | HER2 MYC | human | OE | down & up | |
| Pfeiffer DLBCL | BCL6 | human | KD | down & up | |
| OCI-Ly7 DLBCL | BCL6 | human | KD | down & up | |
| A549 | NFE2L2 | human | KD | down & up | |
| A549 | NFE2L2 | human | KD | down & up | |
| MCF7 | ESR1 | human | KD | down & up | |
| MDA-MB-231 | TP53 | human | KD | down & up | |
| medulloblastoma | MYC | human | OE | down & up | |
| medulloblastoma | MYC | human | OE | down & up | |
| medulloblastoma | MYC | human | OE | down & up | |
| medulloblastoma | MYC | human | OE | down & up | |
| medulloblastoma | MYC | human | KD | down & up | |
| MCF7 | ESR1 | human | OE | down & up | |
| MCF7 | ESR1 | human | KD | down & up | |
| Dendritic cells (DCs) | RARA | human | OE | down & up | |
| Dendritic cells (DCs) | PPARG | human | OE | down & up | |
| Hela | MYC | human | KD | down & up | |
| MCF7 | MYC | human | KD | down & up | |
| MCF7 | ESR1 | human | OE | down & up | |
| MCF7 | ESR1 | human | OE | down & up | |
| MCF7 | ESR1 | human | OE | down & up | |
| MCF7 | ESR1 | human | OE | down & up | |
| MCF7 | MYC | human | OE | down & up | |
| MOLT4 | NOTCH1 | human | OE | down & up | |
| KATOIII(gastric cancer) | GATA4 | human | KD | down & up | |
| YCC3(gastric cancer) | GATA4 | human | KD | down & up | |
| AGS(gastric cancer) | GATA4 | human | KD | down & up | |
| AGS(gastric cancer) | GATA6 | human | KD | down & up | |
| KATOIII(gastric cancer) | GATA6 | human | KD | down & up | |
| YCC3(gastric cancer) | GATA6 | human | KD | down & up | |
| YCC3(gastric cancer) | KLF5 | human | KD | down & up | |
| KATOIII(gastric cancer) | KLF5 | human | KD | down & up | |
| AGS(gastric cancer) | KLF5 | human | KD | down & up | |
| LNCaP | AR | human | OE | down & up | |
| MCF7 | ESR1 | human | OE | down & up | |
| CUTLL1 | NOTCH1 | human | OE | down & up | |
| A549 | NR3C1 | human | OE | down & up | |
| embryonic stem cells | POU5F1 | human | KD | down & up | |
| embryonic stem cells | POU5F1 | human | KD | down & up | |
| HEK293 | REST | human | KD | down & up | |
| HEK293 | REST | human | KD | down & up | |
| peripheral blood | EZH2 | human | KD | down & up | |
| MV4-11 | SMARCA4 | human | KD | down & up | |
| DU145 | ETS1 | human | KD | down & up | |
| SPAC-1L | STAT1 | human | KD | down & up | |
| SPAC-1L | STAT1 | human | KD | down & up | |
| K562 | ERG | human | OE | down & up | |
| MCF10A | GABPA | human | KD | down & up | |
| PC9 | GATA6 | human | KD | down & up | |
| MCF7 | NR3C1 | human | OE | down & up | |
| MCF7 | ESR1 | human | OE | down & up | |
| MCF7 | RARA | human | OE | down & up | |
| MCF7 | RARA RARG | human | OE | down & up | |
| MCF7 | RARG | human | OE | down & up | |
| MCF7 | STAT1 STAT2 STAT3 IRF9 | human | OE | down & up | |
| MCF7 | SIN3A | human | KD | down & up | |
| nan | BMI1 | human | KD | down & up | |
| CWR22Rv1 | STAT3 | human | KD | down & up | |
| DU145 | STAT3 | human | KD | down & up | |
| H1618 | ASCL1 | human | KD | down & up | |
| H1618 | ASCL1 | human | KD | down & up | |
| HCT116 | SIN3A SIN3B | human | KD | down & up |


Hi
I'm a total newbie to this... I have bought a RFM69Pi module and a emonTH unit along with a SD card of software.
I plugged in the RFM module to the Pi and powered it up. I also added a DHT22 to the emonTH unit and powered it up.
The Pi boots up fine and attaches to the ethernet network and presents itself as <IP_ADDRESS>. I can log on to EmonCMS. Meanwhile the emonTH has a red LED and is glowing serenely.
But... nothing seems to be going from the emonTH back to emonCMS?
I ssh into the Pi using pi/raspberry and in /var/log/emonhub I find...
2015-12-23 21:50:46,461 DEBUG RFM2Pi device settings updated: E i5 g210 @ 868 MHz
2015-12-23 21:50:46,573 DEBUG RFM2Pi Discarding RX frame 'unreliable content'? 7 45 120 149 20 160 35 9 231 164 17 94 97 196 9 160 120 55 187 123 146 (-99)
2015-12-23 21:50:52,821 DEBUG RFM2Pi Discarding RX frame 'unreliable content'? 183 22 60 134 88 202 228 120 20 242 204 216 177 181 252 219 146 31 15 47 126 (-99)
2015-12-23 21:50:58,289 DEBUG RFM2Pi Discarding RX frame 'unreliable content'? 229 119 23 42 232 91 92 13 111 99 238 93 231 8 35 248 154 41 105 226 14 (-96)
2015-12-23 21:51:00,023 DEBUG RFM2Pi Discarding RX frame 'unreliable content'? 165 247 203 212 155 77 33 191 1 151 11 206 87 223 255 230 206 255 181 101 237 (-98)
2015-12-23 21:51:01,748 DEBUG RFM2Pi Discarding RX frame 'unreliable content'? 25 144 171 59 184 161 47 144 160 159 74 231 217 0 185 157 36 112 254 192 9 (-100)
2015-12-23 21:51:03,011 DEBUG RFM2Pi Discarding RX frame 'unreliable content'? 159 111 188 61 194 144 237 3 251 244 216 40 49 251 16 156 182 22 45 177 228 (-97)
2015-12-23 21:51:05,358 DEBUG RFM2Pi Discarding RX frame 'unreliable content'? 46 20 37 38 68 70 231 253 247 185 43 243 30 180 230 142 147 25 125 64 187 (-99)
2015-12-23 21:51:11,471 DEBUG RFM2Pi Discarding RX frame 'unreliable content'? 180 30 64 219 222 185 190 128 225 245 247 49 4 61 223 201 225 201 93 56 241 (-101)
2015-12-23 21:51:14,087 DEBUG RFM2Pi Discarding RX frame 'unreliable content'? 17 27 137 72 93 100 208 130 135 222 115 7 112 22 163 16 63 55 54 112 67 (-97)
2015-12-23 21:51:15,595 DEBUG RFM2Pi Discarding RX frame 'unreliable content'? 153 (-97)
2015-12-23 21:51:16,412 DEBUG RFM2Pi Discarding RX frame 'unreliable content'? 160 252 39 181 145 241 63 3 48 240 74 254 49 182 177 17 180 173 60 5 141 (-97)
2015-12-23 21:51:19,171 DEBUG RFM2Pi Discarding RX frame 'unreliable content'? 18 79 50 230 255 63 32 143 34 155 77 108 68 74 225 58 95 218 72 103 93 (-97)
I went to the config page and forced the frequency to 868 (as that is what I ordered for the emonTH)
So no data seems to be received?
Any idea on what to do next?
Thanks in advance
Nivag
Re: Newbie: Can't get anything useful to happen
I also... unscrewed the PCB from the emonTH and looked underneath... it has a black splodge against 868.
Re: Newbie: Can't get anything useful to happen
All those discarded packets all look "faint" and are probably noise, is the emonTH fairly close? or could it be closer whilst debugging? The last value in each frame, in brackets is the RSSI (signal strength) and ideally you want to be below -80 (at least). How frequently is the led flashing on the emonTH? should be around once per minute, does the RFM2Pi led flash in-time with the TH to indicate receipt of the transmitted packet?
setting RFM2Pi "quietmode = true" in emonhub.conf may help see any "non-garbage" packets easier if the packets are not ear marked for discarding and failing a different check.
Paul
Re: Newbie: Can't get anything useful to happen
Thanks for the interest.... I set quietmode=true...
2015-12-23 22:21:55,881 INFO MainThread Setting RFM2Pi quiet: 0 (0q)
2015-12-23 22:21:55,982 DEBUG RFM2Pi acknowledged command: > 0q
2015-12-23 22:21:56,085 DEBUG RFM2Pi device settings updated: E i5 g210 @ 868 MHz
2015-12-23 22:21:56,883 INFO MainThread Setting RFM2Pi calibration: 230V (1p)
2015-12-23 22:21:56,988 DEBUG RFM2Pi acknowledged command: > 1p
2015-12-23 22:21:57,298 DEBUG RFM2Pi acknowledged command: <nn> i - set node ID (standard node ids are 1..30)
2015-12-23 22:21:57,404 DEBUG RFM2Pi acknowledged command: <n> b - set MHz band (4 = 433, 8 = 868, 9 = 915)
2015-12-23 22:21:57,511 DEBUG RFM2Pi acknowledged command: <nnnn> o - change frequency offset within the band (default 1600)
2015-12-23 22:21:57,725 DEBUG RFM2Pi acknowledged command: <nnn> g - set network group (RFM12 only allows 212, 0 = any)
2015-12-23 22:21:57,831 DEBUG RFM2Pi acknowledged command: <n> c - set collect mode (advanced, normally 0)
2015-12-23 22:21:57,887 DEBUG MainThread MQTT Subscribed to channel' : ToEmonCMS
2015-12-23 22:21:57,889 DEBUG MainThread emoncmsorg Subscribed to channel' : ToEmonCMS
2015-12-23 22:21:58,043 DEBUG RFM2Pi acknowledged command: ...,<nn> a - send data packet to node <nn>, request ack
2015-12-23 22:21:58,149 DEBUG RFM2Pi acknowledged command: ...,<nn> s - send data packet to node <nn>, no ack
2015-12-23 22:21:58,256 DEBUG RFM2Pi acknowledged command: <n> q - set quiet mode (1 = don't report bad packets)
2015-12-23 22:21:58,363 DEBUG RFM2Pi acknowledged command: <n> x - set reporting format (0: decimal, 1: hex, 2: hex+ascii)
2015-12-23 22:21:58,678 DEBUG RFM2Pi acknowledged command: <hchi>,<hclo>,<addr>,<cmd> f - FS20 command (868 MHz)
2015-12-23 22:21:58,792 DEBUG RFM2Pi acknowledged command: <addr>,<dev>,<on> k - KAKU command (433 MHz)
2015-12-23 22:21:59,013 DEBUG RFM2Pi device settings updated: E i5 g210 @ 868 MHz
2015-12-23 22:22:05,043 DEBUG RFM2Pi Discarding RX frame 'unreliable content'? 167 221 252 186 116 238 212 119 107 159 68 215 4 245 241 163 236 59 50 247 59 (-98)
2015-12-23 22:22:06,255 DEBUG RFM2Pi Discarding RX frame 'unreliable content'? 153 209 176 33 235 82 92 50 222 213 174 24 181 126 92 58 113 11 22 112 81 (-97)
2015-12-23 22:22:08,170 DEBUG RFM2Pi Discarding RX frame 'unreliable content'? 157 135 252 197 145 140 79 134 123 123 111 145 146 204 117 165 248 252 159 171 62 (-96)
2015-12-23 22:22:10,085 DEBUG RFM2Pi Discarding RX frame 'unreliable content'? 1 183 20 5 92 224 100 125 225 239 201 48 222 39 68 125 106 192 81 124 91 (-99)
2015-12-23 22:22:11,498 DEBUG RFM2Pi Discarding RX frame 'unreliable content'? 27 127 63 67 173 58 123 147 181 253 156 240 94 153 123 221 252 38 92 164 239 (-99)
2015-12-23 22:22:15,435 DEBUG RFM2Pi Discarding RX frame 'unreliable content'? 46 46 29 45 189 128 32 175 154 226 134 143 101 46 67 45 39 231 223 181 168 (-100)
2015-12-23 22:22:15,895 DEBUG RFM2Pi Discarding RX frame 'unreliable content'? 37 68 190 215 70 108 168 118 53 67 163 27 94 208 116 200 172 151 57 225 228 (-96)
Same sort of thing really.
The emonBase and emonTH are approximately 2m apart on either side of my desk.
Re: Newbie: Can't get anything useful to happen
Sorry to hear you're having trouble. When the emonTH is powered up (batteries inserted) does the red LED light up for a few seconds then extinguish then not flash again? If so, this is correct operation. If the LED flashes this indicated a fault condition (sensor not detected?).
Have you updated your emonBase? Once logged onto local emoncms, head to admin > update emonPi: http://openenergymonitor.org/emon/modules/emonpi#update. The update should update your emonhub.conf file with the decoders for the latest emonTH firmware.
If update does not fix your issue, please could you post your emonhub.conf file, editable via the EmonHub tab in local Emoncms.
If you'rer still having issues, you might have a hardware problem. Please drop a line to shop support<EMAIL_ADDRESS>Re: Newbie: Can't get anything useful to happen
2 things - Firstly. Sorry! it should of been "quiet = true" not quietmode !
Next while your editing the emonhub.conf delete or "comment out" the uk/usa voltage setting (sorry I don't recall the exact wording) it's not used or recognized by the rfm69pi, that is why it's returning the full help text which emonhub is discarding line by line as "non-numeric content", this won't fix your issue but it will tidy the logs and ease the workload both end of the serial connection.
How about the rfm69pi led is it flashing when the emonTH led flashes?
Paul
Re: Newbie: Can't get anything useful to happen
OK... Moved them close together...
2015-12-23 22:45:48,807 DEBUG RFM2Pi Discarding RX frame 'unreliable content'? 175 159 75 75 188 70 173 77 28 102 225 127 103 123 27 182 35 104 148 20 170 (-97)
2015-12-23 22:45:49,717 DEBUG RFM2Pi Discarding RX frame 'unreliable content'? 153 177 3 75 207 79 243 220 253 124 187 210 142 159 194 92 7 106 242 246 166 (-93)
2015-12-23 22:45:52,134 DEBUG RFM2Pi Discarding RX frame 'unreliable content'? 31 128 177 64 1 151 60 185 199 27 114 185 255 145 98 183 56 71 4 9 136 (-100)
2015-12-23 22:45:58,663 DEBUG RFM2Pi Discarding RX frame 'unreliable content'? 50 19 126 208 127 254 125 230 238 65 122 5 195 44 209 242 197 217 144 116 53 (-96)
2015-12-23 22:45:59,493 DEBUG RFM2Pi Discarding RX frame 'unreliable content'? 8 175 56 49 121 240 111 80 247 137 255 222 114 120 129 70 7 187 116 157 220 (-96)
2015-12-23 22:46:00,816 DEBUG RFM2Pi Discarding RX frame 'unreliable content'? 39 159 140 242 159 80 65 185 254 216 207 94 92 198 183 60 79 239 90 125 30 (-97)
Re: Newbie: Can't get anything useful to happen
re: Flashing.
Not seeing the behavior you describe...
On the emonBase side the LED flickers once when the Pi boots up but otherwise is continously off.
On the emonTH side the LED turns on when power is first applied (by inserting two new AA cells) and stays continuously ON ever after.
No flashing.
Re: Newbie: Can't get anything useful to happen
Config attached but it is really the standard with a change to 868, quiet and no calibration.
Re: Newbie: Can't get anything useful to happen
Sounds like the problem at the emonTH end. I mis-read what you were saying about the TH LED. Do you have a USB programming lead to debug the emonTH? Is the DHT22 (or ds18b20) sensor seated firmly?
Paul
Re: Newbie: Can't get anything useful to happen
What sort of lead? I have most things! TTL/USB?
The DHT22 is seated OK. I actually tried it with DHT22 in and DHT22 out... same effect,,, LED turns on and stays on.
Re: Newbie: Can't get anything useful to happen
The 6 pin header in the emonTH is for hooking up one of these "USB to serial UART" programmers. It has serial rx, tx, 5v, gnd and a reset line that isn't needed unless programming. The rx, tx and gnd ref are all that is required for debug. I think the board is labeled to confirm the pinout.
Paul
Re: Newbie: Can't get anything useful to happen
Paul can type faster than I can.
The red LED on the emonTH is turned on at the start of the initialisation, and turned off when all the checks have completed. It does that even if no sensors are detected. So clearly it is stopping somewhere along the line, and you won't get anything in emonHub until that problem is solved.
After the LED is turned on, various messages are sent out via the serial port (the 6-pin header) and the programmer would allow you to read those so you could see where it is stopping.
[Edit]
Only GND is labelled.
In order, the pins are GND, CTS (unused), VCC (+5 V), TXO, RXI, DTR (Reset).
(n.b. TXO goes to the processor's RX pin, it receives data from the computer to the emonTH, connects to TXO on the programmer.)
One easy check - look to make sure the radio module is soldered in correctly.
If you haven't got the necessary hardware, then email Support because it sounds very much like a hardware problem.
Re: Newbie: Can't get anything useful to happen
Try using this emonhub.conf with the new node decoders for the new emonth firmware with node ID 23-26. (see attached). This should have been pulled in (or rather new nodes appended) during the emonPi update procedure.
Re: Newbie: Can't get anything useful to happen
Goodness me this is getting so confusing...
I attached the emonTH to my PC using a USB/TTL adapter I had lying around... I tried to listen to it... nothing... I tried to upload a sketch compiled from https://github.com/openenergymonitor/emonTh but that seemed to fail...
... and then I reset it and got the following out at 9600 baud...
emonTH - Firmware V1.6.1
OpenEnergyMonitor.org
RFM12B Init>
Node: 20 Freq: 868Mhz Network: 210
Detected DHT22 temp & humidity sesnor
No DS18B20 detected
DHT22 Temperature: 21.60C, DHT22 Humidity: 42.80%, Battery voltage: 0.00V
But only once!
On the other side I see...
2015-12-24 00:42:03,168 DEBUG RFM2Pi 127 NEW FRAME : OK 20 10 0 0 0 0 0 0 0 (-34)
2015-12-24 00:42:03,170 DEBUG RFM2Pi 127 Timestamp :<PHONE_NUMBER>.17
2015-12-24 00:42:03,170 DEBUG RFM2Pi 127 From Node : 20
2015-12-24 00:42:03,171 DEBUG RFM2Pi 127 Values : [1, 0, 0, 0]
2015-12-24 00:42:03,172 DEBUG RFM2Pi 127 RSSI : -34
2015-12-24 00:42:03,173 INFO RFM2Pi Publishing: emonhub/rx/20/values 1,0,0,0
2015-12-24 00:42:03,175 INFO RFM2Pi Publishing: emonhub/rx/20/rssi -34
2015-12-24 00:42:03,177 DEBUG RFM2Pi 127 adding frame to buffer => [1450917723, 20, 1, 0, 0, 0, -34]
2015-12-24 00:42:03,178 DEBUG RFM2Pi 127 Sent to channel' : ToEmonCMS
2015-12-24 00:42:03,381 DEBUG RFM2Pi Discarding RX frame 'unreliable content'? 148 8 0 0 0 0 0 0 0 (-45)
2015-12-24 00:42:03,483 DEBUG RFM2Pi 128 NEW FRAME : OK 20 7 0 0 0 0 0 0 0 (-32)
2015-12-24 00:42:03,485 DEBUG RFM2Pi 128 Timestamp :<PHONE_NUMBER>.48
2015-12-24 00:42:03,486 DEBUG RFM2Pi 128 From Node : 20
2015-12-24 00:42:03,487 DEBUG RFM2Pi 128 Values : [0.7000000000000001, 0, 0, 0]
2015-12-24 00:42:03,487 DEBUG RFM2Pi 128 RSSI : -32
2015-12-24 00:42:03,489 INFO RFM2Pi Publishing: emonhub/rx/20/values 0.7,0,0,0
2015-12-24 00:42:03,490 INFO RFM2Pi Publishing: emonhub/rx/20/rssi -32
2015-12-24 00:42:03,492 DEBUG RFM2Pi 128 adding frame to buffer => [1450917723, 20, 0.7000000000000001, 0, 0, 0, -32]
2015-12-24 00:42:03,493 DEBUG RFM2Pi 128 Sent to channel' : ToEmonCMS
2015-12-24 00:42:03,598 DEBUG RFM2Pi Discarding RX frame 'unreliable content'? 141 107 128 173 254 89 225 40 197 190 155 77 31 37 106 111 243 249 21 227 175 (-96)
2015-12-24 00:42:03,701 DEBUG RFM2Pi 129 NEW FRAME : OK 20 6 0 0 0 0 0 0 0 (-34)
2015-12-24 00:42:03,703 DEBUG RFM2Pi 129 Timestamp :<PHONE_NUMBER>.7
2015-12-24 00:42:03,703 DEBUG RFM2Pi 129 From Node : 20
2015-12-24 00:42:03,704 DEBUG RFM2Pi 129 Values : [0.6000000000000001, 0, 0, 0]
2015-12-24 00:42:03,705 DEBUG RFM2Pi 129 RSSI : -34
2015-12-24 00:42:03,714 INFO RFM2Pi Publishing: emonhub/rx/20/values 0.6,0,0,0
2015-12-24 00:42:03,716 INFO RFM2Pi Publishing: emonhub/rx/20/rssi -34
2015-12-24 00:42:03,718 DEBUG RFM2Pi 129 adding frame to buffer => [1450917723, 20, 0.6000000000000001, 0, 0, 0, -34]
2015-12-24 00:42:03,719 DEBUG RFM2Pi 129 Sent to channel' : ToEmonCMS
2015-12-24 00:42:03,821 DEBUG RFM2Pi 130 NEW FRAME : OK 20 5 0 0 0 0 0 0 0 (-34)
2015-12-24 00:42:03,823 DEBUG RFM2Pi 130 Timestamp :<PHONE_NUMBER>.82
2015-12-24 00:42:03,824 DEBUG RFM2Pi 130 From Node : 20
2015-12-24 00:42:03,825 DEBUG RFM2Pi 130 Values : [0.5, 0, 0, 0]
2015-12-24 00:42:03,826 DEBUG RFM2Pi 130 RSSI : -34
2015-12-24 00:42:03,827 INFO RFM2Pi Publishing: emonhub/rx/20/values 0.5,0,0,0
2015-12-24 00:42:03,829 INFO RFM2Pi Publishing: emonhub/rx/20/rssi -34
2015-12-24 00:42:03,831 DEBUG RFM2Pi 130 adding frame to buffer => [1450917723, 20, 0.5, 0, 0, 0, -34]
2015-12-24 00:42:03,831 DEBUG RFM2Pi 130 Sent to channel' : ToEmonCMS
2015-12-24 00:42:03,944 DEBUG RFM2Pi 131 NEW FRAME : OK 20 4 0 0 0 0 0 0 0 (-36)
2015-12-24 00:42:03,946 DEBUG RFM2Pi 131 Timestamp :<PHONE_NUMBER>.94
2015-12-24 00:42:03,946 DEBUG RFM2Pi 131 From Node : 20
2015-12-24 00:42:03,947 DEBUG RFM2Pi 131 Values : [0.4, 0, 0, 0]
2015-12-24 00:42:03,948 DEBUG RFM2Pi 131 RSSI : -36
2015-12-24 00:42:03,949 INFO RFM2Pi Publishing: emonhub/rx/20/values 0.4,0,0,0
2015-12-24 00:42:03,951 INFO RFM2Pi Publishing: emonhub/rx/20/rssi -36
2015-12-24 00:42:03,952 DEBUG RFM2Pi 131 adding frame to buffer => [1450917723, 20, 0.4, 0, 0, 0, -36]
2015-12-24 00:42:03,953 DEBUG RFM2Pi 131 Sent to channel' : ToEmonCMS
2015-12-24 00:42:04,056 DEBUG RFM2Pi 132 NEW FRAME : OK 20 3 0 0 0 0 0 0 0 (-34)
2015-12-24 00:42:04,057 DEBUG RFM2Pi 132 Timestamp :<PHONE_NUMBER>.06
2015-12-24 00:42:04,058 DEBUG RFM2Pi 132 From Node : 20
2015-12-24 00:42:04,059 DEBUG RFM2Pi 132 Values : [0.30000000000000004, 0, 0, 0]
2015-12-24 00:42:04,060 DEBUG RFM2Pi 132 RSSI : -34
2015-12-24 00:42:04,061 INFO RFM2Pi Publishing: emonhub/rx/20/values 0.3,0,0,0
2015-12-24 00:42:04,062 INFO RFM2Pi Publishing: emonhub/rx/20/rssi -34
2015-12-24 00:42:04,064 DEBUG RFM2Pi 132 adding frame to buffer => [1450917724, 20, 0.30000000000000004, 0, 0, 0, -34]
2015-12-24 00:42:04,065 DEBUG RFM2Pi 132 Sent to channel' : ToEmonCMS
which looks much more hopeful.
The behaviour of the emonTH is different now... (no idea why)... it now turns its LED on (for approx 3 seconds) when it starts, sends a measurement and then goes to sleep forever.... At least that proves that some of the hardware works.
The emonTH board is labelled v1.4.1 April 2014
Should I reflash the emonTH? If so, how do I do this... which version of s/w is correct for this board? Do I need to connect other wires apart from TX.RX.5V&GND?
Thanks
Nivag
Re: Newbie: Can't get anything useful to happen
Making good progress now... no idea why.
5 mins later I got another update!
Looking good
I will need to update the firmware to support multiple 18B20s but we can do that on another thread.
Very weird.
Re: Newbie: Can't get anything useful to happen
"Very weird."
I second that. I'll put money on a bad joint somewhere and it'll come back.
I think all the V1.4s used the RFμ328 processor module. It should have that on the module itself - the second layer of PCB. (The third is the radio - it should be a RFM12B, there are pictures in Resources > RFM Radio Modules - Identifying different types.)
If so, you must use sketches that include RFu_JeeLib - "#include <RFu_JeeLib.h>". This https://github.com/openenergymonitor/emonTH/blob/master/emonTH_V1_4_DHT2... appears to be the one you want.
If you're going to program yours, you need to connect the programmer's RTS to the Reset (aka DTR). They say it's possible with careful timing to manually reset it by grounding reset - I've never tried so I don't know the timing of that.
Re: Newbie: Can't get anything useful to happen
I agree. Probably a poor solder joint and the physical stress of taking it out of the case twice has moved something ever so slightly. I'll see how it goes and possibly reflow the solder where the bolt-on PCB connects to the main-board if it recurs... or maybe return it for a swap.


Class: Elephas::Backends::Base
- Inherits:
-
Object
- Object
- Elephas::Backends::Base
- Includes:
- Lazier::I18n
- Defined in:
- lib/elephas/backends/base.rb
Overview
The a base backend. All data-related methods must be overriden.
Direct Known Subclasses
Instance Method Summary (collapse)
-
- (TrueClass|FalseClass) delete(key)
Deletes a value from the cache.
-
- (TrueClass|FalseClass) exists?(key)
Checks if a key exists in the cache.
-
- (Object) now
Returns the current time for comparing with entries TTL.
-
- (Entry|NilClass) read(key)
Reads a value from the cache.
-
- (Object) write(key, value, options = {})
Writes a value to the cache.
Instance Method Details
- (TrueClass|FalseClass) delete(key)
Deletes a value from the cache.
37 38 39 |
# File 'lib/elephas/backends/base.rb', line 37 def delete(key) unimplemented end |
- (TrueClass|FalseClass) exists?(key)
Checks if a key exists in the cache.
45 46 47 |
# File 'lib/elephas/backends/base.rb', line 45 def exists?(key) unimplemented end |
- (Object) now
Returns the current time for comparing with entries TTL.
52 53 54 |
# File 'lib/elephas/backends/base.rb', line 52 def now ::Time.now.to_f end |
- (Entry|NilClass) read(key)
Reads a value from the cache.
18 19 20 |
# File 'lib/elephas/backends/base.rb', line 18 def read(key) unimplemented end |
- (Object) write(key, value, options = {})
Writes a value to the cache.
29 30 31 |
# File 'lib/elephas/backends/base.rb', line 29 def write(key, value, = {}) unimplemented end |


module LZero where Variables are just strings. data V = V String
As are constants. > data C = C String
Structures consist of a constant and a list of subterms. > data S = S C [S] Thus, a consant is a special case of a structure with arity 0.
0


Problem Solving
Simple Solutions
Last week I ran into a simple problem, although I didn't know it at the time. We were learning about the DOM, and the teaching material was expaining how to select specific HTML elements on a page. There were screenshots showing the DevTools console tab with lines of input/output, however when I went into the DevTools console tab in my browser it was empty. Hmmm....
So why was nothing showing up in my console tab? I tried typing some JavaScript into my text editor, saving, and then refreshing my browser - but this wasn't doing what I was after. Why couldn't I see the Document Object Model for my page? Was there something wrong with my settings? I started to panic, frantically searching Google for answers. How could I work my way through this module when I seemingly can't even get to the starting line?
I took a break.
When I came back to the problem about an hour later, I had left the anxiety behind and was ready to tackle the problem step-by-step. I went back on Google and found a video tutorial where I could see someone using the DevTools console in real time. They were typing into it. Simple as that. All that panic and anxiety I had felt earlier suddenly gave way to a weird mixture of relief and amusement.
The biggest takeaway from this ordeal was to do with mindset. Sometimes we're just not in the right headspace to solve a problem for whatever reason, no matter how simple the issue. A quick break away from the problem can help ease feelings of stress and overwhelm, leading to a greater sense of clarity when we come back to it.
Elegant Solutions
Sometimes we face a problem where it's unlikely that we'll stumble on the answer without a proper plan. Taking a break can certainly help, but we need some other techniques in our problem-solving arsenal.
I found myself in this situation today while working on some JavaScript kata. I hit a wall. The focus was built-in methods, and I just couldn't get my head around how to take a sentence string and remove every instance of a particular word. I jumped on Google and started searching for answers. But every time I found some information that could be useful, my mind couldn't process how it would help me solve the problem as a whole. I wrote some code, ran it, saw the error messages and then deleted my code. This carried on for a solid 30 minutes at least, and I was getting frantic.
Did I figure out a solution?
Yes.
So how did I do it?
First of all I took a moment to reflect on how I was approaching the problem. I was looking at it as a whole instead of breaking it down into smaller pieces. Well there's a good place to start. So I broke the solution down into three steps of pseudocode:
- Split the sentence string into an array of single words
- Filter out every instance of the specified word
- Return the concatenated string made up of the remaining words in the array
I already knew how to code the first step, so I wrote the statement and console.logged it to check I was on the right track. Now I was getting somewhere, and felt the confidence start building. The second step required me to learn how the filter method is implemented, so I Googled it with an exact idea of how I needed it to fit my solution. I wrote the statement and tested it, but got an error message. After a couple more attempts I had solved the second step (sort of). I had filtered out each instance of the specified word, but this is what I was left with - I actually wanted the other words. So I figured using the 'not' operator was the logical fix. Tried to implement this a couple of times and got it to work. Great!
But hang on a moment. There were still instances of the word that hadn't been filtered due to capitalisation of different letters. So I fitted the toLowerCase method as part of the search criteria. I had slayed the beast! Now I just had to write the last step which I knew would be easy - a return statement which used the join method to concatenate the remaining words in the array. And just like that, a problem which had initially seemed so difficult had now been solved.
I felt a great sense of satisfaction having put some of the problem-solving techniques into practice and overcoming a real challenge. The real key was breaking it into smaller pieces through pseudocode, solving one step at a time, and letting the confidence build with each small victory.
Problem-Solving Toolkit
- Pseudocode
- Trying something
- Rubber ducky method
- Reading error messages
- Console.logging
- Googling
- Asking your peers for help
- Asking coaches for help
- Improving your process with reflection
I've been practising the pseudocode technique and now feel very confident using it. It's just a matter of remembering to use it, as it's easy to jump in and start coding without taking a moment to formulate your plan of attack.
This is usually my go-to, but it can be inefficient without planning out the solution first. I've found that it's easy to start coding and then realise that your solution is not meeting requirements. I'm confident with the technique itself, just need to refine how I use it in conjunction with other techniques.
I haven't tried this problem-solving method yet. I don't think I'd feel confident using it, but it's important to note that we improve at things through repetition. Perhaps I'll try the rubber ducky method next time and see how it goes.
I'm relatively confident at reading error messages, and have been using this technique in conjunction with 'trying something' as a feedback loop of sorts. I wouldn't say I understand every component of the error messages, but I'm generally able to filter out the information I need in order to make the required adjustments to my code.
I use the console.logging technique sometimes, to check what my code is actually doing and make sure I'm on the right track. For example, console.logging some code to check the output before putting it in a function return statement. I feel pretty confident with this technique.
Another one of my go-to techniques, not just for coding but life in general. I'm quite confident Googling solutions, however sometimes getting the wording right can be tricky - especially when you don't completely understand the information you're trying to find.
This would be one of my weaker areas, and it's a technique that I would generally only use once I've built up a good relationship with someone to the point where I feel confident asking them for help. It depends on the problem though - if it's something where I'd struggle to find the answer on Google, then I'd definitely consider asking peers for help.
Similar to asking peers for help, I tend to seek the solution myself before asking a coach. In the right situation I would use this method, but it depends on the nature of the problem. My confidence using this technique would be at an average level.
I'm not entirely confident using reflection to improve my process, and often don't even consciously consider using this technique. I find that when I do use it, it's generally because I've hit a wall, taken some time away from the problem, and my mind is drifting back to the problem in a calmer state. At this point I do find reflection beneficial, however I'd love to be able to tap into it at will.