Represents the game as a whole. More...
#include <Game.h>
Public Types | |
| enum | MouseMode { MouseMode::regular, MouseMode::selectPosition, MouseMode::selectEntity } |
Public Slots | |
| void | updateGuiPositions () |
| void | onEntityMoved (Entity *entity) |
| Executed whenever an Entity moves. More... | |
| void | onWatchedEntityDies_ (QObject *watchedEntity) |
| Executed when a watched entity dies. More... | |
| void | onWatchingEntityDies_ (QObject *watchingEntity) |
| Executed when a watching entity dies. More... | |
Signals | |
| void | positionSelected (QPointF pos) |
| Emitted whenever a position is selected while Game is in selectPosition MouseMode. More... | |
| void | entitySelected (Entity *entity) |
| Emitted whenever an Entity is selected while the Game is in selectEntity MouseMode. More... | |
| void | mousePressed (QPoint pos, Qt::MouseButton button) |
| Emitted whenever the a mouse button is pressed down while Game is in regular MouseMode. More... | |
| void | mouseMoved (QPoint pos) |
| Emitted whenever the mouse is moved while the Game is in regular MouseMode. More... | |
| void | mouseReleased (QPoint pos, Qt::MouseButton button) |
| Emitted whenever a mouse button is released while the Game is in regular MouseMode. More... | |
| void | mapChanged (Map *oldMap, Map *newMap) |
| Emitted when the current Map of the game is changed. More... | |
| void | watchedEntityEntersRange (Entity *watched, Entity *watching, double range) |
| Emitted when a watched Entity enters within range of one of its watching entities. More... | |
| void | watchedEntityLeavesRange (Entity *watched, Entity *watching, double range) |
| Emitted when a watched Entity leaves range of one of its watching entities. More... | |
| void | camMoved (QPointF newPos) |
| Emitted Game's camera moves. More... | |
Public Member Functions | |
| Game (MapGrid *mapGrid, int xPosOfStartingMap, int yPosOfStartingMap) | |
| Creates an instance of the Game with some default options. More... | |
| void | launch () |
| Launches the Game. More... | |
| MapGrid * | mapGrid () |
| void | setCurrentMap (Map *currentMap) |
| Sets the current Map that the Game is visualizing. More... | |
| Map * | currentMap () |
| Returns the Game's current Map. More... | |
| QPointF | mapToMap (const QPoint &point) |
| Converts the specified point from Game coordinates to Map coordinates ( of the current Map). More... | |
| QPointF | mapFromMap (const QPointF &point) |
| Converts the specified point from Map coordinates to Game coordinates. More... | |
| void | setCenterCamPos (QPointF position) |
| Sets the center of the camear to be looking at the specified point on the current Map. More... | |
| QPointF | centerCamPos () |
| Returns the pos of the center of the camera. More... | |
| QRectF | cam () |
| Returns a rectangle representing the current position/size of the camera. More... | |
| void | moveCam (QVector2D byVector) |
| Moves the camera by the specified vector on the Map. More... | |
| void | moveCamUp (double byAmount) |
| Moves the camera up by the specified amount. More... | |
| void | moveCamDown (double byAmount) |
| Moves the camera down by the specified amount. More... | |
| void | moveCamLeft (double byAmount) |
| Moves the camera left by the specified amount. More... | |
| void | moveCamRight (double byAmount) |
| Moves the camera right by the specified amount. More... | |
| void | mousePressEvent (QMouseEvent *event) |
| void | mouseMoveEvent (QMouseEvent *event) |
| void | mouseReleaseEvent (QMouseEvent *event) |
| void | keyPressEvent (QKeyEvent *event) |
| void | keyReleaseEvent (QKeyEvent *event) |
| void | addGui (Gui *gui) |
| Adds the specified Gui to the game. More... | |
| void | removeGui (Gui *gui) |
| Removes the specified Gui from the game. More... | |
| bool | containsGui (Gui *gui) |
| Returns true if the Game contains the specified Gui. More... | |
| std::set< int > | keysPressed () |
| Returns the keys that are currently pressed. More... | |
| QPoint | getMousePos () |
| Returns the current mouse position in Game coordinates. More... | |
| MouseMode | mouseMode () |
| Returns the MouseMode that the Game is in. More... | |
| void | setMouseMode (MouseMode mode) |
| Sets the MouseMode that the game should b in. More... | |
| void | addWatchedEntity (Entity *watched, Entity *watching, double range) |
| Adds a watched-watching pair. More... | |
| bool | watchedWatchingPairExists (Entity *watched, Entity *watching) |
| Returns true if the specified watched-watching pair exists. More... | |
| void | removeWatchedEntity (Entity *watched, Entity *watching) |
| Removes a watched-watching pair. More... | |
| void | removeWatchedEntity (Entity *watched) |
| Completely removes the specified entity from the watched list. More... | |
| void | removeWatchingEntity (Entity *watching) |
| Removes all the watched-watching pairs where the specified entity is the watching entity. More... | |
| std::set< Entity * > | watchedEntities () |
| Returns all the entities that are being watched. More... | |
| std::set< Entity * > | watchedEntities (Entity *of) |
| Returns all entities that are being watched by the specified entity. More... | |
| std::set< Entity * > | watchingEntities () |
| Returns all entities that are watching some other entities. More... | |
| std::set< Entity * > | watchingEntities (Entity *of) |
| Returns all the entities that are watching the specified entity. More... | |
| double | watchedWatchingRange (Entity *watched, Entity *watching) |
| Returns the range that the watching entity is watching the watched entity. More... | |
| void | setWatchedWatchingRange (Entity *watched, Entity *watching, double range) |
| Sets the range for the specified watced-watching pair. More... | |
Public Attributes | |
| std::vector< Entity * > | enemies_ |
Static Public Attributes | |
| static Game * | game = nullptr |
Represents the game as a whole.
This is basically the window the will visualize a Map. This class is a singleton, thus you can only construct one instance. If you try to construct a second one, an exception will be thrown. The Game::game pointer is global, you can access it from anywhere.
A Game represents an instance of the game as a whole. It controls things such as GUIs, screen size, changing maps, etc...
|
strong |
| Game::Game | ( | MapGrid * | mapGrid, |
| int | xPosOfStartingMap, | ||
| int | yPosOfStartingMap | ||
| ) |
Creates an instance of the Game with some default options.
Adds a watched-watching pair.
If the specified watched-watching pair already exists, will simply update the range.
| QRectF Game::cam | ( | ) |
Returns a rectangle representing the current position/size of the camera.
|
signal |
Emitted Game's camera moves.
| newPos | the new position of the camera (its center). |
| QPointF Game::centerCamPos | ( | ) |
Returns the pos of the center of the camera.
| Map * Game::currentMap | ( | ) |
|
signal |
| QPoint Game::getMousePos | ( | ) |
Returns the current mouse position in Game coordinates.
| void Game::keyPressEvent | ( | QKeyEvent * | event | ) |
| void Game::keyReleaseEvent | ( | QKeyEvent * | event | ) |
| std::set< int > Game::keysPressed | ( | ) |
Returns the keys that are currently pressed.
| void Game::launch | ( | ) |
Launches the Game.
Emitted when the current Map of the game is changed.
| QPointF Game::mapFromMap | ( | const QPointF & | point | ) |
| MapGrid * Game::mapGrid | ( | ) |
| QPointF Game::mapToMap | ( | const QPoint & | point | ) |
| Game::MouseMode Game::mouseMode | ( | ) |
Returns the MouseMode that the Game is in.
|
signal |
Emitted whenever the mouse is moved while the Game is in regular MouseMode.
| The | position (in screen coordinates) that the mouse moved to. |
| void Game::mouseMoveEvent | ( | QMouseEvent * | event | ) |
|
signal |
Emitted whenever the a mouse button is pressed down while Game is in regular MouseMode.
| pos | The position selected, in screen coordinates. |
| button | The mouse button that was pressed. |
| void Game::mousePressEvent | ( | QMouseEvent * | event | ) |
|
signal |
Emitted whenever a mouse button is released while the Game is in regular MouseMode.
| The | position (in screen coordinates) at which the mouse was released at. |
| button | The mouse button that was released. |
| void Game::mouseReleaseEvent | ( | QMouseEvent * | event | ) |
| void Game::moveCam | ( | QVector2D | byVector | ) |
Moves the camera by the specified vector on the Map.
| void Game::moveCamDown | ( | double | byAmount | ) |
Moves the camera down by the specified amount.
| void Game::moveCamLeft | ( | double | byAmount | ) |
Moves the camera left by the specified amount.
| void Game::moveCamRight | ( | double | byAmount | ) |
Moves the camera right by the specified amount.
| void Game::moveCamUp | ( | double | byAmount | ) |
Moves the camera up by the specified amount.
If byAmount is negative, then obviously, it will be moved down... I can't believe I felt like I had to tell you that ^__^
|
slot |
Executed whenever an Entity moves.
Will see if the moved entity enters/leaves range of any watching entities, if so, will emit respective signal.
|
slot |
Executed when a watched entity dies.
Will update book keeping.
|
slot |
Executed when a watching entity dies.
Will update book keeping.
|
signal |
| void Game::removeGui | ( | Gui * | gui | ) |
Removes the specified Gui from the game.
Does nothing if the gui is already removed.
Removes a watched-watching pair.
Throws if the specified watched-watching pair does not exist (call watchedWatchingPairExists() to see if a pair exists before calling this function).
| void Game::removeWatchedEntity | ( | Entity * | watched | ) |
Completely removes the specified entity from the watched list.
This is the same as calling removeWatchedEntity(Entity*,Entity*) for all the watched-watching pairs this watched is associated with. Sorry for the tongue twister :). ///
| void Game::removeWatchingEntity | ( | Entity * | watching | ) |
Removes all the watched-watching pairs where the specified entity is the watching entity.
In other words, effectively makes the specified entity stop watching all its watched entities.
| void Game::setCenterCamPos | ( | QPointF | position | ) |
Sets the center of the camear to be looking at the specified point on the current Map.
| void Game::setMouseMode | ( | Game::MouseMode | mode | ) |
Sets the range for the specified watced-watching pair.
|
slot |
| std::set< Entity * > Game::watchedEntities | ( | ) |
Returns all the entities that are being watched.
Returns all entities that are being watched by the specified entity.
|
signal |
Emitted when a watched Entity enters within range of one of its watching entities.
Game allows you to keep track of some Entities that are being watched by some other Entities. Whenever a "watched" entity moves, game will determine if its within range of any of the entities that are watching it (i.e. the "watching" entities), if so, a signal will be emitted.
For example, suppose you have entityA and entityB. You want entityA to be notified whenever entityB enters within 100 pixels of it. You can do this by calling addWatchedEntity(entityB, entityA, 100);
| range | the range of the watching entity that the watched entity just entered. |
|
signal |
Emitted when a watched Entity leaves range of one of its watching entities.
| range | the range of the wathing entity that the watched entity just left. |
Returns true if the specified watched-watching pair exists.
Returns the range that the watching entity is watching the watched entity.
| std::set< Entity * > Game::watchingEntities | ( | ) |
Returns all entities that are watching some other entities.
Returns all the entities that are watching the specified entity.
| std::vector<Entity*> qge::Game::enemies_ |
|
static |


