Germany is planning an ambitious search for its 2018 Eurovision Song Contest entry. Three broadcasters will air the national selection, Unser Lied für Lissabon (Our Song for Lisbon) on Thursday 22nd February at 20:15 CET; Das Erste, ONE and Deutsche Welle.
100 members of a special Eurovision Panel and 20-member international jury of experts voted for the six participants. The whole selection process began with 4,000 hopefuls.
Thomas Schreiber, Head of Entertainment at ARD said: "Congratulations and thanks to our six acts! In a multi-stage process, they were selected by the members of our international jury and the 100 women and men who represent the international Eurovision Song Contest viewers. They found six participants that promise to deliver a very exciting and diverse show. The goal is to find the best song for Lisbon now."
The following six participants stand a chance of representing Germany at the Eurovision Song Contest in Lisbon:
A three day Song Writing Camp will be held in Berlin during which up to 15 national and international lyricists, composers and producers will develop songs together with the six acts. On the basis of this material a decision will then be made as to which song is right for whom, and how the performance shall be staged.
For additional information about the German national selection go to the official website, Eurovision.de.


In this project, we aim to develop an application to intelligently match people seeking to volunteer
their services, to organizations seeking volunteers with specific skills. We utilize the latest machine
learning techniques along with bleeding-edge cloud technologies to bring forward a smart, scalable application.
Target Users are the people looking to volunteer their time/services seeking organizations and Organizations
looking for volunteers


Select preferred language does not work, I select "es_ES" and nothing happens
thanks
Archived Forum |
|
Select preferred language does not work?Submitted by Guest on Tue, 25/12/2012 - 09:58Select preferred language does not work, I select "es_ES" and nothing happens thanks » |
Re: Select preferred language does not work?
I have the same problem, only language works en_EN. You can help us
Re: Select preferred language does not work?
There are a couple of extra steps to get multilingual support running, I realize its not linked properly from the installation guide. If you look at step 4 onwards here it should help.
http://openenergymonitor.org/emon/emoncms/using-gettext-on-ubuntu
Re: Select preferred language does not work?
OK PC with Ubuntu.
But raspberry pi the language remains unchanged
Re: Select preferred language does not work?
Ok interesting, I will try it on my pi here
Re: Select preferred language does not work?
Hello, is there any new news
thanks
Re: Select preferred language does not work?
Hello @ all
I´ve tried this from Github for German Language
But is without function...
I can select de_DE in the Combobox but all Labels are in English...
News??? Updates???
thanks
Messen
Re: Select preferred language does not work?
Hi all,
I tried this example gettext on my Raspberry Pi ...
Even the "Hello_World" has not can be transformed.
Seems to be a global problem ... Does anyone have an idea on this?
regards
Matthias
Re: Select preferred language does not work?
Hello all.
Some of you managed to find the solution?
thanks
Re: Select preferred language does not work?
Hi, with the latest version the problem continues....
thanks


Class: Sketchup::ConstructionLine
| Relationships | |
| Super Chains via Extension / Inclusion / Inheritance | |
|
Class Chain:
self,
Drawingelement ,
Entity
|
|
|
Instance Chain:
self,
Drawingelement ,
Entity
|
|
| Inherits: |
Sketchup::Drawingelement
|
Overview
The ConstructionLine class contains methods for modifying construction lines. Construction lines can be infinite in length, semi-infinite (i.e. infinite in one direction) or finite.
Instance Attribute Summary
-
#direction ⇒ Object
rw
The direction method retrieves a 3D vector in the direction of the construction line.
-
#direction=(vector) ⇒ Object
rw
The direction= method is used to set the direction of the construction line to a 3D vector.
-
#end ⇒ Object
rw
The end method retrieves the end point of a construction line in the form of a 3D point.
-
#end=(point) ⇒ Object
rw
The end= method is used to set the end point of the construction line.
-
#position ⇒ Object
rw
The position method is used to retrieve a 3D point used to create a construction line on an infinite construction line.
-
#position=(point) ⇒ Object
rw
The position= method is used to set a 3D point that the construction passes through.
-
#start ⇒ Object
rw
The start method is used to retrieve the starting point of a construction line.
-
#start=(point) ⇒ Object
rw
The start= method is used to set the start point of a construction line making the line’s length finite at the start.
-
#stipple ⇒ String
rw
The #stipple method is used to retrieve the stipple pattern used to display the construction line.
-
#stipple=(pattern)
rw
The #stipple= method is used to set the stipple pattern used to display the construction line.
Drawingelement
- Inherited
| #casts_shadows= | The casts_shadows= method is used to set the |
| #casts_shadows? | The casts_shadows? method is used to determine if the |
| #hidden= | The hidden= method is used to set the hidden status for an element. |
| #hidden? | The hidden? method is used to determine if the element is hidden. |
| #layer | The layer method is used to retrieve the |
| #layer= | The layer= method is used to set the layer for the drawing element. |
| #material | The material method is used to retrieve the material for the drawing element. |
| #material= | The material= method is used to set the material for the drawing element. |
| #receives_shadows= | The receive_shadows= method is used to set the |
| #receives_shadows? | The receive_shadows? method is used to determine if the |
| #visible= | The visible= method is used to set the visible status for an element. |
| #visible? | The visible? method is used to get the visible status for an element. |
Entity
- Inherited
Instance Method Summary
-
#reverse! ⇒ Object
The reverse! method is used to reverse the direction of the construction line.
Drawingelement
- Inherited
| #bounds | The |
| #erase! | The |
Entity
- Inherited
| #add_observer | The add_observer method is used to add an observer to the current object. |
| #attribute_dictionaries | The attribute_dictionaries method is used to retrieve the |
| #attribute_dictionary | The attribute_dictionary method is used to retrieve an attribute dictionary with a given name that is attached to an |
| #delete_attribute | The |
| #entityID | The entityID method is used to retrieve a unique ID assigned to an entity. |
| #get_attribute | The |
| #inspect | The to_s method is used to retrieve the string representation of the entity. |
| #model | The model method is used to retrieve the model for the entity. |
| #parent | The parent method is used to retrieve the parent of the entity. |
| #persistent_id | The |
| #remove_observer | The remove_observer method is used to remove an observer from the current object. |
| #set_attribute | The set attribute is used to set the value of an attribute in an attribute dictionary with the given name. |
| #to_s | The to_s method is used to retrieve the string representation of the entity. |
| #typename | The typename method retrieves the type of the entity, which will be a string such as “Face”, “Edge”, or “Group”. |
Instance Attribute Details
#direction ⇒ Object
(rw)
The direction method retrieves a 3D vector in the direction of the construction line.
#direction=(vector) ⇒ Object
(rw)
The direction= method is used to set the direction of the construction line to a 3D vector.
#end ⇒ Object
(rw)
The end method retrieves the end point of a construction line in the form of a 3D point.
If the construction line is infinite at the end, this returns nil.
#end=(point) ⇒ Object
(rw)
#end=(nil) ⇒ Object
Object
(rw)
#end=(nil) ⇒ Object
The end= method is used to set the end point of the construction line. This method will make the length finite at the end.
Set
the end to nil to make the construction line infinite at the end.
#position ⇒ Object
(rw)
The position method is used to retrieve a 3D point used to create a construction line on an infinite construction line.
#position=(point) ⇒ Object
(rw)
The position= method is used to set a 3D point that the construction passes through
#start ⇒ Object
(rw)
The start method is used to retrieve the starting point of a construction line.
If the construction line is infinite at the start, this returns nil.
#start=(point) ⇒ Object
(rw)
#start=(nil) ⇒ Object
Object
(rw)
#start=(nil) ⇒ Object
The start= method is used to set the start point of a construction line making the line’s length finite at the start.
Setting the start to nil will make the construction line infinite at the start.
#stipple ⇒ String (rw)
The #stipple
method is used to retrieve the stipple pattern used to display the construction line.
#stipple=(pattern) (rw)
The #stipple=
method is used to set the stipple pattern used to display the construction line. The stipple pattern is given as a string.
Valid strings are:
-
"."
(Dotted Line), -
"-"
(Short Dashes Line), -
"_"
(Long Dashes Line), -
"-.-"
(Dash Dot Dash Line).
Instance Method Details
#reverse! ⇒ Object
The reverse! method is used to reverse the direction of the construction line.


JaCoCo Doesn't Like New Version of Kotlin
David Kanenwisher • September 15, 2021
kotlin gradleI recently ran into a spot of trouble with JaCoCo after upgrading to a new version of Kotlin. The project was on Kotlin 1.3.72
and I bumped it all the way to 1.5.30
. I was a bit surprised that this all seemed to go smoothly until JaCoCo kicked out a weird error at me:
Unexpected SMAP line: *S
What?! I wasn't sure what to make of that. Thankfully a google search turned up a github issue. Basically, I needed to update my version of JaCoCo to 0.8.7
. This seemed simple enough until I found myself digging around in our various gradle.build files unable to find a dependencies
block with JaCoCo in it. All I could find was the JaCoCo plugin being applied: apply plugin: 'jacoco'
.
After the significance of it being a plugin sunk in I google for "jacoco plugin" and ended on Gradle's JaCoCo plugin page. This show a helpful little block:
jacoco {
toolVersion = "0.8.7"
}
I put this in my build.gradle at the project level(or not nested inside any mustaches since that implies the project) and my build worked again! Hooray!
What is the JaCoCo plugin using that allows it to set a property at the project level though? Project Extensions! These allow you to give the power to the user of the build script to configure tasks. Mind Blown.


|
Round 1 Match 2: Joe Cash / Roger Corbitt (Q32) def. Jonathan Alvarez / Shaun Dawson (Q33) 21-9, 21-14 (0:39)
Match 3: JD Christie / Tyler Lesneski (Q17) def. Philip Burrow / Brandon Lozano (Q48) 21-8, 21-13 (0:40)
Match 4: Mike Claman / Rob Ritchie (Q16) def. Matt Heath / Jordan Hendrick (Q49) 16-21, 21-10, 15-11 (1:01)
Match 6: Dan Buehring / Matthew McCarthy (Q24) def. Mika Hunkin / Thomas Ta (Q41) 21-13, 21-10 (0:38)
Match 7: Jack Mitchell / Jeff Soler (Q25) def. Zack Kweder / Chris Olds (Q40) 21-14, 21-14 (0:38)
Match 10: Orlando Irizarry / Yunieski Ramirez (Q37) def. Kristopher Back / Ben Murray (Q28) 21-15, 21-13 (0:31)
Match 11: Luiz Costa / Sergio Rios (Q21) def. Josh Brister / Judd Smith (Q44) 19-21, 21-17, 17-15 (1:00)
Match 14: Zach Davis / Nick Miller (Q20) def. Allen Coleman / Damon Gordon (Q45) 21-16, 21-9 (0:39)
Match 15: Robert deAurora / Norge Puentes (Q36) def. Vasyl Martyniuk / Daniel Somerville (Q29) 21-14, 21-16 (0:40)
Match 18: Neil Macklin / Kevin Oleson (Q30) def. John Nunns / Larry Salefsky (Q35) 23-21, 21-17 (0:55)
Match 19: Cody Coughlin / Taylor Roppolo (Q46) def. JJ Colina / Darryl Olenchalk (Q19) 21-19, 21-15 (0:44)
Match 20: Dylan Maarek / Dan Newman (Q14) def. Marshall Brock / Eugene Tichenor (Q51) 21-13, 21-17 (0:36)
Match 22: Steve Nall / Brian Reim (Q43) def. Gregor Lah / Joey Shimkonis (Q22) 26-24, 12-21, 15-10 (1:11)
Match 23: TJ Cloud / Eric Zaun (Q27) def. Kyle Dagostino / Jet Steele (Q38) 21-9, 21-16 (0:34)
Match 26: Dana Camacho / Kyle Radde (16, Q26) def. Tyler Machie-Marsh / Brian Marsh (Q39) 21-10, 21-13 (0:34)
Match 27: Keith Bowen / Nick Vankleeck (Q42) def. Donny Bass / Jason Burgess (Q23) 18-21, 21-17, 15-11 (0:55)
Match 29: William Chenoweth / Justin Phipps (Q15) def. Nathan Lee, Jr. / Bryce Schumacher (Q50) 21-12, 21-11 (0:29)
Match 30: Leonardo Lunardi / Daniel Virkus (Q18) def. Wayne Leever / Jared Tucker (Q47) 21-16, 8-2 retired (0:32)
Match 31: Brett Benfield / Ryan Ragland (Q34) def. Silvio Azevedo / Derek Songalewski (Q31) 21-23, 21-11, 15-10 (0:58)
Round 2 Match 33: Avery Drost / Ty Tramblie (13, Q1) def. Joe Cash / Roger Corbitt (Q32) 21-16, 21-8 (0:47)
Match 34: JD Christie / Tyler Lesneski (Q17) def. Mike Claman / Rob Ritchie (Q16) 21-19, 21-9 (0:37)
Match 35: Dan Buehring / Matthew McCarthy (Q24) def. Cullen Irons / Eric Lucas (Q9) 21-14, 14-21, 15-12 (0:59)
Match 36: Jack Mitchell / Jeff Soler (Q25) def. Michael Boag / Tom Kohler (Q8) 21-18, 24-22 (0:47)
Match 37: Hudson Bates / Mark Burik (15, Q5) def. Orlando Irizarry / Yunieski Ramirez (Q37) 21-14, 21-18 (0:44)
Match 38: Shane Donohue / Kristopher Fraser (Q12) def. Luiz Costa / Sergio Rios (Q21) 21-14, 22-20 (0:55)
Match 39: Nate Davis / Kibbee Jelks (Q13) def. Zach Davis / Nick Miller (Q20) 21-10, 21-16 (0:42)
Match 40: Brian Bomgren / Tim Bomgren (Q4) def. Robert deAurora / Norge Puentes (Q36) 21-12, 21-10 (0:38)
Match 41: Trevor Crabb / Steven VanderWerp (14, Q3) def. Neil Macklin / Kevin Oleson (Q30) 21-17, 21-9 (0:34)
Match 42: Dylan Maarek / Dan Newman (Q14) def. Cody Coughlin / Taylor Roppolo (Q46) 21-4, 21-17 (0:38)
Match 43: Abel Gustafson / Danko Iordanov (Q11) def. Steve Nall / Brian Reim (Q43) 21-19, 21-16 (0:46)
Match 44: Matthew Hilling / Mike Maghy (Q6) def. TJ Cloud / Eric Zaun (Q27) 21-13, 21-15 (0:40)
Match 45: Dana Camacho / Kyle Radde (16, Q26) def. Adam Cabbage / Curt Toppel (Q7) 21-15, 21-19 (0:43)
Match 46: John Moran / Steve VanZwieten (Q10) def. Keith Bowen / Nick Vankleeck (Q42) 18-21, 21-14, 15-10 (0:57)
Match 47: William Chenoweth / Justin Phipps (Q15) def. Leonardo Lunardi / Daniel Virkus (Q18) 21-18, 21-16 (0:38)
Match 48: Billy Kolinske / Jon Mesko (Q2) def. Brett Benfield / Ryan Ragland (Q34) 21-11, 21-10 (0:33)
Round 3 Match 49: Avery Drost / Ty Tramblie (13, Q1) def. JD Christie / Tyler Lesneski (Q17) 21-14, 19-21, 15-13 (1:00)
Match 50: Dan Buehring / Matthew McCarthy (Q24) def. Jack Mitchell / Jeff Soler (Q25) 21-15, 21-13 (0:43)
Match 51: Hudson Bates / Mark Burik (15, Q5) def. Shane Donohue / Kristopher Fraser (Q12) 21-14, 21-18 (0:45)
Match 52: Brian Bomgren / Tim Bomgren (Q4) def. Nate Davis / Kibbee Jelks (Q13) 21-11, 21-12 (0:37)
Match 53: Trevor Crabb / Steven VanderWerp (14, Q3) def. Dylan Maarek / Dan Newman (Q14) 21-17, 22-20 (0:43)
Match 54: Matthew Hilling / Mike Maghy (Q6) def. Abel Gustafson / Danko Iordanov (Q11) 21-16, 21-14 (0:35)
Match 55: Dana Camacho / Kyle Radde (16, Q26) def. John Moran / Steve VanZwieten (Q10) 16-21, 21-12, 15-11 (1:06)
Match 56: Billy Kolinske / Jon Mesko (Q2) def. William Chenoweth / Justin Phipps (Q15) 21-18, 21-18 (0:44)
Round 4 Match 57: Avery Drost / Ty Tramblie (13, Q1) def. Dan Buehring / Matthew McCarthy (Q24) 21-13, 21-18 (0:48)
Match 58: Hudson Bates / Mark Burik (15, Q5) def. Brian Bomgren / Tim Bomgren (Q4) 20-22, 21-15, 15-12 (1:04)
Match 59: Trevor Crabb / Steven VanderWerp (14, Q3) def. Matthew Hilling / Mike Maghy (Q6) 37-39, 21-19, 15-11 (1:12)
Match 60: Dana Camacho / Kyle Radde (16, Q26) def. Billy Kolinske / Jon Mesko (Q2) 15-21, 21-13, 15-10 (1:05)
Round 1 Match 1: Jake Gibb / Casey Patterson (1) def. Dana Camacho / Kyle Radde (16, Q26) 21-12, 21-19 (0:40)
Match 2: Andrei Belov / Adrian Carambula (8) def. Pedro Brazao / Steve Grotowski (9) 21-19, 21-23, 20-18 (1:01)
Match 3: Phil Dalhausser / Sean Rosenthal (5) def. Paul Baxter / Russ Marchewka (12) 21-12, 21-11 (0:45)
Match 4: Avery Drost / Ty Tramblie (13, Q1) def. Theo Brunner / Todd Rogers (4) 21-23, 21-17, 15-12 (1:12)
Match 5: Ryan Doherty / Nick Lucena (3) def. Trevor Crabb / Steven VanderWerp (14, Q3) 21-14, 21-17 (0:32)
Match 6: Brad Keenan / John Mayer (6) def. Jeremy Casebeer / Casey Jennings (11) 21-19, 21-16 (0:45)
Match 7: Billy Allen / Braidy Halverson (7) def. Matt Prosser / Adam Roberts (10) 21-19, 19-21, 15-13 (1:03)
Match 8: Tri Bourne / John Hyden (2) def. Hudson Bates / Mark Burik (15, Q5) 21-13, 21-14 (0:39)
Round 2 Match 9: Jake Gibb / Casey Patterson (1) def. Andrei Belov / Adrian Carambula (8) 21-14, 21-17 (0:48)
Match 10: Phil Dalhausser / Sean Rosenthal (5) def. Avery Drost / Ty Tramblie (13, Q1) 21-17, 21-19 (0:50)
Match 11: Brad Keenan / John Mayer (6) def. Ryan Doherty / Nick Lucena (3) 21-13, 16-21, 15-12 (0:54)
Match 12: Tri Bourne / John Hyden (2) def. Billy Allen / Braidy Halverson (7) 21-15, 21-15 (0:40)
Round 3 Match 13: Phil Dalhausser / Sean Rosenthal (5) def. Jake Gibb / Casey Patterson (1) 21-16, 36-34 (1:07)
Match 14: Tri Bourne / John Hyden (2) def. Brad Keenan / John Mayer (6) 21-15, 21-10 (0:34)
Round 1 Match 15: Matt Prosser / Adam Roberts (10) def. Hudson Bates / Mark Burik (15, Q5) 21-18, 21-18 (0:56)
Match 16: Jeremy Casebeer / Casey Jennings (11) def. Trevor Crabb / Steven VanderWerp (14, Q3) 21-16, 22-20 (0:48)
Match 17: Theo Brunner / Todd Rogers (4) def. Paul Baxter / Russ Marchewka (12) 21-16, 19-21, 15-8 (1:10)
Match 18: Pedro Brazao / Steve Grotowski (9) def. Dana Camacho / Kyle Radde (16, Q26) 21-16, 21-17 (0:39)
Round 2 Match 19: Avery Drost / Ty Tramblie (13, Q1) def. Matt Prosser / Adam Roberts (10) 21-14, 21-14 (0:44)
Match 20: Jeremy Casebeer / Casey Jennings (11) def. Andrei Belov / Adrian Carambula (8) 24-22, 21-8 (0:55)
Match 21: Theo Brunner / Todd Rogers (4) def. Billy Allen / Braidy Halverson (7) 21-12, 21-18 (0:39)
Match 22: Ryan Doherty / Nick Lucena (3) def. Pedro Brazao / Steve Grotowski (9) 21-15, 22-20 (0:47)
Round 3 Match 23: Jeremy Casebeer / Casey Jennings (11) def. Avery Drost / Ty Tramblie (13, Q1) 17-21, 23-21, 15-6 (1:16)
Match 24: Theo Brunner / Todd Rogers (4) def. Ryan Doherty / Nick Lucena (3) 23-21, 19-21, 16-14 (0:56)
Round 4 Match 25: Brad Keenan / John Mayer (6) def. Jeremy Casebeer / Casey Jennings (11) 21-15, 19-21, 20-18 (1:14)
Match 26: Jake Gibb / Casey Patterson (1) def. Theo Brunner / Todd Rogers (4) 21-18, 19-21, 15-11 (1:01)
Match 27: Brad Keenan / John Mayer (6) def. Phil Dalhausser / Sean Rosenthal (5) 15-21, 23-21, 15-12 (1:05)
Match 28: Jake Gibb / Casey Patterson (1) def. Tri Bourne / John Hyden (2) 21-19, 21-19 (0:50)
Match 29: Brad Keenan / John Mayer (6) def. Jake Gibb / Casey Patterson (1) 16-21, 21-19, 18-16 (1:06)
|


BIOSDECODE
Section: Maintenance Commands (8)Updated: February 2007
Index Return to Main Contents
NAME
biosdecode - BIOS information decoderSYNOPSIS
biosdecode [OPTIONS]DESCRIPTION
biosdecode parses the BIOS memory and prints information about all structures (or entry points) it knows of. Currently known entry point types are:- *
-
SMBIOS (System Management BIOS)
Use dmidecode for a more detailed output. - *
-
DMI (Desktop Management Interface, a legacy version of SMBIOS)
Use dmidecode for a more detailed output. - *
- SYSID
- *
- PNP (Plug and Play)
- *
- ACPI (Advanced Configuration and Power Interface)
- *
- BIOS32 (BIOS32 Service Directory)
- *
- PIR (PCI IRQ Routing)
- *
-
32OS (BIOS32 Extension, Compaq-specific)
See ownership for a Compaq ownership tag retrieval tool. - *
- SNY (Sony-specific, not decoded)
- *
-
VPD (Vital Product Data, IBM-specific)
Use vpddecode for a more detailed output. - *
-
FJKEYINF (Application Panel, Fujitsu-specific)
biosdecode started its life as a part of dmidecode but as more entry point types were added, if was moved to a different program.
OPTIONS
- -d, --dev-mem FILE
- Read memory from device FILE (default: /dev/mem)
- -h, --help
- Display usage information and exit
- -V, --version
-
Display the version and exit
FILES
/dev/memBUGS
Most of the time, biosdecode prints too much information (you don't really care about addresses) or not enough (because it doesn't follow pointers and has no lookup tables).AUTHORS
Alan Cox, Jean DelvareSEE ALSO
dmidecode(8), mem(4), ownership(8), vpddecode(8)
Index
This document was created by man2html, using the manual pages.
Time: 05:34:24 GMT, December 24, 2015


The clientID of your application, you should get this from the application registration portal.
A URL indicating a directory that MSAL can use to obtain tokens.
Used to redirect the user back to the redirectUri after login. True = redirects user to redirectUri
Used to keep track of opened popup windows.
Used to redirect the user to this location after logout.
Defaults to window.location.href
.
The redirect URI of the application, this should be same as the value in the application registration portal.
Defaults to window.location.href
.
Used to track the authentication request.
Client ID assigned to your app by Azure Active Directory.
Used to turn authority validation on/off. When set to true (default), MSAL will compare the application's authority against well-known URLs templates representing well-formed authorities. It is useful when the authority is obtained at run time to prevent MSAL from displaying authentication prompts from malicious pages.
Used to get the authority.
Used to set the authority.
Used to get the cache location
Used to acquire an access token for a new user using interactive authentication via a popup Window. To request an id_token, pass the clientId as the only scope in the scopes array.
Permissions you want included in the access token. Not all scopes are guaranteed to be included in the access token. Scopes like 'openid' and 'profile' are sent with every request.
Used to obtain an access_token by redirecting the user to the authorization endpoint. To renew idToken, clientId should be passed as the only scope in the scopes array.
Permissions you want included in the access token. Not all scopes are guaranteed to be included in the access token. Scopes like 'openid' and 'profile' are sent with every request.
Used to get the token from cache. MSAL will return the cached token if it is not expired. Or it will send a request to the STS to obtain an access_token using a hidden iframe. To renew idToken, clientId should be passed as the only scope in the scopes array.
Permissions you want included in the access token. Not all scopes are guaranteed to be included in the access token. Scopes like 'openid' and 'profile' are sent with every request.
A URL indicating a directory that MSAL can use to obtain tokens.
The user for which the scopes are requested.The default user is the logged in user.
Key-value pairs to pass to the STS during the authentication flow.
Used to filter all cached items and return a list of unique users based on userIdentifier.
Returns the signed in user (received from a user object created at the time of login) or null.
Initiate the login process by opening a popup window.
Permissions you want included in the access token. Not all scopes are guaranteed to be included in the access token returned.
Key-value pairs to pass to the STS during the interactive authentication flow.
Initiate the login process by redirecting the user to the STS authorization endpoint.
Permissions you want included in the access token. Not all scopes are guaranteed to be included in the access token returned.
Key-value pairs to pass to the authentication server during the interactive authentication flow.
Used to log out the current user, and redirect the user to the postLogoutRedirectUri.
Defaults behaviour is to redirect the user to window.location.href
.
Generated using TypeDoc
Initialize a UserAgentApplication with a given clientId and authority.


Guess Who?
Play Again
About Us
That's it for this round,
.
The mystery character was...
!
Leaderboard
User
Wins
Losses
Win %


{% extends 'base.html' %} {% load static %} {% block page_title %} Programme: {{ object.name }} {% endblock %} {% block endbody %} {% endblock %} {% block content %}
A pre-test is conducted before the the program and a post-test after. Where a program has more than one assessment, we only considerer cohorts - students present in all tests. Scores have been normalised so that they can be compared and the full methodology is available.


