In March 2016 we released T-Pot 16.03 and the positive feedback encouraged us to continue development and share all the improvements with the community and are proud to present to you …
T-Pot 16.10
T-Pot 16.10 now uses Ubuntu Server 16.04 LTS and is based on
and includes dockerized versions of the following honeypots
Furthermore we use the following tools
- ELK stack to beautifully visualize all the events captured by T-Pot.
- Elasticsearch Head a web front end for browsing and interacting with an Elastic Search cluster.
- Netdata for real-time performance monitoring.
- Portainer a web based UI for docker.
- Suricata a Network Security Monitoring engine.
- Wetty a web based SSH client.
TL;DR
- Meet the system requirements. The T-Pot installation needs at least 4 GB RAM and 64 GB free disk space as well as a working internet connection.
- Download the T-Pot ISO from GitHub or create it yourself.
- Install the system in a VM or on physical hardware with internet access.
- Enjoy your favorite beverage - watch and analyze.
Table of Contents
- Changelog
- Technical Concept
- System Requirements
- Installation
- Options
- Roadmap
- Disclaimer
- FAQ
- Contact
- Licenses
- Credits
- Stay tuned
- Fun Fact
Changelog
- Ubuntu 16.04 LTS is now being used as T-Pot’s OS base
- Size does matter 😅
tpot.iso
is now based on Ubuntu’s network installer reducing the image download size by 600MB from 650MB to only 50MB- All docker images have been rebuilt to reduce the image size at least by 50MB in some cases even 400-600MB
- A “Everything” installation takes roughly 2GB less download size (counting from initial image download)
- Introducing new tools making things a lot easier for new users
- Elasticsearch Head a web front end for browsing and interacting with an Elastic Search cluster.
- Netdata for real-time performance monitoring.
- Portainer a web based UI for docker.
- Wetty a web based SSH client.
- NGINX implemented as HTTPS reverse proxy
- Access Kibana, ES Head plugin, UI-for-Docker, WebSSH and Netdata via browser!
- Two factor based SSH tunnel is no longer needed!
- Installation procedure improved
- Set your own password for the tsec user
- Choose your installation type without the need of building your own image
- Setup a remote user / password for secure web access including a self-signed-certificate
- Easy to remember hostnames
- First login easy and secure
- Access from console, ssh or web
- No two-factor-authentication needed for ssh when logging in from RFC1918 networks
- Enforcing public-key authentication for ssh connections other than RFC1918 networks
- Systemd now supersedes upstart as init system. All upstart scripts were ported to systemd along with the following improvements:
- Improved start / stop handling of containers
- Set persistence individually per container startup scripts (
/etc/systemd/system
) - Set persistence globally (
/usr/bin/clean.sh
)
- Honeypot updates and improvements
- Conpot now supports JSON logging with many thanks as to making this feature request possible going to:
- Cowrie is now supporting telnet which is highly appreciated and thank you
- Dionaea now supports JSON logging with many thanks as to making this feature request possible going to:
- Elasticpot now supports logging all queries and requests with many thanks as to making this feature request possible going to:
- Honeytrap now supports JSON logging with many thanks as to making this feature request possible going to:
- Updates
- Docker was updated to the latest 1.12.2 release
- ELK was updated to the latest Kibana 4.6.2, Elasticsearch 2.4.1 and Logstash 2.4.0 releases.
- Suricata was updated to the latest 3.1.2 version including the latest Emerging Threats community ruleset.
- We now have 150 Visualizations pre-configured and compiled to 14 individual Kibana Dashboards for every honeypot. Monitor all honeypot events locally on your T-Pot installation. Aside from honeypot events you can also view Suricata NSM, Syslog and NGINX events for a quick overview of local host events.
- More Smart links are now included.
Technical Concept
T-Pot is based on the network installer of Ubuntu Server 16.04 LTS.
The honeypot daemons as well as other support components being used have been paravirtualized using docker.
This allows us to run multiple honeypot daemons on the same network interface without problems and thus making the entire system very low maintenance.
The encapsulation of the honeypot daemons in docker provides a good isolation of the runtime environments and easy update mechanisms.
In T-Pot we combine the dockerized honeypots conpot, cowrie, dionaea, elasticpot, emobility, glastopf and honeytrap with suricata a Network Security Monitoring engine and the ELK stack to beautifully visualize all the events captured by T-Pot. Events will be correlated by our own data submission tool ewsposter which also supports Honeynet project hpfeeds honeypot data sharing.
All data in docker is volatile. Once a docker container crashes, all data produced within its environment is gone and a fresh instance is restarted. Hence, for some data that needs to be persistent, i.e. config files, we have a persistent storage /data/
on the host in order to make it available and persistent across container or system restarts.
Important log data is now also stored outside the container in /data/<container-name>
allowing easy access to logs from within the host and. The systemd scripts have been adjusted to support storing data on the host either volatile (default) or persistent (adjust individual systemd scripts in /etc/systemd/system
or use a global setting in /usr/bin/clear.sh
).
Basically, what happens when the system is booted up is the following:
- start host system
- start all the necessary services (i.e. docker-engine, reverse proxy, etc.)
- start all docker containers (honeypots, nms, elk)
Within the T-Pot project, we provide all the tools and documentation necessary to build your own honeypot system and contribute to our community data view, a separate channel on our Sicherheitstacho that is powered by T-Pot community data.
The source code and configuration files are stored in individual GitHub repositories, which are linked below. The docker images are tailored to be run in this environment. If you want to run the docker images separately, make sure you study the upstart scripts, as they provide an insight on how we configured them.
The individual docker configurations etc. we used can be found here:
System Requirements
Depending on your installation type, whether you install on real hardware or in a virtual machine, make sure your designated T-Pot system meets the following requirements:
T-Pot Installation (Cowrie, Dionaea, ElasticPot, Glastopf, Honeytrap, ELK, Suricata+P0f & Tools)
When installing the T-Pot ISO image, make sure the target system (physical/virtual) meets the following minimum requirements:
- 4 GB RAM (6-8 GB recommended)
- 64 GB disk (128 GB SSD recommended)
- Network via DHCP
- A working internet connection
Sensor Installation (Cowrie, Dionaea, ElasticPot, Glastopf, Honeytrap)
When installing the T-Pot ISO image, make sure the target system (physical/virtual) meets the following minimum requirements:
- 3 GB RAM (4-6 GB recommended)
- 64 GB disk (64 GB SSD recommended)
- Network via DHCP
- A working internet connection
Industrial Installation (ConPot, eMobility, ELK, Suricata+P0f & Tools)
When installing the T-Pot ISO image, make sure the target system (physical/virtual) meets the following minimum requirements:
- 4 GB RAM (8 GB recommended)
- 64 GB disk (128 GB SSD recommended)
- Network via DHCP
- A working internet connection
Everything Installation (Everything, all of the above)
When installing the T-Pot ISO image, make sure the target system (physical/virtual) meets the following minimum requirements:
- 8 GB RAM
- 128 GB disk or larger (128 GB SSD or larger recommended)
- Network via DHCP
- A working internet connection
Installation
The installation of T-Pot is straight forward. Please be advised that you should have an internet connection up and running as all all the docker images for the chosen installation type need to be pulled from docker hub.
Firstly, decide if you want to download our prebuilt installation ISO image from GitHub or create it yourself.
Secondly, decide where you want to let the system run: real hardware or in a virtual machine?
Prebuilt ISO Image
We provide an installation ISO image for download (~50MB), which is created using the same tool you can use yourself in order to create your own image. It will basically just save you some time downloading components and creating the ISO image. You can download the prebuilt installation image from GitHub and jump to the installation section.
Create your own ISO Image
For transparency reasons and to give you the ability to customize your install, we provide you the ISO Creator that enables you to create your own ISO installation image.
Requirements to create the ISO image:
- Ubuntu 16.04 LTS or newer as host system (others may work, but remain untested)
- 4GB of free memory
- 32GB of free storage
- A working internet connection
How to create the ISO image:
-
Clone the repository and enter it.
git clone https://github.com/dtag-dev-sec/tpotce.git cd tpotce
-
Invoke the script that builds the ISO image. The script will download and install dependencies necessary to build the image on the invoking machine. It will further download the ubuntu network installer image (~50MB) which T-Pot is based on.
sudo ./makeiso.sh
After a successful build, you will find the ISO image tpot.iso
along with a SHA256 checksum tpot.sha256
in your directory.
Running in VM
You may want to run T-Pot in a virtualized environment. The virtual system configuration depends on your virtualization provider.
We successfully tested T-Pot with VirtualBox and VMWare with just little modifications to the default machine configurations.
It is important to make sure you meet the system requirements and assign a virtual harddisk >=64 GB, >=4 GB RAM and bridged networking to T-Pot.
You need to enable promiscuous mode for the network interface for suricata to work properly. Make sure you enable it during configuration.
If you want to use a wifi card as primary NIC for T-Pot, please remind that not all network interface drivers support all wireless cards. E.g. in VirtualBox, you then have to choose the “MT SERVER” model of the NIC.
Lastly, mount the tpot.iso
ISO to the VM and continue with the installation.
You can now jump here.
Running on Hardware
If you decide to run T-Pot on dedicated hardware, just follow these steps:
- Burn a CD from the ISO image or make a bootable USB stick using the image.
 There are various Windows GUI tools available, e.g. this tip might help you.
