- main(String[]) - Static method in class com.mathgame.database.SQLProject
-
- main(String[]) - Static method in class com.mathgame.database.Values
-
- main(String[]) - Static method in class com.mathgame.math.Window
-
- MainMenu - Class in com.mathgame.menus
-
The MainMenu class displays the main menu
- MainMenu() - Constructor for class com.mathgame.menus.MainMenu
-
- masterLayer - Variable in class com.mathgame.panels.CardPanel
-
- masterLayer - Variable in class com.mathgame.panels.OperationPanel
-
- MatchesAccess - Class in com.mathgame.database
-
The MatchesAccess class handles interactions with the online matches table
- MatchesAccess(MathGame, Connection) - Constructor for class com.mathgame.database.MatchesAccess
-
- matchesAccess - Static variable in class com.mathgame.network.GameManager
-
- matchesAccess - Variable in class com.mathgame.panels.SidePanel
-
- mathGame - Static variable in class com.mathgame.cardmanager.UndoButton
-
- mathGame - Static variable in class com.mathgame.database.GameAccess
-
- mathGame - Static variable in class com.mathgame.database.MatchesAccess
-
- mathGame - Static variable in class com.mathgame.database.MySQLAccess
-
- mathGame - Static variable in class com.mathgame.math.CompMover
-
- MathGame - Class in com.mathgame.math
-
The main class of the program
- MathGame() - Constructor for class com.mathgame.math.MathGame
-
Initializes the window & game
- mathGame - Static variable in class com.mathgame.math.TypeManager
-
- mathGame - Static variable in class com.mathgame.menus.HostMenu
-
- mathGame - Variable in class com.mathgame.menus.MainMenu
-
- mathGame - Static variable in class com.mathgame.menus.MultiMenu
-
- mathGame - Variable in class com.mathgame.menus.OptionMenu
-
- mathGame - Static variable in class com.mathgame.network.GameManager
-
- mathGame - Variable in class com.mathgame.panels.CardPanel
-
- mathGame - Variable in class com.mathgame.panels.SidePanel
-
- mathGame - Static variable in class com.mathgame.panels.WorkspacePanel
-
- MathGame.GameState - Enum in com.mathgame.math
-
The GameState enumeration is used for indicating the user's current game mode
- MathGame.Menu - Enum in com.mathgame.math
-
The Menu enumeration is used for selecting which menu to use
- mButton - Variable in class com.mathgame.math.SoundManager
-
- mg - Static variable in class com.mathgame.math.Window
-
- mixedinfo() - Method in class com.mathgame.menus.MultiMenu
-
Displays info on the mixed mode
- mode - Variable in class com.mathgame.menus.MultiMenu
-
- modeGroup - Variable in class com.mathgame.menus.OptionMenu
-
- modeNames - Variable in class com.mathgame.menus.OptionMenu
-
- modePanel - Variable in class com.mathgame.menus.OptionMenu
-
- modes - Variable in class com.mathgame.menus.OptionMenu
-
- mouseClicked(MouseEvent) - Method in class com.mathgame.menus.MainMenu
-
- mouseClicked(MouseEvent) - Method in class com.mathgame.menus.MultiMenu
-
- mouseDragged(MouseEvent) - Method in class com.mathgame.math.CompMover
-
Handles the dragging of selected components
- mouseDragged(MouseEvent) - Method in class com.mathgame.menus.MainMenu
-
- mouseDragged(MouseEvent) - Method in class com.mathgame.menus.MultiMenu
-
- mouseEntered(MouseEvent) - Method in class com.mathgame.menus.MainMenu
-
- mouseEntered(MouseEvent) - Method in class com.mathgame.menus.MultiMenu
-
- mouseExited(MouseEvent) - Method in class com.mathgame.menus.MainMenu
-
- mouseExited(MouseEvent) - Method in class com.mathgame.menus.MultiMenu
-
- mouseMoved(MouseEvent) - Method in class com.mathgame.menus.MainMenu
-
- mouseMoved(MouseEvent) - Method in class com.mathgame.menus.MultiMenu
-
- mousePressed(MouseEvent) - Method in class com.mathgame.math.CompMover
-
If a card is selected, it can be dragged
- mousePressed(MouseEvent) - Method in class com.mathgame.menus.MainMenu
-
- mousePressed(MouseEvent) - Method in class com.mathgame.menus.MultiMenu
-
- mouseReleased(MouseEvent) - Method in class com.mathgame.math.CompMover
-
Handles the cases when any card is released
- mouseReleased(MouseEvent) - Method in class com.mathgame.menus.MainMenu
-
- mouseReleased(MouseEvent) - Method in class com.mathgame.menus.MultiMenu
-
- Move - Class in com.mathgame.cardmanager
-
The Move class represents individual moves, including information like which cards were involved
- Move(NumberCard, OperationCard, NumberCard, NumberCard) - Constructor for class com.mathgame.cardmanager.Move
-
- moved - Variable in class com.mathgame.math.CompMover
-
- mover - Variable in class com.mathgame.panels.WorkspacePanel
-
- MoveTracker - Class in com.mathgame.cardmanager
-
The MoveTracker class is responsible for recording the move history of the user during a round
- MoveTracker() - Constructor for class com.mathgame.cardmanager.MoveTracker
-
- multiMenu - Variable in class com.mathgame.menus.HostMenu
-
- MultiMenu - Class in com.mathgame.menus
-
The MultiMenu class represents the menu for setting up multiplayer games
- MultiMenu() - Constructor for class com.mathgame.menus.MultiMenu
-
- multiply - Variable in class com.mathgame.panels.OperationPanel
-
- mx - Variable in class com.mathgame.menus.MainMenu
-
- mx - Variable in class com.mathgame.menus.MultiMenu
-
- my - Variable in class com.mathgame.menus.MainMenu
-
- my - Variable in class com.mathgame.menus.MultiMenu
-
- MySQLAccess - Class in com.mathgame.database
-
The MySQLAccess class handles connections to the MySQL database
- MySQLAccess(MathGame) - Constructor for class com.mathgame.database.MySQLAccess
-
- MySQLAccess() - Constructor for class com.mathgame.database.MySQLAccess
-


Sky creating 1,000 new jobs across the UK - the roles, pay and how to apply
The broadcasting giant said on Monday it will open a new customer contact centre in Leeds to meet increased customer demand, hiring 500 new customer service representatives
by James Rodger, https://www.facebook.com/jamesrodgerjournalistSky has announced the creation of 1,000 new jobs across the UK, raising the firm's total number of UK and Ireland employees by nearly 5%.
The broadcasting giant said on Monday it will open a new customer contact centre in Leeds to meet increased customer demand, hiring 500 new customer service representatives.
It will also hire 500 new engineers as part of the roll-out of its newest TV platform Sky Q.
Sky already employs 3,500 engineers across the UK and 1,000 more people who are based in Leeds, with the majority working in the brand's technology hub.
The newly announced roles brings the total number of employees in the UK and Ireland to 25,000.
Perks include: "Sky Q, a generous pension and private health care. Access to over 12,000 LinkedIn Learning courses to support your development. And if that’s not enough, our Leeds Dock campus offers a pool table, table tennis, discounted gym membership, endless local discounts, and much more."
Sky provides satellite TV, broadband and phone services as well as its own streaming service, NOW TV, in addition to the hybrid HD service Sky Q.
Sky UK and Ireland chief executive Stephen van Rooyen said: "It's great that 500 new Sky engineers will be hitting the roads right across the UK this winter to meet growing customer demand.
"Together with our expanded team in Leeds, these 1,000 new employees are a real testament to Sky's commitment to customer service and investment to create a diverse workforce right across the UK."
To apply, click here.


Fortran Compilers¶
This section is relevant to users who want to compile the fortran code in the classic, amrclaw, or geoclaw branches.
FC environment variable¶
Users should set the environment variable FC to point to the correct compiler, e.g. in bash via:
$ export FC=gfortran
Note that some versions of make will set FC=f77 by default if no value is specified, and adding a line to the Makefile such as:
FC ?= gfortran
will not override this. The common Makefile in $CLAW/clawutil/src/Makefile.common now tests to see if FC is set to f77 and if so resets it to gfortran since much of Clawpack is not f77 compliant. However, it is best to set the FC environment variable yourself, e.g. in your .bashrc file.
FFLAGS environment variable¶
Compiler flags can be specified using the FFLAGS variable that can be set in an application Makefile. By default sample Makefiles now specify:
FFLAGS ?=
so that no flags are used unless the environment variable FFLAGS is set already. This line can be changed in the Makefile, but it is often easiest to set an environment variable for the flags you generally want to use.
Note: If you change the flags you generally have to recompile all the code, and this dependency is not handled automatically. So always do:
$ make new
before rerunning an example with make .output or make .plots.
gfortran compiler¶
Some useful flags:
For debugging:
FFLAGS = -g -Wall -pedantic -fbounds-check -ffpe-trap=invalid,overflow,zero
For optimizing:
FFLAGS = -O2
For using OpenMP:
FFLAGS = -O2 -openmp
In this case you should also set some environment variables. See Using OpenMP for details.
Note: Versions of gfortran before 4.6 are known to have OpenMP bugs.
Intel fortran compiler¶
Set the FC environment variable to ifort.
Some useful flags:
For debugging:
FFLAGS = -g -C -CB -CU -fpe0 -ftrapuv -fp-model precise
For optimizing:
FFLAGS = -O2
For using OpenMP:
FFLAGS = -O2 -openmp
In this case you should also set the environment variable OMP_NUM_THREADS to indicate how many threads to use.


