SourceTree is a GUI created for Git. It was developed by Atlassian, as if anyone cares
about that. Note that the terms 'Git' and 'SourceTree' are used somewhat
interchangeably in this article. Technically, Git is the underlying version control
system that provides all the functionality and SourceTree is the GUI that we are using
to access it, but for the purposes here they are the same thing.
Sometimes menu item names or other things change to reflect the names of something. In
these cases, I will denote the variable things with <angle brackets>, so a
possible menu item might be described as 'Delete <branch>'. In the program, for
the 'master' branch, the actual menu item would then read 'Delete master'. Simple.
Install
SourceTree can be downloaded from sourcetreeapp.com. Then, open the .dmg and drag the
application do you Applications folder. After that, should you be feeling so
adventurous, you may open the app.
Use
General Notes
Whenever you make changes to a file, you may have to refresh SourceTree so it sees the
changes if you get impatient waiting for it to update. You can either go to "View >
Refresh", or, if you want to get really fancy, ⌘R.
Also, if the instructions say to do something such as create a branch, and there's a
popup with a bunch of options, leave everything not specified as default if you're
confused. Just keep clicking 'Next' or 'Create' or whatever the blue button says.
Opening Repositories
If you have a repo that's already set up for git on your computer, you can open it in
SourceTree by going to "File > Open..." and selecting the appropriate folder. If
not, you'll probably want to clone a repo from somewhere. In that case, go to "File
> New / Clone". The Source Path is the remote URL, which should be listed somewhere
on wherever it's hosted and and in .git (on Assembla, it's next to the repo name on any
of the Git tools). Set the Destination Path to wherever you want your local copy of the
repo to be stored. You can also bookmark repositories by going to "File > Bookmark
Open Repositories..." so they show up on the home screen when you start the app.
Pulling from Remote
In the general case, it's best to pull any changes from the remote repo before working
to make sure you have the latest updates. To do this, simply click the "Pull" button
(the solid down arrow) from the top menu bar. Pulling gets the latest changes from the
remote and automatically merges. Alternatively, you can get the latest updates
without merging them by Fetching (dashed down arrow). You will then have to
merge them into later to see the changes.
Hopefully when pulling updates, there will be no problem and the merge will happen
cleanly. If this happens, then you are done. However, if there have been changes to the
remote and your local repos, then there may be conflicts. See 'Resolving Merge
Conflicts' under the Troubleshooting section for help.
Pushing to Remote
When you want to upload your changes so that everyone can see them and stand in awe of
their glory, you want to push to your remote. To do this, make sure you have committed
all the changes you want to show (you can also make changes to your local copy and not
commit them, and they won't be pushed). If no one's pushed anything of their own since
you last pulled, then the push should go smoothly. If not, and you get the error:
error: failed to push some refs to '<your remote>'
then you have to pull the most recent code, merge it if necessary, and re-push. See
'Resolving Merge Conflicts' under the Troubleshooting section for help.
Branching
Git is designed to make branching easy and painless, unlike certain other systems (I'm
sure SVN has its own merits, such as the fact that everyone uses it. Hey, it's like
Windows!). Branching usually occurs when you want to work on a feature or side project
without disrupting the main line of development. Think of branches as separate lines of
development that are then merged back into the master branch when completed. You can
see what branches you have in the left bar, under 'Branches'. To switch to editing a
specific branch, right click on it and select 'Checkout <branch name>' or just
double click.
In SourceTree, create a new branch by clicking on the Branch button on the top menu
bar. The Current Branch is the branch you are branching off of, and New Branch is the
name of your new branch. Once you create the branch, you will notice that the new
branch and the original are located at the same commit. If you start editing them
however, you'll see where they diverge.
Merging
Merging is the opposite of branching. It's what you do to integrate branches back into
each other (such as when you're done implementing a feature). It is also done to
integrate changes in the remote. This section will focus in merging branches locally.
First, to merge two branches, checkout the branch you want to merge into. This
branch will reflect the changes of both branches while the other won't change. Then,
right click on the branch you want to merge (from the left bar) and choose 'Merge
<this branch> into <branch to merge into>'. If there are merge conflicts,
see 'Resolving Merge Conflicts' under the Troubleshooting section for help. Once that
is done, you'll see the branches coming together in the Log view. You can also delete
the old branches if you want by right clicking on them in the left bar and choosing
'Delete <branch>'.
Tagging
Tags can be used to flag specific commits for later use. This essentially means that
you can keep track of different versions of your work easily. Tagging a commit is easy:
just click the tag button in the top menu bar. You can either tag the commit that your
branch points to (the default), or you can go tag a specific commit. Tags will also be
added to the remote so everyone else can see and use them.
Troubleshooting
Resolving Merge Conflicts
If you try to merge branches or pull from remote, there may be merge conflicts awaiting
you. These are just places where two (or more) people modified the code/documents in
ways that Git can't automatically merge. As such, it is up to you to go in and manually
solve the problem.
Usually (always?) when there are unresolved conflicts, SourceTree will show an
'Uncommitted changes' entry in the log view that shows the conflicted file(s). You can
fix these conflicts in the file itself, or by going to "Actions > Resolve Conflicts
> Launch External Merge Tool". The merge tool is a basic tool that allows you to
compare changes side by side and for each change choose how you want to handle it (see
below for more). Note that you have to quit the merge tool application for the changes
to take effect, and even if you do not change anything, you have to save it. However,
for finer control over how the merge occurs, Git provides some helpful info in the
file. Where the conflicts occur in the file, there should be something that looks like:
<<<<<<< HEAD
This is stuff I did
=======
Someone else wrote where I wanted to
>>>>>>> master
The top part is changes you have made, and the bottom is what was originally there that
conflicted with your additions (or deletions). Just change the file to what you want it
to look like, then commit it as usual. SourceTree may also create a <file>.orig
that has lists the conflicts, but unless these are important to you (and you can also
see all these changes through SourceTree, admittedly with some effort) you can probably
discard it.
If you're working on a Mac with Xcode, you'll be able to use the FileMerge merge/diff
editor by default. However, you may want to download the P4Merge editor from Perforce
as it gives you more control over how the merge is made as well as an easy way to see
changes. You can download it at www.perforce.com/downloads/Perforce/20-User#10.
Note that you only have to move p4merge to your Applications folder, not the other
files there. Then, in SourceTree, under "SourceTree > Preferences... > Diff", you
be able to change the "Visual Diff Tool" and "Merge Tool" to p4merge. When you want to
merge files or just see the differences, they'll be open in p4.
Errors when Pulling
If you get the following error:
error: Your local changes to the following files would be overwritten by merge:
then you have uncommitted changes when trying to pull. Git doesn't want to delete these
changes, so it throws an error. If you don't care about the changes, then click the
Reset button. It will bring up a dialog so you can see what changes you've made, and
you can discard them from there.
More likely though, you'll want to commit your changes and merge them with the updates.
Commit changes as usual, then pull again. If it executes successfully, then you are
done. If it pops up saying that there are merge conflicts, then you have to resolve
those yourself. See the 'Resolving Merge Conflicts' section for help with this.


There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even believable.
There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even believable.
There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even believable.


World No.2 Karolina Pliskova hires Daniel Vallverdu as coach
PRAGUE (AP) - World No. 2 Karolina Pliskova has hired Daniel Vallverdu as coach to replace Conchita Martinez.
Vallverdu, who previously was part of the coaching teams of Andy Murray, Stanislas Wawrinka, Tomas Berdych and Juan Martin Del Potro, will aim to help Pliskova succeed at Grand Slams.
Her best so far at the major tournaments was the US Open final in 2016, when she lost to Angelique Kerber.
Pliskova has a decent season behind her, winning four of her 15 WTA titles. The 27-year Czech decided to part ways with Martinez after she reached the semifinals of the WTA Finals earlier in November.
She said it was time for her “to move forward.”
More AP Tennis: https://www.apnews.com/apf-Tennis and https://twitter.com/AP_Sports
Sign up for Daily Newsletters
Copyright © 2019 The Washington Times, LLC.
Please read our comment policy before commenting.


Hello I am a Colorado based web developer currently studying at Galvanize in Devnver.
Select an image above to view more details or jump to other projects by selecting below.
Implementation of all current HTML5 web standards specifications. JavaScript & CSS's preprocessor skills with SASS. Framework understanding of Bootstrap, Materialize & libraries such as jQuery.
Knowledge of PHP/MySql with practicing TDD & OOP best practices. CMS experience in Wordpress & Drupal specialization in ECommerce/Marketing integrations.
Wanna get in touch or talk about a project?
Feel free to contact me via email at: bencasalino@gmail.com


About Tanzania
Tanzania
Tanzania is a politically stable and generally safe country. In this amazing land, wildlife, beaches, ruins, Mt Kilimanjaro, friendly people, fascinating cultures… Tanzania has all these and more wrapped up in one adventurous, welcoming package.
Captivating Cultures
Wherever you go, it has many opportunities to get to know Tanzania’s people and cultures. Just meet red-cloaked Maasai warriors and spend time with the semi-nomadic Barabaig near Mt Hanang. Experience the hospitality of a local meal or the rhythms of traditional dance.  KiliMaster have thoroughly knowledge about Tanzania and we can tailor your trip according to different requirements, we ensure that you can certainly get what you want and worth what you paid for.
Wonderful Wildlife
Tanzania has more lions than the whole of the rest of Africa put together and is one of the best countries to safari in. The country ranges from high mountain rain forest to Brachystegia woodland to open savannah and plains and swamps. Tanzania is the home to some of Africa’s finest national parks and game reserves, including the Selous, Tarangire, Ngorongoro, Serengeti, Ruaha, Katavi and Rungwa. Two of them are Unesco World Heritage Sites. Tanzania is one of the last countries to offer remote wilderness, huge game populations and traditional safari camps under canvas.
Idyllic Beaches
Tanzania’s Indian Ocean coastline is a magical, with tranquil islands and sleepy coastal villages steeped in centuries of Swahili culture. You can have a wonderful beach holidays on Zanzibar Island, interesting activities including kite-surfing, diving and cultural tours. You can also immerse yourself in languid coastal rhythms, and sit beneath billowing sails on a wooden dhow, to have a moment just spend with yourself.
Mt Killimanjaro
Mt Kilimanjaro is the highest peak in Africa and one of the world’s highest freestanding mountains. As it is called” the roof of Africa”, climbers by the thousands venture here to challenge themselves on its muddy slopes, rocky trails and slippery scree. The rewards? The thrill of standing at the top of Africa, magnificent views of Kilimanjaro’s ice fields, and witnessing the sunrise illuminating the plains far below.


The Outer Worlds Does Colorblind Gaming Right
by Luke PlunkettIt’s cool that many modern games include colorblind options, so that those who struggle to differentiate between various hues can still enjoy the experience to the fullest. It’s even cooler, though, when a game is designed from the ground up with that support in mind.
Obsidian’s Josh Sawyer shared this info in a Tweet earlier in the week, saying that not one but two of the game’s directors had a form of colorblindness:
That basically means the game is relying on stuff like icons, text, spoken dialogue and art to tell you things, without relying solely on “red thing is bad”, or “green thing is good”.
More and more games are including colorblind filters or options these days, where certain colour indicators and shades are changed (Call of Duty has been particularly good at this), but to see a major game designed with it in mind is great.
If you don’t have colorblindness and wonder what the fuss is about, it’s estimated as many as 1 in 8 men have some form of colorblindness (the rates in women are around 1 in 200).


Notice: This form generated is deprecated.
If possible use the new one here.
{% begin_textile %}
This tool will create printable form images as well as a template needed by Scan to process the generated form.
XLSForms are xls or xlsx workbooks that can be used to generate forms for ODK Scan and other ODK tools. Below the XLSForm format for ODK Scan forms is described:
"An example form is available here.":https://docs.google.com/spreadsheet/ccc?key=0Ak1svGcuI9iqdEFiRFpEZ0NTNUMzb0VaUm5sby1pbUE
{% end_textile %}
{% block upload %}
{% endblock %}
{% if error %}
>{{ error }}
{% endif %}
{% for warning in warnings %}
{{ warning }}
{% endfor %}
{% if paths %}
Download Template
After you download the template save the form image into the template folder as form.jpg
For multi-page forms place images of ensuing pages inside the "nextPage" folders.
Form images must be present or Scan will not work.
{% for path in paths %}
{% endfor %}
{% endif %}
{% begin_textile %}
h1. XLS Format documentation
The form converter expects workbooks with 3 sheets: survey, choices and settings.
They are individually described in the sections below.
Most spreadsheet programs have controls in the bottom-left corner where you can create them.
h2. survey
All XLSForms require a survey sheet. The survey worksheet contains the structure and most of the content of the form. It contains the full list of questions and information about how they should be presented. Most rows represent a question; the rest of the rows specify control structures such as groups.
Example survey sheet:
| *type* | *name* | *label* |
| text | user_name| What is your name? |
| integer| user_age | How old are you? |
h3. survey sheet columns:
h4. type
| text | Write-in text input. |
| integer| Integer (i.e. whole number) input.|
| decimal| Decimal input. |
| note | Displays a label with no input. |
| select_one `choice_list` | Multiple choice question; only one answer can be selected. |
| select_multiple `choice_list` | Multiple choice question; multiple answers can be selected.|
h4. Scan specific types:
| tally `number` | Print the specified number of bubbles, and count up how many are filled in. |
| markup | A label that only appears on the printed form. |
| bub_num `digits` | (in development) Create a field for inputing numbers by filling in numeric bubbles |
| bub_word `letters` | (in development) Create a field for writing in words by filling in alphabetic bubbles. |
h4. Groups:
Groups are drawn as columns. Nested groups are drawn as rows within a column. For example:
| *type* | *name* | *label* |
| begin group| | |
| note| | This is in the left column |
| begin group| | |
| note| | These are |
| note| | in rows in |
| note| | the right column |
| end group| | |
| end group| | |
h4. name
The name sets the variable the answer is stored under.
h4. label
The label is typically the question you want to ask. Labels can contain line-breaks (most spreadsheet software allows you to create line breaks using ctrl or alt + enter).
h4. min_height
Form segments are not automatically re-sized to fit text. If the text content is overflowing you can set the min_height to some number of pixels to make the segment larger.
h4. default/constraint
When scanned forms are exported to Collect the default and constraint columns can be used to set default values to be entered as answers, as well as xpath constraints on the answers. [http://opendatakit.org/help/form-design/xlsform/ For more information see the XLSForm documentation.]
h4. font
Using the font column it is possible to customize the font of individual labels.
h4. itemProperties.items_per_row
Limits the number of bubble items in a row. If there is no limit they will fill whatever space is available.
h4. itemProperties.y_offset
If a question's label overlaps its bubbles, it may be necessary to manually set the pixel distance from the top of the segment where the bubbles begin using this property.
h2. choices
The choices sheet allows you to specify choices for use with `select_` type questions.
Example choices sheet:
| *list_name* | *name* | *label* |
| cities | seattle | Seattle |
| cities | paris | Paris |
| cities | new_york| New York|
| cities | mumbai | Mumbai |
h3. choices sheet columns:
h4. list_name
The list_name is used to group choices into lists that can be referenced from the survey sheet. The example above could be referenced as follows:
| *type* | *name* | *label* |
| select_one cities|cities_visited | Which cities have you visited?|
h4. name
The name sets the value that the choice is stored as. This is useful in constraint formulas, and for formatting exports.
h4. label
Label sets the text that is drawn next to each choice bubble. There is a limited amount of space for them.
h2. settings
Example settings sheet:
| *form_title* | *font* |
| Example Form | 12pt Verdana, sans-serif |
h3. settings sheet columns:
h4. form_title
This sets the form title displayed at the top of the form.
h4. title_font
This sets the form title's font.
h4. font
This sets the font of all text used in the form.
h4. qrcode_data
The data to include in the form's qr code. By default it will be the form title.
{% end_textile %}


m.trust
If you're writing a template for a view, use m()
instead.
This method flags a string as trusted HTML.
Trusted HTML is allowed to render arbitrary, potentially invalid markup, as well as run arbitrary Javascript, and therefore the developer is responsible for either:
sanitizing the markup contained in the string, or
acknowledging that the string is authorized to run any code that may be contained within it.
Note that browsers ignore


---
layout: post
title: Varken
description: Storyboard for a TVC directed by Fred De Loof, produced by HAMLET
date: '2019-01-23 12:31:26 +0100'
categories:
- Storyboards
---
Storyboard for Varken, a TVC directed by Fred De Loof, produced by HAMLET for Lidl.


Baum's Bagels
Bagels
$1.25 each
Plain
Sesame Seed
Poppy Seed
Onion
Spreads
$0.25
Make it a Sandwich
$0.50 Add an Egg / $1.00 Add Meat / $0.75 Add Cheese
None
Butter
Cream Cheese
Jam
None
Egg
Egg Whites
None
Bacon
Sausage
Ham
None
Swiss
Havardi
Quantity
Add to Cart
Receipt
Confirm Order


Experiences
Experiences
Internships
Sopra Steria
Vba, Excel
August 2018 - December 2018
During this internship I helped automating the test on a sowftware and i helped doing manual tests
SCC
C#, Xamarin
October 2019 - March 2020
I created a working version of a support application in xamarin
Freelance
CoachGuitar
Swift, Unity, Php, VueJS
April 2020 - Now
I work as a freelance for the french startup CoachGuitar, i'm a fullstack develloper who can work on either of their supports


For the next 24 hours you are able to get Sniper Elite V2 for free!
http://store.steampowered.com/app/63380/
[Get it, keep it forever]
BrainFooLong
Administrator
Great thx.
Topicstarter
Brady_The
Haven't played Dishonored yet? No problem. Right now you can download it for free and play it until Sunday 1pm PDT.
http://store.steampowered.com/app/205100/
[Free Weekend]
Post edited 1 x times, last by
José Ortega
Global Moderator
José Ortega
Global Moderator
Oh god, I had a small heart attack reading the first 4 words, I spent 5$ in the summer sale for that game to play it as soon as I had time which will be soon, I guess, I thought it went free like Sniper Elite v2 and L4D2 did.
5$ is a serious bussiness for me.
BrainFooLong
Administrator
Humble currently have a end summer sale with free games included.
Check it out:
https://www.humblebundle.com/store
juress
Theme Developer
Does anyone want to try out the Evolve alpha? Got a couple of spare keys here.


Leaderboard 728x90
Testing All Ad Zones
Wide Skyscraper 160x600
Our Content goes here
blah, blah
Medium Cube 300x250
Second Cube 300x250
Skyscraper 120x600
Another Content Block
blah, blah
Half Page 300x600


The importer feature allows data to be imported into the grid in csv or json format. The importer can use the native grid menu, or can accept a file from a custom file picker implemented by the user.
The importer can work together with the rowEdit feature to automatically save the imported rows to your server, and show validation errors for any rows that were not accepted by the server.
If you want to allow the user to look at the data before the saves kick off, consider setting the rowEditWaitInterval to -1, which will suppress the auto-save, and require you to manually call flushDirtyRows() once the user has made a save request.
In this example we also use a custom file picker to trigger the import, as well as the grid menu.
For better performance with the following example, you can choose to load the ui-grid.core.js and specific feature files instead:
<script src="/release/ui-grid.core.min.js"></script> <script src="/release/ui-grid.cellnav.min.js"></script> <script src="/release/ui-grid.edit.min.js"></script> <script src="/release/ui-grid.importer.min.js"></script> <script src="/release/ui-grid.row-edit.min.js"></script>
In this example we use the rowEdit feature to save the rows as they are created. As with the rowEdit tutorial, any records with a gender of 'male' give an error, and can be edited to save without error.
[{"name":"John Smith","gender":"male","company":"TestIcon"},{"name":"Jane Doe","gender":"female","company":"FastTruck"}]
import.csv
"Name","Gender","Company" "John Smith","male","TestIcon" "Jane Doe","female","FastTrucks"


{{item.who}}
{{item.what}}
{{item.notes}}
{{item.when}}
Are you sure you want to delete this?
Yes
No
Undo


They are coming...
They are coming...
All these words...
They are here...
And they are all for you.
My dear
My spider
My love
My Sun
Shining Soul
Light of my heart.

Here and there
The stairs and road
Taking us to the Where
The Where we need to go
The Where we were always meant to go.


Developer Week 2014
...but getting waaaay better
With examples from eBaum's World
Right-click, download as.
So what brought about the shift to HTML5 video at all?
* most some of the time
<track>
element
WEBVTT
00:00.001 --> 00:04.000
Awwwww yeah.
00:04.001 --> 00:06.000
caption caption caption
00:06.001 --> 00:12.000
You're not limited to one line either
- you can span multiple lines
- just make sure none of those lines are empty
00:12.001 --> 00:16.000
Usually you don't want timestamps that overlap
00:15.000 --> 00:19.000
But it's ok if they do.
WEBVTT
00:00.001 --> 00:03.000
Captions are cool
00:03.001 --> 00:06.000
Especially when styled
00:06.001 --> 00:12.000
Perhaps style each instance of a voice
00:12.001 --> 00:17.000
That way you can make it easier to differentiate
- between when one person's captions
- And another
video::cue(c.blue-text) { color: #b6dae6 }
video::cue(v[voice="John"]) { color: yellow }
video::cue(v[voice="Jane"]) { color: orange }
WEBVTT
slide-1
00:00.001 --> 00:04.000
{
"title": "JSON!",
"description": "This is some awesome JSON. You could manipulate this with JS.",
"image": "images/json.gif",
"href": "http://json.org"
}
var extraInfo = document.querySelector("#extra-info");
var videoElement = document.querySelector("video");
var textTracks = videoElement.textTracks;
var textTrack = textTracks[0]; // since we only have one
textTrack.oncuechange = function (){
var cue = this.activeCues[0];
if (cue) {
var content;
try {
content = JSON.parse(cue.text);
} catch (e) {
return false;
}
console.log(content);
if (content) {
extraInfo.innerHTML = '' +
' '+ content.title +'
' +
'
'+
' '+ content.description +'' +
'';
} else {
extraInfo.innerHTML = '';
}
}
}
An EME implementation consists of a...
To enable the playing of protected videos like feature-length Hollywood films, developers are forced to rely on plugins or non-standard browser extensions. As Adobe supports Open Web development more and more, we need to find a way to provide this capability to developers.
- Joe Steele, Sr. Computer Scientist at Adobe
We recognize the need for the W3C to respond to the changing landscape of the Web and to reconcile the interests of multiple parties. But ratifying EME would be an abdication of responsibility; it would harm interoperability, enshrine nonfree software in W3C standards and perpetuate oppressive business models.
Joint open letter to W3C
People want to watch video, including movies and TV shows. Browsers must provide the ability to watch video or the browser becomes less and less the tool users need. A number of content owners (in particular film and TV studios) require technical mechanisms to reduce the ways in which people can use that content, such as preventing people from making copies...Browsers must implement DRM in a way that makes the content owners comfortable. Otherwise they won’t allow their content to be viewed through that browser.
DRM and the challenge of serving users - Mitchell Baker (Mozilla)
EME is already being used in production!
WebRTC is a new front in the long war for an open and unencumbered web.
- Brendan Eich, inventor of JavaScript (via HTML5rocks.com)
navigator.getUserMedia({video: true, audio: false}, function(mediaStream) {
var video = document.getElementById('get-user-media');
video.src = window.URL.createObjectURL(mediaStream);
video.onloadedmetadata = function(e) {
console.log('Locked and loaded.');
};
}, errCallback);
var webrtc = new SimpleWebRTC({
// the id/element dom element that will hold "our" video
localVideoEl: 'localVideo',
// the id/element dom element that will hold remote videos
remoteVideosEl: 'remotesVideos',
// immediately ask for camera access
autoRequestMedia: true
});
// we have to wait until it's ready
webrtc.on('readyToCall', function () {
// you can name it anything
webrtc.joinRoom('your awesome room name');
});
SimpleWebRTC.com by &yet
Go to: http://mmcc.github.io/devweek-kicking-plugins/#/12/9
All are still vendor prefixed
And let us know if we can help


Personal Information
FirstName:
LastName:
Male:
Female:
Other:
Date of Birth :
Email :
Phone
Height
Education
School Name :
Class :
Stream :
Stream
Stream 2
Stream 3
Marksheet :
Submit


Download MoSKito
Download ready to use standalone MoSKito components.
Welcome to the download page. Here you can download standalone clients. Remember you will still need to integrate the MoSKito Essential into your application. We also advice you to check the the complete MoSKito integration guide.
There are different ways to run MoSKito Inspect: standalone and embedded. We provide a tomcat bundled version for download, but you can build one yourself, with whatever container you like.
MoSKito Control
TBD.
MoSKito Central
TBD.


| Home | Messages | TimeSeries | Class XRef |
Dates are objects that represent a specific day in the calendar. Any historical or future date can be represented in Vision. It is not meaningful to create new instances of the Date class.
The class DateOffset is an abstract class that supports the protocol for different date increments: BusinessDays, Days, MonthBeginnings, MonthEnds, Months, QuarterBeginnings, QuarterEnds, Quarters, YearBeginnings, YearEnds, and Years. You create instances of the DateOffset subclasses to represent increments that can be added to or subtracted from a Date.
The class DateRange represents a range of dates of a specific frequency. You create instances of this class to define specific intervals of dates for evaluation.
The Date and DateOffset
classes are direct subclasses of the class Ordinal.
The DateRange class is a subclass of Object:
Object
|
|-- DateRange
|
|-- Ordinal
|
|-- Date
|
|-- DateOffset
|-- BusinessDays
|-- Days
|-- MonthBeginnings
|-- MonthEnds
|-- Months
|-- QuarterBeginnings
|-- QuarterEnds
|-- Quarters
|-- YearBeginnings
|-- YearEnds
|-- Years
The instances of the class Date represent a specific day in the calendar. You can create a date object by sending the asDate message to an Integer in one of the following forms:
| Format | Example | Returns the String |
| YYYYMMDD | 19960614 asDate | June 14, 1996 |
| YYMMDD | 960614 asDate | June 14, 1996 |
| YYMM | 9606 asDate | June 30, 1996 (month-end) |
| YY | 96 asDate | Dec 31, 1996 (year-end) |
The magic word ^today returns the date object representing the current date. The message earliestPossibleDate has been defined at the class Object to return the Date object representing the first valid date that can be represented in Vision. This date corresponds to the first of January in the year 1.
You can add and subtract DateOffsets from a Date to create new date objects. For example:
95 asDate + 5 daysreturns the date object representing Jan 5, 1996 and:
^today - 1 monthsreturns the object representing the date one month prior to the current date.
Eleven DateOffset subclasses have been defined: Days, BusinessDays, Months, MonthBeginnings, MonthEnds, Quarters, QuarterBeginnings, QuarterEnds, Years, YearBeginnings, and YearEnds.
Valid DateOffset instances are formed by sending one of the following messages to an Integer:
| Message | Example | Returns Date |
| days | 95 asDate + 6 days | Jan 6, 1996 |
| businessDays | 95 asDate + 6 businessDays | Jan 8, 1996 |
| months | 951215 asDate - 1 months | Nov 15, 1995 |
| monthBeginnings | 951215 asDate - 1 monthBeginnings | Nov 1, 1995 |
| monthEnds | 951215 asDate - 1 monthEnds | Nov 30, 1995 |
| quarters | 951215 asDate - 1 quarters | Sept 15, 1995 |
| quarterBeginnings | 951215 asDate - 1 quarterBeginnings | July 1, 1995 |
| quarterEnds | 951215 asDate - 1 quarterEnds | Sept 30, 1995 |
| years | 951215 asDate - 1 years | Dec 15, 1994 |
| yearBeginnings | 951215 asDate - 1 yearBeginnings | Jan 1, 1994 |
| yearEnds | 951215 asDate - 1 yearEnds | Dec 31, 1994 |
When a DateOffset is added to or subtracted from a Date, another Date object is returned. Since the returned object is a Date you can add or subtract an offset from it as well. For example:
^today - 1 yearEnds + 3 daysreturns the third day of the current year.
Calculations that involve BusinessDays will only return Monday through Friday dates. Calculations that involve MonthBeginnings, QuarterBeginnings, or YearBeginnings, will only return dates that are the first day of the month, quarter, or year. Calculations that involve MonthEnds, QuarterEnds, or YearEnds, will only return dates that are the last day of the month, quarter, or year.
Calculations that involve Months, Quarters, or Years, will return dates that are on the same day in the month, as long as the date is valid. For example, the expression:
960430 asDate - 1 monthsreturns the date March 30, 1996. The expression:
960331 asDate - 1 monthsreturns the date February 29, 1996 since February 31 is not a valid date.
Date offsets that are formed by sending an increment message to the integer value 0 are used to convert a Date to a boundary relative to its current value. The following table defines these boundaries:
| Example | Returns Date | Definition |
| 95 asDate + 0 businessDays | Dec 29, 1995 | Convert Saturday and Sunday dates to prior Friday |
| 95 asDate + 0 monthBeginnings | Dec 1, 1995 | First day in recipient's month |
| 95 asDate + 0 monthEnds | Dec 31, 1995 | Last day in recipient's month |
| 9511 asDate + 0 quarterBeginnings | Oct 1, 1995 | First day in recipient's quarter |
| 9511 asDate + 0 quarterEnds | Dec 31, 1995 | Last day in recipient's quarter |
| 9511 asDate + 0 yearBeginnings | Jan 1, 1995 | First day in recipient's year |
| 9511 asDate + 0 yearEnds | Dec 31, 1995 | Last day in recipient's year |
All dates respond to the messages month, day, and year, returning integer values. For example:
960615 asDate month returns 6, 960615 asDate day returns 15, and 960615 asDate yearreturns 1996.
By default, dates print in the format month/day/year. For example:
96 asDate print ; displays: 12/31/1996The print: message prints dates in different formats, depending on the value of the supplied parameter. More information about printing dates is available.
The asInteger message can be used to convert a date to an eight-digit integer in the form YYYYMMDD. The following additional messages can be used to format date objects. They return an instance of the class String:
| Message | Sample | Returns |
| formatUsingMMDD | 95 asDate formatUsingMMDD | "12/31" |
| formatUsingMMDDYY | 95 asDate formatUsingMMDDYY | "12/31/95" |
| formatUsingMMDDYYYY | 95 asDate formatUsingMMDDYYYY | "12/31/1995" |
| formatUsingShortName | 95 asDate formatUsingShortName | "31-Dec-1995" |
| formatUsingLongName | 95 asDate formatUsingLongName | "December 31, 1995" |
The message getMonthDescriptor returns an instance of the class Date MonthDescriptor. This class has 12 instances, one for each month. Instances of this class respond to the messages shortName and longName. The getMonthDescriptor message returns the instance corresponding to the recipient date's month. For example:
960615 asDate getMonthDescriptor shortNamereturns the string "Jun". The MonthDescriptor class was created using the createSubclass:at: variation of the createSubclass: message so the class is only visible to Date objects.
The message getDayOfWeekDescriptor returns an instance of the class Date DayOfWeekDescriptor. This class has 7 instances, one for each day of the week. The message code returns the name of the day of the week. For example:
960615 asDate getDayOfWeekDescriptor codereturns the string "Saturday". The message dayOfWeek has been defined at the Date class to return this value as well. The DayOfWeekDescriptor class was created using the createSubclass:at: variation of the createSubclass: message so the class is only visible to Date objects.
In addition to the asDate message, the following messages can be used to convert Integer instances to Date instances:
| Message | Definition | Sample |
| asDateFromMMDD | Convert recipient in MMDD format to a Date object | 0315 asDateFromMMDD |
| asDateFromMMDDYY | Convert recipient in MMDDYY format to a Date object | 031595 asDateFromMMDDYY |
| asDateFromMMDDYYYY | Convert recipient in MMDDYYYY format to a Date object | 03151995 asDateFromMMDDYYYY |
| asDateFromMMYY | Convert recipient in MMYY format to a Date object | 0395 asDateFromMMYY |
| asDateFromYYYYMM | Convert recipient in YYYYMM format to a Date object | 199503 asDateFromYYYYMM |
| asMonthEnd | Convert recipient month (1 - 12) to month-end Date in current year | 9 asMonthEnd |
| asMonthEndInYear: | Convert recipient month (1 - 12) to month-end Date in parameter year | 9 asMonthEndInYear: 1995 |
In addition to the + offset and - offset messages, The following messages can be used to derive a Date instance from another Date:
| Message | Definition | Sample |
| asBDay | Convert recipient to prior Friday's date if it is a Saturday or Sunday; otherwise, return recipient | 960615 asDate asBDay |
| asBDayMonday | Convert recipient to following Monday's date if it is a Saturday or Sunday; otherwise, return recipient | 960615 asDate asBDayMonday |
| asCurrentYearMMDD | Convert recipient to the same month/day in current year | 920615 asDate asCurrentYearMMDD |
| asMonthEnd | Convert recipient to last day of its month | 960615 asDate asMonthEnd |
| asMostRecentMonthEnd | Convert recipient to last day in the month on or or before the recipient | 960615 asDate asMostRecentMonthEnd |
| asQuarterEnd | Convert recipient to last day in quarter | 960615 asDate asQuarterEnd |
| asYearBeginning | Convert recipient to first date in year | 960615 asDate asYearBeginning |
| asYearEnd | Convert recipient to last date in year | 960615 asDate asYearEnd |
Date objects play an important role in accessing and updating time-series data. Dates (or integer equivalents) are the parameters for the asOf: and asOf:put: messages define for the TimeSeries class. For example:
Named Currency CAD :usExchange asOf: 950315 asDatereturns the Canadian Dollar exchange rate as of March 15, 1995. The expression:
Named Currency CAD :usExchange asOf: 951315 put: 1.23 ;sets the March 15th value to 1.23.
When a message retrieves data stored in a time-varying property, it accesses the data as of a specific date. By default, this date is the current date. For example:
Named Currency CAD usExchangereturns the most recent exchange rate for the Canadian Dollar.
The evaluate: message is sent to a Date or an Integer that can be converted to a date and is used to change the default date. The parameter to this message is a block. All messages within the block that access time series properties will access the values as of this date by default. For example:
950315 evaluate: [ Named Currency CAD usExchange printNL ] ;In this case, the exchange rate is accessed as of March 15, 1995. The magic word ^date refers to the default date. For example:
950315 evaluate: [ ^date print: 15 ; Named Currency CAD usExchange printNL ; ] ;This example displays the date 3/15/1995 followed by the exchange rate. You can change the default date within the evaluate: block. For example:
950315 evaluate: [ ^date print: 15 ; Named Currency CAD usExchange printNL ; ^date + 5 businessDays evaluate: [ ^date print: 15 ; Named Currency CAD usExchange printNL ] ; ] ;This examples displays the date 3/15/1995 followed by the exchange rate for that date. It then displays the date and exchange rate for the date 5 business days later than the original date.
Note: The evaluate: message changes the time context of the block but does not change the recipient object like the do: message. In other words, the magic word ^date is rebound by the evaluate: message but the magic word ^self is not. If you send the do: message to a Date, messages within the block will be sent to the recipient date object (i.e., ^self is rebound). The magic word ^date will not use this date. For example:960315 asDate do: [ ^date print ; #- will be ^today month print ; year printNL ; ] ; 960315 asDate evaluate: [ ^date print ; #- will be 3/15/96 ^date month print ; ^date year printNL ; ] ;
The + offset and - offset messages are used to compute a date based on another date. Several messages are also defined that allow you to perform computations between dates.
Date arithmetic is facilitated by the internal representation of the date objects. Internally, dates are stored as integers numbered consecutively from 1. This value can be accessed by sending the asIDate7 (integer form using 7-day weeks) message to a Date. For example:
95 asDate asIDate7returns the integer value 728,658. Since dates are number consecutively, internal dates can be used to compute the number of days between two dates. For example:
!date1 <- 950315 asDate; !date2 <- 950322 asDate ; (date2 asIDate7 - date1 asIDate7 ) asInteger print ;prints the value 7. The message countDaysTo: performs this same function. For example:
!date1 <- 950315 asDate; !date2 <- 950322 asDate ; date1 countDaysTo: date . asInteger print ;
The following messages perform basic comparison operations between the recipient Date and parameter Date. These messages return an instance of the Boolean class except where noted.
| Message | Definition | Sample |
| = | Is recipient equal to parameter? | ^today = ^date |
| == | Is recipient identical to parameter? | ^today == ^date |
| != | Is recipient not equal to parameter? | ^today != ^date |
| !== | Is recipient not identical to parameter? | ^today !== ^date |
| < | Is recipient less than parameter? | ^today < ^date |
| <= | Is recipient less than or equal to parameter? | ^today <= ^date |
| > | Is recipient greater than parameter? | ^today > ^date |
| >= | Is recipient greater than or equal to parameter? | ^today >= ^date |
| between:and: | Is recipient value between two parameter values? | ^today between: 95 asDate and: 96 asDate . |
| inRange: | Is recipient value in the range implied by the parameter, a list of two elements representing the start and end of the range inclusively? | ^today inRange: 95 asDate, 96 asDate . |
| inSet: | Is recipient equal to one of the values in the parameter, a list containing one or more elements? | ^today inSet: 94 asDate, 95 asDate, 96 asDate . |
| notBetween:and: | Is recipient value not between two parameter values? | ^today notBetween: 95 asDate and: 96 asDate . |
| max: | Returns the larger of recipient and parameter value | ^today max: ^date . |
| min: | Returns the smaller of recipient and parameter value | ^today min: ^date . |
The following messages perform basic inquiries about the recipient. These messages return an instance of the Boolean class.
| Message | Definition | Sample |
| isMonthEnd | Is recipient a month-end date? | ^today isMonthEnd |
| isLastBusinessDayOfMonth | Is recipient the last business day of the month? | ^today isLastBusinessDayOfMonth |
| isInitialDate | Is recipient the earliest possible date? | ^today isInitialDate |
A DateRange is defined by specifying a starting date, and ending date, and a date offset. Starting and ending dates can be any date or an integer that can be converted to a valid date.
The general form for creating a date range is:
!dr <- date1 to: date2 by: offset ;For example:
#-- define date range of month-end dates in 1995 !dr1 <- 9501 to: 9512 by: 1 monthEnds ; #-- define weekly dates back one year !dr2 <- ^today to: ^today - 1 years by: 5 businessDays ;
DateRange objects respond to the date1, date2, and increment messages by returning the starting date, the ending date, and the date offset used to define the date range.
DateRanges respond to the evaluate: message by executing the block supplied as a parameter, once for each point in the date range. For example:
9501 to: 9512 by: 1 monthEnds . evaluate: [ ^date print: 15 ; Named Currency CAD usExchange printNL ; ] ;In this example, the US exchange rate for the Canadian currency is printed for each month-end date in 1995. The supplied block prints the evaluation date and the exchange rate. Starting with the initial date (i.e., January 31, 1995), Vision processes this block for each date in the date range, incrementing the evaluation date by the date range's offset (i.e., 1 monthEnds) until the ending date (i.e., December 31, 1995) is crossed. The magic word ^date reflects the specific evaluation date within the range as it is processing.
Date ranges can be executed in reverse order as well. When the starting date in a date range is later than the ending date, Vision will decrement the evaluation date by the offset provided. For example, if the date range in the previous example were defined using: 9512 to: 9501 by: 1 monthEnds, the exchange rates would be displayed starting with December 1995 and ending with January 1995.
Note: The evaluate: message changes the time context of the block but does not change the recipient object like the do: message. In other words, the magic word ^date is rebound by the evaluate: message but the magic word ^self is not.
The evaluate: message is defined to evaluate its block parameter for each element in the date range. Although this operation may appear to operate a date at a time, it is actually optimized internally and does not execute by sequential evaluation.
Warning!! Because date ranges are not evaluated sequentially, you do not have control over the order in which the date range is processed nor can you assume that the number of evaluations is equal to the number of elements in the range.
The iterate: message can be used instead of evaluate: when you want to evaluate the date range an element at a time. For example:
9501 to: 9512 by: 1 monthEnds . iterate: [ ^date print: 15 ; Named Currency CAD usExchange printNL ; ] ;
You can convert a DateRange into a List of Date objects using the asDateList message. For example:
!drange <- 9501 to: 9512 by: 1 monthEnds ; !dlist <- drange asDateList ; dlist count print ;The variable dlist returns a List of 12 date objects. Note that the magic word ^date will not be associated with these objects. For example:
dlist do: [ ^date print: 15 ; printNL ; ] ;In this example, the same value will print for ^date for each element in dlist. The actual value of the Date will print as the second item in the line.
The message extract:for: is used to execute a program for an object over a date range, returning a TimeSeries. For example:
9501 to: 9512 by: 1 monthEnds . extract: [ usExchange ] for: Named Currency CADreturns a time series of twelve month-end exchange rates for the Canadian currency.
For additional information see:
| Copyright © 1997 Innovative Systems Techniques, Inc. | Updated June 19, 1997 |


Spider Articles
Categories
technologies
vehicles
Home
Most Viewed
About
Custom Pages
Login
Sign up
Write an article
Write an article
login
sign in with...
or sign up with your email address
Sign Up


Games
[Discontinued]
Snake+
, a modified game of snake. (Broken and discontinued until I have more time.)
Misc Projects
None yet :(


Responsible for detecting blood vessels (as paths). The result of this method is a group of points indicating the existence of blood vessels at the edges of input image. More...
#include <AGPathDetection.h>
Public Member Functions | |
| AGPathDetection (const AGParameters ¶meters) | |
| void | detectPaths (cv::vector< cv::vector< AGImage >> &imagesMatrix) |
| void | prepareForPathDetecting (cv::Mat &input, cv::Mat &output) |
Private Member Functions | |
| void | searchForPathsInImageUsingSkeleton (AGImage &image, cv::Mat &skeleton) |
| void | addPixelIfWhiteInImage (std::vector< cv::Point > &pixels, cv::Point pixel, cv::Mat &image, std::vector< std::vector< bool >> &visitedPixels) |
| void | pushBackAdjacentPixelsToPixelInImage (std::vector< cv::Point > &pixels, cv::Point pixel, cv::Mat &image, AGPathDirection pathDirection, std::vector< std::vector< bool >> &visitedPixels) |
| void | createSkeleton (cv::Mat &input, cv::Mat &output) |
| void | performMorphology (cv::Mat &input, cv::Mat &output) |
| void | findWhitePixelsInSkeleton (cv::Mat &skeleton, std::vector< cv::Point > &whitePixels) |
| void | categorizeWhitePixels (std::vector< cv::Point > &whitePixels, std::vector< cv::Point > &topWhitePixels, std::vector< cv::Point > &bottomWhitePixels, std::vector< cv::Point > &leftWhitePixels, std::vector< cv::Point > &rightWhitePixels, int imageWidth, int imageHeight) |
| void | removeNeighbourWhitePixels (std::vector< cv::Point > &whitePixels, AGPathDirection pathDirection) |
| void | performDFSForPathDirection (AGImage &image, cv::Mat &skeleton, std::vector< cv::Point > &whitePixels, AGPathDirection pathDirection) |
| void | resetVisitedPixels (std::vector< std::vector< bool >> &visitedPixels, int width, int height) |
| void | removePathPointsDuplicates (AGImage &image) |
| void | testDetectedPathsInImage (AGImage &image) |
| void | testSelectedImage (AGImage &image) |
| void | testSaveCurrentDFS (std::vector< cv::Point > &pixels, cv::vector< cv::vector< bool >> &visitedPixels, cv::Mat &image) |
Private Attributes | |
| bool | testingMode |
| AGParameters | parameters |
Responsible for detecting blood vessels (as paths). The result of this method is a group of points indicating the existence of blood vessels at the edges of input image.
Definition at line 31 of file AGPathDetection.h.
| AGPathDetection::AGPathDetection | ( | const AGParameters & | parameters | ) |
Constructor of AGPathDetection object.
| parameters | Loaded parameters from configuration file. |
Definition at line 16 of file AGPathDetection.cpp.
|
private |
Adds pixel (if white color) to depth first search stack data structure.
| pixels | Stack of depth first search algorithm. |
| pixel | Pixel that will be checked. |
| image | Current image in which path detection is performing. |
| visitedPixels | Data structure that indicates already visited pixels by depth first search algorithm. |
Definition at line 217 of file AGPathDetection.cpp.
|
private |
Sorts white pixels vector based on their position in the image.
| whitePixels | White pixels vector. |
| topWhitePixels | White pixels that are in the first row of image. |
| bottomWhitePixels | White pixels that are in the last row of image. |
| leftWhitePixels | White pixels that are in the first column of image. |
| rightWhitePixels | White pixels that are in the last column of image. |
| imageWidth | Width of the image. |
| imageHeight | Height of the image. |
Definition at line 230 of file AGPathDetection.cpp.
|
private |
Creates skeleton of image.
| input | Input image. |
| output | Output skeleton of input image. |
Definition at line 73 of file AGPathDetection.cpp.
| void AGPathDetection::detectPaths | ( | cv::vector< cv::vector< AGImage >> & | imagesMatrix | ) |
Detects path in every image of imagesMatrix.
| imagesMatrix | Matrix of images. |
Definition at line 37 of file AGPathDetection.cpp.
|
private |
Adds all white pixels of skeleton to whitePixels vector.
| skeleton | Image skeleton. |
| whitePixels | Vector of white pixels. |
Definition at line 128 of file AGPathDetection.cpp.
|
private |
Performs depth first search algorithm for direction of searching.
| image | Input image. |
| skeleton | Skeleton of input image. |
| whitePixels | White pixels found in skeleton of input image. |
| pathDirection | Direction of path searching. |
Definition at line 288 of file AGPathDetection.cpp.
|
private |
Performs morphology operations on input image. This method is part of preprocessing.
| input | Input image. |
| output | Output preprocessed input image. |
Definition at line 61 of file AGPathDetection.cpp.
| void AGPathDetection::prepareForPathDetecting | ( | cv::Mat & | input, |
| cv::Mat & | output | ||
| ) |
Performs preprocessing of image required for better path detection results.
| input | Input image. |
| output | Output Image after preprocessing. |
Definition at line 52 of file AGPathDetection.cpp.
|
private |
Adds adjacent pixels to pixel to depth first search stack data structure.
| pixels | Stack of depth first search algorithm. |
| pixel | Pixel to for which adjacent pixels will be added. |
| image | Current image in which path detection is performing. |
| pathDirection | Direction of path searching. |
| visitedPixels | Data structure that indicates already visited pixels by depth first search algorithm. |
Definition at line 145 of file AGPathDetection.cpp.
|
private |
Removes pixels that are close to each other.
| whitePixels | Pixels vector. |
| pathDirection | Direction of path searching. |
Definition at line 254 of file AGPathDetection.cpp.
|
private |
Removes duplicates of path points. This is done, because algorithm is going from left to right, and from right to left detecting this way similar points.
| image | Input image. |
Definition at line 193 of file AGPathDetection.cpp.
|
private |
Resets depth first search stack data structure.
| visitedPixels | Data structure that indicates already visited pixels by depth first search algorithm. |
| width | Width of image. |
| height | Height of image. |
Definition at line 340 of file AGPathDetection.cpp.
|
private |
Entry point for searching paths.
| image | Image in which paths will be searched. |
| skeleton | Skeleton of image. |
Definition at line 96 of file AGPathDetection.cpp.
|
private |
Draws detected path points on the image.
| image | Input image. |
Definition at line 355 of file AGPathDetection.cpp.
|
private |
Saves and shows current state of depth first search algorithm.
| pixels | Stack of depth first search algorithm. |
| visitedPixels | Data structure that indicates already visited pixels by depth first search algorithm. |
| image | Input image. |
Definition at line 385 of file AGPathDetection.cpp.
|
private |
Performs path detection on only one image.
| image | Input image. |
Definition at line 411 of file AGPathDetection.cpp.
|
private |
Loaded parameters from configuration file.
Definition at line 203 of file AGPathDetection.h.
|
private |
When is set to true algorithm goes into testing mode.
Definition at line 198 of file AGPathDetection.h.


Sasha Banks takes shots at WWE NXT and Triple H
by Arunava GhoshalThis past week on Friday Night SmackDown, the NXT women's division interrupted the match between Nikki Cross and SmackDown Women's Champion Bayley. The female roster of the Blue brand also made their way out to even up the odds.
Sasha Banks, who was present at the ringside to support her friend Bayley, went on to invite NXT's Mia Yim, Rhea Ripley, Tegan Nox, and Dakota Kai to an eight-woman tag team match.
The Legit Boss vs NXT
Nikki Cross, Dana Brooke, Carmella, and The Legit Boss won the match and for the night, they established the superiority of SmackDown over NXT. Banks, who is also the team captain for the Blue brand's women's team for Survivor Series, took to Twitter to vent out her frustrations with the current NXT Superstars. A former NXT Women's Champion in her rights, Banks pointed out how she helped in shaping up the Black-and-Gold brand and that she will not regret destroying it.
On top of being the Boss, I’ve decided to also become the landlord because I own everything! I made NXT & I’m gonna love destroying it. Y’all haven’t paid your dues so consider your a**es evicted! #TeamSmackDown #Vince>HunTAH #LegitBoss
Sasha Banks, Dana Brooke, Nikki Cross, Lacey Evans, and Carmella will represent SmackDown at the upcoming Survivor Series pay-per-view, where they will be fighting for brand supremacy against Team RAW and Team NXT.
Want us to know your thoughts on the matches that you see on TV? Go to our WWE section to rate and comment about them!


DataTables has most features enabled by default, so all you need to do to use it with your own tables is to call the construction function.
Searching, ordering, paging etc goodness will be immediately added to the table, as shown in this example.
| Name | Position | Office | Age | Start date | Salary |
|---|---|---|---|---|---|
| Name | Position | Office | Age | Start date | Salary |
| Tiger Nixon | System Architect | Edinburgh | 61 | 2011/04/25 | R$ 320.800 |
| Garrett Winters | Accountant | Tokyo | 63 | 2011/07/25 | R$ 170.750 |
| Ashton Cox | Junior Technical Author | San Francisco | 66 | 2009/01/12 | R$ 86.000 |
| Cedric Kelly | Senior Javascript Developer | Edinburgh | 22 | 2012/03/29 | R$ 433.060 |
| Airi Satou | Accountant | Tokyo | 33 | 2008/11/28 | R$ 162.700 |
| Brielle Williamson | Integration Specialist | New York | 61 | 2012/12/02 | R$ 372.000 |
| Herrod Chandler | Sales Assistant | San Francisco | 59 | 2012/08/06 | R$ 137.500 |
| Rhona Davidson | Integration Specialist | Tokyo | 55 | 2010/10/14 | R$ 327.900 |
| Colleen Hurst | Javascript Developer | San Francisco | 39 | 2009/09/15 | R$ 205.500 |
| Sonya Frost | Software Engineer | Edinburgh | 23 | 2008/12/13 | R$ 103.600 |
| Jena Gaines | Office Manager | London | 30 | 2008/12/19 | R$ 90.560 |
| Quinn Flynn | Support Lead | Edinburgh | 22 | 2013/03/03 | R$ 342.000 |
| Charde Marshall | Regional Director | San Francisco | 36 | 2008/10/16 | R$ 470.600 |
| Haley Kennedy | Senior Marketing Designer | London | 43 | 2012/12/18 | R$ 313.500 |
| Tatyana Fitzpatrick | Regional Director | London | 19 | 2010/03/17 | R$ 385.750 |
| Michael Silva | Marketing Designer | London | 66 | 2012/11/27 | R$ 198.500 |
| Paul Byrd | Chief Financial Officer (CFO) | New York | 64 | 2010/06/09 | R$ 725.000 |
| Gloria Little | Systems Administrator | New York | 59 | 2009/04/10 | R$ 237.500 |
| Bradley Greer | Software Engineer | London | 41 | 2012/10/13 | R$ 132.000 |
| Dai Rios | Personnel Lead | Edinburgh | 35 | 2012/09/26 | R$ 217.500 |
| Jenette Caldwell | Development Lead | New York | 30 | 2011/09/03 | R$ 345.000 |
| Yuri Berry | Chief Marketing Officer (CMO) | New York | 40 | 2009/06/25 | R$ 675.000 |
| Caesar Vance | Pre-Sales Support | New York | 21 | 2011/12/12 | R$ 106.450 |
| Doris Wilder | Sales Assistant | Sidney | 23 | 2010/09/20 | R$ 85.600 |
| Angelica Ramos | Chief Executive Officer (CEO) | London | 47 | 2009/10/09 | R$ 1.200.000 |
| Gavin Joyce | Developer | Edinburgh | 42 | 2010/12/22 | R$ 92.575 |
| Jennifer Chang | Regional Director | Singapore | 28 | 2010/11/14 | R$ 357.650 |
| Brenden Wagner | Software Engineer | San Francisco | 28 | 2011/06/07 | R$ 206.850 |
| Fiona Green | Chief Operating Officer (COO) | San Francisco | 48 | 2010/03/11 | R$ 850.000 |
| Shou Itou | Regional Marketing | Tokyo | 20 | 2011/08/14 | R$ 163.000 |
| Michelle House | Integration Specialist | Sidney | 37 | 2011/06/02 | R$ 95.400 |
| Suki Burks | Developer | London | 53 | 2009/10/22 | R$ 114.500 |
| Prescott Bartlett | Technical Author | London | 27 | 2011/05/07 | R$ 145.000 |
| Gavin Cortez | Team Leader | San Francisco | 22 | 2008/10/26 | R$ 235.500 |
| Martena Mccray | Post-Sales support | Edinburgh | 46 | 2011/03/09 | R$ 324.050 |
| Unity Butler | Marketing Designer | San Francisco | 47 | 2009/12/09 | R$ 85.675 |
| Howard Hatfield | Office Manager | San Francisco | 51 | 2008/12/16 | R$ 164.500 |
| Hope Fuentes | Secretary | San Francisco | 41 | 2010/02/12 | R$ 109.850 |
| Vivian Harrell | Financial Controller | San Francisco | 62 | 2009/02/14 | R$ 452.500 |
| Timothy Mooney | Office Manager | London | 37 | 2008/12/11 | R$ 136.200 |
| Jackson Bradshaw | Director | New York | 65 | 2008/09/26 | R$ 645.750 |
| Olivia Liang | Support Engineer | Singapore | 64 | 2011/02/03 | R$ 234.500 |
| Bruno Nash | Software Engineer | London | 38 | 2011/05/03 | R$ 163.500 |
| Sakura Yamamoto | Support Engineer | Tokyo | 37 | 2009/08/19 | R$ 139.575 |
| Thor Walton | Developer | New York | 61 | 2013/08/11 | R$ 98.540 |
| Finn Camacho | Support Engineer | San Francisco | 47 | 2009/07/07 | R$ 87.500 |
| Serge Baldwin | Data Coordinator | Singapore | 64 | 2012/04/09 | R$ 138.575 |
| Zenaida Frank | Software Engineer | New York | 63 | 2010/01/04 | R$ 125.250 |
| Zorita Serrano | Software Engineer | San Francisco | 56 | 2012/06/01 | R$ 115.000 |
| Jennifer Acosta | Junior Javascript Developer | Edinburgh | 43 | 2013/02/01 | R$ 75.650 |
| Cara Stevens | Sales Assistant | New York | 46 | 2011/12/06 | R$ 145.600 |
| Hermione Butler | Regional Director | London | 47 | 2011/03/21 | R$ 356.250 |
| Lael Greer | Systems Administrator | London | 21 | 2009/02/27 | R$ 103.500 |
| Jonas Alexander | Developer | San Francisco | 30 | 2010/07/14 | R$ 86.500 |
| Shad Decker | Regional Director | Edinburgh | 51 | 2008/11/13 | R$ 183.000 |
| Michael Bruce | Javascript Developer | Singapore | 29 | 2011/06/27 | R$ 183.000 |
| Donna Snider | Customer Support | New York | 27 | 2011/01/25 | R$ 112.000 |
The Javascript shown below is used to initialise the table shown in this example:
$(document).ready(function()
{ $('#example').dataTable(); } );
In addition to the above code, the following Javascript library files are loaded for use in this example:
The HTML shown below is the raw HTML table element, before it has been enhanced by DataTables:
This example uses a little bit of additional CSS beyond what is loaded from the library files (below), in order to correctly display the table. The additional CSS used is shown below:
The following CSS library files are loaded for use in this example to provide the styling of the table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data will update automatically as any additional data is loaded.
The script used to perform the server-side processing for this table is shown below. Please note that this is just an example script using PHP. Server-side processing scripts can be written in any language, using the protocol described in the DataTables documentation.


Explained: The Nordic countries' secret action plan for times of crisis
by The LocalThe defence ministers of the five Nordic countries met this week to prepare for the event of emergency security situations, natural catastrophes, and provocations from foreign military.
"Our assessment is that if something happens in our part of Europe, everyone is affected in some way," Swedish Defence Minister Peter Hultqvist told public broadcaster SVT after the meeting in Stockholm.
Recent world events, most notably Russia's attacks on Georgia in 2008, annexation of Crimea in 2014 and the conflict in eastern Ukraine, are thought to have worsened the security situation in the Nordics.
Sweden is the current chair of Nordefco (Nordic defence cooperation) and hosted representatives from Denmark, Finland, Iceland and Norway this week.
One of the top items on their agenda was a so-called 'crisis consultation mechanism', which would, in the event of emergency, be triggered by the defence ministry and would act as a supportive mechanism for the Nordic governments.
Special high-security rooms are now being set up in each defence ministry, with telephones and equipment for video calls that would be encrypted.
"This is built on [the requirement that] we can quickly connect with each other and have an encrypted, classified information link between the countries to be used in different situations when we think it is necessary in a crisis situation, but also in other situations where we judge that it is needed," Hultqvist told the TT news agency.
This means it wouldn't only be important in the event of war, but also in situations such as the heatwave and wildfires of 2018.
Other examples Hultqvist gave of events where the crisis mechanism would be used were if military and civil aircrafts were affected by GPS problems, or "provocative behaviour" from foreign armies such as when Russia in 2013 simulated large-scale attacks on Sweden.
The countries have already tested out the setup and practised run-throughs of different situations.


RESUME
Making and playing video games has been my passion since I was a kid. I am proficient in many areas of game development, especially Game Design and Level Design. You can also check out my LinkedIn profile to connect with me!
ABOUT ME
Full Name: Yuvraj Geet Singh Chopra
Currently Residing In: Toronto, ON
Languages: English, Hindi, Punjabi, French
Email<EMAIL_ADDRESS>WORK EXPERIENCE
Promoted from the role of a Junior Game Designer in April 2023.
Currently working on Disney Magic Kingdoms .
Worked on multiple projects, including Box Office Tycoon , Super Charged Racing, Turbulence Tycoon and Tasty Tycoon.
Ideating, conceptualizing and designing complex gameplay systems for a variety of genres.
Writing clear, concise and efficient Game Design Documents to communicate design intentions.
Taking full ownership of specific features and overseeing the development of those features in Unity.
Working in a multi-disciplinary environment to create fun and engaging content.
Tuning and balancing different mechanics in our games, then re-iterating on the same as per analytics reporting.
Creating and maintaining spreadsheets using Google Sheets and Microsoft Excel for tuning data.
Sole designer and developer for the game Tales of Harmonia, shipped on iOS and Android in April 2020.
Designed all major game systems and developed graphics using the Adobe Creative Suite .
Programmed all aspects of the game in C# using the Unity engine.
Implemented In-App Purchases and In-App Advertisements to improve revenue generated from the game.
Implemented analytics reporting using Game Analytics and Firebase to analyze player data.
Designed, documented and implemented new prototypes regularly, like this one .
Programmed (Gameplay, Animation, Physics, AI, UI etc.) and published Hyper Casual games in Unity for iOS and Android.
My best game achieved a ~3% Click Through Rate through market testing.
Implemented monetization strategies like In-App Purchases and In-App Advertisements to improve revenue generated.
Implemented analytics reporting using Game Analytics and the Facebook SDK to analyze player data.
Completely overhauled the Hatchery branding by developing a new colour scheme, typography, promotional concepts, website UX etc.
Designed brand identities for many startup teams under the Hatchery.
Solely designed promotional material for different events and on different platforms for the Hatchery.
You can view my design portfolio for the same here .
Taught Grade 11 and Grade 12 students Computer Science with C++ programming as per the Ontario Curriculum.
Taught high school (Grade 12) students introductory Computer Science with programming in C++.
My students graduated with an 86% average grade.
Recorded weekly lectures and processed them so that they could be uploaded online for future reference by students.
Assisted in the installation of smart devices in the office for collecting bottler and manufacturer data.
TECHNICAL SKILLS   (Hover on / touch each skill to see its skill gauge!)
GAUGE LEGEND:GAME DESIGN GAME DEVELOPMENT PROGRAMMING SOFTWARE DEVELOPMENT MISCELLANEOUS
Publishing (iOS / Android)
EDUCATION
Honours Bachelor of Science in Computer Science (Specialist in Game Design with a Minor in Music History and Culture)
VOLUNTARY EXPERIENCE
Played a game from start to finish and provided extensive feedback on different gameplay features.
Organized the bi-annual concerts for the choir and created promotional posters and program brochures for the same.
Maintained and signed out all equipment in the lounge, including the Ping-Pong table, Pool table, Furniture, Board Games etc.
Created promotional material for all events and advertisements of the annual hackathon at the University of Toronto.
Was the leader for all internal affairs at the Chestnut Residence.
Organized events and generated more awareness about the Sikh Community and Sikhism, including Turban Day, Semi-Annual Langar etc.
Processed reimbursements for expenses and created the Annual Budget for the 2016-2017 academic year.
ACCOLADES
2019
SEMI FINALIST (LEVEL DESIGN)
Ubisoft NEXT Showcase
2018
CERTIFICATE OF LEADERSHIP
Chestnut Residence
2017
CERTIFICATE OF LEADERSHIP
Chestnut Residence
2015
GOLD AWARD
Duke of Edinburgh Program
2015
SCHOLAR SPECIAL PRIZE
Delhi Public School
2014
SCHOLAR GOLD MEDAL
Delhi Public School


For the fig-swirl: Melt butter over medium heat in a saucepan. Add brown sugar and stir to dissolve. Halve all of the figs and toss in the saucepan with water and lemon juice. Cook over medium heat, stirring frequently, until you have a chunky-jammy mixture. Add salt with one or two stirs, set aside and let cool completely. Ice cream: In a small pot over medium heat, combine milk, and granulated sugar until sugar is completely dissolved and the milk is just barely lukewarm. Whisk in the egg yolks. Set mixture in the fridge and wait until fig mixture is cooled. Using an ice cream machine, pour liquids into the frozen basin and process according to manufacturer instructions, i.e., let spin and thicken for 20 minutes before adding mascarpone, fig jam mixture, and the nuts. Continue to process for +/- 10 minutes. Pour semi-frozen mixture into a pyrex dish or glass tupperware. Freeze for at least two hours before serving.
Cocolate Pizza
POSTED IN 15 DEC 2013 / DESSERTS Print
Vanessa Stevenson
Food enthusiast, photography fan. Acid a pinch of raw foodism and that's
pretty much who I am.


Text Data
First Name:
Last Name:
Numeric Data
Age:
Application Form
Full Name:
Email Address:
Website: