This year has been one of the years with more events that could influence the stock market of the last 10 years.
On the one hand we started with a abysmal crisis in the price of oil that caused the main European indices to fall by an average of 15% due to the existing oversupply.
USA was the lowest of the SP500 reaching 2014 levels, down to 1800 however when it turned around and touched ground USA reacted much better to Europe in general.
On the other hand the year had not fully recovered from the end of the Chinese growth that in August of 2015 made the world's parks tremble.
Returning to the channel and starting the oil to give signs of exhaustion seller USA would return to previous levels reaching its benchmark the 2000 points.
Europe was looking forward to the referendum in England , of which it has been sincere for more than a year.
As time progressed, the idea was taken that supporters of continuing in the European Union would win by a small margin but that was assured.
The market would react favorably in this sense and the stock markets would rise strongly.
However, the result was far from expected, with Brexit supporters winning by a narrow margin of 2%.
This would weigh the bags for 1 month until they came to accept the situation.
Between the day of the knowledge of results and the next two days the main European indices would fall by 15% even reaching a value lower than that suffered after the crisis of January.
The most affected would be the financial entities and the airlines that have not yet recovered.
Posteriormente del Brexit en verano se producirían las segundas elecciones españolas que darían como claro vencedor a Mariano Rajoy.
Sin embargo el recuento de escaños no le daría la mayoría suficiente para poder gobernar y matemáticamente dependería básicamente del adversario histórico que tras no poder llegar al poder por la negativa de Podemos.
Un partido nuevo español que representa al sector español más afectado por la crisis de estos años.
Esta situación dejaba un sabor agridulce en los mercados, ya que si bien se conseguía que un partido pro-mercado consiguiese un valor aceptable no podría ser envestido y volvía la inestabilidad.
Esta vez la situación apenas se reflejó en la bolsa ya que este resultado estaba descontado.
Tras una bandada de resultados políticos y decisiones que no eran buenas para los mercados los índices estuvieron laterales ya a la espera de las elecciones americanas y entonces llego lo que algunos denominaron como el Trumpazo.
Trump won the election against all odds.
Despite the fact that here in Europe a favorable result had been deducted from Clinton in the United States the main companies were divided around the two candidates .
In the USA, a rally began, which has not yet ended, with the indices reaching historical highs, while in Europe the levels of the beginning of the year have recovered.
The following graph shows the main American indices after the victory of Donal Trump.
And especially in Spain since the abstention of the PSOE made Spain had president and enjoyed some stability.
On election day in the United States, there was a very large swing in all indices, the volatility reaching a large volume only surpassed by the Brexit as seen in the following chart:
This is a phenomenon that will undoubtedly mark the course of the economy, but on USA elections only last 4 years, Brexit can be a historical change without a possible reversal.
Recall also that after the US elections was not time on the part of the losing party to give support to Trump and try to reduce the tension for the good of the country.
Thing that in Spain is unthinkable although in this case the PSOE has been able to carry out to perfection.
Also Trump would lower his tone and message and he would retract of many the controversial measures that wanted to realize.
What most could weigh on the market was Trump's warning to shift the free-market course to a protectionist state very similar to the populist parties that have swarmed Europe in recent times.
Parties such as We can either the National Front or the UKIP English or the Italian Five Stars movement.
Although all the appointments that Trump has made discard this option.
The only thing that would reinforce the domestic market and make multiple investments to relaunch the US economy from the industrial sector.
After the American elections, two important appointments would come, such as the Italian referendum and the FED meeting .
Everything was as expected and there was no unexpected change in the market.
After the Christmas rally that ended on December 15, calm has returned in markets where the Dow Jones has consolidated the level correcting from almost 20k points to 19.8k.
The DAX for its part has consolidated the level of 11,500 and the Ibex 9350. Serving as supports for future growth.
Being optimistic, I estimate that next year the IBEX may be finishing at 11,500 points by the end of 2017 .
There will be an initial rise until March-April that will put it at 10,800, then correct and return to the 9500.
In October of the year they will return to the values of flood and will end the year in the cited values of 11,500.
The next year prognostic values will be those of the building materials, construction, industrial and banking .
The most disadvantaged will instead be the utilities, large power companies, and the entire ICT sector .
Even so I do not think they are going to lose value but the difference between these sectors will be very large.
Apart from other companies that will continue to benefit from the boom of the global economy will be the airlines and tourism sector, mainly hotel chains.
If we compare this year with respect to other years we will see that it has been a transition year between a rebound stage.
Since 2008 we reached 12,000 points last year and a mature stage of growth that is the cycle that we will see possibly in 2018.
This year has begun to materialize in the United States with very low unemployment rates and the beginning of the rise in wages and interest rates.
In Europe we are always lagging behind the United States and that is why I totally rule out a rate hike until the first quarter of 2018 or the end of this year.
Spain leads the way in Europe in growth although it is true that we were the most affected by the crisis and more than a growth is a recovery of previous levels.
With the current scenario of political stability and a slow recovery in the labor market, and due to our enviable weather conditions growth expectations are very high.
However, there are many measures to be taken, especially in the field of the self-employed, to relaunch the economy.
In the United States it seems that the end of the expansive policies has come and the new president of the United States is going to begin expansive policies that are going to bring new projects to his country.
An increase of jobs in the industrial sector and the landing of many companies on American soil, among others Spanish, although it is certain that he tried to have the greatest weight fall in American companies.
In Asia, on the other hand, the end of the expansionary policies came last year and it was noticed in the price of raw materials that reached levels not seen in a decade.
This, together with the fall in oil prices, created a crisis on a global scale.
China is now in a stage of maturity of its economy focusing on boosting its technology companies and the quality of its products rather than quantity.
The Chinese middle class has increased exponentially from 100 million Chinese at the beginning of this century to about 600 million that is currently half of the population.
India, on the other hand, continues in an expansionary phase with high inflation and annual growth of over 7%.
This may continue for another decade as they have a significant backwardness and inequality.
Not only by social classes but also by areas of the country as there are nuclei where there is extreme poverty and others where the middle class reigns.
That is why India equities still have a lot of potential.
Equities in other emerging countries such as South America have suffered a huge blow due to the political instability of some countries such as Brazil and Venezuela and the crisis of raw materials.
These countries have not managed their capital well and instead of putting it to create a competitive market have been wasted in many respects and also taking into account the high political corruption they suffer.
© 2016 - All Rights Reserved - Diseñada por Sergio López Martínez
El sitio se mantiene gracias a la publicidad, por favor Desactiva Adblock para seguir navegando
He desactivado Adblock


JOE BENDER
User Centered Design
HOMEWORK #1
HOMEWORK #2
HOMEWORK #3
HOMEWORK #4
HOMEWORK #5
HOMEWORK #6
HOMEWORK #6 - Part 2: Photoshop HW
HOMEWORK #7
HOMEWORK #8 - Part 1: Unique Webpage
HOMEWORK #8 - Part 2: Liquid Layout
HOMEWORK #9
FINAL PROJECT - FRENCH PRESS VIDEO


We grow when you grow.
Location: Bengaluru, Karnataka
Experience: 0-2 Years
Full time
Job Description
Experience: 3-5 Years


An active specification with JUnit consists of two parts: an
HTML file and a Java test that extends ConcordionTestCase
.
When you run the test class using JUnit, it will automatically locate the HTML file. It does this by looking in the same package for a ".html" file named the same as the test, but without the "Test" suffix.
If your test is called com.example.BreadcrumbTest then the corresponding HTML file must be in the same package (com.example) and called Breadcrumb.html.
The jUnit 3 integration supports all standard jUnit3 methods - including the setUp method.
import org.concordion.integration.junit3.ConcordionTestCase;
import org.junit.Before;
import org.junit.runner.RunWith;
public class Junit3Test extends ConcordionTestCase {
@Override
public void setUp() {
// this method is called before your fixture starts
}
public boolean assertSomething() {
// this method can be asserted to return "true" from your specification using the
// concordion:assertTrue command
// other commands can be found here.
}
}


FactoryRegistry |
open class FactoryRegistry<K : Any, V : Any, FACTORY_ARG> : GenericRegistry<K, Class<out V>> |
GenericRegistry |
A generic registry class that can map a key to a value. Also provides some additional utilities, such as key extracting. open class GenericRegistry<K : Any, V : Any> : Iterable<V> |
RegistryNameable |
abstract class RegistryNameable |