How misnaming a class hurt us royally.
Naming things properly is important. Since human brain can hold limited information at one time, it is important to minimize the difference between what an entity is called and its functionality. A popular mind game has the words GREEN, RED, and YELLOW, written in red, yellow and green respectively, and the challenge is to speak out the colors (and not the words) as fast as you can.
Choosing meaningful name is actually not that hard. Of course number of items will
be denoted by nItems
, and total height will be denoted by
totalHeight
. A function to compute the sum will be called
computeSum()
and a function to check for alerts will be called as
checkForAlerts
.
What is hard is that the names continue to be meaningful. It is hard for the names to keep
up with change in the functionality of the underlying entity. Let's say you
have a function which sends messages.
You begin by call it sendMessages()
. Do you update the name when the function
starts to update some stats? Do you update the name when the function modifies
the message a little before sending to the recipients? How about the scenario when
the function validates the message before sending it and decides not to send
it if validation fails?
Functionality overload creeps in in small bits, with each bit being innocuous enough to not warrant a change in the name of the variable (which may involve changes across mulitple files). This results in gradual accmulation of technical debt.
At QGraph, we have a concept of "campaign", which can of several types: "regular
campaign", "trigger campaign" and "inapp campaign". (You do not need to know the details
what the campaigns are). They were implemented
in the classes RegularCampaign
, TriggerCamapign
and
InappCamapaign
. Each of these three classes inherits from a base
class called Campaign
. Of these, the regular campaign
needed a "progress updater", while the others did not.
For the sake of uniformity, we decided that all campaign would use a progress
updater, which will be passed to as an argument in the constructor of campaign
classes and through there to the constructor of class Campaign
.
However, regular campaign would use an instance of class ProgressUpdater
,
while trigger and inapp campaigns would use an instance of class NullProgressUpdater
.
NullProgressUpdater
would have the same functions exposed as the
regular ProgressUpdater
, but would do nothing. That way, the functionality
of updating progress could reside in the base class Campaign
and all
individual campaign classes could continue to inherit from Campaign
.
This design of having two updaters ProgressUpdater
and NullProgressUpdater
served us very well. We were also able use NullProgressUpdater
for writing
test cases for various campaigns.
As time passed, more functionalities were added to ProgressUpdater
.
It so turned out that ProgressUpdater
was the only class in whole
code flow that was updating the database, and thus developers started to use
ProgressUpdater
for updating the database with various statistics
and metadata. All this seemed logical too: we were happy that there was a single
gateway to the databse, and all the updates anyway seemed related, if only
tangentially, to "progress".
It so happened that once there was a progress updater related requirement which was
required by all campaigns, not just regular campaigns.
And here the developer did what he should not have done:
he added that functionality to both ProgressUpdater
and
NullProgressUpdater
. That was the easiest thing to do, though
not the correct thing.
Why is that bad? This is bad because now the name "NullProgressUpdater" is no longer consistent with the fact that this progress updater is actually doing some work.
We could have introduced another progress updater, say MinimalProgressUpdater
,
which would have been used by campaigns other than RegularCampaign
i.e.
TriggerCampaign
and InappCampaign
. NullCampaign
After a few more months, there was another requirement which fit well in putting the
code in ProgressUpdater
. However, the requirement was so unrelated to
"progress update" that we finally decided to change the name "progress updater" to
more general "stats updater". Thus ProgressUpdater
was to be renamed to
StatsUpdater
and NullProgressUpdater
was to be renamed
to NullStatsUpdater
. However, the developer, rather than renaming the
file null_progress_udpater.py
to null_stats_updater.py
decided to copy stats_updater.py
to null_stats_updater.py
and then modify all the functions to no-op. He assumed that since it is null
stats updater, all the function calls should be dummy.
Thus, NullProgressUpdater
went back to being true to its name. This resulted
in a bug in our code which was uncovered only around after a month when a client complained of
obviously incorrect results. Only then we then introduced the new stats updater, called
TriggerStatsUpdater
.
It requires discipline and good judgement to decide when to make the extra effort of refactoring while implementing an added functionality. We lacked the good judgement in above case.
Unfortunately, just like car accidents, there is no way to avoid the bad judgement calls. The best we can do is to adopt best practices and be disciplined. And just as we expect car accidents to go down with self driving cards, coding utopia will be achieved when computers start writing code.


Astronomical Spectroscopy
Using Spectroscopy to discover our Universe. A
NASSP
Honours Course
Projects
ArXiv Project
SALT Spectroscopy
Stellar Features


| Package | net.yahoo.fireeagle |
| Interface | public interface IFireEagleRealtime extends flash.events.IEventDispatcher |
| Implementors | RecentPoller, XMPPConnection |
| Property | Defined by | ||
|---|---|---|---|
| running : Boolean [read-only]
Is listening for update.
| IFireEagleRealtime |
| Method | Defined by | ||
|---|---|---|---|
|
start():void
Start listening for subscriber updates.
| IFireEagleRealtime | ||
|
stop():void
Stop listening for subscriber updates.
| IFireEagleRealtime | ||
|
subscribe(tokenKey:String, tokenSecret:String):void
Subscribe to a user's location updates.
| IFireEagleRealtime | ||
|
unSubscribe(tokenKey:String, tokenSecret:String):void
Unsubscribe to a user's location updates.
| IFireEagleRealtime |
| Event | Summary | Defined by | ||
|---|---|---|---|---|
Dispatched when a user location update is received. | IFireEagleRealtime |
| running | property |
running:Boolean
[read-only]Is listening for update.
Implementation public function get running():Boolean
| start | () | method |
public function start():void
Start listening for subscriber updates.
| stop | () | method |
public function stop():void
Stop listening for subscriber updates.
| subscribe | () | method |
public function subscribe(tokenKey:String, tokenSecret:String):void
Subscribe to a user's location updates.
ParameterstokenKey:String — User's access token key
|
|
tokenSecret:String — User's access token secret
|
| unSubscribe | () | method |
public function unSubscribe(tokenKey:String, tokenSecret:String):void
Unsubscribe to a user's location updates.
ParameterstokenKey:String — User's access token key
|
|
tokenSecret:String — User's access token secret
|
| userSuccess | event |


Images to help with Search Basics
How to search
Search results
View of webPage
What you can search for
Mobile Search Tips
Search for windows
First name
First name
How to search
Search results
View of webPage
What you can search for
Mobile Search Tips
Search for windows
First name
First name


Profile page of the user
... They will have to be registered and logged in to see their information
Will display the races they are registered for if they with confirmation number and the data they entered for the race


Company Name
Home
(current)
About
Services
Contact
Sign Up
Log In
Sign Up
×
Log In
×
Let's Go To the Forest
Kero Kero Bonito
Next in Album List
Lorem Ipsum
Dolor Sit Amet
Consectetur
Adipiscing Elit
Trending
>


This website demonstrates basic usage of the Web Cryptography API developed by w3c.
You can find all the code at https://github.com/nvdbleek/web-crypto-samples. All the code is provided under the MIT license.
The hash sample demonstrates the usage of the digest()
function using the SHA-256
hashing function.
The sign & verify sample demonstrates the usage of the sign()
, verify()
, exportKey()
and importKey()
functions using RSASSA-PKCS1-v1_5
.
The encrypt & decrypt sample demonstrates the usage of the encrypt()
, decrypt()
, exportKey()
and importKey()
functions using RSAES-PKCS1-v1_5
.


Preparation time
over 2 hours
Cooking time
1 to 2 hours
Serves
Serves 10-12
Dietary
A passionfruit, chocolate and strawberry Saint Honoré. Named after the French patron saint of bakers and pastry chefs, this delicious cake is a real test of skill.
Equipment and preparation: for this recipe you will need a large star nozzle, a large circular nozzle, piping bag, 30cm/12in flan ring and a food processor.
To make the rough puff pastry, sift the flour into a large bowl and add the butter. Mix the butter around to coat it in flour (stop before it starts to look like breadcrumbs as you want squashed pieces of butter showing in the mixture). Mix the water and lemon juice together in a jug and pour it into the flour and butter mixture.
Chop the butter into the flour, until the dough comes together. When the dough has formed a loose lump, tip it onto a lightly floured work surface and shape it into a thick rectangle. Roll the dough out, then fold one-third of the dough to the centre, then fold the other third over that. Roll the pastry out again to the same proportions as before and fold in the same way as before. Rotate the pastry a quarter turn and repeat the rolling and folding. Continue for another 3-4 more times. Wrap the pastry in cling film and place into the fridge to chill for several hours.
Preheat the oven to 200C/400F/Gas 6 and lightly grease a baking tray with flavourless oil.
To make the choux pastry, in a large pan bring the butter and 300ml/10fl oz water to boil. Add the flour, remove from the heat and mix well before beating in the eggs one by one. Set aside while you roll the rough puff pastry.
Lightly dust a clean work surface with flour. Remove the pastry from the fridge and roll out until it’s the thickness of a pound coin. Use a 30cm/12in flan ring to cut the pastry to shape. Using a large circular nozzle, pipe some large choux buns around the edge of the puff pastry (approximately 10). On the greased baking tray, pipe out approximately 20 small choux buns. Place the pastry and choux buns into the oven for 25 minutes.
For the crème pâtissière, whisk the egg yolks and sugar together in a bowl until pale and light, then fold in the vanilla seeds and cornflour. Bring the milk to the boil in a small saucepan and then whisk it gradually into the egg mixture. Pour the mixture into a clean pan and bring it slowly to the boil until it thickens. Stir in the butter and simmer for a minute and then remove the pan from the heat.
For the passionfruit curd, in a food processor blend the passionfruit pulp and sieve into a heatproof bowl. If you are using a microwavem, whisk in the whole eggs, egg yolks and sugar. Stir in the butter and place the bowl in a microwave on a medium temperature for two minutes. Whisk, then return to the microwave for two more minutes. Whisk again, then return to the microwave for a final minute. By now the curd should be thick and smooth. If you don’t have a microwave, beat the eggs, egg yolks and sugar together in a bowl. Melt the butter over a low heat in a heavy-based pan and add the egg mixture and blended passionfruit. Cook gently, stirring constantly until thickened. Pour into a shallow bowl, cover with cling film and place in the fridge to cool.
When the puff pastry is cooked, remove from the oven and brush with the egg white. Cook for a further minute then set aside to cool.
For the small choux buns, prick the undersides with the tip of a sharp knife and place back into the oven for five minutes to crisp up. Remove and set aside to cool.
To make the crème Chantilly, whip the cream until thickened using a handheld electric beater and add the vanilla seeds and icing sugar. Place in the fridge in a large mixing bowl.
Spoon the crème Chantilly into a piping bag fitted with the large star nozzle. Pipe into the choux buns by inserting the nozzle into the cut made earlier.
Once the choux buns are filled, make the caramel. In a medium pan set over a high heat, add the sugar and 100ml/3½fl oz water and melt to an amber caramel. Remove from the heat and, using tongs, dip the choux buns into the caramel and place the choux buns into the middle of the gâteau, ensuring some room is left for the cream, chocolate ganache and curd to go on top.
To make the ganache, in a heat proof jug melt the chocolate and cream in a microwave on a low setting. Allow to cool slightly, then pour into the centre of the gâteau. Spread the passionfruit curd over the top.
To decorate, pipe the crème Chantilly in the centre of the gâteau, and into any gaps between the choux buns. Place the strawberries in a ring around the edge of the cream.
To make the spun sugar decorations, in a pan set over a medium heat melt the sugar with two tablespoons of water until a caramel forms (it will be a deep amber colour). Remove from the heat and allow the caramel to cool a little. Line a tray with parchment paper. Using a spoon, carefully drizzle the caramel into shapes on the parchment paper. Take care not to burn yourself as sugar gets very hot. Set aside to cool and harden.
Spike the sugar shapes into the cream in between the choux buns and decorate with a sprinkling of the gold leaf.


PTP (Programmers' Thinking Pub) is a group dedicated to providing developers and programmers with a general chat to share their ideas, receive feedback on concepts or just chat about programming in general.


For my Final Project for this module, I decided to make a self-watering plant system. I came up with this idea after seeing a youtube video where a guy made a similar irrigation system using Arduino UNO. The videos I saw can be found here, they helped me understand the basic concept of how to create such a system.
I started by sketching out the design that I wanted. I wanted to create a housing that can be rested on its bottom and back so I came up with a pentagon design.
I decided that the housing was to be laser cut and the other parts I needed to create to be 3D printed (eg. sensor housing, hinge, pcb mount).
I started modelling the housing using Fusion360 with the aid of using parameters. The holes for wiring and power supply is not added as these can be drilled after. The back lid is made such that I can open it when needed. I used tabs so that the pieces can be easily attached to eachother.
Next, I modelled the PCB mount that i would be using inside the housing to arrange the nano as well as the LCD.
Next, I modelled the sensor housing. There was to be precise holes made for the DHT11 and the LDR (later removed) to fit through. The lid can slo be easily removed when needed and a slot is made for the soil moisture sensor to fit through.
Next, I modelled the hinge that would allow me to open and close the back lid with ease. I had to trial and error a few times to get the clearance correct. This is the finalised design.
Lastly, to help the water-tube stay better on the surface of the soil, I decided to print a few 'pegs' to stick in the soil.
After the modelling was completed I started with the printing and laser cutting of my pieces. To start off, I laser cut my main housing by exporting each file in DXF format and I added a graphic for the front piece of the housing before laser cutting. Then I printed the pcb mount, sensor housing and the hinges and the pegs I would be using.
I used the circuit that I drew out above. I connected the wires to the nano by soldering it. I used heat shrink wires to make sure my soldered parts are protected. As this was my first time soldering, I found it pretty difficult and I took pretty to solder my first few connections. However, after soldering more, I found that I was able to complete the soldering process much quicker. Below are some pictures of what I soldered.
To start of the Arduino Code for my nano I put in the libraries I would be using.
Next, I input all the variables I would be using in this code.
Then, I wrote the void setup(). This included all the setups of the different electronics I used. This is only run once. To finish it off I added a setup loading screen.
Next, I wrote the codes for all the input values and the necessary calculations. This was done in void loop().
Next, I wrote the code using an if else statement for when the pump should be activated.
Lastly, I wrote the code for the LCD output.
The full code for my Arduino code can be found here.
After I finished the coding, I started to assemble my project. I first attached my hinge onto the back pieces of the housing. For this, I used UHU glue as I didnt have acrylic glue on hand. This allowed for the opening and closing of the back lid.
Next, I hot glued the top sensors into the sensor housing. This was a bit hard as the sensor housing was pretty small.
Afterwards, I started gluing the main housing pieces. For this I also used UHU Glue to glue everything together. The drying time was relatively long as acrylic is not a porous material. After gluing in the side walls of the housing, I glued in the pcb mount as it would be easier done this way. The finished piece is shown below.
Now that I have completed the gluing process, this is how my internal circuitry looks like. After noticing I had quite a few wires exposed I decided to make them neater by cable tying the cables together.
Moving on to the water tubing I would be using a 6mm external 4mm internal wide tubing.
I found this too big to fit into the water pump so I decided to cut a slit at the start of the tubing so it can slide into the water pump hole much easier. Also to water the plants more efficiently, I decided to cut small snips along the sides of the tubing.
These are some pictures of my project.
How does my project work?
Powering on: There is a slide switch at the side which turns the system off and on.
The sensors: Capacitive Soil Moisture Sensor and DHT11 takes in the readings of the soil moisture, humidity and temperature. This reading is then sent to the nano which displays this code onto the LCD screen.
Watering: When the moisture reading of the soil drops below 35% (this can be adjusted by re-coding) the water pump activates, pumping water into the tubing and onto the surface of the soil. The watering is repeated until soil moisture is above 35%. Any water source can be used for this system.
My setup is shown below. I used a milk carton for the water source and cut out a section such that the pump could fit in nicely.
| Material used | Estimated price |
|---|---|
| Arduino Nano | $8.05 |
| DHT11 | $1.55 |
| Slide Switch | $0.80 |
| Submersible Water Pump | $3.50 |
| Capacitive Soil Moisture Sensor | $2.00 |
| Clear Water Tube (6mm) | $2.00 |
| I2C LCD | $3.00 |
| 2N2222 | $0.50 |
| 3mm Acrylic Sheet | - |
What was successful?
Generally the whole laser cutting and 3d printing process went relatively well. The laser cut and 3d printed parts had some parts which were smaller than electronics that were supposed to fit in so I just filed it down and it worked fine afterwards.
What needs more work?
My initial plan was to have one more sensor which was the LDR which can be seen in some of my photos. I had even glued it onto my sensor housing. However when I was testing it, the LDR changed the voltage too much such that it affected my soil moisture sensor. In the end I had to remove it. This could have been fixed by using a variable resistor to control the voltage better.
Here is a 1 minute video of how my self-watering plant system works.
This is my presentation slide for my project.
This is the Ownership Card.


Default
Amethyst
City
Flat
Modern
Smooth
ne
Dashboard
User Interface
UI Elements
Widgets
Blocks
Styles
Blocks API
Draggable
Grid
Typography
Icons
Buttons
Activity
Tabs
Tiles
Timeline
Navigation
Modals & Tooltips
Color Themes
Tables
Styles
Responsive
Tools
Pricing
DataTables
Forms
Pre-made
Elements
Pickers & More
Text Editors
Validation
Wizard
Develop
Components
Images
Charts
Calendar
Sliders
Animations
Scrolling
Syntax Highlighting
Rating
Tree View
Maps
Google
Vector
Gallery
Simple
Advanced
Layouts
Layout API
Default
Default Flipped
Static Header
Mini Sidebar (Hoverable)
Side Overlay (Hoverable)
Side Overlay (Open)
Side Native Scrolling
Hidden Sidebar
Multi Level Menu
Link 1-1
Link 1-2
Sub Level 2
Link 2-1
Link 2-2
Sub Level 3
Link 3-1
Link 3-2
Sub Level 4
Link 4-1
Link 4-2
Sub Level 5
Link 5-1
Link 5-2
Sub Level 6
Link 6-1
Link 6-2
Pages
Generic
Blank
User Profile
Search Results
Invoice
FAQ
Inbox
Forum
Categories
Topics
Discussion
New Topic
Log In
Log In v2
Register
Register v2
Lock Screen
Lock Screen v2
Password Reminder
Password Reminder v2
Coming Soon
Maintenance
Error Pages
400
401
403
404
500
503
Apps
Frontend
Profile
3
Inbox
1
Profile
Settings
Actions
Lock Account
Log out
Form Elements
Carefully designed elements that will ensure a great experience for your users.
Forms
Form Elements
Material Design
Static Labels
Username
Password
Email
Grid Input
Grid Input
Textarea Small
Textarea Large
Primary Color
Success Color
Info Color
Warning Color
Danger Color
Success
Info
Warning
Error
With Help
This is a help block!
Disabled
...
Option #1
Option #2
Option #3
Please Select
Submit
Floating Labels
Username
Password
Email
Grid Input
Grid Input
Textarea Small
Textarea Large
Primary Color (On focus)
Success Color (On focus)
Info Color (On focus)
Warning Color (On focus)
Danger Color (On focus)
Success
Info
Warning
Error
With Help
This is a help block!
Disabled
Option #1
Option #2
Option #3
Please Select
Submit
Bootstrap Design
Default Elements
Static
Username
Text
Further info about this input
Email
Password
Success State
Info State
Warning State
Error State
Disabled
Textarea
Select
Please select
Option #1
Option #2
Option #3
Multiple Select
Option #1
Option #2
Option #3
Option #4
Option #5
Option #6
Option #7
Option #8
Option #9
Option #10
Radios
Option 1
Option 2
Option 3
Inline Radios
One
Two
Three
Checkboxes
Option 1
Option 2
Option 3
Inline Checkboxes
One
Two
Three
File Input
Multiple File Input
Submit
Normal Form
Email
Password
Login
Inline Form
Email
Password
Login
Horizontal Form
Email
Password
Login
Input Sizes
Small Input
Normal Input
Large Input
Grid Inputs
Multiple Grid Inputs
Submit
Icon/Text Groups
.00
Submit
Button Groups
Search
Submit
Submit
Dropdown Groups
Profile
3
News
1
Messages
More
Edit Profile..
Profile
3
News
1
Messages
Profile
3
News
1
Messages
More
Edit Profile..
Profile
3
News
1
Messages
More
Edit Profile..
Submit
CSS Switches
Colors
Default
Primary
Info
Success
Warning
Danger
Sizes
Small
Small
Normal
Normal
Large
Large
Shapes
Rounded
Square
Rounded
Square
Rounded
Square
Disabled
Primary
Warning
Rounded
Square
CSS Radios
Colors
Yes
No
Yes
No
Yes
No
Yes
No
Yes
No
Yes
No
Sizes
Agree
Disagree
Agree
Disagree
Agree
Disagree
Agree
Disagree
Agree
Disagree
Agree
Disagree
Disabled
Yes
No
Agree
Disagree
CSS Checkboxes
Colors
Default
Primary
Info
Success
Warning
Danger
Sizes
Small
Small
Normal
Normal
Large
Large
Shapes
Square
Rounded
Square
Rounded
Square
Rounded
Disabled
Primary
Warning
Rounded
Square
Apps
Backend
Frontend


--- title: Form Elements (Custom) section: Components ---
Nest
``````
insideform-file
to create a variety of custom file inputs. The element with theform-file
class should wrap whatever element you want to trigger the operating system's file browser.
Add
custom-control-primary
to acustom-control
to increase the visual hierarchy (makes text bold) of acustom-control
? See https://github.com/liferay/clay/issues/2813
select.form-control
instead. This is only here for documentation purposes.
.form-file
instead. This is here only for documentation purposes.
To get custom-file-control
styles to display, you'll need to add lang="en"
to the html element or set the Content-Language HTTP header.


| 005:045 Khan | : |
And We ordained therein for them: "Life for life, eye for eye, nose for nose, ear for ear, tooth for tooth, and wounds equal for equal." But if anyone remits the retaliation by way of charity, it shall be for him an expiation. And whosoever does not judge by that which Allah has revealed, such are the Zalimun (polytheists and wrong-doers - of a lesser degree). |
| 005:045 Maulana | : |
And We prescribed to them in it that life is for life, and eye for eye, and nose for nose, and ear for ear, and tooth for tooth, and for wounds retaliation. But whoso forgoes it, it shall be an expiation for him. And whoever judges not by what Allah has revealed, those are the wrongdoers. |
| 005:045 Pickthal | : |
And We prescribed for them therein: The life for the life, and the eye for the eye, and the nose for the nose, and the ear for the ear, and the tooth for the tooth, and for wounds retaliation. But whoso forgoeth it (in the way of charity) it shall be expiation for him. Whoso judgeth not by that which Allah hath revealed: such are wrong-doers. |
| 005:045 Rashad | : |
And we decreed for them in it that: the life for the life, the eye for the eye, the nose for the nose, the ear for the ear, the tooth for the tooth, and an equivalent injury for any injury. If one forfeits what is due to him as a charity, it will atone for his sins. Those who do not rule in accordance with GOD's revelations are the unjust. |
| 005:045 Sarwar | : |
In the Torah We made mandatory for the Jews these rules of retaliation: Capital punishment for the murder of a person; an eye for an eye, a nose for a nose, an ear for an ear, a tooth for a tooth, and a just compensation for a wound. If the perpetrator is forgiven by the affected party, this will be an expiation of his crime. Those who do not judge according to what God has revealed are unjust. |
| 005:045 Shakir | : |
And We prescribed to them in it that life is for life, and eye for eye, and nose for nose, and ear for ear, and tooth for tooth, and (that there is) reprisal in wounds; but he who foregoes it, it shall be an expiation for him; and whoever did not judge by what Allah revealed, those are they that are the unjust. |
| 005:045 Sherali | : |
And therein WE prescribed for them: Life for life, and eye for eye, nose for nose, ear for ear, and tooth for tooth, and for other injuries equitable retaliation. And whoso waives the right thereto, it shall be an expiation for his own sins; and whoso judges not by what ALLAH has sent down, these it is who are wrongdoers. |
| 005:045 Yusufali | : |
We ordained therein for them: "Life for life, eye for eye, nose or nose, ear for ear, tooth for tooth, and wounds equal for equal." But if any one remits the retaliation by way of charity, it is an act of atonement for himself. And if any fail to judge by (the light of) what Allah hath revealed, they are (No better than) wrong-doers. |
Concepts/Themes Covered: أركان الإسلام > التوحيد > الكافرون > صفات الكفار Pillars of Islam> Islamic> The Disbelievers> The Characteristics of the Disbelievers الإيمان > الكتب السماوية الأخرى > الكتب المقدسة Faith> The Other Divine Books> The Holy Books الدعوة إلى الله > حدودها > التساهل مع المسالمين The Call for Allah> Its Limits> Lenient with the Peace-Loving القرآن الكريم > وجوب الحكم به The Holy Quran> Having to Judge by what Allah has Revealed العمل > العمل الطالح > القتل والقتال > قتل النفس التي حرّم الله Action(Work)> Bad Deeds>Killing and Fighting> Killing Anyone whose Killing Allah has Forbidden تنظيم العلاقات المالية > الصدقة Organizing Financial Relationships>Charity العلاقات القضائية > أحكام قانونية > الجزاء > جزاء السيئة Judicial Relationships>Legal Rules>The Penalty>For Sin العلاقات القضائية > أحكام قانونية > الجزاء > جزاء القاتل Judicial Relationships>Legal Rules>The Penalty>For the Murderer العلاقات القضائية > أحكام قانونية > الجزاء > القصاص Judicial Relationships>Legal Rules>The Penalty>The Punishments العلاقات القضائية > أحكام قانونية > العفو > الإعفاء Judicial Relationships>Legal Rules>Forgiveness>The Exemption العلاقات السياسية والعامة > الحكم General and Political Relationships>The Judgement الديانات > أهل الكتاب: ( اليهود و النصارى) > وجوب التساهل معهم(مع غير المحاربين) Religions> The People of the Book (the Jews and the Christians)> The Necessity to be Easy with them (with the Non-Fighters)
This tool uses eight English parallel translations for the Holy Quran imported from Mr. Clay Smith. You can also visit Qurany Concepts for browsing the Quran themes or topics. If you want to search the Holy Quran for keywords, please visit Qurany Keywords.


Question:
In this class, we will learn about...
Question:
1. Check for the GCF first. ... 2. Multiply the quadratic term and the constant term. ... 3. Write down all the factors of the result, in pairs. ... 4. From this list, find the pair that adds to produce the coefficient of the linear term.
...


CLA 4
ADD 5
STO 6
HTR
0:
1:
2:
3:
4:
5:
6:
Instruction Location Counter:
Instruction Register:
Storage Register:
Accumulator:


The mood Example Application
The mood example application, located in the tut-install/examples/web/mood/ directory, is a simple example that displays Duke’s moods at different times during the day. The example shows how to develop a simple application by using the @WebServlet, @WebFilter, and @WebListener annotations to create a servlet, a listener, and a filter.
Components of the mood Example Application
The mood example application is comprised of three components: mood.web.MoodServlet, mood.web.TimeOfDayFilter, and mood.web.SimpleServletListener.
MoodServlet, the presentation layer of the application, displays Duke’s mood in a graphic, based on the time of day. The @WebServlet annotation specifies the URL pattern:
@WebServlet("/report") public class MoodServlet extends HttpServlet { ...
TimeOfDayFilter sets an initialization parameter indicating that Duke is awake:
@WebFilter(filterName = "TimeOfDayFilter", urlPatterns = {"/*"}, initParams = { @WebInitParam(name = "mood", value = "awake")}) public class TimeOfDayFilter implements Filter { ...
The filter calls the doFilter method, which contains a switch statement that sets Duke’s mood based on the current time.
SimpleServletListener logs changes in the servlet’s lifecycle. The log entries appear in the server log.
Building, Packaging, Deploying, and Running the mood Example
You can use either NetBeans IDE or Ant to build, package, deploy, and run the mood example.
To Build, Package, Deploy, and Run the mood Example Using NetBeans IDE
- From the File menu, choose Open Project.
- In the Open Project dialog, navigate to:
tut-install/examples/web/
- Select the mood folder.
- Select the Open as Main Project check box.
- Click Open Project.
- In the Projects tab, right-click the mood project and select Build.
- Right-click the project and select Deploy.
- In a web browser, open the URL http://localhost:8080/mood/report.
The URL specifies the context root, followed by the URL pattern specified for the servlet.
A web page appears with the title “Servlet MoodServlet at /mood” a text string describing Duke’s mood, and an illustrative graphic.
To Build, Package, Deploy, and Run the mood Example Using Ant
- In a terminal window, go to:
tut-install/examples/web/mood/
- Type the following command:
ant
This target builds the WAR file and copies it to the tut-install/examples/web/mood/dist/ directory.
- Type ant deploy.
Ignore the URL shown in the deploy target output.
- In a web browser, open the URL http://localhost:8080/mood/report.
The URL specifies the context root, followed by the URL pattern.
A web page appears with the title “Servlet MoodServlet at /mood” a text string describing Duke’s mood, and an illustrative graphic.


A simple way of fitting detection functions to distance sampling data for both line and point transects. Adjustment term selection, left and right truncation as well as monotonicity constraints and binning are supported. Abundance and density estimates can also be calculated (via a Horvitz-Thompson-like estimator) if survey area information is provided.
| Version: | 0.9.7 |
| Depends: | R (≥ 3.0), mrds (≥ 2.1.15) |
| Suggests: | testthat |
| Published: | 2017-07-03 |
| Author: | David Lawrence Miller |
| Maintainer: | Laura Marshall <lhm at st-andrews.ac.uk> |
| BugReports: | https://github.com/DistanceDevelopment/Distance/issues |
| License: | GPL-2 | GPL-3 [expanded from: GPL (≥ 2)] |
| URL: | http://github.com/DistanceDevelopment/Distance/ |
| NeedsCompilation: | no |
| Materials: | README NEWS |
| In views: | Environmetrics |
| CRAN checks: | Distance results |
| Reference manual: | Distance.pdf |
| Package source: | Distance_0.9.7.tar.gz |
| Windows binaries: | r-devel: Distance_0.9.7.zip, r-release: Distance_0.9.7.zip, r-oldrel: Distance_0.9.7.zip |
| OS X binaries: | r-release: Distance_0.9.7.tgz, r-oldrel: Distance_0.9.7.tgz |
| Old sources: | Distance archive |
| Reverse suggests: | dsm |
Please use the canonical form https://CRAN.R-project.org/package=Distance to link to this page.


#include <HashSetItem.hpp>
Class representing HashSet with key of type int and value of custom type pointer to Item
◆ HashSetItem() [1/2]
| HashSetItem::HashSetItem |
( |
size_t |
c | ) |
|
Constructor.
Constructor with capacity fields
- Parameters
-
◆ HashSetItem() [2/2]
| HashSetItem::HashSetItem |
( |
const HashSetItem & |
hashSetItem | ) |
|
Constructor.
Copy constructor
- Parameters
-
◆ begin()
| HashSet< size_t , Item * >::Iterator HashSet::begin |
( |
| ) |
const |
|
inherited |
Collection starting point.
Defining collection starting point, requested by iterator design pattern
- Returns
- Iterator of the collection
◆ end()
| HashSet< size_t , Item * >::Iterator HashSet::end |
( |
| ) |
const |
|
inherited |
Collection ending point.
Defining collection ending point, requested by iterator design pattern
- Returns
- Iterator of the collection
◆ findItemLP()
| Item * HashSet::findItemLP |
( |
const size_t & |
k | ) |
|
|
inherited |
Item searching.
First item with the specified key is searched, according to Linear Probing algorithm
- Parameters
-
- Returns
- value of searched item
◆ findItemQP()
| Item * HashSet::findItemQP |
( |
const size_t & |
k | ) |
|
|
inherited |
Item searching.
First item with the specified key is searched, according to Quadratic Probing algorithm
- Parameters
-
- Returns
- value of searched item
◆ get()
| HashNode< size_t , Item * > * HashSet::get |
( |
size_t |
pos | ) |
const |
|
inherited |
Getting an item.
The item of the set, at the given position, is returned.
- Parameters
-
| [in] | pos | position of the item to return |
- Returns
- pointer to returned HashNode
◆ getCapacity()
| size_t HashSetItem::getCapacity |
( |
| ) |
const |
Getting set capacity.
Maximum number of items in the set is returned
- Returns
- set capacity
◆ hashCode()
| size_t HashSet::hashCode |
( |
const size_t & |
k | ) |
const |
|
inherited |
Hash function.
Function defined through % operator. The index of the set to put item with the specified key is calculated with the following formula: $$ index= |k| \mbox{ % } capacity $$
- Parameters
-
- Returns
- calculated index
◆ insertItemLP()
| size_t HashSet::insertItemLP |
( |
const size_t & |
k, |
|
|
const Item * & |
v |
|
) |
| |
|
inherited |
Linear Probing insertion.
Function performing insertion of a node, with specified key and value, with Linear Probing algorithm. 1) if set is full, function returns; 2) starting index (named ( hashIndex ) is calculated through hash function; 3) if location is available, node is inserted at that index; 4) if location is not available, index is changed linearly with the formula: $$ hashIndex = hashIndex + j, j=0,1,2,... $$ until an available location is found.
- Parameters
-
| [in] | k | reference to key |
| [in] | v | reference to value |
- Returns
- attempts before inserting item (only for performance testing purpose)
◆ insertItemQP()
| size_t HashSet::insertItemQP |
( |
const size_t & |
k, |
|
|
const Item * & |
v |
|
) |
| |
|
inherited |
Quadratic Probing insertion.
Function performing insertion of a node, with specified key and value, with Quadratic Probing algorithm. 1) if set is full, function returns; 2) starting index (named ( hashIndex ) is calculated through hash function; 3) if location is available, node is inserted at that index; 4) if location is not available, index is changed with the formula: $$ hashIndex = hashIndex + j^2, j=0,1,2,... $$ until an available location is found.
- Parameters
-
| [in] | k | reference to key |
| [in] | v | reference to value |
- Returns
- attempts before inserting item (only for performance testing purpose)
◆ isAvailable()
| bool HashSetItem::isAvailable |
( |
size_t |
i | ) |
|
|
overridevirtual |
Checking location availability.
The function checks if position specified is available for inserting new items.
- Parameters
-
| [in] | i | position of the set to be checked |
- Returns
- true if available, false otherwise
Reimplemented from set::HashSet< size_t, Item * >.
◆ isEmpty()
| bool HashSet::isEmpty |
( |
| ) |
const |
|
inherited |
Check set emptiness.
Check if items number is zero
- Returns
- true if set is empty, false otherwise
◆ keys()
| size_t * HashSet::keys |
( |
| ) |
|
|
inherited |
Getting all keys.
All keys of the set are returned.
- Returns
- array of keys of the set
◆ operator[]()
| const HashNode< size_t , Item * > & HashSet::operator[] |
( |
size_t |
index | ) |
const |
|
inherited |
Operator[] overloading.
Defining operator [] behaviour
- Parameters
-
| [in] | index | position of item to return |
- Returns
- reference to HashNode at given position
◆ removeItemLP()
| Item * HashSet::removeItemLP |
( |
const size_t & |
k | ) |
|
|
inherited |
Item removal.
Item with the specified key is removed, according to Linear Probing algorithm.
- Parameters
-
- Returns
- value of removed item
◆ removeItemQP()
| Item * HashSet::removeItemQP |
( |
const size_t & |
k | ) |
|
|
inherited |
Item removal.
Item with the specified key is removed, according to Quadratic Probing algorithm.
- Parameters
-
- Returns
- value of removed item
◆ setAvailable()
| void HashSetItem::setAvailable |
( |
size_t |
i | ) |
|
|
overridevirtual |
Setting location availability.
The function makes position specified available for inserting new items.
- Parameters
-
| [in] | i | position of the set to be checked |
Reimplemented from set::HashSet< size_t, Item * >.
◆ size()
| size_t HashSet::size |
( |
| ) |
const |
|
inherited |
Get set size.
Get the number of items in the set
- Returns
- number of items
◆ sprint()
| string HashSetItem::sprint |
( |
| ) |
|
|
overridevirtual |
Print information on a string.
A string with information of all items of the set is built.
- Returns
- information string
Implements set::HashSet< size_t, Item * >.
◆ values()
| Item * * HashSet::values |
( |
| ) |
|
|
inherited |
Getting all values.
All values of the set are returned.
- Returns
- array of values of the set
The documentation for this class was generated from the following files:
- C:/Users/famari_carlo/source/repos/SetHashTable/include/HashSetItem.hpp
- C:/Users/famari_carlo/source/repos/SetHashTable/src/HashSetItem.cpp