{% extends "bootstrap_layout.html" %}
{% set active_page = "Strain Menu" %}
{% block content %}
{{ message }}
Send a [POST] or [PUT] request to https://ds-med-cabinet.herokuapp.com/predict with a json object structured like so:
{
"id": "420",
"Desired Effects": "Uplifed, Happy, Relaxed, Energetic, Creative"
}
The API response will PUT a JSON object with recommended Strain and Effects to the Med Cabinet Database where it can be stored and retrieved by Med Cabinet members via Front End Web services.
There is also a local strain recommendation service page with GUI located in the navigation bar or also available at this link:
https://ds-med-cabinet.herokuapp.com/recommendations
Send a [GET] request to https://ds-med-cabinet.herokuapp.com/request to request all of the Med Cabinet API Data.
Also try to Send a [GET] request to https://ds-med-cabinet.herokuapp.com/data to request all of the Med Cabinet API Data. This page has a GUI, so you may prefer the above mentioned API request
Send a [GET] request to https://ds-med-cabinet.herokuapp.com/
Although these two pages are not API's and this is an API first application, it is worth noting that these two pages were added for non technical users to explore the data by using the find functions on their respective operating systems. The GUI here is more user friendly and the links can be found in the top Navigation Bar.
This page is also found in the Navbar and is not an API, yet it includes functionality to search for a strain using the URL.


{% extends "base.html" %} {% load static %} {% block title %}Really Friendly Git Intro - {{ block.super }}{% endblock %} {% block header %} {% endblock header %} {% block analytics %} analytics.page("Git zine landing page"); {% endblock %} {% block bodyclass %}
{% endblock %} {% block content %}This zine/ebook will cover the basics of Git so you can get started with your coding projects with confidence. Also on Amazon
24 friendly and easy-to-read pages, available to read online or print-and-staple at home.
Interior illustrations by the author, Tracy Osborn, and the cover lovingly made by her partner, Andrey Petrov.
Sign up here to access the content online as well as downloadable and print-and-staple at home PDFs. Other retailers:
haven't tried using the command line before? it's never too late to learn the basics, and this (FREE!) guide makes it easy:
— Kevin Chang (@teenwolfblitzer) April 25, 2018
Really Friendly Command Line Intro: https://t.co/jpWhbIB5lp pic.twitter.com/O9EgpNcHmx
“Really Friendly Command Line Intro” by the wonderful @tracymakes - Hello Web Books https://t.co/kJty4HRFyg
— Hazim Sami (@hazim) March 26, 2018
Really Friendly Command Line Intro https://t.co/aF5Ph05dC0 A free, ilustrated and fun book for learning about the command line pic.twitter.com/qSJjkUqCqh
— Rubén Chavarría T. (@rchavarriat) April 13, 2018
Curious about the command line? Check out "Really Friendly Command Line Intro" https://t.co/Lmtt8he1K9 by @tracymakes
— WebdevLearning (@webdevlearning) March 31, 2018


Open-source impulse response library.
Find Out MoreNot everyone has access to expensive amplifier speakers. Using our service you're able to produce high quality recordings without having to shell out thousands of dollars for equipment. The only thing you need is your guitar, your computer, and a digital audio workstation.
The impulse response is the sound of the amplifier speaker. Every speaker has a particular sound quality which will drastically alter the result of any recording – no one speaker sounds alike! By capturing the frequencies of the impulse response on an amplifier speaker, and then transforming it into a simple .wav-file, you're able to replicate the exact sound of that speaker digitally. These .wav-files are then made readily available on this site for you to dig into and start creating your next masterpiece.


I don't like your little games
Don't like your tilted stage
The role you made me play
Of the fool, no, I don't like you
I don't like your perfect crime
How you laugh when you lie
You said the gun was mine
Isn't cool, no, I don't like you (oh)
But I got smarter, I got harder in the nick of time
Honey, I rose up from the dead, I do it all the time
I've got a list of names and yours is in red, underlined
I check it once, then I check it twice, oh!

The world moves on, another day, another drama, drama
But not for me, not for me, all I think about is karma
And then the world moves on, but one thing's for sure
Maybe I got mine, but you'll all get yours
But I got smarter, I got harder in the nick of time
Honey, I rose up from the dead, I do it all the time
I've got a list of names and yours is in red, underlined
I check it once, then I check it twice, oh!
......
Source


|
SuanShu, a Java numerical and statistical library | |||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.numericalmethod.suanshu.parallel.ParallelExecutor
public class ParallelExecutor
This class provides a framework for executing an algorithm in parallel. A thread pool is created when executing a list of tasks.
| Constructor Summary | |
|---|---|
ParallelExecutor()
Creates an instance using default concurrency number, which is the number of available processors returned by
Runtime.getRuntime().availableProcessors()
|
|
ParallelExecutor(int concurrency)
Creates an instance with a specified concurrency number. |
| Method Summary | ||
|---|---|---|
|
conditionalForEach(boolean conditionToParallelize,
java.lang.Iterable<T> iterable,
IterationBody<T> body)
Calls forEach
only if conditionToParallelize is true. |
|
void |
conditionalForLoop(boolean conditionToParallelize,
int start,
int end,
int increment,
LoopBody body)
Runs a parallel for-loop only if conditionToParallelize is true. |
|
void |
conditionalForLoop(boolean conditionToParallelize,
int start,
int end,
LoopBody body)
Calls conditionalForLoop
with increment of 1. |
|
|
executeAll(java.util.concurrent.Callable<T>... tasks)
Executes an arbitrary number of Callable tasks, and returns a
list of results in the same order. |
|
|
executeAll(java.util.List<? extends java.util.concurrent.Callable<T>> tasks)
Executes a list of Callable tasks, and returns a list of results
in the same order. |
|
|
executeAny(java.util.concurrent.Callable<T>... tasks)
Executes a list of tasks in parallel, and returns the result from the earliest successfully completed tasks (without throwing an exception). |
|
|
executeAny(java.util.List<? extends java.util.concurrent.Callable<T>> tasks)
Executes a list of tasks in parallel, and returns the result from the earliest successfully completed tasks (without throwing an exception). |
|
|
forEach(java.lang.Iterable<T> iterable,
IterationBody<T> body)
Runs a "foreach" loop in parallel. |
|
void |
forLoop(int start,
int end,
int increment,
LoopBody body)
Runs a for-loop in parallel. |
|
void |
forLoop(int start,
int end,
LoopBody body)
Calls forLoop
with increment of 1. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public ParallelExecutor()
Runtime.getRuntime().availableProcessors()
public ParallelExecutor(int concurrency)
concurrency
- the maximum number of threads can be used when executing a list of tasks| Method Detail |
|---|
public <T> java.util.List<T> executeAll(java.util.List<? extends java.util.concurrent.Callable<T>> tasks) throws MultipleExecutionException
Callable
tasks, and returns a list of results
in the same order.
T
- the type of resultstasks
- the list of tasks
MultipleExecutionException
- if one or more tasks throws an exceptionpublic <T> java.util.List<T> executeAll(java.util.concurrent.Callable<T>... tasks) throws MultipleExecutionException
Callable
tasks, and returns a
list of results in the same order. This is a convenient method and is the
same as calling:
executeAll(Arrays.<Callable<T>>asList(tasks));
T
- the type of resultstasks
- the list of tasks
MultipleExecutionException
- if one or more tasks throws an exceptionpublic <T> T executeAny(java.util.List<? extends java.util.concurrent.Callable<T>> tasks) throws java.util.concurrent.ExecutionException
T
- the type of resultstasks
- the list of tasks
java.util.concurrent.ExecutionException
- if no task successfully completespublic <T> T executeAny(java.util.concurrent.Callable<T>... tasks) throws java.util.concurrent.ExecutionException
executeAny(Arrays.<Callable<T>>asList(tasks));
T
- the type of resultstasks
- the list of tasks
java.util.concurrent.ExecutionException
- if no task successfully completespublic void forLoop(int start, int end, int increment, LoopBody body) throws MultipleExecutionException
for (int i = start; i < end; i += increment) {
body.run(i);
}
start
- the first loop index (inclusive)end
- the last loop index (exclusive)increment
- the increment of the loop index in each iterationbody
- the loop body
MultipleExecutionException
- if one or more partitioned for-loop throws an exceptionpublic void forLoop(int start, int end, LoopBody body) throws MultipleExecutionException
forLoop
with increment
of 1.
start
- the first loop index (inclusive)end
- the last loop index (exclusive)body
- the loop body
MultipleExecutionException
- if one or more partitioned for-loop throws an exceptionpublic void conditionalForLoop(boolean conditionToParallelize, int start, int end, int increment, LoopBody body) throws MultipleExecutionException
conditionToParallelize
is true.
Otherwise, the loop body will be executed in a single thread.
conditionToParallelize
- the condition to parallelize the for-loop executionstart
- the first loop index (inclusive)end
- the last loop index (exclusive)increment
- the increment of the loop index in each iterationbody
- the loop body
MultipleExecutionException
- if one or more partitioned for-loop throws an exceptionpublic void conditionalForLoop(boolean conditionToParallelize, int start, int end, LoopBody body) throws MultipleExecutionException
conditionalForLoop
with increment
of 1.
conditionToParallelize
- the condition to parallelize the for-loop executionstart
- the first loop index (inclusive)end
- the last loop index (exclusive)body
- the loop body
MultipleExecutionException
- if one or more partitioned for-loop throws an exceptionpublic <T> void forEach(java.lang.Iterable<T> iterable, IterationBody<T> body) throws MultipleExecutionException
for (T item : collection) {
body.run(item);
}
T
- data type of elements in iterable
iterable
- the Iterable
collectionbody
- the loop body
MultipleExecutionException
- if one or more threads throws an exceptionpublic <T> void conditionalForEach(boolean conditionToParallelize, java.lang.Iterable<T> iterable, IterationBody<T> body) throws MultipleExecutionException
forEach
only if conditionToParallelize
is true.
Otherwise, the loop body will be executed in a single thread.
T
- data type of elements in iterable
conditionToParallelize
- the condition to parallelize the "foreach" executioniterable
- the Iterable
collectionbody
- the loop body
MultipleExecutionException
- if one or more threads throws an exception
|
SuanShu, a Java numerical and statistical library | |||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |


Class Creature
Class that represents all creatures in the game.
Inherited Members
Namespace: Fibula.Creatures
Assembly: Fibula.Creatures.dll
Syntax
public abstract class Creature : Thing, ICreatureThatSensesOthers, ICreature, IThing, IContainedThing, IEquatable<IThing>, ICloneableThing<IThing>, IThingContainer, ILocatable, IEquatable<ICreature>
Constructors
| Improve this Doc View SourceCreature(String, String, UInt16, UInt16, UInt16)
Initializes a new instance of the Creature class.
Declaration
protected Creature(string name, string article, ushort maxHitpoints, ushort corpseTypeId = 0, ushort hitpoints = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | name | The name of this creature. |
| System.String | article | An article for the name of this creature. |
| System.UInt16 | maxHitpoints | The maximum hitpoints of the creature. |
| System.UInt16 | corpseTypeId | The corpse of the creature. |
| System.UInt16 | hitpoints | The current hitpoints of the creature. |
Properties
| Improve this Doc View SourceArticle
Gets the article in the name of the creature.
Declaration
public string Article { get; }
Property Value
| Type | Description |
|---|---|
| System.String |
BloodType
Gets or sets this creature's blood type.
Declaration
public BloodType BloodType { get; protected set; }
Property Value
| Type | Description |
|---|---|
| BloodType |
CanWalk
Gets a value indicating whether this creature can walk.
Declaration
public bool CanWalk { get; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
CarryLocation
Gets the location where this thing is being carried at, which is null for creatures.
Declaration
public override Location? CarryLocation { get; }
Property Value
| Type | Description |
|---|---|
| System.Nullable<Location> |
Overrides
| Improve this Doc View SourceCorpseTypeId
Gets the corpse of the creature.
Declaration
public ushort CorpseTypeId { get; }
Property Value
| Type | Description |
|---|---|
| System.UInt16 |
Direction
Gets or sets the direction that this creature is facing.
Declaration
public Direction Direction { get; set; }
Property Value
| Type | Description |
|---|---|
| Direction |
EmittedLightColor
Gets or sets this creature's light color.
Declaration
public byte EmittedLightColor { get; protected set; }
Property Value
| Type | Description |
|---|---|
| System.Byte |
EmittedLightLevel
Gets or sets this creature's light level.
Declaration
public byte EmittedLightLevel { get; protected set; }
Property Value
| Type | Description |
|---|---|
| System.Byte |
Flags
Gets this creature's flags.
Declaration
public uint Flags { get; }
Property Value
| Type | Description |
|---|---|
| System.UInt32 |
Id
Gets the creature's in-game id.
Declaration
public uint Id { get; }
Property Value
| Type | Description |
|---|---|
| System.UInt32 |
Inventory
Gets or sets the inventory for the creature.
Declaration
public abstract IInventory Inventory { get; protected set; }
Property Value
| Type | Description |
|---|---|
| IInventory |
IsDead
Gets a value indicating whether the creature is considered dead.
Declaration
public bool IsDead { get; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
LastMovementCostModifier
Gets or sets the creature's last move modifier.
Declaration
public decimal LastMovementCostModifier { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Decimal |
Name
Gets the name of the creature.
Declaration
public string Name { get; }
Property Value
| Type | Description |
|---|---|
| System.String |
Outfit
Gets or sets the outfit of this creature.
Declaration
public Outfit Outfit { get; set; }
Property Value
| Type | Description |
|---|---|
| Outfit |
Speed
Gets or sets this creature's speed.
Declaration
public abstract ushort Speed { get; protected set; }
Property Value
| Type | Description |
|---|---|
| System.UInt16 |
Stats
Gets the current stats information for the creature.
Declaration
public IDictionary<CreatureStat, IStat> Stats { get; }
Property Value
| Type | Description |
|---|---|
| System.Collections.Generic.IDictionary<CreatureStat, IStat> |
Remarks
The key is a CreatureStat, and the value is an IStat.
TrackedCreatures
Gets the creatures who are sensed by this creature.
Declaration
public IEnumerable<ICreature> TrackedCreatures { get; }
Property Value
| Type | Description |
|---|---|
| System.Collections.Generic.IEnumerable<ICreature> |
TypeId
Gets the type id of this creature.
Declaration
public override ushort TypeId { get; }
Property Value
| Type | Description |
|---|---|
| System.UInt16 |
Overrides
| Improve this Doc View SourceVariableSpeed
Gets or sets this creature's variable speed.
Declaration
public int VariableSpeed { get; protected set; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
WalkPlan
Gets or sets this creature's walk plan.
Declaration
public WalkPlan WalkPlan { get; set; }
Property Value
| Type | Description |
|---|---|
| WalkPlan |
Methods
| Improve this Doc View SourceAddContent(IThingFactory, IThing, Byte)
Attempts to add a IThing to this container.
Declaration
public (bool result, IThing remainder) AddContent(IThingFactory thingFactory, IThing thing, byte index = 255)
Parameters
| Type | Name | Description |
|---|---|---|
| IThingFactory | thingFactory | A reference to the factory of things to use. |
| IThing | thing | The IThing to add to the container. |
| System.Byte | index | Optional. The index at which to add the IThing. Defaults to byte.MaxValue, which instructs to add the IThing at any free index. |
Returns
| Type | Description |
|---|---|
| System.ValueTuple<System.Boolean, IThing> | A tuple with a value indicating whether the attempt was at least partially successful, and false otherwise. If the result was only partially successful, a remainder of the thing may be returned. |
CalculateMovementSpeed()
Calculates the movement speed of the creature.
Declaration
protected virtual ushort CalculateMovementSpeed()
Returns
| Type | Description |
|---|---|
| System.UInt16 | The movement speed of the creature. |
CanSee(Location)
Checks if this creature can see a given location.
Declaration
public bool CanSee(Location location)
Parameters
| Type | Name | Description |
|---|---|---|
| Location | location | The location to check against. |
Returns
| Type | Description |
|---|---|
| System.Boolean | True if this creature can see the given location, false otherwise. |
CanSee(ICreature)
Checks if this creature can see a given creature.
Declaration
public bool CanSee(ICreature otherCreature)
Parameters
| Type | Name | Description |
|---|---|---|
| ICreature | otherCreature | The creature to check against. |
Returns
| Type | Description |
|---|---|
| System.Boolean | True if this creature can see the given creature, false otherwise. |
DescribeForLogger()
Provides a string describing the current creature for logging purposes.
Declaration
public override string DescribeForLogger()
Returns
| Type | Description |
|---|---|
| System.String | The string to log. |
Overrides
| Improve this Doc View SourceEquals(ICreature)
Indicates whether the current object is equal to another object of the same type.
Declaration
public bool Equals(ICreature other)
Parameters
| Type | Name | Description |
|---|---|---|
| ICreature | other | The other object to compare against. |
Returns
| Type | Description |
|---|---|
| System.Boolean | True if the current object is equal to the other parameter, false otherwise. |
FindThingAtIndex(Byte)
Attempts to find an IThing whitin this container.
Declaration
public IThing FindThingAtIndex(byte index)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Byte | index | The index at which to look for the IThing. |
Returns
| Type | Description |
|---|---|
| IThing | The IThing found at the index, if any was found. |
RaiseStatChange(CreatureStat, UInt32, Byte)
Raises the StatChanged event for this creature on the given stat.
Declaration
protected void RaiseStatChange(CreatureStat forStat, uint previousLevel, byte previousPercent)
Parameters
| Type | Name | Description |
|---|---|---|
| CreatureStat | forStat | The stat that changed. |
| System.UInt32 | previousLevel | The previous stat value. |
| System.Byte | previousPercent | The previous percent value of the stat. |
RemoveContent(IThingFactory, ref IThing, Byte, Byte)
Attempts to remove a thing from this container.
Declaration
public (bool result, IThing remainder) RemoveContent(IThingFactory thingFactory, ref IThing thing, byte index = 255, byte amount = 1)
Parameters
| Type | Name | Description |
|---|---|---|
| IThingFactory | thingFactory | A reference to the factory of things to use. |
| IThing | thing | The IThing to remove from the container. |
| System.Byte | index | Optional. The index from which to remove the IThing. Defaults to byte.MaxValue, which instructs to remove the IThing if found at any index. |
| System.Byte | amount | Optional. The amount of the |
Returns
| Type | Description |
|---|---|
| System.ValueTuple<System.Boolean, IThing> | A tuple with a value indicating whether the attempt was at least partially successful, and false otherwise. If the result was only partially successful, a remainder of the thing may be returned. |
ReplaceContent(IThingFactory, IThing, IThing, Byte, Byte)
Attempts to replace a IThing from this container with another.
Declaration
public (bool result, IThing remainderToChange) ReplaceContent(IThingFactory thingFactory, IThing fromThing, IThing toThing, byte index = 255, byte amount = 1)
Parameters
| Type | Name | Description |
|---|---|---|
| IThingFactory | thingFactory | A reference to the factory of things to use. |
| IThing | fromThing | The IThing to remove from the container. |
| IThing | toThing | The IThing to add to the container. |
| System.Byte | index | Optional. The index from which to replace the IThing. Defaults to byte.MaxValue, which instructs to replace the IThing if found at any index. |
| System.Byte | amount | Optional. The amount of the |
Returns
| Type | Description |
|---|---|
| System.ValueTuple<System.Boolean, IThing> | A tuple with a value indicating whether the attempt was at least partially successful, and false otherwise. If the result was only partially successful, a remainder of the thing may be returned. |
StartSensingCreature(ICreature)
Flags a creature as being sensed.
Declaration
public void StartSensingCreature(ICreature creature)
Parameters
| Type | Name | Description |
|---|---|---|
| ICreature | creature | The creature which is sensed. |
StopSensingCreature(ICreature)
Flags a creature as no longed being sensed.
Declaration
public void StopSensingCreature(ICreature creature)
Parameters
| Type | Name | Description |
|---|---|---|
| ICreature | creature | The creature that is lost. |
Events
| Improve this Doc View SourceCreatureLost
Event called when this creature loses track of a sensed creature.
Declaration
public event OnCreatureLost CreatureLost
Event Type
| Type | Description |
|---|---|
| OnCreatureLost |
CreatureSeen
Event called when this creature sees another.
Declaration
public event OnCreatureSeen CreatureSeen
Event Type
| Type | Description |
|---|---|
| OnCreatureSeen |
CreatureSensed
Event called when this creature senses another.
Declaration
public event OnCreatureSensed CreatureSensed
Event Type
| Type | Description |
|---|---|
| OnCreatureSensed |
StatChanged
Event triggered when this creature's stat has changed.
Declaration
public event OnCreatureStatChanged StatChanged
Event Type
| Type | Description |
|---|---|
| OnCreatureStatChanged |


Video-record Class
A mixin that can be used to add basic support for video recording across frames
By default, the recorder will be installed when this frame loads, but recording
will not start automatically. To override either of these settings, set
the properties doUseCamera
and/or startRecordingAutomatically
in the consuming
frame.
You will also need to set recorderElement
if the recorder is to be housed other than
in an element identified by the ID recorder
.
The properties recorder
, videoList
, stoppedRecording
, recorderReady
, and
videoId
become available to the consuming frame. The recorder object has fields
that give information about its state: hasWebCam
, 'hasCamAccess,
recording,
connected, and
micChecked- for details, see services/video-recorder.js. These can be accessed from the consuming frame as e.g.
this.get('recorder').get('hasWebCam')`.
If starting recording automatically, the function whenPossibleToRecord
will be called
once recording is possible, and will start recording. If you want to do other things
at this point, like proceeding to a test trial, you can override this function in your
frame.
See 'methods' for the functions you can use on a frame that extends VideoRecord.
Events recorded in a frame that extends VideoRecord will automatically have additional fields videoId (video filename), pipeId (temporary filename initially assigned by the recording service), and streamTime (when in the video they happened, in s).
Setting up the camera is handled in didInsertElement, and making sure recording is
stopped is handled in willDestroyElement (Ember hooks that fire during the component
lifecycle). It is very important (in general, but especially when using this mixin)
that you call this._super(...arguments);
in any functions where your frame overrides
hooks like this, so that the mixin's functions get called too!
Item Index
Methods
Properties
Methods
destroyRecorder
()
Destroy recorder and stop accessing webcam
hideRecorder
()
Hide the recorder from display. Useful if you would like to keep recording without extra UI elements to distract the user.
makeTimeEvent
-
eventName
-
extra
Extend any base time event capture with information about the recorded video
Returns:
Event data object
pauseRecorder
-
[skipIfMissing=false]
Pause the recorder (and capture timing events). For webRTC recorder, this is just a placeholder and doesn't actually pause the recording. If webRTC used, includes extra data actuallyPaused: false. This is for backwards compatibility with frames that pause/resume recording, and should not be used going forward - instead stop/start and make separate clips if needed.
Parameters:
-
[skipIfMissing=false]
Object optionalIf provided (and true), don't raise an error if recording isn't ready yet. Not actually used for WebRTC.
resumeRecorder
()
Resume a paused recording. For webRTC recorder, this is just a placeholder and doesn't actually pause the recording. If webRTC used, includes extra data wasActuallyPaused: false. This is for backwards compatibility with frames that pause/resume recording, and should not be used going forward - instead stop/start and make separate clips if needed.
setupRecorder
-
element
Set up a video recorder instance
Parameters:
-
element
NodeA DOM node representing where to mount the recorder
Returns:
A promise representing the result of installing the recorder
showRecorder
()
Show the recorder to the user. Useful if you want to temporarily show a hidden recorder- eg to let the user fix a problem with video capture settings
startRecorder
()
Start recording
Returns:
Promise Resolves when recording has started
stopRecorder
()
Stop the recording
Returns:
Promise A promise that resolves when upload is complete
whenPossibleToRecord
()
Observer that starts recording once recorder is ready. Override to do additional stuff at this point!
Properties
[doUseCamera=true]
Boolean
Whether to use the camera in this frame. Consuming frame should set this property to override if needed.
[startRecordingAutomatically=false]
Boolean
Whether to start recording ASAP (only applies if doUseCamera). Consuming frame should set to override if needed.
audioOnly
Number
Whether to do audio-only (vs also video) recording. Can be overridden by consuming frame.
Default: 0
maxRecordingLength
Number
Maximum recording length in seconds. Can be overridden by consuming frame.
Default: 100000000
recorder
VideoRecorder
The recorder object, accessible to the consuming frame. Includes properties recorder.nWebcams, recorder.hasCamAccess, recorder.micChecked, recorder.connected.
recorderReady
Boolean
Whether recorder has been set up yet. Automatically set when doing setup. Accessible to consuming frame.
stoppedRecording
Boolean
Whether recording is stopped already, meaning it doesn't need to be re-stopped when destroying frame. This should be set to true by the consuming frame when video is stopped.
videoId
String
A video ID to use for the current recording. Format is
videoStream_<experimentId>_<frameId>_<sessionId>_timestampMS_RRR
where RRR are random numeric digits.
videoList
List
A list of all video IDs used in this mixing (a new one is created for each recording). Accessible to consuming frame.
Events
pauseVideo
When pausing study, immediately before request to pause webcam recording
recorderReady
When video recorder has been installed
stoppingCapture
Just before stopping webcam video capture
unpauseVideo
When unpausing study, immediately before request to resume webcam recording
videoStreamConnection
When recorder detects a change in video stream connection status
Event Payload:
-
status
Stringstatus of video stream connection, e.g. 'NetConnection.Connect.Success' if successful


--- layout: example ---
Treeview provides an expanding/collapsing tree-like structure. Useful for creating folder structures, or structures to help users navigate.
Using Bootstrap as a base, it's easy to create a treeview using the existing collapse plugin.


Object
This is the most important part of the library, as it is what makes drawing on the window possible. A Graphics object cannot be instantiated directly, but must instead be created by a Draw::Window’s graphics method.
Expects a block parameter, performs draw functions called in body on a separate buffer which is drawn to the window at the end of the block
g = some_window.graphics g.buffer {|buff| buff.point 10, 10 # ...  If passing a single RGB value, it should be in the form 0xRRGGBB. Returns a string containing the compiled RGB value in the form #RRGGBB.
g = some_window.graphics # set color to red g.color(255, 0, 0) # equivalent way to set color # Also sets color to red g.color(0xFF0000)
VALUE graphics_color(int argc, VALUE* args, VALUE self)
Sets the font of the Graphics object to the given name. The font name may contain wildcards, specified by ’*’
g = some_window.graphics # use a specific font g.font 'lucidasans-14' # use a wildcard font g.font '*-helvetica-*-12-*'
VALUE select_font(VALUE self, VALUE font_name)
Creates a line from the point (bx, by) to (ex, ey)
g = some_window.graphics # draw a line from the top left to bottom right g.line(0,0, some_window.width, some_window.height
VALUE draw_line(VALUE self, VALUE begx, VALUE begy, VALUE endx, VALUE endy)
Draws a single pixel at the specified point.
g = some_window.graphics # draws a point at 10, 20 g.point(10, 20)
VALUE draw_point(VALUE self, VALUE r, VALUE c)
Creates a rectangle. (x, y) represents the top left corner of the rectangle, and width and height are obviously the width and height of it
VALUE draw_rect(VALUE self, VALUE x1, VALUE y1, VALUE w1, VALUE h1)
Manually updates display, flushing any changes to the screen. This needs to be used if sync_on_draw is false
VALUE graphics_sync(VALUE self)
Sets whether the display will be updated each time it a draw function is called. If set to false, the window will have to manually be updated with sync. Allowd drawing to be completed faster for many draw functions.
g = some_window.graphics # turn off g.sync_on_draw(false) # do some drawing ... #manually sync g.sync # turn back on g.sync_on_draw(true)
VALUE sync_on_draw(VALUE self, VALUE b)
Draws a string at the given location.
g = some_window.graphics # draw 'hello world' in the top left corner g.text 'hello world', 0, 0
VALUE draw_text(VALUE self,VALUE string, VALUE r, VALUE c) { int x = FIX2INT(r); int y = FIX2INT(c); char* str = RSTRING_PTR(string); Graphics_t *g; Data_Get_Struct(self, Graphics_t, g); XDrawString(g->disp->display, g->win->w,g->context, x, y, str, strlen(str)); if(g->sync_on_draw) { XSync(g->disp->display, False); } return Qnil; }
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.


Creating a new account is very easy. Just select your account category and fillup input boxes which ever relevant.
During account creation, for Password field you can ask for Password suggestions or input your own Password. This is useful during changing existing password or new account creation.
Since we do not store your user key, if you lose it, your data is unlockable. So in case you forget this key, we send an decryption link to your email everytime you create a new account.
This email is secured. Even if you forward this email to anybody else, the decryption link will not work. To make it work they have to login to Lock Essential using your account password.
If you input wrong userkey, Lock Essential will display all of your locked accounts.
To unlock it you have to input valid user key.
In accounts details page, you can maximize the description panel which is very useful for large content.
You will get full featured text editor for description box.
Lock Essential is equipped with fast searching of your accounts.
Filter your accounts as per your need
Very nice and helpful feature of Lock Essential.
Changing password will now be breeze.
Why do you want to install a new native app in your mobile which is already loaded. Lock Essential design is very mobile friendly. Just follow these steps to create a light weight app.
If you have Google Chrome Browser in your PC or mobile, you can easily create an light weight app for Lock Essential.


An overview of my skills, divided into languages, frameworks & libraries, services and other industry skills


API
<draggable-entity>
Control which can be put on the form
Properties
| Name | Attribute | Description | Type | Default |
| control | undefined | Control which can be put on the form | undefined | undefined |
<form-item>
Control from the form panel
Attributes
| Name | Description | Type | Default |
| selected | Is current control selected | boolean | undefined |
Properties
| Name | Attribute | Description | Type | Default |
| selected | selected | Is current control selected | boolean | undefined |
| isFromTopToBottom | undefined | Is drag'n'drop being done from top to bottom or vice versa | undefined | undefined |
| isDraggedOver | undefined | Is control being dragged over this element | undefined | false |
<item-separator>
Separator between controls in the form panel
Properties
| Name | Attribute | Description | Type | Default |
| index | undefined | Index in the form for this element (same as assosiated control) | undefined | undefined |
| isDraggedOver | undefined | Is control being dragged over this element | undefined | false |
<item-spot-placeholder>
Placeholder for a control to be dropped, placed at the bottom of the form panel
Properties
| Name | Attribute | Description | Type | Default |
| isDraggedOver | undefined | Is control being dragged over this element | undefined | undefined |
<form-builder>
Form Builder using Drag'n'Drop written in LitElement
Properties
| Name | Attribute | Description | Type | Default |
| NOT_SELECTED_INDEX | undefined | Value for not selected index | undefined | 999999 |
| isDragOverFormPanelFromControlPanel | undefined | Property to determine whether drag over is being done over form panel using item from control panel | undefined | false |
| selectedIndex | undefined | Index of the selected item from control panel | undefined | "NOT_SELECTED_INDEX" |
| selectedInFormIndex | undefined | Index of the selected item from form panel | undefined | "NOT_SELECTED_INDEX" |
| inFormHoveredOverItemIndex | undefined | Applicable only to reordering inside the form panel. Property to determine index of hovered over control | undefined | "NOT_SELECTED_INDEX" |
| formItemList | undefined | List of controls on the form. | undefined | [] |
| controlList | undefined | List of available controls to be dragged onto form. | undefined | [{"control":"textbox"},{"control":"number"},{"control":"combobox"}] |
| isDndInsideForm | undefined | Property to determine whether Drag'n'Drop is being done from controls panel to form panel, or just inside form panel | undefined | false |
| isFromTopToBottom | undefined | Applicable only to reordering inside the form panel. Property to determine whether drag'n'drop performed from top to bottom or vice versa | undefined | false |
Events
| Name | Description |
| form-builder-updated | Event which is thrown at any given form modification. |


There was a problem connecting to the Snikket service of this site.
If you just started this service, please wait a moment and reload the page.
If the problem continues, please check your Snikket configuration for problems.
502 Bad Gateway


AppWorksJS gives you access to device features, as well as information about the device.
appworks.battery
Please refer to Cordova Documentation for usage examples
appworks.camera.takePicture => (callback, error, options)
- use the device camera to take a photo
- callback is passed base 64 encoded representation of photo
appworks.camera.chooseFromGallery => (callback, error, options)
- open the device gallery to choose a photo
- callback is passed base 64 encoded representation of photo
Example:
Example:
AppworksJS gives you access to the GPS functionality of your device.
appworks.geolocation.getCurrentPosition => (geolocationSuccess, error, options)
- use the device GPS to get current location coordinates
- geolocationSuccess callback is passed Position object
- error callback is passed error object with status code and message
appworks.geolocation.watchPosition => (geolocationSuccess, error, options)
returns => String
- watches for changes to the device's current position
- returns an id that references the watch position interval. this id should be used with clearWatch() to
stop watching for changes in position
appworks.geolocation.clearWatch => (id)
- stop watching for changes to the device's location referenced by the id parameter
Example:
appworks.console
Please refer to Cordova Documentation for usage examples
appworks.contacts
Please refer to Cordova Documentation for usage examples
appworks.device
Please refer to Cordova Documentation for usage examples
appworks.accelerometer
Please refer to Cordova Documentation for usage examples
appworks.compass
Please refer to Cordova Documentation for usage examples
appworks.globalization
Please refer to Cordova Documentation for usage examples
appworks.connection
Please refer to Cordova Documentation for usage examples


This means "Hello World!" in my native language.Full Stack Developer with experience designing, developing, and implementing applications and solutions using a range of technologies and programming languages. Seeking to leverage my development experience and hands-on technical expertise in a challenging role as a Front-End Developer and always opened to learn new things.
Web Developer
I initially started my Web development training 10 years ago, but I had the fortunate luck being granted the Visa to come to the US. So after gaining work experience in different fields I decided to return to my initial interest. I worked as a construction worker, then I got a job at manufacturing company as a warehouse worker. During that period I obtained my forklift operation certificate, which led me to be the warehouse supervisor and the operator of the steel machine that manufactures bundles of steel we used to ship to South America so the rest of the crew put these pieces together to build Anti-Disaster houses for low income families. After that I decided to join the restaurant field, I worked as a busboy, then a cook, and I ended up as kitchen supervisor... This previous experience taught me to be organized, a team player and a fast learner, as well as giving the best quality in a timely manner.
These are the technologies I learned when I took Deep Dive Coding Bootcamp as a Fullstack Web Developer. I'm very glad I took this opportunity and I didn't let slip through my fingers.


Some html along with span on first row
5th August 2017
Some html along with span on second row
6th August 2017


A File Test Filter is a string-based or regular-expression based file name matcher that will determine files that will be considered for analysis by a FileTest. The File Analyzer user interface will allow a user to further refine the filter criteria for more specific analysis.


This blog is the product of students in IFS 2116, an undergraduate course at Florida State University.
Blog entries are the work of the authors. Front page sample.


{% endcapture %}
{% capture name %}Textarea{% endcapture %}
{% capture liquid %}{% raw %}
{% include forms/form--textarea.html
classes=""
description="Questions, dietary info, well-wishes, your single greatest piece of advice besides wash-your-hands and wear-sunscreen."
label="Commentary"
name="comment"
required=false
rows="4"
mode="docblock"
%}
{% endraw %}{% endcapture %}
{% capture usage %}
#### General guidance
Use the textarea component to receive long textual answers.
{% endcapture %}
{% capture accessibility %}
Textareas can be finicky.
{% endcapture %}
{% capture props %}
classes| css classes applied to parent| color--main-dark,
description| Longer textual description or help text| Inputs can have description text,
label| text as short description of what to fill out| Primary email,
name| input name passed as the key for the value in the form| email,
required| Whether it is required to fill this out in order to submit the form| true,
rows| Number of rows for the element. Fewer for shorter anticipated answers| 5
{% endcapture %}
{% assign classes = "background-color--main-light, font-size--2em" | split: ", " %}
{% if include.mode == "docblock" %}
{% include molecules/docblock.html
accessibility=accessibility
classes=classes
html=component
liquid=liquid
name=name
props=props
source=include
usage=usage
%}
{% else %}
{{ component }}
{% endif %}


--- layout: post title: Integrating my.openHAB with IFTTT date: '2015-07-02T08:48:00.000+02:00' author: Kai Kreuzer tags: - eclipse - openhab - IFTTT - Smart Home modified_time: '2015-07-02T12:15:05.588+02:00' thumbnail: http://1.bp.blogspot.com/-7jJeRh5RxIU/VZRPGrfI1QI/AAAAAAAAIOY/s-FpyNeqhgM/s72-c/ifttt-meets-openhab.jpg blogger_id: tag:blogger.com,1999:blog-5335810078566775677.post-8222029339067027932 blogger_orig_url: http://kaikreuzer.blogspot.com/2015/07/integrating-myopenhab-with-ifttt.html excerpt_separator: ---
Today I have some great news to share - I am sure this will make openHAB attractive to even more users than ever before!
Having offered the cloud companion service for openHAB since more than a year as a closed beta program, it is now time to make it available to everyone! And yes, we are determined to keep it a completely free service for all openHAB users, so that everybody can enjoy the easy and secure remote access as well as the push notifications to the native Android and iOS apps.
Our new IFTTT integration is the even bigger news and the very best reason to use my.openHAB: From today on, you can use openHAB together with IFTTT (If This Than That)! As a result, you can make use of all existing IFTTT channels within your rules - simply activate the openHAB channel and grant IFTTT access to your my.openHAB account. You can then use openHAB as a trigger for recipes or send any kind of command from an IFTTT recipe to your openHAB instance.
We think that these new services are very useful additions to many openHAB users. Please provide us your feedback on our mailing list. Note that my.openHAB does not yet work with openHAB 2.0 (which is still in alpha and not meant to be used productively by end users) - but the integration with my.openHAB is high on my priority list as this combination will lower the entry barrier for new users to a new minimum - I am looking forward to it!


India and Kazakhstan to renew uranium supply contract for 2020-24
India sources nearly 80 per cent of its uranium requirement from Kazakhstan
by Press Trust of IndiaIndia will renew its pact with Kazakhstan for supply of uranium from 2020 to 2024, the ambassador of the central Asian country said on Monday.
Kazakhstan has so far supplied a total of 9,000 tonne of uranium, and another 1,000 tonne is yet to be delivered under two five-year contract periods that end this year.
"The minister of energy of Kazakhstan and the petroleum minister of India will meet again to finalise the details of renewal pact for the period 2020 to 2024," Ambassador of Kazakhstan in India, Yerlan Alimbayev, said.
He was speaking to reporters on the sidelines of an MCCI event here.
Uranium, a crucial radioactive element, is required for refueling nuclear reactors, medicinal purposes and other peaceful use.
India sources nearly 80 per cent of its uranium requirement from Kazakhstan.
He also said that direct road connectivity between India and Kazakhstan is a problem area.
"Kazakhstan is a land-locked country. This is in a way hindering bilateral trade volume between the two countries," Alimbayev said.
The present volume of two-way trade between the two countries is around $1.5 billion. "If connectivity improves, the bilateral trade volume can go up to $4 billion," the ambassador said.
He added that out of the $27 billion FDI received by central Asian countries, Kazakhstan's share was $24 billion.


%= circled_title(2, "Log in") %>
Once VM with BOSH Director is running, point your CLI to it, saving the environment with the alias vbox:
$ bosh -e <IP_ADDRESS> alias-env vbox --ca-cert <(bosh int vbox/creds.yml --path /director_ssl/ca)
Using environment '<IP_ADDRESS>' as anonymous user
Name Bosh Lite Director
UUID ...
Version 261.4.0 (00000000)
CPI warden_cpi
Features compiled_package_cache: disabled
config_server: disabled
dns: disabled
snapshots: disabled
User (not logged in)
Succeeded
Obtain generated password to BOSH Director:
$ bosh int vbox/creds.yml --path /admin_password
Log in using admin username and generated password:
$ bosh -e vbox login
Now we are ready to deploy!


PHOTOS: Large turnout of voters in Kogi elections
by Oluwakemi AbimbolaThe governorship and senatorial elections holding in Kogi State have witnessed a large turnout of voters.
In most of the polling units that our correspondents visited, voters came out en masse to vote.
See photos:


A paper published online on Jan 20, 2020 in the Journal of Medical Virology, titled Homologous recombination within the spike glycoprotein of the newly identified coronavirus 2019-nCoV may boost cross-species transmission from snake to human raises the intriguing possibility that a new coronavirus of substantial public health concern, 2019-nCoV, may have originated in snakes.
The authors make two primary claims. First, that 2019-nCoV is a recombinant virus. Second, that "...our evolutionary analysis suggest for the first time that snake is the most probable wildlife animal reservoir for the 2019-nCoV."
Recombination occurs when two viruses exchange genetic material. I'm not going to evaluate the claim that this virus may be recombinant.
I will however, consider the evidence that this virus may have originally been transmitted to humans from snakes. As I describe below, there is no direct evidence to support this claim, and the indirect evidence is flimsy.
Many pathogens can be transmitted from other animals to humans. Snakes were apparently one of the types of animals sold at the seafood market that has been linked to many of the initial human cases of 2019-nCoV. So it is plausible that this virus could have been from snakes.
There is no direct evidence that this type of coronavirus infects snakes. The authors do not identify a similar virus in snakes, and no similar coronaviruses have been identified previously in snakes.
(My lab has studied respiratory viruses of snakes that are belong to the same umbrella virus group as 2019-nCoV, but these are distant relatives).
The main line of evidence the authors present to support the claim that this virus may have originated in snakes is indirect, and based on codon usage patterns. Codons are DNA base triplets that encode a single amino acid in a protein. The same amino acid may be encoded by different codons, so there is flexibility in how a particular protein sequence could be encoded. Different organisms tend to use codons in a characteristic way. Viruses that matched their codon usage to that of their host could have an evolutionary advantage.
So if, as seems likely, 2019-nCoV was recently transmitted to humans from other animals, then it might be possible to discern the original host by comparing codon usage patterns of the virus to candidate hosts.
The authors compare the relative codon usage of 2019-nCoV with several candidate hosts, corresponding to some of the animals that were sold in the seafood market that has been linked to this outbreak and to the most closely related cornavirus to 2019-nCoV, bat-SL-CoVZC45, which was identified in a bat in 2017. The authors then calcualte the squared Euclidian distance between as a measure of how similar these codon usage patterns are between the various species. The results are shown in figure 3 of the paper:
The "heatmap" in panel A depicts the frequencies with which codons are used in different organisms. Each column of the table is one organism. Each row is one of 61 possible codons. A redder color indicates that a particular codon is used more often in that organism. A green color means that codon is used less frequently. The heirarchical branching at the top of the figure indicates the extent to which these patterns are similar in different species. You can see that the two similar viruses (the two left-most columns) have closely related codon usage patterns, as expected. The two snakes have relatively similar patterns, and the mammals have similar patterns.
The claim that snakes are the "most probable wildlife" origin of 2019-nCoV rest on the bar graph shown in panel B which shows the Euclidian distance between the codon usage frequency vectors of 2019-nCoV and the various possible hosts. The distance between 2019-nCoV and the 2 snakes is ~12-15, whereas the distance between that virus and the mammals is >25. At first glance, this seems convincing.
But consider the case of the other coronavirus analyzed, bat-SL-CoVZC45. This virus was isolated from a Rhinolophus sinicus bat in China in 2017. It's codon usage pattern is essentially identical to that of 2019-nCoV. Consequently, the distances between it's codon usage pattern and the candidate hosts will be essentially identical to those shown in panel B. By the logic presented here, the bat-SL-CoVZC45 virus, from a Rhinolophus sinicus bat, is more likely to have originated from a snake than from a Rhinolophus sinicus bat (which is one of the mammalian species analyzed).
It is possible to imagine a scenario where previously unknown snake coronaviruses independently transmitted to bats and to humans. But in my opinion, a simpler and more likely explanation is that this kind of codon usage analysis has limited predictive value to pinpoint a virus's exact host in a situation like this.
It remains possible that snakes are the source of 2019-nCoV, but the data presented here is not convincing evidence of that.


lighthouse
Analyzes web applications and web pages, collecting modern performance metrics and insights on developer best practices.
More information: home page
- Generate an HTML report for a specific website and save it to a file in the current directory:
lighthouse https://example.com
- Generate a JSON report and print it:
lighthouse --output json https://example.com
- Generate a JSON report and save it to a specific file:
lighthouse --output json --output-path path/to/file.json https://example.com
- Generate a report using the browser in headless mode without logging to `stdout`:
lighthouse --quiet --chrome-flags="--headless" https://example.com
- Generate a report, using the HTTP header key/value pairs in the specified JSON file for all requests:
lighthouse --extra-headers=path/to/file.json https://example.com
- Generate a report for specific categories only:
lighthouse --only-categories=performance,accessibility,best-practices,seo,pwa https://example.com
- Generate a report with device emulation and all throttling disabled:
lighthouse --screenEmulation.disabled --throttling-method=provided --no-emulatedUserAgent https://example.com
- Display help:
lighthouse --help


Requirements
- jQuery 3.3.1
- Bootstrap 4.1.3
- Template file
- Content files
- Structure as below
Page Structure
Every page viewable to the user is separated into two parts, one is the master page and the other one is the content page.
At backend the master page is placed at one location and it is only one page and content pages are separately located at another location.
At runtime the master page is loaded initially and will load the home content page at default and will make links to load ans show the other pages using page links.
Directory Structure
All the above page parts are saved in several directories as below.
- css
- Contains the css style files in css and javascript files in js directory
- data
- Contains the content files each file contains content part of a separate page
- pages
- The folder to contain the master page
- index.html
- The index page to load the website
How to use
The template can be used by editing files at minimum two places
- master page
- This page is located in pages folder, you can edit this page to update the overall website look, menus etc
- content/data pages
- content pages are located in data folder. These pages are loaded by main pages in page directory as the page content. After editing the pages in pages directory you have to make/update data pages in data directory, remember that the content of each page has to be included in a outer div component


We're sorry but knife4j-vue doesn't work properly without JavaScript enabled. Please enable it to continue.


public final class Vm
extends totalcross.lang.Object
This class contains methods to copy arrays, obtain a timestamp, sleep and get platform and version information, among many other things.
| Modifier and Type | Field and Description |
|---|---|
static String |
ALTERNATIVE_DEBUG
Deprecated.
In Android, it writes things on DebugConsole.txt and on ADB, so this is now useless
|
static boolean |
disableDebug
Set to
true to disable Vm.debug message output. |
static String |
ERASE_DEBUG
Pass this to Vm.debug to erase the memo/txt file used to store the output.
|
static int[] |
keysBeingIntercepted
Internal use only.
|
static int |
TWEAK_AUDIBLE_GC
Each time the garbage collector runs, it will issue a beep.
|
static int |
TWEAK_DISABLE_GC
Disables the Garbage Collector.
|
static int |
TWEAK_DUMP_MEM_STATS
When the program ends, it will dump the memory status of the program with the following information:
Times gc was called: number of times the garbage collector was called.
|
static int |
TWEAK_MEM_PROFILER
Computes the maximum memory in use between two consecutive calls.
|
static int |
TWEAK_TRACE_CREATED_CLASSOBJS
This flag turns on the trace of created class objects.
|
static int |
TWEAK_TRACE_LOCKED_OBJS
This flag turns on the trace of locked objects, which are objects that are locked by the vm and will
never be released.
|
static int |
TWEAK_TRACE_METHODS
Enables dump of executed methods to the console.
|
static int |
TWEAK_TRACE_OBJECTS_LEFT_BETWEEN_2_GCS
This flag turns on the trace objects that are left behind between two garbage collector calls.
|
| Modifier and Type | Method and Description |
|---|---|
static void |
alert(String s)
Shows an alert IMMEDIATELY on screen.
|
static boolean |
arrayCopy(Object srcArray,
int srcStart,
Object dstArray,
int dstStart,
int length)
Copies the elements of one array to another array.
|
static boolean |
attachLibrary(String name)
Deprecated.
This method never worked in TotalCross. Previously, in SuperWaba, all class and resources were placed in a PDB file,
so attaching a pdb file was ok. However, in TotalCross, everything is placed in TCZ files, so attaching a PDB is useless.
To load an image that you saved with Image.saveTo, use Image.loadFrom.
|
static boolean |
attachNativeLibrary(String name)
Attaches a native library to this application instance (only works at device).
|
static void |
clipboardCopy(String s)
Copies the specific string to the clipboard.
|
static String |
clipboardPaste()
Gets the last string from the clipboard. if none, returns "".
|
static void |
debug(String s)
Sends a text, preceeded with the current time stamp and followed by a line feed, to:
Windows CE / 32: the "DebugConsole.txt" file at the current application's folder
Blackberry: the event logger, which can be accessed using alt+LGLG
iPhone: the "DebugConsole.txt" file in the application's folder.
|
static int |
exec(String command,
String args,
int launchCode,
boolean wait)
Executes a command.
|
static void |
exitAndReboot()
Reboots the device.
|
static void |
gc()
Calls the Garbage Collector.
|
static byte[] |
getFile(String name)
Returns a byte array of a file contained in the same tcz where this one resides, or in some attached library (or JAR,
if application is running in a browser).
|
static int |
getFreeMemory()
Returns the free memory in the device.
|
static int |
getRemainingBattery()
Returns the percentage of the remaining battery life of this device.
|
static String |
getStackTrace()
A shortcut for
try {throw new Exception();} catch (Exception e) {return getStackTrace(e);} |
static String |
getStackTrace(Throwable t)
Returns the given throwable stack trace as a String.
|
static int |
getTimeStamp()
Returns a time stamp in milliseconds.
|
static int |
identityHashCode(Object object)
Returns the same hash code for the given object as would be returned by the default method hashCode(), whether or not the given object's class
overrides
hashCode() . |
static void |
interceptSpecialKeys(int[] keys)
Specify which special keys to intercept; use the constants available in SpecialKeys or pass device-specific
constants, which can be retrieved calling Vm.showKeyCodes(true).
|
static boolean |
isKeyDown(int key)
Gets the current keys being pressed.
|
static void |
preallocateArray(Object sample,
int length)
This method pre-allocates space for an array of objects with the given length.
|
static void |
printStackTrace()
Prints the stack trace to the debug console file.
|
static void |
printStackTrace(String msg)
Prints the stack trace to the debug console file with the given message.
|
static void |
safeSleep(int millis)
Causes the VM (or the current thread, if called from it) to pause execution for aproximately the given number
of milliseconds.
|
static void |
setAutoOff(boolean enabled)
Enables or disables device automatic turn-off, which happens after a period of inactivity of the device.
|
static void |
setTime(Time t)
Deprecated.
It won't work on most devices.
|
static void |
showKeyCodes(boolean on)
Set to true to popup an alert for each key pressed.
|
static void |
sleep(int millis)
Causes the VM (or the current thread, if called from it) to pause execution for the given number of milliseconds.
|
static boolean |
turnScreenOn(boolean on)
Turns the screen on or off, but keeps the device running.
|
static void |
tweak(int param,
boolean set)
Tweak some parameters of the virtual machine.
|
static void |
vibrate(int millis)
Vibrates the device for the specified number of milliseconds.
|
static void |
warning(String s)
This function can be used to show permanent warnings.
|
public static int[] keysBeingIntercepted
public static final String ERASE_DEBUG
@Deprecated public static final String ALTERNATIVE_DEBUG
public static boolean disableDebug
true
to disable Vm.debug
message output. Note that the method calls will still
remain, and can slowdown your program. Note also that Vm.warning is not affected by this flag.public static final int TWEAK_AUDIBLE_GC
public static final int TWEAK_DUMP_MEM_STATS
public static final int TWEAK_MEM_PROFILER
Vm.debug("P Starting profiler for xxxx"); Vm.tweak(Vm.TWEAK_MEM_PROFILER,true); // now run the program during some time Vm.tweak(Vm.TWEAK_MEM_PROFILER,false); Vm.debug("P Stopping profiler for xxxx");When it starts, it prints the currently used memory. When you set it off, it will dump the currently used memory (if different of the maximum), and then the maximum memory used between the two calls. For example:
P Now allocated: 40852408 // printed when turning on P Now allocated: 1137060 // printed when turning off P Max allocated: 40868844 // printed when turning offAll profiler messages are prefixed with P in the debug console, because it makes easy to filter them. To be used in the tweak method.
public static final int TWEAK_DISABLE_GC
Vm.tweak(TWEAK_DISABLE_GC,true); ... Vm.tweak(TWEAK_DISABLE_GC,false); // the gc is automatically called here
public static final int TWEAK_TRACE_CREATED_CLASSOBJS
public static final int TWEAK_TRACE_LOCKED_OBJS
public static final int TWEAK_TRACE_OBJECTS_LEFT_BETWEEN_2_GCS
public static final int TWEAK_TRACE_METHODS
public static boolean arrayCopy(Object srcArray, int srcStart, Object dstArray, int dstStart, int length)
srcArray
- the array to copy elements fromsrcStart
- the starting position in the source arraydstArray
- the array to copy elements todstStart
- the starting position in the destination arraylength
- the number of elements to copytotalcross.lang.ArrayStoreException
- If the source array and destination array are not compatiblepublic static int getTimeStamp()
@Deprecated public static void setTime(Time t)
Settings.timeZone
.
Does not work on Android, which does not allow to do this programatically.public static void exitAndReboot()
public static int exec(String command, String args, int launchCode, boolean wait)
As an example, the following call could be used to run the command "scandir /p mydir" under Java, Win32 or WinCE:
int result = Vm.exec("scandir", "/p mydir", 0, true);The args parameter passed to this method is the arguments string to pass to the program being executed.
The launchCode parameter was only used under PalmOS. It is no longer used.
The wait parameter passed to this method determines whether to execute the command asynchronously. If false, then the method will return without waiting for the command to complete execution. If true, the method will wait for the program to finish executing and the return value of the method will be the value returned from the application under Java, Win32 and WinCE.
To run another TotalCross program from Windows CE devices, use:
Vm.exec("\\TotalCross\\Path\\Program.exe", null, 0, false);Here's a sample of how to run the Internet Explorer in Windows CE:
Vm.exec("\\windows\\iexplore.exe","about:blank",0,false);You cannot pass null nor "" in the args, or you'll get error 87. IExplore requires a page to open; in this case, we open the blank page. In other words, you must call the program's executable.
When calling a TotalCross program, you can pass a command line parameter to the calling application, just placing
the parameters in the proper argument. It can be retrieved with getCommandLine
method from the
MainWindow.
In some platforms, the caller application must be quit by calling exit
.
In Windows 98 and beyond, if you don't pass the full path to the file, it is searched in the current PATH environment variable. The command must contain only the exe name, and all the other arguments must being the args parameter. For example, the following code uses the CMD to open a file with the proper editor:
Vm.exec("cmd.exe", "/c start C:\\WINNT\\DirectX.log", 0, false);Important notes about path separators:
In Android, you can launch an application, an url at the browser, execute a shell command, or install an apk:
/sdcard
. Be sure that the sdcard is NOT MOUNTED, otherwise your application will not have access to it.
In iOS, the following work as in Android. Note that since iOS does not have a sdcard, you must extract or copy the files to your application's directory (Settings.appPath).
UIWebView
component can show. A PDF reader is NOT required.
command
parameter for Vm.exec is the "Process" description, and the
args
parameter is the activitie's name. Note, however, that there's no guarantee that the program
will be available in a real device.
To install a cab file in Windows Mobile, you can use:
Vm.exec("wceload.exe", fullPathToCabFile, 0, true);However, trying to update the program itself or the vm will close the program. So, update it at last.
command
- the command to executeargs
- command arguments.launchCode
- no longer used.wait
- whether to wait for the command to complete execution before returning. If wait is false,
don't forget to call the exit
method right after this command is called, otherwise the application may
not be called. In Android, if you're calling a TotalCross program, the wait parameter is ignored (and defaults to false).public static void setAutoOff(boolean enabled)
public static void sleep(int millis)
millis
- time to sleep in millisecondspublic static void safeSleep(int millis)
millis
- time to sleep in millisecondspublic static void vibrate(int millis)
public static int getFreeMemory()
public static void gc()
public static void interceptSpecialKeys(int[] keys)
public static boolean isKeyDown(int key)
interceptSpecialKeys(int[])
public static void debug(String s)
Vm.debug(Vm.ERASE_DEBUG);
.
Note: if you're debugging a totalcross.lang.String that contains \0 in it, all chars after the first \0 are ignored.
Settings.nvfsVolume
,
disableDebug
,
ERASE_DEBUG
public static void alert(String s)
public static void warning(String s)
Vm.debug("Warning! "+s)
, so it differs from it only in a semanthical way.
Note: you cannot use this function with ERASE_DEBUG; it won't work.
public static void clipboardCopy(String s)
public static String clipboardPaste()
@Deprecated public static boolean attachLibrary(String name)
This method is useful if you have a library and want to make its classes available to your app. At the
initialization, TotalCross scans all libraries in the device and automatically attach them. However, if
you downloaded a new library from a server or saved a bitmap into a file, you will need to attach the
file where it is located so you can instantiate its classes or load the image using new Image(filename)
.
After a library is added, its file is blocked and thus cannot be modified.
To see what libraries are in the device, you can use PDBFile.listPDBFiles
or
File.listFiles
and check the files that ends with Lib
A check is made to prevent a library from being loaded twice.
name
- the library's name, with a 'Lib' suffix. Cannot contain a creator neither a type.Image.loadFrom(totalcross.io.PDBFile, totalcross.lang.String)
public static boolean attachNativeLibrary(String name)
name
- the library's name. The suffix 'Lib' is not mandatory. Cannot contain a creator neither a type.public static byte[] getFile(String name)
byte[] b = Vm.getFile("textfiles/About.txt"); if (b != null) new MessageBox("About", new String(b, 0, b.length)).popup();The TotalCross deployer will insert the .txt file into the program's tcz/pdb.
name
- The name of the file, exactly as shown by tc.Deploy in the output window. In desktop it is case
insensitive, while in device it is CASE SENSITIVE.public static int getRemainingBattery()
public static void tweak(int param, boolean set)
Vm.tweak(Vm.TWEAK_AUDIBLE_GC,true); Vm.tweak(Vm.TWEAK_DUMP_MEM_STATS,true);
TWEAK_AUDIBLE_GC
,
TWEAK_DUMP_MEM_STATS
,
TWEAK_MEM_PROFILER
public static String getStackTrace(Throwable t)
try { ... } catch (Exception e) { MessageBox.showException(e, false); // last parameter dumps to the console if true }
public static String getStackTrace()
try {throw new Exception();} catch (Exception e) {return getStackTrace(e);}
public static void showKeyCodes(boolean on)
public static boolean turnScreenOn(boolean on)
public static void printStackTrace()
try { throw new Exception("Stack trace"); } catch (Exception e) { e.printStackTrace(); }
public static void printStackTrace(String msg)
public static void preallocateArray(Object sample, int length)
int gcc = Settings.gcCount, gct = Settings.gcTime, ini = Vm.getTimeStamp(); ... run some memory-consuming routine Vm.debug("gcCount: "+(Settings.gcCount-gcc)+" ("+(Settings.gcTime-gct)+"ms), elapsed: "+(Vm.getTimeStamp()-ini)+"ms");This is a sample that pre-allocates space for a ListContainer, taken from the PopupMenu class:
Vm.preallocateArray(new ListContainer.Item(layout), itemCount);This method does nothing under Blackberry and Java SE.
public static int identityHashCode(Object object)
hashCode()
.
The hash code for the null
reference is zero.object
- totalcross.lang.Object for which the hash code is to be calculated.


--- layout: home ---
If machines are being run on biased data what does that mean for the future of humanity? Especially for those who are targeted?
SAL demonstrates the dangers of biased data in technology. It watches and examines the user all throughout the project and judges them based on corrupt datasets. The goal of this project is to highlight and stress the importance of human bias in datasets and what that could mean when it comes to the future of technology.
The questions that are really fueling me throughout this process are a mixture of personal and ethical thoughts and ideas. As a black creative who is interested in machine learning I can not help but think of the dangers of misidentification or biased data in machines. Machine learning and artificial intelligence have been automating our lives and making things easier. What happens when devices are unintentionally fed biased data?
In the end I believe that through his experience the users will leave with a feeling of understanding, empathy, or contemplation. To show this I am building a TSA system that demonstrates the problem and having the user experience it first hand through the process. Depending on who is taking it their results will vary. By placing the power in the hands of the system I'm replicating the power that TSA agents have over travelers.
I am making this to highlight the importance of accurate representation in data and technology. I experience acts of micro-aggression and racism all the time. Like many other minorities I've noticed that it changes based on where I am and what I'm wearing. I constantly think about the future and what it will be like, both the good and the bad. If machines are programmed by people with certain biases or feelings towards others what does that future feel like? As a creative I can't help but think about the implications of the things I'm creating and who I'm creating them for.
The goal of this project is to let people see a side of technology that they don't usually see. Unless you are interested in it you wouldn't really know how your data is being used on you or how you are being classified. I want people to be aware of this and how dangerous it can be if used incorrectly against a specific group of people. We've already seen this sort of classification and treatment being rolled out in various nations like the US (Muslim ban) and China (Social ranking).
I am studying the possible dangers of biased data in machines. I chose this because as someone who experiences micro-aggressions and racism I worry about what will happen when people teach machines this behavior. They may not do it intentionally and that's even scarier. I spent the last three months exploring what the future could possibly feel like for someone like me.
My domains of this research and interest for this project varied a lot throughout the last few months. As my ideas and concepts shifted some domains came and left but two always remained. Human-Computer Interaction and Biased Data. Aside from the personal reasons, I'm interested in this area because I'm a developer and it is something that I must hold myself accountable for as well. Speaking to people and visiting museums/researching work have been my greatest source of information and knowledge. The trip to the Whitney Museum in particular has proven to be the most helpful.
It is highlighted in the Community of Practice Report which serves as my main document of research.
This project isn't for a specific group of people, although some may relate to it more than others. The stakeholders would be the general public who interact with technology on a daily basis. Whereas, the community of practice in this case would be more geared towards developers and creators. While trying to test with the audience I've noticed that I've gotten only a majority white or asian group pf people to test it out. I need to get a much wider diverse set of people involved. The core experience of my project is the realization of what's going on as your going through it and realizing that you can't stop it.
Initially my form only existed as a piece of software and that was how I wanted it to be. I was going to create an OS that could be operated through gestures and voice. This is where I first began flirting with machine learning and biased data. I was exploring what a computer would be like if it behaved like its user.
I was given feedback about how it could be more aggressive and really take on the negative side of people and their behaviors. I liked the ideas and tied the thread to the idea of biased data in machinery.
About midway through the semester I pivoted and went in another direction. With the concentration now on bias data I wanted to build something that could show that. SAL (Super American License) does this by putting the user through an application process and running the profiles through biased datasets as they're going through it. The end result shows wether the user passed or failed the application, given the biased data set, and if so why. It gets printed out on a piece of paper. I initially wanted to go with a booth as the form. To replicate the voting process that is so pivotal in America. (See photos by Santi in Community of Practice Report )
In order to make sure the user experiences some biases I added a single if/else statement to the code to determine the outcome from the beginning. When the user takes their picture SAL will analyze them and determine their race. If they're identified as white they automatically pass. Also, during the pledge of allegiance, SAL takes a photo of the user and if they have their hand over their chest they gain extra points. This was just for the sake of the prototype, in the future iteration the final outcome will be based on various other factors as well.
During the Thesis Popup show I was able to get a lot of feedback from various testers. The main problem I was encountering was that the instructions weren't clear enough. Which often caused the message to get lost through the process. Also, I was told frequently to push it further and make the bias more subtle and not so much in your face. It took away from the purpose and the National Anthem along with the Pledge made it seem like too much of a joke for some users. I have to find the right balance of satire to add to the project.
By making the process extremely bias I was able to have the users experience and feel how it feels to be ruled out by a machine but the approach didn't allow them to feel it the right way. The directness of the bias made it not as impactful. Moving forward I plan on implementing this in a far more subtle and realistic manner.


Get the caracter data from a Google Spreadsheets and convert it, so it can be used with the application.


Is there a specific issue or problem you want to tackle in Open Research and Education? Here's a chance to share it with the OpenCon Community and work together on designing a solution.
For the do-a-thon, we're encouraging participants to think about problems in terms of "How might we?" statements. This type of framing can encourage us to think big, consider multiple perspectives, and focus on a variety of possibilities rather than fixating on a pre-determined solution.
We're asking you to define the challenge you're working on—really understanding what the hurdles are—before jumping straight to a solution. This helps avoid the situation of designing a product that doesn't actually address the heart of a problem!
Some examples of challenge statements could look like:
| How might we create offline Open Educational Resources that can be used and adopted in regions without steady internet connection? |
| How might we increase the rewards associated with preprint publishing? |
| How might we make Open Educational Resources more easily editable to better serve local contexts? |
See the full list of challenges your fellow community members have put forward here.
1. Make sure your proposed challenge is related to Open Research or Open Education.
We go through a simple review process to make sure all the challenges for the do-a-thon are related to Open Research and Education. If you'd like to learn more about these issues, perhaps watch some of our videos introducing the issues.
2. Come up with a "How might we___?" statement for your problem.
Make sure to explore the challenges others have already submitted to ensure we're not proposing the same problems twice. (If you do see a similar challenge - consider joining forces with them!)
3. Submit your problem statement for review through our Google form.
This allows us to go through a super quick review process, and provides us with some metadata about the challenge you've proposed.
4. Wait for instructions via e-mail on how to share more about your challenge on Github.
Github is a platform for open source, collaborative working. We'll be using it as a space to manage do-a-thon challenges and projects. This is so others can discover it and contribute! We do this through Github "issues", where each issue will act as a mini discussion thread for each challenge you want to collaborate on. Please follow the email instructions carefully so your challenge is listed properly on our page.
If you don't already have one, you'll need to create a Github account (top tips: try and use your name as your username, you only need the free plan, and you can skip step 3).
5. Your challenge will now be discoverable on our Do-a-thon Challenge page.
Now, others will be able to easily find your challenge and contribute! Please check out our tips for leading challenges, as well as ourdesign thinking resourcesthat will guide you through designing a solution to your problem statement.
Be a respectful facilitator and challenge lead. As a challenge lead, we ask you pay special attention to our Code of Conduct and be welcoming, enthusiastic, and patient with contributors. And of course - remember to thank them for their contributions!
Document your process and update your Github issue frequently. This allows for remote participants or newcomers to stay updated on your challenge progress. Doing a design thinking activity on paper? Make sure you take a photo of your sketch and upload it to the issue. Make sure to document whatever conversations or progress is happening somewhere online. If the conversation is moving off the original Github thread (e.g. onto a Google Doc or Slack), be sure to include a link to wherever that's happening in the original issue, in case new folks want to join your project!
Familiarize yourself with some design thinking resources. These tools are meant to help you better understand your challenge statement. Who are the people involved? What forces are influencing the problem? Having this understanding can bring us closer to a solution.
Write clear guidelines on how people can participate. Be specific about how people can help and get in touch. Is there particular skills or expertise you're looking for? If your project is regionally based in a non-English-speaking region, let people know in your contributing guidelines what language you and contributors will primarily be communicating in.
Keep in mind that there are people participating both in-person and remotely!. If you're at the in-person meeting in Toronto: Be as inclusive as possible to those outside the room. In your guidelines, give clear instructions to those participating in the do-a-thon remotely on how they can keep up to date and contribute. If you're leading your challenge remotely: use your contributing guidelines to let people know that this is a remote project, and that you'll be communicating with contributors online! Let other participants know what the best way to get in touch with you, where the work will happen, and where any updates or outputs will go.
Still have question about this before the do-a-thon starts? Send an email or feedback to Joe[at]sparcopen[dot]org.
Design thinking can help you build a solution through first understanding your problem from various perspectives. Learn how to design a simple prototype of your solution that you can test and continue building off of after the do-a-thon. The complete OpenCon design thinking introductory slidedeck can be downloaded here.
A printable toolkit with exercise templates for the day-of can be accessed here.
Understand the system your problem is situated in—sketch out the users and institutions involved, the flow of resources.
Better understand the various people involved in the system, who they are, what their needs are, and what barriers they face.
Based off your user and systems research, design a solution. Learn how to create & test a simple prototype.


|
Connected Home over IP
672cf7684
|
#include <ctype.h>
#include <inttypes.h>
#include <string.h>
#include <core/CHIPTLV.h>
#include <core/CHIPTLVDebug.hpp>
#include <core/CHIPTLVUtilities.hpp>
#include <support/CodeUtils.h>
#include <support/logging/CHIPLogging.h>
Namespaces | |
| chip | |
| Adaptation for LwIP ip4_addr_t type. | |
| chip::TLV | |
| chip::TLV::Debug | |
| This namespace includes types and interfaces for debugging and logging CHIP TLV. | |
Macros | |
| #define | __STDC_FORMAT_MACROS |
Functions | |
| static void | chip::TLV::Debug::DumpHandler (DumpWriter aWriter, const char *aIndent, const TLVReader &aReader, size_t aDepth) |
| Dump the TLV element referenced by aReader in human-readable form using aWriter. More... | |
| const char * | chip::TLV::Debug::DecodeTagControl (const TLVTagControl aTagControl) |
| Decode a TLV tag control with a descriptive string. More... | |
| const char * | chip::TLV::Debug::DecodeType (const TLVType aType) |
| Decode a TLV type with a descriptive string. More... | |
| CHIP_ERROR | chip::TLV::Debug::DumpIterator (DumpWriter aWriter, const TLVReader &aReader) |
| Log the TLV data within the specified reader in human-readable form to the specified writer. More... | |
| CHIP_ERROR | chip::TLV::Debug::DumpHandler (const TLVReader &aReader, size_t aDepth, void *aContext) |
| Log the TLV data within the specified reader in human-readable form. More... | |
| CHIP_ERROR | chip::TLV::Debug::Dump (const TLVReader &aReader, DumpWriter aWriter) |
| Dump the TLV data within the specified reader in human-readable form with the specified writer. More... | |
This file implements interfaces for debugging and logging CHIP TLV.
| #define __STDC_FORMAT_MACROS |


Flexbox Responsive E-commerce banner big / small - small
Lorem ipsum ipsum ipsum ipsum ipsum ipsum ipsum
Lorem ipsum


Council boss bags award of excellence - The Nation Newspaper
By Taiwo Alimi
Surulere Local government chairman, Hon. Tajudeen Ajide, has added another feather in his cap, as he was named among 2019 recipients of the 18th Nigerian Local Government Chairmen Merit Award (LOGMA) for excellent service delivery and performance.
Ajide was physically on ground to receive the award at the National Merit House Abuja among 23 other local government chairmen in Nigeria.
According to Chief Executive Officer of Mentors Communication, the organisers of the yearly award, Prince Bayo Ojo, Ajide was among the best performing chairmen in the year under review. He said: “the award was instituted in 2000 to stimulate fair competition for service delivery among local government chairmen and to also celebrate their exemplary qualities.”
Ajide was lauded in the area of quality road construction and rehabilitation, landmark buildings, welfare of the aged and women, health services and education. It noted that the grassroots politician has completed 38 roads in Surulere within two years of his administration.
Special guest of honour, Minister of Special Duties and Intergovernmental Affairs, Sen. George Akume, believed that this will encourage the chairman to do more.
In his reaction, Ajide appreciated God for giving him the opportunity to serve humanity, while appreciating his family, the entire Surulere LG staff, management team, executives and the legislative arm for their unrelenting support for a better and greater Surulere.


Friendly error messages¶
AvantPy aims to provide friendlier feedback when an exception is raised than what is done by Python. Such feedback will also be available in languages other than English.
Note
The content of this file is generated by running
tb_pyupper.py located in the tests/pyupper/
directory.
This needs to be done explicitly, independently of updating the
documentation using Sphinx.
AvantPy version: 0.0.5 Python version: 3.7.0
IfNobreakError¶
Example:
AVANTPY EXCEPTION: IfNobreakError
Error found in file raise_if_nobreak.pyupper on line 4.
Dialect used: pyupper
2: if True:
3: pass
-->4: NOBREAK:
The AvantPy NOBREAK keyword cannot be used in
an IF/ELIF/ELSE clause (Python: if/elif/else).
MismatchedBracketsError¶
Example:
AVANTPY EXCEPTION: MismatchedBracketsError
Error found in file raise_mismatched_brackets.pyupper on lines [2 - 6].
Dialect used: pyupper
-->2: a = (1,
3: 2,
4: 3, 4,
5: 5
-->6: ]
The opening ( does not match the closing ].
MissingLeftBracketError¶
Example:
AVANTPY EXCEPTION: MissingLeftBracketError
Error found in file raise_missing_left_bracket.pyupper on line 5.
Dialect used: pyupper
4: 3, 4,)
-->5: )
6: b = 3
The closing ) does not match anything.
MissingRepeatError¶
Example:
AVANTPY EXCEPTION: MissingRepeatError
Error found in file raise_missing_repeat.pyupper on line 3.
Dialect used: pyupper
2: x = 0
-->3: UNTIL x == 2:
4: x += 1
The AvantPy UNTIL keyword can be used only when preceded by
REPEAT.
Example 2:
AVANTPY EXCEPTION: MissingRepeatError
Error found in file raise_missing_repeat2.pyupper on line 3.
Dialect used: pyupper
2: x = 0
-->3: FOREVER:
4: x += 1
The AvantPy FOREVER keyword can be used only when preceded by
REPEAT.
NobreakFirstError¶
Example:
AVANTPY EXCEPTION: NobreakFirstError
Error found in file raise_nobreak_first.pyupper on line 3.
Dialect used: pyupper
2: # Need to prevent NOBREAK being replaced by 'else' in this situation.
-->3: a = 1 if True NOBREAK 3
4:
The AvantPy NOBREAK keyword can be used instead of ELSE (Python: else)
only when it begins a new statement for loops.
NobreakSyntaxError¶
Example:
AVANTPY EXCEPTION: NobreakSyntaxError
Error found in file raise_nobreak_syntax.pyupper on line 4.
Dialect used: pyupper
3: a = 1
-->4: NOBREAK: pass
5:
The AvantPy NOBREAK keyword can only be used as a replacement
of ELSE (Python: else) with a matching FOR or WHILE loop
(Python: for/while).
RepeatFirstError¶
Example:
AVANTPY EXCEPTION: RepeatFirstError
Error found in file raise_repeat_first.pyupper on line 3.
Dialect used: pyupper
2: # Catch an early case of using REPEAT not to begin a loop
-->3: a = REPEAT
4:
The AvantPy REPEAT keyword can only be used to begin
a new loop (Python: equivalent to 'for' or 'while' loop).
TryNobreakError¶
Example:
AVANTPY EXCEPTION: TryNobreakError
Error found in file raise_try_nobreak.pyupper on line 7.
Dialect used: pyupper
3: TRY:
4: A = 1
5: EXCEPT:
6: A = 2
-->7: NOBREAK:
The AvantPy NOBREAK keyword cannot be used in
a TRY/EXCEPT/ELSE/FINALLY clause (Python: try/except/else/finally).
UnknownLanguageError¶
Example:
AVANTPY EXCEPTION: UnknownLanguageError
The following unknown language was requested: xx.
The known languages are: ['en', 'fr', 'upper'].
UnknownDialectError¶
Example:
AVANTPY EXCEPTION: UnknownDialectError
The following unknown dialect was requested: pyxx.
The known dialects are: ['pyen', 'pyes', 'pyfr', 'pyupper'].