|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.tc33.jheatchart.HeatChart
public class HeatChart
The HeatChart
class describes a chart which can display
3-dimensions of values - x,y and z, where x and y are the usual 2-dimensional
axis and z is portrayed by colour intensity. Heat charts are sometimes known
as heat maps.
Use of this chart would typically involve 3 steps:
getChartImage()
or saveToFile(String)
.
Construction of a new HeatChart
instance is through its one
constructor which takes a 2-dimensional array of doubles which
should contain the z-values for the chart. Consider this array to be
the grid of values which will instead be represented as colours in the chart.
Setting of the x-values and y-values which are displayed along the
appropriate axis is optional, and by default will simply display the values
0 to n-1, where n is the number of rows or columns. Otherwise, the x/y axis
values can be set with the setXValues
and setYValues
methods. Both methods are overridden with two forms:
The simplist way to set the axis values is to use the methods which take an array of Object[]. This array must have the same length as the number of columns for setXValues and same as the number of rows for setYValues. The string representation of the objects will then be used as the axis values.
This is convenient way of defining numerical values along the axis. One of the two methods takes an interval and an offset for either the x or y axis. These parameters supply the necessary information to describe the values based upon the z-value indexes. The quantity of x-values and y-values is already known from the lengths of the z-values array dimensions. Then the offset parameters indicate what the first value will be, with the intervals providing the increment from one column or row to the next.
Consider an example:
double[][] zValues = new double[][]{ {1.2, 1.3, 1.5}, {1.0, 1.1, 1.6}, {0.7, 0.9, 1.3} }; double xOffset = 1.0; double yOffset = 0.0; double xInterval = 1.0; double yInterval = 2.0; chart.setXValues(xOffset, xInterval); chart.setYValues(yOffset, yInterval);
In this example, the z-values range from 0.7 to 1.6. The x-values range from the xOffset value 1.0 to 4.0, which is calculated as the number of x-values multiplied by the xInterval, shifted by the xOffset of 1.0. The y-values are calculated in the same way to give a range of values from 0.0 to 6.0.
This step is optional. By default the heat chart will be generated without a title or labels on the axis, and the colouring of the heat map will be in grayscale. A large range of configuration options are available to customise the chart. All customisations are available through simple accessor methods. See the javadoc of each of the methods for more information.
The generated heat chart can be obtained in two forms, using the following methods:
BufferedImage
object that can be used in any number of ways,
most notably it can be inserted into a Swing component, for use in a GUI
application.
| Field Summary | |
|---|---|
static double |
SCALE_EXPONENTIAL
A basic exponential scale value of 3.0. |
static double |
SCALE_LINEAR
The linear scale value of 1.0. |
static double |
SCALE_LOGARITHMIC
A basic logarithmic scale value of 0.3. |
| Constructor Summary | |
|---|---|
HeatChart(double[][] zValues)
Constructs a heatmap for the given z-values against x/y-values that by default will be the values 0 to n-1, where n is the number of columns or rows. |
|
HeatChart(double[][] zValues,
double low,
double high)
Constructs a heatmap for the given z-values against x/y-values that by default will be the values 0 to n-1, where n is the number of columns or rows. |
| Method Summary | |
|---|---|
java.awt.Color |
getAxisColour()
Returns the colour that is set to be used for the axis bars. |
java.awt.Color |
getAxisLabelColour()
Returns the current colour of the axis labels. |
java.awt.Font |
getAxisLabelsFont()
Returns the font that describes the visual style of the labels of the axis. |
int |
getAxisThickness()
Returns the width of the axis bars in pixels. |
java.awt.Color |
getAxisValuesColour()
Returns the colour of the axis values as they will be painted along the axis bars. |
java.awt.Font |
getAxisValuesFont()
Returns the font which describes the visual style of the axis values. |
java.awt.Color |
getBackgroundColour()
Returns an object that represents the colour to be used as the background for the whole chart. |
int |
getCellHeight()
Deprecated. As of release 0.6, replaced by getCellSize() |
java.awt.Dimension |
getCellSize()
Returns the size of each individual data cell that constitutes a value in the x,y,z space. |
int |
getCellWidth()
Deprecated. As of release 0.6, replaced by getCellSize() |
int |
getChartHeight()
Deprecated. As of release 0.6, replaced by getChartSize() |
java.awt.Image |
getChartImage()
Generates and returns a new chart Image configured
according to this object's currently held settings. |
java.awt.Image |
getChartImage(boolean alpha)
Generates and returns a new chart Image configured
according to this object's currently held settings. |
int |
getChartMargin()
Returns the width of the margin in pixels to be left as empty space around the heat map element. |
java.awt.Dimension |
getChartSize()
Returns the size of the chart in pixels as calculated according to the cell dimensions, chart margin and other size settings. |
int |
getChartWidth()
Deprecated. As of release 0.6, replaced by getChartSize() |
double |
getColourScale()
Returns the scale that is currently in use to map z-value to colour. |
double |
getHighValue()
Returns the high value. |
java.awt.Color |
getHighValueColour()
Returns the colour that is currently to be displayed for the heat map cells with the highest z-value in the dataset. |
double |
getLowValue()
Returns the low value. |
java.awt.Color |
getLowValueColour()
Returns the colour that is currently to be displayed for the heat map cells with the lowest z-value in the dataset. |
java.lang.String |
getTitle()
Returns the String that will be used as the title of any successive calls to generate a chart. |
java.awt.Color |
getTitleColour()
Returns the Color that represents the colour the title text
should be painted in. |
java.awt.Font |
getTitleFont()
Returns the Font that describes the visual style of the
title. |
java.lang.String |
getXAxisLabel()
Returns the String that will be displayed as a description of the x-axis in any generated charts. |
int |
getXAxisValuesFrequency()
Returns the frequency of the values displayed along the x-axis. |
java.lang.Object[] |
getXValues()
Returns the x-values which are currently set to display along the x-axis. |
java.lang.String |
getYAxisLabel()
Returns the String that will be displayed as a description of the y-axis in any generated charts. |
int |
getYAxisValuesFrequency()
Returns the frequency of the values displayed along the y-axis. |
java.lang.Object[] |
getYValues()
Returns the y-values which are currently set to display along the y-axis. |
double[][] |
getZValues()
Returns the 2-dimensional array of z-values currently in use. |
boolean |
isShowXAxisValues()
Returns whether axis values are to be shown at all for the x-axis. |
boolean |
isShowYAxisValues()
Returns whether axis values are to be shown at all for the y-axis. |
boolean |
isXValuesHorizontal()
Returns whether the text of the values along the x-axis are to be drawn horizontally left-to-right, or vertically top-to-bottom. |
boolean |
isYValuesHorizontal()
Returns whether the text of the values along the y-axis are to be drawn horizontally left-to-right, or vertically top-to-bottom. |
static double |
max(double[][] values)
Finds and returns the maximum value in a 2-dimensional array of doubles. |
static double |
min(double[][] values)
Finds and returns the minimum value in a 2-dimensional array of doubles. |
void |
saveToFile(java.io.File outputFile)
Generates a new chart Image based upon the currently held
settings and then attempts to save that image to disk, to the location
provided as a File parameter. |
void |
setAxisColour(java.awt.Color axisColour)
Sets the colour to be used on the axis bars. |
void |
setAxisLabelColour(java.awt.Color axisLabelColour)
Sets the colour of the text displayed as axis labels. |
void |
setAxisLabelsFont(java.awt.Font axisLabelsFont)
Sets the font that describes the visual style of the axis labels. |
void |
setAxisThickness(int axisThickness)
Sets the width of the axis bars in pixels. |
void |
setAxisValuesColour(java.awt.Color axisValuesColour)
Sets the colour to be used for the axis values as they will be painted along the axis bars. |
void |
setAxisValuesFont(java.awt.Font axisValuesFont)
Sets the font which describes the visual style of the axis values. |
void |
setBackgroundColour(java.awt.Color backgroundColour)
Sets the colour to be used on the background of the chart. |
void |
setCellHeight(int cellHeight)
Deprecated. As of release 0.6, replaced by setCellSize(Dimension) |
void |
setCellSize(java.awt.Dimension cellSize)
Sets the size of each individual cell that constitutes a value in x,y,z data space. |
void |
setCellWidth(int cellWidth)
Deprecated. As of release 0.6, replaced by setCellSize(Dimension) |
void |
setChartMargin(int margin)
Sets the width of the margin in pixels to be left as empty space around the heat map element. |
void |
setColourScale(double colourScale)
Sets the scale that is currently in use to map z-value to colour. |
void |
setHighValueColour(java.awt.Color highValueColour)
Sets the colour to be used to fill cells of the heat map with the highest z-values in the dataset. |
void |
setLowValueColour(java.awt.Color lowValueColour)
Sets the colour to be used to fill cells of the heat map with the lowest z-values in the dataset. |
void |
setShowXAxisValues(boolean showXAxisValues)
Sets whether axis values are to be shown at all for the x-axis. |
void |
setShowYAxisValues(boolean showYAxisValues)
Sets whether axis values are to be shown at all for the y-axis. |
void |
setTitle(java.lang.String title)
Sets the String that will be used as the title of any successive calls to generate a chart. |
void |
setTitleColour(java.awt.Color titleColour)
Sets the Color that describes the colour to be used for the
chart title String. |
void |
setTitleFont(java.awt.Font titleFont)
Sets a new Font to be used in rendering the chart's title
String. |
void |
setXAxisLabel(java.lang.String xAxisLabel)
Sets the String that will be displayed as a description of the x-axis in any generated charts. |
void |
setXAxisValuesFrequency(int axisValuesFrequency)
Sets the frequency of the values displayed along the x-axis. |
void |
setXValues(double xOffset,
double xInterval)
Sets the x-values which are plotted along the x-axis. |
void |
setXValues(java.lang.Object[] xValues)
Sets the x-values which are plotted along the x-axis. |
void |
setXValuesHorizontal(boolean xValuesHorizontal)
Sets whether the text of the values along the x-axis should be drawn horizontally left-to-right, or vertically top-to-bottom. |
void |
setYAxisLabel(java.lang.String yAxisLabel)
Sets the String that will be displayed as a description of the y-axis in any generated charts. |
void |
setYAxisValuesFrequency(int axisValuesFrequency)
Sets the frequency of the values displayed along the y-axis. |
void |
setYValues(double yOffset,
double yInterval)
Sets the y-values which are plotted along the y-axis. |
void |
setYValues(java.lang.Object[] yValues)
Sets the y-values which are plotted along the y-axis. |
void |
setYValuesHorizontal(boolean yValuesHorizontal)
Sets whether the text of the values along the y-axis should be drawn horizontally left-to-right, or vertically top-to-bottom. |
void |
setZValues(double[][] zValues)
Replaces the z-values array. |
void |
setZValues(double[][] zValues,
double low,
double high)
Replaces the z-values array. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final double SCALE_LOGARITHMIC
public static final double SCALE_LINEAR
public static final double SCALE_EXPONENTIAL
| Constructor Detail |
|---|
public HeatChart(double[][] zValues)
zValues
- the z-values, where each element is a row of z-values
in the resultant heat chart.public HeatChart(double[][] zValues, double low, double high)
zValues
- the z-values, where each element is a row of z-values
in the resultant heat chart.low
- the minimum possible value, which may or may not appear in the
z-values.high
- the maximum possible value, which may or may not appear in
the z-values.| Method Detail |
|---|
public double getLowValue()
public double getHighValue()
public double[][] getZValues()
public void setZValues(double[][] zValues)
setZValues(double[][], double, double)
method for an example of
z-values. The smallest and largest values in the array are used as the
minimum and maximum values respectively.
zValues
- the array to replace the current array with. The number
of elements in each inner array must be identical.public void setZValues(double[][] zValues, double low, double high)
new double[][]{ {1.0,1.2,1.4}, {1.2,1.3,1.5}, {0.9,1.3,1.2}, {0.8,1.6,1.1} };
| 1.0 | 1.2 | 1.4 | |
| 1.2 | 1.3 | 1.5 | |
| 0.9 | 1.3 | 1.2 | |
| 0.8 | 1.6 | 1.1 | |
zValues
- the array to replace the current array with. The number
of elements in each inner array must be identical.low
- the minimum possible value, which may or may not appear in the
z-values.high
- the maximum possible value, which may or may not appear in
the z-values.public void setXValues(double xOffset, double xInterval)
x-value = x-offset + (column-index * x-interval)
The x-interval defines the gap between each x-value and the x-offset is applied to each value to offset them all from zero.
Alternatively the x-values can be set more directly with the
setXValues(Object[])
method.
xOffset
- an offset value to be applied to the index of each z-value
element.xInterval
- an interval that will separate each x-value item.public void setXValues(java.lang.Object[] xValues)
xValues
- an array of elements to be displayed as values along the
x-axis.public void setYValues(double yOffset, double yInterval)
y-value = y-offset + (column-index * y-interval)
The y-interval defines the gap between each y-value and the y-offset is applied to each value to offset them all from zero.
Alternatively the y-values can be set more directly with the
setYValues(Object[])
method.
yOffset
- an offset value to be applied to the index of each z-value
element.yInterval
- an interval that will separate each y-value item.public void setYValues(java.lang.Object[] yValues)
yValues
- an array of elements to be displayed as values along the
y-axis.public java.lang.Object[] getXValues()
setXValues(Object[])
or that was generated from the offset
and interval that were given to setXValues(double, double)
,
in which case the object type of each element will be Double
.
public java.lang.Object[] getYValues()
setYValues(Object[])
or that was generated from the offset
and interval that were given to setYValues(double, double)
,
in which case the object type of each element will be Double
.
public void setXValuesHorizontal(boolean xValuesHorizontal)
xValuesHorizontal
- true if x-values should be drawn horizontally,
false if they should be drawn vertically.public boolean isXValuesHorizontal()
public void setYValuesHorizontal(boolean yValuesHorizontal)
yValuesHorizontal
- true if y-values should be drawn horizontally,
false if they should be drawn vertically.public boolean isYValuesHorizontal()
@Deprecated public void setCellWidth(int cellWidth)
setCellSize(Dimension)
cellWidth
- the new width to use for each individual data cell.@Deprecated public int getCellWidth()
getCellSize()
@Deprecated public void setCellHeight(int cellHeight)
setCellSize(Dimension)
cellHeight
- the new height to use for each individual data cell.@Deprecated public int getCellHeight()
getCellSize()
public void setCellSize(java.awt.Dimension cellSize)
cellSize
- the new size to use for each individual data cell.public java.awt.Dimension getCellSize()
@Deprecated public int getChartWidth()
getChartSize()
@Deprecated public int getChartHeight()
getChartSize()
public java.awt.Dimension getChartSize()
public java.lang.String getTitle()
public void setTitle(java.lang.String title)
If the title is set to null then no title will be displayed.
Defaults to null.
title
- the chart title to set.public java.lang.String getXAxisLabel()
public void setXAxisLabel(java.lang.String xAxisLabel)
If the xAxisLabel is set to null then no label will be displayed.
Defaults to null.
xAxisLabel
- the label to be displayed describing the x-axis.public java.lang.String getYAxisLabel()
public void setYAxisLabel(java.lang.String yAxisLabel)
If the yAxisLabel is set to null then no label will be displayed.
Defaults to null.
yAxisLabel
- the label to be displayed describing the y-axis.public int getChartMargin()
public void setChartMargin(int margin)
Defaults to 20 pixels.
margin
- the new margin to be left as blank space around the heat
map.public java.awt.Color getBackgroundColour()
public void setBackgroundColour(java.awt.Color backgroundColour)
Defaults to Color.WHITE
.
backgroundColour
- the new colour to be set as the background fill.public java.awt.Font getTitleFont()
Font
that describes the visual style of the
title.
public void setTitleFont(java.awt.Font titleFont)
Font
to be used in rendering the chart's title
String.
Defaults to Sans-Serif, BOLD, 16 pixels.
titleFont
- the Font that should be used when rendering the chart
title.public java.awt.Color getTitleColour()
Color
that represents the colour the title text
should be painted in.
public void setTitleColour(java.awt.Color titleColour)
Color
that describes the colour to be used for the
chart title String.
Defaults to Color.BLACK
.
titleColour
- the colour to paint the chart's title String.public int getAxisThickness()
public void setAxisThickness(int axisThickness)
Defaults to 2 pixels.
axisThickness
- the thickness to use for the axis bars in any newly
generated charts.public java.awt.Color getAxisColour()
public void setAxisColour(java.awt.Color axisColour)
Defaults to Color.BLACK
.
axisColour
- the colour to be set for use on the axis bars.public java.awt.Font getAxisLabelsFont()
public void setAxisLabelsFont(java.awt.Font axisLabelsFont)
Defaults to Sans-Serif, PLAIN, 12 pixels.
axisLabelsFont
- the font to be used to define the visual style of
the axis labels.public java.awt.Color getAxisLabelColour()
public void setAxisLabelColour(java.awt.Color axisLabelColour)
Defaults to Color.BLACK.
axisLabelColour
- the colour to use for the axis label text.public java.awt.Font getAxisValuesFont()
public void setAxisValuesFont(java.awt.Font axisValuesFont)
Defaults to Sans-Serif, PLAIN, 10 pixels.
axisValuesFont
- the font that should be used for the axis values.public java.awt.Color getAxisValuesColour()
public void setAxisValuesColour(java.awt.Color axisValuesColour)
Defaults to Color.BLACK.
axisValuesColour
- the new colour to be used for the axis bar values.public int getXAxisValuesFrequency()
public void setXAxisValuesFrequency(int axisValuesFrequency)
Defaults to 1. Every column is given a value.
axisValuesFrequency
- the frequency of the values displayed against
columns, where 1 is every column and 2 is every other column.public int getYAxisValuesFrequency()
public void setYAxisValuesFrequency(int axisValuesFrequency)
Defaults to 1. Every row is given a value.
axisValuesFrequency
- the frequency of the values displayed against
rows, where 1 is every row and 2 is every other row.public boolean isShowXAxisValues()
If axis values are not shown then more space is allocated to the heat map.
public void setShowXAxisValues(boolean showXAxisValues)
If axis values are not shown then more space is allocated to the heat map.
Defaults to true.
showXAxisValues
- true if x-axis values should be displayed, false
if they should be hidden.public boolean isShowYAxisValues()
If axis values are not shown then more space is allocated to the heat map.
public void setShowYAxisValues(boolean showYAxisValues)
If axis values are not shown then more space is allocated to the heat map.
Defaults to true.
showYAxisValues
- true if y-axis values should be displayed, false
if they should be hidden.public java.awt.Color getHighValueColour()
The full colour range will go through each RGB step between the high value colour and the low value colour.
public void setHighValueColour(java.awt.Color highValueColour)
The full colour range will go through each RGB step between the high value colour and the low value colour.
Defaults to Color.BLACK.
highValueColour
- the colour to use for cells of the highest
z-value.public java.awt.Color getLowValueColour()
The full colour range will go through each RGB step between the high value colour and the low value colour.
public void setLowValueColour(java.awt.Color lowValueColour)
The full colour range will go through each RGB step between the high value colour and the low value colour.
Defaults to Color.WHITE.
lowValueColour
- the colour to use for cells of the lowest
z-value.public double getColourScale()
public void setColourScale(double colourScale)
Defaults to a linear scale value of 1.0.
colourScale
- the scale that should be used to map from z-value to
colour.public void saveToFile(java.io.File outputFile) throws java.io.IOException
Image
based upon the currently held
settings and then attempts to save that image to disk, to the location
provided as a File parameter. The image type of the saved file will
equal the extension of the filename provided, so it is essential that a
suitable extension be included on the file name.
All supported ImageIO
file types are supported, including
PNG, JPG and GIF.
No chart will be generated until this or the related
getChartImage()
method are called. All successive calls
will result in the generation of a new chart image, no caching is used.
outputFile
- the file location that the generated image file should
be written to. The File must have a suitable filename, with an extension
of a valid image format (as supported by ImageIO
).
java.io.IOException
- if the output file's filename has no extension or
if there the file is unable to written to. Reasons for this include a
non-existant file location (check with the File exists() method on the
parent directory), or the permissions of the write location may be
incorrect.public java.awt.Image getChartImage(boolean alpha)
Image
configured
according to this object's currently held settings. The given parameter
determines whether transparency should be enabled for the generated
image.
No chart will be generated until this or the related
saveToFile(File)
method are called. All successive calls
will result in the generation of a new chart image, no caching is used.
alpha
- whether to enable transparency.
Image
. The returned image
is a BufferedImage
.public java.awt.Image getChartImage()
Image
configured
according to this object's currently held settings. By default the image
is generated with no transparency.
No chart will be generated until this or the related
saveToFile(File)
method are called. All successive calls
will result in the generation of a new chart image, no caching is used.
Image
. The returned image
is a BufferedImage
.public static double max(double[][] values)
public static double min(double[][] values)
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |


Gary Lineker blasts Premier League for trying to justify 'absurd' VAR decision
Tottenham produced yet another limp Premier League display as they stumbled to a 1-1 draw with Sheffield United that was marred by more VAR drama
by Matt Maltby, https://www.mirror.co.uk/authors/matt-maltby/Gary Lineker has blasted the Premier League after more VAR drama overshadowed Sheffield United's battling draw against Tottenham on Saturday.
Spurs have endured a miserable start to their league campaign and it got no better against the Blades after Son Heung-min's opener was cancelled out by George Baldock.
Baldock's 78th-minute strike was the second time United had got the ball in the back of the net, but VAR scrubbed off the first after John Lundstram's toe was ruled to be offside after a lengthy decision-making process.
The Premier League attempted to explain the decision, posting on Twitter : "It was tight but the replays show Lundstram was offside in the build-up."
But Match of the Day pundit Lineker, who has been a critic of the Video Assistant Referee this season, was left baffled by the league's response.
He wrote: "This proves nothing. Stop trying to justify these absurdities."
And Blades boss Chris Wilder was another to question the decision-making process.
"John Lundstram's big toe is bigger than it should be," he said. "It's just a bit of confusion from our point of view. When is the reset?
"It's gone down the right, John has crossed, it's gone back out, where does it reset because we have attacked down the left-hand side.
"The length of that stoppage I think doesn't do anybody any good, from the managers to players and, more importantly, the supporters. If it is offside, it's offside and we have to get on with it and accept it.
"My heart sinks every time. It is here to aid referees. It affects the game, the length of time it takes, that's the disappointing aspect of it.
"We have to have a big look at it in the summer, it is going to be here to stay, there's no doubt about that. It is going to have to run its course.
"It seems like every press conference it is the major talking point.
"I am disappointed with that because we should be talking about how we have gone toe-to-toe with the Champions League finalists, it fills me with immense pride with how we have played."


ADD NEW PRODUCT
Name
Description
Image
Price
Manufacturer
Choose manufacturer
Category
Choose category
Confirm
Cancel


"Lack of direction, not lack of time, is the problem.
We all have twenty-four hour days." - Zig Ziglar
I am a experienced education professional with over 30 years of experience. I have contributed to various organisations across India demonstrating continued success with motivating children & helping them learn while realising their potential.
Being in academia for many years, I have been exposed to various problems faced by students, it is here that my experience in counselling psychology allows me to help students in improving their academic performance by constructing customised learning models which optimises their cognitive abilities.

My extensive counselling experience encompasses a range of issues including anxiety, low confidence,lack of concentration and focus among students. My vast teaching and counselling experience helps in building better parent child relationship. Personality dvelopment and other life skills for the young adults is another area of expertise. However, the core competence lies in helping the students in their academics, be it be choice of subjects, choosing a stream or a career ahead including admissions and studies abroad.
From one-on-one sessions to weekly scheduled meetings we want to give your the attention you deserve.
For that extra mile of individual attention!
Remote sessions to not let distance come between us!
For the creative and out-of-the-box solutions you deserve!
People are all about love!
Understand your potential, characteristics and cognitive abilities for targeted self-development
More InfoCounselling is NOT for crazies, it never was.
Counselling is for ANYONE who may be bothered by a short term, temporary difficult phase or for anyone dealing with a chronic, long-standing challenge that's taking a toll on them
Counselling provides confidential support.
This means that everything you discuss with the counsellor is private, between you and the counsellor. The exception is when a counsellor has a duty of care to report something that threatens your well-being or the well-being of others
It can help with positive events such as choosing a direction in life or reaching your full potential. Perhaps you are feeling a 'bit stuck' and would value the viewpoint of a counsellor.
There may be things from your past you would like to tackle or there may be things in the present that you want to try and change.


The story of Kiwis in Australia told via maps and charts
This is a case study project that goes with a presentation at FOSS4G (Free and Open Source Software for Geospatial) Oceania held in Wellington 12–15 Nov 2019 titled How to put on your designer's hat when crafting map experiences.