On Linux or MacOS you can use the tool dd or create the USB stick with T-Pot’s ISO Creator. - Boot from the USB stick and install.
Please note: We will ensure the compatibility with the Intel NUC platform, as we really like the form factor, looks and build quality.
First Run
The installation requires very little interaction, only some locales and keyboard settings have to be answered. Everything else will be configured automatically. The system will reboot two times. Make sure it can access the internet as it needs to download the updates and the dockerized honeypot components. Depending on your network connection and the chosen installation type, the installation may take some time. During our tests (50Mbit down, 10Mbit up), the installation is usually finished within <=30 minutes.
Once the installation is finished, the system will automatically reboot and you will be presented with the T-Pot login screen. The user credentials for the first login are:
- user: tsec
- pass: password you chose during the installation
All honeypot services are preconfigured and are starting automatically.
You can also login from your browser: https://<your.ip>:64297
- user: user you chose during the installation
- pass: password you chose during the installation
System Placement
Make sure your system is reachable through the internet. Otherwise it will not capture any attacks, other than the ones from your hostile internal network! We recommend you put it in an unfiltered zone, where all TCP and UDP traffic is forwarded to T-Pot’s network interface.
If you are behind a NAT gateway (e.g. home router), here is a list of ports that should be forwarded to T-Pot.
| Honeypot | Transport | Forwarded ports |
|---|---|---|
| conpot | TCP | 1025, 50100 |
| cowrie | TCP | 22, 23 |
| dionaea | TCP | 21, 42, 135, 443, 445, 1433, 1723, 1883, 1900, 3306, 5060, 5061, 8081, 11211 |
| dionaea | UDP | 69, 5060 |
| elasticpot | TCP | 9200 |
| emobility | TCP | 8080 |
| glastopf | TCP | 80 |
| honeytrap | TCP | 25, 110, 139, 3389, 4444, 4899, 5900, 21000 |
Basically, you can forward as many TCP ports as you want, as honeytrap dynamically binds any TCP port that is not covered by the other honeypot daemons.
In case you need external SSH access, forward TCP port 64295 to T-Pot, see below. In case you need external web access, forward TCP port 64297 to T-Pot, see below.
T-Pot requires outgoing http and https connections for updates (ubuntu, docker) and attack submission (ewsposter, hpfeeds).
Options
The system is designed to run without any interaction or maintenance and automatically contribute to the community.
We know, for some this may not be enough. So here come some ways to further inspect the system and change configuration parameters.
SSH and web access
By default, the SSH daemon only allows access on tcp/64295 with a user / password combination from RFC1918 networks. However, if you want to be able to login remotely via SSH you need to put your SSH keys on the host as described below.
It is configured to prevent password login from official IP addresses and pubkey-authentication must be used. Copy your SSH keyfile to /home/tsec/.ssh/authorized_keys
and set the appropriate permissions (chmod 600 authorized_keys
) as well as the correct ownership (chown tsec:tsec authorized_keys
).
If you do not have a SSH client at hand and still want to access the machine via SSH you can do so by directing your browser to https://<your.ip>:64297
, enter
- user: user you chose during the installation
- pass: password you chose during the installation
and choose WebSSH from the navigation bar. You will be prompted to allow access for this connection and enter the password for the user tsec.
Kibana Dashboard
Just open a web browser and access and connect to https://<your.ip>:64297
, enter
- user: user you chose during the installation
- pass: password you chose during the installation
and the Kibana dashboard will automagically load. The Kibana dashboard can be customized to fit your needs. By default, we haven’t added any filtering, because the filters depend on your setup. E.g. you might want to filter out your incoming administrative ssh connections and connections to update servers.
Tools
We included some web based management tools to improve and ease up on your daily tasks.
Maintenance
As mentioned before, the system was designed to be low maintenance. Basically, there is nothing you have to do but let it run. If one of the dockerized daemon fails, it will restart. If this fails, the regarding upstart job will be restarted.
If you run into any problems, a reboot may fix it. ;)
If new versions of the components involved appear, we will test them and build new docker images. Those new docker images will be pushed to docker hub and downloaded to T-Pot and activated accordingly.
Community Data Submission
We provide T-Pot in order to make it accessible to all parties interested in honeypot deployment. By default, the data captured is submitted to a community backend. This community backend uses the data to feed a community data view, a separate channel on our own Sicherheitstacho, which is powered by our own set of honeypots.
You may opt out the submission to our community server by disabling it in the [EWS]
-section of the config file /data/ews/conf/ews.cfg
.
Further we support hpfeeds. It is disabled by default since you need to supply a channel you want to post to and enter your user credentials. To enable hpfeeds, edit the config file /data/ews/conf/ews.cfg
, section [HPFEED]
and set it to true.
Data is submitted in a structured ews-format, a XML stucture. Hence, you can parse out the information that is relevant to you.
We encourage you not to disable the data submission as it is the main purpose of the community approach - as you all know sharing is caring 😍
The /data/ews/conf/ews.cfg
file contains many configuration parameters required for the system to run. You can - if you want - add an email address, that will be included with your submissions, in order to be able to identify your requests later. Further you can add a proxy.
Please do not change anything other than those settings and only if you absolutely need to. Otherwise, the system may not work as expected.
Roadmap
As with every development there is always room for improvements …
- Bump ELK-stack to 5.0
- Move from Glastopf to SNARE
- Documentation 😎
Some features may be provided with updated docker images, others may require some hands on from your side.
You are always invited to participate in development on our GitHub page.
Disclaimer
- We don’t have access to your system. So we cannot remote-assist when you break your configuration. But you can simply reinstall.
- The software was designed with best effort security, not to be in stealth mode. Because then, we probably would not be able to provide those kind of honeypot services.
 Choose your deployment wisely as a system compromise can never be ruled out.
- Honeypots should - by design - not host any sensitive data. Make sure you don’t add any.
- By default, your data is submitted to the community dashboard. You can disable this in the config. But hey, wouldn’t it be better to contribute to the community?
- By default, hpfeeds submission is disabled. You can enable it in the config section for hpfeeds. This is due to the nature of hpfeeds. We do not want to spam any channel, so you can choose where to post your data and who to share it with.
- Malware submission is enabled by default but malware is currently not processed on the submission backend. This may be added later, but can also be disabled in the
ews.cfg
config file. - The system restarts the docker containers every night to avoid clutter and reduce disk consumption. All data in the container is then reset. The data displayed in kibana is kept for <=90 days.
FAQ
Please report any issues or questions on our GitHub issue list, so the community can participate.
Contact
We provide the software as is in a Community Edition format. T-Pot is designed to run out of the box and with zero maintenance involved.
We hope you understand that we cannot provide support on an individual basis. We will try to address questions, bugs and problems on our GitHub issue list.
For general feedback you can write to cert @ telekom.de.
Licenses
The software that T-Pot is built on, uses the following licenses.
 Our thanks are extended but not limited to the following people and organizations:
The developers and development communities of
- conpot
- cowrie
- dionaea
- docker
- elasticpot
- elasticsearch
- elasticsearch-head
- emobility
- ewsposter
- glastopf
- heatmap
- honeytrap
- kibana
- logstash
- netdata
- p0f
- portainer
- suricata
- tagcloud
- ubuntu
- wetty
The following companies and organizations
… and of course you for joining the community!
Stay tuned …
We will be releasing a new version of T-Pot about every 6 months.
Fun Fact
Coffee just does not cut it anymore which is why we needed a different caffeine source and consumed 107 bottles of Club Mate during the development of T-Pot 16.10 😇


There is a lot of movement in the PaaS world, many companies are trying to showcase what is the best platform and to be honest I don’t really know.
However I decided to try it out and I’ve choose Red Hat OpenShift.
Red Hat has done with OpenShift a great work, and any one could try it out with their free accounts.
I’ve redo my MEAN example that I original create to run in AWS example.
The results could be seen here, and the code is available in this github repository, the code includes a guide to clone this and get just a instance running of the same code.
These are the step that I’ve follow to get this done:
- Create an account in OpenShift
- Download the client tools as is described in this guide, as prerequisite you need Git and Ruby
- Create a folder and then set-up the tool
The set-up will create the domain for the apps and it will create & store a SSH certificate that identify the account.
- Create an application, it could be done as part of the set-up as well. I’ve choose NodeJS and MongoDB cartridge
- Edit package.json to edit the modules, I’ve add mongoose and bower, express was already there.
- Modify server.js code to connect to mongo using mongoose. They are environment variables already defined as its a cartridge in the app:
- Add your front side scripts dependencies using bower.json, like AngularJS.
- I’ve add and extra script step in package.json to launch bower when the app its build.
- Now to build the app.
If something went wrong we could view our logs, to access them:
Or use
Each time that we do a push the application will be sent to OpenShift and build, including update bower scripts. Them in OpenShift we could any time switch between builds in the Git repository or scale our app automatically.
We could choose to instead to do the bower step when we build, to do it in local and them upload to the repository the scripts dependencies, but the idea of a PaaS is that this is a standalone self contained app and it could be rebuild any time anywhere.
Additional we could add our own repository, as github just adding another remote:
So we could push to github whenever we like to:
Two prepare a local environment that we could use to build and test our app before sent to OpenShift we need to do some additional steps:
- Download and install NodeJS and MongoDB.
- Since we are going to build locally add .gitnore to node_module and bower_components folders so we don’t upload them to OpenShift.
- Configure MongoDB, including creating users and run the server.
- Set-up enviroment variables as the ones in OpenShift
Now we could build and run locally using
And that is the basic idea.
As I said I really like how OpenShift works and I’m looking forward to do more test with it.


Deluxe Double Room
- Adults: 2
- Facilities: Private Bathroom, Central Heating, T.V., Hairdryer, WiFi, Towels & Toiletries
Here at Carraig Rua we offer the best Bed and Breakfast service in Kilkenny City. Rooms range from 37.50 EUROS to 50.00 EUROS Per Person Sharing. Prices include Bed & Breakfast.
” We were left in peace and quiet to get on with our weekend off. Great location only a short walk from the town centre. Hosts were brilliant. “
” The establishment was beautiful and very comfortable. Our hosts were extremely helpful and nice! Wonderful breakfast in a stunning setting. I would definitely recommend a stay here! “
” Best breakfast we had in Ireland. The couple that runs the bed and breakfast were great! The room was lovely and the bathroom clean and modern. “