[[nValidTabs_]] valid metadatas
Change Browser Tabs Status
Note: Click the button above to propagate
VALID (green) browser tab status values on
the right hand side to the fake phonehub manager. Note that if a field is
empty or favicon is set to NONE, then that corresponding tab will not be
sent, and the background will be grey.


Preparation time
less than 30 mins
Cooking time
10 to 30 mins
Serves
Serves 1-2
Dietary
For the sweet potato pie, cook the sweet potato in boiling water for 6-7 minutes, or until tender. Drain, then mash with the vanilla seeds and brown sugar until smooth and creamy.
Spoon some of the sweet potato mixture into a 10cm/4in chefs' ring until the ring is two-thirds full.
In a large bowl, whisk the egg whites until soft peaks form when the whisk is removed from the bowl, then gradually whisk in the caster sugar until stiff and glossy. Spoon the meringue into a piping bag and pipe over the top of the sweet potato mash. Using a mini blow torch, brown the top of the meringue until golden-brown.
For the pine nut brittle, tip the sugar into a small dry frying pan and when it starts to melt, add the pine nuts and stir frequently until the nuts are toasted and the sugar is caramelised and a nutty brown colour. Pour onto silicone paper to cool.
To serve, carefully remove the chefs' ring. Break up the cooled pine nut brittle and scatter around the edges of the plate.