MCollective » Configure » Servers
This document describes MCollective server configuration in MCollective 2.0.0 and higher. Older versions may lack certain fetaures.
Example / Index
The following is an example MCollective server config file showing all of the major groups of settings. All of the setting names styled as links can be clicked, and will take you down the page to a full description of that setting.
See below the example for a full description of the config file location and format.
# /etc/mcollective/server.cfg
# Connector settings (required):
# -----------------------------
connector = activemq
direct_addressing = 1
# ActiveMQ connector settings:
plugin.activemq.pool.size = 1
plugin.activemq.pool.1.host = middleware.example.net
plugin.activemq.pool.1.port = 61614
plugin.activemq.pool.1.user = mcollective
plugin.activemq.pool.1.password = secret
plugin.activemq.pool.1.ssl = 1
plugin.activemq.pool.1.ssl.ca = /var/lib/puppet/ssl/certs/ca.pem
plugin.activemq.pool.1.ssl.cert = /var/lib/puppet/ssl/certs/web01.example.com.pem
plugin.activemq.pool.1.ssl.key = /var/lib/puppet/ssl/private_keys/web01.example.com.pem
plugin.activemq.pool.1.ssl.fallback = 0
# RabbitMQ connector settings:
plugin.rabbitmq.vhost = /mcollective
plugin.rabbitmq.pool.size = 1
plugin.rabbitmq.pool.1.host = middleware.example.net
# ... etc., similar to activemq settings
# Security plugin settings (required):
# -----------------------------------
securityprovider = ssl
# SSL plugin settings:
plugin.ssl_client_cert_dir = /etc/mcollective.d/clients
plugin.ssl_server_private = /etc/mcollective.d/server_private.pem
plugin.ssl_server_public = /etc/mcollective.d/server_public.pem
# PSK plugin settings:
plugin.psk = j9q8kx7fnuied9e
# Facts, identity, and classes (recommended):
# ------------------------------------------
factsource = yaml
plugin.yaml = /etc/mcollective/facts.yaml
fact_cache_time = 300
identity = web01.example.com
classesfile = /var/lib/puppet/state/classes.txt
# Registration (recommended):
# -----------------------
registerinterval = 600
registration = agentlist
registration_collective = mcollective
# Subcollectives (optional):
# -------------------------
collectives = mcollective,uk_collective
main_collective = mcollective
# Auditing (optional):
# -------------------
rpcaudit = 1
rpcauditprovider = logfile
plugin.rpcaudit.logfile = /var/log/mcollective-audit.log
# Authorization (optional):
# ------------------------
rpcauthorization = 1
rpcauthprovider = action_policy
# Logging:
# -------
logger_type = file
loglevel = info
logfile = /var/log/mcollective.log
keeplogs = 5
max_log_size = 2097152
logfacility = user
# Platform defaults:
# -----------------
daemonize = 1
libdir = /usr/libexec/mcollective
ssl_cipher = aes-256-cbc
The Server Config File(s)
Main Config File
MCollective servers are configured with the /etc/mcollective/server.cfg
file. It contains MCollective’s core settings, as well as settings for the various plugins.
Warning: This file contains sensitive credentials, and should only be readable by the root user, or whatever user the MCollective daemon runs as.
File Format
Each line consists of a setting, an equals sign, and a value:
# setting = value
connector = activemq
The spaces on either side of the equals sign are optional. Lines starting with a #
are comments.
Note on Boolean Values: MCollective’s config code does not have consistent handling of boolean values. Many of the core settings will accept values of
1/0
andy/n
, but will fail to handletrue/false
; additionally, each plugin can handle boolean values differently, and some of them do not properly handle they/n
values accepted by the core settings.Nearly all known plugins and core settings accept
1
and0
. Until further notice, you should always use these for all boolean settings, as no other values are universally safe.
Plugin Config Directory (Optional)
Many of MCollective’s settings are named with the format plugin.<NAME>.<SETTING_NAME>
. These settings can optionally be put in separate files, in the /etc/mcollective/plugin.d/
directory.
To move a plugin.<NAME>.<SETTING_NAME>
setting to an external file, put it in /etc/mcollective/plugin.d/<NAME>.cfg
, and use only the <SETTING_NAME>
segment of the setting. So this:
# /etc/mcollective/server.cfg
plugin.puppet.splay = true
…is equivalent to:
# /etc/mcollective/plugin.d/puppet.cfg
splay = true
Note that this doesn’t work for settings like plugin.psk
, since they have no <SETTING_NAME>
segment; a setting must have at least three segments to go in a plugin.cfg file.
Best Practices
You should manage your MCollective servers’ config files with config management software (such as Puppet). While most settings in a deployment are the same, several should be different for each server, and managing these differences manually is impractical.
If your deployment is fairly simple and there is little division of responsibility (e.g. having one group in charge of MCollective core and another group in charge of several agent plugins), then you can manage the config file with a simple template.
If your deployment is large or complex, or you expect it to become so, you should manage MCollective settings as individual resources, as this is the only practical way to divide responsibilities within a single file.
Below is an example of how to do this using the file_line
type from the puppetlabs/stdlib module:
# /etc/puppet/modules/mcollective/manifests/setting.pp
define mcollective::setting ($setting = $title, $target = '/etc/mcollective/server.cfg', $value) {
validate_re($target, '\/(plugin\.d\/[a-z]+|server)\.cfg\Z')
$regex_escaped_setting = regsubst($setting, '\.', '\\.', 'G') # assume dots are the only regex-unsafe chars in a setting name.
file_line {"mco_setting_${title}":
path => $target,
line => "${setting} = ${value}",
match => "^ *${regex_escaped_setting} *=.*$",
}
}
# /etc/puppet/modules/mcollective_core/manifests/server/connector.pp
# ...
# Connector settings:
mcollective::setting {
'connector':
value => 'activemq';
'direct_addressing':
value => '1';
'plugin.activemq.pool.size':
value => '1';
'plugin.activemq.pool.1.host':
value => $activemq_server;
'plugin.activemq.pool.1.port':
value => '61614';
'plugin.activemq.pool.1.user':
value => $activemq_user;
'plugin.activemq.pool.1.password':
value => $activemq_password;
'plugin.activemq.pool.1.ssl':
value => '1';
'plugin.activemq.pool.1.ssl.fallback':
value => '1';
}
# ...
Required Settings
Connector Settings
connector = activemq
direct_addressing = 1
# ActiveMQ connector settings:
plugin.activemq.pool.size = 1
plugin.activemq.pool.1.host = middleware.example.net
plugin.activemq.pool.1.port = 61614
plugin.activemq.pool.1.user = mcollective
plugin.activemq.pool.1.password = secret
plugin.activemq.pool.1.ssl = 1
# When ssl == 1:
plugin.activemq.pool.1.ssl.ca = /var/lib/puppet/ssl/certs/ca.pem
plugin.activemq.pool.1.ssl.cert = /var/lib/puppet/ssl/certs/web01.example.com.pem
plugin.activemq.pool.1.ssl.key = /var/lib/puppet/ssl/private_keys/web01.example.com.pem
plugin.activemq.pool.1.ssl.fallback = 0
# RabbitMQ connector settings:
plugin.rabbitmq.vhost = /mcollective
plugin.rabbitmq.pool.size = 1
plugin.rabbitmq.pool.1.host = middleware.example.net
plugin.rabbitmq.pool.1.port = 61613
# ... etc., similar to activemq settings
MCollective always requires a connector plugin. The connector plugin is determined by the middleware you chose for your deployment. Each connector plugin will have additional settings it requires.
Shared Configuration
- All servers and clients must use the same connector plugin, and its settings must be configured compatibly.
- You must use the right connector plugin for your choice of middleware.
- The hostname and port must match what the middleware is using. The username and password must be valid login accounts on the middleware. If you are using CA-verified TLS, the certificate must be signed by the same CA the middleware is using.
connector
Which connector plugin to use. This is determined by your choice of middleware.
- Default:
activemq
- Allowed values:
activemq
,rabbitmq
, or the name of a third-party connector plugin. Note: Capitalization of plugin names doesn’t matter; MCollective normalizes it before loading the plugin.
direct_addressing
Whether your middleware supports direct point-to-point messages. This should usually be turned on, although it is off by default. The built-in activemq
and rabbitmq
connectors both support direct addressing, as does the external redis
connector. (The older stomp
connector, however, does not.)
- Default:
0
- Allowed values:
1
,0
,y
,n
— Note: Use these exact values only; do not use “true” or “false.”
ActiveMQ Connector Settings
ActiveMQ is the main middleware we recommend for MCollective. The ActiveMQ connector can use multiple servers as a failover pool; if you have only one server, just use a pool size of 1
.
Note: This is only a summary of the most commonly used ActiveMQ settings; there are about ten more settings that can be used to tune the connector’s performance. See the ActiveMQ connector documentation for more complete details.
plugin.activemq.pool.size
— How many ActiveMQ servers to attempt to use. Default: (nothing)plugin.activemq.pool.1.host
— The hostname of the first ActiveMQ server. (Note that additional servers use the same settings as the first, incrementing the number.) Default: (nothing)plugin.activemq.pool.1.port
— The Stomp port of the first ActiveMQ server. Default:61613
or6163
, depending on the MCollective version.plugin.activemq.pool.1.user
— The ActiveMQ user account to connect as. If theSTOMP_USER
environment variable is set, MCollective will use its value instead of this setting.plugin.activemq.pool.1.password
— The password for the user account being used. If theSTOMP_PASSWORD
environment variable is set, MCollective will use its value instead of this setting.plugin.activemq.pool.1.ssl
— Whether to use TLS when connecting to ActiveMQ. Default:0
; allowed:1/0
,true/false
,yes/no
plugin.activemq.pool.1.ssl.fallback
— (Whenssl == 1
) Whether to allow unverified TLS if the ca/cert/key settings aren’t set. Default:0
; allowed:1/0
,true/false
,yes/no
plugin.activemq.pool.1.ssl.ca
— (Whenssl == 1
) The CA certificate to use when verifying ActiveMQ’s certificate. Must be the path to a.pem
file. Default: (nothing)plugin.activemq.pool.1.ssl.cert
— (Whenssl == 1
) The certificate to present when connecting to ActiveMQ. Must be the path to a.pem
file. Default: (nothing)plugin.activemq.pool.1.ssl.key
— (Whenssl == 1
) The private key corresponding to this node’s certificate. Must be the path to a.pem
file. Default: (nothing)
RabbitMQ Connector Settings
The RabbitMQ connector uses very similar settings to the ActiveMQ connector, with the same .pool.1.host
style of setting names.
See the RabbitMQ connector documentation for more complete details.
Security Plugin Settings
securityprovider = ssl
# SSL plugin settings:
plugin.ssl_client_cert_dir = /etc/mcollective/clients
plugin.ssl_server_private = /etc/mcollective/server_private.pem
plugin.ssl_server_public = /etc/mcollective/server_public.pem
# PSK plugin settings:
plugin.psk = j9q8kx7fnuied9e
MCollective always requires a security plugin. (Although they’re called security plugins, they actually handle more, including message serialization.) Each security plugin will have additional settings it requires.
Shared Configuration
All servers and clients must use the same security plugin, and its settings must be configured compatibly.
It’s possible to write new security plugins, but most people use one of the three included in MCollective:
- SSL: The best choice for most users. Provides very good security when combined with TLS on the connector plugin (see above).
- PSK: Poor security, but easy to configure; fine for proof-of-concept deployments.
- AES: Complex to configure, and carries a noticable performance cost in large networks. Only suitable for certain use cases, like where TLS on the middleware is impossible.
For a full-system look at how security works in MCollective, see Security Overview.
securityprovider
Which security plugin to use.
- Default:
psk
- Allowed values:
ssl
,psk
,aes_security
, or the name of a third-party security plugin. Note: Capitalization of plugin names doesn’t matter; MCollective normalizes it before loading the plugin.
SSL Plugin Settings
Note: This security plugin requires you to manage and distribute SSL credentials. See the SSL security plugin page for full details. In summary:
- All servers share one “server” keypair. They must all have a copy of the public key and private key.
- Every admin user must have a copy of the server public key.
- Every admin user has their own “client” keypair.
- Every server must have a copy of every authorized client public key.
All of these settings have no default, and must be set for the SSL plugin to work.
plugin.ssl_server_private
— The path to the server private key file, which must be in.pem
format.plugin.ssl_server_public
— The path to the server public key file, which must be in.pem
format.plugin.ssl_client_cert_dir
— A directory containing every authorized client public key.
The client uses different settings, which are covered in the client config reference:
plugin.ssl_server_public
plugin.ssl_client_private
plugin.ssl_client_public
PSK Plugin Settings
Note: The only credential used by this plugin is a single shared password, which all servers and admin users have a copy of.
plugin.psk
— The shared passphrase. If theMCOLLECTIVE_PSK
environment variable is set, MCollective will use its value instead of this setting.
Recommended Features
Facts, Identity, and Classes
factsource = yaml
plugin.yaml = /etc/mcollective/facts.yaml
fact_cache_time = 300
identity = web01.example.com
classesfile = /var/lib/puppet/state/classes.txt
MCollective clients use filters to discover nodes and limit commands. (See Discovery Filters for more details.) These filters can use a variety of per-server metadata, including facts, identity, and classes.
- Facts: A collection of key/value data about a server’s hardware and software. (E.g.
memorytotal = 8.00 GB
,kernel = Darwin
, etc.) - Identity: The name of the node.
- Classes: The Puppet classes (or Chef cookbooks, etc.) applied to this node. Classes are useful as metadata because they describe what roles a server fills at your site.
None of these settings are mandatory, but MCollective is less useful without them.
identity
The node’s name or identity. This should be unique for each node, but does not need to be.
- Default: The value of Ruby’s
Socket.gethostname
method, which is usually the server’s FQDN. - Sample value:
web01.example.com
- Allowed values: Any string containing only alphanumeric characters, hyphens, and dots — i.e. matching the regular expression
/\A[\w\.\-]+\Z/
classesfile
A file with a list of classes applied by your configuration management system. This should be a plain text file containing one class name per line.
Puppet automatically writes a class file, which can be found by running sudo puppet apply --configprint classfile
. Chef can be made to write a class file.
- Default:
/var/lib/puppet/state/classes.txt
factsource
Which fact plugin to use.
MCollective includes a fact plugin called yaml
. Most users should use this default, set the plugin.yaml
setting (see below), and arrange to fill the file it relies on.
Other fact plugins (including Facter and Ohai ones) are available in the plugin directory. These may require settings of their own.
- Default:
yaml
- Allowed values: The name of any installed fact plugin, with the
_facts
suffix trimmed off. Note: Capitalization of plugin names doesn’t matter; MCollective normalizes it before loading the plugin.
plugin.yaml
When factsource == yaml
The fact file(s) to load for the default yaml
fact plugin.
- Default: (nothing)
- Sample value:
/etc/mcollective/facts.yaml
- Valid values: A single path, or a list of paths separated by the system path separator (colon [
:
] on *nix, semicolon [;
] on Windows).
Notes:
The default yaml
fact plugin reads cached facts from a file, which should be a simple YAML hash. If multiple files are specified, they will be merged. (Later files override prior ones if there are conflicting values.)
The user is responsible for populating the fact file; by default it is empty, and MCollective has no facts.
If you are using Puppet and Facter, you can populate it by putting something like the following in your puppet master’s /etc/puppet/manifests/site.pp
, outside any node definition:
# /etc/puppet/manifests/site.pp
file{"/etc/mcollective/facts.yaml":
owner => root,
group => root,
mode => 400,
loglevel => debug, # reduce noise in Puppet reports
content => inline_template("<%= scope.to_hash.reject { |k,v| k.to_s =~ /(uptime_seconds|timestamp|free)/ }.to_yaml %>"), # exclude rapidly changing facts
}
fact_cache_time
How long (in seconds) to cache fact results before refreshing from source. This can be ignored unless you’re using a non-default factsource
.
- Default:
300
Node Registration
registerinterval = 600
registration = agentlist
registration_collective = mcollective
Note: We recommend that everyone using the ActiveMQ or RabbitMQ connector set a
registerinterval
of about 600 seconds (10m). You do not need to set a non-default registration plugin or configure a receiver for the registration messages. (If you do, you might want to extend the interval a bit to reduce load.)We do this to work around a set of annoyances in the underlying network protocols:
- Stomp connections are completely idle when no messages are being sent.
- Many firewalls will kill idle TCP connections after a while, which can cause nodes to drop out of the deployment at seemingly random times.
- MCollective sets the keep-alive flag on its TCP connections, but most default OS configurations only send the first keep-alive packet after about two hours, so this doesn’t really fix the problem. Nodes may still disappear for an hour or so, then come back.
- Stomp 1.1 fixes this with protocol-level heartbeats, but the implementations haven’t quite caught up and have had some bugs, so we can’t rely on it yet.
Thus, we work around all this by sending an irrelevant registration message every ten minutes, which keeps the connection alive (and will recover if it does die) with a very lightweight amount of traffic.
By default, registration is disabled, due to registerinterval
being set to 0.
Optionally, MCollective servers can send periodic heartbeat messages containing some inventory information. This can provide a central inventory at sites that don’t already use something like PuppetDB, and can also be used as a simple passive monitoring system.
The default registration plugin, agentlist
, sends a standard SimpleRPC command over the MCollective middleware, to be processed by some server with an agent called registration
installed. You would need to ensure that the registration
agent is extremely performant (due to the volume of message it will receive) and installed on a limited number of servers. If your middleware supports detailed permissions, you must also ensure that it allows servers to send commands to the registration agent (ActiveMQ instructions).
Some registration plugins (e.g. redis
) can insert data directly into the inventory instead of sending an RPC message. This is a flexible system, and the user is in charge of deciding what to build with it, if anything. If all you need is a searchable inventory, PuppetDB is probably closer to your needs.
registerinterval
How long (in seconds) to wait between registration messages. Setting this to 0 disables registration.
- Default:
0
registration
The registration plugin to use.
This plugin must be installed on the server sending the message, and will dictate what the message contains. The default agentlist
plugin will only send a list of the installed agents. See Registration Plugins for more details.
- Default:
agentlist
- Allowed values: The name of any installed registration plugin. Note: Capitalization of plugin names doesn’t matter; MCollective normalizes it before loading the plugin.
registration_collective
Which subcollective to send registration messages to, when using a SimpleRPC-based registration plugin.
- Default: (the value of
main_collective
, usuallymcollective
)
Optional Features
Subcollectives
collectives = mcollective,uk_collective
main_collective = mcollective
Subcollectives provide an alternate way of dividing up the servers in a deployment. They are mostly useful because the middleware can be made aware of them, which enables traffic flow and access restrictions. In multi-datacenter deployments, this can save bandwidth costs and give some extra security.
- See the Subcollectives and Partitioning page for more details and an example of site partitioning.
Subcollective membership is managed on the server side, by each server’s config file. A given server can join any number of collectives, and will respond to commands from any of them.
Shared Configuration
If you are using any additional collectives (besides the default
mcollective
collective), your middleware must be configured to permit traffic on those collectives. See the middleware deployment guide for your specific middleware to see how to do this:
collectives
A comma-separated list (spaces OK) of subcollectives this server should join.
- Default:
mcollective
- Sample value:
mcollective,uk_collective
main_collective
The main collective for this server. Currently, this is only used as the default value for the registration_collective
setting.
- Default: (the first value of the
collectives
setting, usuallymcollective
)
Auditing
rpcaudit = 1
rpcauditprovider = logfile
plugin.rpcaudit.logfile = /var/log/mcollective-audit.log
Optionally, MCollective can log the SimpleRPC agent commands it receives from admin users, recording both the command itself and some identifying information about the user who issued it. The caller ID of a command is determined by the security plugin being used.
MCollective ships with a local logging audit plugin, called Logfile
, which saves audit info to a local file (different from the daemon log file). Log lines look like this:
2010-12-28T17:09:03.889113+0000: reqid=319719cc475f57fda3f734136a31e19b: reqtime=1293556143 caller=cert=nagios@monitor1 agent=nrpe action=runcommand data={:process_results=>true, :command=>"check_mailq"}
Tthere are central loggers available from the plugin directory, and you can also write your own audit plugins; see Writing Auditing Plugins for more information.
rpcaudit
Whether to enable SimpleRPC auditing for all SimpleRPC agent commands.
- Default:
0
- Allowed values:
1
,0
,y
,n
— Note: Use these exact values only; do not use “true” or “false.”
rpcauditprovider
The name of the audit plugin to use whenever SimpleRPC commands are received.
- Default: (nothing)
- Sample value:
logfile
- Allowed values: The name of any installed audit plugin. Note: Capitalization of plugin names doesn’t matter; MCollective normalizes it before loading the plugin.
plugin.rpcaudit.logfile
When rpcauditprovider == logfile
The file to write to when using the logfile
audit plugin. Note: this file is not automatically rotated.
- Default:
/var/log/mcollective-audit.log
Authorization
rpcauthorization = 1
rpcauthprovider = action_policy
Optionally, MCollective can refuse to execute agent commands unless they meet some requirement. The exact requirement is defined by an authorization plugin.
See SimpleRPC Authorization for more details, including how to enable authorization for only certain agents.
The actionpolicy plugin, which is provided in the plugin directory, is fairly popular and seems to meet many users’ needs, when combined with a security plugin that provides a verified caller ID (such as the SSL plugin). See its documentation for details.
rpcauthorization
Whether to enable SimpleRPC authorization globally.
- Default:
0
- Allowed values:
1
,0
,y
,n
— Note: Use these exact values only; do not use “true” or “false.”
rpcauthprovider
The plugin to use when globally managing authorization. See SimpleRPC Authorization for more details.
- Default: (nothing)
- Sample value:
action_policy
- Allowed values: The name of any installed authorization plugin. This uses different capitalization/formatting rules from the other plugin settings: if the name of the plugin (in the code) has any interior capital letters (e.g.
ActionPolicy
), you should use a lowercase value for the setting but insert an underscore before the place where the interior capital letter(s) would have gone (e.g.action_policy
). If the name contains no interior capital letters, simply use a lowercase value with no other changes.
Advanced Settings
Logging
logger_type = file
loglevel = info
logfile = /var/log/mcollective.log
keeplogs = 5
max_log_size = 2097152
logfacility = user
The MCollective server daemon can log to its own log file (which it will automatically rotate), or to the syslog. It can also log directly to the console, if you are running it in the foreground instead of daemonized.
Some of the settings below only apply if you are using log files, and some only apply if you are using syslog.
logger_type
How the MCollective server daemon should log. You generally want to use a file or syslog.
- Default:
file
- Allowed values:
file
,syslog
,console
loglevel
How verbosely to log.
- Default:
info
- Allowed values: In increasing order of verbosity:
fatal
,error
,warn
,info
,debug
logfile
When logger_type == file
Where the log file should be stored.
- Default: (nothing; the package’s default config file usually sets a platform-appropriate value)
- Sample value:
/var/log/mcollective.log
keeplogs
When logger_type == file
The number of log files to keep when rotating.
- Default:
5
max_log_size
When logger_type == file
Max size in bytes for log files before rotation happens.
- Default:
2097152
logfacility
When logger_type == syslog
The syslog facility to use.
- Default:
user
Platform Defaults
daemonize = 1
libdir = /usr/libexec/mcollective
ssl_cipher = aes-256-cbc
These settings generally shouldn’t be changed by the user, but their values may vary by platform. The package you used to install MCollective should have created a config file with platform-appropriate values for these settings.
daemonize
Whether to fork and run the MCollective server daemon in the background.
This depends on your platform’s init system. For example, newer Ubuntu releases require this to be false, while RHEL-derived systems require it to be true.
- Default:
0
- Allowed values:
1
,0
,y
,n
— Note: Use these exact values only; do not use “true” or “false.”
libdir
Where to look for plugins. Should be a single path or a list of paths separated by the system path separator (colon [:
] on *nix, semicolon [;
] on Windows).
By default, this setting is blank, but the package you installed MCollective with should supply a default server.cfg file with a platform-appropriate value for this setting. If server.cfg has no value for this setting, MCollective will not work.
- Default: (nothing; the package’s default config file usually sets a platform-appropriate value)
- Sample value:
/usr/libexec/mcollective:/opt/mcollective
ssl_cipher
The cipher to use for encryption. This is currently only relevant if you are using the AES security plugin.
This setting should be a standard OpenSSL cipher string. See man enc
for a list.
- Default:
aes-256-cbc


