Convenience plotting functions¶
This is an overview of available convenience plotting functions in
HoggormPlot. They are based on the main plot function
hoggorm.main_plot.plot
and provide simplified interfaces for interactive
use.
Explained variance plot¶
Note
The two functions below, i.e. .explVar
and .explainedVariance
are two options of how to generate explained variance plots. They
generate identical plots when provided the same input paramters
or arguments.
-
hoggormplot.conv_explainedVariancePlot.
explVar
(model, which=[], cummulative=True, individual=False, validated=[], figsize=None)¶ This function generates explained variances plots of hoggorm models.
Parameters: - model (nipalsPCR/nipalsPLSR1/nipalsPLSR2 class object computed in Hoggorm.) –
- which (list, optional) –
This list may contain one string argument. The following options are available:
'X'
'Y'
'Both'
(defaults listed with ‘plots’ parameter)
- cumulative (boolean, optional) – When set to
'cumulative=TRUE'
explained variances will be plotted cumulatively instead of per component. - individual (boolean, optional) – When set to
'individual=TRUE'
explained variances will be plotted per variable instead of for all variables together. - validated (list, optional) – When set to
'validated=[TRUE]'
validated values are plotted if applicable (scores => False, explainedVariance => True). - figsize (tuple, optional) – Sets figure width and height in inches
Returns: Return type: An explained variance plot based on the input Hoggorm model.
EXAMPLES
>>> import hoggorm as ho >>> import hoggormplot as hopl >>> myModel = ho.nipalsPLS2(arrX=my_X_data, arrY=my_Y_data, cvType=["loo"]) >>> hopl.explVar(myModel, which=['Both'], individual=False) >>> hopl.explVar(myModel) >>> hopl.explVar(myModel, cumulative=True)
-
hoggormplot.conv_explainedVariancePlot.
explainedVariance
(model, which=[], cummulative=True, individual=False, validated=[], figsize=None)¶ This function generates explained variances plots of hoggorm models.
Parameters: - model (nipalsPCR/nipalsPLSR1/nipalsPLSR2 class object computed in Hoggorm.) –
- which (list, optional) –
This list may contain one string argument. The following options are available:
'X'
'Y'
'Both'
(defaults listed with ‘plots’ parameter)
- cumulative (boolean, optional) – When set to
'cumulative=TRUE'
explained variances will be plotted cumulatively instead of per component. - individual (boolean, optional) – When set to
'individual=TRUE'
explained variances will be plotted per variable instead of for all variables together. - validated (list, optional) – When set to
'validated=[TRUE]'
validated values are plotted if applicable (scores => False, explainedVariance => True). - figsize (tuple, optional) – Sets figure width and height in inches
Returns: Return type: An explained variance plot based on the input Hoggorm model.
EXAMPLES
>>> import hoggorm as ho >>> import hoggormplot as hopl >>> myModel = ho.nipalsPLS2(arrX=my_X_data, arrY=my_Y_data, cvType=["loo"]) >>> hopl.explainedVariance(myModel, which=['Both'], individual=False) >>> hopl.explainedVariance(myModel) >>> hopl.explainedVariance(myModel, cumulative=True)
Scores plot¶
-
hoggormplot.conv_scoresPlot.
scores
(model, comp=[1, 2], which=[], objNames=[], newX=[], newY=[], newObjNames=[], figsize=None)¶ This is a convenience function that generates scores plots of hoggorm models.
Parameters: - model (nipalsPCR/nipalsPLSR1/nipalsPLSR2 class object computed in Hoggorm) – The statistical results of the submitted model will be visualized.
- comp (list, optional) – The list contains components to be displayed. Defaults to [1,2].
- which (list, optional) –
This list may contain one string argument. The following options are available:
'X'
'Y'
'Both'
(defaults listed with ‘plots’ parameter)
- objNames (list, optional) – Object names may be provided in this list.
- newX (list, optional) – The list contains one array of new measurement data X.
- newY (list, optional) – The list contains one array of new measurements of Y.
- newObjNames (list, optional) – The list contains object names of new measurement data in X or Y.
- figsize (tuple, optional) – Sets figure width and height in inches
Returns: Return type: A scores plot.
EXAMPLES
>>> import hoggorm as ho >>> import hoggormplot as hopl >>> myModel = ho.nipalsPLS2(arrX=my_X_data, arrY=my_Y_data, cvType=["loo"]) >>> hopl.scores(myModel, comp=[1, 3]) >>> hopl.scores(myModel)
Loadings plot¶
-
hoggormplot.conv_loadingsPlot.
loadings
(model, comp=[1, 2], which=[], line=False, weights=False, XvarNames=[], YvarNames=[], figsize=None)¶ This is a convenience function that generates loadings plots of hoggorm models.
Parameters: - model (nipalsPCR/nipalsPLSR1/nipalsPLSR2 class object computed in Hoggorm) – The statistical results of the submitted model will be visualized.
- comp (list, optional) – The list contains components to be displayed. Defaults to [1,2].
- which (list, optional) –
This list may contain one string argument. The following options are available:
'X'
'Y'
'Both'
(defaults listed with ‘plots’ parameter)
- line (boolean, optional) – When set to
'line=TRUE'
loadings (weights) will be plotted as lines / spectra instead of as points in a scatter plot. - weights (boolean, optional) – When set to
'weights=TRUE'
loading weights will be plotted instead of loadings. - XvarNames (list, optional) – Names of variables in array X may be provided in this list.
- YvarNames (list, optional) – Names of variables in Y may be provided in this list.
- figsize (tuple, optional) – Sets figure width and height in inches
Returns: Return type: A loadings plot.
EXAMPLES
>>> import hoggorm as ho >>> import hoggormplot as hopl >>> myModel = ho.nipalsPLS2(arrX=my_X_data, arrY=my_Y_data, cvType=["loo"]) >>> hopl.loadings(myModel, comp=[2,4], which=['Both']) >>> hopl.loadings(myModel) >>> hopl.loadings(myModel, line=True, weights=False)
Correlation loadings plot¶
-
hoggormplot.conv_correlationLoadingsPlot.
correlationLoadings
(model, comp=[1, 2], which=[], XvarNames=[], YvarNames=[], figsize=None)¶ This is a convenience plot function which generates correlation loadings plots of hoggorm models.
Parameters: - model (nipalsPCR/nipalsPLSR1/nipalsPLSR2 class object computed in Hoggorm) – The statistical results of the submitted model will be visualized.
- comp (list, optional) – The list contains components to be displayed. Defaults to [1,2].
- which (list, optional) –
This list may contain one string argument. The following options are available:
'X'
'Y'
'Both'
(defaults listed with ‘plots’ parameter)
- XvarNames (list, optional) – Names of variables in array X may be provided in this list.
- YvarNames (list, optional) – Names of variables in Y may be provided in this list.
- figsize (tuple, optional) – Sets figure width and height in inches
Returns: Return type: A correlation loadings plot based on the input hoggorm model.
EXAMPLES
>>> import hoggorm as ho >>> import hoggormplot as hopl >>> myModel = ho.nipalsPLS2(arrX=my_X_data, arrY=my_Y_data, cvType=["loo"]) >>> hopl.correlationLoadings(myModel, comp=[2,4], which=['Both']) >>> hopl.correlationLoadings(myModel)
Biplot¶
-
hoggormplot.conv_biPlot.
biplot
(model, comp=[1, 2], which=[], objNames=[], XvarNames=[], YvarNames=[], figsize=None)¶ This is a convenience plot function which generates a bi-plot of hoggorm models.
Parameters: - model (nipalsPCR/nipalsPLSR1/nipalsPLSR2 class object computed in Hoggorm.) –
- comp (list, optional) – The list contains components to be displayed. Defaults to [1,2].
- which (list, optional) –
This list may contain one string argument. The following options are available:
'X'
'Y'
'Both'
(defaults listed with ‘plots’ parameter)
- objNames (list, optional) – Object names may be provided in this list.
- XvarNames (list, optional) – Names of variables in array X may be provided in this list.
- YvarNames (list, optional) – Names of variables in Y may be provided in this list.
- figsize (tuple, optional) – Sets figure width and height in inches
Returns: Return type: A bi-plot based on the input hoggorm model.
EXAMPLES
>>> import hoggorm as ho >>> import hoggormplot as hopl >>> myModel = ho.nipalsPLS2(arrX=my_X_data, arrY=my_Y_data, cvType=["loo"]) >>> hopl.biplot(myModel, comp=[2,4], which=['Both']) >>> hopl.biplot(myModel)
Coefficients plot¶
Note
The two functions below, i.e. .coeff
and .coefficients
are two
options of how to generate explained variance plots. They generate
identical plots when provided the same input paramters or arguments.
-
hoggormplot.conv_coefficientsPlot.
coefficients
(model, comp=[1], figsize=None)¶ This is a convenience plot function which generates coefficients plots of hoggorm models.
Parameters: - model (nipalsPCR/nipalsPLSR1/nipalsPLSR2 class object computed in Hoggorm) –
- comp (list, optional) – The list contains components to be displayed. Defaults to [1].
- figsize (tuple, optional) – Sets figure width and height in inches
Returns: Return type: A coefficients plot based on the input Hoggorm model.
EXAMPLES
>>> import hoggorm as ho >>> import hoggormplot as hopl >>> myModel = ho.nipalsPLS2(arrX=my_X_data, arrY=my_Y_data, cvType=["loo"]) >>> hopl.coefficients(myModel, comp=[1, 2, 3]) >>> hopl.coefficients(myModel) >>> hopl.coefficients(myModel, comp=[2])
-
hoggormplot.conv_coefficientsPlot.
coeffs
(model, comp=[1], figsize=None)¶ This is a convenience plot function which generates coefficients plots of hoggorm models. Note that this convenience function is identical to
hoggorm.resPlotting.coefficients
.Parameters: - model (nipalsPCR/nipalsPLSR1/nipalsPLSR2 class object computed in Hoggorm) –
- comp (list, optional) – The list contains components to be displayed. Defaults to [1].
- figsize (tuple, optional) – Sets figure width and height in inches
Returns: Return type: A coefficients plot based on the input Hoggorm model.
EXAMPLES
>>> import hoggorm as ho >>> import hoggormplot as hopl >>> myModel = ho.nipalsPLS2(arrX=my_X_data, arrY=my_Y_data, cvType=["loo"]) >>> hopl.coeffs(myModel, comp=[1, 2, 3]) >>> hopl.coeffs(myModel) >>> hopl.coeffs(myModel, comp=[2])
Loading weights plot¶
-
hoggormplot.conv_loadingWeightsPlot.
loadingWeights
(model, comp=[1, 2], which=[], line=False, weights=True, XvarNames=[], YvarNames=[], figsize=None)¶ This is a convenience function that generates loading weights plots of hoggorm models.
Parameters: - model (nipalsPCR/nipalsPLSR1/nipalsPLSR2 class object computed in Hoggorm) – The statistical results of the submitted model will be visualized.
- comp (list, optional) – The list contains components to be displayed. Defaults to [1,2].
- which (list, optional) –
This list may contain one string argument. The following options are available:
'X'
'Y'
'Both'
(defaults listed with ‘plots’ parameter)
- line (boolean, optional) – When set to
'line=TRUE'
loadings (weights) will be plotted as lines / spectra instead of as points in a scatter plot. - weights (boolean, optional) – When set to
'weights=TRUE'
loading weights will be plotted instead of loadings. - XvarNames (list, optional) – Names of variables in array X may be provided in this list.
- YvarNames (list, optional) – Names of variables in Y may be provided in this list.
- figsize (tuple, optional) – Sets figure width and height in inches
Returns: Return type: A loadings weights plot.
EXAMPLES
>>> import hoggorm as ho >>> import hoggormplot as hopl >>> myModel = ho.nipalsPLS2(arrX=my_X_data, arrY=my_Y_data, cvType=["loo"]) >>> hopl.loadingWeights(myModel, comp=[2,4], which=['Both']) >>> hopl.loadingWeights(myModel) >>> hopl.loadingWeights(myModel, line=True, weights=True)
Predict plot¶
-
hoggormplot.conv_predictPlot.
predict
(model, comp=[1, 2], objNames=[], newX=[], newY=[], newObjNames=[], figsize=None)¶ This is a convenience function that generates plots of predicted vs. original values of hoggorm models.
Parameters: - model (nipalsPCR/nipalsPLSR1/nipalsPLSR2 class object computed in Hoggorm) – The statistical results of the submitted model will be visualized.
- comp (list, optional) – The list contains components to be displayed. Defaults to [1,2].
- newX (list, optional) – The list contains one array of new measurement data X.
- newY (list, optional) – The list contains one array of new measurements of Y.
- newObjNames (list, optional) – The list contains object names of new measurement data in X or Y.
- figsize (tuple, optional) – Sets figure width and height in inches
Returns: Return type: A predicted vs. measured plot.
EXAMPLES
>>> import hoggorm as ho >>> import hoggormplot as hopl >>> myModel = ho.nipalsPLS2(arrX=my_X_data, arrY=my_Y_data, cvType=["loo"]) >>> hopl.predict(myModel) >>> hopl.predict(myModel, comp=[3, 4])