Entry formalities must be completed at one of the official ports. The Q flag must be flown and only the captain may disembark to complete formalities.
All formalities are done by computer now in Guadeloupe, normally located in the marina office, making checking in and out much simpler.
Guadeloupe uses the IALA B buoyage system (red to sta,bd)
Last updated October 2015.
All visitors (including French citizens) require a passport valid for 6 months.
As an overseas territory of France, and therefore a member of the EU. Guadeloupe comes under French immigration rules, but is not a member of the Schengen Area Agreement.
For the exact details applicable to Guadeloupe, see the French Embassy website
All other nationalities require visas, which should be obtained from a French embassy or consulate in advance. Ensure that the visa given is valid for Guadeloupe.
Visitors from South America and some Caribbean islands may need a certificate of vaccinations against smallpox and yellow fever.
Last updated October 2015.
All weapons should be declared.
Guadeloupe is a department of France and similar regulations apply as to France itself.
The level of safety equipment onboard may be checked.
A private yacht may stay in the country for 18 months before becoming liable to tax.
Last updated October 2015.
Tap water is safe to drink. Bottled water is also available.
Guadeloupe is a French Department, therefore the health care system is excellent. Unlike most tropical regions, there are almost no communicable diseases or those transmitted by parasites. There are no poisonous or dangerous animals, except as noted below. Other good advice:
Don't spend time under a Manchineel tree (similar to an apple tree). It has caustic and mildly poisonous sap. Don't touch the leaves or eat the fruits. The juices burn the skin. The main island of the Guadeloupe archipelago is cleared of most of these trees, but there are still plenty of them on the Saintes and on Saint-Bart - very often marked with warning signs.
Some fish, especially around the northern islands eat poisoned seaweed which can lead to severe food poisoning in humans.
Swimming in some rivers is dangerous because of Bilharziosis (a parasitic disease). Normally there are warning signs.
Beware of the Scolopendra (millepede with a shell). Its sting is similar to that of a scorpion.
Be aware of stray dogs at the beaches, because they can transmit worms. Wear your sandals to the beach and use a mat.
Some mosquitos transmit the Dengue virus and Zika virus. Sleep under a mosquito net even while in your yacht and wear mosquito repellant always.
ZIKA VIRUS ALERT: (September 2016) There have been recent safety alerts from the US State Department, UK Foreign Office, and Center for Disease Control (CDC) regarding travel to parts of Central and South America, Africa, southern Asia, the Caribbean, and the South Pacific islands. Guadeloupe is an area of interest with multiple reported cases and active virus transmission. There is growing concern about the rapid spread of the ZIKA Virus and the impact of the virus on pregnant women and babies. ZIKA is transmitted by mosquitos in tropical and sub-tropical climates, and there is currently no cure or vaccine. This situation is evolving rapidly, so please refer to the CDC’s dedicated website if you are intending to cruise in one of the effected areas.
Port tax is payable depending on length of stay and size of yacht. No customs charges are made for EU countries and US yachts, although yachts from some other countries may have to pay some fees calculated by day and tonnage. Normally one only pays and administrative fee (2-5 Euros) at select marinas/cafes with computers.
Chartering is illegal in French territory, although transit with non-French passengers is allowed.
Fishing: Only lines with a limited number of hooks are allowed. The use of nets, harpoons and lobster pots is forbidden. Night fishing with lights is not allowed. The taking of turtles, corals, sponges or sea plants is prohibited and the catching several species of fish is restricted. See Info
The following areas are Maritime Reserves: Grand Cul-de-Sac Marin, Ilet Pigeon (Pointe de Malendure - Pointe Mahault), Petite-Terre, Banc du Crabier ( NE of Desirade).
Cats and dogs over three months old may be admitted temporarily with a bilingual veterinary certificate, which includes proof of anti-rabies inoculation at least 30 days prior to entry and proof of deworming for tapeworm 10 days or less prior to arrival. Dogs and cats must also be identified by a microchip that meets ISO standard 11784, which is the 15 digit transponder operating at 134.2 kHz.
Note: You may find that officials do not ask to see any documentation for your pet. However cruisers who have visited the French Islands with pets advise the following:
Make sure your dog's vaccinations and rabies documentation are current, get an International Health Certificate from your local vet prior to traveling, have an international microchip and keep invoices for products such as flea/tick/heartworm treatments. It is quite possible the officials in the French Islands will not question you or care about your pet. However, if they do, you can have a local vet provide the documentation required if something is missing from your records.
Last updated May 2016.


KUZA provides you with detailed online farming courses, one-on-one support and on-farm services to make sure you succeed in your farming venture.
Get Started NowWhat We Do
We offer you detailed short video courses for the best learning experience. The content is curated from the best experienced farmers and farm experts.
Get help and support by engaging with experienced farmers and experts directly on Kuza. Join our farming forums to share, interact and learn from other farmers.
We offer you access to professional support on the farm from trusted experts in extension services during your initial stages of farming to help you get started.
Access other farm services to help you succeed in farming, including farm visits, access to farm inputs, labour, farm managers, agronomists and other farm services.
Our courses are tailored towards high value farming, with a focus on latest technologies and ready market production
I'm interested in
Our packages comprise detailed farming course videos, online support, farm visits, on-farm support and access to forums, seminars and events .
Are you interested in farming something different? Let us know here
Learn, get help & start
a mushroom farm
Learn the basics on
starting your greenhouse farm
Learn, get help in starting &
your greenhouse farm
We work hand-in-hand with the best in the industry to ensure you succeed in your every step.
Experienced Farmers
Sector Experts
Institutions & Organizations
Agric Investors
Food demand in Africa is set to grow by 60% by 2030. Africa holds 60% of the world’s arable land. It is estimated that Africa can feed the whole world.
We understand that farming is not that easy
With a fast growing African population, we must strengthen our food security to meet the rising demand. Our goal is to teach the best farming practices to increase food production.
Youth unemployment in Africa is the highest in the whole world. Agriculture has the potential to bridge this gap while contributing to economic development. Our mission is to equip the youth, work with them and to empower them to be self-employed.
The use of technology on and off the farm can transform the agriculture sector in Africa. We focus on new ways of doing sustainable farming, with the help of technology.
We promise to never spam you.


Leviticus 6:21
In a pan it shall be made with oil; and when it is baked, thou shalt bring it in: and the baked pieces of the meat offering shalt thou offer for a sweet savor unto the LORD.


Contains extensions to the
java.awt.image
package. This package provides convenient methods and some utility classes. These generally bypass broken methods in Java2D or provide tweaked implementations.


Sign in to GitHub
Username or email address
Password
Forget password?
Sign in
New to Github?
Create an account.
Terms
Privacy
Security
Conatct Github


Seamlessly communicate, gather feedback, and move projects forward
Why I say old chap that is, spiffing off his nut cor blimey guvnor geeza bloke knees up bobby, sloshed arse William cack Richard. Bloke fanny around cheesed off bum bag old lost the plot say, spiffing off his nut.!!


Machine Learning vs Standard Search
This service was trained on a subset of medical content from NIDDK
Input
|
Enter your own question |
Get a random question |
This service was trained on a subset of medical content from NIDDK
|
Enter your own question |
Get a random question |
You can compare the machine learning approach (Retrieve and Rank) and the standard search results (Solr).


◆ Type
| Enumerator |
|---|
| World | |
| Poly | |
| Group | |
| Light | |
◆ Object()
| Assimp::AC3DImporter::Object::Object |
( |
| ) |
|
|
inline |
◆ children
| std::vector<Object> Assimp::AC3DImporter::Object::children |
◆ crease
| float Assimp::AC3DImporter::Object::crease |
◆ name
| std::string Assimp::AC3DImporter::Object::name |
◆ numRefs
| unsigned int Assimp::AC3DImporter::Object::numRefs |
◆ rotation
◆ subDiv
| unsigned int Assimp::AC3DImporter::Object::subDiv |
◆ surfaces
| std::vector<Surface> Assimp::AC3DImporter::Object::surfaces |
◆ texOffset
| aiVector2D Assimp::AC3DImporter::Object::texOffset |
◆ texRepeat
| aiVector2D Assimp::AC3DImporter::Object::texRepeat |
◆ texture
| std::string Assimp::AC3DImporter::Object::texture |
◆ translation
| aiVector3D Assimp::AC3DImporter::Object::translation |
◆ type
◆ vertices
| std::vector<aiVector3D> Assimp::AC3DImporter::Object::vertices |
The documentation for this struct was generated from the following file:


Only credit cards
Only debit cards
Only prepaid cards
Only credit & debit cards
Only credit & prepaid cards
Only debit & prepaid cards


| # | User | Score |
|---|---|---|
| {{i+1}}. | {{user.displayName}} | {{user.points}} |
| Match result | Guess | Points | Description |
|---|---|---|---|
| 2 - 1 | 1 - 3 | 0 | Nothing correct |
| 2 - 1 | 2 - 3 | {{group.teamGoalPoints}} | Home team goal amount correct |
| 2 - 1 | 3 - 0 | {{group.correctWinnerPoints}} | Winner is correct |
| 2 - 1 | 2 - 0 | {{group.teamGoalPoints + group.correctWinnerPoints}} | Home team goal amount correct and winner correct |
| 2 - 1 | 2 - 1 | {{group.exactScorePoints}} | Score is exactly correct |
| Germany | Germany | {{group.winnerPoints}} | Champion |
| Miroslav Klose | Miroslav Klose | {{group.goalKingPoints}} | Correct goal king |
| Total | {{group.exactScorePoints + group.teamGoalPoints+group.correctWinnerPoints + group.teamGoalPoints + group.correctWinnerPoints + group.winnerPoints + group.goalKingPoints}} |


--- layout: page title: "About" description: "This is what I do." header-img: "img/about-bg.jpg" ---
I'm a student from UESTC.
I'm a Java coder.