There are books about it
![books](img/paper_book.jpg)
Tools that cost $100+ dollars
![books](img/axure.png)
Some are Hi-Fi
![oculus](img/oculus_hifi.jpg)
Some are Low-Fi
![glass](img/glass_lofi.png)
It's all the different ways you can
### **represent** an idea
and
### **prove** it's worth!
DON'T have 100 conference calls about just an idea
You're **not** going to get it right
![confcall](img/confcall.jpg)
DON'T follow the Waterfall Model
![waterfall](img/waterfall.png)
Back of the Envelope Sketch **IS** Your v0.1
DON'T reinvent the wheel
![confcall](img/wheel.png)
Innovate on the core part. Bootstrap the rest.
DON'T spend countless hours making it "pretty"
Usability is **NOT** aesthetics
![ironman](img/ironman.jpg)
#DTR
Design, Test, Repeat
Generate new ideas **Using** your prototype
Leverage existing behavior
Focus on the core function
If you can draw something like this.
![ironman](img/drawing_paper.jpg)
You have **NO EXCUSE**
## **Can't Code?**
#### How about Arts and Crafts.
Pen + Paper + Scissors
![paper](img/paper_proto.jpg)
Cardboard
![cardboard](img/cardboard.jpg)
PVC Pipes
![pvc](img/pvc.jpg)
### *What about Content?*
Lorem Ipsum
![lipsum](img/lipsum.png)
Use Real Copy.
![copy](img/copy.jpg)
It's a 1st Class Citizen.
Balsamiq
![bal](img/balsamiq.jpg)
Visio
![visio](img/visio.png)
Omnigraffle
![omni](img/omni.png)
Mockingbird
![omni](img/mockingbird.png)
Keynote / Powerpoint
![keynote](img/keynote.png)
### *Graphics/Animation Software*
Photoshop / Illustrator / Indesign
![photoshop](img/photoshop.jpg)
Sketch
![sketch](img/sketch.jpg)
Flash / Edge Animate / After Effects
![anim](img/anim.gif)
Squarespace
![anim](img/squarespace.png)
Wordpress
![anim](img/wordpress.png)
Launchrock
![anim](img/launchrock.png)
### * But what about **mobile**?*
Popapp
![anim](img/popapp.jpg)
Flinto
![anim](img/flinto.jpg)
Proto.io
![anim](img/proto.png)
Dropbox
![dropbox](img/dropbox.jpg)
### * So you think you can **code** ?*
JSBin
![dropbox](img/jsbin.png)
Codepen
![dropbox](img/codepen.png)
JsFiddle
![dropbox](img/jsfiddle.jpg)
Bootstrap
![dropbox](img/bootstrap.png)
Foundation
![dropbox](img/foundation.jpg)
Yeoman
![dropbox](img/yeoman.jpg)
Heroku
![dropbox](img/heroku.png)
Phonegap
![dropbox](img/phonegap.png)
Parse
![dropbox](img/parse_.png)
### *Hardware **+** Misc*
Arduino
![dropbox](img/arduino.jpg)
Raspberry Pi
![dropbox](img/raspberry.jpg)
123D Circuits
![dropbox](img/123D.png)
Sketchup
![dropbox](img/sketchup.png)
Freeform by LeapMotion
![dropbox](img/leap.jpeg)
3dHubs
![dropbox](img/3dhub.png)
oDesk / TaskRabbit
![dropbox](img/odesk.png)
### *Testing **&** Validation*
Starbucks
![dropbox](img/star.jpg)
SurveyMonkey
![dropbox](img/survey.png)
TaskRabbit (again)
![dropbox](img/taskrabbit.png)
Feedback Army
![dropbox](img/feedback.png)
Amazon mturk
![dropbox](img/mturk.png)
## Be **fast**.
## Listen to Feedback.
## **Everyone** can prototype
## It **never** really ends!
## So don't forget to **ship**!
## **Thanks!**
##### @cheneytsai


Jah Prayzah ropes in Madlela
Axe-wielding musician, Madlela Skhobokhobo has been added onto the line-up of a forthcoming show to be headlined by Jah Prayzah (JP) in Bulawayo.
by Mthabisi TshumaMadlela who is preparing for his wedding next month, has replaced afro-sensation Mbeu for the show slated for the Homestead Conference Centre next Friday.
Also performing on the night will be Gwanda’s fast-rising Master Zhoe.
Related Articles
Nov 12, 2019 8,437 1
Jah Prayzah, Jan Jam shake showbiz
Nov 3, 2019 19,836 2
Jah Prayzah fans want Christmas album
Oct 21, 2019 7,154 1
‘I heard Jah Prayzah was cruel’
Oct 10, 2019 21,421 18
One of the show’s organisers, Assan Mandizvidza Mugumbate said all was set for the show with Madlela being added due to public demand.
“We saw it fit to include Madlela Skhobokhobo after fans requested for him to perform at the show. Looking at the fact that he has a large following in Bulawayo, we decided to honour the fans,” said Mugumbate.
Madlela who will be sharing the stage with the Sadza Nemuriwo hit-maker for the first time, said he is elated to be performing alongside JP.
“It’s an honour to be performing with Jah Prayzah. He’s currently the biggest musician in Zimbabwe according to how I see it, so sharing the stage with him is a big honour,” said Madlela.
He said he has performed with other greats, Winky D, Alick Macheso and Leonard Zhakata among many others and was yearning to perform with JP as he was the only big artiste he had not yet performed with.
Madlela, who is also an actor, added that show attendees would be in for a rare treat as he has new projects which he will showcase at the gig.
“I promise my fans a superb performance. I’ll also use the opportunity to sample new songs which I’m currently working on in preparation for a new album which I’ll drop early next year,” he said.
Jah Prayzah who last performed in Bulawayo in April, is expected back in the country this week after a successful shindig at the One Africa Music Festival in Dubai this past weekend where he shared the stage with Africa’s greats. The Chronicle


--- layout: post title: Job.new(:company => "SalesCrunch") published: true date: 2010-12-26 categories: [] posterous_url: http://blog.hungerandthirstdesign.com/post/2473837668/job-new-company-salescrunch posterous_slug: post/2473837668/job-new-company-salescrunch ---
So long time, and here’s why.
At the tail end of this year, I’m starting in with a brand new company, SalesCrunch. It’s an exciting new opportunity for me and I’m really pumped to be working with a group of talented and experienced individuals who aren’t working around Oracle (sorry Hargray).
SalesCrunch’s site gives some details and a cool video about what the project it, but the developer lowdown is, we’re making a crazy awesome product with a lot of really cool technologies on the back end. I’m gonna have lots to blog about in the coming days, when I find the time. Things have been really fast, with a few major deadlines looming (soft-launch was during my first week! No time to start like during the launch cycle!) but its keeping me interested and busy.
Three things make this job a huge step above where I had been:
These are awesome for a number of reasons. Pairs got me up to speed and made me a productive, contributing member to the project on the first day, and TDD is making sure all the code I contribute integrates and works. I’ve never done either before and I’m really pumped to be working with both. Agile development is pretty sweet too, because it’s giving me a small subset of a larger goal and making me feel productive on a day-to-day basis. A lot of previous projects were over-arching “We need X done by Y”. Now its, “Lets get these pieces done today, over the week, to work toward, X.” I can’t say enough for both already.
There will be plenty more to come. Stay tuned on this brand new journey, and definitely check out SalesCrunch and sign up for an invite! Ping me in the comments if you want one and I’ll see what I can do.