I would like to know how and where the time transmission from the pi is put together and what determines the time to send the data. I need not only h,i,s data but also w,y,m,d data in the output frame. I looked in the time_controller.php module and tried modifying the output there but that didn't change the output sent from the rfm.
The reason I need this is for local controlling devices to sync to NTP time instead of building a RTC onto every board. I want to optimize device run times for variable rates which change three or four times each day and differ winter, summer and weekends, hence the need for full calendar data. If nothing else if I could just get unix time sent out I could decode all the time data from that.
Regards...
Re: Time transmission
What are you running software and version wise ? emonhub, emoncms?
emonhub hub can transmit the time for emonGLCD, this could be tailored to your need if you don't run a emonGLCD.
Paul
Re: Time transmission
Hi Paul, I'm running the emonSD-13-03-15 version with emonhub. I have set the hub transmit interval to 60 seconds and am receiving that at the remote units, but I need more than the hms data. Where is the frame formatted and what triggers the transmission? I have noticed that the seconds are not synced with the NTP time, is always zero, and may be off by 15-20 seconds. I can live with that, but I need the full date string or the unix time. I can decode that in the remote modules if necessary, and that would only extend the awake time by a ms or so.
Thanks for the quick response...
Re: Time transmission
The omission of seconds predates emonhub, emonGLCD expects the data in hours & mins only.
The time is broadcast every "interval" seconds, usually set to 300 for 5min intervals.
The time is NTP accurate if the Pi is network connected but has the seconds excluded so could be appear upto 59 seconds out.
The format of the transmitted time is set in /home/pi/emonhub/src/emonhub_interfacer.py line 620 something like
self._ser.write("%02d,%02d,%02d,%02d,%02d,%02ds" % (now.year, now.month, now.date, now.hour, now.minute, now.second)
may work ok but the see python timedate for more info, (you will need to send year as 2 digit to keep it within 0-255)
Paul
Re: Time transmission
Correction
self._ser.write("%02d,%02d,%02d,%02d,%02d,%02d,00s" % (now.year, now.month, now.date, now.hour, now.minute, now.second)
Sorry the number immediately before the trailing "s" is the node id the packet is sent to.
Paul
Re: Time transmission
Thanks for that info, Paul. I was wondering what the "00" was for, I think this means broadcast to all. I'll tinker with that for a bit and let you know how it turns out.
I had set up a nanode to send the data I needed. It doesn't have the range required, but the RFM69 connected to the pi can reach reliably.
Re: Time transmission
Hi Paul, I almost got the fields I wanted using the following...
self._ser.write("116,%02d,%02d,%02d,%02d,%02d,%02d,00s" % (now.hour, now.minute, now.second, now.day, now.month, now.year - 2000))
The 116 I use to conform to the original GLCD time format which the nanode still uses, the - 2000 fixes the one byte year bug for the next 85 years, and now.day instead of now.date returned no errors when emonhub restarted. My packet sniffer reported...
OK 30 116 16 25 15 6 17 4 15 nanode packet
OK 1 116 16 25 18 17 4 15 emonhub packet 3 seconds later
Now all I need is to put dow in there and I'm golden for this little problem.
Thanks again for your help.
Re: Time transmission
now.weekday() ?
Re: Time transmission
self._ser.write("116,%02d,%02d,%02d,%02d,%02d,%02d,%02d,00s" % (now.hour, now.minute, now.second, now.weekday(), now.day, now.month, now.year - 2000))
results in...
OK 1 116 18 9 14 4 17 4 15
You 'da MAN!!!!
Now to change the id to 30 and unplug the nanode.
Re: Time transmission
Hi Paul, I have another question for you, I had to change line 569
if key == 'baseid' and int(setting) >=1 and int(setting) <=26:
to if key == 'baseid' and int(setting) >=1 and int(setting) <=31:
in order to set the baseid to 30. Is there some reason for the limit? I don't want to run over a land mine somewhere down the road. As for now, all devices which receive the time are happy with it.
Once more, thanks for your help.
Regards....
Re: Time transmission
Oh yes, thanks for the reminder. I also asked myself that same question sometime ago but forgot all about it. I see no reason why it would be 26 I have seen it else where but know you can use up to 30, you could probably use 31 as a baseid too but it's not ideal as that is promiscuous mode.
I guess I will change it in emonhub too :-)
Paul
Re: Time transmission
Hi Paul, the long time string is fully backward compatible with emonGLCD programs as the GLCD program just picks out data[1-3] and ignores any other data received by the radio. It might help someone needing similar time data to help with variable rate planning and control. I plan to use this to separate power rates, and to control my water heater, pool and irrigation pumps, hydroponics lighting, and HVAC setpoints for starters. Also the leading byte (data[0]) can signal the receivers what type of data is being sent, such as ascii t (116) for time, or a 'u' for unix time, or 'c' for control data such as setpoint or shutdown info, or whatever the user wants for configuration.
Anyway, thanks again for the assistance, and if this isn't incorporated into the emonhub programs I will keep a copy of our changes and edit as needed for future upgrades.
Regards...
Re: Time transmission
I'm glad you got it working the way you want, There are changes being made to how emonhub passes "control" data, control being a loose term for data going in the opposite direction to the existing data collection.
The sketch you are using in the emonGLCD may be an older one from the initial nanodeRF implementation, I don't think the later sketches require the "t" (forgive me if I'm mistaken I have zero glcd experience) many of the later sketches also handle other data like PV etc so I'm not sure the larger packet will suit all, It's a good idea to provide a more accurate time so maybe emonhub should offer either "legacy" or "unix" time updates.
When using these time updates to make the most of tarrifed time periods care should be taken to factor in (or not) any daylight saving. eg my economy7 period sticks to UTC so I have a UTC cron entry informing emoncms (via emonhub) of the period changes. If I were to use local time (ie legacy glcd type updates) it would out by an hour all summer.
Thanks for feeding back, it all helps with shaping emonhub.
Paul
Re: Time transmission
Historically, emoncms.org has sent an ASCII string "tHH,MM,SS". The Nanode checks for the 't' and retransmits 4 bytes: 't', hours, mins, secs. However, whilst the "HomeEnergyMonitor" sketch expects this (but ignores the "t", responding by virtue of the Base NodeID), the "SolarPV" sketch expects two integers: hours & mins.
[To quote someone else: "That's the beauty of standards, there are so many to choose from!"]
Re: Time transmission
My local provider uses local time to set the tariff, so having rpi handle the messy dst details saves a lot of pain in the programming. Perhaps another switch in emonhub.conf to select the format could be implemented to allow user selection. Something like 'time_format = pv' or 'time_format = +ymd' or just default to hms as you do for other config settings.
BTW, emonhub greatly simplifies configuration of emoncms. Great job on this. It would be nice if all switches and their limits were listed in the .conf file in the comments section, but now that I know where to look I can tinker with it.
Re: Time transmission
Paul - I am going through a similar exercise as James (above) except I only want to add just the seconds for now. I made the changes to the .py file, but there was no change to the “broadcasting time” line in the emonhub log file.
I shutdown and restarted the emonPi and the changes appeared as expected. Is there an easy way to cause the emonHub to see .PY file changes?
Jon
Re: Time transmission
No, with python the changes will only get picked up as the program (or module) is initialized but you don't need to reboot the Pi, just use " sudo service emonhub restart " at the command prompt, depending on it's workload etc it can be quite slow to restart (when you are watching it) as it will try to ensure outstanding jobs are completed before stopping.
Paul


Hi, I have this problem in internal installation Rpi, I can see the dashboard only if I'm logged, without login i can't see the "solare" dashboard
this is my address
http://casamaurolaura.dyndns.org/emoncms/dashboard/view/solare
can I see this dashboard without login?
thansk
Re: SOLVED: dashboard in local only displays if I am logged on
Have you set your 'feeds' to public, and your dashboards to 'public' and 'published'?
View your dashboard by visiting http://casaml.dyndns.biz/emoncms/your_username
Paul
Re: SOLVED: dashboard in local only displays if I am logged on
yes, I have all feeds public, so I see only if I'm login
this is a new address
http://casaml.dyndns.biz/emoncms/dashboard/view/solare
Re: SOLVED: dashboard in local only displays if I am logged on
Please read my post above again!
Paul
Re: SOLVED: dashboard in local only displays if I am logged on
yes all feed is setting "public" and all dashboard is setting "public"
http://casaml.dyndns.biz/emoncms/dashboard/view/solare
I see only black top-bar
I have this image on Rpi http://emoncms.org/site/docs/raspberrypiimage
Re: SOLVED: dashboard in local only displays if I am logged on
Please read my post above again!
Paul
Re: SOLVED: dashboard in local only displays if I am logged on
ook now is ok, thanks
Re: SOLVED: dashboard in local only displays if I am logged on
I have an identical problem.
I have a working emoncms v 5.0 on RasberryPi. All dashboards (and feeds of course) are public and visible when I'm not logged in.
I have installed emoncms v 6.0 on an Ubuntu server, set engine to MySQL and copied MySQL database. It works fine, everything is as expected. However, public dashboards are not visible when I'm not logged in.
Both dashboards and feeds are public and published - see attached images - this is how it is set also on RPI.
To conclude, public dashboards in v6 are not visible when user is not logged in.
Re: SOLVED: dashboard in local only displays if I am logged on
To confirm, public dashboards in V6 are visible when the user is not logged in, provided the settings are set up correctly, and you are using the correct URL to access it.
Please run through the checklist that I wrote in this post.
Let us know how you get on.
Paul
Re: SOLVED: dashboard in local only displays if I am logged on
Feeds Public: YES - see the image above
Dashboards Public: YES - see the image above
Dashboards Published: YES - see the image above
Dashboard url: /emoncms/username/dashboardalias (according to http://emoncms.org/site/docs/dashboards)
I get empty page with the option to log in.
Please note that the same settings on v5 (running on RPI) work as expected!
Re: SOLVED: dashboard in local only displays if I am logged on
You're not using the same URL format as I put in my checklist!
Paul
Re: SOLVED: dashboard in local only displays if I am logged on
Dashboard url /emoncms/username generates the same output.
Re: SOLVED: dashboard in local only displays if I am logged on
Igor, PM me your URL and username & I'll take a look.
Re: SOLVED: dashboard in local only displays if I am logged on
Sent, thanks!
Re: SOLVED: dashboard in local only displays if I am logged on
Solved the problem!
In fact the problem was undocumented feature.
Public dashboards do not work with the "admin" user.
Modified teh index.php fiel and now IT WORKS!
Re: SOLVED: dashboard in local only displays if I am logged on
Firstly sorry for the language can not be right.
I have emoncms v6 in my local installation with raspberry and hdd 2.5 ", i have all feeds and dashboard settings in public and dashboard published and only I can see if I am logged on.
In my emoncms.org is run ok.
I have apparently the same problem as "Funa" but I can not understand what was the solution.
Can you help me understand?
Thank you.
Re: SOLVED: dashboard in local only displays if I am logged on
Moix try changing the username of your admin user to another name, I keep forgetting about this when creating default users.
Re: SOLVED: dashboard in local only displays if I am logged on
Hello again, I had already tried this option and come back to read again the post I have realized my stupid mistake entering the IP address which did not indicate the user name if not only "my ip /emoncms /dashboard /view "
Thanks for your time.
Re: SOLVED: dashboard in local only displays if I am logged on
Paul,
Earlier in this thread you wrote
That reminded me of something I'd read in the emoncms docs:
Dashboard configuration
Each dashboard can have a human readable name a menu alias, and a description and can
be a main dashboard a published dashboard and a public dashboard.
A main dashboard is the equivalent to the front page when you'r in run mode.
A published dashboard is a daschboard that you have finished editing but is not public.
A public dashboard is a dashboard that you choose to share publicly via your username
to the web.
These options are set by clicking on the configure button in the editor:
The line about published dashboards says not public. (I copied it straight from the page, hence
the misspelled words)
Typo error, or the word 'not' in the wrong place in the sentence?
Regards,
Bill
Re: SOLVED: dashboard in local only displays if I am logged on
Thanks Bill, it is confusing! so I've reworded the sentence to read;
'A published dashboard is a dashboard that you have finished editing and is publicly visible.'
Hope that it is clearer.
Paul


{% extends "base.html" %} {% block content %}
You have successfully reset your password. Click here to login


About
Shonali Sabherwal is a celebrity macrobiotic nutritionist. She is known for her brand Soulfood, which is about the macrobiotic approach to lifestyle and diet. Under this brand she endorses all products which include her consultations, meals & ready-to-eat products.[1] She has actively been a part of the macrobiotic culture in India since 2006. She is the author of the books – 'The Beauty Diet' published in 2012, and 'The Love Diet' published in February 2014.
Shonali has authored two books: ‘The Beauty Diet’ and ‘The Love Diet’. Both these books focus on creating a healthy life with the Macrobiotic approach and have diets related to health, beauty, creating love in one's life, and maintaining a calm mind.
In January 2012, she authored 'The Beauty Diet' which was published by Random House. The Beauty Diet' focuses mainly on the basics of the Macrobiotic approach to health and beauty. It provides information on detox diets and contains testimonials from celebrity clients.
‘The Love Diet' published in 2014 focuses on concepts like self-love, compassionate love, and love between the sexes and links this to a healthy approach to food that can help minimise complexities in relationships with oneself an with others, as well as enhance all shades of love.
After professionally entering the field Macrobiotics in 2008, Shonali has extended her services from counselling to other allied fields. She started a catering service of macrobiotic health meals and macrobiotic consultations on diet and lifestyle. She also conducts cooking classes and produces ready-to-eat snacks and products.
Shonali's clientele includes people from various walks of life. She counsels corporate professionals, lawyers, homemakers, aspiring models, film stars and airline crew. She also advises patients suffering from disorders like diabetes, polycystic ovary disorder, thyroid, cancer, skin conditions and other health problems/conditions.Shonali has counselled well-known film personalities of Bollywood – Indian film industry. These include Hema Malini, Katrina Kaif, Esha Deol, Jacqueline Fernandez,Neha Dhupia, Shekhar Kapur, Kabir Bedi, Dalip Tahil, Vikram Bhatt and others.


Kim selfies is an online photobooth which predicates itself on the fetishization and subsequent emulation of Kim Kardashian in American pop culture. Taking Kim Kardashian as a figurehead of sorts, the project intends to incite a performance from the user in which the common practice of selfie-taking is brought into new light. The user is scored on the accuracy of their performance, alluding to the current flow of social capital in our contemporary social media economy.
Kim Selfies creates a tension between the image of Kim Kardashian and the mirrored selfie image. Through this tension the user is brought to consider more closely the implications of an action that, without the overlay of Kim's face, is characterized by a feeling of fluid and accurate self-representation. Here, with the addition of Kim Kardashian, the selfie taker encounters a form of self-representation and is forced to reconcile Kim's identity and image with their own.
Look at the top of your browser view, and elect to allow
kimselfi.es to access your web camera.
Once you're in, try to become one with Kim. You will be judged.
P.S. Using Safari? That's a no-go.


You can think of HTML as the skeleton of a body, it provides the basic structure for the website and has all of the content. CSS would then be the skin, hair, eye colour etc that sits over the top of the skeleton. It provides instructions on what different parts (elements) of the website looks like. The DOM is the way your web browser interprets the information provided by the HTML and CSS.
All of the different elements in a website are rectangular in shape (boxes), allowing you to easily alter the design and layout of a website by styling the different boxes or moving them around.
The box model describes the box that surrounds every HTML element. The acutal content of the element is in the middle and then is wrapped in several layers that define the space around the content. Directly outside of the content is padding, then border and lastly margin.


Home
Portfolio
About
Blog
Blog 1
Blog 2
Blog 3
Contact
Blog 3
2020
Whoops!
This article hasn't been made yet!
Home
Back to Blogs


Logout
language:
English
HOME
View Assignment
Students Entry
Teachers Entry
Faculties Entry
Subjects Entry
Scores Entry
Users Entry
Location Entry
Article Entry
Assignment
Contact
Test Score
Students
Students Entry
View Students
Teachers
Teachers Entry
View Teachers
Facuties
Facuties Entry
View Facuties
Subjects
Subjects Entry
View Subjects
Score
Score Entry
View Score
Users
Users Entry
View Users
Groups Entry
View Groups
Location
Location Entry
View Location
Artical
Artical Entry
View Atical
Download Assignment
Contact


gosolar
Can you go Solar?
Solar energy is available everywhere on our planet, although some places definitely have more sunny days than other.
In order to calculate what part of your consumption you can switch to clean solar energy you should tell us your city and size of your household.
Yes you can!
Check below how many panels you would need
What you need to go solar
Based on your location and household size we recommend for you:
You may be wondering how much it would cost to buy and install solar panel system and would it pay off on a long run. That’s why we calculated for you approximate investment you would need to make to gosolar, as well as, in how many years your investment would pay off through savings on electricity bills. After that point in time, you would be only saving money while saving the planet.
How to use solar
Once you install solar panels in your household you should understand how to optimally use solar energy. Since most of the solar energy is produced during midday hours, that’s ideal time to use appliances that consume a lot of energy – such as dishwashers, washing machines and water heaters. Of course you can use them in any time of the day if you have batteries that stored solar energy for later usage. On the other hand in the morning and in the evening when there is little or no solar energy produced and you will rely on energy stored in battery and it would be best to use lower power appliances such as desktops, laptops, tv or lights for book reading.
Who are we?
About us
Group of enthusiasts gathered around idea to bring solar energy closer to people


Nikolay (Nick) Ivanov
Graduate Assistant
Aug. 2018 – Present
Website:
https://nick-ivanov.com/
BS: SMSU (Summa Cum Laude)
Othmer Fellow at UNL (2018–2019)
Hanqing Guo
Graduate Assistant
Aug. 2019 – Present
(Co-advised with Li Xiao)
Website:
https://hanqingguo.github.io/
MS: Ball State University
BS: Chongqing University of Posts and Telecommunications, China
Yuanda Wang
Graduate Assistant
January 2020 – Present
Website:
https://yuandaw.github.io/
MS: North China Electric Power Univ.
BS: Xi'an Jiaotong University, China
Ce Zhou
Graduate Assistant
Sept. 2020 – Present
MS: Sungkyunkwan University, S. Korea
Exchange Program: University of Malaya, Malaysia
Guangjing Wang
Graduate Assistant
Sept. 2020 – Present
Website:
https://guangjing.wang/
MS: University of Science & Technology of China
BS: Southwest University, China
Bocheng Chen
Graduate Assistant
Sept. 2020 – Present
BS: Shanghai Jiao Tong University (SJTU)


--- title: 'Prepare to Make 2048' asset_path: web/2048/01-setup ---
<tag-name> content </tag-name> <self-closing-tag attribute="value" />


| DOSE: T+ 0:00 |
5.0 g |
oral |
Nutmeg |
(ground / crushed) |
| T+ 1:30 |
5.0 g |
oral |
Nutmeg |
(ground / crushed) |
| T+ 3:00 |
5.0 g |
oral |
Nutmeg |
(ground / crushed) |
| T+ 0:00 |
200 mg |
oral |
Pharms - Ibuprofen |
(pill / tablet) |
| T+ 9:00 |
100 mg |
oral |
Diphenhydramine |
(pill / tablet) |
| T+ 9:00 |
200 mg |
oral |
Pharms - Ibuprofen |
(pill / tablet) |
| T+ 11:00 |
50 mg |
oral |
Diphenhydramine |
(pill / tablet) |
| T+ 24:00 |
6.0 g |
oral |
Nutmeg |
(ground / crushed) |
| T+ 24:00 |
4 cups |
oral |
Coffee |
(liquid) |
| T+ 33:00 |
175 mg |
oral |
Methcathinone |
|
| T+ 0:00 |
repeated |
oral |
Methcathinone |
|
It was a long and boring weekend in which I had a few extra days off work. The only drug I had been taking for months was methcathinone. I felt that taking a downer to pass some time might be fun. I had quit smoking weed many months ago and I dislike alcohol a great deal. What other drugs may be around? After reading a few reports on the nutmeg experience, I search the house.  This bottle was at least five years old, probably older. The last time I saw it, I also was trying to achieve some psychoactive effect from it, although I failed. From what I know of chemistry, my assumption is that it does not matter how old the nutmeg is because the psychoactive chemicals are very stable and unlikely to deteriorate with time.
 It didn't taste good but was bearable. After waiting 1-2 hours, I start to feel a mild and very unpronounced sedative effect. I feel that this is not strong enough and down another 5 grams. 1-2 hours later the effect is now reasonably noticeable. My motor skills seem to be affected slightly but I am not experiencing anything special. I take another 5 grams and 1-2 hours later I am fairly out of it.
At this point I am high, but I am not any more impaired than if I had smoked a few bowls of hydro. I was watching TV during the 5-6 hours of nutmeg dosing. I got a strange marijuana like vibe in that certain things I was watching were bringing me down or that they had some special relevance to me. In retrospect, nothing I watched probably had any real relevance to me. It seemed like barriers to communicate were lowered and I spent a little while talking to one of my family members. In reality, my ability to think and communicate were slightly impaired and I found myself unable to articulately express what I thought. I eventually returned to my room, bouncing between the internet and TV.
It wasn't until about 9 hours after the beginning of nutmeg dosing that my high had plateaued. Up until then, I felt as if I was slowly getting higher. The high was really nothing special at all. It lacked the finer things which cannabis provided and it was even less enjoyable than alcohol. It was a very blah, blunt, and dull kind of feeling. Even the feeling of the drug itself was nothing special. I was very much in control of myself and had no trouble doing anything which I wanted to do. I was hoping for a hallucinogenic effect but this did not happen. At times my vision became very blurry though.  I took 200 mg of ibuprofen which relieved it for the most part. One more thing is that it put me a very repetitive manner. I was repeating things many times and kept thinking the same thoughts such as 'I've seen this before' and 'This was on yesterday'.
A couple hours before the high had plateaued, I began thinking that since this was not providing the hallucinogenic experience I had hoped for, I may be able to get that experience by adding some diphenhydramine. I had never tripped off of this before, it had only made me go to sleep, but I figured that the drug combination may make it possible. When I hit the plateau of the nutmeg at the 9 hour mark, I took 100mg of diphenhydramine and also another 200mg of ibuprofen for headaches.
About an hour later, the stuff hits me and I am stupefied but only borderline tripping at most. One thing that stood out was a very realistic hallucination I had when I looked at my caller ID. It looked as if waves were going through the display. This was very similar to what happens when a LCD display is pressed down. Any other hallucinations or distortions I had were quite minor. About an hour after the diphenhydramine had kicked in, I felt that I was able to keep myself awake and could handle another 50mg. I was wrong about that actually. After the extra 50mg kicked in, I was basically unable to do anything except lay on my couch with my eyes closed. At that point I decided it was best to just go to sleep.
I slept for approximately 8 hours. I could still feel some residual effect of the nutmeg when I woke up. I was groggy but didn't feel too impaired. I felt that it might be fun to try and really trip that night by taking even more of the drugs. I knew that I would have to take something to keep me awake. I made 4 cups of coffee. Almost exactly 24 hours after I first started dosing on nutmeg, I took around 6 grams of nutmeg, drank the coffee, and waited for the high to kick in.  The 'meg masked the effects of the coffee. I really wasn't stimulated at all, just groggy and out of it.  It kinda freaked me out which was another reason I didn't want to take any more nutmeg.
At this point, this nutmeg thing was just annoying. I wanted it to go away but that was just not going to happen. I tried to carry on normally as if I hadn't taken anything for a few hours. The coffee wore off but the 'meg just kept going on. The nutmeg was even more annoying after the coffee was gone.
About 8.5 hours after dosing on the nutmeg, I decided that to combat the nutmeg, I needed take something more hardcore than coffee. So I downed a dose of methcathinone along the lines of 150-200mg. This was something the nutmeg was unable to mask. I must also say that this was the first time in about 34 hours which I felt 'good'. When I was first coming up, my thoughts were racing. I was having lots of random thoughts which were making me laugh out loud. I wrote a bit about my experience so far. Things were good for about 4-5 hours, after which, the stimulant effect of the methcathinone faded. At this point, I was physically unable to do anything although my thoughts were racing still. At this point I had to sleep. Something that I have noticed about methcathinone is that it makes me dream. That night I had many dreams which were oddly relevant to some of my real life situations. I'm not sure if the nutmeg may have contributed to my dreams.
When I woke up I felt very groggy but it was like the nutmeg wasn't really affecting me anymore. I was wrong about that actually. It wasn't until I went to work later that day that I noticed my motor skills and thought process were still fairly impaired. Two hours before work I took about 150-200mg of methcathinone because I was still feeling shitty from the nutmeg. One hour before work I added another 125-175mg of methcathinone to get where I really wanted to be. Once at work, I was quite high and still coming up. But the residual effects of the nutmeg were clashing with the methcathinone. My movements were quick, yet were choppy, blunt, and hindered. My thoughts were racing but my focus was completely shot. I could not think anything through, I could only think of part of something and quickly move on to the next thing.
I get off work about 36 hours after last dosing on nutmeg. On the ride home I notice that my entire head hurts. I have a headache confined mostly to the right side of my head, my jaw hurts probably because I was clenching my teeth, and I don't even know why other parts of my head hurt. My eyes are very dilated when the light is dim. When I get home I take more ibuprofen for the head aches and write more about my ordeal. I was still fairly stimulated a good 5 hours after taking the methcathinone. I was thankful for every increment that the nutmeg faded. I was also thankful that I had some MCAT to help me through that terrible and difficult experience. About 48 hours after last dosing on the nutmeg, I felt that the effects from the 'meg were almost nearly completely gone.
Something that I took from this experience is that nutmeg and diphenhydramine are not worth taking recreationally. The amount of these drugs which it takes to hallucinate comes with some heavy baggage. Hallucination is not the primary effect of these drugs (unlike LSD, mushrooms, and 2C-E all of which I have taken). It is a secondary effect and the primary effects must be dealt with long before hallucination occurs. Whether it be the blunt, impairing, groggy headache of nutmeg or the sleepiness of diphenhydramine, it is just not worth it. The fact that diphenhydramine is an anticholinergic intrigues me but I feel that taking a drug such as datura may be a better way to experience the anticholinergic hallucination. In fact, before I went to work, I acquired some datura seeds in response to this failed hallucination attempt. That is likely going to be my next attempt at tripping.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


Grocery
Home
Log in
Register
Cart
Search
Email
Password
Repeat Password
Address
City
Choose
Almaty
Nur-Sultan
Kostanay
Zip
Register


Staff and Funds
a. Teaching staff (Regular teachers)
Number of sectioned post
Number of teachers in position
b. Contract Teacher (Regular teachers)
Number of teachers in position
c. Part-time instructor
positioned as per RTE
School funds received in last completed financial year excluding MDM (for elementary schools/section)


- IBlock -
Interface in Blocks
-
- IData -
Interface in Data
-
- IInputPort - Interface in Ports
-
- InputAnyPort - Class in Ports
-
- InputAnyPort() -
Constructor for class Ports.InputAnyPort
-
- InputBooleanPort - Class in Ports
-
- InputBooleanPort() - Constructor for
class Ports.InputBooleanPort
-
- InputNumericPort - Class in Ports
-
- InputNumericPort() - Constructor for
class Ports.InputNumericPort
-
- InputPortBase
- Class in Ports
-
- InputPortBase() - Constructor for class
Ports.InputPortBase
-
- InputPortBaseTest - Class in Tests.PortTests
-
- InputPortBaseTest()
- Constructor for class Tests.PortTests.InputPortBaseTest
-
- inputPorts - Variable
in class Blocks.BlockBase
-
- IOutputPort
- Interface in Ports
-
- IPort -
Interface in Ports
-
- IResetable
- Interface in Common
-
- IsEqualBlock
- Class in Blocks
-
- IsEqualBlock()
- Constructor for class Blocks.IsEqualBlock
-
Constructor that create ports and adds them to collection
- IsGreaterBlock - Class in Blocks
-
- IsGreaterBlock() - Constructor for
class Blocks.IsGreaterBlock
-
Constructor that create ports and adds them to collection
- IsLessBlock - Class in Blocks
-
- IsLessBlock() -
Constructor for class Blocks.IsLessBlock
-
Constructor that create ports and adds them to collection
- IsPriorityConsumer() - Method in class
Blocks.BlockBase
-
Returns true, because all blocks are priority consumers
- IsPriorityConsumer()
- Method in interface Common.ITimeTickConsumer
-
Method that determine if is priority consumer
- IsPriorityConsumer() - Method in class
Gui.WorkSpaceConnector
-
Method that return false because workspace connector isn't priority consumer
- IsValid() - Method in
class Blocks.BlockBase
-
Method that validate block
- IsValid() - Method
in interface Common.IValidatable
-
Method that validate
- IsValid() - Method in
class Ports.InputAnyPort
-
- IsValid() - Method
in class Ports.InputPortBase
-
Method that validate port
- IsValid() - Method
in class Ports.OutputAnyPort
-
- IsValid() - Method
in class Ports.OutputPortBase
-
- IsValid() - Method in
class Ports.PortBase
-
- IsValid() - Method
in interface Workspace.IWorkspace
-
Method that validate workspace
- IsValid() - Method
in class Workspace.Workspace
-
- ITimeTickConsumer
- Interface in Common
-
- ITimeTickProvider
- Interface in Common
-
- IValidatable - Interface in Common
-
- IWorkspace - Interface in Workspace
-


| Package | org.as3commons.collections.utils |
| Class | public class Maps |
IMap
utilities.
Maps.addFrom...()
example
Maps.clone()
example
Maps.copy()
example
Maps.new...()
example
Nested collections example
Show example| Method | Defined by | ||
|---|---|---|---|
|
addFromArgs(map:IMap, ... args):uint
[static]
Adds the given list of key-item-pairs to the specified map.
| Maps | ||
|
addFromArray(map:IMap, source:Array):uint
[static]
Adds the contents of the given
Array to the specified map. | Maps | ||
|
[static]
Adds the contents of the given
IMap to the specified map. | Maps | ||
|
addFromObject(map:IMap, source:Object):uint
[static]
Adds the contents of the given
Object to the specified map. | Maps | ||
|
[static]
Clones the supplied
IMap instance returning a new IMap
of the same type. | Maps | ||
|
[static]
Copies mappings from one to another map.
| Maps | ||
|
itemForOrAdd(map:IMap, key:*, item:*):*
[static]
Attempts to retrieve the item mapped to the supplied key.
| Maps | ||
|
itemForOrError(map:IMap, key:String, errorMessage:* = null):*
[static]
Attempts to retrieve the item mapped to the supplied key.
| Maps | ||
|
itemForOrValue(map:IMap, key:*, defaultValue:*):*
[static]
Attempts to retrieve the item mapped to the supplied key.
| Maps | ||
|
newLinkedMap(... args):LinkedMap
[static]
Creates, populates and returns a new
LinkedMap instance. | Maps | ||
|
[static]
Creates, populates and returns a new
Map instance. | Maps | ||
|
[static]
Creates, populates and returns a new
SortedMap instance. | Maps |
| addFromArgs | () | method |
public static function addFromArgs(map:IMap, ... args):uint
Adds the given list of key-item-pairs to the specified map.
Maps.addFromArgs(myMap, key1, item1, key2, item2, ...);
map:IMap — The map to populate.
|
|
... args — List of key-item-pairs to add to the map.
|
uint — The number of items added to the map.
|
| addFromArray | () | method |
public static function addFromArray(map:IMap, source:Array):uint
Adds the contents of the given Array
to the specified map.
The Array
needs to be in a key-item-pair shape.
The last Array
element is skipped if the size of the Array is not even.
var array : Array = [key1, item1, key2, item2, ...]; var count : uint = Maps.addFromArray(map, array);
map:IMap — The map to populate.
|
|
source:Array — The Array to add from.
|
uint — The number of items added to the map.
|
| addFromMap | () | method |
public static function addFromMap(map:IMap, source:IMap):uint
Adds the contents of the given IMap
to the specified map.
var count : uint = Maps.addFromMap(map, sourceMap);
map:IMap — The map to populate.
|
|
source:IMap — The IMap to add from.
|
uint — The number of items added to the map.
|
| addFromObject | () | method |
public static function addFromObject(map:IMap, source:Object):uint
Adds the contents of the given Object
to the specified map.
var count : uint = Maps.addFromObject(map, object);
map:IMap — The map to populate.
|
|
source:Object — The Object to add from.
|
uint — The number of items added to the map.
|
| clone | () | method |
public static function clone(map:IMap, keyFilter:Function = null, itemFilter:Function = null):IMap
Clones the supplied IMap
instance returning a new IMap
of the same type.
If filters are specified the resulting map only contains mappings that meet the supplied predicates.
The key filter function accepts the current key and returns a boolean
value (true
if the key is accepted).
function keyFilter(key : : Boolean { var accept : Boolean = false; // test the key return accept; } var clone : IMap = Maps.clone(map, keyFilter);
The item filter function accepts the current item and returns a boolean
value (true
if the item is accepted).
function itemFilter(item : : Boolean { var accept : Boolean = false; // test the item return accept; } var clone : IMap = Maps.clone(map, keyFilter, itemFilter);
map:IMap — The IMap instance to clone.
|
|
keyFilter:Function (default = null ) — Function which will be applied to each key in the source map.
|
|
itemFilter:Function (default = null ) — Function which will be applied to each item in the source map.
|
IMap —
A new IMap instance.
|
| copy | () | method |
public static function copy(source:IMap, destination:IMap, keyFilter:Function = null, itemFilter:Function = null):uint
Copies mappings from one to another map.
If filters are specified only mappings are copied that meet the supplied predicates.
The key filter function accepts the current key and returns a boolean
value (true
if the key is accepted).
function keyFilter(key : : Boolean { var accept : Boolean = false; // test the key return accept; } Maps.copy(sourceMap, destinationMap, keyFilter);
The item filter function accepts the current item and returns a boolean
value (true
if the item is accepted).
function itemFilter(item : : Boolean { var accept : Boolean = false; // test the item return accept; } Maps.copy(sourceMap, destinationMap, keyFilter, itemFilter);
source:IMap — The IMap instance to copy from.
|
|
destination:IMap — The IMap to copy to.
|
|
keyFilter:Function (default = null ) — Function which will be applied to each key in the source map.
|
|
itemFilter:Function (default = null ) — Function which will be applied to each item in the source map.
|
uint — The number of items copied to the map.
|
| itemForOrAdd | () | method |
public static function itemForOrAdd(map:IMap, key:*, item:*):*
Attempts to retrieve the item mapped to the supplied key.
If the supplied key is not mapped then the supplied value will mapped to the key and returned.
Parametersmap:IMap — the IMap instance to operate on.
|
|
key:* — the key to perform the lookup using.
|
|
item:* — if no mapping exists for the supplied key a new mapping will be added between the key and
this value.
|
* — if a prior mapping exists for the supplied key then the assosiated value in the map will be
returned; if no prior mapping exists the supplied value will be returned instead.
|
| itemForOrError | () | method |
public static function itemForOrError(map:IMap, key:String, errorMessage:* = null):*
Attempts to retrieve the item mapped to the supplied key.
If the supplied key is not mapped an ArgumentError will be thrown.
Parametersmap:IMap — the IMap instance to operate on.
|
|
key:String — the key to perform the lookup using.
|
|
errorMessage:* (default = null ) — optional error message which will be used if an Error needs to be thrown.
|
* — the item mapped to the supplied key.
|
— if no mapping exists for the supplied key.
|
| itemForOrValue | () | method |
public static function itemForOrValue(map:IMap, key:*, defaultValue:*):*
Attempts to retrieve the item mapped to the supplied key.
If the supplied key is not mapped then the supplied default value will be returned instead.
Parametersmap:IMap — the IMap instance to operate on.
|
|
key:* — the key to perform the lookup using.
|
|
defaultValue:* — the value to return if the supplied key does not exist in the supplied Map.
|
* — if the supplied key exists in the map then the value mapped to that key will be returned, otherwise
the supplied defaultValue will be returned instead.
|
| newLinkedMap | () | method |
public static function newLinkedMap(... args):LinkedMap
Creates, populates and returns a new LinkedMap
instance.
The arguments may be left out. In that case no item is added to the map.
The last argument is skipped if the size of arguments is not even.
var map : Map = Maps.newLinkedMap(key1, item1, key2, item2, ...);
... args — List of key-item-pairs to add to the map.
|
LinkedMap —
A new LinkedMap instance populated from the given arguments.
|
| newMap | () | method |
public static function newMap(... args):Map
Creates, populates and returns a new Map
instance.
The arguments may be left out. In that case no item is added to the map.
The last argument is skipped if the size of arguments is not even.
var map : Map = Maps.newMap(key1, item1, key2, item2, ...);
... args — List of key-item-pairs to add to the map.
|
Map —
A new Map instance populated from the given arguments.
|
| newSortedMap | () | method |
public static function newSortedMap(comparator:IComparator, ... args):SortedMap
Creates, populates and returns a new SortedMap
instance.
The arguments may be left out. In that case no item is added to the map.
The last argument is skipped if the size of arguments is not even.
var map : Map = Maps.newSortedMap(key1, item1, key2, item2, ...);
comparator:IComparator — The sort criterion.
|
|
... args — List of key-item-pairs to add to the map.
|
SortedMap —
A new SortedMap instance populated from the given arguments.
|


public interface ComparchSimulator
Capability.BLANK
, then it must be configured by adding
Injector
s (see addInjector(Injector)
) and Analyzer
s
(see addAnalyzer(Analyzer)
).
If the simulator has the capabilities Capability.SELF_REPAIR
,
Capability.SELF_OPTIMIZATION
, or Capability.SELF_MANAGEMENT
,
then the corresponding injectors and analyzers have been automatically added.
Finally, an InjectionStrategy
can be set to the simulator to specify
a scenario for the simulation. See method
setInjectionStrategy(InjectionStrategy)
. If no strategy is set, then
the simulator uses its default strategy (random injection of issues).
Then, the simulator can be used by invoking validate()
to analyze
the model and injectIssues()
to inject issues into the model. These
methods respectively invoke Injector
s according to the
InjectionStrategy
as well as the Analyzer
s.
Finally, isSimulationCompleted()
is used to check whether the
simulation has been completed or not.| Modifier and Type | Field and Description |
|---|---|
static ComparchSimulatorFactory |
FACTORY
The singleton factory instance to obtain an instance of the
ComparchSimulator . |
| Modifier and Type | Method and Description |
|---|---|
void |
addAnalyzer(Analyzer analyzer)
Adds the given analyzer to the simulator.
|
void |
addInjector(Injector<? extends de.mdelab.morisia.comparch.ArchitecturalElement> injector)
Adds the given injector to the simulator.
|
java.util.List<Injector<? extends de.mdelab.morisia.comparch.ArchitecturalElement>> |
getInjectors() |
IssueType[] |
getSupportedIssueTypes() |
void |
injectIssues()
Injects issues into the model using the injectors according to the
InjectionStrategy . |
boolean |
isSimulationCompleted()
Returns
true if the simulation has been completed, else
false . |
void |
setInjectionStrategy(InjectionStrategy strategy)
Sets the injection strategy that replaces the default strategy of the
simulator.
|
int |
validate()
Validates the model using the analyzers.
|
static final ComparchSimulatorFactory FACTORY
ComparchSimulator
.void setInjectionStrategy(InjectionStrategy strategy)
strategy
- the injection strategyjava.util.List<Injector<? extends de.mdelab.morisia.comparch.ArchitecturalElement>> getInjectors()
IssueType[] getSupportedIssueTypes()
IssueType
s that are supported by the simulator
according to its configuration and capability.boolean isSimulationCompleted()
true
if the simulation has been completed, else
false
.true
if the simulation has been completed, else
false
.void addInjector(Injector<? extends de.mdelab.morisia.comparch.ArchitecturalElement> injector)
injector
- the injector to be added.void addAnalyzer(Analyzer analyzer)
analyzer
- the analyzer to be added.int validate()
void injectIssues()
InjectionStrategy
.
The issues injected by one invocation of this method should be handled by
one run of the feedback loop. Hence, one invocation of this method
corresponds to one run of the simulator.


Featured
Ira Glass
This American Life
PJ Vogt
Reply All
Wendy Zukerman
Science Vs
Stacey Vanek-Smith
The Indicator
- 0-9
- |
- A
- |
- B
- |
- C
- |
- D
- |
- E
- |
- F
- |
- G
- |
- H
- |
- I
- |
- J
- |
- K
- |
- L
- |
- M
- |
- N
- |
- O
- |
- P
- |
- Q
- |
- R
- |
- S
- |
- T
- |
- U
- |
- V
- |
- W
- |
- X
- |
- Y
- |
- Z
Alex Goldman
Reply All
Chris Hardwick
The Nerdist
Chuck Bryant
Stuff You Should Know
Guy Raz
TED Radio Hour
Hrishkesh Hirway
Song Exploder
Ira Glass
This American Life
Jad Abumrad
Radiolab
Jessica Williams
2 Dope Queens
Joe Rogan
Joe Rogan Experience
Josh Clark
Stuff You Should Know
Phoebe Robinson
2 Dope Queens
PJ Vogt
Reply-All
Robert Krulwich
Radiolab
Roman Mars
99 Percent Invisible
Sarah Koenig
Serial
Stacey Vanek-Smith
The Indicator
Stephen J Dubner
Freakanomics
Wendy Zukerman
Science Vs


Triggered before a document will be rendered.
TypeDoc Page event
Triggered when TypeDoc is parsing Markdown
TypeDoc Markdown event
An event emitted by the Renderer class at the very beginning and ending of the entire rendering process.
An event object describing the current render operation.
Triggered when rendering is complete
TypeDoc Renderer event
Create a new plugin instance.
Generated using TypeDoc
Pages plugin for integrating your own pages into documentation output


---
layout: default
---
Learn about who we are, what we do and why we do it.About Us
We are University of Iowa graduates Ross Johnson, Anith Mathai and Amanda Johnson, and we founded Mazira in 2011. At Mazira, we develop custom search engines for both structured and unstructured data.
We were getting multiple requests from lawyers and paralegals for a simple solution for what was essentially e-discovery; although at the time we didn’t know it.
That meant using optical character recognition (OCR) software to convert the scanned text into a form a computer can process, and then making all that text searchable. They were tired of having to go to multiple vendors and so approached us to build a solution. They wanted an easy-to-use piece of software with which their paralegals could just log in, upload data and have everything else be automatic.
In fact, it was pretty pandemic, especially in the local market. Software with a simple ‘log in, drag-and-drop, and go’ setup hadn’t yet been developed. The existing players had clunky software that needed installation, training for users, and (more annoying than anything else) an extra long sales process.
Just sign up with an email address and you’re ready to go. No time wasted on getting custom quotes or going through complicated sales processes. Once signed in, everything is included in the fixed and transparent pricing. If a file needs OCR, GoldFynch handles it. Duplication checks and indexing? It’s all done by GoldFynch.
It’s a blend of ‘Goldfinch’ – the state bird of Iowa – and the character Atticus Finch from the book To Kill a Mockingbird by Harper Lee. GoldFynch: spelled different because it is different.
The domain name Goldfynch.com was previously owned by a alum of Grinnell College in Iowa, who graciously gave it to us for free. So, a shout-out to the founders of Soldsie.com for the gift.


Learing Transferable Visual Models, CLIP (Contrastive Language Image Pretraining
- Introduction
- Traditional CV-DL models are trained to predict a fixed set of pre-determined object categories => limits their generality and usability since additional labeled data is needed to specify any other visual concept.
- Learning directly from raw text about images is a promising alternative which leverages a much broader source of supervision.
- Methods
- Extract feature representations of each modality (image, text)
- Joint multi-modal embedding
- Scaled pair-wise cosine similarities
- Symmetric loss function
- Conclusion
- We have investigated whether it is possible to transfer the success of task-agnostic web-scale pre-training in NLP to another domain.
- Reference
- CLIP 은 pretrain 방법의 하나로 NLP 분야에서 BERT 등이 자연어로 pretrain 하여 성능을 대폭 향상시킨 방식으로부터 insight를 얻음
- 이미지+자연어 데이터셋으로 특정 이미지의 feature $I_f$ 와 대응되는 텍스트의 feature $T_f$ 의 inner product $I_f \cdot T_f$ 가 최대가 되도록 미리 학습해둔뒤
- Inference 할 떄는 추가적인 fine-tuning 없이 test-set의 label들 중에 Inner product가 최대가 되는 label을 선택
# extract feature representations of each modality
I_f = image_encoder(I) #[n, d_i]
T_f = text_encoder(T) #[n, d_t]
# Joint multimodal embedding [n, d_e]
# 아래의 inner-product가 최대가 되도록 W_i, W_t를 학습
I_e = np.dot(I_f, W_i)
T_e = np.dot(T_f, W_t)
# Scaled pairwise cosine similarities [n,n]
logits = np.dot(I_e, T_e.T)
# Symmetric loss function
loss_i = cross_entropy(Logits, labels, axis=0)
loss_t = cross_entropy(logits, labels, axis=1)
A Local-to-Global Approach to Multi-modal Movie Scene Segmentation
-
Introduction : Recognizing the movie scenes, including the detection of scene boundaries and the understanding of the scene content, facilitates a wide-range of movie understanding tasks such as scene classification, cross movie scene retrieval, human interaction graph and human-centric storyline construction
-
Terminologies :
- shots : captured by a camera that operates for an uninterrupted period of time and thus is visually continuous
- super-shots : collection of shots, roghly segmented from local (adjacent) features
- scene : comprises a sequence of shots to present a semantically coherent part of the story
- a plot-based semantic unit, where a certain activ-ity takes place among a certain group of character
- often happens in a fixed place, it is also possi-ble that a scene traverses between multiple places continually
-
Methods: solve a binary classification problem to determine whether a shot boundary is a scene boundary, by designing a three-level model to incorporate different levels of contextual information based on the shot representation
- Shot Representation, $s_i$
- place : ResNet50 pretrained on “Places” dataset
- cast : Faster-RCNN pretrained on CIM dataset to detect cast instances and ResNet50 pretrained on PIPA dataset to extract cast features
- action : TSN pretrained on AVA dataset to get action features
- audio : NaverNet pretrained on AVA-ActiveSpeaker Dataset to separate speech and background sound and stft
- Shot Boundary Representation : propose a Boundary Network to model the shot boundary, $b_i = \Beta(S_{i-w_b}, … S_{i+w_b})$
- BNet takes a clip of the movie with $2w_b$ shots as input and outputs a boundary representation $b_i$
- BNet consists of two branches, namely $B_d$ and $B_r$, that calculate differences and relations betweent adjacent shots
- Coarse Prediction at Segment Level : $\Tau([b_1, …, b_{n-1}]) = [p_1, …, p_{n-1}] $
- Bi-LSTM predicts a sequence of coarse score $[p_i,…]$ from sequence of representatives $[b_i,…]$
- with a threshold, we get roughly classified super-shot boundaries $[\hat{o_i},…]$
- Global Optimal Grouping : $ \Gamma([\hat{o_1},…,\hat{o_i}]) = [o_1,…,o_i] $
- rmfdabove local segmentation gives us an initial rough scene cut set. Our goal is to merge these super-shots into scenes
- Shot Representation, $s_i$
-
Conclusion : this framework is very effective and achieves much better performance than existing methods
Multimodal Transformer for Unaligned Multimodal Language Sequences (2019)
-
Introduction : two major challenges in modeling multimodal human language time-series data
- (1) inherent data non-alignment due to variable sampling rates for the sequences from each modality;
- (2) long-range dependencies between elements across modalities.
-
Methods : Multimodal Transformer (MulT) for modeling unaligned multimodal language sequences.
-
Overall Architecture
- Temporal Convolutions $\hat{X}$ : pass the input seq through 1D Conv layer, project the features of different modalities to the same dimension $d$
- Positional Embeddings $Z$ : enable the sequences to carry temporal information, add PE to $\hat{X}$
- Crossmodal Transformers : enables one modality for receiving information from another modality, based on the cross-modal attention blocks
-
Crossmodal Attention : consider two modalities $\alpha, \beta$, calculate attention score using Query from $\alpha$ and Key from $\beta$
$$ \text{softmax}(\frac{Q_\alpha K^T_\beta}{\sqrt{d_k}}) V_\beta $$
-
Result : show that MulT exhibits the best performance when compared to prior methods (Multimodal sentiment analysis, CMU-MOSI & MOSEI)
-
Self-Supervised MultiModal Versatile Network (2020, Deepmind)
- Introduction : learn representations using self-supervision by leveraging three modalities naturally present in videos: visual, audio and language streams
- Methods : multimodal versatile network
- Input : unlabelled videos containing different modalities : RGB stream, audio track, linguistic narrations (Automatic Speech Recognition)
- MultiModal Versatile Networks :
- Shared space : all modalities are embedded into a single shared vector space $S_{vat}⊂R^{d_s}$
- Disjoint spaces : have different visual-audio $S_{va}$ and visual-text $S_{vt}$ spaces
- Fine and coarse spaces (FAC) :
- visual and the audio (fine-grained) domains are different from the language domain (semantically coarse-grained) in terms of their granularities
- fine-grained : there are many visual or sounds of guitars that might be really different to each other
- coarse-grained : while the textual domain is more coarse as its goal is to abstract away details (e.g. a single “guitar” word)
- vision and audio are compared in the fine-grained space ($S_{va}$), while text is compared with vision and audio in the lower dimensional coarse-grained space ($S_{vat}$).
- visual and the audio (fine-grained) domains are different from the language domain (semantically coarse-grained) in terms of their granularities
- since the text modality is directly obtained from the audio track using ASR, we do not construct the audio-text space nor the loss that puts them in alignment explicitly
- Multimodal Contrastive Loss : we construct self-supervised tasks which aim to align pairs of modalities.
- positive training pairs across two modalities are constructed by sampling the two streams from the same location of a video.
- negative training pairs are created by sampling streams from different videos.
- Video to image network deflation
- Results : exceeds the state-of-the-art for action and audio classification on five challenging benchmarks: HMDB51, UCF101, Kinetics600, ESC-50 and AudioSet
VATT : Transformers for Multimodal Self-Supervised Learning from Raw Video, Audio and Text (2021)
-
introduction : present a framework for learning multimodal representations from unlabeled data using convolution-free Transformer architectures
-
Methods :
-
(1) Tokenization and Positional Encoding : define a modality-specific tokenization layer
- video : 3D extension of the patching machanism, linear projection on the entire voxels.
- audio : the raw audio waveform is a 1D input with length $T’$, and we partition it to $[T’/t’]$ segments each containing $t’$ waveform amplitudes and then apply a linear projection with a learnable weight $W\in\mathbb{R^{t’ \times d}}$ to get a $d$ dimensional vector representation.
- text : construct a vocabulary of size $v$ and map each word to a $v$-dimensional one-hot vetor followed by a linear projection with a learnable weight $W \in \mathbb{R}^{v \times d}$
- Drop Token : a simple and yet effective strategy to reduce the computational complexity during training.
-
The Transformer Architecture : we do not tweak the architecture
-
Common Space Projection
- Video-audio : maps the video and audio Transformers’ outputs to the video-audio common space $S_{va}$ using Linear Projection
- video-text : the text Transformer’s outputs and the video embedding in the $S_{va}$ space to video-text common space $S_{vt}$ using Linear Projection
-
Multimodal Contrastive Learning
-
video-audio : Noise Contrastive Estimaiton to align video-audio pairs.
-
video-text : Multiple Instance Learning NCE to align to video-text pairs.
-
overall per-sample objective : for training the entire model end-to-end is as follows:
$$ L=NCE(z_{v,va},z_{a,va}) +λ MILNCE(z_{v,vt},[z_{t,vt}]),
$$
-
-
-
Results :
- suggests that Transformers are effective for learning semantic video/audio/text representations even if one model is shared across modalities and multi-modal self-supervised pre-training is promising for reducing their dependency on large-scale labeleddata.
- Video Action recognition (UCF101, HMDB, Kinetics)
- Audio Event Classification (ESC50, AudioSet)
- text to video retrieval (MSR-VTT)
- suggests that Transformers are effective for learning semantic video/audio/text representations even if one model is shared across modalities and multi-modal self-supervised pre-training is promising for reducing their dependency on large-scale labeleddata.
CLIPBERT for Video-and-Language Learning via Sparse Sampling
- Introduction
- CLIPBERT : enables end-to-end learning for video-and-language tasks, by employing sparse sampling


Open Angel Arena 5.10.2 Update
General Changes
7.22f changes.
Fixed score increase shrine consuming cores every second.
Item Changes
Abyssal Blade:
Bonus Damage reduced from 70/105/140 to
55
/
85
/
125
.
Bonus HP increased from 750/1250/2000 to
1000
/
1500
/2000.
Blade of Judecca:
Bonus Stats increased from 45/55 to
55
/
75
.
Bonus HP rescaled from 750/1250 to
900
/
1125
.
Bonus Mana increased from 800/1000 to
1000
/
1250
.
Frostburn (heal prevention) duration increased from 2 to
3
seconds.
Fixed Frostburn duration not being affected by status resistance.
Consumable Aghanim Scepter:
Recipe cost reduced from 2000 to
1800
.
Dagger of Moriah:
No longer provides +26% Spell Amplification passively.
Sangromancy Spell Amplification increased from 50%/75% to
75%
/
100%
.
Bonus HP regen increased from 15/25 to 15/
30
.
Bonus Intelligence reduced from 50/75 to
30
/
45
.
Now also provides:
+15/30 Strength
+15/30 Agility
+11/15 Armor
Eye of Skadi:
Bonus Stats increased from 25/30/40/50/70 to 25/30/40/
55
/
75
.
Bonus HP rescaled from 225/400/600/1000/1500 to 225/
450
/
675
/
900
/
1125
.
Bonus Mana rescaled from 250/450/700/1100/1600 to 250/
500
/
750
/
1000
/
1250
.
Movement and attack speed slow against melee units/heroes increased from 20%/23%/26%/29%/31% to 20%/
25%
/
30%
/
35%
/
40%
.
Movement and attack speed slow against ranged units/heroes increased from 45%/48%/51%/54%/57% to 45%/
50%
/
55%
/
60%
/
65%
.
Heart Transplant:
Bonus Strength reduced from 135/170 to
40
/
50
.
Cooldown increased from 7 to
20
seconds.
Manta Style:
Bonus Strength/Intelligence increased from 10/14/19/25/32 to 10/
15
/
20
/
30
/
40
.
Bonus Agility increased from 26/31/38/47/58 to 26/
32
/
44
/
62
/
86
.
Bonus Attack Speed reduced from 12/15/20/25/30 to 12/15/
18
/
21
/
24
.
Vampire Fang:
Icon is still bugged.
Passive Lifesteal percent increased from 20%/25% to
40%
/
45%
.
Vampirism Lifesteal percent reduced from 300%/400% to
175%
/
250%
.
Vampirism current HP loss per second reduced from 15% to
8%
.
Hero Changes
Abaddon:
Base attack speed increased from 115 to
120
.
Base armor increased by
1
.
Ancient Apparition:
Cold Feet distance to travel (break distance) reduced from 740 to
715
.
Ice Blast mana cost increased from 150/150/150/275/400 to
175
/
175
/
175
/
350
/
525
.
Level 15 Talent reduced from +20 Health Regen to
+15
.
Beastmaster:
Primal Roar knockback now destroys any trees the units come into contact with.
Bloodseeker:
Base movement speed increased by
5
.
Bounty Hunter:
Shuriken Toss mana cost reduced from 150 to
135
.
Brewmaster:
Base intelligence increased by
1
.
Centaur Warrunner:
Retaliate damage gain rescaled from 6%/9%/12%/15%/18%/21% to 6%/
8%
/
10%
/
12%
/18%/
28%
.
Chaos Knight:
Reality Rift cooldown reduced from 6 to
5
seconds.
Chen:
Base movement speed increased from 305 to
320
.
Divine Favor cooldown unchanged:
30
seconds.
Clockwerk:
Hookshot stun duration increased from 1/1.5/2/2.5/3 to
1.5
/
1.75
/2/2.5/3 seconds.
Crystal Maiden:
Base armor reduced by
1
.
Dark Seer:
Vacuum damage increased from 25/50/100/200/400/800 to
50
/
100
/
150
/200/400/800.
Dark Willow:
Terrorize duration rescaled from 4 to
3.5
/
3.75
/4/
4.25
/
4.5
seconds.
Terrorize cooldown increased from 100/80/60/40/20 to 100/
90
/
80
/
60
/
40
seconds.
Dragon Knight:
Elder Dragon Form level 4 and 5 now provide Aghanim's Scepter Black Dragon buffs (without Aghanim Scepter).
Having Aghanim Scepter will probably break magic resistance and other bonuses if Elder Dragon Form is level 5.
Elder Dragon Form: Bonus Attack Range is now 350/350/350/450/
550
.
Elder Dragon Form: Corrosive Breath damage is now 20/40/60/120/180.
Elder Dragon Form: Splash Damage is now 0%/75%/75%/115%/
200%
.
Elder Dragon Form: Frost Breath movement speed slow is now 0%/0%/40%/60%/
70%
.
Elder Dragon Form: Frost Breath attack speed slow is now 0/0/40/60/
70
.
Elder Dragon Form: Bonus Magic Resistance is now 0%/0%/0%/
40%
/
40%
.
Drow Ranger:
Base strength increased by
1
.
Base agility increased by
1
.
Level 15 Talent increased from +30% Gust Blind to
+40%
.
Elder Titan:
Echo Stomp mana cost rescaled from 100 to
85
/
90
/
95
/100/
105
/
110
.
Ember Spirit:
Base armor reduced by
1
.
Enigma:
Base intelligence reduced by
2
.
Faceless Void:
Time Lock damage reduced from 75/100/125/150/325/500 to
50
/
70
/
90
/
110
/
330
/500.
Time Lock second attack delay increased from 0 to
0.33
second.
Time Lock second attack can now miss.
Time Lock cooldown increased from 1.65 to
2
seconds.
Time Lock second attack now has a proper animation.
Grimstroke:
Base damage reduced by
4
.
Invoker:
Base intelligence increased by
1
.
Cold Snap damage increased from 7/14/21/28/35/42/49/56/63/75/90/100/125/150/200 to
8
/
16
/
24
/
32
/
40
/
48
/
56
/
64
/
72
/
84
/
98
/
114
/
140
/
190
/
265
.
Juggernaut:
Base agility reduced by
2
.
Base strength reduced by
1
.
Keeper of the Light:
Will-O-Wisp radius increased from 700 to
725
.
Luna:
Base damage increased by
2
.
Lycan:
Feral Impulse damage increased from 12%/24%/36%/48%/60%/72% to
14%
/
26%
/
38%
/
50%
/
62%
/
74%
.
Howl bonus regen increased from 5/10/15/20/35/50 to
10
/
15
/
20
/
25
/35/
65
.
Mars:
Base damage reduced by
2
.
God's Rebuke critical strike reduced from 160%/200%/240%/280%/320%/360% to
150%
/
190%
/
230%
/
270%
/
310%
/
350%
.
Monkey King
Fixed Aghanim Scepter gained talents (related to Wukong's Command) not applying.
Wukong's Command: Fixed sounds emitting through fog of war.
Wukong's Command: Fixed clones not attacking heroes when Monkey King doesn't have Aghanim Scepter.
Wukong's Command: Added a 15% chance (pseudo random) to every clone to proc damage and attack modifiers from the Monkey King himself.
When this attack procs its actually like Monkey King attacking, so things like Abyssal Blade, Rapier and Satanic active now work.
Morphling:
Waveform cast range reduced from 1000 to
700
/
800
/
900
/1000/1000/1000.
Morph cast range rescaled from 1000 to
700
/
850
/1000/
1150
/
1300
.
Nature's Prophet:
Intelligence gain increased from 3.3 to
3.5
Necrophos:
Base intelligence increased by
1
.
Death Pulse radius increased from 475 to
500
.
Night Stalker:
Base movement speed increased by
5
.
Omniknight:
Purification cooldown rescaled from 14/13/12/11/11/11 to
17
/
15
/
13
/11/
10
/
10
seconds.
Level 20 Talent reduced from +5 Mana Regen to
+4
.
Fixed Purification AoE talent not changing the value in the tooltip of Purification.
Fixed Heavenly Grace tooltip showing by mistake that it cannot be applied to spell-immune allies.
Outworld Devourer:
Astral Imprisonment cooldown unchanged:
16/14/12/10/10/10
seconds.
Sanity's Eclipse mana cost increased from 175/250/325/675/1075 to
200
/
325
/
450
/
700
/1075.
Sanity's Eclipse radius increased from 375/475/575/625/650 to 375/475/575/625/
675
.
Phantom Assassin:
Base damage increased by
1
.
Level 10 Talent increased from +200 Health to
+225
.
Pudge:
Meat Hook mana cost reduced from 140/140/140/140/190/240 to
125
/
130
/
135
/140/
180
/240.
Riki:
Blink Strike cast range increased from 500/600/700/800/900/1000 to
600
/
700
/
800
/
900
/
1000
/
1100
.
Level 20 Talent reduced from +600 Blink Strike Cast Range to
+500
.
Skywrath Mage:
Mystic Flare damage rescaled from 700/1150/1600/3200/4800 to
750
/
1175
/1600/
2875
/
4575
.
Slark:
Base damage reduced by
1
.
Level 20 Talent reduced from +1.25s Pounce Leash to
+1s
.
Spirit Breaker:
Bulldoze mana cost increased from 25/30/35/40/100/150 to
30
/
40
/
50
/
60
/100/150.
Bulldoze bonus movement speed increased from 14%/20%/26%/32%/36%/42% to 14%/20%/26%/32%/
38%
/
44%
.
Nether Strike damage rescaled from 120/250/380/770/1420 to
100
/250/
400
/
850
/
1450
.
Sven:
Storm Hammer stun duration rescaled from 1.4/1.6/1.8/2/2/2 to
1.25
/
1.5
/
1.75
/2/
2.15
/
2.25
seconds.
Storm Hammer mana cost increased from 110/120/130/140/140/140 to 110/120/130/140/
150
/
160
.
Terrorblade:
Level 10 increased from +10% Evasion to
+15%
.
Metamorphosis Aghanim Scepter fear duration increased from 3 to
3.75
seconds.
Timbersaw:
Reactive Armor max number of stacks reduced from 6/12/18/24/30/36 to
6
at all levels.
Reactive Armor stack duration reduced from 10/13/16/19/22/28 to
10
seconds at all levels.
Reactive Armor bonus armor per stack increased from 1/1.1/1.2/1.3/1.5/2 to 1/
1.5
/
2
/
2.5
/
3.5
/
4.5
Reactive Armor bonus hp regen per stack increased from 1/1.1/1.2/1.3/1.5/2 to 1/
2
/
3
/
4
/
5
/
6
.
Reactive Armor talent that provides bonus stacks is unchanged: +8 Reactive Armor stacks.
Tinker:
Level 10 Talent increased from +100 Cast Range to
+125
.
Level 10 Talent increased from +8% Spell Amplification to
+10%
.
Level 15 Talent changed from +15% Spell Lifesteal to
+11% Manacost/Manaloss Reduction
.
Tusk:
Base armor increased by
1
.
Underlord:
Pit of Malice cooldown reduced from 24/22/20/18/16/14 to
22
/
20
/
18
/
16
/
14
/
12
seconds.
Vengeful Spirit:
Magic Missile mana cost reduced from 110/120/130/140/210/280 to
100
/
110
/
120
/
130
/
150
/
210
.
Viper:
Level 25 Talent increased from +120 Damage to
+160
.
Weaver:
Base armor increased by
1
.
Wraith King:
Wraithfire Blast base damage reduced from 100/100/100/100/350/600 to
70
/
80
/
90
/100/350/600.
Mortal Strike mana cost reduced from 75 to
50
.
Zeus:
Base intelligence increased by
1
.
Previous
Home
Next


1
The wind
her hair away from the face.
2
of us saw the accident.
3
The
of my left shoe has worn out.
4
is Jason’s house?
5
The sand at the beach feels
6
Did the maid
the new jug?
7
The ugly looking
flew around on her broom.
8
Dan played the
of a dwarf in the school play.


Object Defining Diagram
Part of the perceivable or conceivable universe.
Previous documented definitions providing the source for the above are:
Something that exists (CBS v2).
Attributes:
Identifier (M) (String)
Unique identifier for each instance of "Object". Allows use of the model as an Information Model.
Associations From:
| Only One |
object |
Zero, One or Many |
Access Group For Object |
| Only One |
object |
Zero, One or Many |
Object Representation |
Subtype Partitions:
Object/Essential Type
Concept
Percept
Object Representation Defining Diagram
Representation of an "Object" in a "Subject".
Any "Subject" may hold information about an "Object", either itself or others. Typically, such "Subjects" are created expressly to perform this role, eg case notes, electronic patient records, but sometimes this is done by impressing the information on a
"Subject" which has other roles. Examples would be batch number and use by date on a drug container, manufacturer logo on a capsule.
Associations To:
| Zero, One or Many |
object |
Only One |
Object |
| One or Many |
subject |
Only One |
Subject |
| Zero, One or Many |
subject |
Only One |
Subject |
Observed Property Defining Diagram
"Actual Property" established by direct sensation or measurement.
Establishment may be by human senses or machine.
Supertypes:
Actual Property


I'am Lunni.
A place where things get done and done correctly. Discord bots, npm packages, apis and more.
A place where things get done and done correctly. Discord bots, npm packages, apis and more.
HTML/CSS, JavaScript and more. To create useful and effective products!
A range of npm packages that you can utilise! To help the creativity in your applications!
A discord bot to help enhance your servers abilities and give users the best experience!


Warehouse Keeper Romp:
Well? It looks like you have only a few Infernium Ores here. Is this all you brought?
Please go back and collect more before seeing me again.


Toggle navigation
WeConnect
Home
Categories
Wholesale and Retail
Construction
Hotels/Restaurants
Finance
Health
Login
Register
Register
Full Names
Email
Password
Confirm Password
Register
Already have a WeConnect account?
Sign In
© Licio Lentimo


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
// ServiceConfig is provided by the service provider and contains parameters for how
// clients that connect to the service should behave.
//
// Deprecated: Users should not use this struct. Service config should be received
// through name resolver, as specified here
// https://github.com/grpc/grpc/blob/master/doc/service_config.md
type serviceConfig struct {
serviceconfig.Config
// LB is the load balancer the service providers recommends. The balancer
// specified via grpc.WithBalancerName will override this. This is deprecated;
// lbConfigs is preferred. If lbConfig and LB are both present, lbConfig
// will be used.
LB *string
// lbConfig is the service config's load balancing configuration. If
// lbConfig and LB are both present, lbConfig will be used.
lbConfig *lbConfig
// Methods contains a map for the methods in this service. If there is an
// exact match for a method (i.e. /service/method) in the map, use the
// corresponding MethodConfig. If there's no exact match, look for the
// default config for the service (/service/) and use the corresponding
// MethodConfig if it exists. Otherwise, the method has no MethodConfig to
// use.
Methods map[string]MethodConfig
// If a retryThrottlingPolicy is provided, gRPC will automatically throttle
// retry attempts and hedged RPCs when the client’s ratio of failures to
// successes exceeds a threshold.
//
// For each server name, the gRPC client will maintain a token_count which is
// initially set to maxTokens, and can take values between 0 and maxTokens.
//
// Every outgoing RPC (regardless of service or method invoked) will change
// token_count as follows:
//
// - Every failed RPC will decrement the token_count by 1.
// - Every successful RPC will increment the token_count by tokenRatio.
//
// If token_count is less than or equal to maxTokens / 2, then RPCs will not
// be retried and hedged RPCs will not be sent.
retryThrottling *retryThrottlingPolicy
// healthCheckConfig must be set as one of the requirement to enable LB channel
// health check.
healthCheckConfig *healthCheckConfig
// rawJSONString stores service config json string that get parsed into
// this service config struct.
rawJSONString string
}
|


Jakub Kozłowski - Scala Developer @ Scalac
To learn...
how to avoid writing boilerplate
how to avoid runtime overhead
how to add additional static checks
...with macros
Metaprogramming
Code that writes code
During the compilation
used as an annotation
@typeclass trait Numeric[T]{
@op("+") def add(a: T, b: T): T
}
e.g. adds methods, typeclass helpers
currently only with macro-paradise
used as a function
val result = cached (15.minutes) {
expensiveCall(args)
}
can transform its arguments' ASTs
Syntax representation in compilers
Abstract, independent of grammar
println("hello, world")
case class Person(name: String, age: Int, hometown: String){
def toJson = JsonObject(
"name" -> name,
"age" -> age.toString,
"hometown" -> hometown
)
}
object Person{
def fromJson(json: JsonObject) = Person(json[String]("name"), ...)
}
val person = Person("Joe", 26, "NYC")
val personJson = person.toJson
//...
val person2 = Person.fromJson(personJson)
val person = Person("Joe", 26, "NYC")
val personJson = person.toJson
//...
val person2 = personJson.convertTo[Person]
That's all (with the right macro-based library)
//given these classes...
case class Address(street: String, city: String, postcode: String)
case class Person(name: String, age: Int, address: Address)
//update person's address's street
val person = Person("Joe", 18, Address("Long", "NYC", "99999"))
//omg
val newPerson =
person.copy(
address = person.address.copy(
street = person.address.street + " st."
)
)
Use Lens (e.g. from shapeless)
//given these classes...
case class Address(street: String, city: String, postcode: String)
case class Person(name: String, age: Int, address: Address)
//update person's address's street
val person = Person("Joe", 18, Address("Long", "NYC", "99999"))
import shapeless._
val streetLens = lens[Person].address.street
val newPerson = streetLens.modify(person)(_ + " st.")
Creating generic array of elements
def createArray[T: ClassTag](size: Int, el: T) = {
val a = new Array[T](size)
for (i <- 0 until size) a(i) = el
a
}
Uses boxing
You can make use of specialization...
def createArray[@specialized T: ClassTag](size: Int, el: T) = {
val a = new Array[T](size)
for (i <- 0 until size) a(i) = el
a
}
...which is viral and heavyweight
def createArray[T: ClassTag](size: Int, el: T) = {
val a = new Array[T](size)
def specBody[@specialized U](ell: U) {
for (i <- 0 until size) a.asInstanceOf[Array[U]](i) = ell
}
classTag[T] match {
case ClassTag.Int => specBody(el.asInstanceOf[Int])
...
}
a
}
boilerplate!!!!111
def specialized[T: ClassTag](code: Any) = macro ...
def createArray[T: ClassTag](size: Int, el: T) = {
val a = new Array[T](size)
specialized[T] {
for (i <- 0 until size) a(i) = el
}
a
}
Generates specialized code...
without specializing the whole call chain
What's wrong with this code?
def future[T](body: => T) = ...
def receive = {
case Request(data) =>
future {
val result = transform(data)
sender ! Response(result)
}
}
Sender can change
def future[T](body: Spore[T]) = ...
def spore[T](body: => T): Spore[T] = macro ...
def receive = {
case Request(data) =>
//here
future(spore {
val result = transform(data)
sender ! Response(result) // won't compile
})
}
The spore macro will analyze free variables
and fail on suspicious behavior
"org.scala-lang" % "scala-reflect" % "2.11.8"
Compile first, use later
import scala.reflect.macros.blackbox
(or whitebox)
a compiler plugin if using macro paradise
Macros need to be compiled before you use them
e.g.
sbt console
blackbox - returned type is exactly as declared
whitebox - can return a type more specific than declared
def hello: Unit = macro helloImpl
def helloImpl(c: blackbox.Context): c.Expr[Unit] = {
import c.universe._
reify {
println("hello!")
}
}
Write a macro that transforms a function
into its derivative
f(x) = -2(x2 + 4x - 5)
derive(f) = f'(x) = -4x - 8
opportunity for writing cryptic code
basically (type-safe) code generation
still code - potential bugs
compilation overhead
not trivial to debug
Trivial client usage
Not rocket science
macros will be dropped
replaced by scala.meta
easier to write macros
better tooling support (e.g. IDEs)
no whitebox macros
code rewriting in Dotty
Yes, certainly
only when you absolutely need to
We've learned:
what macros are
how they help
how they don't
how to write them
Questions!
Slides: kubukoz.github.io/macro-sourcery-slides
Code: github.com/kubukoz/macro-sourcery-code
Contact me:
Created by Hakim El Hattab / @hakimel
reveal.js enables you to create beautiful interactive slide decks using HTML. This presentation will show you examples of what it can do.
Slides can be nested inside of each other.
Use the Space key to navigate through all slides.
Nested slides are useful for adding additional detail underneath a high level horizontal slide.
That's it, time to go back up.
Not a coder? Not a problem. There's a fully-featured visual editor for authoring these, try it out at http://slides.com.
Press ESC to enter the slide overview.
Hold down alt and click on any element to zoom in on it using zoom.js. Alt + click anywhere to zoom back out.
Presentations look great on touch devices, like mobile phones and tablets. Simply swipe through your slides.
Hit the next arrow...
... to step through ...
... a fragmented slide.
There's different types of fragments, like:
grow
shrink
fade-out
current-visible
highlight-red
highlight-blue
You can select from different transitions, like:
None -
Fade -
Slide -
Convex -
Concave -
Zoom
reveal.js comes with a few themes built in:
Black (default) -
White -
League -
Sky -
Beige -
Simple
Serif -
Blood -
Night -
Moon -
Solarized
Set data-background="#dddddd"
on a slide to change the background color. All CSS color formats are supported.

Different background transitions are available via the backgroundTransition option. This one's called "zoom".
Reveal.configure({ backgroundTransition: 'zoom' })
You can override background transitions per-slide.

function linkify( selector ) {
if( supports3DTransforms ) {
var nodes = document.querySelectorAll( selector );
for( var i = 0, len = nodes.length; i < len; i++ ) {
var node = nodes[i];
if( !node.className ) {
node.className += ' roll';
}
}
}
}
Code syntax highlighting courtesy of highlight.js.
| Item | Value | Quantity |
|---|---|---|
| Apples | $1 | 7 |
| Lemonade | $2 | 18 |
| Bread | $3 | 2 |
These guys come in two forms, inline:
“The nice thing about standards is that there are so many to choose from”
and block:
“For years there has been a theory that millions of monkeys typing at random on millions of typewriters would reproduce the entire works of Shakespeare. The Internet has proven this theory to be untrue.”
You can link between slides internally, like this.
There's a speaker view. It includes a timer, preview of the upcoming slide as well as your speaker notes.
Press the S key to try it out.
Presentations can be exported to PDF, here's an example:
Set data-state="something"
on a slide and "something"
will be added as a class to the document element when the slide is open.
Additionally custom events can be triggered on a per slide basis by binding to the data-state
name.
Reveal.addEventListener( 'customevent', function() {
console.log( '"customevent" has fired' );
} );
Press B or . on your keyboard to pause the presentation. This is helpful when you're on stage and want to take distracting slides off the screen.


You can always contact us via our Discord server.
Product Managers can be found there.
We have set up a Facebook page. You may visit by clicking here.
We have also set up a showcase place, Ma On Shan, for customers to preview our products.
You can always contact us via our Discord server.
Product Managers can be found there.
We have set up a Facebook page. You may visit by clicking here.
We have also set up a showcase place, Ma On Shan, for customers to preview our products.


| 875 | (A) | his Modir and his mylde wyfe he morthirrede to dede |
| 880 | (C) | ¶ Hys moder & his mylde wyfe . he mordered to dethe |
| 865 | (D) | his modur & his mild wyf murthrid to þe dethe |
| 841 | (E) | his moder & his mydwyf . motheryd to dethe |
| (Ex) | ---- no text ---- | |
| 896 | (L) | his modire & his mydewif Murdred to deþe |
| 814 | (P) | His moder & his mylde wyfe muchyd to dede |
| 850 | (U) | his moder and his mydwyf / y-murdred to deth |
| (V) | ---- no text ---- |


JSON Schema Lint is a JSON schema validator to help you write and test of JSON Schemas that conform with the Draft v4 specification.
The author/maintainer is Nick Maynard. Fork this project on Github.
Under the covers, it uses Mathias Buus's is-my-json-valid library, passed through Browserify to make it work in the browser.
Optionally, you may use schemas and documents in the YAML format. These documents are parsed with Jérémy Fairve's yaml.js library.


VERY BAD THINGS (United States) A review by Mark R. Leeper in bullet-list form from the Toronto Internation Film Festival
CAPSULE: Five friends at a stag party are involved in the accidental killing of a prostitute. The cover-up attempt becomes a monster that eats up the friends, two wives and several innocent bystanders. This was a real audience pleaser at Toronto, but it did not do much for me. Rating: 4 (0 to 10), low 0 (-4 to +4)
- Directed by Peter Berg who acted in THE LAST SEDUCTION and COPLAND. - Five buddies go on a stag outing to Las Vegas while Cameron Diaz works through the logistics of her upcoming wedding to one of them. One of the buddies accidentally kills a prostitute. - Several people with no moral compass. They started out with a simple, innocent little cocaine party (!) and by accident look what happened. They have one moral person among them (Daniel Stern), and one totally amoral person (Christian Slater). It is more selfish to let the amoral lead, so they do. - This film is strange, but not really funny or biting. Black comedy should actually be funny as well as strange. There should be some element of satire. The satire is missing here. I did not find myself laughing here either. What we have is a strange crime tale. - One just does not care what happens to these people. - The same idea of people just getting themselves in deeper and deeper has been done frequently. If this film is popular it is just bringing a familiar plot to a new generation. - It begins like DINER (particularly with Daniel Stern) and ends up like an extended horror/crime comic book. - There are several logical holes in script. If a security man goes to investigate a complaint and disappears, wouldn't the guests he was investigating be the first suspects? Someone framed for a crime in the way shown would be judged innocent after minimal forensic detective work. (I am desperately trying to avoid making this a spoiler.) - Popular and situation ethics get a real slamming. - Some acting of grief is hammy and overdone. More yelling than humor.
Mark R. Leeper<EMAIL_ADDRESS>Copyright 1998 Mark R. Leeper
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


 From Skiing to Tubing..."
Photo Citation : Windham Mountain Map
Winter & Summer Activities
Winter
Summer
Skiing
Mountain Biking
Tubing
Rafting


---
layout: page
title: Sponsor
---
Gold Sponsor: Sider Corporation
Sider is a Tokyo-based software company committed to the improvement of the software development process. They are a spinoff of a public software services company, Fixstars Corporation. Sider serves over 15,000 developers in 30+ countries with an automated code review tool (Sider Review), and also provides a team management tool (Sider Team Insights) that aggregates developer progress data in a non-invasive way to improve team productivity.
Their latest tool, Sider Scan, is an advanced code clone detection tool that finds and monitors bugs caused by code clones with superior speed, high flexibility, and a practical user interface. It has raised the standard of code clone detection, and can automatically find bugs, and suggest how to fix them. Examples of bugs detected can be found at their website. Sider Scan is available for local devices as well as for servers. It can be downloaded free at siderlabs.com/scan/.


Since the advent of the RGraph.text2()
function which saves the
coordinates of the text you have been able to use those coordinates to place
an image. You could even use the coordinates of the bar itself if you wished.
You might find that using images (eg faces) may make your charts more instantly recognisable.
This goes in the documents header:<script src="RGraph.common.core.js"></script> <script src="RGraph.drawing.image.js"></script> <script src="RGraph.bar.js"></script>Put this where you want the chart to show up:
<canvas id="cvs" width="500" height="350" style="float: right"> [No canvas support] </canvas>This is the code that generates the chart:


Simplifying your Smart Devices development just need to spend your couple days.
Be more focusing on your businesses and marketing to get you market.
Mobirise is an easy website builder - just drop site elements to your page, add content and style it to look the way you like.
All sites you make with Mobirise are mobile-friendly. You don't have to create a special mobile version of your site.
Mobirise offers many site blocks in several themes, and though these blocks are pre-made, they are flexible.
Mobirise is an easy website builder - just drop site elements to your page, add content and style it to look the way you like. Learn more...
All sites you make with Mobirise are mobile-friendly. You don't have to create a special mobile version of your site. Learn more...
Mobirise offers many site blocks in several themes, and though these blocks are pre-made, they are flexible. Learn more...
Mobirise is an easy website builder - just drop site elements to your page, add content and style it to look the way you like. Learn more...
All sites you make with Mobirise are mobile-friendly. You don't have to create a special mobile version of your site. Learn more...
Mobirise offers many site blocks in several themes, and though these blocks are pre-made, they are flexible. Learn more...


@mainMessage
Borrow Item Form
@helper.form(action = routes.LibraryItemController.borrowItem()){ @helper.inputText(borrowItemForm("isbn")) @helper.inputText(borrowItemForm("day")) @helper.inputText(borrowItemForm("month")) @helper.inputText(borrowItemForm("year"))
Reader / Borrower Information
@helper.inputText(borrowItemForm("id")) @helper.inputText(borrowItemForm("name")) @helper.inputText(borrowItemForm("mobileNumber")) @helper.inputText(borrowItemForm("email")) }