Depay calls for action after racist chants at Dutch game
by BeSoccerNetherlands international Memphis Depay called upon UEFA to act after racist chants halted a Dutch second-division match on Sunday.
The incident occurred at a Dutch second-tier game between Excelsior Rotterdam and Den Bosch, with Excelsior winger Ahmad Mendes Moreira walking off the pitch after hearing racist chants from the stands. The referee stopped the match, but the teams returned to complete the game.
"I'm sick and tired to see these images over and over! When is it going to stop!!?," Depay wrote on Twitter. "@UEFA what we going to do? Specially with the upcoming @EURO2020."
Featured links
- Ballon d'Or winner already been decided
- The latest football transfers news and rumours
- Possible 'Clasico' in the Spanish Supercup final
- Who has the most free-kicks goals: Messi or Cristiano?
The Dutch football association insisted that its protocol had been correctly applied. "We are still looking for the culprits," it said in a statement.
Depay missed out through injury as the Netherlands qualified for Euro 2020 on Saturday with a 0-0 draw against Northern Ireland in Belfast.


Danny Goulter
Learning to Code
Technical Posts
CSS - Concepts: Margin, Padding, and Borders
September 11, 2021
Javascript: Making the Web feel Alive - How it works with HTML and CSS and an overview of the The Dom.
September 20, 2021
Debugging and Problem Solving in Tech and Beyond
September 24, 2021
Home
Core Concepts


