Benevolent young Namibian assists vulnerable learners …One school done, 99 more to go
by New Era ReporterHome \ Youth \ Benevolent young Namibian assists vulnerable learners …One school done, 99 more to go - New Era Live
Home \ Youth \ Benevolent young Namibian assists vulnerable learners …One school done, 99 more to go - New Era Live


Extension classes to GDipC as container for several helper classes
hoppfrosch: Original
Version of the class
There is no setter available, since this is a constant system property


{% extends "base_project.html" %} {% load humanize static hc_extras %} {% block title %}Prometheus Integration for {{ site_name }}{% endblock %} {% block content %}
{{ site_name }} provides a Prometheus-compatible metrics endpoint for each project. The endpoints are secured using each project's read-only API key. If your team uses Prometheus, you can configure it to scrape {{ site_name }} and have up-to-date check and tag status values available in Prometheus.
Look up your project's read-only API key in Project Settings › API Access.
If you have not generated API keys before, you will need to do that first.
Edit Prometheus configuration and add a new section in the
scrape_configs
section.
- job_name: 'healthchecks-{{ project|slugify }}' scheme: {{ site_scheme }} metrics_path: /projects/{{ project.code }}/metrics/YOUR-READ-ONLY-API-KEY static_configs: - targets: ['{% site_hostname %}']
Reload Prometheus' configuration. You should now start seeing {{ site_name }} data appear in Prometheus.


--- layout: post esbma_id: 1766 title: Mercurial, Subversion, and Wesley Snipes date: 2009-04-06 13:55:00 ---
People keep asking me why I don't talk more about Mercurial in this series of blog entries. There's a simple answer to that question:
Mercurial isn't very interesting.
Wait, that didn't come out quite right. Let me try again:
Git is Wesley Snipes.
Mercurial is Denzel Washington
Hmm, that probably needs further explanation.
I am the founder of a version control software company. I've done lots of writing about the topic here on my blog. Currently I am in the process of revising and expanding all those writings to turn them into a book.
As part of that effort, I have undertaken an exploration of the DVCS world. Several weeks ago I started writing one blog entry every week, mostly focused on DVCS topics. In chronological order, here they are:
Along the way, I've been spending some time getting hands-on experience with these tools. I've been using Bazaar for several months. I don't like it very much. I am currently in the process of switching to Git, but I don't expect to like it very much either.
Why am I using these tools if I don't like them? Because I want the experience. I don't want to write hearsay. I want to live with these tools and see what I learn.
So why don't I write about Mercurial? Because I'm pretty sure I would like it.
I chose Bazaar and Git for the experience. But if I were choosing a DVCS as a regular user, I would choose Mercurial. I've used it some, and found it to be incredibly pleasant. It seems like the DVCS that got everything just about right. That's great if you're a user, but for a writer, what's interesting about that?
Denzel Washington is a great actor.  What's interesting about that?
In contrast, Wesley Snipes gives the world lots of things to write about. Tax evasion. Conviction for reckless driving. Martial arts.
People admire Denzel Washington. But Wesley Snipes is simply more interesting.
I admire Mercurial. But Git is more interesting. Like Snipes, Git is an odd juxtaposition of great power with some quirky flaws and failings.
One more thing:
People also ask me why I don't write more about Subversion. That's easy too:
Subversion is Morgan Freeman.