jhat - Java Heap Analysis Tool
f3 f3jhat [ f2options ] <heap-dump-file>
options Options, if used, should follow immediately after the command name.
heap-dump-file Java binary heap dump file to be browsed. For a dump file that contains multiple heap dumps, you may specify which dump in the file by appending "#<number> to the file name, i.e. "foo.hprof#3".
The f3jhat command parses a java heap dump file and launches a webserver. jhat enables you to browse heap dumps using your favorite webbrowser. jhat supports pre-designed queries (such as 'show all instances of a known class "Foo"') as well as f3OQL (f3Object f3Query f3Language) - a SQL-like query language to query heap dumps. Help on OQL is available from the OQL help page shown by jhat. With the default port, OQL help is available at http://localhost:7000/oqlhelp/
There are several ways to generate a java heap dump:
o Use jmap(1) -dump option to obtain a heap dump at runtime;
o Use jconsole(1) option to obtain a heap dump via
f2HotSpotDiagnosticMXBean @
o Heap dump will be generated when OutOfMemoryError is thrown by specifying -XX:+HeapDumpOnOutOfMemoryError VM option;
o Use hprof.
f3NOTE: This tool is f3experimental and may f3not be available in future versions of the JDK.
-stack false/true Turn off tracking object allocation call stack. Note that if allocation site information is not available in the heap dump, you have to set this flag to false. Default is true.
-refs false/true Turn off tracking of references to objects. Default is true. By default, back pointers (objects pointing to a given object a.k.a referrers or in-coming references) are calculated for all objects in the heap.
-port port-number Set the port for the jhat's HTTP server. Default is 7000.
-exclude exclude-file Specify a file that lists data members that should be excluded from the "reachable objects" query. For example, if the file lists f2java.lang.String.value, then, whenever list of objects reachable from a specific object "o" are calculated, reference paths involving f2java.lang.String.value field will not considered.
-baseline baseline-dump-file Specify a baseline heap dump. Objects in both heap dumps with the same object ID will be marked as not being "new". Other objects will be marked as "new". This is useful while comparing two different heap dumps.
-debug int Set debug level for this tool. 0 means no debug output. Set higher values for more verbose modes.
-version Report version number and exit.
-h Output help message and exit.
-help Output help message and exit.
-J<flag> Pass <flag> to the Java virtual machine on which jhat is run. For example, -J-Xmx512m to use a maximum heap size of 512MB.
o jmap(1)
o jconsole(1)
o hprof - Heap and CPU profiling tool


Ouch! Something prevented Bowerbird from fetching the CSS Rules that feature this color.
This could happen if:
file://


2010
December, 2010
Hotel on the Corner of Bitter and Sweet
Jamie Ford
October, 2010
The Girl from Foreign: A Search for Shipwrecked Ancestors, Forgotten Histories, and a Sense of Home
Sadia Shepard
August, 2010
Sarah's Key
Tatiana de Rosnay
June, 2010
The Space Between Us
Thrity Umrigar
April, 2010
The Help
Kathryn Stockett
February, 2010
The Guernsey Literary and Potato Peel Pie Society
Annie Barrows


Toast
class Toast
Undocumented
-
Undocumented
See moreDeclaration
Swift
enum Position
-
Undocumented
Declaration
Swift
static let `default`: Toast
-
Undocumented
Declaration
Swift
var positionOffset: CGFloat
-
Undocumented
Declaration
Swift
var position: Position
-
Undocumented
Declaration
Swift
var percentageWidth: CGFloat
-
Undocumented
Declaration
Swift
var cornerRadius: CGFloat
-
Undocumented
Declaration
Swift
var dismissDuration: TimeInterval
-
Undocumented
Declaration
Swift
var backgroundColor: UIColor
-
Undocumented
Declaration
Swift
var duration: TimeInterval
-
Undocumented
Declaration
Swift
var isShadowEnabled: Bool
-
Undocumented
Declaration
Swift
var isVisible: Bool
-
Undocumented
Declaration
Swift
func show(message: String)
-
Undocumented
Declaration
Swift
func addToastToWindow()


| DOSE: |
180 mg |
oral |
Codeine |
(pill / tablet) |
I had Codeine only pills 30mg and decided to try 180mg. I'd read about the enjoyment people get from this and decided to use up the last of my pills. After around 25 mins I felt it come on strong. This, regrettably, is the best part. The come on hits and I begin to smile, euphoria could come at any moment, but it never does.
After this first 10mins I found my scalp to be intensely itchy. I started scratching and did so for around 20mins. I recall thinking how this entirely ruined the experience. Indeed those 20 mins were unpleasant. After the itching became less intense and I began to relax again, while watching tv. This soon became boring, and I decided to listen to music. This was a thoroughly enjoyable experience, producing a pleasurable high.
After 2 hours of this I felt tired and decided on bed. In bed the bedsheets against my skin felt wonderful I also felt very happy about the prospect of sleep and had no difficulty in falling asleep. One thing I noticed about the experience is the lack of sedation through most of it and this can be unpleasant. Indeed excitability can occur. I will probably steer clear of large codeine doses in future.
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.


Like all other medicines or vaccines, this vaccine has the potential for some side effects. However, in most cases, they are very mild, such as pain, swelling, redness at the injection site, muscle and joint pain, weakness, nausea, fever, fatigue etc. No serious side effects have been reported so far, according to clinical trials.
However, if you have any problem, you must go to the nearest hospital immediately and seek the advice of a doctor.


AstonPro
menu
My Courses
Messages
Hi, There
Settigns
Logout
My Coureses
Computer Graphics
Add Course
Messages
Settings
Logout
Course Name
Update
Delete
Course Name
Update
Delete
Course Name
Update
Delete
New Course
Create


Recent Computer Engineering graduate with a passion for small business and powerful
technologies. Strong background in team leadership, computer programming and project management.
Looking for an exceptional workplace culture that can provide a career with long term growth
potential, a collaborative work environment, and a service that every employee is
passionate about.
Education
Bucknell University - Bachelor of Science in Computer Engineering
Relevant Coursework
Senior Design – Project leader on a Wireless Sensor Network System for Active Video Gaming
Computer Architecture – Covered parallel computing systems and computation efficiency
Should We Start This Company? – CTO of a Gym Monitoring System solution
Advanced Digital Design – Designed parallel data computational systems using FPGA’s
Data Structures and Algorithms – Learned basic algorithmic structures and methods
Introduction to Database – Covered SQL/Access, Database Structure, and Query Building
Professional Experience
Microsoft Dynamics CRM Intern
Consultant work in designing custom Dynamics CRM solutions for clients in the
greater Pittsburgh, PA area
Collaborated with Plus consultants and clients to provide customized solutions
to their business needs through the Microsoft 365 suite of products
Created an internal sales process to automate the process from lead creation
to sales close
Rotational Intern
Participated in rotational program through 3 divisions of a startup data storage company
Worked with operations team to analyze usage of Forever’s services to
determine pricing for different data usage levels


Bananaa Management Console
Logout
Add Dish
Edit Dishes
Tags
Recommendations
Rate Engines
Edit Flags
Add New Restaurant
City
Hyderabad
Restaurant
Name
Veg or Non-veg
Veg
Non Veg
Both
Suggestion Name
Suggestions :
✖
Cuisine
Cuisines :
✖
SEARCH IMAGE
Image
Thumbnail
Is Active
Add Item
Suggestion Name
Add Suggestion Name
Cuisine Name
Add Cuisine
Restaurant
Name
Recommendations
Add Recommendations
Restaurant
↻
Id
Name
V/NV/B
Suggestions
Cuisines
Save Veg/Nonveg Values
Restaurant
Id :
2
Fusion 9, Hitech City Hyderabad
Run Engine
Run Engine
Restaurant Name
Is Active
Yes
No
Can Edit Menu
Yes
No
Update Flags
Name
XYZ Bar And Cafe
Name ID
xyz-bar-and-cafe-hitech-city
Phone
1231231232
Address
Level 10, Inorbit Mall, Hitech City, Hyderabad
Locality ID
3
Type
Fine Dining, Bar, Casual Dining
Average Cost
1650
Image URL
https://s3.ap-south-1.amazonaws.com/bna-s3/rest-img/air-cube-jubilee-hills.jpg
Thumbnail
https://s3.ap-south-1.amazonaws.com/bna-s3/rest-img/t/air-cube-jubilee-hills.jpg
Add Restaurant
Edit Dish
Name
Veg or Non-veg
Veg
Non Veg
Both
Suggestion Name
Suggestions :
✖
Cuisine
Cuisines :
✖
Image
Thumbnail


Happiness is the basic right of all the world’s citizens. Therefore, we created the tools to allow any individual to find his own notion of Happiness. At Happy Home we do not claim to corner the market on happiness, we just find the right source of happiness worldwide and then we make the world smaller. At Happy Home We Bring You Home!


--- title: 2019 Schedule layout: default permalink: seasons/2019/schedule ---
| Event | Date | Location |
|---|---|---|
| Riverside Tryouts | May 4 | Zilker Metropolitan Park Austin, TX |
| Club Centex | June 8-9 | McMasters Athletics Complex Georgetown, TX |
|
Texas Two Finger
(USAU Site) |
June 29-30 | Five Star Soccer Complex The Colony, TX |
| Riverside Classic | July 13-14 | Round Rock Multipurpose Complex Round Rock, TX |
| PBJ | July 27-28 | Bryan Regional Athletic Complex Bryan, TX |
| Texas Sectionals | Sept 7-8 | Round Rock Multipurpose Complex Round Rock, TX |
| South Central Regionals | Sept 21-22 | TBA |
| Date | Time | Opponent | Score |
|---|---|---|---|
| July 27 | 8:30AM | Louisiana Second Line | 13 - 10 |
| 10:15AM | HIP | 11 - 13 | |
| 12:00PM | Quaze | 13 - 2 | |
| 1:45PM | Texas Heatwave | 13 - 3 | |
| July 28 | 8:45AM | Surrilic Audovice | 13 - 5 |
| 10:30AM | Gaucho | 15 - 13 | |
| 12:30PM | HIP | 9 - 15 |
| Date | Time | Opponent | Score |
|---|---|---|---|
| June 8 | 9:30AM | Foxtrot | 11 - 12 |
| 11:00AM | Texas Toast | 11 - 4 | |
| 12:30PM | Harvey Cats | 10 - 11 | |
| June 9 | 8:00AM | Bazookas | 12 - 11 |
| 9:45AM | HIP | 6 - 13 | |
| 11:30AM | Foxtrot | 12 - 9 | |
| 1:15PM | Gaucho X | 2 - 7 |


Commuters to be able to pay for MRT, bus rides with NETS contactless cards
SINGAPORE: Commuters will be able to use a NETS contactless card to pay for public transport rides starting from Nov 16, said the Land Transport Authority (LTA) in a news release on Thursday (Nov 7).
Participating banks include DBS/POSB, OCBC and UOB.
Commuters have already been able to pay for rides using Mastercard and Visa.
“Contactless payment technology is becoming the norm in our busy lifestyles,” NETS CEO Jeffrey Goh said, adding that customers will now have "a simple and fast option for their daily commute".
READ: Mastercard contactless cards can be used to pay for transport from April; Visa later this year
Commuters can link their NETS card to TransitLink's SimplyGo account, which enables them to view their trip history and be notified of their fares, said LTA.
NETS Tap contactless cardholders need not pre-register their cards for public transport rides.
LTA also reminded those who carry more than one contactless card and/or travel card to take out the card they wish to use from their wallet or bag before tapping at the fare reader, to avoid charges to multiple cards or delay in travel.
More than 250,000 commuters have signed up for a SimplyGo account with a bank card since April, with more than 350,000 trips daily currently paid with SimplyGo, added LTA.
Commuters can also link their mobile wallets such as Apple Pay and Google Pay with SimplyGo.
LTA said it is working with EZ-Link to allow commuters to upgrade their ez-link cards to enjoy SimplyGo benefits, like topping up on-the-go.