About...
Greetings! I'm William Gilreath (he/him/his)
I am a multifaceted senior software engineer, computer
scientist, mathematician, poet, writer, and lover of cats.
I love working with software developing, testing,
writing, and analyzing source code. In my spare time, I write
both code and technical articles, and narrative prose: novels,
short stories, book chapters, and poetry.
I showcase some of the algorithms, code,
programming languages, research papers, and software I have
created, written, and published.
I am currently a Senior Machine Learning
Engineer (Senior ML Engineer) with VMware, Inc. located in
Palo Alto, California working with software development in machine learning (PDF 3.6 Mb)
in OCTO the Office of the
CTO.
Blog...
I have an inactive blog about my technical
dabbling and other things...entitled Much Ado About Nothing where I write
about this, that, and the other, but not of late. Note that I
am not on Facebook, Instagram, Twitter, MySpace, and
other social media too much melodrama, and I do not want my
personal life (and personal data, information) on the
Internet.
ZeptoN...
My current technical project is a new programming language "ZeptoN Blog" from "zepto" +
"N". A small programming language (zepto- is a factor of 10-21)
that is the Nth programming language (as programming languages
go from 1 to N) where this is the Nth programming language.
The ZeptoN whitepaper [ epub
(5.9 Mb) | pdf
(6 Mb) ] describes the ZeptoN language, its goals,
and gives many examples with output to illustrate the ZeptoN
programming language.
ZeptoN extends Java by adding a program entity "prog"
construct like a class (without the object-oriented
trimmings), with an implicit program entry point as a block. Yet ZeptoN is
completely Java syntax and concept compatible. ZeptoN puts the
program back into Java programming!
ZeptoN is now available on my GitHub repo for download, or the GitHub page. This is the ZeptoN "Echo"
transcompiler which transpiles to Java, and then uses the Java
Compiler API to build a Java bytecode .class file.
I have had an article about ZeptoN
published on JavaCodeGeeks describing extending the
language. I am developing and tinkering with Zeptor the ZEPtoN
code editOR, a ZeptoN source code editor with an integrated
ZeptoN transcompiler. A basic ZeptoN integrated development
environment.
Here is a Youtube! video (with
accompanying Zither music from the classic movie "The Third
Man" playing as various ZeptoN program
programs are opened, compiled, and run. Check it out! And if
interested, I'm looking for those interested in trying out
ZeptoN
using Zeptor.
ZeptoN extends Java by adding a program entity "prog"
construct like a class (without the object-oriented
trimmings), with an implicit program entry point as a block. Yet ZeptoN is
completely Java syntax and concept compatible. ZeptoN puts the
program back into Java programming!
Here is an example of a ZeptoN program, the ubiquitous and
infamous "Hello, World!!!" program....
ZeptoN Code Example...
prog helloWorld {
begin {
println("Hello,
World!!!");
exit(0);
}//end begin
}//end prog helloWorld
Books...
Here are some books I have written.
Research Papers...
Here are some theoretical research papers I have
written, and have been published by the General Science Journal .
Check out my Google
Scholar or Microsoft
Academic with my other works. https://orcid.org/0000-0002-1825-0097
Source Code...
-
WEJAC - Will's Elided Java Api Compiler, a
javac alternative that has simpler and fewer command-line
options. The user manual for WEJAC is available as an e-book on Smashwords in various
formats.
-
DBXShell - the DropBoX shell connects
to a DropBox storage
account, and perform file and folder operations in
command-line interface client.
-
Boz
- compiler for a programming language "Boz" (a pen name of
Charles Dickens) developed using JavaCC .
-
Hash Sort - sorting by
hashing into a N x N matrix data structure; implement in
C/C++, Java, Python.
-
XML Tokenizer - XML tokenization into
tags, attributes, text, for an XML token stream
implemented in Java.
-
Binar Shuffle/Sort - shuffle
(unsorting) and sorting by using bits of binary datum.
-
FunCL -
(rhymes with "uncle") interpreter for the FUNctor Clause
Language, a functional style programming language that is
both like Forth and LISP but without the reverse Polish
notation or parenthesis.
FunCL Code Example...
DEF HELLOWORLD
PUSH
EOLN PUSH "Hello World!!!" ECHO ECHO .
HELLOWORLD
.
Technical Articles...
Me...
I am a multifaceted senior software engineer,
computer scientist, mathematician, poet, writer, and lover of
cats.


BindiPizza is not only proud to be Nairobi city Favorite Pizza, but also the leading pizza restaurant in Kenya. Our innovation and creativity has enabled us to offer the widest range of pizzas allowing our customers to choose from our range of classic, favorite, signature and something special pizzas. Our pizzas are made with thin crusts, lots of toppings, and the perfect blend of sauces.
They are quite generous with their toppings. Their service is also quite good. Can't compare to other pizza joints.
The service is top notch with attention to what customers want. You could even get free cheese bread with a delayed order!!!
My daughters loved the Extravaganza and Chicken chilli Pizzas. The varieties are amazing and the staff very friendly.
email. bindipizza@gmail.com


VSW Configuration
Configuration for Very Simple Watch. Even the config is simple...
Appearance
Black background
Show step count
Pebble Health Step Target


Microsoft Indonesia, Jakarta (2018)
👋 Hi! I'm a 15-year-old artist/engineer from Indonesia. Currently traveling in China.
I'm Andre Christoga Pramaditya (prum · uh · dit · ya), people usually call me Andre or mononymously drepram. I create art with logic, photos and sometimes voice.
My time is mostly taken up by studying {Math, Physics} and working {Software Engineering, Graphic Design}. My time is spent watching {Baby, TEOTFW, Silicon Valley, Rick and Morty}, rambling {about math, computer science, philosophy}, reading {N.N. Taleb, A. Boediman}, and working out.
I use Twitter passively, do not use LinkedIn in the right way, share some code on GitHub, and post photos weekly on Instagram.
I track my music with Last.fm, look at my last 18 plays on moeziq, and discuss things on dev.to
You can take a look at my portfolio, reach me via email at<EMAIL_ADDRESS>and you can encrypt messages to me using my Keybase key.


Territory Manager:
Thank you for your service to %castle% Territory during the recent war. For your efforts, I can reward you with %badge% numbers of Territory Badge and %adena% Adena.
If you continue your efforts on our behalf, I'll make sure you receive more in the future. What would you like to do?
Receive the reward later.
Receive the reward now.


A jQuery plugin for colour inputs
Finally, a usable (accessible, rational, and responsive) colour picker for the web.


he found the evidence for his belief in nature rather than in the Bible; he doubted a good bit of traditional doctrine—and he didn’t treat religion all that seriously.
Revivals but at heart a move from God to human beings
science seemed to being moving from one accomplishment to another …
nationalism taking root, centralizing power
at the very time of success in discovery and technology, reason seemed to reach its end of life
Descartes to Newton
Newton on religion
Newton: God’s "immensity" stretching infinitely in all directions and unchanged for all eternity (cp. changing metaphor) (cp. Borges)
what was most important about religion was its morality – cf. Jefferson's approach (206)
while retaining religion, it is no stripped of the "supernatural"
"natural religion" (206)
Church of England would keep its theology vague enough to include as many groups as possible and tolerate the presence of some dissenting groups like Anabaptists and Quakers, though not Catholics
Borges
Universal history is the history of a handful of metaphors
changing metaphor from Anselm to Descartes
Locke and Deists
Nearly all the attitudes of the time came together in John Locke (207)
Many Deists brought to bear on the biblical miracle stories all the prestige of the scientific discovery of laws (209)
Deists distrusted appeals to authority and the miraculous, but they also turned away from anything beyond natural religion in part for moral reasons.
Religion of Reason
Descartes argued that knowledge would come only from doubting everything
can a religion be built on Doubt?
No man shall ever be kept out of Heaven … if he had but an honest and good heart, that was ready to comply with Christ’s commandments (205)
God is more inward to us than our very souls (205)
Pietists and Methodists
"Enthusiasm" was a dirty word in the eighteenth century. (210)
story begins in Germany, where Lutheran orthodoxy had increasingly defined faith as assent to a set of doctrines
Lutherans suspect any call to moral improvement as a move toward works-righteousness.
rise of Pietism (210)
Moravians and J. Wesley intersect (211)
Methodism with a "method" for holiness
Wesley and Whitefield changed the shape of popular religion in England and North America, but they made little impact on the attitudes among most intellectuals
The end of Age of Reason
Hume
skeptic of scientific inference producing absolute knowledge
apply skepticism to argument from order; miracles; and others …
Rousseau
doubting even civilization – cf. Emile raised as a natural child
follow self & respect others (214)
Lessing: story of 3 rings (214)
Kant
seeking necessity of religion apart from historical evidence
Pietist upbringing
his arguments begin with ethics – universal imperative
like much of enlightenment thinkers: accepting God but nothing to do with most doctrine


class: center, middle, inverse, title-slide # Session 6: R Programming Practices ## R for Stata Users ### Luiza Andrade, Rob Marty, Rony Rodriguez-Ramirez, Luis Eduardo San Martin, Leonardo Viotti ### The World Bank |
WB Github
April 2021 ---  # Table of contents 1. [Introduction](#introduction) 2. [Initial settings](#initial-settings) 3. [File paths](#file-paths) 6. [Creating a document outline in RStudio](#creating-a-document-outline-in-rstudio) 7. [Using packages](#using-packages) 8. [Functions inception](#functions-inception) 9. [Looping](#looping) 10. [Custom functions](#custom-functions) 11. [Indentation](#indentation) 12. [Appendix](#appendix) --- class: inverse, center, middle name: introduction # Introduction

 --- # Introduction ## What this session is about * In the previous sessions, you learned how to work with R * You are probably eager to start programming in R by now * But before you start, we recommend learning how to write R code that will be __reproducible, efficient, intelligible and easy to navigate__ * Indeed, that's what this session is about! --- # Introduction ## What this session is about * We will cover common coding practices in R so that you can make __the most efficient use__ for it * We will also discuss some styling conventions to make your code __readable and reproducible__ * This will give you a solid foundation to write code in R and hopefully you'll be able to skip some painful steps of the "getting-your-hands-dirty" learning approach --- class: inverse, center, middle name: initial-settings # Initial settings

 --- # Initial settings * Let's start by opening RStudio or by closing and opening it again * Notice two things: 1. Your environment is *probably* empty (it's OK if it's not)  --- # Initial settings 2- Go to the `Console` panel and use the up and down keys to navigate through previously executed commands. They are saved by default in a file named `.Rhistory` that you might have noticed  * We'd usually want these two things -- an __empty environment__ and the __history of commands__ executed in previous sessions -- to be present every time we open a new RStudio session --- # Initial settings Have you ever seen these lines of code before?  --- # Initial settings ## R Initial settings * We __don't need to set the memory or the maximum number of variables__ in R * The equivalent of `set more off` is the default * The equivalent of `clear all` is not a default setting, but we'll change that in exercise 1 * In any case, remember that you can see all the objects in your computer's memory at any point in the `Environment` panel  --- # Initial settings ### Exercise 1: you'll never have to use the equivalent of `clear all` 1. Go to `Tools` > `Global Options...` 2. In the `General` tab, make sure the following options are set: + Un-check *Restore .RData into workspace at startup* + For *Save workspace to .RData on exit*, select *Never* + Make sure *Always save history (even when not saving .RData)* is checked 3. Now restart RStudio --- # Initial settings  --- # Initial settings  --- class: inverse, center, middle name: file-paths # File paths

 --- # File paths * What about working directories? We usually do something like this every time we start a new script in Stata:  * The direct equivalent to `cd` in R is this command: ```r setwd("your/path") ``` * However, we recommend not using it unless it's absolutely necessary (never, if possible) --- # File paths * Instead, you should use RStudio projects and the `here` library * __Important:__ We won't get into the specifics of directory organization here, but we'll assume that all the files you use for a specific project (data, scripts, and outputs) reside in the same project directory. We'll call this the __working directory__ ## RStudio Projects * RStudio projects let you "bind" your project files to a root directory, regardless of the path to it * This is crucial because it allows smooth interoperability between different computers where the exact path to the project root directory differs * Additionally, each RStudio project you work on keeps their own history of commands! --- # File paths ## RStudio projects ### Exercise 2: Create a new RStudio project Follow these instructions: 1. On RStudio, select `File` > `New Project...` 2. Select `New Directory` > `New Project` 3. Assign the name: `dime-r-training-project` to the project --- # File paths ## RStudio projects  --- # File paths ## The `here` library * `here` locates files relative to your project root * It uses the root project directory to build paths to files easily * Similar to RStudio projects, it allows for interoperability between different computers where the absolute path to the same file is not the same --- # File paths ## Usage of `here` 1- Load the `here` library: ```r library(here) ``` 2- Now you'll be able to use `here()` to point the location of every file relative to your project root + For example, to load a `csv` file located in: `C:/WBG/project-root-name/data/raw/data-file.csv`, you should use: ```r df <- read.csv(here("data", "raw", "data-file.csv")) ``` * __Note:__ Your project root is the directory that contains the `.Rproj` file --- # File paths ### Exercise 3: Combining `here` and RStudio projects 1. Go to the [OSF page of the course](https://osf.io/86g3b/) and download the file in: `R for Stata Users - April 2021` > `Data` > `DataWork.zip` 2. Unzip the file in your RStudio project root folder + This is the folder where the file `dime-r-training-project.Rproj` sits + If you didn't change the default directory when creating the RStudio project, it will be in your `Documents` folder in Windows or in your Home directory in Mac or Linux 3. On RStudio, go to `File` > `New File` > `R Script` 4. Save this new empty script in `DataWork` > `Code` as `exercises.R` 5. Now let's test if that worked. Load the `here` library read the `csv` file `DataWork/DataSets/Final/whr_panel.csv` using the function `here()`: ```r library(here) whr <- read.csv(here("DataWork", "DataSets", "Final", "whr_panel.csv")) ``` --- # File paths ## RStudio projects and `here` If you did the exercise correctly, you should see the `whr` data frame listed in the Environment panel  --- class: inverse, center, middle name: creating-a-document-outline-in-rstudio # Creating a document outline in RStudio

 --- # Creating a document outline in RStudio * RStudio also allows you to __create an interactive index__ for your scripts * To add a section to your code, create a commented line with the title of your section and add at least 4 trailing dashes (`----`), pound signs (`####`) or equal signs (`====`) after it --- # Creating a document outline in RStudio ### Exercise 4: Headers 1. In your script, add a header before the line where you used `library(here)` with the text: `# Part 1: Loading libraries----` 2. Add the following header before `read.csv(...)`: `Part 2: Loading data----` + Remember: you create a section header by adding at least 4 trailing dashes (`-`), pound (`#`) or equal (`=`) signs in a comment line 3. Note that once you create a section header, an arrow appears right next to the row number. Click on the arrows to see what happens. --- # Creating a document outline in RStudio * The outline can be accessed by clicking on the button on the top right corner of the script window. You can use it to jump from one section to another * You can also use the keyboard shortcuts `Alt + L` (`Cmd + Option + L` on Mac) and `Alt + Shift + L` to collapse and expand sections  --- class: inverse, center, middle name: using-packages # Using packages

 --- # Using packages ## Packages * Since there is a lot of people developing for R, it can have many different functionalities. * To make it simpler, these functionalities are bundled into packages. * A package is just __a unit of shareable code__. --- # Using packages ## Packages * It may contain new functions, but also more complex functionalities, such as a Graphic User Interface (GUI) or settings for parallel processing (similar to Stata MP). * They can be shared through R's official repository - CRAN (13,000+ packages reviewed and tested). * There are many other online sources such as GitHub, but it's important to be careful, as these probably haven't gone through a review process as rigorous as those in CRAN. --- # Using packages ## Packages * To install and use packages you can either do it with the user interface or by the command prompt. ```r # Installing a package install.packages("tidyverse", dependencies = TRUE) # the dependencies argument also installs all other packages # that it may depend upon to run ``` * You only have to install a package once, but you have to __load it every new session__. --- # Using packages ## Packages ### Exercise 5 Add: ```r library(tidyverse) ``` to Part 2 in your script and run it --- # Using packages ## Warnings vs errors What if this happens?  --- # Using packages ## Warnings vs errors R has two types of error messages, `warnings` and actual `errors`: * `Errors` - break your code, usually preventing it from running. * `Warnings` - usually mean that nothing went wrong yet, but you should be careful. RStudio's default is to print warning messages, but not to stop the code at the lines where they occur. You can configure R to stop at warnings if you want. --- class: inverse, center, middle name: functions-inception # Functions inception

 --- # Functions inception ## A function inside a function * In R, you can __write one function inside another__ * In fact, you have already done this several times in this course * Here's an example: --- # Functions inception ```r # Print the summary of the logarithm of the happiness score ## The long way: log_score <- log(whr$happiness_score) summary(log_score) # The shortcut summary(log(whr$happiness_score)) ```  --- # Functions inception ## A function inside a function * This is a simple example of __metaprogramming__ (that's the real name of this technique) and may seem trivial, but it's not * For starters, you can't do it in Stata! --- # Functions inception  --- # Functions inception ## A function inside a function * Metaprogramming is a __very powerful technique__, as you will soon see * It's __also a common source of error__, as you can only use one function inside the other if the output of the inner function is the same as the input of the outer function * It can also get quite tricky to follow what a line of code with multiple functions inceptions is doing --- # Functions inception ## Piping revisited * Remember piping? This: `%>%` * Well, piping is actually a way of doing metaprogramming * Recall that the meaning of the pipes is: *Pipes take the __output__ of the function at the left and pass it as the __input__ of the function at the right* * The advantages of using piping is that it allows to have a cleaner division of successively applied functions in R code, __drastically improving code readability__ --- # Functions inception ## Piping revisited ```r # 1: Doing it the long way ----------------------------- log_score <- log(whr$happy_score) mean(log_score) # 2: Shortcut to get to the same place ----------------- mean(log(whr$happy_score)) # 3: Now with pipes ------------------------------------ whr$happy_score %>% log() %>% mean() ``` Just remember: * `x %>% f()` is the same as `f(x)` * `x %>% f() %>% g()` is the same as `g(f(x))` --- class: inverse, center, middle name: looping # Looping

 --- # Looping ## Loops * In Stata, we use `for` loops very frequently * The equivalent to that in R would be to write a `for` loop like this ```r # A for loop in R for (number in 1:5) { print(number) } ``` --- # Looping ```r for (number in 1:5) { print(number) } ```  --- # Looping ## Column extraction operators - revisited * Remember the use of `$` to extract columns from a dataframe? * Other than `$`, we can also use double brackets to extract the column of a dataframe: ```r # With $: whr$year ``` ```r # With [[]]: whr[["year"]] # Notice the use of double quotes ``` --- # Looping ## Column extraction operators: `[[]]` vs `$` What's the key difference between them? Well, `[[]]` lets us use other objects to refer to column names, while `$` doesn't ```r col_name <- "year" head(whr$col_name) # this returns a NULL object because no column has the name "col_name" in whr ``` ``` ## Warning: Unknown or uninitialised column: `col_name`. ``` ``` ## NULL ``` ```r col_name <- "year" head(whr[[col_name]]) ``` ``` ## [1] 2015 2015 2015 2015 2015 2015 ``` --- # Looping ## Column extraction operators: `[[]]` vs `$` This difference is key because we can use `[[]]` to loop through column names, while this is not directly possible with `$`. ```r # Printing the first observation of every column of whr for (col in colnames(whr)) { whr[[col]] %>% head(1) %>% print() } ``` ``` ## [1] "Switzerland" ## [1] "Western Europe" ## [1] 2015 ## [1] 1 ## [1] 7.587 ## [1] 1.39651 ## [1] 0.94143 ## [1] 0.66557 ``` --- # Looping ## Apply * Using `[[]]` to loop through columns works very similar to how we usually use `for` loops in Stata * R, however, has a set of functions that allows users to loop through an object __in a more efficient way__, without using explicit loops * They're called `apply` and there are many of them, with different use cases * If you look for the `apply` help file, you can see all of them * For the purpose of this training, we will only use two of them, `sapply` and `apply` --- # Looping ## Apply * The syntax of `sapply()` is: ```r sapply(X, FUN, ...) ``` * Its main arguments are: + **X:** a data frame, matrix or vector the function will be applied to + **FUN:** the function you want to apply * `sapply()` applies the function (`FUN`) to all the elements of `X`. If `X` is a data frame then the function is applied column-wise, while if it's a vector or a list it is applied item-wise * The output of `sapply()` is usually a vector with the results, but it can be a matrix if the results have more than one dimension --- # Looping ```r # A for loop in R for (number in c(1.2, 2.5)) { print(round(number)) } # A much more elegant option sapply(c(1.2, 2.5), round) ```  --- # Looping ```r # Printing the first observation of every column of whr for (col in names(whr)) { print(head(whr[[col]], 1)) } # Option 1 sapply(whr, head, 1) # A more elegant and efficient option ```  --- # Looping ## Loops vs Apply * When looping, you repeat the same operation over a set of items * `apply()`, instead, takes all your elements at once and applies an operation to them simultaneously * The difference is like this: + Imagine you ask a yes/no question to a group of people + You can collect the answers by asking each one of them individually -- __this is looping__ + Otherwise, you can ask them to raise their hands and collect all answers at once -- __this is `apply()`__ * The output of a loop is the regular output of the operation you're repeating, times the number of iterations you did * The output of `apply()` will be a vector most of times, but it can also be a list or an array of elements (a matrix) --- # Looping ## Apply * A more general version of `sapply()` is the `apply()` function. This is its syntax: ```r apply(X, MARGIN, FUN, ...) ``` * Arguments: + **X:** a data frame (or matrix) the function will be applied to + **MARGIN:** 1 to apply the function to all rows or 2 to apply the function to all columns + **FUN:** the function you want to apply * `apply()` applies a function (`FUN`) to all columns or rows of matrix (`X`). A value of 1 in `MARGIN` indicates that the funcion should be applied row-wise, while 2 indicates columns --- # Looping ```r matrix <- matrix(c(1, 24, 9, 6, 9, 4, 2, 74, 2), nrow = 3) # Defining a matrix apply(matrix, 1, mean) # row means apply(matrix, 2, mean) # column means ```  --- # Looping ### Exercise 6: Get the row max 1. Select the columns `freedom` and `happiness_score` of `whr` 2. Use `apply()` to get the row max between these two columns, for every row * Hints: + Remember the syntax of `apply()`: `apply(X, MARGIN, FUN)` + A value of 1 for `MARGIN` indicates that the function must applied row-wise + The function to get the maximum over a set of number is `max` --- # Looping ```r whr %>% select(freedom, happiness_score) %>% apply(1, max) ```  --- # Looping ## Apply * Apply looks nice * But what about cases when it's impossible to implement the operations I want to apply in only one function? Do I have to use `for` loops then? * Not at all! Let's get to the next section for those cases --- class: inverse, center, middle name: custom-functions # Custom functions

 --- # Custom functions ## Writing your own functions * As we have said several times, __R is super flexible__ * One example of that is that it's __super easy and quick to create custom functions__ * Here's how: --- # Custom functions ```r square <- function(x) { y <- x ^ 2 return(y) } ```  --- # Custom functions ### Exercise 7: Create a function Create a function named `zscore` that standardizes the values of a vector. * Recall the outline of functions in R: ```r function_name <- function(input) { output <- operation(input) return(output) } ``` + Hints: * The command to obtain the mean of a vector is `mean(x)` * The command to get the SD of a vector is `sd(x)` * R is vectorized: you can operate vectors and number directly and the result will be a vector * Don't forget to include the argument `na.rm = TRUE` in `mean()` and `sd()` --- # Custom functions ```r zscore <- function(x) { mean <- mean(x, na.rm = TRUE) sd <- sd(x, na.rm = TRUE) z <- (x - mean)/sd return(z) } ```  --- # Custom functions ### Exercise 8: Putting it all together! 1. Use tidyverse's `select()` to select the columns `health_life_expectancy` and `freedom` in `whr` 2. Use `sapply()` combined with the `zscore` function to get the z-score of these two columns + Hint: * Use the pipes (`%>%`) successively * Remember that we don't use parenthesis next to the function name we're using `sapply()` with --- # Custom functions ```r whr %>% select(health_life_expectancy, freedom) %>% sapply(zscore) ```  --- class: inverse, center, middle name: indentation # Indentation

 --- # Indentation ```r # Here's some code annualHappy_reg <- aggregate(happy_score ~ year + region, data = whr, FUN = mean) ggplot(annualHappy_reg,aes(y = happy_score,x = as.factor(year), color = region, group = region)) + geom_line() + geom_point() ``` ```r # Here's the same code annualHappy_reg <- aggregate(happiness_score ~ year + region, data = whr, FUN = mean) ggplot(annualHappy_reg, aes(y = happiness_score, x = as.factor(year), color = region, group = region)) + geom_line() + geom_point() ``` --- # Indentation  --- # Indentation ## Why indent? * R understands what unindented code says, but it can be __quite difficult for a human being to read it__ * On the other hand, __white space does not have a special meaning for R__, so it will understand code that is more readable for a human being --- # Indentation ## Why indent? * Indentation in R looks different than in Stata: - To indent a whole line, you can select that line and press `Tab` - To unindent a whole line, you can select that line and press `Shift + Tab` - However, this will not always work for different parts of a code in the same line * In R, we typically don't introduce white space manually * It's rather introduced by RStudio for us --- # Indentation ### Exercise 9: Indentation in R To see an example of how indenting works in RStudio, let's go back to our first example with `sapply()`: ```r # A much more elegant loop in R sapply(c(1.2,2.5), round) ``` 1. Add a line between the two arguments of the function (the vector of numbers and `round`) 2. Now add a line between the numbers in the vector. --- # Indentation Note that RStudio formats the different arguments of the function differently: ```r # A much more elegant loop in R sapply(c(1.2, 2.5), round) ``` --- class: inverse, center, middle # Thank you! --- class: inverse, center, middle name: appendix # Appendix --- # Appendix - Initial settings ## `.Rhistory` and `.RData` * `.Rhistory` automatically stores the commands entered in the console * `.RData` stores the objects in your environment only if you save your workspace, and loads them again in the next RStudio session * Both files are relative to the working directory where your RStudio session started --- # Appendix - Assignment 1 ## Assignment 1 Create a function that 1. Takes as argument a vector of packages names 2. Loops through the packages listed in the input vector 3. Install the packages 4. Loads the packages --- # Appendix - If statements ## If statements * Installing packages can be time-consuming, especially as the number of packages you're using grows, and each package only needs to be installed once * We often use locals in Stata to create section switches to install packages * In R, the equivalent to that would be to create a new object as a section switch --- # Appendix - If statements ### Exercise: Creating an if statement * Create a scalar object called PACKAGES and assign it any numerical value. - TIP: Section switches can also be Boolean objects. * Now create an if statement using this switch scalar as a switch to indicate if you want to install a set of packages: ```r # Turn switch on PACKAGES <- 1 # Install packages if (PACKAGES == 1) { install.packages(packages, dependencies = TRUE) } ``` --- # Appendix - If statements ## If statements Possible variations would include ```r # Turn switch on PACKAGES <- TRUE # Using a Boolean object if (PACKAGES == TRUE) { install.packages(packages, dep = TRUE) } # Which is the same as if (PACKAGES) { install.packages(packages, dep = TRUE) } ``` --- # Appendix - Assignment 2 ### Exercise: Create a function that... 1. Takes as argument a vector of packages names 2. Loops through the packages listed in the input vector 3. Tests if a package is already installed 4. Only installs packages that are not yet installed 5. Loads the packages - TIP: to test if a package is already installed, use the following code: ```r # Test if object x is contained in # the vector of installed packages x %in% installed.packages() ``` --- # Appendix - Other file path practices ## File paths best practices * RStudio projects are a nice option when all your project files sit in the same root folder * But what happens if that's not the case? For example: if your data is in Dropbox or OneDrive and your code is in a GitHub repository folder * If that happens, we at DIME Analytics recommend always using **explicit** and **dynamic** file paths + **Explicit** means you're explicitly stating where the file will be saved -- instead of setting the working directory, for example + **Dynamic** means that you don't need to adjust every file path in the script when you change from one machine to another -- they're updated based on a single line of code to be changed --- # Appendix - File paths best practices ## Explicit and dynamic file paths: ```r # Define dynamic file path finalData <- "C:/Users/luiza/Documents/GitHub/ dime-r-training/ DataWork/DataSets/Final" # Load data set whr <- read.csv(file.path(finalData,"whr_panel.csv"), header = TRUE) ``` --- # Appendix - Using packages ## Using packages Once a package is loaded, you can use its features and functions. Here's a list of some useful and cool packages: * `Rcmdr` - easy to use GUI * `swirl` - an interactive learning environment for R and statistics. * `ggplot2` - beautiful and versatile graphics (the syntax is a pain, though) * `stargazer` - awesome latex regression and summary statistics tables * `foreign` - reads `.dta` and other formats from inferior statistical software * `zoo` - time series and panel data manipulation useful functions * `data.table` - some functions to deal with huge data sets * `sp` and `rgeos` - spatial analysis * `multiwayvcov` and `sandwich` - clustered and robust standard errors * `RODBC`, `RMySQL`, `RPostgresSQL`, `RSQLite` - For relational databases and using SQL in R. --- # Appendix - Resources ## Resources * A discussion of folder structure and data managament can be found here: https://dimewiki.worldbank.org/wiki/DataWork_Folder * For a broader discussion of data management, go to https://dimewiki.worldbank.org/wiki/Data_Management --- # Appendix - Git ## Git Git is a version-control system for tracking changes in code and other text files. It is a great resource to include in your work flow. We didn't cover it here because of time constraints, but below are some useful links, and DIME Analytics provides trainings on Git and GitHub, so keep an eye out for them. * **DIME Analytics git page:** https://worldbank.github.io/dimeanalytics/git/ * **A Quick Introduction to Version Control with Git and GitHub:** https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1004668 --- # Appendix - More on R projects ## R projects If you want to learn more about them, we recommend starting here: https://r4ds.had.co.nz/workflow-projects.html --- # Appendix - Commenting * To comment a line, write `#` as its first character ```r # This is a comment print("But this part is not") ``` * You can also add `#` halfway through a line to comment whatever comes after it ```r print("This part is not a comment") # And this is a comment ``` * In Stata, you can use `/*` and `*/` to comment in the middle of a line's code. That is not possible in R: everything that comes after `#` will always be a comment * To comment a selection of lines, press `Ctrl` + `Shift` + `C` --- # Appendix - Commenting ### Exercise: Commenting 1. In your script panel, select all the lines of your script 2. Use the keyboard shortcut to comment these lines. + Shortcut: `Ctrl` + `Shift` + `C` 3. Use the keyboard shortcut to comment these lines again. What happened? --- exclude: true


The Year in Review
The financial year 2019-20 has been particularly challenging for the Authority.
1 Orgnisational Profile
1.1 Vision
1.2 Mission
1.3 Organisational structure
1.4 Responsibilities
2 Organisational milestone
2.1 Achievements
2.2 Infrastructure development and maintenance
3 Statistical Overview
3.1 Vehicle
3.1.1 Vehicle population
3.1.2 Vehicle category
3.1.3 Vehicle populaiton ratio
3.2 Driving license
3.2.1 Driving license issued in 5 regions
3.2.2 Drive category of driving license
3.3 Fines and penalties
3.4 Motor vehicle crash
- MVC-population ratio
- MVC-vehicle population ratio
3.5 Revenue generation
- online revenue
- offline revenue


If you love Telegram but don't want to leave Discord then you'll be pleased to find we've built a bridge in this channel. If you'd like to join the group in the Telegram app you can find it here: https://t.me/KomodoPlatform_Official.
100 messages
Before 05-Dec-19 12:00 AM
GatewayBOT03-Nov-19 11:25 PM
[telegram] <polycryptoblog> Can use tor with DEX as well if there is an issue
[telegram] <Nikhilbtc> Here is any admin is online
[telegram] <Nikhilbtc> I wanna knw about some devloping
[telegram] <Nikhilbtc> KMD protection implementation on any wallet howmuch time take kmd team ??
GatewayBOT04-Nov-19 08:20 AM
[telegram] <polycryptoblog> The protection is to prevent 51% attacks on blockchains. It is not a wallet protection. Takes 1-3 weeks depending on our workload. A lot of things being built currently
[telegram] <cryptollll> I received 7.77 KMD thanks
GatewayBOT04-Nov-19 09:07 AM
[telegram] <Nikhilbtc> Ohk then carrntly kmd team implement on mil wallet so in this project howmany day left for done (re @polycryptoblog: The protection is to prevent 51% attacks on blockchains. It is not a wallet protection. Takes 1-3 weeks depending on our workload. A lot of things being built currently)
#Dune Network will launch it’s own #DEX. The fully-decentralized #exchange will be based on #AtomicDEX and will be powered both Dune Network and #Komodo Platform technologies.
https://t.co/eSwYrnOlj2
#blockchain #cryptocurrency
GatewayBOT04-Nov-19 09:51 AM
[telegram] <Giotti96> Yeah i know it, but its value is too volatile to use it as a coin (re @polycryptoblog: https://cryptwerk.com/pay-with/kmd/)
GatewayBOT04-Nov-19 10:35 AM
[telegram] <Acura360> Info from User Polycryptoblog:
During the test we were intentionally spamming the network with swaps to identify bottlenecks in transaction capacity. We have gained valuable insights and are in the process of utilizing them to optimize various areas of the DEX. To give some perspective , the volume on one orderbook (RICK/MORTY) was around 100k order requests or about that of a BTC/USDT pair on a large exchange. Original MM1 handled 3x this capacity without issue and we expect to be able to optimize the current MM2 to do even more.
GatewayBOT04-Nov-19 11:24 AM
[telegram] <Nikhilbtc> @Mixic @Acura360 can u answer ? (re @Nikhilbtc: Ohk then carrntly kmd team implement on mil wallet so in this project howmany day left for done)
Just because an exchange is slightly less centralized than a fully centralized exchange doesn’t mean we should call it a #DEX.
There are at least 4 core requirements that an exchange must meet before we should consider it “decentralized.”
Read more here.
https://t....
[telegram] <Buralux> thats not a pump, maybe some investors just start to understand what komodo is, and know that price of kmd is very underestimated and that’s the time or never to invest, that's my point of view
[telegram] <Ggokhangark> (re @Buralux: thats not a pump, maybe some investors just start to understand what komodo is, and know that price of kmd is very underestimated and that’s the time or never to invest, that's my point of view)
GatewayBOT04-Nov-19 03:35 PM
[telegram] <Andi> Probaply not (re @Buralux: thats not a pump, maybe some investors just start to understand what komodo is, and know that price of kmd is very underestimated and that’s the time or never to invest, that's my point of view)
[telegram] <EPIDEMIC_media> I think this pump is in correlation with ETH moving. But also keep in mind they are trying to hire new Devs so it could be an effort to raise some quick funds
GatewayBOT04-Nov-19 04:05 PM
[telegram] <lexars> The king is back
[telegram] <EPIDEMIC_media> I stand corrected. This is crushing eth
GatewayBOT04-Nov-19 04:28 PM
[telegram] <Kriptodan Batan Adam> Again 20000 sat.. Please be Quick baby
GatewayBOT04-Nov-19 04:49 PM
[telegram] <Yagax> Quality alts are starting to pump again. Many bullish days may be ahead
You should have a bitcoin to protect your retirement, If you think it is expensive, then you can also buy thousand #Kmd now, now less than 1$, it can also let you live a decent retirement. Remember, don't trade, HOLD. #komodoplatform
You should have a bitcoin to protect your retirement, If you think it is expensive, then you can also buy thousand #Kmd now, now less than 1$, it can also let you live a decent retirement. Remember, don't trade, HOLD. #komodoplatform
[telegram] <SagaYtic> Hi there, where can I find the 2020 roadmap please ?
GatewayBOT04-Nov-19 06:57 PM
[telegram] <Acura360> Komodo is seeking new talent!
We’re looking for 3 new developers to join the team and help us continue to innovate cutting-edge blockchain technology and deliver state-of-the-art apps.
Learn more at https://komodoplatform.com/careers/.
The 3 open roles are:
- Frontend Developer and UI/UX Designer
- Blockchain Core Developer
- Dart & Flutter Software Developer
If you’re interested in one of the roles, please send your CV and a cover letter to<EMAIL_ADDRESS>Please share with anyone who might be interested!
We’re offering $1777 worth of KMD or BTC as a referral bonus to anyone who suggests a candidate to the Komodo team that ends up in successful employment.
Komodo is a globally-distributed team of developers, digital marketers, and talented support and QA professionals. Learn how to join the Komodo team here.
GatewayBOT04-Nov-19 07:07 PM
[telegram] <Ggokhangark> Regnar (re @Matterbridge_kmdbot: [discord] <jl777c> binance didnt claim during that month)
[telegram] <Ggokhangark> Could you please check if Binance making everything right with staking? This month rewards even more less than last month.
[telegram] <Ggokhangark> I think they are kidding-)
[telegram] <Ggokhangark> Did anybody receive more rewards than last month?(edited)
[telegram] <sliDu> Interested, can i pm someone for more details about the front end job? (re @Acura360: Komodo is seeking new talent!
We’re looking for 3 new developers to join the team and help us continue to innovate cutting-edge blockchain technology and deliver state-of-the-art apps.
Learn more at https://komodoplatform.com/careers/.
The 3 open roles are:
- Frontend Developer and UI/UX Designer
- Blockchain Core Developer
- Dart & Flutter Software Developer
If you’re interested in one of the roles, please send your CV and a cover letter to<EMAIL_ADDRESS>Please share with anyone who might be interested!
We’re offering $1777 worth of KMD or BTC as a referral bonus to anyone who suggests a candidate to the Komodo team that ends up in successful employment.)
Komodo is a globally-distributed team of developers, digital marketers, and talented support and QA professionals. Learn how to join the Komodo team here.
[telegram] <Ggokhangark> I just checked again and laughing here. I think Binance try to say us something by distributing such low rewards. Hahah.(edited)
[telegram] <Kriptodan Batan Adam> Only 2. 65 rewards
[telegram] <Kriptodan Batan Adam> Are u kidding me!!!!
[telegram] <Acura360> you can mail us or ask directly in our official KMD Discord (re @sliDu: Interested, can i pm someone for more details about the front end job?)
[telegram] <Zeehenk> How much were you holding?
[telegram] <sliDu> roger that (re @Acura360: you can mail us or ask directly in our official KMD Discord)
GatewayBOT04-Nov-19 07:30 PM
[telegram] <LATOSHII> Binance might be cheating with “stake holding programme “
To me they are giving me 20times less on what am supposed to get .
Post probably they might me selling KMD for BTC and then to BNB .
Killing the project .
Any how its better to keep KMD out of exchange in any wallet or our atomicdex.io
You will get reward there too and almost 20x more than what binance give (re @Ggokhangark: Could you please check if Binance making everything right with staking? This month rewards even more less than last month.)
One of the biggest exchange is doing a great scam behind “ stack and earn “
They are just be giving us a 1% of what we are supposed to get and rest all are at their pocket ,selling it in their own exchange and that money is used to buy their native token of exchange...
GatewayBOT04-Nov-19 07:38 PM
[telegram] <Pablo_cbs> Binance SCAM
[telegram] <Kriptodan Batan Adam> You have 9500 kmd
[telegram] <Kriptodan Batan Adam> Whats ur rewards
[telegram] <Ggokhangark> Absolutely right.  I am going to take all of my kmd from binance soon. (re @LATOSHII: Binance might be cheating with “stake holding programme “
To me they are giving me 20times less on what am supposed to get .
Post probably they might me selling KMD for BTC and then to BNB .
Killing the project .
Any how its better to keep KMD out of exchange in any wallet or our atomicdex.io
You will get reward there too and almost 20x more than what binance give)
GatewayBOT04-Nov-19 07:55 PM
[telegram] <Kriptodan Batan Adam> Acura, will u ask komodo team why distributing rewards is very low?
[telegram] <Acura360> So I should ask the Komodo team why the rewards on Binance Exchange are so little although we have no right to know that from Binance? because Binance..
[telegram] <Ggokhangark> @Acura360 (re @Matterbridge_kmdbot: [discord] <jl777c> binance didnt claim during that month)
[telegram] <Ggokhangark> I think we have the same situation as last month.
[telegram] <Acura360> But we can't dictate what Binance should do with the rewards, it's their exchange.
[telegram] <Ggokhangark> I know. (re @Acura360: But we can't dictate what Binance should do with the rewards, it's their exchange.)
[telegram] <Werxadler> Reward should be around 40 kmd a month (re @Kriptodan Batan Adam: You have 9500 kmd)
[telegram] <Kriptodan Batan Adam> 2 months ago, 165 kmd.. Last month 3.5 kmd, this month 2.5 kmd
[telegram] <Ggokhangark> Hahhaa. Very nice distribution. Take your kmd from Binance to kmd wallets. Then you will earn 10 times more. (re @Kriptodan Batan Adam: 2 months ago, 165 kmd.. Last month 3.5 kmd, this month 2.5 kmd )
GatewayBOT04-Nov-19 08:52 PM
[telegram] <mauro_jose> can i stake KMD on Raspberry pi?
GatewayBOT04-Nov-19 09:05 PM
[telegram] <arrr_777> No PoS (re @mauro_jose: can i stake KMD on Raspberry pi?)
GatewayBOT04-Nov-19 09:22 PM
[telegram] <SagaYtic> Why KMD si so cheap. Its incredible. What's went wrong ?
[telegram] <SagaYtic> It deserve top 10 ranking...
GatewayBOT04-Nov-19 09:30 PM
[telegram] <kenCode> The masses have no clue how important atomic swaps are yet imo (re @SagaYtic: Why KMD si so cheap. Its incredible. What's went wrong ?)
GatewayBOT04-Nov-19 09:49 PM
[telegram] <polycryptoblog> Yes, it is still early for the masses but business has begun to understand
[telegram] <kenCode> i sure hope so
[telegram] <Louiscbr> Well said (re @LATOSHII: Binance might be cheating with “stake holding programme “
To me they are giving me 20times less on what am supposed to get .
Post probably they might me selling KMD for BTC and then to BNB .
Killing the project .
Any how its better to keep KMD out of exchange in any wallet or our atomicdex.io
You will get reward there too and almost 20x more than what binance give)
GatewayBOT04-Nov-19 11:03 PM
[telegram] <SagaYtic> Any commercials agreement on track ? (re @polycryptoblog: Yes, it is still early for the masses but business has begun to understand)(edited)
GatewayBOT05-Nov-19 12:05 AM
[telegram] <Regnar> We have zero say in how Binance distributes rewards, you'll have to talk directly with their support staff. Their historic yields show 0.2683% this month, but 18.23% in September. KMD only accrues.5.1% a year. So idk how they are doing their rewards. Best to check (re @Kriptodan Batan Adam: Acura, will u ask komodo team why distributing rewards is very low?)
[telegram] <Regnar> This is always an option and is what most people do in order to get more rewards (re @Ggokhangark: Absolutely right.  I am going to take all of my kmd from binance soon.)
GatewayBOT05-Nov-19 12:20 AM
[telegram] <Regnar> Let's not say Binance is scamming people, first of all they openly show the rates KMD holders are earning. Currently states "0.2683%". You would earn more off the exchange based on how they are calculating rewards, which I'm not sure of how they are, but has been speculated about a lot already (use search function in here)
Here is the link to Binance KMD rewards page:
https://www.binance.com/en/staking/products/332609e29e17488b93b8919e5cebb536
Remember, everything is on chain so you can find Binance wallets (maybe not all their wallets) and see when they claim rewards to check how much they are claiming(edited)
GatewayBOT05-Nov-19 04:43 AM
[telegram] <LuckyBTC> You don't have to stake KMD, Just open wallet once a month and claim your rewards. (re @mauro_jose: can i stake KMD on Raspberry pi?)
GatewayBOT05-Nov-19 05:49 AM
[telegram] <Goose432> Is it staking on its own then? Or you do you define it? (re @LuckyBTC: You don't have to stake KMD, Just open wallet once a month and claim your rewards.)
[telegram] <EXCCellent> It stakes on it's own. (re @Goose432: Is it staking on its own then? Or you do you define it?)
[telegram] <TheCrabbyPaddy> Rewards
[telegram] <TheCrabbyPaddy> Active user rewards (when you make tx ; clicking claim reward is just sending to yourself)
It’s not staking :) it’s to reward users for being active(edited)
[telegram] <polycryptoblog> Staking is term that is related to the Proof of Stake consensus mechanism. Active User Rewards do not take part in consensus
[telegram] <EXCCellent> it's minting though.
[telegram] <polycryptoblog> Coin generation and consensus are only loosely coupled in Komodo
[telegram] <EXCCellent> Easier to say 'staking' for newbs.
[telegram] <polycryptoblog> I agree , but it is misleading
[telegram] <EXCCellent> true.
[telegram] <Goose432> I dont understand it fully, but its very cool to generate rewards without having to run a wallet, setup masternode or sync up a blockchain
[telegram] <EXCCellent> True staking has something to do to secure the network, to validate transaction.
[telegram] <EXCCellent> For Komodo , to receive 'rewards' there also is no locking of coins. As some require coins to be locked for period of time to be eligible for 'rewards'.
[telegram] <EXCCellent> Komodo coins are always available to spend, with out penalties.
[telegram] <polycryptoblog> Yep it is centered around user action for many reasons. The main goal of it though is for early adopters ( 13 years is that time frame , if you haven’t found KMD in 13 years , too bad lol ) a way to contribute to the health of the network. Transactions are needed on a network for many reasons and coin production to be solely in the hands of miners instead of both miners and users for an ICO coin has its issues as an economic system. So combining those two we had a way for users to contribute to komodos utility
GatewayBOT05-Nov-19 06:52 AM
[telegram] <Bahaa> Believe the question was asked before (recently joined) but what is the current passive income (average) return considering the current market price - Thanks
GatewayBOT05-Nov-19 07:09 AM
[telegram] <cccfchhh> Any good news?
[telegram] <Ggokhangark> There are many good news but team does not inform us. They are waiting for right time. (re @cccfchhh: Any good news?)
[telegram] <Andi> Is there a guide on how to mine komodo ?
GatewayBOT05-Nov-19 07:21 AM
[telegram] <Suzy> JL777 left komodo? Why new core dev?
[telegram] <tese22> Source? (re @Suzy: JL777 left komodo? Why new core dev?)
[telegram] <Acura360> No (re @Suzy: JL777 left komodo? Why new core dev?)
GatewayBOT05-Nov-19 07:31 AM
[telegram] <cccfchhh> Who is pulling up?
GatewayBOT05-Nov-19 08:00 AM
[telegram] <polycryptoblog> Jl777 is still with us, no worries


Session name:
not connected
|
Joined room:
-
|
Players in room:
-
|
Room notification:
Create /join room
Name:
Password:
Size
1x
2x
4x
6x
Undo
Reset (clear room drawing history)
|
Show / hide players name
Save drawing as image
Save drawing as file
Send


C5 | 1799.6 | WA1800 | Honeymoon Creek, often muddy, water is often better at mile 1808.9. | Clear shallow pools, lots of frogs and tadpoles for company | 7/1/2015 | Wolverine & Feather |
|
30
|
C8 | 1806.4 | WA1806 | Seasonal Jack Spring, 7/10 mile W of PCT, may be dry, difficult to find. | Seeping water difficult to collect | 7/1/2015 | Wolverine & Feather |
|
31
|
C8 | 1819.2 | Mazama | Mazama Store, restaurant, 1 mile SE of PCT | Water & showers at store. | 8/9/2014 | Double Tap |
|
32
|
C9 | 1820.2 | WA1820 | Small seasonal creek | Small but flowing well | 7/1/2015 | Wolverine & Feather |
|
33
|
C9 | 1820.5 | WA1820B | Creek | Flowing well | 7/1/2015 | Wolverine & Feather |
|
34
|
C9 | CLWA01 | Small creek - Rim Alternate mile .1 | ||||
|
35
|
C9 | CLWA01B | Small creek - Rim Alternate mile .7 | ||||
|
36
|
C9 | CLWA01C | Small creek - Rim Alternate mile 1.3 | ||||
|
37
|
C9 | CLWA02B | Visitor center with outdoor water fountain - Rim Alternate mile 2.3 | Ice cold water for free inside the cafeteria at the fountain drink dispenser. | 8/9/2014 | Double Tap | |
|
38
|
C9 | RimVillage | Paved sidewalk to visitor center, small store, restrooms, and water - Rim Alternate mile 2.4 | ||||
|
39
|
C9A | Lightening Spring, 3/4 mile W of Rim Trail - Rim Alternate mile ~5 | Good flow of nice cold water. | 7/8/2015 | Potato | ||
|
40
|
C9 | 1820.6 | WA1821 | Small creek | Good flow | 7/6/2015 | Whitebeard |
|
41
|
C9 | 1821.0 | WA1821B | Small creek | Good flow | 7/6/2015 | Whitebeard |
|
42
|
C9 | 1821.7 | WA1822 | Small creek | Good flow | 7/6/2015 | Whitebeard |
|
43
|
C9 | 1823.9 | WA1824 | Stream | Good flow | 7/6/2015 | Whitebeard |
|
44
|
C9 | 1824.2 | WA1824B | Stream | Good flow | 7/6/2015 | Whitebeard |
|
45
|
C10 | 1824.9 | WA1825 | Stream | Good flow | 7/6/2015 | Whitebeard |
|
46
|
C10 | 1827.0 | WA1827 | Small creek, pool below culvert | Good flow | 7/6/2015 | Whitebeard |
|
47
|
C11 | 1832.8 | WACS1833 | Red Cone trail camp, spring nearby. | Flowwing with shallow pools | 7/6/2015 | Whitebeard |
|
48
|
D2 | 1853.6 | WA1854 | *Usually reliable Thielsen Creek | Flowing great. | 7/3/2015 | Wolverine & Feather |
|
49
|
D5 | 1869.6 | WA1870 | Six Horse Spring, 4/10 mile E of PCT. | Lower pools flowing best, clear and cold.
----- Per DoubleTap : Water is a good ways down, leave your pack at the junction so you don't have to carry it back up. |
7/3/2015 | Wolverine & Feather |
|
50
|
1875.8 | OSPond | Pond along the Oregon Skyline Trail. | ||||
|
51
|
1875.8 | CrescentLkCG | **Crescent Lake Campground | Water spigots on. | 8/11/2014 | Double Tap | |
|
52
|
1875.8 | CSDiamondView | *Campsite at Diamond View Lake. | ||||
|
53
|
D6 | 1878.1 | WA1878 | Small pond just off trail, through the trees. | |||
|
54
|
D7 | 1886.8 | WACS1887 | Summit Lake. | |||
|
55
|
D8 | 1888.9 | WA1889 | Large pond | |||
|
56
|
D8 | 1890.0 | WACS1890 | Large pond | |||
|
57
|
D9 | 1894.1 | WA1894 | Creek | Flowing good | 6/26/2015 | Boa |
|
58
|
D9 | 1896.8 | WA1897 | Small seasonal creek | OK flow | 6/26/2015 | Boa |
|
59
|
D9 | 1896.9 | WA1897B | Small pond | |||
|
60
|
D9 | 1899.3 | WA1899 | Pass above a large pond. | |||
|
61
|
D9 | 1899.9 | WA1900 | Hidden Lake | |||
|
62
|
D10 | 1900.1 | WA1900B | Large pond | |||
|
63
|
D10 | 1900.9 | WA1901 | Arrowhead Lake | |||
|
64
|
D10 | 1904.1 | ShelterCove | Shelter Cove Resort | Water available at the resort store. | 8/12/2014 | Double Tap |
|
65
|
E1 | 1908.4 | WACS1908 | **Lower Rosary Lake | Tons of water in lake. | 8/12/2014 | Double Tap |
|
66
|
E1 | 1908.5 | WACS1909 | **Lower Rosary Lake | Tons of water in lake. | 8/12/2014 | Double Tap |
|
67
|
E1 | 1909.0 | WACS1909B | **Middle and Upper Rosary Lake. | Tons of water in Rosary Lakes. | 8/12/2014 | Double Tap |
|
68
|
E2 | 1915.1 | WACS1915 | **Bobby Lake | |||
|
69
|
E3 | 1922.6 | WACS1923 | **Charlton Lake | Tons of water | 6/10/2015 | Six2 |
|
70
|
E3 | 1922.8 | WACS1923B | **Charlton Lake | Tons of water | 6/10/2015 | Six2 |
|
71
|
E4 | 1927.8 | WACS1928 | Taylor Lake | |||
|
72
|
E4 | 1928.6 | WA1929 | **Irish Lake | |||
|
73
|
E5 | 1930.8 | WACS1931 | **Brahma Lake | Tons of water & lots of small ponds in the area | 6/10/2015 | Six2 |
|
74
|
E5 | 1931.8 | WACS1932 | Small lake. | |||
|
75
|
E5 | 1932.8 | WACS1933 | *Stormy Lake | Tons of water | 6/10/2015 | Six2 |
|
76
|
E5 | 1935.8 | WA1936 | Small Lake | Tons of water | 6/10/2015 | Six2 |
|
77
|
E6 | 1938.9 | WA1939 | Small lake | |||
|
78
|
E6 | 1939.1 | WACS1939 | **Desane Lake | Tons of water and saw a black bear swimming in the lake! | 6/10/2015 | Six2 |
|
79
|
E6 | 1939.5 | WACS1939B | S Lake | Tons of water and mosquitoes. | 6/10/2015 | Six2 |
|
80
|
E6 | 1939.8 | WACS1940 | **Mac Lake | Tons of water and mosquitoes. | 6/10/2015 | Six2 |
|
81
|
E6 | 1940.7 | WACS1941 | **Horseshoe Lake | Tons of water and mosquitoes. | 6/10/2015 | Six2 |
|
82
|
E6 | 1940.9 | WACS1941B | **Horseshoe Lake | Tons of water and mosquitoes. | 6/10/2015 | Six2 |
|
83
|
E6 | 1944.0 | WA1944 | **Island Lake | Tons of water | 6/9/2015 | Six2 |
|
84
|
E7 | 1944.7 | WACS1945 | **Dumbbell Lake | Tons of water | 6/9/2015 | Six2 |
|
85
|
E7 | 1947.7 | WACS1948 | Creek | Flowing | 6/29/2015 | Boa |
|
86
|
1950.1 | Elk Lake Resort | |||||
|
87
|
E8 | 1956.3 | WACS1956 | **Sisters Mirror Lake | |||
|
88
|
E9 | 1959.6 | WACS1960 | North Fork Mesa Creek | Flowing | 7/3/2015 | All Day Long |
|
89
|
1960.11 | Creek | Flowing | 7/3/2015 | All Day Long | ||
|
90
|
E9 | 1960.5 | WA1960 | Stream | Flowing | 7/3/2015 | All Day Long |
|
91
|
E9 | 1960.7 | WA1961 | Stream | Flowing | 7/3/2015 | All Day Long |
|
92
|
E9 | 1963.2 | WA1963 | Hinton Creek | Good flow | 7/3/2015 | All Day Long |
|
93
|
E10 | 1969.5 | WA1970 | Obsidian Creek | Flowing | 6/29/2015 | Boa |
|
94
|
E10 | 1969.6 | WA1970B | Sister spring, water flowing from the base of a mountain. | |||
|
95
|
E10 | 1970.5 | WA1971 | Glacier Creek | Good flow | 7/3/2015 | All Day Long |
|
96
|
E11 | 1973.7 | WA1974 | Spring | Flowing | 7/3/2015 | All Day Long |
|
97
|
E12 | 1977.2 | WA1977 | South Matthieu Lake | |||
|
98
|
E12 | 1979.3 | WA1979 | Large pond | |||
|
99
|
E12 | 1980.1 | LavaCampLk | Lava Camp Lake, campground, outhouse, 1/2 mile northeast of PCT mile 1988.3. | I recommend hiking to Hwy 242 via the Lava Lake Camp Trail and hitching from there as there is a big spot for cars to pull over at unlike right at McKenzie Pass. Plus, a lot of day hikers park their cars at Lava Camp Lake and they can be potential rides to Sisters or Bend. | 8/15/2014 | Double Tap |
|
100
|
1981.3 | Sisters | |||||
|
101
|
1981.3 | Bend | |||||
|
102
|
F2 | 1992.6 | YouthCampHQ | Big Lake Youth Camp, 8/10 mile N of PCT. | Don't take big trail to the left thinking it's the trail to the camp. Stay straight and the PCT takes you right to the camp. There is a nice area set aside just for hikers with many hiker boxes. Check in at the front and they will show you where it's at. You can also charge your electronics here. Cold sodas at the HQ store for $1.50 each. | 8/16/2014 | Double Tap |
|
103
|
F3 | 1996.5 | WA1996 | *Large Pond. | Not visible from the trail but it is there. Good water at the pond. | 8/16/2014 | Double Tap |
|
104
|
F5 | 2008.1 | WA2008 | Pond near Koko Lake. | Lots of water | 6/28/2015 | Boa |
|
105
|
F6 | 2012.3 | WACS2012 | **Rockpile Lake | Lots of water | 6/28/2015 | Boa |
|
106
|
F7 | 2020.2 | WA2020 | **Shale Lake | Tons of water | 8/17/2014 | Double Tap |
|
107
|
F7 | 2023.2 | WA2023 | Stream at the end of a switch back. | |||
|
108
|
F7 | 2025.1 | WA2025 | *Milk Creek | Clear ice cold water.. | 8/17/2014 | Double Tap |
|
109
|
F8 | 2027.1 | WACS2027 | Small pond. | |||
|
110
|
F8 | 2027.8 | WACS2028 | Seasonal Jeff Creek | |||
|
111
|
F8 | 2029.4 | WA2029 | *Russell Creek, can be a dangerous crossing. | Ice cold semi clear water but tasted fine. Crossing ~50 yards up the creek was an easy place to get across creek. | 8/18/2014 | Double Tap |
|
112
|
F8 | 2029.7 | WACS2030 | Creek | |||
|
113
|
F8 | 2029.9 | WA2030 | Creek | |||
|
114
|
F8 | 2030.4 | WA2030B | Large creek with a wooden bridge. | |||
|
115
|
F8 | 2031.7 | WA2032 | Creek | |||
|
116
|
F8 | 2032.2 | WA2032B | Creek | |||
|
117
|
F9 | 2036.8 | WA2037 | Creek flowing under an unpaved road. | No flow, two small pools. | 7/6/2015 | All Day Long |
|
118
|
F9 | 2036.9 | BreitenbushCG | Breitenbush Lake Camp Ground, 3/10 mile NE of PCT, shelters . | |||
|
119
|
F9 | 2037.5 | WA2037B | Large pond | Good | 7/6/2015 | All Day Long |
|
120
|
F9 | 2037.7 | WA2038 | Large pond | Good | 7/6/2015 | All Day Long |
|
121
|
F10 | 2040.7 | WACS2041 | Upper Lake | Good | 7/6/2015 | All Day Long |
|
122
|
F10 | 2041.1 | WACS2041B | Cigar Lake | Good | 7/6/2015 | All Day Long |
|
123
|
F10 | 2042.5 | WA2042 | Small lake | Good | 7/6/2015 | All Day Long |
|
124
|
F10 | 2043.1 | OlallieStore | Olallie Lake Store, small store 1/10 mile E of PCT. www.olallielakeresort.com | Small store here where you can get water, snacks, sodas, and coffee but a full resupply would be tough. | 8/18/2014 | Double Tap |
|
125
|
F10 | 2043.1 | WACS2043 | Head Lake | Good | 7/6/2015 | All Day Long |
|
126
|
F11 | 2046.8 | WACS2047 | Jude Lake | Good | 7/7/2015 | All Day Long |
|
127
|
F11 | 2047.5 | WA2047 | Seasonal stream | Slow flow | 6/30/2015 | Boa |
|
128
|
F11 | 2052.1 | WACS2052 | Lemiti Creek, established campsite nearby. | Very little flow | 6/30/2015 | Boa |
|
129
|
F11 | 2052.5 | WA2052 | *Trooper Spring | Excellent spring | 7/7/2015 | All Day Long |
|
130
|
F13 | 2060.0 | WACS2060 | Small spring, 250 feet W of PCT | |||
|
131
|
F13 | 2062.1 | WACS2062 | Warm Springs River | Good flow | 7/8/2015 | All Day Long |
|
132
|
F13 | 2062.4 | WA2062 | Small spring, 300 feet E or PCT. | |||
|
133
|
F15 | 2071.6 | WA2072 | Trailside water from Oak Grove Fork Clackamas River. | Good flow | 7/8/2015 | All Day Long |
|
134
|
F15 | 2071.9 | WA2072B | Trailside spring | |||
|
135
|
F15 | 2075.3 | WACS2075 |
|
|||
|
136
|
F15 | 2075.5 | WA2076 | Trailside spring | Good flow | 7/8/2015 | All Day Long |
|
137
|
F15 | 2075.7 | WA2076B | Trailside spring | |||
|
138
|
F15 | 2076.0 | WA2076C | Large creek and a wooden bridge. | Good flow | 7/8/2015 | All Day Long |
|
139
|
F15 | 2076.3 | TR2076C | Little Crater Lake and campground trail junction. Little Crater Lake is 1/4 mile E of PCT. | |||
|
140
|
F15 | 2076.3 | LCraterLk | Little Crater Lake, water, 1/4 mile E of PCT | |||
|
141
|
F16 | 2080.2 | WACS2080 | Small spring | Ice cold spring water and room for ~5 tents here. | 8/19/2014 | Double Tap |
|
142
|
2084.1 | FrogLkCG | Frog Lake Campground, well water, 6/10 mile SE of PCT. | ||||
|
143
|
G1 | 2092.0 | WACS2092 | Stream | Good flow | 7/8/2015 | All Day Long |
|
144
|
G1 | 2094.2 | WA2094 | Large creek | |||
|
145
|
G1 | 2094.5 | TimberlineLdg | Timberline Lodge, 2/10 mile S of PCT. | Great lunch buffet which costs $22.25 but the coffee was extra ($3.00), strange. Rumor has it that the Timberline breakfast buffet is the best on the PCT. | 8/20/2014 | Double Tap |
|
146
|
G1 | 2095.5 | WA2096 | Creek | |||
|
147
|
G2 | 2097.3 | WA2097 | Spring flowing across the trail. | |||
|
148
|
G2 | 2097.8 | WA2098 | *Zigzag River | Good flow | 7/2/2015 | Boa |
|
149
|
G2 | 2099.5 | WA2100 | *Lost Creek | Good flow | 7/2/2015 | Boa |
|
150
|
G2 | 2100.1 | WA2100B | Headwaters of Rushing Water Creek. May be underground near the PCT. | Good flow above ground | 7/2/2015 | Boa |
|
151
|
G2 | 2100.5 | WA2100C | Small stream | |||
|
152
|
G2 | 2103.8 | WACS2104 | Creek | |||
|
153
|
G2 | 2103.9 | WA2104 | **Sandy River, often silty, can be a dangerous crossing. | Great flow, very cloudy, difficult crossing | 7/2/2015 | Boa |
|
154
|
G2 | 2104.2 | WACS2104B | Trailside stream | |||
|
155
|
G2 | 2104.3 | RamonaFalls | Ramona Falls | |||
|
156
|
G3 | 2106.0 | WA2106 | Large creek with a log footbridge. | Good flow, clean water | 7/2/2015 | Boa |
|
157
|
G3 | 2106.4 | WACS2106 | *Muddy Fork, hiker bridge washed out in 2014 but fallen logs allowed crossing | There is a big log with a rope tied to it that you can hold as you walk across to go over Muddy Creek. With the rope it was easy. | 8/21/2014 | Double Tap |
|
158
|
G3 | 2107.5 | WA2108 | Seasonal stream | Flowing | 7/6/2015 | Katt & Aidan |
|
159
|
G3 | 2112.1 | WACS2112 | Stream | Flowing | 7/2/2015 | Boa |
|
160
|
G4 | 2116.1 | WACS2116 | Salvation Spring | Trickle | 7/7/2015 | Katt & Aidan |
|
161
|
G5 | 2119.6 | WA2120 | Small seasonal spring next to PCT. | Dry | 7/8/2015 | Katt & Aidan |
|
162
|
G5 | 2125.1 | WA2125 | *Indian Spring, piped spring | Flowing but not through the pipe | 7/8/2015 | Katt & Aidan |
|
163
|
2125.1 | ECRest | Bathroom, water fountain, near parking area. | ||||
|
164
|
G5 | 2125.1 | WACS2125 | Indian Springs Campground, abandoned, spring nearby. | |||
|
165
|
G6 | 2128.1 | WACS2128 | Wahtum Lake | |||
|
166
|
G7 | 2136.5 | WA2137 | Teakettle Spring, next to PCT. | Trickle | 7/9/2015 | Katt & Aidan |
|
167
|
G8 | 2140.4 | WA2140 | Small stream | Good flow | 7/9/2015 | 7/9/2015 |
|
168
|
G7 | 2142.3 | WA2142 | Creek, wooden bridge. | Good flow | 7/9/2015 | 7/9/2015 |
|
169
|
2144.2 | Cascade Locks | |||||
|
170
|
These reports are provided as a free service to PCT hikers. I believe the information is accurate but the reports may contain errors. The reports are distributed in the hope that they will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |


Dynamically rewrite the gender of personae in texts.
Given a text with properly parameterized gender placeholders, this library will generate an alternate version of the text based on user preference of gender.
Take this passage from Alice in Wonderland:would become:When the Rabbit came near her, Alice began, in a low, timid voice, "If you please, Sir—" The Rabbit started violently, dropped the white kid-gloves and the fan and scurried away into the darkness as hard as he could go.
When the Rabbit came near him, Alan began, in a low, timid voice, "If you please, Ma'am—" The Rabbit started violently, dropped the white kid-gloves and the fan and scurried away into the darkness as hard as she could go.
This project is available to all readers and writers, students and teachers, and anyone else who is interested in looking the role of gender in texts. You can see the open-source code at github.
Contact Emily Parkhurst for more information.


Fun Palaces Comic Maker
Concept by Matt Finch
Based on Panel Lottery by Jessica Abel and Matt Madden
Design and development by Phil Gullberg and Talia Yat
Hosting courtesy of Bookswarm.co.uk
Thanks to: Daniel Flood, Stella Duffy, Sandy Mahal,
Zoey Dixon,
Sarah-Jane Rawlings, Hannah Lambert, Kirsty Lothian


1.5.0
Watchbot's JavaScript API
Merges CloudFormation templates together.
(...object)
a CloudFormation template to merge with
object
:
a CloudFormation template including all the Metadata,
Parameters, Mappings, Conditions, Resources, and Outputs from the input
templates
The main Watchbot loop
(object)
configuration parameters
| Name | Description |
|---|---|
config.NotificationTopic string
|
the ARN for the notification SNS topic |
config.Cluster string
|
the ARN for the ECS cluster |
config.TaskDefinition string
|
the ARN for the worker task definition |
config.ContainerName string
|
the name of the container defined by the TaskDefinition |
config.Concurrency number
|
the number of concurrent tasks |
config.QueueUrl string
|
the URL for the SQS queue |
config.TaskEventQueueUrl string
|
the URL for the SQS queue containing task-state events |
config.StackName string
|
the name of the CFN stack |
config.AlarmOnEachFailure boolean
|
whether to send errors when workers fail |
config.LogLevel string?
(default info )
|
fastlog log level |
object
:
an event emitter that will emit an
finish
event if the
main loop is stopped.
Signals the main loop to shut down.
Creates notifications objects
(string)
the ARN of an SNS topic to receive notifications
object
:
an
notifications
object
Creates messages objects
(string)
the URL of an SQS queue
(string)
the ARN of an SNS topic for failure notifications
(string)
the name of the CloudFormation stack
(boolean)
whether to send a notification email
each time an invocation fails.
(string?)
the ARN of a CloudWatch LogGroup where container
logs are written
object
:
a
messages
object
Creates tasks objects
(string)
the ARN of the ECS cluster to run tasks on
(string)
the ARN of the processing TaskDefinition to run
(string)
the name of the container defined by the TaskDefinition
(number)
the desired task concurrency
(string)
the SQS URL that receives task-status events
object
:
a
tasks
object
Builds Watchbot resources for you to include in a CloudFormation template
(object)
configuration parameters
| Name | Description |
|---|---|
options.cluster (string | ref)
|
the ARN for the ECS cluster that will host Watchbot's containers. |
options.service string
|
the name of your service. This is usually the name of your Github repository. It must match the name of the ECR repository where your images are stored. |
options.serviceVersion (string | ref)
|
the version of you service to deploy. This should reference a specific image in ECR. |
options.permissions array?
(default [] )
|
permissions that your worker will need in order to complete tasks. |
options.env object?
(default {} )
|
key-value pairs that will be provided to the worker
containers as environment variables. Keys must be strings, and values can either
be strings or references to other CloudFormation resources via
{"Ref": "..."}
.
|
options.watchbotVersion (string | ref)?
(default current )
|
the version of Watchbot's container that will be deployed. Defaults to the installed version |
options.notificationEmail (string | ref)?
|
an email address to receive notifications when processing fails. |
options.notificationTopic (string | ref)?
|
an ARN of the SNS topic to receive notifications when processing fails. |
options.alarmOnEachFailure (boolean | ref)?
(default false )
|
if set to
true
,
the provided notificationEmail or notificationTopic will be sent a message
every time any single worker fails. When
false
, the email or topic will
only receive a message when there have been more than some threshold number
of errors in a 60s period. See
options.errorThreshold
for more information.
|
options.prefix string?
(default 'Watchbot' )
|
a prefix that will be applied to the logical names of all the resources Watchbot creates. If you're building a template that includes more than one Watchbot system, you'll need to specify this in order to differentiate the resources. |
options.user boolean?
(default false )
|
if true, Watchbot will build an IAM User and associated access key pair. The user will have permission to publish messages to Watchbot's SNS topic in order to spawn processing jobs. The AccessKeyId and SecretAccessKey will be available as stack outputs. |
options.webhook boolean?
(default false )
|
if true, Watchbot will build an HTTPS endpoint via ApiGateway. JSON payloads can be POSTed to this endpoint, and will be passed through to Watchbot's SNS topic, spawning processing jobs. By default, no authentication is required in order to POST to the endpoint. The endpoint URL will be available as a stack output. |
options.webhookKey boolean?
(default false )
|
if true, Watchbot will generate an API token and require that it be passed to all POST requests to the webhook endpoint. The token will be available as a stack output. |
options.reduce boolean?
(default false )
|
if true, Watchbot will enable the workers to utilize a DynamoDB table to track the progress of a distributed map-reduce operation. |
options.readCapacityUnits (number | ref)?
(default 30 )
|
approximate number of reads per second to DynamoDB table in reduce-mode |
options.writeCapacityUnits (number | ref)?
(default 30 )
|
approximate number of writes per second to DynamoDB table in reduce-mode |
options.watchers (number | ref)?
(default 1 )
|
the number of watcher containers
to run. Each watcher container reads from SQS and spawns worker containers
when messages arrive. Each watcher is responsible for spawning and monitoring
as many workers as you specify with the
workers
parameter. This parameter
can be provided as either a number or a reference, i.e.
{"Ref": "..."}
.
|
options.workers (number | ref)?
(default 1 )
|
the number of concurrent worker
containers that any single watcher is responsible for spawning and monitoring.
This parameter can be provided as either a number or a reference, i.e.
{"Ref": "..."}
.
|
options.logAggregationFunction string?
(default '' )
|
the ARN of a Lambda function function to send logs to. |
options.mounts string?
(default '' )
|
if your worker containers need to mount
files or folders from the host EC2 file system, specify those mounts with this
parameter. A single persistent mount point can be specified as
{host location}:{container location}
, e.g. /root:/mnt/root. A single ephemeral
mount point can be specified as
{container location}
, e.g. /mnt/tmp. Separate multiple mount strings with commas
if you need to mount more than one location. You can also specify a mount object
with
container
and
host
property arrays, in which the indeces correspond:
{ container: [{container location}], host: [{host location}] }
, e.g.
{ container:
[
/mnt/root, /mnt/tmp
]
, host:
[
/root, ''
]
}. A blank host entry will
create an ephemeral mount point at the corresponding container filepath.
|
options.reservation object?
(default {} )
|
worker container resource reservations |
options.messageTimeout (number | ref)?
(default 600 )
|
once Watchbot pulls a
message from SQS and spawns a worker to process it, SQS will wait this many
seconds for a response. If the worker has not yet finished processing the
message for any reason, SQS will make the message visible again and Watchbot
will spawn another worker to process it. This is helpful when containers or
processing scripts crash, but make sure that it allows sufficient time for
routine processing to occur. If set too low, you will end up processing jobs
multiple times. This parameter can be provided as either a number or a
reference, i.e.
{"Ref": "..."}
.
|
options.messageRetention (number | ref)?
(default 1209600 )
|
the number of seconds
that a message will exist in SQS until it is deleted. The default value is the
maximum time that SQS allows, 14 days. This parameter can be provided as
either a number or a reference, i.e.
{"Ref": "..."}
.
|
options.errorThreshold (number | ref)?
(default 10 )
|
Watchbot creates a
CloudWatch alarm that will fire if there have been more than this number
of failed worker invocations in a 60 second period. This parameter can be provided as
either a number or a reference, i.e.
{"Ref": "..."}
.
|
options.alarmThreshold (number | ref)?
(default 40 )
|
Watchbot creates a
CloudWatch alarm that will go off when there have been too many messages in
SQS for a certain period of time. Use this parameter to adjust the Threshold
number of messages to trigger the alarm. This parameter can be provided as
either a number or a reference, i.e.
{"Ref": "..."}
.
|
options.alarmPeriods (number | ref)?
(default 24 )
|
Use this parameter to control
the duration that the SQS queue must be over the message threshold before
triggering an alarm. You specify the number of 5-minute periods before an
alarm is triggered. The default is 24 periods, or 2 hours. This parameter
can be provided as either a number or a reference, i.e.
{"Ref": "..."}
.
|
options.debugLogs boolean?
(default false )
|
enable verbose watcher logging |
options.privileged boolean?
(default false )
|
give the container elevated privileges on the host container instance |
(array?
= undefined
)
an array of strings to that define the
command to run when the container is launched. If your Dockerfile specifies a
CMD, it will be overriden.
Retrieve container logs from CloudWatch logs. This function searches the last 15 minutes of available logs, and returns up to 50kb of the most recent events
An notifications object
Environment variables providing SQS message details to the processing task
(string)
: the SQS MessageId
(string)
: the message's subject
(string)
: the message's body
(string)
: the time the message was sent
(string)
: the time the
message was first received
(string)
: the number of times the
message has been received
An SQS message tracker
Poll SQS to find jobs
(number)
the maximum number of jobs to take from the queue (max 10)
(function)
a function called after polling completes. The
callback will be provided with an object of key-value object pairs representing
environment variables (see
environment
) to be provided to a task
An ECS task runner and status tracker
An array of finishedTask objects
(number)
: the difference between current and maximum
desired task concurrency.
Possible task outcomes
(string)
: indicates that the container(s) provided an
exit code 0. The SQS message should be deleted.
(string)
: indicates that the container(s) provided an exit
code 3. The SQS message should be deleted and a notification sent.
(string)
: indicates that the container(s) provided an exit
code 4. The SQS message should be returned.
(string)
: indicates that container(s) provided an unknown
or mismatched exit code. The SQS message should be returned and a
notification sent.
A task's reason for finishing If exit code is 0, return success. If exit code does not equal 0 and stopped container reason is provided return that. Otherwise, return stopped task reason.
 These references are only useful in the context of a
CloudFormation template.
refs.logGroup
object
the name of the CloudWatch LogGroup to which Watchbot will write watcher and worker logs.
refs.topic
object
the ARN for Watchbot's SNS topic. Publish messages to this topic to trigger processing.
refs.queueUrl
object
the URL for Watchbot's SQS queue.
refs.queueArn
object
the ARN for Watchbot's SQS queue.
refs.accessKeyId
object?
if the user
parameter was set to
true, this is an access key with permission to publish messages to Watchbot's
SNS topic.
refs.secretAccessKey
object?
if the user
parameter was set to
true, this is a secret access key with permission to publish messages to Watchbot's
SNS topic.
refs.webhookEndpoint
object?
if the webhook
parameter was
set to true, this is the URL for the ApiGateway endpoint. JSON payloads
POSTed to this endpoint will be passed through to Watchbot's SNS topic to
spawn processing.
refs.webhookKey
object?
if the webhookKey
parameter was
set to true, this access token must be provided in all POST requests to the
webhook endpoint.


Add Media
Add media page test
Title:
Date Taken:
Description:
File Info:
File Loc:
Upload My Media
Upload Info:


Pakistan successfully conducts training launch of surface-to-surface ballistic missile Shaheen-I
by https://www.dawn.com/authors/202/dawn-com, Dawn.comPakistan on Monday conducted a successful training launch of surface-to-surface ballistic missile (SSBM) Shaheen-I, Inter-Services Public Relations (ISPR) said.
According to a press release issued by the ISPR, the launch was conducted as part of a training exercise "aimed at testing the operational readiness of Army Strategic Forces Command".
The director general Strategic Plans Division, commander Army Strategic Forces Command, NESCOM chairman, senior officers from the Strategic Plans Division, Army Strategic Forces Command, scientists and engineers witnessed the training launch.
"Troops displayed a high standard of proficiency in handling and operating the potent weapon system, ensuring Pakistan’s credible minimum deterrence," ISPR stated.
As per the military's media wing, the Shaheen-I SSBM is capable of delivering all types of warheads up to a range of 650 kilometres.
In August, Pakistan had successfully carried out the night training launch of Ghaznavi, also an SSBM.


The story of Queensland's postwar architecture is largely a tacit one. The architects who worked and studied at this time possess knowledge of the key events, buildings, practices and institutions of the period.
While this information is often spoken, most commonly within the confines of the architectural community, it remains unrecorded. Documenting these histories using the oral history interview/digital story, this website aims to make this tacit historical knowledge explicit for the first time.
Using innovating semantic web technologies, mapping applications, timeline generators, etc. this website allows you to visually map the connections that bind these oral histories to related materials, such as drawings, photographs, books and manuscripts and thus contribute to the development of a new multi-media resource on Queensland architecture and design.
To contact one of the project collaborators, send us an email or leave a note on our Facebook Page.


--- layout: post permalink: seismicaudiospeakers.html Tags: Array NameOfCoupon: Seismic Audio Speakers Cash Back Summary: See our Seismic Audio Speakers Coupon Code, Seismic Audio Speakers Rebate, Seismic Audio Speakers Promo Code, Seismic Audio Speakers Discount, Seismic Audio Speakers Coupon Cash Back Rebate here. MetaKeywords: Seismic Audio Speakers Coupon Code, Seismic Audio Speakers Rebate, Seismic Audio Speakers Promo Code, Seismic Audio Speakers Cash Back Rebate, Seismic Audio Speakers Discount, Seismic Audio Speakers Coupon Image: LinkURL: http://www.tkqlhce.com/click-4092138-10780075 affiliate_url_link: http://www.icouponblog.com/jane.php?id=4935 thesis_readmore: See the Seismic Audio Speakers Coupon thesis_thumb: http://www.icouponblog.com/tn.php?merchantURL=seismicaudiospeakers.com Title: Save 2.5% - Seismic Audio Speakers Coupon Code for seismicaudiospeakers.com. Seismic Audio Speakers Rebate & Discount thesis_description: Our Seismic Audio Speakers Discount Coupon Code for seismicaudiospeakers.com. We have the best Seismic Audio Speakers Rebate anywhere. thesis_keywords: Seismic Audio Speakers, Seismic Audio Speakers Coupon Code, Seismic Audio Speakers Discount, Seismic Audio Speakers Rebate product_name: Seismic Audio Speakers hop_url: http://www.icouponblog.com/hop.php?id=4935 ---
Seismic speakers are high quality, low priced speakers produced by Seismic Audio Speakers Inc, a company based in Memphis TN the dream city of many aspiring musicians. They have a great selection of speakers that produce amazing, crisp sounds. Their targeted customers are musicians and DJs who need to always sound good but cannot afford the high priced $500-$1,000 speakers. You can visit their website at SeismicAudioSpeakers.com. They offer a variety of unique audio speaker cabinets and music related gears. They sell directly to the customers, saving them tons of money.
Are the claims made by SeismicAudioSpeakers.com substantiated by the customers who have bought and used the products? There are many mixed reviews available online. You can check them out on various websites like Amazon, e-bay and even YouTube. Most people seem to really like these speakers calling them “incredible”, “awesome” and “worth the price.” Most customers found it easy to assemble. One customer said that his Seismic Audio Speaker sounded good even after eight continuous hours of use. Most reviews say that Seismic Audio Speakers are excellent in sound, clarity and crispness for the low price one pays for getting them.
SeismicAudioSpeakers.com carries the popular 15” pair of PA/DJ/Band Speaker cabinets with Titanium horns or 18” Down Firing Pro Audio Sub Woofer Cabinet among many other. Check them out. They are ideal for musicians who do not have a lot of cash. If you are doing DJ gig, a wedding, a church event or a club gig. Seismic Audio Speakers are your best choice. You can save more money by using discount coupons from icouponblog.com


Dog befriends baby giraffe after abandoned in South Africa
MOKOPANE, South Africa (AP) - A dog in South Africa has befriended a baby giraffe that was abandoned at birth, rescued and taken to a local orphanage.
Jazz the giraffe arrived at The Rhino Orphanage just days after birth. A farmer found him in the wild, weak and dehydrated, and called the center for help.
Resident watchdog Hunter quickly began to care for the newcomer.
Caretaker Janie Van Heerden says they bonded immediately.
She says the baby giraffe had been given IV fluids and is doing much better. He is being fed milk and is trying to eat leaves.
"Possibly soon he will be able to go home," she said Friday.
Copyright 2019 The Associated Press. All rights reserved. This material may not be published, broadcast, rewritten or redistributed.


The Running Man
The Running Man is a movie starring Arnold Schwarzenegger, Maria Conchita Alonso, and Yaphet Kotto. A wrongly convicted man must try to survive a public execution gauntlet staged as a game show.


Aims
Promote long, healthy, happy life's for autistic people & their families
Gain a better understanding of Autism & related sensory issues
Make environments more accessible for people with autism