After reviewing the book Instant Kali Linux, I thought why not give it a try and actually do the things better I nagged about. Well, for one thing it's a lot of work and I try not to start projects that are way too demanding and end up never finishing them.
But maybe it's time for just such a project and who knows, maybe I'll even finish it. In any case, you can read along while the book developes and hopefully give some feedback.
Disclaimer: All the information provided on this document is for educational purposes only. The site and it's author is in no way responsible for any misuse of the information.
I will continue writing this book whenever I find time to. This book comes free of charge but without any warranty or promises :).
- Installation Guide
- Getting started with the GUI
- The Bourne Again Shell
- Information Gathering
- To be continued...
It is hard for me to decide how far I should go into detail on a single tool. I try to explain everything, that I think starters should now and add links to further ressources as the book evolves. If you miss any information or want to share a link you think might be of value to the readers, please contact me at<EMAIL_ADDRESS>Introduction to Kali Linux Back to Index
For those of you that don't know what Linux is, this book might be the wrong source to get started. I'm not saying that you shouldn't read this book, but there are better guides on getting started with Linux. Since I hate it when a book suggests, that I should read another book before I can get started reading about what interests me, I will give a quick introduction to Linux as well.
If you already know how Linux works and spent your fair share of time on a console, you can skip to chapter 5. If you just saw a picture of your favourite gaming console flash before your inner eye, you might want to keep reading.
A Linux distribution such as Debian, is based on the Linux kernel. A distribution is basically a collection of tools that form an OS. Many distros are built for a specific purpose, there are the ones trying to give users the best out-of-the-box experience, the ones that let you do everything manually, the ones that are focused on providing stable packages, or the ones providing the most on the edge, up to date packages, and of course the ones that provide very specific purpose such as distros that are used as firewalls, intrusion detection systems and so on.
Kali is a Linux distribution, but instead of being made from scratch, it is based on the Debian distribution. This allows its maintainers (the guys over at offsec.com) to focus on the huge collection of already installed tools that are useful for penetration testers, exploit developers and almost anyone who's into IT security. Even if you're working as an system administrator, many of these tools can come in handy.
If you need information on Kali Linux and you don't find it here, you should try the official documentation.
Installation Guide Back to Index
So how do you get Kali Linux? First of, you need to download the .iso image from kali.org. Do yourself a favor and download the image via torrent, it's much faster that the regular download.
In this book, I will be working in a Kali Linux VM running in Virtualbox, because it's free, cross platform and has everything we need. If you prefer VMware Workstation or any other virtualisation or even want to install it directly on your hardware go ahead. The later has of course the benefit of having direct access to GPU and CPU, which comes in handy if you want to crack passwords.
I will not go through the process of installing Virtualbox itself, and I won't show a picture for every step.
If you have a second HDD available, (not partition, an internal physical harddrive or esata/USB3) you can put your vms virtual disk on this disk, which improves the overall performance. To do that, go to
Start Virtualbox and click on "New" to create a new virtual machine. Enter a name for your vm and choose Linux as type and "Debian (64 bit)" as version. I personally like to set my vms RAM to 2048MB, but you can work with 1024MB if you don't have enough memory.
Create a new virtual disk and choose the VDI format. I normally use Dynamically allocated, which takes only the space on your disk the vm really needs. If you have enough space you might want to choose Fixed size, which takes longer to create to since it allocates the whole disk size but it's also boosts the vms performance.
The disk should at least have 12GB of space, but I like to create 50GB disks. That way I usually don't run out of space - there is nothing more annoying than running out of disk space while working on something.
When you're done, start the vm. Virtualbox will asked you for a DVD drive or .iso file to boot from since the hdd is still empty. Click on the small folder sign to browse through your file system and select the kali linux image you have downloaded earlier. You should be presented with a boot menu. Select the Graphical Install entry. If you want to leave the window, press the right [CTRL] key on your keyboard.
The graphical installation should be self-explanatory. If you speak english (which you probably do since you're reading this) choose english and en_US.UTF-8 for language and locales. It makes your life a lot easier in my experience.
Wait for the setup to load everything, then choose a hostname for your vm, enter your domain name (if you have one) and set a root password.
Choose the entry "Guided - use entire disk", select the previously created virtual hdd and install "All files in one partition". After that, you'll be shown a summary of your disk partitioning which you can accept by clicking continue. At "Write changes to disk?" select Yes and move on.
Answer the following questions like I did.
"Use a network mirror?" Yes.
"HTTP proxy information" leave blank.
"Install the GRUB bootloader to the master boot record?" Yes.
Wait for Kali to reboot after installation and boot your new OS. Virtualbox will automatically boot from your hdd instead of the .iso.
Notes on VMware Workstation
If you want use the preinstalled image (which isn't available from kali.org anymore) of Kali in VMware Workstation 8 or lower, you need to edit the .vmx and change the following line
virtualHW.version = "9"
to your version of Workstation.
Also, if you use the preinstalled image, make sure you change the default login credentials (root/toor). For those new to linux, if you enter your new password you won't get any visual feedback - the advice is not to put in a blank password!
root@kali:~# passwd root
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Install Virtualbox GuestAdditions
The VBox GuestAdditions make your life much easier and therefore should be installed. To do so, login to Kali and open up a terminal by clicking on the black box with the > sign in it on the top bar.
A terminal windows should open, which shows you the following promt.
root@kali:~#
This prompt tells you everything you need to know about your user in the terminal. Root is the user you are executing programs as, @kali indicates the host which you are currently on. This can change if you connect to other hosts, for example using ssh. After : comes the path of your current location, where ~ stand for your home folder. The root user has it's home in /root/, other users normally have their home folders in /home/username/. Lastly, # indicates that you are an administrative user, otherwise there would be a $ instead.
No that you know what the prompt means, enter the following commands to install the Virtualbox GuestAdditions.
root@kali:~# apt-get install virtualbox-guest-additions virtualbox-guest-dkms -y
root@kali:~# reboot
From now on, whenever you see a prompt like this you are expected to run a command on the terminal in the context of the specified user.
Configuring and updating the system
A lot of tools in Kali need root permissions, which is the ultimate system administrator. Root is allowed to do everything on your Linux machine, which is why you shouldn't run everything as root. I always create a normal user in Kali, in this case called hashtagsecurity. This allowes me to run programs like firefox or chrome as normal user.
root@kali:~# adduser hashtagsecurity
You don't have to fill out the information, but make sure to set a password.
Now logout (click root in the upper right corner) and login as your newly created user.
To run commands as root, you can either open a terminal and enter
su
Which will ask you for your root password, or open the root terminal at "Applications -> Accessories -> Root Terminal (Red Logo)".
Last but not least, you need to update Kali. This is something you should regularly do, so you don't miss new features.
root@kali:~# apt-get update
root@kali:~# apt-get upgrade
Apt-get is the package manager used to install, search, remove and upgrade packages. With apt-get update
you can check for new updates and with apt-get upgrade
you can install them.
Getting started with the GUI Back to Index
By default, the graphical user interface should look like this.
If you have installed the GuestAdditions you can jump into fullscreen mode by pressing the right [CTRL]+[F] keys.
Unlike Windows, Kali Linux has two systembars. The one on the bottom contains open programs and the switcher applet in the right corner to change between multiple virtual desktops. At the topbar you can see from left to right the Applications and Places menus, as well as a few shortcuts to iceweasel (firefox), the commandline, a calendar widget, sound options, remote connections (RDP) and user settings.
If you want to change system settings take a look at places, otherwise we will focus on the Applications menu, specifically the Kali Linux submenu, which provides us with most of the on board security tools sorted in categories.
Among a few others, the categories listed in this menu entry will also be the topics of the coming chapters.
Menu overview and standard tools
Here is a quick introduction to the most tools you can find in the menu outside the "Kali Linux" submenu.
One important thing about Kali is, that you can open any program with [ALT]+[F2], if you know its name. So if you already know what program to run, don't bother clicking through the menu.
Chat:
Applications -> Internet -> Empathy
Empathy is a chat program that supports the following protocols
Jabber, Facebook, Google, AIM, gadugadu, GroupWise, ICQ, IRC, MSN, mxit, myspace, sametime, Yahoo, zephyr
Browser:
Applications -> Internet -> Iceweasel
Iceweasel, the Debian version of Firefox is installed by default. If you need Chromium (the Linux version of Google Chrome), you can install it with
root@kali:~# apt-get install chromium-browser
and start it from Applications -> Internet -> Chromium
.
Note that Chromium will not run under root unless you change some bytes in the executable binary. It's easier to use a normal user for everyday tasks and a root shell for those who need administrative privileges.
Documentation:
Applications -> Accessories -> Zim Desktop Wiki
There are different ways to keep notes and document your process while working in Kali. My personal favourite is Zim Desktop Wiki, which with I do all my documentation. It is, as the name suggests, a typical wiki with markup functionality only that it runs as a desktop application.
I won't go into detail about Zim, because it's pretty self-explanatory.
Other tools on board are the notebook KeepNote, as well as the typical text editors like LeafPad and GVIM. A sidenote on the later - if you don't know VIM, which is the same as GVIM but for commandline (cli), you should absolutely try it!
Applications -> Office -> KeepNote
Applications -> Accessories -> LeafPad
Applications -> Accessories -> GVim
VIM works very differently than your normal editor but it's a very powerful cli editor. What you should know is that VIM operates in modes. You can leave any mode with the [ESC] key and enter them with their shortcuts. In [v]isual mode you can select text, which can than be used in VIM commands. The most important mode is [i]nsert, which lets you insert and edit text.
Here is a list of the most important VIM commands (leave any modes first with [ESC])
To save the file enter
:w
To quit enter
:q
To quit without saving
:q!
To quit with saving
:wq
To save and force overwrite
:w!
Search in file
/searchterm
Search and replace all
:%s/search/replace/g
VIM has a lot of features (just search for VIM cheatsheets), but this should help you get started. It is important to know how to work with a commandline editor if you don't wanna be stuck at some point. Many servers don't have a graphical interfaces installed, which leaves you only with commandline tools.
If you need a plain PDF reader, Evince is already installed.
Applications -> Office -> Document Viewer
Programing:
There are a few tools for programmers already installed. If you want to quickly write a script or small program in python, this will probably help you.
Under Applications -> Programming
, you can see the tools PyCrust, XRCED, GRC and the ArduinoIDE.
PyCrust is an interactive python shell, and not an IDE. It is good to try out python snippets, but if you want to program in python you should try PyAlaMode which you can start from the commandline or [ALT]+[F2] by running pyalamode. If you want to create a GUI for your python program, you can use XRCed, which is a GUI editor for wxPython GUI design. XRCed uses XRC, which is a XML-based interface markup language used by wxWidgets.
The ArduinoIDE is the integrated development environment (IDE) for the Arduino hardware board.
GRC is the GNU Radio Companion, and a graphical user interface to develop GNU Radio applications. GNU Radio is a software library that you can use to develop complete applications for radio engineering and signal processing.
Next up
That ends our quick tour through the main menu and the standard tools you might use. Let's get familiar with the commandline, which in this case is the Bourne Again Shell (bash). Once you know your way around the bash, we will get started on the differen tools Kali has to offer.
But first, since you will be needing terminals a lot it's best to keep a shortcut in the upper system bar of both, the normal and the root terminal. A shortcut of the default terminal should already be in the bar. To get the root terminal there as well, browse to Applications -> Accessories and drag/drop the entry "Root Terminal" with the red terminal icon to the bar.
To delete or edit a shortcut icon, you have to press [Super]+[ALT]+[RMB]. This brings up the context menu from which you can choose “edit” or “delete. This combination also works on the top and bottom panels. (If you have problems, try [Alt]+[RMB] instead.)
To make things clear, in Linux the "Super" Key is the one with the Windows logo. And just in case you don't know, RMB = Right Mouse Button.
Working with a terminal Back to Index
There are many shells you can choose from and as for so many things in Linux, the choice is completely yours. The Bourne Again Shell, or bash for short is the default shell in Debian and Kali Linux. I won't go into the history but will go directly into how to work with it. If you want to read up on it, take a look at the wikipedia article.
During the Installation Guide, we already used the terminal and thus the bash. The bash is located at /usr/bin/bash, which is a path in the filesystem. If you come from Windows, some of this stuff may be new to you, so here's a short introduction.
Filesystems work different in Linux
Windows uses file paths like C:\Programs\Company\AwesomeTool\awesometool.exe
, while Linux uses
/usr/bin/bash
.
In Windows, executable files are usually marked as .exe files. In Linux you can execute any file if it has the executive bit set. Therefore, you don't necessarely need a file ending. You could rename the bash executable to bash.linux or even bash.windows and you would still be able to start it - though it would mess up your system if bash can't be found.
The biggest differences for newcomers are that Linux uses /
instead of \
in file paths and that there are no drive letters like C:\
or D:\
.
Drives are mounted to file paths, which means that you open drives just like you open any folder. The C:\
drive is equal to /
which is also known as the root directoy. The root directory is, as the name suggests the root of all paths and the highest object in file path hierarchy. Don't get confused by /root/
, which is the home folder for the user "root.
The root user is the most powerfull administrative user Linux has to offer, so executing commands as root should always go hand in hand with the "think before fire" rule.
A nice example for this is the ever so famous rm -rf /*
command, which deletes every file on your harddrive and leaves you with an system that defines the word "destroyed".
The rm
, or remove command is used to delete files, the -rf
switches stand for recursive and force, which tells rm to delete files as well as folders that hold further files or folders. The last part /*
states, that rm should delete every (*) file/folder in the root directory. As you can see, using root to execute commands can be the last command you execute on this system. That is why you have to make sure you understand every command you enter (especially when it comes to copy/paste commands someone posted in the web).
Further partitions are usually mounted in the /media/ folder. The drives are listed under /dev/sdXY, where /dev/ is the path containing all devices, sd equals sata drive, X stands for the drive identifier (a-z) and Y is the partition number. So your system partition is usually /dev/sda1, sda being the disk and sda1 the first partition on it. These are just mappings though, the real identifier (if you ever have problems) can be found by entering the following command:
ls -lah /dev/disk/by-uuid/
This command lists (ls -lah) the mapping of /dev/sdXY to the disk UUID (Universal unique identifier).
If you need more information about your harddrive, try
fdisk -l
or fdisk -l /dev/sdXY
This gives you more information about all or a specified drive. -l
stands for list, so you can't break anything with this command (it still needs root though), but be careful with fdisk. It is used to format and partition disks (among other functions).
If you use fdisk -l
, you might notice that your system partition is not NTFS but most likely Ext3. Ext is a Linux filesystem, (yes a, not the - there are many). Once again, you have the choice which Filesystem you want to use, but this is way out of the scope of this book. The only thing you need to know right now is that FAT16/FAT32 (used by USB thumbdrives) and NTFS (used by Windows) is supported by Linux, Ext filesystems however are not supported by Windows. So when using Linux you can move files between your Windows and Linux partitions, but not when your running Windows.
What is FHS and how does it help me?
Now that you know a bit more about the Linux filesystem and how drives are handled, there is one more thing you might wanna know. Before Kali was released, the distribution was known under the name BackTrack. It included all the great tools hackers and security experts needed to do their thing, but there was the problem of keeping these tools sorted.
If a new tool was added, there was the question in which folder this tool shoud go and the different categories where located in the /pentest/ folder.
With Kali Linux, the guys at Offsec decided to switch to FHS, which stands for File Hierarchy Standard and represents a definition, where tools should be located. For people that where used to the /pentest/ folder, this was a bit uncomfortable, since you can't just browse through the folder anymore to find cool new tools.
The benefit of working with FHS however, is that you can call any tools from any location in the terminal. Before you had to be in the folder of e.g. the web scanner Nikto, to be able to start Nikto. Now you can fire it up no matter where you currently are.
If you need a source to browse through all the tools offered by Kali (the menu has only a small percentage of the tools that are available), try this.
dpkg -l |grep -v "firmware\|ii lib\|ii gir1\|ii gnome-\|ii python\|ii xserver-xorg-\|ii x11\|ii xserver\|ii ruby"|grep "^ii"
Tweaking the bash with .bashrc
If you don't want to type all that every time you need a list, either add > myprogramlist
to the end, to save it in the file myprogramlist or add the following string to the alias
section in the file ~/.bashrc
. (It's one line!)
alias listapps='dpkg -l |grep -v "firmware\|ii lib\|ii gir1\|ii gnome-\|ii python\|ii xserver-xorg-\|ii x11\|ii xserver\|ii ruby"|grep "^ii"'
Speaking of ~/.bashrc
, there are two things in this file path we haven't discussed yet. The ~
which stands for your home directory, so /home/hashtagsecurity/
in my case, or /root/
if you work as root user (it's best to edit both files by the way) and the dot in front of .bashrc
. The dot is the universal sign that the file is normaly a hidden file, so you won't see it if you type ls
(list) in your terminal. Fortunately ls has a few options, like
ls -1
which lists every item in a new line (good for scripts),
ls -lh
where the additional l gives you more information and the h makes sure it is in a human readable output (so filesizes in KB or MB instead ob bytes) and of course (among many more)
ls -a
which show you all files as long as you have sufficient permissions to see them. These options can be combined to your liking, for example
ls -lhatr
gives you all files (a) with additional information (l) in a human readable form (h), sorted by timestamp (t) but reverse (r), so that the newest file is listed on the bottom.
As with the listapps
alias, you can define your own aliases to make your life easier, e.g. alias la='ls -lhatr'
.
Then you only have to type la instead of ls -lhatr to get all the above mentioned function. There is always a shortcut in Linux.
To load changes made to ~/.bashrc
either close and reopen your terminal, or simply enter source ~/.bashrc
to reload it.
Introducing: manpages and --help
Now that you have seen, how commands work in general - command -switch
, we should take the help switch and manpages. The help switch is mostly --help
, -h
or sometimes -?
. If that doesn't work, try them without the dashes. It usually gives you a quick overview on what the program does and what it's main switches are. If you need more information, you should use the man
command, which stands for manual. A good example is the mount
command.
Take a look at the different output between
mount -h
and man mount
.
The later opens the manual in a commandline text viewe. Normally it uses less
, which you can try yourself by typing less and-a-text-file-of-your-choice
To exit less, or the manpages just enter q
, to search in them enter /searchterm
.
Using apt-get to manage software packages
Last but not least, we'll quickly go over the package manager apt-get
. There are two package managers already on board (besides dpkg), one is apt-get and the other is aptitude. In this book we will use apt-get since it is the one used in most tutorials.
Linux doesn't work with .exe files, since those are built for Windows. If you have a linux binary you want to run, you have to make it executable first.
You can to this by adding the executable bit (as root) with chmod +x file.bin
After that you can start it with ./file.bin
. Note that the . is in front of the / this time, which stands for the folder you are currently in. Alternatively you could specify the whole path, e.g. /full/path/to/your/file.bin
This however, only works if all the ressources the binary depends on are either already installed or included in the file. If you want to install a new program, it's always better to check the repositories first.
First, you have to check the repository for updates. This will all available information about packages.
apt-get update
The you can upgrade the whole system (all packages) or a single program with either
apt-get upgrade
or apt-get upgrade programname
If you don't know the exact name of the programs package, you can search for it with
apt-cache search programname
or display information about an package, for example the VLC media player, with
apt-cache showpkg vlc
This wraps up the introduction to Linux and Kali basics. In the next chapters, we will take a look at the tools Kali has to offer and their different features.
The following chapters are divided into the same categories, as the tools in Kalis menu. However, I will not use the same order as the menu does, nor will I go into detail on every single tool of the categories. I will try to explain tools along the flow of a possible workflow, meaning I won't start with someting like maintaining access, but rather information gathering and documentation. This way, readers without experience should be able to work through the book without having to jump between chapters.
Information Gathering Back to Index
Before you can start attacking, you need to gather information and before that you need a target. You target can be a host, a website, a person or company and much more.
The most important thing is that you have a written permission of the targets owner. Never attack or scan a host or website or any other ressource without having a permission to do so. If you do otherwise, you are breaking the law.
Also note, that some countries have special rules about attacking and scanning host with or without permission in some it's even illegal to download or posess tools that are inteded for these purposes (e.g. most of Kalis tools). This book is no legal guide, so make sure to read up on the laws of your country or the country you are in when performing these actions.
You also need to make sure, that you are allowed to scan or attack your own servers. Some hosters don't allow scanning from, or servers in their network and it is possible that you violate your agreement.
Once you have your target, you can apply different techniques of information gathering. If it's a person, you can try to find out the following information.
- Email addresses - most people have more than one. Try private and business mails.
- Profiles in social networks like Facebook, Google Plus, Xing, LinkedIn, MySpace, YouTube, Discussion boards, Q&A sites, etc.
- Real Name, Job, Company, Aliases or Chatprofiles
- Try to find out who are his colleagues, friends, family member, etc. Maybe you can use them to your advantage.
- Anything that might be interesting
If you found an email address, search for it. It's not uncommon for people to mix their personas on the web. You might find some accounts mapped to that mail address and if you search for these accounts you might find new mail addresses.
To do all that, you don't need Kali. You just need a browser and an internet connection. But Kali can still help you and make things easier.
To keep track of all that information, you can use Maltego. Maltego is a tool to create maps of related information. If you search for a person, you create an entry for that person and link every information you find to it. This way you create a network map of all the information you find, which helps you to keep track of your progress and find new connections.
Maltego
To start Maltego, hit [ALT]+[F2], type maltego and click on Run. This is the Maltego Community Edition, which is intended for non-commercial use only. Head over to [www.paterva.com](http://www.paterva.com) for a full license and a lot of documentation.Once you have started Maltego you will be greeted by a wizard and a login page. There is a register link where you can setup an account. Just click through the wizard and select the example page when you come to the end. This gives you an example of how a map could look like and also a nice set of entities you can use to create your own map. Hit [CTRL]+[T], or click on the sign in the upper left corner and then on New, to create a blank page.
Start dragging entities into your map and open them with a double click to fill in the information you've gathered. You can select them with a single click and than drag them around, or when deselected, you can create links between entities.
To be continued...
"Getting Started with Kali Linux" is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
Time to give something back :)


Grid
Equal Height Columns
Add class .equal-height
to the row.
Standard
Dejah Thoris related many interesting facts and legends concerning this lost race of noble and kindly people.
Dejah Thoris related many interesting facts and legends concerning this lost race of noble and kindly people. She said that the city in which we were camping was supposed to have been a center of commerce and culture known as Korad. It had been built upon a beautiful, natural harbor, landlocked by magnificent hills. The little valley on the west front of the city, she explained, was all that remained of the harbor, while the pass through the hills to the old sea bottom had been the channel through which the shipping passed up to the city's gates.
Dejah Thoris related many interesting facts and legends concerning this lost race of noble and kindly people. She said that the city in which we were camping was supposed to have been a center of commerce and culture known as Korad. It had been built upon a beautiful, natural harbor, landlocked by magnificent hills. The little valley on the west front of the city, she explained, was all that remained of the harbor, while the pass through the hills to the old sea bottom had been the channel through which the shipping passed up to the city's gates.
Dejah Thoris related many interesting facts and legends concerning this lost race of noble and kindly people.
Standard Push
Style Issue
The following style behaviour fails with Firefox current release v36.04 but works with Firefox Developer edition v38.0a2.


Othoo Shades Rabuor Restaurant, Bar, Carwash and Butchery
Started in year 2000 , Othoo Shades has grown from just a Bar to a Restaurant and enlarging beyond its vision.
Services we offer include:
- Bar.
- Restaurant.
- Carwash.
Come One Come All
Our ability to put God , Familly and Customer Satisfaction our first priority.
We bride ourselves as the only Reataurant who put customers service our major goal
Our Spot enable families to have a good time as everyone is considered
State of art security available for our customers comfort
Fried Pork served with spanish ommellete and white wine.
Pls do follow our procedures carefully as mistakes may lead to food poisoning
Take the pan and fry the pork until golden brown. Add vanilla cream to the pork and smash together. Then adding the oil stir in fire until brown. Serve in the dish and pour the lemon on top. Serve with cold white wine
Qui laudantium consequatur laborum sit qui ad sapiente dila parde sonata raqer a videna mareta paulona marka
Ea ipsum voluptatem consequatur quis est. Illum error ullam omnis quia et reiciendis sunt sunt est. Non aliquid repellendus itaque accusamus eius et velit ipsa voluptates. Optio nesciunt eaque beatae accusamus lerode pakto madirna desera vafle de nideran pal
Eos voluptatibus quo. Odio similique illum id quidem non enim fuga. Qui natus non sunt dicta dolor et. In asperiores velit quaerat perferendis aut
Iure officiis odit rerum. Harum sequi eum illum corrupti culpa veritatis quisquam. Neque necessitatibus illo rerum eum ut. Commodi ipsam minima molestiae sed laboriosam a iste odio. Earum odit nesciunt fugiat sit ullam. Soluta et harum voluptatem optio quae
Totam aperiam accusamus. Repellat consequuntur iure voluptas iure porro quis delectus
Eaque consequuntur consequuntur libero expedita in voluptas. Nostrum ipsam necessitatibus aliquam fugiat debitis quis velit. Eum ex maxime error in consequatur corporis atque. Eligendi asperiores sed qui veritatis aperiam quia a laborum inventore
Omnis blanditiis saepe eos autem qui sunt debitis porro quia.
Exercitationem nostrum omnis. Ut reiciendis repudiandae minus. Omnis recusandae ut non quam ut quod eius qui. Ipsum quia odit vero atque qui quibusdam amet. Occaecati sed est sint aut vitae molestiae voluptate vel
Kes 5,000-50,000
You can celebrate your loved ones special birthday at affordable cost and let our stuff make the day memorable.
Payment can be all at once or by installments prior to your date.The management reserves the right to cancellation and refund all giving a 2weeks prior notice to both parties involved.
Kes 10,000-50,000
You can celebrate your loved ones special birthday at affordable cost and let our stuff make the day memorable .
Payment can be all at once or by installments prior to your date.The management reserves the right to cancellation and refund all giving a 2weeks prior notice to both parties involved
Kes 20,000-100,000
You can celebrate your loved ones special birthday at affordable cost and let our stuff make the day memorable .
Payment can be all at once or by installments prior to your date.The management reserves the right to cancellation and refund all giving a 2weeks prior notice to both parties involved
No need to rush to get your favorite spot, book a table and will reserve it for you.
Taste our specialities and you would never miss our stand.
Come All and lets enjoy the facility.
Offers the best conference services for our chamaas.
I built it as a family joint and im glad it has lived its purpose.
Service and security above reproach.
After a long days work all one needs is a quite environment to chill with friends and no better place than Othoo Shades.
Othoo Shades is located Along Kisumu-Nairobi Road at Rabuor Stage.
At Rabuor Stage
Kisumu, Kenya
Monday-Sunday:
10:00 AM - 22:00 PM
<EMAIL_ADDRESS><EMAIL_ADDRESS>0708 644 628
0722 456 784


This is the main instrument I (rj marsan) use for my band, Shy Guy Says. It's typically used with an android tablet app and a midi keyboard. it sounds pretty cool.
How it works:
I have two instruments on midi channels 2 and 3 (no idea why, I guess I always had stuff on channel 1, so it stuck). They share presets, and if you want you can always just remove one. They're each 8-note polyphonic. Synthesis is mainly mixing two oscillators and octave apart, with various waveforms. It has tremolo, vibrato, a full envelope (way more than ADSR), hp, lp, and a moog filter, as well as moog filter vibrato. a bitcrusher, distortion, and fuzz are added, but I still don't think any of them sound that great. Delay and reverb are there, although I don't think I ever use them.
How it sounds
Seriously, I use this in every one of my songs, so just check out my band's new album to hear it in action. If people bug me, I can put some sound samples up, but I honestly believe you can make it sound better than I can.
Tablet Setup
To get the companion android tablet set up, make sure they're both on the same network (and make sure the network is Fast).  The android app is set to listen on 9000 and broadcast on 8000. For whatever reason, I have a terrible time sending OSC messages back to the tablet unless I hard-code the ip address, but your milage may vary. Inside the __main.pd, there's a subpatch 'pd osc' that has the ip to send it to.
Downloads
I have no interest in packaging this into a super-easy-to-use™ package. So go check it out from github here: https://github.com/rjmarsan/Musiqke-pd-and-android-instrument
Requirements:
- PD-Extended: I try to keep it as vanilla as possible, but it uses mrpeach's OSC library, as well as the fantastic moog~ filter. If you can get those extensions, it should work just fine with vanilla pd.
- Keyboard/OSCKeyboard sketch: It uses MIDI to operate, but I put in a hook to allow it to run over OSC. You can use the processing sketch (and thus would need processing I have to act as a keyboard for it.
- Android Tablet (optional), >= Android 3.0, 10 inches or up: The best part of this instrument (In my opinion) is the companion android app for it. It just sends OSC, but it makes performing live a synch, with awesome preset switching and a kaoss-pad style xy-grid. That being said, it DOESN'T do everything, and is really only meant for performances. Again, totally optional.
for what it's worth, this code is totally BSD licensed. I'm sure there's lots of bugs. email me/message me if you find them.


Events
Warning - events are currently experimental, issues maybe experienced and the API may change..
Custom events can be added to guizero widgets to call functions when the user takes the following actions:
- when clicked -
when_clicked
- when the left mouse button is pressed -
when_left_button_pressed
- when the left mouse button is released -
when_left_button_released
- when the right mouse button is pressed -
when_right_button_pressed
- when the right mouse button is released -
when_right_button_released
- when a key is pressed -
when_key_pressed
- when a key is released -
when_key_released
- when the mouse enters a widget -
when_mouse_enters
- when the mouse leaves a widget -
when_mouse_leaves
- when the mouse is dragged across a widget -
when_mouse_dragged
Events are set by assigning them to a function:
def clicked():
print("clicked")
widget.when_clicked = clicked
Event Data
The function which is called can also accept a parameter and will be passed data about the event which occured.
The event data returned has:
widget
- the guizero widget which raised the eventtk_event
- the tkinter event objectkey
- the key which raised the eventx
- the mouse's x position relative to the widget when the event occuredy
- the mouse's y position relative to the widget when the event occureddisplay_x
- the mouse's x position on the display when the event occureddisplay_y
- the mouse's y position on the display when the event occured
def clicked(event_data):
print("widget clicked = " + event_data.widget)
print("mouse position = " + event_data.x + "." + event_data.y)
widget.when_clicked = clicked
Example
Highlight a text box widget by changing its background color (bg
) when the mouse is hovering over it.
from guizero import App, TextBox
def highlight():
text_box.bg = "lightblue"
def lowlight():
text_box.bg = "white"
app = App()
text_box = TextBox(app)
# when the mouse enters the textbox
text_box.when_mouse_enters = highlight
# when the mouse leaves the textbox
text_box.when_mouse_leaves = lowlight
app.display()


Using apiman in a network with limited Internet access
Apr 5, 2016 Marc Savy configuration, production, and offlineIn plenty of enterprises, networks are either locked down or have very limited access to the Internet; often for security, privacy or other practical reasons.
We’ve carefully designed apiman to be fully featured and easily configured when no Internet access is available; providing a great deal of flexibility and eschewing any "off-site only" functionality.
So, if you’re looking for API management in a locked-down network or Internet-free environment, read on!
Apiman Plugins
Apiman’s extensibility is one of its key strengths, and it’s extremely easy to write plugins that can do almost anything. There are two default behaviours we are likely to want to configure when operating within a restricted network.
Distribution and Management
Apiman plugins are, by default loaded via The Central Repository (often known as Maven Central), which is a fantastically convenient in most situations. All of apiman’s components (manager, gateways, etc), will pull down the necessary plugins as and when they need them.
However, without Internet access this clearly won’t work as intended. We have three good options which you can configure in apiman.properties
:
apiman.plugins.repositories=https://repo1.example.local/our-internal-repo/,http://repository.example.org/nexus/content/groups/public/ (1)
apiman.plugins.repositories=file:///mnt/nfs/my/shared/maven/repo (2)
apiman.plugins.repositories=(3)
| 1 | Use an internal repository or mirror to deploy your own (and community) plugins to. This is likely the best option for many enterprises who may already have such infrastructure. Join multiple repositories with commas. |
| 2 | Mount a repository to a shared volume or filesystem on every machine running apiman. |
| 3 | Copy a valid Maven formatted repository containing your plugins to ~/.m2 , where apiman will look by default. |
Advanced: You can replace the default registry entirely with an implementation of your own and set it via apiman-gateway.plugin-registry in apiman.properties .
|
Registry (Plugin Catalogue)
Our community releases contain a plugin registry which downloads a curated list of plugins. This lets the API Manager have a nice pre-populated list of plugins to install, rather than having to type the coordinates manually. To preserve this functionality simply download the registry file and make it available internally:
apiman-manager.plugins.registries=https://rawgit.com/apiman/apiman-plugin-registry/master/registry.json (1)
apiman-manager.plugins.registries=file:///path/to/my/registry.json (2)
| 1 | The default JSON plugin registry’s data URL. |
| 2 | As <1>, but replaced with a local copy. Naturally, you may want to add your own plugins here in place of the curated ones. A custom registry may not even use JSON - it’s entirely up to you. |
When running in WildFly/EAP you can use appropriate platform system properties to make the config more portable: apiman-manager.plugins.registries=file:///${jboss.server.config.dir}/apiman-plugin-registry.json
|
API Catalogue
The demonstration API Catalogue (or catalog, if you’re into American English) is also downloaded from the Internet, so you may want to make it available offline and customise it, too.
Albeit not the topic of this blog, it’s worth briefly mentioning most advanced users will likely want to implement code [1] to search a real registry or catalogue for APIs to import, such as Kubernetes' service registry.
apiman-manager.api-catalog.catalog-url=https://rawgit.com/apiman/apiman-api-catalog/master/catalog.json (1)
apiman-manager.api-catalog.type=io.apiman.manager.api.core.catalog.JsonApiCatalog (2)
| 1 | Default API catalogue. You can replace it with file:///path/to/my/catalog.json after downloading it. |
| 2 | If you write your own catalogue, then provide your own catalogue’s implementation of the IApiCatalog interface here. |
Metrics
Some API managers have off-site only metrics implementations. Rest assured, there’s none of that nonsense here! Just ensure that your metrics store (such as ElasticSearch) is available for apiman to connect to and it’ll work fine.
Conclusion
A handful of trivial tweaks are potentially necessary to make all of apiman’s features work in a locked-down environment.


This box is registered with on-global-click="count = count + 1"
, which means when not clicking on this element, the code will be executed.
Please click outside of the box (body tag), where global-click-trigger
registered!
You clicked outside {{count}} times!


Find that perfect color with our color picker and discover beautiful color harmonies, tints, shades and tones; input Hex color codes, RGB and HSL values, and generate HTML, CSS and SCSS styles.
Find that perfect color with our color picker and discover beautiful color harmonies, tints, shades and tones; input Hex color codes, RGB and HSL values, and generate HTML, CSS and SCSS styles.
Find that perfect color with our color picker and discover beautiful color harmonies, tints, shades and tones; input Hex color codes, RGB and HSL values, and generate HTML, CSS and SCSS styles.
SUPER EARLY BIRD DEAL: 30% off each unit . FREE US Shipping in Dec. 2018. International shipping begins in Feb. 2019. Items included: A.L.L.F.I.T 15 laptop
SUPER EARLY BIRD DEAL: 30% off each unit . FREE US Shipping in Dec. 2018. International shipping begins in Feb. 2019. Items included: A.L.L.F.I.T 15 laptop + 1 portable Battery
SUPER EARLY BIRD DEAL: 35% off each unit . FREE US Shipping in Dec. 2018. International shipping begins in Feb. 2019. Items included: A.L.L.F.I.T 15 laptop + 1 portable battery + 1 cable
SUPER EARLY BIRD DEAL: 35% off each unit . FREE US Shipping in Dec. 2018. International shipping begins in Feb. 2019. Items included: A.L.L.F.I.T 15 laptop + 1 portable battery + 1 cable
OUR TEAM


Welcome to the CFI
Do you want another flag ???
I think you do! ✯⸜(ّᶿ̷ധّᶿ̷)⸝✯
Ok then... Click here to get your flag! (－ｏ⌒)
Get the flag!


---
start: 2016-11-02 13:00
edition: 20
participate: "https://www.eventbrite.com/e/an-introduction-to-image-processing-tickets-28980629844"
subheader: "An Introduction to Image Processing"
subnote: " Image processing has a variety of applications ranging from consumer applications like photo editing software to research or other applications like biomedical imaging. We'll take a look at some of the basics of image processing and look at some code examples in Octave."
talk :
agenda:
-
time: "6:45 pm - 7:30 pm"
title: "An introduction to image processing"
speaker_profile: "By: Anup Vasudevan"
image: "anup.jpg"
-
time: "7:30 pm - 7:45 pm"
title: "Break & Networking"
-
time: "7:45 pm - 8:30 pm"
title: "Continued..."
---


🎲 Dicey.xyz
Just another random site.


Wojciech Orzechowski
Data Scientist
at The Hut Group
I am a passionate Data Scientist and Machine Learning Researcher!
My Linkedin Profile
Favourite books
Foundation by Isaac Asimov
The Witcher by Andrzej Sapkowski
Ubik by Philip K. Dick
My Hobbies
Resources
Download HTML Cheatsheet


Brazilian GP: Max Verstappen wins thriller as Ferrari's Vettel and Leclerc collide
by Andrew BensonRed Bull's Max Verstappen passed Lewis Hamilton's Mercedes twice to take a brilliant victory in a gripping Brazilian Grand Prix.
Behind him, the race developed into a dramatic finale as the Ferraris of Sebastian Vettel and Charles Leclerc collided while disputing fourth place.
Then, Hamilton collided with Red Bull's Alexander Albon, and Toro Rosso's Pierre Gasly held off the Mercedes for second place on the line.
It was a remarkable end to one of the most incident-packed races in recent memory. "What a race!" Verstappen said, summing it up perfectly. "Loved it."
Hamilton took the blame for his crash with Albon and was penalised after the race by five seconds, demoting him to seventh - promoting Carlos Sainz to third for McLaren.
Verstappen was a deserved winner in a race that he controlled from the start, but Gasly was a star, Hamilton and Mercedes had an unusually difficult race, and yet again there will be a sharp focus on Vettel's driving and character, as the four-time champion continued his battle for supremacy at Ferrari with his young team-mate.
How a classic unfolded
Verstappen led away from the start, tracked by Hamilton, and Mercedes threw the first strategy dice with an early stop on lap 20, attempting to use the fresh pace of new tyres to pass the Red Bull.
It looked like it had worked when Verstappen, already touch and go as to whether he would keep the lead when he made his stop on the next lap, was held up by Robert Kubica's Williams on his way out of the pits, for which Williams were penalised.
That gifted Hamilton the lead, but Verstappen was determined to win it straight back.
Hamilton caught Ferrari's Charles Leclerc on his first lap after his stop and passed him into the final corner, but now Verstappen was right on his tail and, with his battery depleted after his fast lap, Hamilton was defenceless as the Dutchman swept around the outside into Turn One.
That looked to be it, until Hamilton's team-mate Valtteri Bottas retired with an engine problem on lap 53, bringing out the safety car.
Hamilton was told do the opposite to Verstappen as they approached the pit entry and when the Red Bull pitted, Hamilton stayed out.
But he immediately doubted the decision, worrying that his used medium tyres would be no match for the virtually new softs on Verstappen's car.
And when the race restarted on lap 60, with 11 to go, Hamilton was proved right and Verstappen swept past him into the lead - again around the outside of Turn One - despite Hamilton's best efforts to trick him at the re-start.
That was the battle for the lead done, but it was just the start of a frenetic final 10 laps...
Oh no, what do Ferrari do now?
Hamilton was now struggling at the head of a train of four cars, comprising Albon, who had brilliantly passed Vettel at the re-start, Vettel and Leclerc, all on fresher soft tyres.
The tension built, as Vettel first tried and failed to re-pass Albon, and then Leclerc, on the freshest tyres of all, pressured his team-mate.
With five laps to go, Leclerc pulled a stunning move on Vettel into Turn One to take fourth place. But Vettel refused to back off and came back at his team-mate.
Leclerc moved left on the back straight on the run to Turn Four, leaving Vettel just enough room on the outside.
But in scenes reminiscent of his collision with Red Bull team-mate Mark Webber back in Turkey in 2010, Vettel edged across and the cars collided.
The impact immediately broke Leclerc's front suspension and gave Vettel a rear puncture, and both were forced out of the race.
"What was he doing," Vettel said over team radio, before perhaps accepting his error and saying: "Sorry."
"What the hell?" Leclerc screamed.
The incident will surely have repercussions at Ferrari, where team boss Mattia Binotto has struggled to contain his warring drivers all season as Leclerc has threatened Vettel's seniority in the team.
What was Hamilton doing?
The collision brought out the safety car again and Mercedes decided to pit Hamilton for a fresh set of tyres so he could attack in the closing laps.
The race re-started with only two laps to go, with Hamilton running fourth behind Albon, and Red Bull on for a one-two, and Gasly.
He was straight past Gasly at Turn One but made a too-ambitious move on Albon at Bico De Pato and the two collided, sending Albon into a spin and damaging Hamilton's front wing.
"The gap was kind of there but it closed right at the end, clearly my fault," Hamilton said, as officials announced the incident would be investigated after the race.
Gasly passed both in the incident and Hamilton set off after the Toro Rosso again as they entered the final lap. The Mercedes was right with Gasly into the final corner and pulled alongside on the exit, but Gasly was able to edge ahead as they approached the line to take the best result of his career and a deserving reward for superlative performances since being dropped from Red Bull to Toro Rosso in favour of Albon in the summer.
Behind Sainz were the Alfa Romeos of Kimi Raikkonen and Antonio Giovinazzi, ahead of Renault's Daniel Ricciardo.
Sainz's podium was confirmed after he was cleared following an investigation for illegal use of the DRS overtaking aid while passing yellow caution flags.
It is McLaren's first podium since the 2014 Australian Grand Prix, 118 races ago.
Driver of the day
What happens next?
The final race of the season in Abu Dhabi. For all the glamour and the lights, it's an antiseptic track that seems unlikely to offer the riches of Brazil. But there have been so many great races this season, despite Hamilton's dominant title win, who would dare say there won't be another?
What they said
Max Verstappen: "Lewis was very quick so I had to keep pushing and all the time. He pitted early so we had to be on top of our pit stops we had a good move on him. I could control the race with the tyres I had it was unbelievable it was a lot of fun out there and great to win the race."
Pierre Gasly: "This is my first podium in F1 and for sure I will never forget it, it's such a special moment - so emotional. Toro Rosso have given me such a fantastic car since I've come back. It's an amazing day."
Lewis Hamilton: "Max did a great job - he was very fair the way he positioned the car. Massive apologies to Albon. The gap was there but it was completely my fault. They did a fantastic job, they outperformed us on the straights - he raced my heart out and took a lot of risks today, as you could see."


|
Bartosz Rodziewicz
<EMAIL_ADDRESS>|
Wed, Nov 9, 2011 at 17:38
|
|
To:
Oliwia Górecka<EMAIL_ADDRESS>|
|
Hey, Oliwia
I think we can organize a surprise birthday party for my sister. This party will be at Antresola restaurant in Kamieniec Wroclawski on 12-th November 2011. I think this will start on about 4 p.m. We (I, you and other Ola’s close friend) can meet tomorrow after school in library and agree the details this event. Please tell it they and think about this party details.
Bye, Bartosz
|
|


Android SDK for api.ai
The API.AI Android SDK makes it easy to integrate speech recognition with API.AI natural language processing API on Android devices. API.AI allows using voice commands and integration with dialog scenarios defined for a particular agent in API.AI.
Two permissions are required to use the API.AI Android SDK:
- android.permission.INTERNET for internet access
- android.permission.RECORD_AUDIO for microphone access
Add this dependencies to your project to use SDK
compile 'ai.api:libai:1.2.2'
compile 'ai.api:sdk:2.0.1@aar'
// api.ai SDK dependencies
compile 'com.android.support:appcompat-v7:23.2.1'
compile 'com.google.code.gson:gson:2.3.1'
compile 'commons-io:commons-io:2.4'
Currently, speech recognition is performed using Google's Android SDK, either on the client device or in the cloud. Recognized text is passed to the API.AI through HTTP requests. Also you can try Speaktoit recognition engine (Use AIConfiguration.RecognitionEngine.Speaktoit).
Authentication is accomplished through setting the client access token when initializing an AIConfiguration object. The client access token specifies which agent will be used for natural language processing.
Note: The API.AI Android SDK only makes query requests, and cannot be used to manage entities and intents. Instead, use the API.AI user interface or REST API to create, retrieve, update, and delete entities and intents.
- Running the Sample Code
- Getting Started with Your Own App
- Tutorial
- Brief Integration Instruction (for experienced developers)
- Feature examples
- Troubleshooting
Running the Sample Code
The API.AI Android SDK comes with a simple sample that illustrates how voice commands can be integrated with API.AI. Use the following steps to run the sample code:
- Have an API.AI agent created that has entities and intents. See the API.AI documentation on how to do this.
- Open Android Studio.
- Import the api-ai-android-master directory.
- Open the SDK Manager and be sure that you have installed Android Build Tools 19.1.
- In the Project browser, open apiAISampleApp/src/main/java/ai.api.sample/Config.
- Towards the top of the file, you will see a declaration of a static final string called ACCESS_TOKEN. Set its value to be the client access token of your agent.
- Attach an Android device, or have the emulator set up with an emulated device.
- From the Run menu, choose Debug (or click the Debug symbol). Choose your device.
- You should see an app running with three buttons: Listen, StopListen, and Cancel.
- Click Listen and say a phrase that will be understood by your agent. Wait a few seconds. The Java will appear that is returned by the API.AI service.
Getting Started with Your Own App
This section describes what you need to do to get started with your own app that uses the API.AI Android SDK. The first part provides an overview of how to use the SDK, and the second part is a tutorial with detailed step-by-step instructions for creating your own app.
If you are an experienced developer you might use brief integration instruction.
Overview
To implement speech recognition and natural language processing features in your app, you must first add the API.AI SDK library to your project. There are two ways to accomplish this. The first way is recommended:
Add a dependency to your build.gradle file. Add the following line to your build.gradle file. (In the sample app, the apiAISampleApp/build.gradle is an example of how to do this.)
compile 'ai.api:libai:1.2.2' compile 'ai.api:sdk:2.0.1@aar' // api.ai SDK dependencies compile 'com.android.support:appcompat-v7:23.2.1' compile 'com.google.code.gson:gson:2.3' compile 'commons-io:commons-io:2.4'
(Not recommended) Download the library source code from github, and attach it to your project.
Now you can use API.AI service features in your app using either integrated speech recognition or using your own speech recognition.
Using integrated speech recognition
Once you've added the SDK library, follow these steps:
Add two permissions into the AndroidManifest:
- android.permission.INTERNET
- android.permission.RECORD_AUDIO
Create a class that implements the AIListener interface. This class will process responses from API.AI.
public interface AIListener { void onResult(AIResponse result); // here process response void onError(AIError error); // here process error void onAudioLevel(float level); // callback for sound level visualization void onListeningStarted(); // indicate start listening here void onListeningCanceled(); // indicate stop listening here void onListeningFinished(); // indicate stop listening here }
Create an instance of AIConfiguration, specifying the access token, locale, and recognition engine.
final AIConfiguration config = new AIConfiguration("CLIENT_ACCESS_TOKEN", AIConfiguration.SupportedLanguages.English, AIConfiguration.RecognitionEngine.System);
Use the AIConfiguration object to get a reference to the AIService, which will make the query requests.
AIService aiService = AIService.getService(context, config);
Set the AIListener instance for the AIService instance.
aiService.setListener(yourAiListenerInstance);
Launch listening from the microphone via the startListening method. The SDK will start listening for the microphone input of the mobile device.
aiService.startListening();
To stop listening and start the request to the API.AI service using the current recognition results, call the stopListening method of the AIService class.
aiService.stopListening();
To cancel the listening process without sending a request to the API.AI service, call the cancel method of the AIService class.
aiService.cancel();
If there are no errors, you can get the result using the AIResponse.getResult method. From there, you can obtain the action and parameters.
public void onResult(final AIResponse response) { Log.i(TAG, "Action: " + result.getAction()); // process response object }
Using your own speech recognition
This section assumes that you have performed your own speech recognition and that you have text that you want to process as natural language. Once you've added the SDK library, follow these steps:
Add this permission into the AndroidManifest:
- android.permission.INTERNET
Create an instance of AIConfiguration, specifying the access token, locale, and recognition engine. You can specify any recognition engine, since that value will not be used.
- Create an AIDataService instance using the configuration object.
- Create the empty AIRequest instance. Set the request text using the method setQuery.
- Send the request to the API.AI service using the method aiDataService.request(aiRequest).
- Process the response.
The following example code sends a query with the text "Hello".
First, it initialize aiDataService
and aiRequest
instances
final AIConfiguration config = new AIConfiguration(ACCESS_TOKEN,
AIConfiguration.SupportedLanguages.English,
AIConfiguration.RecognitionEngine.System);
final AIDataService aiDataService = new AIDataService(config);
final AIRequest aiRequest = new AIRequest();
aiRequest.setQuery("Hello");
Then it calls the aiDataService.request
method. Please note, that you must call aiDataService.request
method from background thread, using AsyncTask
class, for example.
new AsyncTask<AIRequest, Void, AIResponse>() {
@Override
protected AIResponse doInBackground(AIRequest... requests) {
final AIRequest request = requests[0];
try {
final AIResponse response = aiDataService.request(aiRequest);
return response;
} catch (AIServiceException e) {
}
return null;
}
@Override
protected void onPostExecute(AIResponse aiResponse) {
if (aiResponse != null) {
// process aiResponse here
}
}
}.execute(aiRequest);
Tutorial
This section contains a detailed tutorial about creating new app and connect it to API.AI.
Create a new app
Follow these steps to set up your environment and create new android app with API.AI integration:
- Create an API.AI agent with entities and intents, or use one that you've already created. See the API.AI documentation for instructions on how to do this.
- Open Android Studio. (Download it if you don't have it.)
- From the start screen (or File menu) , choose New Project....
- In the New Project dialog, fill Application name and Company Domain, then click Next.
- Choose minimum SDK for project, minimum supported by API.AI SDK is 9 Gingerbread. Click Next.
- Select Blank Activity and click Next.
- Enter the main activity name and click Finish.
Integrate with the SDK
Next you will integrate with the SDK to be able to make calls. Follow these steps:
- Open AndroidManifest.xml under app/src/main.
Just above the
<application>
tag, add these line in order to give the app permission to access the internet and the microphone:<uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.RECORD_AUDIO" />
Save AndroidManifest.xml.
- Next, you need to add a new dependency for the AI.API library. Right click on your module name (it should be app) in the Project Navigator and select Open Module Settings. Click on the Dependencies tab. Click on the + sign on the bottom left side and select Library dependency.
- In the opened dialog search ai.api, choose ai.api:sdk:2.0.1 item and append
@aar
to the end of library name (see image) then click OK.
- Also you need to add dependencies of the SDK library : com.android.support:appcompat-v7, com.google.code.gson:gson, commons-io:commons-io. Add them in the same way.
- Open MainActivity.java under app/src/main/java/com.example.yourAppName.app, or whatever your package name is.
Expand the import section and add the following lines to import the necessary API.AI classes:
import ai.api.AIListener; import ai.api.android.AIConfiguration; import ai.api.android.AIService; import ai.api.model.AIError; import ai.api.model.AIResponse; import ai.api.model.Result; import com.google.gson.JsonElement; import java.util.Map;
Create the user interface
- Open activity_main.xml under app/src/main/res/layout. This will open the layout in the designer.
- Select and delete the "Hello World" TextView.
- Drag a Button (under Widgets) to the top of the screen. Change the id property to "listenButton" and the text property to "Listen".
- Drag a Plain TextView (under Widgets) under the button. Expand it so that it covers the rest of the bottom of the screen. Change the id property to "resultTextView" and the text property to an empty string.
Now return to the MainActivity.java file. Add three import statements to access our widgets:
import android.view.View; import android.widget.Button; import android.widget.TextView;
Create two private members in MainActivity for the widgets:
private Button listenButton; private TextView resultTextView;
At the end of the OnCreate method, add these lines to initialize the widgets:
listenButton = (Button) findViewById(R.id.listenButton); resultTextView = (TextView) findViewById(R.id.resultTextView);
Create the AI Service and Listener
Use the MainActivity as the class that will be called when events occur by having it implement the AIListener class. Replace the class declaration with this:
public class MainActivity extends ActionBarActivity implements AIListener {
In the MainActivity class, create a private member for the AIService class named
aiService
.private AIService aiService;
In the OnCreate method, add the following line to set up the configuration to use system speech recognition. Replace CLIENT_ACCESS_TOKEN with your client access token.
final AIConfiguration config = new AIConfiguration("CLIENT_ACCESS_TOKEN", AIConfiguration.SupportedLanguages.English, AIConfiguration.RecognitionEngine.System);
Below this line, initialize the AI service and add this instance as the listener to handle events.
aiService = AIService.getService(this, config); aiService.setListener(this);
Add method to start listening on the button click:
public void listenButtonOnClick(final View view) { aiService.startListening(); }
Return to activity_main.xml and click on the Listen button. In the properties pane, set the onClick property to listenButtonOnClick.
Add the following method to show the results when the listening is complete:
public void onResult(final AIResponse response) { Result result = response.getResult(); // Get parameters String parameterString = ""; if (result.getParameters() != null && !result.getParameters().isEmpty()) { for (final Map.Entry<String, JsonElement> entry : result.getParameters().entrySet()) { parameterString += "(" + entry.getKey() + ", " + entry.getValue() + ") "; } } // Show results in TextView. resultTextView.setText("Query:" + result.getResolvedQuery() + "\nAction: " + result.getAction() + "\nParameters: " + parameterString); }
Add the following method to handle errors:
@Override public void onError(final AIError error) { resultTextView.setText(error.toString()); }
Add the following empty methods to implement the AIListener interface:
@Override public void onListeningStarted() {} @Override public void onListeningCanceled() {} @Override public void onListeningFinished() {} @Override public void onAudioLevel(final float level) {}
Run the App
- Attach an Android device to your computer or have a virtual device ready.
- Make sure that your module is selected in the dropdown, and then click the Debug button.
- The app should now be running on your device or virtual device. Click the Listen button and then speak a phrase that will work with your intent. Wait a few seconds. The result should appear in the result TextView.
Feature examples
User specified contexts
To specify additional contexts in the query you can use RequestExtras
object.
First create list of contexts you need:
List<AIContext> contexts = new ArrayList<>();
contexts.add(new AIContext("firstContext"));
contexts.add(new AIContext("secondContext"));
Then create RequestExtras
instance and use it for request
RequestExtras requestExtras = new RequestExtras(contexts, null);
aiService.startListening(requestExtras);
User specified entities
To specify user entities in the query you can use RequestExtras
object.
First create list of entities you need:
final Entity myDwarfs = new Entity("dwarfs");
myDwarfs.addEntry(new EntityEntry("Ori", new String[] {"Ori", "Nori"}));
myDwarfs.addEntry(new EntityEntry("Bifur", new String[] {"Bofur","Bombur"}));
final List<Entity> entities = Collections.singletonList(myDwarfs);
Then create RequestExtras
instance and use it for request
RequestExtras requestExtras = new RequestExtras(null, entities);
aiService.startListening(requestExtras);
Also you can upload user entities with separate method
aiService.uploadUserEntities(entities);
Bluetooth support
Do these steps to make SDK work with Bluetooth devices:
Create implementation of the BluetoothController near your Application class
private class BluetoothControllerImpl extends BluetoothController { public BluetoothControllerImpl(Context context) { super(context); } @Override public void onHeadsetDisconnected() { Log.d(TAG, "Bluetooth headset disconnected"); } @Override public void onHeadsetConnected() { Log.d(TAG, "Bluetooth headset connected"); if (isInForeground() && !bluetoothController.isOnHeadsetSco()) { bluetoothController.start(); } } @Override public void onScoAudioDisconnected() { Log.d(TAG, "Bluetooth sco audio finished"); bluetoothController.stop(); if (isInForeground()) { bluetoothController.start(); } } @Override public void onScoAudioConnected() { Log.d(TAG, "Bluetooth sco audio started"); } }
Add to your
Application
class integer field to count Activities andBluetoothController
class implementation for Bluetooth managementprivate int activitiesCount; private BluetoothControllerImpl bluetoothController;
Add helper methods to your
Application
classprotected void onActivityResume() { if (activitiesCount++ == 0) { // on become foreground bluetoothController.start(); } } protected void onActivityPaused() { if (--activitiesCount == 0) { // on become background bluetoothController.stop(); } } private boolean isInForeground() { return activitiesCount > 0; }
You need to call this methods from
onPause
andonResume
of every Activity, it can be solved with base class for all your activitiespublic class BaseActivity extends ActionBarActivity { private AIApplication app; private static final long PAUSE_CALLBACK_DELAY = 500; private final Handler handler = new Handler(); private Runnable pauseCallback = new Runnable() { @Override public void run() { app.onActivityPaused(); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); app = (AIApplication) getApplication(); } @Override protected void onResume() { super.onResume(); app.onActivityResume(); } @Override protected void onPause() { super.onPause(); handler.postDelayed(pauseCallback, PAUSE_CALLBACK_DELAY); } }
A complete example can be found in the Sample Application.
Troubleshooting
- If you get an error when trying to install app that says "INSTALL_FAILED_OLDER_SDK", then check you have Android SDK 19 and build tools 19.1 installed.


City present a formal complaint about the refereeing against Liverpool!
by BeSoccer'The Sun' confirm that Manchester City sent a letter to Mike Riley, director of refereeing in the FA, asking for explanations as to what happened in the Liverpool-Manchester City game at Anfield.
The Liverpool-Manchester City game was a match that went down in history in the Premier League. Not so much because of the 'Reds' win, which takes City away from a title, which they will have to come back for in a spectacular way.
But more for what happened during the game. In the match, Pep Guardiola left iconic images when he protested what he considered to be three penalties not awarded to his team.
'The Sun' informs that Manchester City supported their coach and sent a formal complaint to Mike Riley, director of refereeing in the FA, to ask for an explanation.
Featured links
- Ballon d'Or winner already been decided
- The latest football transfers news and rumours
- Possible 'Clasico' in the Spanish Supercup final
- Who has the most free-kicks goals: Messi or Cristiano?
At the same time, Pep Guardiola also criticised the way in which VAR was being implemented at a UEFA coaches' meeting in Nyon.
Riley tried to respond constructively to the team's letter, but stressed his decision to not change the VAR policy in England.
To summarise, Riley will have a meeting with the clubs, but it will be to analyse the benefits of the use of VAR and, despite a lot of mistrust, there will be no withdrawal of VAR in England until the processes are improved.


As a means of encouraging participation during Hacktoberfest 2018, this project targets those relatively new to the open source ecosystem and programming in general, but are eager to learn and improve their creative skills by contributing to projects on GitHub.
By creating issues that require easy to complete tasks, we are providing a platform where beginners can readily join the open source movement without being overwhelmed with the restrictions and complexities that plague already established open source projects. We hope that newcomers will find it easy to grow their confidence as they continue to contribute to projects like this.
Welcome to the world of Open Source.
Hacktoberfest is a month-long celebration of open source software brought to you by DigitalOcean in partnership with GitHub and Twilio. Registered participants who make Pull Requests to public repositories on GitHub throughout the month of October qualify for a limited edition T-shirt. Contributions as small as bug fixes and documentation updates are valid ways of participating. For the full details on how to participate, visit the homepage here.
Read moreThe term "open source" refers to something people can modify and share because its design is publicly accessible. The term originated in the context of software development to designate a specific approach to creating computer programs. Today, however, "open source" designates a broader set of values—what we call "the open source way." Open source projects, products, or initiatives embrace and celebrate principles of open exchange, collaborative participation, rapid prototyping, transparency, meritocracy, and community-oriented development.
Read moreHacktoberfest is a month-long celebration of open source software brought to you by DigitalOcean in partnership with GitHub and Twilio. Registered participants who make Pull Requests to public repositories on GitHub throughout the month of October qualify for a limited edition T-shirt. Contributions as small as bug fixes and documentation updates are valid ways of participating. For the full details on how to participate, visit the homepage here.
Read moreThe term "open source" refers to something people can modify and share because its design is publicly accessible. The term originated in the context of software development to designate a specific approach to creating computer programs. Today, however, "open source" designates a broader set of values—what we call "the open source way." Open source projects, products, or initiatives embrace and celebrate principles of open exchange, collaborative participation, rapid prototyping, transparency, meritocracy, and community-oriented development.
Read more


An immensely strong, heavy-duty worker of spitz type, the Alaskan Malamute is an affectionate, loyal, and playful but dignified dog recognizable by his well-furred plumed tail carried over the back, erect ears, and substantial bone.
The Alaskan Malamute stands 23 to 25 inches at the shoulder and weighs 75 to 85 pounds. Everything about Mals suggests their origin as an arctic sled dog: The heavy bone, deep chest, powerful shoulders, and dense, weatherproof coat all scream, “I work hard for a living!”  Mals are pack animals. And in your family “pack,” the leader must be you. If a Mal doesn’t respect you, he will wind up owning you instead of the other way around. Firm but loving training should begin in early puppyhood. That said, a well-behaved Mal is a joy to be with—playful, gentle, friendly, and great with kids.


| CONTENTS | PREV | NEXT | Java Remote Method Invocation |
RMI allows parameters, return values and exceptions passed in RMI calls to be any object that is serializable. RMI uses the object serialization mechanism to transmit data from one virtual machine to another and also annotates the call stream with the appropriate location information so that the class definition files can be loaded at the receiver.When parameters and return values for a remote method invocation are unmarshalled to become live objects in the receiving JVM, class definitions are required for all of the types of objects in the stream. The unmarshalling process first attempts to resolve classes by name in its local class loading context (the context class loader of the current thread). RMI also provides a facility for dynamically loading the class definitions for the actual types of objects passed as parameters and return values for remote method invocations from network locations specified by the transmitting endpoint. This includes the dynamic downloading of remote stub classes corresponding to particular remote object implementation classes (and used to contain remote references) as well as any other type that is passed by value in RMI calls, such as the subclass of a declared parameter type, that is not already available in the class loading context of the unmarshalling side.
To support dynamic class loading, the RMI runtime uses special subclasses of
java.io.ObjectOutputStream
andjava.io.ObjectInputStream
for the marshal streams that it uses for marshalling and unmarshalling RMI parameters and return values. These subclasses respectively override theannotateClass
method ofObjectOutputStream
and theresolveClass
method ofObjectInputStream
to communicate information about where to locate class files containing the definitions for classes corresponding to the class descriptors in the stream.For every class descriptor written to an RMI marshal stream, the
annotateClass
method adds to the stream the result of callingjava.rmi.server.RMIClassLoader.getClassAnnotation
for the class object, which may benull
or may be aString
object representing the codebase URL path (a space-separated list of URLs) from which the remote endpoint should download the class definition file for the given class.For every class descriptor read from an RMI marshal stream, the
resolveClass
method reads a single object from the stream. If the object is a String (and the value of thejava.rmi.server.useCodebaseOnly
property is nottrue
), thenresolveClass
returns the result of callingRMIClassLoader.loadClass
with the annotatedString
object as the first parameter and the name of the desired class in the class descriptor as the second parameter. Otherwise,resolveClass
returns the result of callingRMIClassLoader.loadClass
with the name of the desired class as the only parameter.See the section "The RMIClassLoader Class" for more details about class loading in RMI.


The problem was:
I created a variable with an empty object and defined gradebook, but then forgot a property should be assigned to the value of a new object.
So, the property Elizabeth was not being assigned to an empty object, which meant the property value was not recognised in the code. The computer could not read the property of Elizabeth so was shown as undefined, which came up as an error on the console on the right.
My first option was to try some pseudocode code and write down the steps in English to utilise a reasoning tool, but it did not go to plan. The other technique was to try and read the error messages in relation to errors for code failure, but my final throw of the dice was to ask both a developer and facilitator what the hell was wrong.
I thought it seemed easy at the very beginning of the task but then seemed to get complicated for me, so frustration crept in and the clock was ticking. I felt the fight or flight mode and could not see the wood for the trees.
Analytical solving problem is not my forte, well if its green or connected with horticulture then yeh I can solve the problem or problems. At this moment in time for coding I am just trying to solve the damn problem.
I think a pseudocode approach has been my first port of call to go through the problem, so I am trying to write down the steps and chunk up more the task.
Another option is to start and read the error messages to try and diagnose the issue, and then reflect that against the code for clues.
Due to dyslexia, it is the way information is written down that makes a task doable, if not flight mode creeps in. My biggest and most difficult hurdle is what do they want from me. I am trying to chunk things up and showing solutions help to make a start. Reflection is useful but comprehension of a task still confusing at times.


He is David. An analytical thinker with a strong inclination to seek every morsel of knowledge on how things function. He is driven to find the core of every issue in order to amend or avoid it. His pursuit of a more minimalist lifestyle infused with his burgeoning affection for C. arabica kindled the purista in him.
She is Mae. An exuberant dreamer and visionary. Her kinship with coffee is one of the most enduring and defining aspects of her persona. Following suit in her husband’s passion towards minimalism she coined “purista” as the proper term for their niche in the coffee industry.
Together they lend their voices, knowledge, and principles to this dwelling. A place for those that share their ardor to seek culture, education, and share experience related to coffee without too much fluff. Home baristas and budding coffee enthusiasts will find themselves right at home, in an environment fostering their growing passions and thirst for knowledge on Caffea.
We have had the pleasure of doing interviews with some other great people and resources in the industry that we’d love for you to check out if you want to know us better. You can also see our introductory post
Corner of the Cafe - Pull Up A Chair: In Conversation With Purista
Barista Magazine Blog - 10 Minutes With David & Mae Clark
Seattle Coffee Gear - What's Your Signature Espresso Drink? Episode Two: The Puristas


About me
Guessing Game
Hello into my website, This is Roaa, I will talk alittle about my self
I studied Telecommunications Engineering at Al Balqa Applied University.
It's an interesting major to study about cause every little connection between us based on it
I have graduated from university on July 2020.
I studied cisco Networking and I'm CCNA certified from 2019.
I have enrolled within the ICT upskilling program in HTU with ministry of commerce
I chose to study cloud computing in Microsoft Azure
I took Azure fundamentals certified from microsoft.
I was looking for a position related to my studies
until I saw thus program and I decided joining.
I'm very glad to be here and start learning web development.
it will be a great chance to expand my knowledge and have a good career.


Contents
Platinum High School Atlas
Platinum High School Atlas
Contents
How to use the Platinum High School Atlas
How to use the Platinum High School Atlas
How to use the Platinum High School Atlas
CAPS Content Topics and Atlas Content
CAPS Content Topics and Atlas Content
CAPS Content Topics and Atlas Content
Map skills Earth’s movements – revolution
Map skills Earth’s movements – rotation
Map skills Globes, maps and atlases
Map skills Map projections
Map skills Types of maps
Map skills The elements of a good map
Map skills Height clues on maps
Map skills Contours and landforms
Map skills Map scale
Map skills Direction
Map skills Latitude and longitude
Map skills Locating exact position – co-ordinates
Map skills Aerial photographs
Map skills Satellite images
Map skills Geographical Information Systems (GIS)
25 Map skills Geographical Information Systems (GIS)
South Africa Settlement
South Africa Political
South Africa Eastern Cape
South Africa Free State
South Africa Gauteng
South Africa KwaZulu-Natal
South Africa Limpopo
South Africa Mpumalanga
South Africa Northern Cape
South Africa North West
South Africa Western Cape
South Africa Physical
South Africa Climate
South Africa Climate
South Africa Natural Resources and Sustainability
South Africa Agriculture
South Africa Agriculture
South Africa Industries
South Africa Mining
South Africa Energy Sources
South Africa Transport and Trade
Southern Africa Tourism and Conservation
South Africa Population
Southern Africa Population
Africa Political
Africa Physical
Africa Climate and Vegetation
Africa Climate and Vegetation
Africa Climate Change, the Environment and Human Activities
Africa Climate Change, the Environment and Human Activities
North America Political
North America Physical
South America Political
South America Physical
Europe Political
Europe Physical
Asia Political
Asia Physical
Australasia Political
Australasia Physical
The Arctic & Antarctica
World Time Zones
World Political
World Political
World Physical
World Physical
World Continental Drift and Plate Tectonics
World Continental Drift and Plate Tectonics
World Climate
World Climate
World Climate Change and Global Warming
World Climate Change and Global Warming
World Natural Vegetation and Soils
World Natural Vegetation and Soils
World Environmental Risks
World Environmental Risks
World Resources
World Resources
World Fuel and Energy
World Trade
World Tourism
World Tourism
World Communications and Transport
World Communications and Transport
World Development
World Development
World Development
World Population
World Population
World Population
Index
Index
Index
Index
Index
Index
Index
Index
Index
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104


 However, some
do not look exactly like a penis. Dildos come
in a rainbow of colors and a variety of shapes,
textures, and styles. Some people prefer to use
a dildo that completely resembles the color, shape,
and texture of a real penis. But others prefer something
different such as a dildo that is hot pink or one that
lights up. Dildos can be made from a variety of materials
including: plastic, rubber, latex, silicone,
and “jelly”. Dildos can be used by people
of all genders and sexual orientations. They
can be used for masturbation or for other
sexual activity. Dildos can be used alone or with a partner.


---
title: "Presentations"
author: "Frederick Boehm"
date: "2019-07-13 11:07:15"
output: html_document
---
- International Mammalian Genome Conference, November 11-14, 2018, Rio Mar, Puerto Rico
- Winner of best poster award
Joint Statistical Meetings, August 1, 2018, Vancouver, British Columbia, Canada
Complex Trait Community meeting, June 20, 2018, Glasgow, Scotland


Why use product activation?
Why
One of the great things about the Internet is that it makes it very easy to distribute software to a large number of people. Unfortunately it’s also very easy to distribute license codes and cracks. A single leak can quickly lead to thousands of pirated copies. Product activation minimizes the damage caused by such leaks. If the same license code is used to activate a product hundreds or thousands of times, then it’s clear that a leak has occurred and further activations can be stopped before the damage spreads too far.
How
Every aspect of the product activation system is carefully designed to reducing the damage done by software piracy without inconveniencing honest users. Whereas in older products users entered their license codes and clicked an “OK” button, they now click a “Verify” button. The only difference is that their license is now verified with the wincent.com server and after few seconds or less the product is permanently activated. No personal information is transmitted to the Wincent server in the process so your privacy is protected (see activation privacy).
Product activation doesn’t interfere with normal use (moving your license to another machine, reinstalling your system or changing your hardware) because each license is allowed a reasonable number of activations.
Who
Product activation is employed by some of the largest software companies in the world such as Microsoft, Macromedia, Adobe, Network Associates and Symantec and the list is constantly growing. In the not-too-distant future product activation is likely to be included in the majority of commercial software. (You can read more general information about product activation and the companies that use it on this page at the Business Software Alliance website.)


Extends distribution and density functions to parametric multivariate generalized Pareto distributions (MGPD of Type II), and provides fitting functions which calculate maximum likelihood estimates for bivariate and trivariate models. (Help is under progress)
| Version: | 1.99 |
| Depends: | R (≥ 2.10.1), evd, numDeriv, corpcor, fields |
| Published: | 2012-03-19 |
| Author: | Pal Rakonczai |
| Maintainer: | Pal Rakonczai <rakonczai.p at gmail.com> |
| License: | GPL-3 |
| NeedsCompilation: | no |
| In views: | Distributions |
| CRAN checks: | mgpd results |
| Reference manual: | mgpd.pdf |
| Package source: | mgpd_1.99.tar.gz |
| Windows binaries: | r-devel: mgpd_1.99.zip, r-release: mgpd_1.99.zip, r-oldrel: mgpd_1.99.zip |
| OS X binaries: | r-release: mgpd_1.99.tgz, r-oldrel: mgpd_1.99.tgz |
| Old sources: | mgpd archive |
Please use the canonical form https://CRAN.R-project.org/package=mgpd to link to this page.


A full backup is a backup that can be restored independently of any other backup. A full backup will be performed if the last full backup is older than the specified frequency. Between full backups, all backups are incremental, saving only changes made since the previous backup.
FREQUENCY := <int>[DWM]
'D' is for Days. 'W' is for Weeks. 'M' is for Months.
3D three days 2W two weeks 1M one month
Incremental backups are useful because they are fast and efficient. But restoring an incremental backup requires retrieving the volumes of all backup sessions made before it, up to and including the full backup that started the chain. The longer the backup chain, the more time it will take to restore.
Very long backup chains are inefficient and more vulnerable if something goes wrong as links in the chain depend on one another.
If you backup daily, and do a full backup monthly, your backup chains will consist of a full backup with at most 30 incremental backups linked to it. If you backup more frequently (e.g., hourly) you may want to reduce the full backup frequency to every few days.