These are just a few of my public facing personal projects and some de-branded excerpts from some client work. If you would like to see some more client focused work samples, Contact Me and we can talk.
I am an experienced Interaction / User Experience Designer with a drive for producing simple, creative and cutting edge solutions for complex problems. I harness a thorough and up-to-date working knowledge of user interface design principles and methodologies. I can incorporate knowledge of human factors, user-centered design processes, interaction design guidelines, patterns, usability methodologies, industry standards, trends, unique methods of inquiry and platform standards to create world class designs.
I’ve worked across various industries creating some of the most forward thinking and usable products. From ideation, validation, conceptual design, detailed design, development to support, I’ve done it all.
I’ve conducting user testing for high net worth art collectors in multiple countries and lead user brainstorms & workshops for ideation and requirements gathering.
I’ve managed teams of both UX and Visual Designers to form a unified vision and developed a methodology to rapidly incorporate visual design into UX deliverables.
I typically work on long detailed and complex projects with layers of problems and multiple phases. These projects last in some cases for years. I dedicate myself, own the space and see projects through to the end.
Currently - Associate Director, User Experience Strategy & Design
Manage day-to-day operations of a UX team of 3 and a Visual Design team of 4 establishing strategic thought leadership and direction as we designed the future banking portal for the largest private bank, Brown Brothers Harriman.
Conceived a framework and managed a multi-threaded site redesign for Sotheby’s the leading broker of fine art, jewelry and collectables, capped by high net worth user testing in multiple countries.
Developed and deployed a new methodology and process for delivering, reviewing and approving wireframes, visual designs and annotations currently rolling out to various projects.


Graphs can be a great way to display information in a way that helps people understand the relationships among numbers. For example, Figure 3.6.1 shows temperature changes over the last two thousand years. There is, of course, a lot of variation over time. Then, when we hit the Industrial Revolution, when carbon emissions increased substantially, and the line starts trending upwards very quickly.
in-context


We are currently working on building our new website. In the meantime, if you need to contact us then please email us or call us on:
01234 000000


This code checks to see if a floating point value is equal to the special
Not A Number value (e.g., if (x == Double.NaN)
). However,
because of the special semantics of NaN
, no value
is equal to Nan
, including NaN
. Thus,
x == Double.NaN
always evaluates to false.
To check to see if a value contained in x
is the special Not A Number value, use
Double.isNaN(x)
(or Float.isNaN(x)
if
x
is floating point precision).
// No value is equal toNan
, includingNaN if (x == Double.NaN) // Incorrect :Always false
Double.isNaN(x) // Correct : using isNaN() Method. Float.isNaN(x)


This is a variation on the already existing nested Bar chart, this one with the nested Bar chart being grouped.
This goes in the documents header:<script src="RGraph.common.core.js"></script> <script src="RGraph.common.key.js"></script> <script src="RGraph.line.js"></script>Put this where you want the chart to show up:
<canvas id="cvs" width="700" height="250"> [No canvas support] </canvas>This is the code that generates the chart - it should be placed AFTER the canvas tag(s):


Elaine Fletcher Chapman provides confidential and convenient telephone consultations supported by occasional emails when needed. She works with artists concerning difficulties specific to the practicing of one's art, especially regarding perseverance, performance, and doubt. She often asks: “What longing is being left unattended? What is your heart's desire?”
“Midway on our life's journey, I found myself
In dark woods, the right road lost.”
˜Dante Alighieri/Robert Pinsky
She has been working with people during difficult times and periods of life transitions and transformation for over thirty years. She provides support and an attentive presence. Her expertise lies in her ability to envision positive solutions to nearly impossible situations. She holds hope in the face of hopelessness. She believes in a holistic approach, integration of mind, body, and spirit and the practice of living in the moment. She believes strongly in the possibility of change.


Data Science Immersive¶
| week | topic(s) |
|---|---|
| 0 | Python fundamentals |
| 1 | Programming and SQL |
| 2 | Probability and Statistics |
| 3 | Linear Models |
| 4 | Supervised Learning |
| 5 | NLP, Business analytics |
| 6 | Unsupervised Learning |
| Break Week | |
| 7 | Big Data / Data Engineering |
| 8 | Special Topics / Case Studies |
| 9 | Project |
| 10 | Project |
| 11 | Project |
| 12 | Career services and Special topics |
Typical day¶
- [30m] warm-up
- [1h] lecture
- [2-3h] individual assignment
- [1h] lecture
- [3-4h] pair programming
Throughout the cohort¶
- Career Services
- Case Studies
- Industry Speakers
- Industry Projects
Where do we want to be with machine learning algorithms¶
Algorithms are not just black boxes
- Know when is it appropriate to use the algorithms/tools
- Provide enough resources so that:
- You explain what the algorithm is doing in plain English
- You implement a simple version from the ground up
Note
The last point may be more difficult for some algorithms, but we provide you with the necessary resources to follow up on such topics should you wish to.
Data Science Careers and Galvanize Placement Rates¶
Students who have attended Galvanize have been very successful in changing their career track and finding awesome jobs in the data science industry. And we’d love to take credit for it. But the truth is it’s more about you – your aptitude, determination and drive – than it is about us. We absolutely have amazingly passionate, caring, dedicated and expert instructors committed to making your learning experience as productive and enjoyable as possible. No question about it: our instructional staff is world-class and you will not feel otherwise. And we work out of an amazing co-working space that deeply embeds us into the tech industry – we’re connected to everyone from the biggest established players, the midsize startups solidifying their market space, all the way down to incredibly driven entrepreneurs who are passionate about creating the next big thing.
But there’s no job just “lined up and waiting for you” when you finish. You have to make it happen and go get it – although we’ll be there to help you every step of the way as you make your transition: Galvanize is deeply committed to the the career services component of our immersive. The data science career is so rewarding on so many levels (e.g., Growth/Recognition, Creativity/Independence, Community/Status – i.e. the three factors identified in the psychology literature as contributing to job satisfaction) which makes it an extremely competitive job market. So your effort and learning won’t stop with Galvanize. You’re gonna have to hussle and grind and seek out opportunities for career growth and “always be getting better”.
At the end of every cohort, there’s always several students who attend a public data science lecture and then come back and say, “Yeah, I totally get what they’re talking about – I’m not hearing anything I don’t understand anymore – I know what’s going on now”. And that’s basically what the Galvanize DSI program is: a jump start to get you familiarized with everything that’s going on in the data science community and equip you with the skill set you need to be able to keep developing your expertise as you grow and develop your career trajectory.
Resources for further study¶
If you want to get through the interview process and enroll in the Data Science Immersive, you’re on your way, but not there just yet. The “Statistics/Machine Learning” interview evaluates your mastery of the content covered here. But it also begins to assess your familiarity and comfort with modern predictive methodologies. To ace the “Statistics/Machine Learning” interview you need to have a very strong handle on the following material:
- Galvanize self study resources
- Chapters 1-4 of Introduction to Statistical Learning
- Chapters 1-4 of 15 hours of machine learning videos
If you need to start a little slower as you begin learning these topics, you may want to have a look here:
Happy Travels!!
– The Galvanize DSI Instructional Team


Data scraping by RedLego's Adobe scraper script.
This data visualisation is by @premasagar, using Protovis.
You can fork the code on Github.
For more on the controversy of Adobe's software pricing policy, see this discussion thread by Adobe users.


Abercrombie & Fitch
FIERCE
FAMILY
Our warmest collection of coats, as seen on some of our amazing home office associates.
New arrivals to give and get—because it’s never too soon to start gifting.
A few of our favorite things for small gathering & special occasions on screen.
It’s never too soon to start gifting. This year, all our best gifts are all in one place.
Choose curbside pickup at checkout (where available) and we’ll email you when your order’s ready.
FIND THE SHOP
Not a Moment
Black Lives still Matter. We’re here for meaningful impact in a longstanding way.
We’re happy to offer you options, whether you’re shopping in-store or online.
(Pro tip: the sooner you shop, the sooner your gifts will ship!)
Subscribe
Privacy
Sale Terms
Website Terms of Use
Endorsements Social Media Engagement
Site Map
United State
Changes


ptytrader
BOT
28-May-18 03:15 PM
But they are the only one in South America that does transfers locally
I haven't hears if him in forever
Do they also support carribean
Yea I've been doing some digging on the best jurisdiction. User friendly wise EUR accounts are the best
You could just do what cryptocapital did and open an account in Portugal so you can sell directly from Bitpanda or another big exchange
That is a longterm solution
Portugal support foreign account?
Singapore only supports PB
Yeah you need long term visa for local
Portugal and Spain are the easiest to get a company and account
And for long term visa you need to set up a company there and hire like 3 people
I set up a company there using otonomos
And they had some management issues and their company go bust
So now i dont have a nominee
At least you didn't lose funds
Sometimes those fiduciary services can go very wrong
Well i paid them 5000 for 1 year support
And they go bust after 5 months
Well for now let me try cryptocapital if they scam lol
Ok. Let me know about panda though
I will need some various gateways anyway
Yup already sent him and email
I have found some really good traders and contacts via LB
And their escrow is very well thought out
I was a broker of lb in korea when i started coins
And then a phishing chinese group sent me fiat via my bank account
And police froze my account for 5 months until trial is done
I couldnt do a bank transfer for 5 months
Their broker fee is about 7~10%
Yea I honestly hate.... Hate receiving transfers to my bank account
So i dont think its much reliable
Btw, do i need to visit portugal for setting up bank account?