--- layout: post title: Enhancing Agile Portfolio Management experience with Backlog Mapping date: '2013-07-11T14:00:00.001+01:00' author: Matteo Emili tags: modified_time: '2013-07-11T14:00:35.502+01:00' blogger_id: tag:blogger.com,1999:blog-9050180307874313601.post-346416003149068715 blogger_orig_url: https://mattvsts.blogspot.com/2013/07/enhancing-agile-portfolio-management.html ---
Yesterday the Team Foundation Service team released the Sprint 50 build, and one of the features shipped is the Backlog Mapping.
Nothing too big or hard to explain: if you are creating a Portfolio within Team Foundation Service, you would surely get a flat list of Features and a flat list of PBI/User Stories.
With the Backlog Mapping (which is just a pane on the right side), you can drag&drop the PBI you want to be child of a certain Feature, and it is going to be automatically linked.
It is a very nice and effective feature, which combines a strong User Experience with a tangible result.


PHOTOS: Buhari hosts speakers of 36 state Houses of Assembly
by Agency ReportPresident Muhammadu Buhari received Speakers of the 36 states’ Houses of Assembly during a courtesy visit at the State House, Abuja, on Thursday.
See the photographs, courtesy, @NigeriaGov:


---
layout: page
title: Projects
permalink: /projects/
---
{% if false %}
A creative production company producing arts, cultural and heritage projects across the UK.
Fete Day works with artists, production teams, historians and scientists to bring to life
outstanding and innovative projects – festivals, outdoor performances, exhibitions,
media projects and engagement. Exciting projects in stunning venues. BBC Lincoln 16 includes both a civic
commemoration outdoor event on the 100th anniversary of the Battle of the Somme at
Lincoln Castle, and a newly commissioned outdoor performance Green Fields Beyond,
with processions and large scale community performance in central Lincoln on 15th and 16th July 2016.
At Oxford Castle we are displaying the outstanding work of a group of young volunteers
who have taken part in six months of research and photographic skills training to
produce the outdoor exhibition Through the Lens.
Fete Day is also supporting the Story Museum, Oxford with the production of Alice’s Day on 4 July 2016
On Friday 15 and Saturday 16 July 2016 Lincoln plays host to two days of outdoor
arts events to mark the 100th anniversary of the First World War. Working with
BBC Radio Lincolnshire we are producing professionally-led mass participation live
performances in Lincoln to commemorate the anniversary of the landmark invention
of the tank. Alongside the main events there is a programme of heritage talks and
activities.
The large scale outdoor arts event will be organised by the same team
behind the award winning Lipdub Lincoln Project of 2013, when BBC Radio Lincolnshire
brought thousands of participants onto the streets of Lincoln for a highly acclaimed
public arts happening. Supported by the BBC, Arts Council England and the Heritage Lottery Fund.
http://www.lincoln16greenfieldsbeyond.com/
An Exhibition exploring life in Oxfordshire during the First World War as
seen through the eyes of young people living in the county today.
A major outdoor exhibition at the Oxford Castle, the project is the
result of a 6 month collaboration between local young people, and heritage
and media professionals. Supported by the Heritage Lottery Fund. Partners
include Museum of Oxford, University of Oxford, Soldiers of Oxfordshire
and 66 Men of Grandpont.
https://www.facebook.com/OxfordImagesofWW1/
Alice’s Day is a city wide celebration of Oxford’s links with Charles Dodgson
and the Alice in Wonderland story. Working for the Story Museum we supported
the delivery of creative events throughout the city.
As part of Lincoln’s Great Magna Carta weekend on Saturday 13 and
Sunday 14 June 2015, Steep Hill came alive with entertaining tales
from the time of Magna Carta and its impact through the centuries and around
the world. Delivered in partnership with BBC Radio Lincolnshire.
The project focused on the life and times of Sir Isaac Newton in Grantham
and South Kesteven, where he was born at Woolsthorpe Manor in 1643. Fascination
with Sir Isaac Newton spans the world. However while his scientific and
mathematical writings are known in depth, some of the history about his life
and his times in Lincolnshire lies unexplored in local archives and local places.
This project was born out of a desire by local people to dig deeper and discover
those hidden stories. Supported by the Heritage Lottery Fund.
http://www.newtontreeparty.co.ukLatest news
Current projects
BBC Lincoln 16 - Green Fields Beyond
https://www.facebook.com/LincolnLipDub/
Through the Lens: Oxfordshire and the First World War
http://fetedaythings.tumblr.com
Past projects
Alice's Day
Steep Hill Stories
Lincolnshire's Age of Scientific Discovery
https://www.youtube.com/watch?v=pHG7hXADXOs


Kilovolt Blog!
The shocking power of static pages
Blog
Stats
New Article
Blog Stats
Total articles:
Total words:
Author Stats
Details on who is writing, and how much writing they are doing...


Sell quantity 1
Your quantity
Add quantity
Price in FIAT
Income in FIAT
Buy quantity
Add to
investing money
Investing money
Buy price
Selling price
Difference in price
New quantity
Difference quantity
Difference in %
Bonus
Selling income
Sell quantity 2
Your quantity
Add quantity
Price in FIAT
Income in FIAT
Buy quantity
Add to
investing money
Investing money
Buy price
Selling price
Difference in price
New quantity
Difference quantity
Difference in %
Bonus
Selling income


+++ draft = false date = "2009-11-05T21:06:48-02:00" title = "Django gotcha: the urls.py needs to define the 404 view" tags = ["cookbook", "Django"] created = "2009-11-05T20:59:29-02:00" modified = "2009-11-08T21:38:21-02:00" permaLink = "http://play.pixelblaster.ro/blog/archive/2009/11/05/django-gotcha-the-urls-py-needs-to-define-the-404-view" author = "Tiberiu Ichim" aliases = [ "/blog/archive/2009/11/05/django-gotcha-the-urls-py-needs-to-define-the-404-view" ] +++
Probably this is documented somewhere in the Django docs, but, I mean, who has time to read the docs? :-) In the urls.py file for my project I didn't do a
from django.conf.urls.defaults import *
because that's just bad style. Instead I've just imported what I needed: patterns, include and url. Later on I got this error in my email:
Traceback (most recent call last): File "/home/zope/djangoprojects/lib/python2.5/site-packages/Django-1.1.1-py2.5.egg/django/core/handlers/base.py", line 118, in get_response callback, param_dict = resolver.resolve404() File "/home/zope/djangoprojects/lib/python2.5/site-packages/Django-1.1.1-py2.5.egg/django/core/urlresolvers.py", line 263, in resolve404 return self._resolve_special('404') File "/home/zope/djangoprojects/lib/python2.5/site-packages/Django-1.1.1-py2.5.egg/django/core/urlresolvers.py", line 255, in _resolve_special callback = getattr(self.urlconf_module, 'handler%s' % view_type) AttributeError: 'module' object has no attribute 'handler404'
Just looking at the error I could determine the cause: my urlconf module (urls.py) didn't have a handler404 view defined, so I just gave up and replaced my specific imports with the asterisk import.
On a side note, what's up with Django logging? By default, the only way to log errors in production environments is by email. Really!? If I would want emails, I'd setup the syslog to email me those entries. I already have the logwatch emailing me stuff that happens on my server. One step above is django-db-log, which I haven't tried yet, but which seems to be logging errors to the db. Word is that real logging, using the logging python module, will be introduced in Django 1.2.


Your browser does not support HTML5 Canvas.
Lines cleared:
0
Game ends in
Control
Action
Left/right arrows
Move piece left/right
Up arrow, X
Rotate piece clockwise
Z
Rotate piece counterclockwise
Down arrow
Accelerate piece downwards
Space
Immediately drop piece


← Home / Complete-Works / →
***
Work and its Secret
The Powers of the Mind
Hints on Practical Spirituality
Bhakti or Devotion
Jnana-Yoga
Practical Vedanta and other lectures
Reports in American Newspapers


Your Bag - 1 item
Product code: SS022592000
Fake
An easy-to-use dive computer with freedive mode and pay fast integration.
One Size
Subtotal:
R 825.00
Delivery (Standard - ∞): Change delivery method
Free
Need help? Call free 01234 567 890


A tribe of lost gamers, heard of your mad gaming skills
They’re looking to bring you in but don’t know if they can trust you. How do you convince them?


One reason bullys bully others is because things are going on at home so to take out their anger they put it on an innocent student when that is not necessary.
How to stop this from happening
How to stop bullying from happening is instead of taking out that anger inside on a innocent student try to talk to a parent,trusted teacher, or counsiler. Its about time we stand up the voiceless and if you are getting bullied go to someone you trust you know they can help you.
What people are saying...
Margaret E.
"This is fantastic! Thanks so much guys!"
Fred S.
"Bootstrap is amazing. I've been using it to create lots of super nice landing pages."
Sarah W.
"Thanks so much for making these free resources available to us!"


Spirit – our modular numerical optimizations spin code – is a is a Spin Dynamics code developed in large part at the PGI-1 at Forschungszentrum Jülich, which simulates magnetic structures on an atomistic level and provides live visualisations during simulations.
This code is written in platform-independent C++, the build process is platform-independent as well, due to the use of CMake. This code has been tested on Windows 7 and 10, OS X Yosemite and upwards and CentOS 6. It should run on most other machines as well.
During development of the Spirit core, a key focus was the independence from third party libraries. Due to this, the core can be used in almost any context and for various purposes.
Spirit utilizes a modular class structure to enable flexible workflows. This allows the core to be extended for your specific simulation requirements and to be used with a variety of user interfaces.
Spirit comes with an optional graphical user interface (GUI), based on Qt and OpenGL. For use on clusters and other headless systems, a command line interface is also available. Due to the modular structure and the highly portable core library, a wide variety of further UIs are possible.
A web-based interface has been written, which runs in most modern browsers and even on some mobile devices. The Spirit core can be transpiled to JavaScript using Emscripten, allowing you to simulate spin dynamics right in your browser.


Mourinho Reveals Where He Will Retire
by SL InternationalJust days after being appointed new Tottenham Hotspur manager, Jose Mourinho has revealed where he plans to retire.
Read: The Highest-Paid EPL Managers After Mourinho Return
Mourinho was appointed new Spurs boss on Thursday, replacing the outgoing Mauricio Pochettino who had been relieved of his duties following a poor run of form.
The Tottenham job is the Portuguese tactician's fourth in the Premier League, following two stints with London rivals Chelsea and one with Manchester United, the latter of which was his most recent, and he was recently asked if it would be his last in England.
“I would love that to be the case. I would love to stay for many years," Mourinho said, as reported by FourFourTwo.
Earn Airtime & Data With Soccer Laduma’s Social Media App - Download Now
“I say many years but I know realistically how football is.
Mourinho also revealed that he hopes to emulate his predecessor's time at the club, before returning to Portugal where he could retire at home-town club Vitoria Setubal.
“If I could do a Mauricio for five-and-a-half years, it would be amazing. I would be 61 – then 10 more years. Vitoria Setubal in Portugal maybe the last job, the 56-year-old added.
Read: Mourinho's 10 Most Expensive Signings Ever
Mourinho also previously enjoyed spells with Porto, Inter Milan and Real Madrid, winning the UEFA Champions Legaue with each of the former two clubs.


Installation¶
Installing KENV¶
The installation requires the Python.
Installation steps:
Install
kenv
pip install kenv
Alternatively, instead of using
pip
, you can also install KENV from the souces, by cloning the code from Github, and typingpython setup.py install
.Optional: To be able to run interactive simulations, write text and mathematical formulas at the same time, install the optional package
jupyterlab
:pip install jupyterlab
Optional: We recommend installing all additional packages from the requirements:
pip install -r requirements


7.8. Transaction Management¶
Table of contents
Provides a transaction management function for resources (database and message queue) that require transaction control.
7.8.1. Function overview¶
<IP_ADDRESS>. Transaction control is possible for various resources¶
Transaction management is possible for resources such as databases and message queues that require transaction control.
Refer to the following for details of transaction control of database.
If there is a requirement for transaction control for a new resource, the control can be easily realized by implementing the interface defined by this function. For details, see Add transaction target resource.
7.8.2. Module list¶
<dependency>
<groupId>com.nablarch.framework</groupId>
<artifactId>nablarch-core-transaction</artifactId>
</dependency>
<dependency>
<groupId>com.nablarch.framework</groupId>
<artifactId>nablarch-core-jdbc</artifactId>
</dependency>
7.8.3. How to use¶
<IP_ADDRESS>. Perform transaction control for the database¶
Database transaction control can be realized by adding transaction control using JDBC to the component definition file. It is assumed that the connection has been configured to the database.
For details on how to connect to the database, see Connection configuration for the database.
To use a small transaction such as 1 SQL unit, configure and implement referring to Execute SQL in a transaction different from the current transaction.
- Example of component definition
Define the factory class ( JdbcTransactionFactory ), which generates transaction class for JDBC, in the component configuration file.
<!-- Configure JdbcTransactionFactory as a component --> <component class="nablarch.core.db.transaction.JdbcTransactionFactory"> <!-- Isolation level --> <property name="isolationLevel" value="READ_COMMITTED" /> <!-- Transaction timeout in seconds --> <property name="transactionTimeoutSec" value="15" /> </component>
Tip
Basically, the class configured above is not used directly. If transaction control is required, use Transaction Control Handler.
<IP_ADDRESS>. Apply transaction timeout for the database¶
The transaction timeout function is enabled by configuring the transaction timeout seconds for JdbcTransactionFactory. If the transaction timeout seconds is 0 or less, the transaction timeout function is disabled.
Tip
For functions such as batch applications that process large amounts of data in bulk, the processing delays are handled by monitoring the end delay of the job scheduler instead of using the transaction timeout function.
This is because in batch applications, it is sufficient if the overall processing time is within the expected range, and there is no problem even if delays occur in individual transactions. For example, even if a particular transaction takes 1 minute due to a lack of resources in the database, it is determined that there is no problem if the entire process is finished within the expected time.
- Start check timing of transaction timeout
( Transaction#begin() ) starts checking at the start of the transaction.
Checks for timeouts for each transaction if multiple transactions are used (for example, if another transaction is executed in a transaction).
- Check timing of transaction timeout
Checks if the transaction timeout seconds are exceeded at the following timing.
- Before executing the SQL
Throws TransactionTimeoutException if transaction timeout seconds are exceeded before executing the SQL.
Checks before SQL execution because access to the database will result in unnecessary consumption of resources if the transaction timeout seconds have already passed.
- After executing the SQL
Throws TransactionTimeoutException if transaction timeout seconds are exceeded after executing SQL.
Since the transaction timeout seconds may be exceeded during SQL execution or result set conversion, a check is performed even if SQL execution is completed normally.
- When a query timeout exception occurs
Throws TransactionTimeoutException if an exception that indicates a query timeout occurs and transaction timeout number of seconds has been exceeded. Whether it is a query timeout exception is determined using the dialect of the database function.
Control might not come back from the database if a SQL statement with a long processing time (simple slow SQL or SQL waiting for lock release) is executed. Therefore, the number of seconds remaining in the transaction timeout is configured to java.sql.Statement#setQueryTimeout and the execution is forced to be canceled when the transaction timeout seconds is exceeded.
If the query timeout time is configured when executing the SQL, overwrites the configured query timeout time with the remaining transaction timeout seconds when the remaining transaction timeout seconds is smaller than the configured query timeout time.
An example of handling query timeout is shown below.
- Pattern 1
- Configured query timeout time: 10 secondsTransaction timeout remaining seconds: 15 secondsQuery timeout time configured when executing the SQL: 10 secondsTransaction timeout does not occur when query timeout occurs and SQL runtime exception is thrown
- Pattern 2
- Configured query timeout time: 10 secondsTransaction timeout remaining seconds: 5 secondsQuery timeout time configured when executing the SQL: 5 secondsTransaction timeout occurs when query timeout occurs and TransactionTimeoutException is thrown.
Tip
Since this function checks for transaction timeout when accessing a database, it does not cause a transaction timeout when processing delay occurs in a logic that does not access the database.
For example, if an infinite loop occurs in the logic that does not access the database, this function cannot detect the transaction timeout. In such a case, delayed application threads are handled using the application server timeout function, etc.
- Reset timing of transaction timeout time
- The transaction timeout period is reset when a transaction is explicitly started ( when Transaction#begin is called). Note that at the end of the transaction ( Transaction#commit and Transaction#rollback ), the remaining time of transaction timeout is not reset.
7.8.4. Expansion example¶
<IP_ADDRESS>. Add transaction target resource¶
The following steps are required to add transaction target resource.
For example, this applies when performing transaction control using IBM WebSphere MQ as a transaction manager for distributed transactions.
- Add transaction implementation
- Add a factory implementation to generate a transaction
- Realize transaction control using Transaction Control Handler
The detailed procedure is shown below.
- Add transaction implementation
Transaction implements the Transaction interface and implements transaction begin/end process for the transaction target resource.
public class SampleTransaction implements Transaction { private final String resourceName; // Receive the resource name for identifying // the transaction control target resource. // During transaction control, the resource for transaction control must be acquired // from this resource name. public SampleTransaction(String resourceName) { this.resourceName = resourceName; } @Override public void begin() { // Implement the transaction start process for the transaction target resource } @Override public void commit() { // Implement the transaction confirmation process for the transaction target resource } @Override public void rollback() { // Implement the transaction discard process for the transaction target resource } }
- Add a factory implementation to generate a transaction
Create a factory class to generate a transaction. Implement TransactionFactory for the factory class.
This example is a factory class that generates the SampleTransaction created above.
public class SampleTransactionFactory implements TransactionFactory { @Override public Transaction getTransaction(String resourceName) { // Hold a resource name to identify the transaction target // Create and return a transaction object. SampleTransaction transaction = new SampleTransaction(resourceName); return transaction; } }
- Realize transaction control using Transaction Control Handler
Transaction control can be achieved by using the transaction control handler included in the standard handler of Nablarch.
Configure the added factory class to the transaction control handler, as in the following example.
<!-- Transaction control handler --> <component class="nablarch.common.handler.TransactionManagementHandler"> <!-- Transaction factory --> <property name="transactionFactory"> <component class="sample.SampleTransactionFactory" /> </property> </component>


Worked as part of a team to develop a module in Java for a music playing application. Also used the Python based Django framework to build a news web app and the REST framework to support a JSON based web API. Developed a client for retrieving Hacker News headlines using Python and deployed release to PyPi.
On the frontend, I used jQuery with AJAX. Used Angular to build this web site and a nearby restaurant browsing app which integrates with Foursquare API.
Hadoop and Spark to perform sentiment analysis on Twitter data, aggregations on financial data and clustering of Stack Overflow data. I have also performed network analysis on large graphs using iGraph on R; using measures such as centrality and modularity for graph comparison and Gephi for graph visualisation.
Leveraged JDBC for persistence in Java application. Used MongoDB and Firebase Realtime Database. Knowledge of SQL, including experience working with Oracle, Postgres and SQLite.
Worked with robotics for my undergraduate research project, using Gazebo for simulation and Robot Operating System (ROS) for actuator control. Unity3D and the Oculus Rift head-mounted display was then used to remotely control the robot.


The 'New Scan' button launches the Active Scan dialog which allows you
to specify exactly what should be scanned.
The toolbar provides a set of buttons which allow you to start, stop, pause and resume the scan selected.
A progress bar shows how far the scan of the selected site has progressed.
The 'Current scans' value shows how many scans are currently active -
hovering over this value will show a list of the sites being scanned in a popup.
The 'Show scan progress details' button launches the Scan Progress dialog
which allows you to see details about which rules are running, skip individual rules and see a chart of the responses.
Right click menu
Right clicking on a node will bring up a menu which will allow you to:
Exclude from
This menu has the following submenus:
Proxy
This will exclude the selected nodes from the proxy. They will still be proxied via ZAP but will not be shown
in any of the tabs.
This can be used to ignore URLs that you know are not relevant to the system you are currently testing.
The nodes can be included again via the Session Properties dialog
Scanner
This will prevent the selected nodes from being actively scanned.
The nodes can be included again via the Session Properties dialog
Spider
This will prevent the selected nodes from being spidered.
The nodes can be included again via the Session Properties dialog
New Alert...
This will bring up the
Add Alert dialog which allows you to manually record a new
alert against this request.
Show in Sites tab
This will show the selected message in the Sites tab.
Open URL in Browser
This will open the URL of the selected node in your default browser.


Get Statement By Date
Start Date
Enter the start date please.
End Date
Submit
Phone No
Transaction Password
User Type
Normal User
User Type
Premium User
Add Account
Transfer Funds
account_balance_wallet
Withdraw/Deposit
payment
Request Check-Book
receipt
Get Statement By Number
No of statements
Enter the No of statements you want.
Submit
Account no
Account Creation Date
Balance Amount
attach_money
Account Type
Savings account
Account Type
Salary account
Transactions Left
unread messages


{{message}}
Enter First Name:
Enter Last Name:
Enter Birthdate:
Enter Email Address:
Create a Password:
Confirm Password:


Publications¶
Oral Presentations¶
Location |
Presenter(s) |
Date |
Link |
|---|---|---|---|
Ecological Society of America, Virtual |
Anne Thessen |
2020-08-07 |
|
Plant Animal Genome Conference, San Diego CA |
Anne Thessen |
2020-01-12 |
|
Plant Animal Genome Conference, San Diego CA |
Tyson Swetnam |
2020-01-12 |
Poster Presentations¶
Location |
Presenter(s) |
Date |
Link |
|---|---|---|---|
HDR Annual Meeting, Virtual |
Anne Thessen |
2020-04-20 |


{% extends 'partials/dashboard-base.html' %} {% load static %} {% load crispy_forms_tags %} {% block content %}
No clients yet
The filter did not yield results
Are you sure you want to delete ?
This staff and its records will be completely deleted from The system


LED Notifications
Google Chrome Extension
WAITING FOR USER
You Can
Allow / Block
Access To Your Webcam From This Page
Access To Your Webcam Is Required To Use Its LED Indicator
This Extension Reloads All Open Tabs On Installation


WATCH | 'We are ready for trial' - NPA on Uyinene murder case
Luyanda Botha, accused of murdering UCT student Uyinene Mrwetyana, appeared in the Wynberg Magistrate's Court on Thursday.
Prosecutor Rodney de Kock read out the charges against him. Botha faces two counts of rape, one count of murder and defeating the ends of justice.
The case has been transferred to the Western Cape High Court and will resume on November 15.
National Prosecuting Authority (NPA) spokesperson Eric Ntabazalila said the State was ready for the trial to start.


\
We have the best cameras, watches and shirts for you. No need to hunt around, we have all in one place
price:Rs.36000


Hospital Management Page
Home
Infrastructure
Staff
Patients
Appointments
Accounting
Hospital Management Home Page


| channel - a music or sound channel previously allocated via LoadSound, PlayMusic, etc. |
| ResumeChannel is used to continue the playing of a sound sample or music track on the given channel after you have temporarily halted playback on that channel (via PauseChannel). |
|
Graphics 640, 480, 0, 2
musicchannel = PlayMusic ("oohyeahbaby.mp3") ; Replace with a music file on your hard drive! Repeat Print "Press a key to pause the music..." WaitKey PauseChannel musicchannel Print "Press a key to continue the music..." WaitKey ResumeChannel musicchannel Until KeyHit (1) End |


Notes:
This simple tool allows to convert Kebab Cased Words to Un Kebab Cased Words , which might be useful while coding in Angular/Polymer.


---
layout: post
title: "[原创]mysql-触发器trigger-"
date: 2017-03-20 14:42:49
image: '/assets/img/'
description: ""
tags:
-
categories:
- SQL
---
写了一个mysql trigger
create trigger before_insert_song_play_log
before insert on song_play_log
for each row
begin
if new.`play_time`=0 then
set new.`state`=1, new.`play_time` = 20 *
new.`play_num`;
end if;
end;
一直报错，我了个擦擦的要不要这么耍我啊！
On Stop Action problems.
My solution was to create a unique/primary key on the table I want
to insert into (in this case on S_ID), then if my sanity check
fails I change the s_id to 0. This method will only ever create one
duff record with an s_id of 0. Obviously you need to INSERT
ignore!
CREATE TRIGGER sanityCheck
BEFORE INSERT ON my_table
FOR EACH ROW
BEGIN
IF something THEN
SET NEW.S_ID = 0 ;
END IF;
END;
可是我复制到mysql也好，workbench也好，都报错，还是一样连着三个错误：
ERROR 1064 (42000): You have an error in
your SQL syntax; check the manual that corresponds to your MySQL
server version for the right syntax to use near '' at line
11
mysql>
mysql> end if;
ERROR 1064 (42000): You have an error in
your SQL syntax; check the manual that corresponds to your MySQL
server version for the right syntax to use near 'end if' at line
1
mysql>
mysql> end;
ERROR 1064 (42000): You have an error in
your SQL syntax; check the manual that corresponds to your MySQL
server version for the right syntax to use near 'end' at line
1
原来需要demimiter：
DELIMITER $$
create trigger before_insert_song_play_log
before insert on song_play_log
for each row
begin
if new.`play_time`=0
then
set new.`state`=1, new.`play_time` = 20 *
new.`play_num`;
end if;
end$$


--- redirect_from: - /about - /about/ - /projects/28 - /projects/roles/fun - /projects/concepts/drupal - /projects/roles/trainer - /projects/roles/information-architect - /projects/roles/project-manager - /projects/concepts/sso - /projects/concepts/simpleviewer - /projects/concepts/jamit - /projects/concepts/salesforce - /projects/concepts/wordpress - /projects/concepts/responsivemobile - /projects/concepts/juicebox - /projects/concepts/lamp-stack - /projects/concepts/open-atrium ---


debugfs /dev/sdXN- Open the filesystem in read write mode:
debugfs -w /dev/sdXN- Read commands from a specified file, execute them and then exit:
debugfs -f path/to/cmd_file /dev/sdXN- View the filesystem stats in debugfs console:
stats- Close the filesystem:
close -a- List all available commands:
lr


You will play this game with other human players. You and the other players will be arranged in a network.
The diagram on the left shows the players you are directly connected to. You currently have three neighbors.


About Joseph
- Code Fellows: 2019
- Columbia College: General Studies 2014-2015
- U.S. Navy Specialized Training- firearms, leadership, diversity & communication: 2009
Unites States Navy Master-at-Arms (MA): 2009 - 2013
- Exceptional attention to detail
- Supervised and trained multiple Sailors
- Resolved and diffused conflicts
- Created schedules for a team of 14
- Acquired Letter of Commendation from Commanding Officer
Security & Surveillance Observer 2013 - 2019
- Trained multiple team members
- Resolved and diffused conflicts between guests or team members
- Discovered new ways to make the job easier and more efficient
- Spending quality time with my kids.
- Master my craft with coding.
- Drinking black coffee!
- Self-improvement.
- Staying active.
- Intermittent fasting.
- Waking up early.
- Cold Showers.
- Video Games.
- Bugging my brother WHEN my code breaks.


{% include "console/components/placeholders/table_placeholder.html" with
action='Add a sample'
height='100px'
image='console/images/icons/two-tone/two_tone_bottle.svg'
message="No samples for this project. Start adding samples to create a group of samples for a specific organization."
title='No Samples Added'
url='/projects/{{ request.GET.id }}/samples/sample?new=true'
only
%}