assert.hpp |
|
The header <boost/assert.hpp> defines the macro BOOST_ASSERT, which is similar to the standard assert macro defined in <cassert>. The macro is intended to be used in Boost libraries.
By default, BOOST_ASSERT(expr) is equivalent to assert(expr).
When the macro BOOST_DISABLE_ASSERTS is defined when <boost/assert.hpp> is included, BOOST_ASSERT(expr) is defined as ((void)0). This allows users to selectively disable BOOST_ASSERT without affecting the definition of the standard assert.
When the macro BOOST_ENABLE_ASSERT_HANDLER is defined when <boost/assert.hpp> is included, BOOST_ASSERT(expr) evaluates expr and, if the result is false, evaluates the expression
::boost::assertion_failed(#expr, BOOST_CURRENT_FUNCTION, __FILE__, __LINE__)
assertion_failed is declared in <boost/assert.hpp> as
namespace boost { void assertion_failed(char const * expr, char const * function, char const * file, long line); }
but it is never defined. The user is expected to supply an appropriate definition.
As is the case with <cassert>, <boost/assert.hpp> can be included multiple times in a single translation unit. BOOST_ASSERT will be redefined each time as specified above.
<boost/assert.hpp> also defines the macro BOOST_VERIFY. It has exactly the same behavior as BOOST_ASSERT, except that the expression that is passed to BOOST_VERIFY is always evaluated. This is useful when the asserted expression has desirable side effects; it can also help suppress warnings about unused variables when the only use of the variable is inside an assertion.
Copyright © 2002, 2007 by Peter Dimov. Distributed under the Boost Software
License, Version 1.0. See accompanying file LICENSE_1_0.txt
or copy at http://www.boost.org/LICENSE_1_0.txt.


Version:
Get updates on your favorite Twitch streamers right from the desktop.
Application and menu bar icons by Tal Rosenbaum.
© Watchdog Media, 2015


Our Mission
At Keep Air Clean, we are committed to a sustainable environmental future by informing individuals of the harmful impacts that poor air quality can have on them and their loved ones. Yes, that means your furry friends too. Additionally, we provide resources and support that empower you to make the change in your community.
Well... Does air pollution really affect me?
Let's take a look at what the World Health Organization has to say.
Your Health
Our physical and psychological well-being is affected differently by the kind of air pollution we are exposed to. Even if you are healthy, you can still experience the impacts of air pollution such as respiratory irritation or breathing difficulties during exercise or outdoor activities. Your risk depends on your current health, the pollutant type and concentration, and the length of your exposure to the polluted air. There are many organs and bodily functions that can be harmed, the consequences including:
- Respitory Disease
- Cardiovascular damage
- Fatigue, headaches, and anxiety
- Irritation of the eyes, nose, and throat
- Damage to reproductive organs
- Harm to the liver, spleen, and blood
- Nervous system damage
Enviromental Impacts
Air pollutants cause less-direct health effects when they contribute to climate change. Heat waves, extreme weather, food supply disruptions, and other effects related to increased greenhouse gases can have negative impacts on human health. The U.S. Fourth National Climate Assessment released in 2018 noted, for example, that a changing climate "could expose more people in North America to ticks that carry Lyme disease and mosquitoes that transmit viruses such as West Nile, chikungunya, dengue, and Zika."
Check out our pollution page to discover the air quality in your area


Get started with Us
Register a new membership
I agree to the
Terms
SIGN IN
- Register With -
Already have an account?
Sign In


Anti-000Webhost
This is a JavaScript + CSS combination, which hides the overlay, put in place by the free program of 000webhost.com, a common free hoster.
Seems cool, but how do I get it?
First you need to get the files. You can download them for yourself and add them to your server or simply include them by url.
Server1: s.chulte.de
[FILE1-COPY]
[FILE2-COPY]
Server2: github.com
[FILE1-COPY]
[FILE2-COPY]
Now I got the files, what to do with them?
Well, now you only need to implement them to every single visible web-page hosted on 000WebHost. Then it should work.
Wait, how do I implement them?
Okay, okay, okay, it's very easy. You only need to add these both lines to every HTML document used by you.
Add this:
[MIRROR1-COPY]
[MIRROR2-COPY]
anywhere in the file.
Then add this:
[MIRROR1-COPY]
[MIRROR1-COPY]
in the header of the file.
And now, you are ready.
[Back]


Hato is the first Hurricane Signal No. 10 alert issued by the Hong Kong Observatory since 2012. The Observatory says ...
This summer, I went to Inner Mongolia autonomous region in China. My trip started at Arxan, a famous tourist area renowned for its unique natural scenery...
Commercial buildings will be the first thing that comes to our mind when it comes to architecture, however, the possibilities are endless. Atelier J-AR (AJ-AR) is ...
In every traditional Chinese festival, paper offerings for celebration or the worship of spirits can be seen everywhere. “Paper offerings are not only about ...
When the public art installation “Event Horizon Hong Kong” was first displayed on a rooftop in Central in November, 2015, people mistook the sculpture of a life-sized naked man as suicide suspect and called the police in panic. “I spotted it long time ago. But to be honest, I don’t know why it has to be there,” said Chu Tze-yan....
Standing in Sham Shui Po for more than 40 years,the Yen Chow Street Hawker Bazaar has fostered lots of art students, designers, and fabric lovers in Hong Kong. However, in 2013,the Hong Kong government ...


Logging wrapper for debugging
(Any)
A list of parameters, where the first parameter can be a type as specified in the "type" object
Utils is a collection of sorthvid auxilliary methods
$0 is the standard sorthvid content container class. All parameters are wrapped in ES6 object syntax.
(Element)
The associated DOMelement OR a string shorthand for generating an element
(String)
Optional string HTML content to be injected into a generated element
(Object)
A json object containing the events for the instance
(String)
A huma readable name for the View
(Object)
A json object containing the state of the view. Text strings to be added to markup with data attributes data-text=key will be automatically updated when calling setState
(String)
if a mount is provided the view automatically mount to the given point
(Function)
function is copying new states into the local state Object.
set own element
delegating HTML events
A "private" function, creates references to textnodes in the view so they can be updated later on TODO: remove data attributes and handle wired behavious as single tags (input, br and hr).
A "private" function that updates all textNode references.
A "public" function that setState the view TODO: what if a tag doesn't exist? should probabaly run through initTextNodes and handle state as emmutables to ensure racconditions doesn't break anything.
(Object)
new data to update the view
(Any
(default null
)
)
A "private" function, which removes all event listeners
A "public" function, which removes the view's el from the DOM Sets the View's visible property to false
A "public" function, which append a given elem/docFragtion into this.el
(Any)
Wrappers for DOM manipulation methods always using this.el as the origin
(Any)


My previous post was all about Navigation Timing. Continuing with the theme of performance api’s, it’s time to take a look at Resource Timing.
Resource Timing Defined
First of all, let’s define resource timing in layman’s terms. Resource timing allows us to measure the performance metrics of each individual resource that a webpage references. This means we can see how long each image took to download, or how much time it took to get all of our individual javascript and css files. We can even measure (with varying accuracy) the latency of third party resources.
This level of detail can be put to good use when you’re trying to improve the performance of your website. We can see the slowest performing resource of a page and focus our efforts on that resource. We can use this api to reveal resources that we didn’t expect (think an image or font file defined in css). We could even use it to build a waterfall chart with pure javascript.
Getting Started
There are a couple of things we need to be aware of before we get into the details of what the API offers. Mainly, how to access it.
The resource api is exposed via the window.performance object. To actually retrieve the information we want, we have to call the performance object’s getEntriesByType function, making sure to pass in the type of object we want to retrieve (in this case, ‘resource’):
var resources = window.performance.getEntriesByType('resource');
This will return an array of PerformanceResourceTiming objects that hold the timing data we’re after.
The API
name - This is the url of the resource that was retrieved. This url will not change from the originally requested url, even if the browser has to redirect to retrieve the resource.
entryType - Since we’re in the Resource Timing API, all of our retrieved resources will return an entryType == ‘resource’.
startTime - This returns either the time just before the browser starts to fetch the resource, or, if a redirect was involved, we’ll get the time that the redirect started.
duration - This is the difference between the responseEnd and startTime values.
initiatorType - The initiatorType is the string representation of the element that caused the resource request. For instance, an img tag would show up in the Resource Timing API as ‘img’. However, if the resource is retrieved via CSS using the url() syntax, then the initiator value will be ‘css’. If the request was initiated via AJAX, the type will be ‘xmlhttprequest’.
redirectStart - If a resource is requested and the browser is redirected to another url on the same domain, redirectStart returns the time when the browser starts to request the redirected url. If we get redirected to a url on a different domain, then we have two scenarios. We’ll either get the redirect start time as described before, or we’ll get a zero. It all depends on what the W3C spec calls the “timing allow check algorithm.”
The algorithm is really nothing more than the value of the Timing-Allow-Origin HTTP response header. Here’s how the algorithm works; quoted from the spec:
The timing allow check algorithm, which checks whether a cross-origin resource’s timing information can be shared with the current document, is as follows:
If the HTTP response includes zero or more than one Timing-Allow-Origin header values, return fail and terminate this algorithm.
If the Timing-Allow-Origin header value is the test “*” character, return pass and terminate this algorithm.
If the value of Timing-Allow-Origin is not a case-sensitive match for the value of the origin of the current document, return fail and terminate this algorithm.
Return pass.
When we’re interacting with a domain that is not ours, redirectStart (as well as several other attributes) will return a value only if that third party website has configured itself to be Resource Timing friendly.
redirectEnd - Returns the time after receiving the last byte of the response of the last redirect. This attribute also depends on the Timing-Allow-Origin header when dealing with third party domains so you’ll get a zero if the third party site isn’t configured properly.
fetchStart - If there are no redirects, this is the time before the browser starts to fetch the resource. If there are redirects, this is the time before the browser starts to fetch the final redirected resource.
domainLookupStart - This is the time just before the browser performs a DNS lookup on the resource. If the browser is using a persistent connection or has the resource in cache, then this value will be equal to the fetchStart value. Again, if the resource is on a third party domain and that domain isn’t configured properly, you’ll get a zero.
domainLookupEnd - Pretty much what you might expect, this is the time immediately after the DNS lookup. Unless, of course, the connection is persistent or the resource is in cache, then this is just the fetchStart time again. The same “third party website configuration” rules apply to this attribute as well.
connectStart - This is the time after the DNS lookup is complete and just before the connection is started. If the connection is persistent or the resource is cached, then this will be equal to domainLookupEnd. Like most of the other attributes, the third party website configuration rules all apply.
connectEnd - This represents the time just after establishing a connection. This will be equal to domainLookupEnd if we’re running a persistent connection or using cache; also, third party website configuration applies. It’s worth noting that connectEnd includes the time to establish SSL connections.
secureConnectionStart - This one is interesting because it’s optional for browsers to implement. If a browser doesn’t support this, the value will be undefined. If the site isn’t using https, the value will be zero, otherwise, this is the time just before the browser starts the handshake process.
requestStart - Now that the browser has done all the necessary lookups, it can finally request the resource. This attribute is the time value just before the request. Third party website configuration rules apply.
responseStart - This is the time just after the browser receives the first byte of the resource. Third party configuration rules apply.
responseEnd - This is the time just after the browser receives the last byte of the resource.
In addition to these attributes, there are two functions and an event we need to be aware of when using resource timing:
clearResourceTimings() - clears the current PerformanceResourceTiming values.
setResourceTimingBufferSize() - sets the maximum PerformanceResourceTiming values that the browser should store. Defaults to 150.
onresourcetimingbufferfull - this fires immediately after the browser’s buffer is full.
Examples
So we’ve finally made it to the fun part. I’m going to take code from a Github repo by Alois Reitbauer (one of the Performance group members).
Here’s a straight forward example on how to just log out the load time of all the images on a page:
var resourceList = window.performance.getEntriesByType("resource");
for (i = 0; i < resourceList.length; i++){
if (resourceList[i].initiatorType == "img") {
console.log('Load time is ' + (resourceList[i].responseEnd - resourceList[i].startTime + ' ms'));
}
}
This example showcases a pretty creative use of the api. It allows us to detect which resources (in this case images) never actually loaded.
// find all images in the DOM
var elems= document.getElementsByTagName('img');
var definedImages = new Array();
for (i = 0; i < elems.length; i++) {
definedImages[definedImages.length] = "http://localhost:3000/" + elems[0].getAttribute('src');
}
// find all images that were loaded
var loadedImages = new Array ();
var resourceList = window.performance.getEntriesByType("resource");
for (i = 0; i < resourceList.length; i++){
if (resourceList[i].initiatorType == "img") {
loadedImages[loadedImages.length]= resourceList[i].name;
}
}
// check the difference
for (i = 0; i < definedImages.length; i++){
if(loadedImages.indexOf(definedImages[i]) < 0){
console.log('Image ' + definedImages[i] + ' failed to load');
} else {
console.log('Image ' + definedImages[i] + ' loaded successfully');
}
}
Finally, here’s an example that displays our top ten heaviest page resources:
var topX = 0;
var resourceList = window.performance.getEntriesByType("resource");
resourceList.sort (function (a,b){return (a.duration - b.duration) * -1});
for (i = 0; i < resourceList.length && topX < 10 ; i++){
if (resourceList[i].initiatorType == "img") {
++topX;
console.log('Load time ' + resourceList[i].name + ' is ' + ((resourceList[i].duration).toFixed(2) + ' ms'));
}
}
These are just a few examples of the resource api. Checkout Alois’ repo for more.


Event Location:
Mandeville Hall, St. Joseph's University
5600 City Line Ave
Philadelphia, Pennsylvania
Abstract:
One of the great features of SQL Server 2008 is its native support for spatial data types. Spatial data represents information about the physical location and shape of geometric objects. These objects can be point locations or more complex objects such as countries, roads, or lakes. In addition, with the upcoming release of SQL Server 2008 R2, you can add maps and map layers to your report to help visualize data against a geographic background. This session looks at how you can take advantage of this support for spatial data to enhance your location based applications in new and interesting ways. You will learn how to load and query spatial data in SQL Server as well as how to present the data to uses through Reporting Services reports.
Speaker(s): Dan Clark,
Abstract:
In presentation I’ll first cover the basics of Policy Management by looking at the components focusing on several simple examples. Then, we’ll discuss how Policy Management can be used to ensure your instances of SQL Server adhere to Microsoft’s recommended best practices for SQL 2000, 2005 and 2008. We’ll see how we can import the readily available and predefined SQL Server best practices into the Policy Management umbrella. Finally, we’ll look at the Enterprise Policy Management Framework which can be used to provide insightful and intuitive Reporting Services reports that can provide you with the policy adherence metrics for your SQL Server Instances across the enterprise.
Speaker(s): Joe Toscano,
Abstract:
In this session, we explore how recursion simplifies some programming tasks and how recursive queries can be developed in Microsoft SQL Server using Common Table Expressions. We will begin with a brief introduction to recursion with the classic factorial example and extend this to the set-based issues encountered in SQL development. Then, we will present several real-world problems where recursive solutions can be used in place of temp tables and cursors.
Speaker(s): Jim Moran,
Abstract:
This session will deal with techniques for maintaining SQL Server databases in an orderly fashion. We will discuss design decisions that make databases easier to maintain. We will talk about code management and change control to keep the database current – even in multi-user environments. We will talk about simpler, reliable deployment strategies. And we will explore testing frameworks to assure the changes are safe. By using field proven techniques and the tools in Visual Studio and SQL Server Management Studio, we can ease the process of maintaining custom databases while remaining flexible enough to meet the changing needs of our organizations.
Speaker(s): Mark Scott,
Abstract:
Live Labs recently released Pivot a tool to visualize data which can allow uses to see patterns in data like never before. In this session I will provide a basic intro to Pivot and discuss how to use you existing database and the pivotcollectiontools(on codeplex) SDK that I have released to dynamically build Pivot Collections.
Speaker(s): Matt Van Horn,
Abstract:
With the upcoming releases of Office 2010, SharePoint 2010, and SQL Server 2008 R2, Microsoft continutes to introduce new innovations to its Business Intelligence story. Come join A.J. Mee, Senior Technical Specialist at Microsoft, for a comprehensive look at the net-new changes to the Microsoft BI platform this year. We will cover such highlights as PowerPivot, Master Data Services, PerformancePoint Services 2010, and Report Builder 3.0. Content will include live, instructor-led demos of selected functionality.
Speaker(s): A.J. Mee,
Abstract:
- Are you interested in seeing an OLAP database and OLAP cube built from start to finish? - Would you like to see some examples of different dimension types? - Would you like to see how you can use SSIS and XMLA to maintain/incrementally update the OLAP cube? - Would you like to see an example of SSAS KPIs, roles and report actions? - And lastly, would you like to see an example that uses something OTHER THAN AdventureWorks or Northwind or Pubs? :) Then this session is for you!
Speaker(s): Kevin Goff,
Abstract:
In this session, we will look at the concepts and practices used in implementing a Data Warehouse environment, features and capabiiities of SSIS, and how to take SSIS to meet your DW / BI needs. We start at a high conceptual level and walk you through implementing a sample DW using SSIS, showing examples of best practices along the way.
Speaker(s): Vince Napoli,
Abstract:
This presentation will: - Walk through the admin/config steps for deploying SSRS 2008 reports to Microsoft Office SharePoint Server 2007. - Cover the report management features in MOSS 2007 - Show how to use report web parts and how to modify the appearance of deployed reports through CSS - Time permitting, I'll cover deployment of reports to SharePoint 2010, using the most recent beta.
Speaker(s): Kevin Goff,
Abstract:
The popular SharePoint 2010 platform is built on SQL Server and ASP.NET. It can used as an information hub for multiple data sources including SQL Server. Learn how to store data in SharePoint lists, manage external SQL data with Business Connectivity Services, build CRUD forms with InfoPath, process business flows with SharePoint Designer and Visual Studio workflows, integrate complex reports with Reporting Services, index business data with FAST search, sync data offline with SharePoint Workspace, and manage data file backups.
Speaker(s): Bill Wolff,
Abstract:
Solving performance problems is one of the most difficult tasks of a DBA. The goals of this session are: Learn a methodology for diagnosing and resolving SQL Server Performance problems. Determine if your hardware is adequate for the workload you are placing on it. Understand how to use the free tools that Microsoft offers to zero in on your stressed hardware components, and the sql server queries and stored procedures which are stressing them. Grasp the power of indexing, and minimize locking.
Speaker(s): Hilary Cotter,
Abstract:
Many DBAs and developers are faced with tuning poorly performing SQL statements. There is no way to learn everything you need to know about SQL tuning in an hour, but you can learn a process to employ when badly written SQLs are ruining database performance. However, many tuning projects fail because the process being used is inefficient. This presentation will walk through a process Confio Software uses with great success and will include topics such as: SQL diagramming, wait type data, column selectivity, and several more that will help you succeed on future tuning projects.
Speaker(s): Dean Richards,
Abstract:
This session will be a basic review of SQL 2005 Service Broker. It will explain what SQL 2005 Service Broker is, and how can it be used. The presentation will include a number example applications and demos of basic SQL 2005 Service Broker.
Speaker(s): Said Salomon,
Abstract:
I will show how to take advantage the interactive features of SQL Reporting Services to allow your users to drill down from summaries to the details that drive them. Address some of the simple to implement features that can make your existing reports much more useable to your end users. Topics to be covered include: Graphing, Interactive Sorting, Grouping, and Drilldown Reports.
Speaker(s): Matt Van Horn,
Abstract:
Pushing data to a web client over HTTP has always been a hassle. There are ways to do it using Flash or Silverlight, but they all require a component and/or separate install on the client as well as obscuring the semantic value of the data. Wouldn't it be nice if you could just use Plain Old Semantic HTML (POSH) and regular JavaScript to simplify client requirements? Comet (aka long-polling) allows you to open a channel to the client and push data from the server down asynchronously. This session will walk you through the Comet architecture using .NET and JQuery to push POSH or JSON data to a web client in a performant and scalable way.
Speaker(s): Terry Weiss,
Abstract:
This will be an introduction and lessons learned from early adopters on PowerPivot for Excel and SharePoint 2010. We'll explore the new features and scalability that this new feature brings to the end user, developer, and BI analyst. Session is very demo focused and interactive.
Speaker(s): Adam Jorgensen,
Abstract:
Not all SQL performance problems should be solved by throwing more hardware and more indexes at the database. A better query will always outperform any hardware only solution since a better query will still run faster on better hardware than a poorly written one. Load your T-SQL development toolbox with tips, tricks, and techniques to make your sloth like database applications dance and sing.
Speaker(s): Joshua Lynn,
Abstract:
Bill will demonstrate the latest Microsoft patterns and practices for SQL Server data access. This includes LINQ query syntax, Entity Framework data modelling, REST web services using WCF Data Services, and client side data models with WCF RIA Data Services.
Speaker(s): Bill Wolff,
Abstract:
This presentation will cover some of the important features for developers in SQL Server 2008. Topics covered include the FILESTREAM attribute, Change Data Capture, the MERGE statement and Row Constructors. There will be demos for most of the topics.
Speaker(s): Sharon Dooley,
Abstract:
This is a high level intro of how to develop for SQL Azure either using traditional ASP.Net IIS or Windows Azure as a host. I will go over the differences between SQL Azure and Azure Storage. Considerations that need to be made if using Azure Cloud Hosting with ASP.Net Authentication and session states as well as how to use SQL Azure as a Sql(Membership,Role,Profile)Provider.
Speaker(s): Matt Van Horn,
Abstract:
Review installation, configuration, and support issues related to multi-node Windows 2008 clusters for production databases, and Windows 2008 Hyper-V Clusters for test and development environments. This session will cover design decisions for networking, storage, and server selection for both environments, as well as best practices based on our experience in the field.
Speaker(s): Paul Begley,
Abstract:
I will talk about Database design - Normalization and Normal forms (1NF, 2NF, 3NF, BCNF) - Insert/Update/Delete Anomalies and how to solve for them - Techniques of normalization - Who Dat? - Denormalization - Common Sense things to do when working with databases
Speaker(s): Raj More,
This is a list of speakers from the XML Guidebook records. The details and URLs were valid at the time of the event.
Contact: http://blogs.msdn.com/b/ajmee/
A.J. Mee is a Principal for Microsoft. He has dedicated his entire 20-year career to the field of BI and Database. He has served in varied roles from development to project management to people leadership to sales. He is a popular speaker who frequently presents on a wide variety of BI-related topics at numerous conferences and events. He came to Microsoft as part of its acquisition of ProClarity in 2006. A.J. holds a B.A. in Computer Science from LaSalle University.
Joshua Lynn started programming databases when he was 14. Professionally, he has been in the IT industry since 1991 specializing in database design. His experience with SQL server goes back to version 6.5 where he thought triggers were neat. Currently, he is still working on doing useful things with SQL server and believes CTEs have enhanced his professional life. In his spare time, he mentors high school students in building robots. He is also an advocate for Deadlock Victims’ rights.
LinkedIn: http://www.linkedin.com/in/billjwolff
Contact: https://mvp.microsoft.com/en-us/PublicProfile/10864?fullName=Bill%20Wolff
Bill Wolff is an independent consultant, trainer, and architect specializing in Microsoft development technologies under the name Agility Systems. He ran the consulting firm Wolff Data Systems for 15 years and directed armies of consultants in the dot com world. Bill is founder and President of the philly.NET user group and involved in several other user communities. Bill is a 15 year Microsoft MVP in .NET and SQL.
Mark Scott is a senior Business Intelligence consultant with Microsoft Consulting Services. He has over a decade of deep technical experience with the Microsoft SQL Server platform and has built business intelligence systems for manufacturing, financial, healthcare and pharmaceutical firms throughout the nation. He has authored a number of books and spoken internationally on Business Intelligence and database topics.
Contact: http://www.KevinSGoff.net
Kevin S. Goff (http://www.kevinsgoff.net) is a Microsoft SQL Server MVP Database architect/developer/speaker/author Regular columnist for CoDe Magazine on .NET, SQL Server, and Business Intelligence topics Frequent speaker at community events in the Mid-Atlantic region. Host of BDBI Radio (http://www.bdbiradio.com), a weekly webcast on SQL/BI topics
Contact: http://www.anythingtheycando.com/blog/index.php
Matt, a seasoned developer with proficiencies in a wide-array of programming languages and platforms, focuses on creating flexible and dynamic code tailored to the specific needs of customers. Matt is an experienced presenter, regularly speaking at Usergroup meetings and Code Camps.
LinkedIn: http://www.linkedin.com/in/billjwolff
Contact: https://mvp.microsoft.com/en-us/PublicProfile/10864?fullName=Bill%20Wolff
Bill Wolff is an independent consultant, trainer, and architect specializing in Microsoft development technologies under the name Agility Systems. He ran the consulting firm Wolff Data Systems for 15 years and directed armies of consultants in the dot com world. Bill is founder and President of the philly.NET user group and involved in several other user communities. Bill is a 15 year Microsoft MVP in .NET and SQL.
LinkedIn: http://www.linkedin.com/in/dxclark/
Contact: http://drclarkblog.wordpress.com/
Dan Clark is a senior data analytics consultant. He is focused on all things data analytics and training others how to get value from their data. Dan has published several books and numerous articles on .NET programming and data analytics. He is a regular speaker at various developer and database conferences and user group meetings and enjoys interacting with the Microsoft developer and database communities. His latest book Beginning Power BI published by Apress is a will get you up and running with self-service data analytics on the Power BI platform in no time.
LinkedIn: https://www.linkedin.com/in/wadamjorgensen/
Contact: http://www.pragmaticworks.com
As President of Pragmatic Works Consulting Adam drives market strategy, sales, partnerships, implementation and thought leadership. He has over 15 years of experience helping companies use their data to fuel their growth. Adam has been wowing audiences around the world for over a decade. He has delivered hundreds of sessions, published over a dozen books and hundreds of online videos and webinars on data and cloud topics. His passion is growing companies and mentoring leaders and companies to help them achieve their dreams.
Contact: http://www.KevinSGoff.net
Kevin S. Goff (http://www.kevinsgoff.net) is a Microsoft SQL Server MVP Database architect/developer/speaker/author Regular columnist for CoDe Magazine on .NET, SQL Server, and Business Intelligence topics Frequent speaker at community events in the Mid-Atlantic region. Host of BDBI Radio (http://www.bdbiradio.com), a weekly webcast on SQL/BI topics
Contact: http://www.anythingtheycando.com/blog/index.php
Matt Van Horn is a Sr. Consultant with Services group at Infragistics, a world leader in user interface (UI) development tools and experts in the User Experience (UX) market. In his current role, Matt is responsible for working with our customers to develop innovative applications.
Contact: http://paulbegley.com
Paul Begley is a Solution Architect with Continental Resources, Inc. He has over 20 years experience in database, messaging, and related enterprise technologies. His background includes communication and engineering application development projects for Raytheon Engineers (Philadelphia, PA and Cork, Ireland) as well as independent consulting. Continental Resources provides consulting and integration services for Fortune 1000 clients throughout the Northeast United States.
Said Salomon has over 25 year experience as an Information Technology Professional. He has a vast array of abilities in the field in the areas of Network, Desktop Support, DBA, Staff Project Management, Application Software Development, Business Analysis and Quality Assurance. Said carries Microsoft certifications as a MCTS, MCPS, and MCNPS, and multiple certifications from the Insurance Institute of America. Current Said is a DBA at Unitrin Direct Insurance.
Terry Weiss is the Chief Technical Office of the Uncommon Individual Foundation. He has been working with SQL Server since version 6.5 and was a member of the launch team for .NET versions 1 through 3.5 and SQL Server 2005.
Sharon Dooley has worked with SQL Server since its first release. Her major areas of specialization are database design and performance tuning. She has a consulting practice and teaches and writes courses for Learning Tree International, where she is SQL Server Curriculum Architect. Sharon is an active member of PASS and leads the DBA Virtual Chapter.
Hilary Cotteris a 20 year IT veteran who has answered over 20,000 questions on the forums. Some of them correctly. He specializes in HA technologies, especially replication, performance tuning, full-text search, and SQL Server Service Broker. Hilary is also an author, or contributor on a number of books on SQL Server.
Joe is a Senior Software Engineer for RDA. Joe has been working with SQL Server since version 6.5 and prior to that he worked with Sybase and Informix as a developer, DBA, consultant, mentor and instructor. Along with being an active member of RDA's BI Evangelist team, Joe's recent work has focused on SQL Server 2008's BI Components. Joe has extensive presentation and instructing experience and thoroughly enjoys teaching and lecturing about various SQL Server topics at PSSUG, PASS ITEC.
Contact: http://www.jamestmoran.com
James T. Moran is an independent consultant with 30 years experience in software development, business process reengineering, and mathematical modeling. Jim is a contributing author of the Borland Press book “Database Developer’s Guide for Borland C++”. He has frequently been called upon to present complex technical concepts to C-level executives. Jim has taught senior courses in both Electrical Engineering and Music Composition at Stevens Institute of Technology.
LinkedIn: https://www.linkedin.com/in/vince-napoli-777691
Vince is a Business Intelligence Architect with Anexinet in Blue Bell. He has worked with Data Warehousing and Business Intelligence since 1996, with a focus and specialty on SQL Sever since 1999, and an BI Architect since 2001. Vince is a frequent presenter at PSSUG, former president and current board member of PSSUG, and has presented at several SQLSaturdays and also a Code camp presenter in the Philadelphia area.
LinkedIn: http://www.linkedin.com/pub/dean-richards/6/167/a90
Dean Richards is a Senior DBA for DBMS Insights and has helped hundreds of companies solve database and virtualization performance issues. Dean has over 20 years of experience in both development and database administration and has focused his entire career on performance tuning of Oracle and SQL Server environments. Most recently Dean has focused on the trend to virtualize and move databases to the cloud.
Contact: http://www.anythingtheycando.com/blog/index.php
Matt Van Horn is a Sr. Consultant with Services group at Infragistics, a world leader in user interface (UI) development tools and experts in the User Experience (UX) market. In his current role, Matt is responsible for working with our customers to develop innovative applications.
I am a Business Intelligence developer, having transitioned over from transactional systems a few years ago. I find business use of data extremely fascinating. I have recently moved to Baltimore, and I love life here.
The following is a list of sponsors that helped fund the event.
St Joseph's Haub School of Business


In this game you will be paired up with one other player and randomly assigned one of two roles: the proposer or the responder. Your partner will be assigned the remaining role.
Click 'Next' to continue.


This function is soft deprecated; use qualtrics_api_credentials
instead. This function registers the user's qualtrics API key, base url and
other options for the remainder of the R session. This function only needs to
be called once (at the beginning of each R session). You may also use a
configuration file. See qualtRicsConfigFile
. Note that you must
pass both an api token and a base url if you call this function for the first
time in a session and you're not using a config file. Thereafter, you can
pass these options individually.
registerOptions(verbose = TRUE, useLabels = TRUE, convertVariables = TRUE, useLocalTime = FALSE, dateWarning = TRUE, ...)
| verbose | Logical. If TRUE, verbose messages will be printed to the R console. Defaults to TRUE. |
|---|---|
| useLabels | Logical. TRUE to export survey responses as Choice Text or FALSE to export survey responses as values. |
| convertVariables | Logical. If TRUE, then the |
| useLocalTime | Logical. Use local timezone to determine response date values? Defaults to FALSE. See https://api.qualtrics.com/docs/dates-and-times for more information. |
| dateWarning | Logical. Once per session, qualtRics will emit a warning about date conversion for surveys. You can turn this warning off by changing the flag to FALSE. Defaults to TRUE. |
| ... | Either one or both of 'api_token' and 'base_url' to register the Qualtrics api key and institution-specific root url manually. (see example). See also |
See https://github.com/ropensci/qualtRics/blob/master/README.md#using-a-configuration-file for more information about the qualtRics configuration file. See: https://api.qualtrics.com/docs/authentication to find your Qualtrics API key and https://api.qualtrics.com/docs/root-url for more information about the institution-specific root url.
# NOT RUN { # Register your Qualtrics credentials if you haven't already # Note that you need to pass both the 'api_token' and 'base_url' # parameters if you call this function for the first time. registerOptions( api_token = "<YOUR-API-TOKEN>", base_url = "<YOUR-ROOT-URL>" ) # Register a different root url registerOptions(base_url = "<YOUR-OTHER-ROOT-URL>") # Retrieve a list of surveys surveys <- getSurveys() # Retrieve a single survey mysurvey <- getSurvey( surveyID = surveys$id[6], save_dir = tempdir(), verbose = TRUE ) # You can use the same parameters as those found in the qualtrics API documentation # Found here: https://api.qualtrics.com/docs/csv mysurvey <- getSurvey( surveyID = surveys$id[6], save_dir = tempdir(), startDate = "2017-01-01", endDate = "2017-01-31", limit = 100, seenUnansweredRecode = "UNANS" ) # }


*Email Address:
What type of learner best describes you ?
Choose things that can make you a better learner :
Your Comments/ Suggestions :
"


DEFENDING YOUR LIFE A film review by Chuck Dowling Copyright 1997 Chuck Dowling
Defending Your Life (1991) ***** out of ***** - C:Albert Brooks, Meryl Streep, Rip Torn, Lee Grant, Buck Henry.
Albert Brooks is probably the smartest comedic talent working in films today. He wrote and directed "Defending Your Life" which is one of the brightest and funniest films of all time.
Brooks plays Daniel Miller, a business executive who is killed in a traffic accident. He wakes up in Judgment City, a waiting grounds of sorts where you have to "defend" your life on Earth. A trial is held for every person who dies to see if they have evolved enough to pass on to the next step in the universe. If they don't pass they are sent back to Earth to start all over again and eventually if that person never evolves enough, they are "thrown away". The trial is like a trial here on Earth with prosecutors, defenders, and judges. During the trial, moments from the person's life are shown on a big screen in the courtroom, while the two lawyers battle to prove if the person has led a good life and overcome his or her fears.
This is a brilliant idea for a film and Brooks pulls it off perfectly. He takes what people could consider a controversial subject (life after death) and makes a film which I don't see how it could be offensive to anyone. It's sweet, charming, romantic (during his stay, Brooks meets Meryl Streep and they fall in love), it's clean (Rated PG), and most importantly, it's funny. This is one of those rare films where every joke is a winner. The music by Michael Gore is excellent. And the supporting cast does an outstanding job, especially Rip Torn as Daniel's defender.
"Defending Your Life" is Albert Brooks' best film to date and those who enjoy this film should also enjoy "Real Life", "Lost in America", "The Scout", and "Mother". All are written and/or directed by Brooks.
-- Chuck Dowling Visit Chuck's Movie Reviews at http://users.southeast.net/~chuckd21/ Over 1,600 movies rated and/or reviewed! Movie news, box office reports, film related links, and reader's polls and reviews.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Davids the latest linked to Bok head coaching position
Cape Town - Former Southern Kings boss Deon Davids is the latest man linked to the Springbok head coaching position.
According to the Sunday Times, Davids is "a strong candidate" to become the new coach and has been in discussions about a role since before the Rugby World Cup.
Davids was at the helm of the Southern Kings between 2016 and 2019. Under his guidance, the Port Elizabeth franchise showed promise in their final season of Super Rugby in 2017 when they won six matches.
However, the team struggled in their first two seasons in the PRO14, winning just three out of 42 games before Davids was sacked before the current campaign.
The Springbok head coaching position has become vacant after Rassie Erasmus announced that he will step down to instead focus on his director of rugby role at SA Rugby.
Netwerk24 earlier reported that Jacques Nienaber, the current Springbok defence coach, was in the inside lane to become the next head coach.
The new Bok coach will report directly to Erasmus.
- Compiled by Herman Mostert


club-app-2021
KnightHacks Club app for member tracking and other admin purposes.
Building on iOS
For the very first build on iOS, follow these steps. For all subsequent builds, these steps will not be needed.
- Navigate to project directory, then to the ios directory.
cd ios
- Run pod install. This step will take about 5 minutes so feel free to step away for a while.
pod install
- Build the app as usual
flutter run
The first build will take longer than usual but subsequent (cached) builds will be faster. First build in this situation would be builds after some period of time (ie. Building for the first time that day or some amount of hours later when it is no longer cached)
Building on Android
Build and run as usual.


It is already installed. If you ever want a "fresh" install, you can do this (but really don't need to for this tutorial):
# Hint: You don't need to do this!
# This is just an tip for the future.
brew install python
It is already installed, but you need some extras
sudo apt-get update && sudo apt-get upgrade
sudo apt-get install python-dev
sudo apt-get install python-pip


The Software Citation Project started when a group of research software engineers realised that a "chicken and egg" (discussed below) problem exists with citing softwares. The project was discussed in great detail at various sprints and hackathons by researchers and software engineers from all around the globe. The need to solve this problem resonated with the whole community. The project took its shape in the eLife Innovation Leaders 2020 program and is currently managed by Sarthak Sehgal.
Open source softwares, packages, datasets and the alike should be as easily citable as research articles. A common problem the authors of such softwares face is establishing citability to their softwares. Attaching a Digital Object Identifier (DOI) to your software is highly recommended but it may not be enough. A DOI is a persistent identifier or handle used to identify objects uniquely, standardized by the International Organization for Standardization (ISO).
Ideally, your project should have a DOI to uniquely identify your work and a CITATION.cff
file which provides rich meta-data and information about citing your software. CITATION.cff files are plain text files with human- and machine-readable citation information for software. Code developers can include them in their repositories to let others know how to correctly cite their software. Read more about the Citation File Format (CFF) here. A CITATION.cff
looks like:
The "chicken and egg" problem: The existing workflow does not allow you to incorporate a DOI (using tools like Zenodo and Zotero) and a CITATION.cff
easily. Zenodo provides you with a DOI for your software once you release the version and upload the release file on Zenodo. Only after obtaining the DOI can you include it in the CFF file. As a result, your GitHub repository might contain the CFF file but it would not be in the release package (as you released the new version before updating your CFF file).
The Software Citation Project aims to solve this problem. Using our platform, you can generate a DOI and a CFF file for your upcoming release. Then, once you update the CFF file on your repository, create a release and publish it using Zenodo!
Coming soon: Publish release using our platform integration with Zenodo!


Work Summary
| Order Number | Product Name | Email ID | Download Resume | Download Image | View Order Detail | Upload Resume | Job Status | Rejection Reason | Number of Times Rejected | QC APPROVAL | Final Status |
|---|
| User | Activity | Time | Status | |
|---|---|---|---|---|
Silje Larsen |
Dog the quick brown |
10:23 AM |
Delayed |
|
Ida Jorgensen |
The quick brown fox |
3:28 PM |
Done |
|
Albert Andersen |
Jumps over the lazy |
2:37 PM |
Missed |
|
Ida Jorgensen |
The quick brown fox |
4:28 PM |
Done |


Graph Class
The Graph Jermaine model controls the properties for an individual Graph.
Constructor
Graph
()
Item Index
Properties
Methods
findNearestAxis
-
x
-
y
-
orientation
Parameters:
-
x
Object -
y
Object -
orientation
Object
initializeGeometry
-
width
-
height
-
graphicsContext
Initializes the Graph's geometry. Determines the width and height of the Graph's windowBox
,
paddingBox
and plotBox
; calls its Axes' and Legend's implementations of
initializeGeometry
.
Parameters:
-
width
IntegerWidth of the multigraph's div
-
height
IntegerHeight of the multigraph's div
-
graphicsContext
Object
pauseAllData
()
registerCommonDataCallback
-
callback
Convience function for registering callback functions on the Graph's Data
models. Adds
dataReady
event listeners to each of the Graph's Data
models.
Parameters:
-
callback
Function
resumeAllData
()
Properties
background
Background
Child model which controls the properties of the Graph's Background.
multigraph
The containing Multigraph object
paddingBox
Stores the computed width and height of the Graph's paddingBox.
plotarea
Plotarea
Child model which controls the properties of the Graph's Plotarea.
plotBox
Stores the computed width and height of the Graph's plotBox.
plots
Plot
Jermiane Attr_List of the Graph's Plots.
window
Window
Child model which controls the properties of the Graph's Window.
windowBox
Stores the computed width and height of the Graph's windowBox.