If you feel so inclined, you can contribute to these notes by donating coffee to the author, for caffeine-fueled focus during lectures.
TK: How to Write and Analyze Algorithms
Coming Up With a First Pass Solution - 11 min
Improving Upon a First Pass Solution - 15 min
Visualgo: visualizing data structures and algorithms through animation.
Hacker’s Delight: a collection of programming tricks at the bit level.
Lecture III Recording: CS19 Beej Jorgensen
An algorithm is a little more general than a function. An algorithm is a set of steps to solve some problem, whereas a function is a set of specific steps to solve a specific problem.
“A function is concrete, and does have a machine implementation. In computer programming, a function is an implementation of an algorithm. An algorithm is a series of steps (a process) for performing a calculation, whereas a function is the mathematical relationship between parameters and results.” - Google
Abstraction is when we lessen the details/information, or when we use something without knowing how it works in detail.
We use algorithms all the time as an abstracted version of an implementable function.
There are sets of steps we do daily - tie our shoes, drive to work - that are abstracted out. We aren’t focusing on each specific step and way that those things work mechanically.
Algorithms are known as mathematical and complicated ideas, which they can be, but also are not inherently.
Instead of trying to solve a problem we encounter specifically, this week we want to focus on how to solve problems generally in writing applications, by following a general set of steps:
This is a four step problem solving process you can use to identify problems and come up with a solution.
See this in depth POLYA explanation.
The common steps are….
This means making sure you’re solving what is actually being asked to be solved. If we misunderstand the problem, we might create a viable solution for a problem, but not the correct problem.
Ask questions and ensure you have a solid understanding of the problem before beginning any following steps.
“Can I assume that…”
Like, “Can I assume that the user will only input valid numerical data or do I need to assume they can input anything?”

Don’t just jump into coding. It’s far more efficient to pause and come up with a plan.
As you write a gameplan or a few lines of pseudo-code, you’ll often come up with additional ideas, edge cases, potential difficulties, etc.
Then…
Execute your game plan to get to a working solution - a first pass solution. It might not be elegant or optimized. You just want to get to an MVP solution.
Afterwards, you can analyze it for an optimized solution, time permitting.
The most important thing is to get it working, even if in a brute force manner.
During this step is a good time to find edge cases or ways that you would optimize your solution, expressing the logic behind those to your interviewer.
Consider addressing issues of scalability or unusual cases. Refactor for cleaner code.
If there is a term being used that you are unfamiliar with - ask about it. In an interview situation, most hiring managers should clarify and appreciate you taking the time to fully understand the problem.
Identify exactly what you are being asked to return or show - what is the end result being returned from a good solution? Is is a numerical value? A string?
What are the inputs being given? What kind of data should I expect to be given?
A good way to verify you understand the problem is by rephrasing and summarizing it back to them: “From my understanding, what we’re trying to do is…”
Draw a diagram or picture to help fully understand the problem. You can draw a visual example, a diagram of how the data flows, create a small mathematical example, the recursive call stack to identify the base case, etc.
It depends on the industry and company - if that’s important to them - but being able to look at something and give a rough example of the run time is an important skill.
It can also simply be a bonus to an interviewer to show that beyond being able to solve problems, you care about and understand optimization.
See file day3_work.py for the code to this section:
A factorial is when something is the product of an integer and all the integers below it.
I.e. 4! = 4 * 3 * 2 * 1
What are some questions we might ask about writing a function that returns the factorial of the given number, using an iterative approach (not recursion)?
Once we have these assumptions answered, we’ll make a plan. A good method is outlining our plan as comments within the code.
If we think about a base case, what is the last number we multiply? 1.
Thinking about that, we’ll do something until something is 1. This implies a loop.
Within that loop, we need to multiply.
We’ll initialize our returned result as 1 because even if the integer given is 0, it’ll return one.
Our plan looks like:
def iter_factorial(n):
result = 1
# loop until 1
# multiply
return result
When we fill this in, it looks like…
def iter_factorial(n):
result = 1
# loop until 1
while n > 1:
# multiply
result *= n
n -= 1
return result
n = 4
print('Result when n is', n, 'is: ', iter_factorial(n))
The result and the return statement will only run once, no matter how large n is.
But how long the loop will run depends on how large n is. It will run n-1 times.
Remember though, we drop associated integers when evaluating run time so this would reduce down to O(n)
or linear time.
Discard the constant
The bigger Big O Notation dominates (less efficient wins)
We’re interested in what happens with large values of
n
because some processes can be deceptively efficient with small values, but that doesn’t account for scalability.
Think of the base case when considering how to solve something recursively (the very smallest case).
We could build a plan like so:
def rec_factorial(n):
# base case, n=1
# recursive cases, when n>1
We should also consider, what about the case when n=0
:
def rec_factorial(n):
# base case, n=1
if n == 1 or n == 0:
return 1
# recursive cases, when n>1
So with our base case, we know when to stop, but we need to make sure with our recursive step, we’re doing something to get to the base case. We need to use n-1
.
def rec_factorial(n):
# base case, n=1
if n == 1 or n == 0:
return 1
# recursive cases, when n>1
else:
rec_factorial(n-1)
Now, we’re decreasing n
but we still need to multiply the result by n
:
def rec_factorial(n):
# base case, n=1
if n == 1 or n == 0:
return 1
# recursive cases, when n>1
else:
return n * rec_factorial(n-1)
There are no loops but we do have a recursive function call. When we see a recursive call, we want to visualize, “How many times will this recursive function call be made?”
In memory, all these calls are being made but not finishing until the base case is resolved. rec_factorial(3)
has to wait on rec_factorial(2)
to resolve, which waits for rec_factorial(1)
to resolve.
In this case, the number of recursive calls being made increases by one every time n increases by one, so this resolves to O(n)
or linear time still.
While this may be time efficient, it is not memory (space) efficient due to the open, waiting function calls that stack while waiting to hit the base case resolution.
We can practice solving using dynamic programming techniques with the Fibonacci sequence.
Learn more here.
In math, the Fibonacci sequence is numbers in order, where each number is the sum of the two preceding one, starting from 0 and 1.
F0 = 0 F1 = 1 F2 = 1 (0 + 1) F3 = 2 (1 + 1) F4 = 3 (2 + 1)
And so on.
0 and 1 are our base cases.
A basic way of writing it might look like this:
fib(0) = 0
fib(1) = 1
fib(n) = fib(n-1) + fib(n-2)
So let’s define the function and call it recursively:
def fib(n):
if n == 0:
return 0
if n == 1:
return 1
return fib(n-1) + fib(n-2)
for i in range(10):
print(fib(i))
This works and outputs the first 10 Fibonacci number.
Recursive solutions work and can make sense. But if we try to run it for range(30), our terminal will drastically slow down, due to the poor run time of this algorithm.
Go in depth on Fibonacci here.
This is an example of O(2^n)
runtime because for each additional input, the operations computed grow exponentially.


FOXFIRE and GIRLS TOWN A film review by Scott Renshaw Copyright 1996 Scott Renshaw
FOXFIRE Starring: Hedy Burress, Angelina Jolie, Jenny Lewis, Jenny Shimizu, Sarah Rosenberg. Screenplay: Elizabeth White. Director: Annette Haywood-Carter.
GIRLS TOWN Starring: Lili Taylor, Anna Grace, Bruklin Harris, Aunjanue Ellis. Screenplay: Jim McKay, Denise Casano, Anna Grace, Bruklin Harris, Lili Taylor. Director: Jim McKay. Reviewed by Scott Renshaw.
Somewhere near the middle of GIRLS TOWN, after its three female protagonists have begun to assert themselves, Emma (Anna Grace) notes that the experience "feels like a movie." "If this was a movie," retorts Patti (Lili Taylor), "we would've killed, like, fifty people by now." It's the THELMA & LOUISE model of female empowerment -- sisters only start doin' it for themselves when men are doing them wrong, and then they do it up with a vengeance. The result is often self-righteousness without much of a story to tell, with shallow female characters who are supposed to deserve our sympathy because they are less shallow than the shallow male characters. In the space of two weeks, we have two films -- GIRLS TOWN and FOXFIRE -- which continue to show what a hard time film-makers are having creating real drama out of the perils of being a young woman.
In GIRLS TOWN, the focus is on three best friends at a New Jersey high school, college-bound Emma and Angela (Bruklin Harris) and their single-mom cohort Patti, who are forced to confront harsh truths when their friend and classmate Nikki (Aunjanue Ellis) commits suicide. When the girls get their hands on Nikki's journal, they discover that she had been raped, and begin to discuss the various wrongs men have done to each of them. Eventually, talk isn't enough, and they decide that it's time to take action.
Move the story to Portland, and basically you have FOXFIRE. It begins when a drifter called Legs (Angelina Jolie) walks into a high school biology class and stands up for a shy girl named Rita (Jenny Lewis) who is being taunted by the teacher, Mr. Buttinger (John Diehl). When several girls -- including Legs, our artsy narrator Madeline (Hedy Burress), pot-smoking Goldie (Jenny Shimizu) and promiscuous Violet (Sarah Rosenberg) -- learn that Mr. Buttinger has been sexually harassing Rita and other students, they join together to confront him. That confrontation results in a group suspension, and a week where the five girls meet at an abandoned house to become inseparable friends.
There are a few fairly significant things GIRLS TOWN does right that FOXFIRE does not. Most notably, the girls in GIRLS TOWN talk like high school seniors, not like some vague melodramatized approximation. Co-stars Harris, Taylor and Grace all contributed to the script, and they have given the dialogue a real punch. GIRLS TOWN also gives its characters' acts of defiance a kind of offhandedness which makes them considerably more interesting. When Emma, Patti and Angela trash the car of a boy who assaulted Emma, there is a casual glee in their retaliation; when they confront the man named in Nikki's journal as her assailant, their actions do not seem pre-meditated. These are young women with little if any idea that their actions are political, and it would seem absurd to play their scenes of vindictiveness as though "I Am Woman" should be playing in the background.
That is exactly the opposite of the impression you get from FOXFIRE, where Legs walks into the lives of her four comrades like the Ur-Feminist, and where cries of "It's not fair!" resound through courtrooms. That might lead you to expect a hearty round of man-bashing, with Legs providing the bashing primer for her less hardened friends, and to a certain extent you would be right.  In a sequence which seems to last several hours, the five principal characters take turns getting a flame tattooed on their breasts to signify their shared trials.
The basic problem with both films is the basic problem with so many female bonding films: they define the characters almost exclusively in terms of their problems with men. Lili Taylor's Patti in GIRLS TOWN is a notable exception, a spunky, lively but not terribly bright young woman who is doing all she can just to keep running in the same place, but Emma and Angela are given little genuine personality. It's even worse in FOXFIRE, where there is so little effort made to understand the characters as individuals they might as well be hand puppets. Madeline develops an intense bond with Legs, but we have virtually no idea why because we know nothing about her life; there are vague references to Goldie's home life, and no reference to Rita's or Violet's at all. They're just female figures to occupy the car in which they take a joy ride, stolen from one of the shadow males who try to keep them down. GIRLS TOWN at least has a bit of verisimilitude working for it, but both GIRLS TOWN and FOXFIRE mistake vandalism for character: I kick ass, therefore I am woman.
GIRLS TOWN: 6. FOXFIRE: 3.
Visit Scott Renshaw's MoviePage http://www-leland.stanford.edu/~srenshaw Receive Scott Renshaw's pre-release reviews directly via email! Write to<EMAIL_ADDRESS>for subscription details.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


-
Change left_control to lazy left_control (Post spacebar when pressed alone)
- Post spacebar when left_shift is pressed alone
- Copy Unix time when fn is pressed alone
- Change command+control+f to command+shift+[
- Change command+control+j to command+shift+]
- Change command+control+g to command+[
- Change command+control+h to command+]
-
Change button5 + mouse motion to scroll wheel (Post command+click if button5
is clicked alone)
- Change button6 to command+click
- Change option+- to ----------
- Change option+= to ==========
- Miscellaneous configuration for apps
- Change simultaneous escape+1 to display_brightness_decrement
- Change simultaneous escape+2 to display_brightness_increment


--- layout: post status: publish published: true title: Sam Elected... author: display_name: Tomas Restrepo login: tomasr email<EMAIL_ADDRESS>url: http://winterdom.com/ author_login: tomasr author_email<EMAIL_ADDRESS>author_url: http://winterdom.com/ wordpress_id: 326 wordpress_url: http://winterdom.com/2002/05/samelected date: '2002-05-27 06:26:56 +0000' date_gmt: '2002-05-27 06:26:56 +0000' categories: - Blogging tags: [] comments: [] ---
Sam: "I was just elected to the Apache Board of Directors.". Congratulations! A well deserved honor, imho....


100
His Steadfast Love Endures Forever
A PSALM FOR GIVING THANKS.
1 Make a joyful noise to the LORD, all the earth!
2 Serve the LORD with gladness!
Come into his presence with singing!
3 Know that the LORD, he is God!
It is he who made us, and we are his;
we are his people, and the sheep of his pasture.
4 Enter his gates with thanksgiving,
and his courts with praise!
Give thanks to him; bless his name!
5 For the LORD is good;
his steadfast love endures forever,
and his faithfulness to all generations.


Covalent Quickstart
Create a new repo based on the covalent-quickstart
Clone the covalent-quickstart into a new project folder (e.g. my-product).
git clone https://github.com/Teradata/covalent-quickstart.git my-product
cd my-product
Remove the git directory to start clean
rm -rf .git
Create a new Git repository for your product
You could start writing code now and throw it all away when you're done. If you'd rather preserve your work under source control, consider taking the following steps.
Initialize this project as a local git repo and make the first commit:
git init
git add .
git commit -m "Initial commit"
Create a remote repository for this project on the service of your choice.
git remote add origin
git push -u origin master
Start Developing!
Prerequisites
- Node 6.11.1+
- NPM 3+
- Angular CLI
- Protractor (for testing)
- TSLint (for code style)
If you don't have the Angular CLI, install:
npm i -g @angular/cli@latest
Install Typescript:
npm install -g typescript
To install Protractor & TSLint for testing:
npm install -g protractor
npm install -g tslint
Then update the webdriver manager:
webdriver-manager update
Install Node packages
npm i
Run the Angular-CLI local server
ng serve


al-folio
A simple, clean, and responsive Jekyll theme for academics.
If you like the theme, give it a star!
The vibrant community of al-folio users is growing!
Academics around the world use this theme for their homepages, blogs, lab pages, as well as webpages for courses, workshops, conferences, meetups, and more.
Check out the community webpages below.
Feel free to add your own page(s) by sending a PR.
Getting started
For more about how to use Jekyll, check out this tutorial.
Why Jekyll? Read Andrej Karpathy’s blog post!
Installation
Local setup
Assuming you have Ruby and Bundler installed on your system (hint: for ease of managing ruby gems, consider using rbenv), first fork the theme from github.com:alshedivat/al-folio
to github.com:<your-username>/<your-repo-name>
and do the following:
$ git clone git@github.com:<your-username>/<your-repo-name>.git
$ cd <your-repo-name>
$ bundle install
$ bundle exec jekyll serve
Now, feel free to customize the theme however you like (don’t forget to change the name!).

Deployment
Deploying your website to GitHub Pages is the most popular option.
Starting version v0.3.5, al-folio will automatically re-deploy your webpage each time you push new changes to your repository!
For project pages (default):
- Make changes, commit, and push!
- After deployment, the webpage will become available at
<your-github-username>.github.io/<your-repository-name>/
.
- The
master
branch should be used for the source code of your webpage and gh-pages
branch (will be created on the first deployment) will be used for deployment.
For personal and organization webpages:
- Make sure you correctly named your repository as
<your-github-username>.github.io
or <your-github-orgname>.github.io
.
- After cloning this repository, rename the branch with the source code from
master
to source
.
- Make sure the
url
and baseurl
fields in _config.yml
are empty.
- Make changes, commit, and push!
Manual deployment to GitHub Pages:
If you need to manually re-deploy your website to GitHub pages, run the deploy script from the root directory of your repository:
```bash
$ ./bin/deploy [--user]
```
uses the `master` branch for the source code and deploys the webpage to `gh-pages`.
The optional flag `--user` tells it to deploy to `master` and use `source` for the source code instead.
Using `master` for deployment is a convention for [user and organization pages](https://help.github.com/articles/user-organization-and-project-pages/).
Deployment to another hosting server (non GitHub Pages):
If you decide to not use GitHub Pages and host your page elsewhere, simply run:
```bash
$ bundle exec jekyll build
```
which will (re-)generate the static webpage in the `_site/` folder.
Then simply copy the contents of the `_site/` foder to your hosting server.
**Note:** Make sure to correctly set the `url` and `baseurl` fields in `_config.yml` before building the webpage. If you are deploying your webpage to `your-domain.com/your-project/`, you must set `url: your-domain.com` and `baseurl: /your-project/`. If you are deploing directly to `your-domain.com`, leave `baseurl` blank.
Deployment to a separate repository (advanced users only):
**Note:** Do not try using this method unless you know what you are doing (make sure you are familiar with [publishing sources](https://help.github.com/en/github/working-with-github-pages/about-github-pages#publishing-sources-for-github-pages-sites)). This approach allows to have the website's source code in one repository and the deployment version in a different repository.
Let's assume that your website's publishing source is a `publishing-source` sub-directory of a git-versioned repository cloned under `$HOME/repo/`.
For a user site this could well be something like `$HOME/.github.io`.
Firstly, from the deployment repo dir, checkout the git branch hosting your publishing source.
Then from the website sources dir (commonly your al-folio fork's clone):
```bash
$ bundle exec jekyll build --destination $HOME/repo/publishing-source
```
This will instruct jekyll to deploy the website under `$HOME/repo/publishing-source`.
**Note:** Jekyll will clean `$HOME/repo/publishing-source` before building!
The quote below is taken directly from the [jekyll configuration docs](https://jekyllrb.com/docs/configuration/options/):
> Destination folders are cleaned on site builds
>
> The contents of `` are automatically cleaned, by default, when the site is built. Files or folders that are not created by your site will be removed. Some files could be retained by specifying them within the `` configuration directive.
>
> Do not use an important location for ``; instead, use it as a staging area and copy files from there to your web server.
If `$HOME/repo/publishing-source` contains files that you want jekyll to leave untouched, specify them under `keep_files` in `_config.yml`.
In its default configuration, al-folio will copy the top-level `README.md` to the publishing source. If you want to change this behaviour, add `README.md` under `exclude` in `_config.yml`.
**Note:** Do _not_ run `jekyll clean` on your publishing source repo as this will result in the entire directory getting deleted, irrespective of the content of `keep_files` in `_config.yml`.
</details>
#### Upgrading from a previous version
If you installed **al-folio** as described above, you can upgrade to the latest version as follows:
```bash
# Assuming the current directory is
$ git remote add upstream https://github.com/alshedivat/al-folio.git
$ git fetch upstream
$ git rebase upstream/v0.3.5
```
If you have extensively customized a previous version, it might be trickier to upgrade.
You can still follow the steps above, but `git rebase` may result in merge conflicts that must be resolved.
See [git rebase manual](https://help.github.com/en/github/using-git/about-git-rebase) and how to [resolve conflicts](https://help.github.com/en/github/using-git/resolving-merge-conflicts-after-a-git-rebase) for more information.
If rebasing is too complicated, we recommend to re-install the new version of the theme from scratch and port over your content and changes from the previous version manually.
### FAQ
Here are some frequently asked questions.
If you have a different question, please ask using [Discussions](https://github.com/alshedivat/al-folio/discussions/categories/q-a).
1. **Q:** After I fork and setup the repo, I get a deployment error.
Isn't the website supposed to correctly deploy automatically?
**A:** Yes, if you are using release `v0.3.5` or later, the website will automatically and correctly re-deploy right after your first commit.
Please make some changes (e.g., change your website info in `_config.yml`), commit, and push.
2. **Q:** I am using a custom domain (e.g., `foo.com`).
My custom domain becomes blank in the repository settings after each deployment.
How do I fix that?
**A:** You need to add `CNAME` file to the `master` or `source` branch of your repository.
The file should contain your custom domain name.
(Relevant issue: [130](https://github.com/alshedivat/al-folio/issues/130).)
3. **Q:** My webpage works locally.
But after deploying, it is not displayed correctly (CSS and JS is not loaded properly).
How do I fix that?
**A:** Make sure to correctly specify the `url` and `baseurl` paths in `_config.yml`.
If you are deploying a personal or organization website to GitHub Pages, leave both fields blank.
If you are deploying a project page to GitHub Pages, leave `url` blank and set `baseurl: //`.
Generally, if you are deploying your webpage to `your-domain.com/your-project/`, you must set `url: your-domain.com` and `baseurl: /your-project/`.
## Features
### Publications
Your publications page is generated automatically from your BibTex bibliography.
Simply edit `_bibliography/papers.bib`.
You can also add new `*.bib` files and customize the look of your publications however you like by editing `_pages/publications.md`.
Author annotation:
In publications, the author entry for yourself is identified by string `scholar:last_name` and string array `scholar:first_name` in `_config.yml`:
```
scholar:
last_name: Einstein
first_name: [Albert, A.]
```
If the entry matches the last name and one form of the first names, it will be underlined.
Keep meta-information about your co-authors in `_data/coauthors.yml` and Jekyll will insert links to their webpages automatically.
The coauthor data format in `_data/coauthors.yml` is as follows,
```
"Adams":
- firstname: ["Edwin", "E.", "E. P.", "Edwin Plimpton"]
url: https://en.wikipedia.org/wiki/Edwin_Plimpton_Adams
"Podolsky":
- firstname: ["Boris", "B.", "B. Y.", "Boris Yakovlevich"]
url: https://en.wikipedia.org/wiki/Boris_Podolsky
"Rosen":
- firstname: ["Nathan", "N."]
url: https://en.wikipedia.org/wiki/Nathan_Rosen
"Bach":
- firstname: ["Johann Sebastian", "J. S."]
url: https://en.wikipedia.org/wiki/Johann_Sebastian_Bach
- firstname: ["Carl Philipp Emanuel", "C. P. E."]
url: https://en.wikipedia.org/wiki/Carl_Philipp_Emanuel_Bach
```
If the entry matches one of the combinations of the last names and the first names, it will be highlighted and linked to the url provided.
### Collections
This Jekyll theme implements `collections` to let you break up your work into categories.
The theme comes with two default collections: `news` and `projects`.
Items from the `news` collection are automatically displayed on the home page.
Items from the `projects` collection are displayed on a responsive grid on projects page.
You can easily create your own collections, apps, short stories, courses, or whatever your creative work is.
To do this, edit the collections in the `_config.yml` file, create a corresponding folder, and create a landing page for your collection, similar to `_pages/projects.md`.
### Layouts
**al-folio** comes with stylish layouts for pages and blog posts.
#### The iconic style of Distill
The theme allows you to create blog posts in the [distill.pub](https://distill.pub/) style:
For more details on how to create distill-styled posts using `<d-*>` tags, please refer to [the example](https://alshedivat.github.io/al-folio/blog/2018/distill/).
#### Full support for math & code
**al-folio** supports fast math typesetting through [KaTeX](https://katex.org/) and code syntax highlighting using [GitHub style](https://github.com/jwarby/jekyll-pygments-themes):
#### Photos
Photo formatting is made simple using [Bootstrap's grid system](https://getbootstrap.com/docs/4.4/layout/grid/).
Easily create beautiful grids within your blog posts and project pages:
### Other features
#### Theming
Six beautiful theme colors have been selected to choose from.
The default is purple, but you can quickly change it by editing `$theme-color` variable in the `_sass/_themes.scss` file.
Other color variables are listed there as well.
#### Social media previews
**al-folio** supports preview images on social media.
To enable this functionality you will need to set `serve_og_meta` to `true` in your `_config.yml`.
Once you have done so, all your site's pages will include Open Graph data in the HTML head element.
You will then need to configure what image to display in your site's social media previews.
This can be configured on a per-page basis, by setting the `og_image` page variable.
If for an individual page this variable is not set, then the theme will fall back to a site-wide `og_image` variable, configurable in your `_config.yml`.
In both the page-specific and site-wide cases, the `og_image` variable needs to hold the URL for the image you wish to display in social media previews.
## Contributing
Contributions to al-folio are very welcome!
Before you get started, please take a look at [the guidelines](/CONTRIBUTING.md).
If you would like to improve documentation, add your webpage to the list below, or fix a minor inconsistency or bug, please feel free to send a PR directly to `master`.
For more complex issues/bugs or feature requests, please open an issue using the appropriate template.
## License
The theme is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
Originally, **al-folio** was based on the [\*folio theme](https://github.com/bogoli/-folio) (published by [Lia Bogoev](http://liabogoev.com) and under the MIT license).
Since then, it got a full re-write of the styles and many additional cool features.


Amy Hemmeter
Phonetics & Sociolinguistics
Scroll Down
About Me
Curriculum Vitae
Research
Personal
My Blog
{{ content }}


Woman killed in morning crash on Interstate 20
by KNOERAYVILLE, La. (KNOE) - Authorities say a woman was killed Monday morning in a crash on Interstate 20.
According to Louisiana State Police, it happened around 8:40 a.m. just west of Rayville.
Police say 50-year-old Regina Watson, of Pioneer, was traveling west on Interstate 20 when she veered into the median. They say she overcorrected, traveled back across both lanes of travel and began to overturn.
Watson was wearing her seatbelt but did not survive the crash. She was pronounced dead at the scene.
The crash remains under investigation.


Constructor
new SyncManager()
- Source:
Example
var SyncManager = require('hbbtv-lib/cs/sync_manager');
mediaObj = document.getElementById("vbObject");
mediaObj.bindToCurrentChannel();
// wait for presenting state
syncMan = new SyncManager();
syncMan.on(SyncManager.EVT_MS_ERROR, on_ms_error);
syncMan.once(SyncManager.EVT_CII_ENABLED, on_cii_enabled);
syncMan.once(SyncManager.EVT_CII_DISABLED, on_cii_disabled);
syncMan.setMasterMedia(mediaObj, "urn:dvb:css:timeline:temi:1:1");
syncMan.enableCII();
function on_cii_enabled() {
log("synchronisation with companion can be started.");
}
Extends
Members
(static) EVT_CII_DISABLED
Event name constant for the EVT_CII_DISABLED event.
- Source:
(static) EVT_CII_ENABLED
Event name constant for the EVT_CII_ENABLED event.
- Source:
(static) EVT_ERROR
Event name constant for the EVT_ERROR event.
- Source:
(static) EVT_MS_ERROR
Event name constant for the EVT_MS_ERROR event.
- Source:
Methods
addMediaObject(mediaObject, tl_spec, cor) → {boolean}
Adds the media object to the sync manager, i.e. by calling addMediaObject.
Parameters:
| Name | Type | Description |
|---|---|---|
mediaObject |
object | either a A/V or V/B object, or an HTML5 media element in a suitable state for media synchronisation. |
tl_spec |
string | a synchronisation timeline specifier. |
cor |
object | an object providing a correlation tuple (support dvbcss_clocks from BBC and MRS formats) |
- Source:
Fires:
Returns:
TRUE if method executed without errors, else FALSE.
- Type
- boolean
addMediaObject(obj) → {boolean}
Removes the media object from the sync manager, i.e. by calling removeMediaObject.
Parameters:
| Name | Type | Description |
|---|---|---|
obj |
video | audio | object | either a A/V or V/B object, or an HTML5 media element in a suitable state for media synchronisation. |
- Source:
Fires:
Returns:
TRUE if method executed without errors, else FALSE.
- Type
- boolean
currentTime() → {number}
Returns current position on the media timeline
- Source:
Returns:
Current time
- Type
- number
disableCII() → {boolean}
Disables inter-device synchronisation. Closes the terminals CII endpoints.
- Source:
Fires:
Returns:
- Type
- boolean
enableCII() → {boolean}
Enables inter-device synchronisation for MediaSynchroniser that is properly initialized.
An event is fired when the service endpoints (e.g. DVB CII) are operational.
- Source:
Fires:
Returns:
true if the SyncManager is initialized properly.
- Type
- boolean
setMasterMedia(master, tl_spec) → {boolean}
Adds the master media to the sync manager, i.e. by calling initMediaSynchroniser. Note: this can be called only once.
Parameters:
| Name | Type | Description |
|---|---|---|
master |
media_object | either a A/V or V/B object, or an HTML5 media element in a suitable state for media synchronisation. |
tl_spec |
string | a synchronisation timeline specifier. |
- Source:
Fires:
Returns:
TRUE if method executed without errors, else FALSE.
- Type
- boolean
stop()
Stops any active MediaSynchroniser, i.e. disables inter-device sync (aka DVB CSS).
- Source:
Events
EVT_CII_DISABLED
The CII endpoint of the HbbTV terminal has been disabled.
- Source:
EVT_CII_ENABLED
The CII endpoint of the HbbTV terminal has been enabled.
- Source:
EVT_ERROR
An error occured
Parameters:
| Name | Type | Description |
|---|---|---|
message |
string | A textual description of what happened |
- Source:
EVT_MS_ERROR
An error occured
Parameters:
| Name | Type | Description |
|---|---|---|
message |
string | A textual description of what happened |
- Source:


skip to content
Content Editor
For accessibility devices
FTF 6yr Grad
FTF 4yr Grad
TR 4yr Grad
TR 2yr Grad
Chart Explanations
Chart Explanation
Some explanatory text would follow.


Class DBMapper
DBMappers are used to store a range of data in Excel to the database. A special type of DBMapper is the CUD DBMapper for realizing the former DBSheets
Inherited Members
Namespace: DBaddin
Assembly: DBaddin.dll
Syntax
public class DBMapper : DBModif
Constructors
| Improve this Doc View SourceDBMapper(CustomXMLNode, Range)
normal constructor with definition XML
Declaration
public DBMapper(CustomXMLNode definitionXML, Range paramTarget)
Parameters
| Name | Description |
|---|---|
| definitionXML | |
| paramTarget |
DBMapper(String, String, Range)
legacy constructor for mapping existing DBMapper macro calls (copy in clipboard)
Declaration
public DBMapper(string defkey, string paramDefs, Range paramTarget)
Parameters
| Name | Description |
|---|---|
| defkey | |
| paramDefs | |
| paramTarget |
Fields
| Improve this Doc View SourceCUDFlags
respect C/U/D Flags (DBSheet functionality)
Declaration
public bool CUDFlags
Field Value
| Description |
|---|
Methods
| Improve this Doc View SourceaddHiddenFeatureDefs(CustomXMLNode)
to re-add hidden features only available in XML
Declaration
public override void addHiddenFeatureDefs(CustomXMLNode definitionXML)
Parameters
| Name | Description |
|---|---|
| definitionXML | the definition node of the DB Modifier where the hidden features should be added |
Overrides
| Improve this Doc View SourceDBModifSaveNeeded()
checks whether DBModifier needs saving, either because execOnSave is set or in case of CUD DBMappers if any i/u/d Flages are present
Declaration
public override bool DBModifSaveNeeded()
Returns
| Description |
|---|
true if save needed |
Overrides
| Improve this Doc View SourcedoDBModif(Boolean, String, Boolean)
execute the modifications for the DB Mapper by storing the data modifications in the DBMapper range to the database
Declaration
public override void doDBModif(bool WbIsSaving = false, string calledByDBSeq = "", bool TransactionOpen = false)
Parameters
| Name | Description |
|---|---|
| WbIsSaving | flag for being called during Workbook saving |
| calledByDBSeq | the name of the DB Sequence that called the DBMapper |
| TransactionOpen | flag whether a transaction is open during the DB Sequence |
Overrides
| Improve this Doc View SourceextendDataRange()
extend DataRange to "whole" DBMApper area (first row (header/field names) to the right and first column (first primary key) down)
Declaration
public void extendDataRange()
hadChanges()
Declaration
public bool hadChanges()
Returns
| Description |
|---|
insertCUDMarks(Range, Boolean)
inserts CUD (Create/Update/Delete) Marks at the right end of the DBMapper range
Declaration
public void insertCUDMarks(Range changedRange, bool deleteFlag = false)
Parameters
| Name | Description |
|---|---|
| changedRange | passed TargetRange by Change Event or delete button |
| deleteFlag | if delete button was pressed, this is true |
resetCUDFlags()
reset CUD FLags, either after completion of doDBModif or on request (refresh)
Declaration
public void resetCUDFlags()
setDBModifCreateFields(ref DBModifCreate)
set the fields in the DB Modifier Create Dialog with attributes of object
Declaration
public override void setDBModifCreateFields(ref DBModifCreate theDBModifCreateDlg)
Parameters
| Name | Description |
|---|---|
| theDBModifCreateDlg |


WITNESS LIST Licensing & Administrative Procedures Committee December 18, 2003-2:00P Tx Lottery Commission Oversight On: Greer, Reagan (Texas Lottery Commission) VLTs For: Battise, Vice Chairman Kevin P. (Alabama-Coushatta Tribe of Texas) Kaminski, Bob (Lone Star Park at Grand Prairie) Reyna, Jr., Arthur (Self and Spielo) Senclair, Governor Arturo (Yselta Del Sur Pueblo) On: Garza, Jr., Chairman Juan (Kickapoo Traditional Tribe of Texas) Hernandez, Gloria (Kickapoo Traditional Tribe of Texas) LeBas, James (Comptroller's office) Preuss, Gary (Texas Comptroller) Sarwal, Melanie (Office of the Attorney General) Strayhorn, The Honorable Carole Keeton (Comptroller of Public Accounts) Registering, but not testifying: On: Butts, Edna (Office of the Attorney General) VLTs and Keno On: Hello, Mike (Amusement and Music Operators of Texas) Registering, but not testifying: On: Bush, Y. Danae (Texas Legislative Council) Turner, Ebony (Texas Legislative Council)


Before Change
than ``startup_cost``.
total_occupancy = self.scheduler.total_occupancy
total_cores = sum([ws.ncores for ws in self.scheduler.workers.values()])
if total_occupancy / (total_cores + 1e-9) > self.startup_cost * 2:
logger.info(
"CPU limit exceeded [%d occupancy / %d cores]",
After Change
total_cores,
)
tasks_processing = 0
for w in self.scheduler.workers.values():
tasks_processing += len(w.processing)
if tasks_processing > total_cores:
logger.info(
"pending tasks exceed number of cores " "[%d tasks / %d cores]",


Mango and passion-fruit sorbet recipe
by Diana HenryDon’t panic about the liquid glucose. You can get it in large supermarkets nowadays (and from Ocado). It just helps to improve the texture of the sorbet, making it smoother.
Prep time: 20 minutes | Cooking time: 5 minutes
SERVES
eight
INGREDIENTS
- 275g ripe mango flesh
- Juice of 2 limes
- 175ml passion-fruit juice (from about 12 passion fruits, though you may need more)
- 35g liquid glucose
- 175g granulated sugar
METHOD
- Purée the mango with the lime juice and passion-fruit juice until totally smooth.
- Put the glucose in a saucepan with the sugar and 450ml water. Bring to the boil, stirring to help the sugar dissolve. Leave to cool, then combine with the purée and push through a sieve. Chill in the fridge.
- Churn the mixture in an ice-cream machine following the manufacturer’s instructions, or pour the mixture into a dish, cover and place in the freezer. You need to remove it from the freezer and beat the mixture well, with a fork or in a food processor, about three times during the freezing process, to give you a smooth sorbet.


teaching
University and non-university courses shown
Currently teaching assistant for:
Subject |
Where |
When |
|---|---|---|
| Artificial Intelligence | 3rd year Robotics Software Engineering Universidad Rey Juan Carlos |
22-23 21-22 20-21 |
| Robotics | 3rd year Telematics Engineering Universidad Rey Juan Carlos |
22-23 |
Couses:
Course name |
Platform |
|---|---|
| Object detection and segmentation with Tensorflow | Platzi |
Selected talks:
Talk name |
Where |
When |
|---|---|---|
| Vision based end-to-end autonomous driving via imitation learning | Master in Artificial Vision, URJC | March 2023 |
| RL-Studio: A Tool for Reinforcement Learning Methods in Robotics | ROBOT 2022, Zaragoza | November 2022 |
Master thesis directed:
Thesis name |
Student |
When |
|---|---|---|
| Conducción autónoma en tráfico usando aprendizaje profundo extremo a extremo (Autonomous driving in traffic using end-to-end deep learning) | Enrique Y. Shinohara Soto | Master in Artificial Vision, URJC, 2022-2023 |
Previous teaching experience:
Subject |
Where |
When |
|---|---|---|
| Modelling and Simulation of Robots | 3rd year Robotics Software Engineering Universidad Rey Juan Carlos |
21-22 20-21 |
| Embedded and Real Time Systems | 3rd year Robotics Software Engineering Universidad Rey Juan Carlos |
21-22 20-21 |


Support authors and help Steem!
Steem authors depend on your votes to fund their content creation. If you enjoyed this post, support the author by voting this post. By doing this you also help the Steem Blockchain by curating good content while ensuring that the reward pool is democratically divided. Thank you!


for @JSLuxembourg by Thierry Nicola / @littleiffel, Feb.2015
Address common challenges in Single-Page Web Applications with data that changes over time
“Lots of people use React as the V in MVC. Since React makes no assumptions about the rest of your technology stack, it's easy to try it out on a small feature in an existing project.”
var HelloMessage = React.createClass({
render: function() {
return Hello {this.props.name};
}
});
React uses a virtual DOM diff implementation for ultra-high performance. It can also render on the server using Node.js — no heavy browser DOM required.
React implements one-way reactive data flow which reduces boilerplate and is easier to reason about than traditional data binding.
var HelloMessage = React.createClass({
render: function() {
return Hello {this.props.name};
}
});
// Attach Component to DOM Node
React.render(<HelloWorld name='John' />, document.body);
var Timer = React.createClass({
getInitialState: function() {
return {secondsElapsed: this.props.init};
},
tick: function() {
this.setState({secondsElapsed: this.state.secondsElapsed + 1});
},
componentDidMount: function() {
this.interval = setInterval(this.tick, 1000);
},
componentWillUnmount: function() {
clearInterval(this.interval);
},
render: function() {
return (
Seconds Elapsed: {this.state.secondsElapsed}
);
}
});
React.render(<Timer init="100"/>, document.body);
var Form = React.createClass({
getInitialState: function() {
return {value: 'Hello!'};
},
handleChange: function(event) {
this.setState({value: event.target.value});
},
render: function() {
var value = this.state.value;
return ;
}
})
var Form = React.createClass({
render: function() {
return ;
}
})
Access via this.refs.myfield.getDOMNode().value

Flux is the application architecture that Facebook uses for building client-side web applications. It complements React's composable view components by utilizing a unidirectional data flow. It's more of a pattern rather than a formal framework
Thanks for your attention!


Black to Play 22
b2-w2/5
pips Black=88 White=124
(CorrectAnswer= 0/0, ErrorScore= 0)
1. 24/22 7/5 6/4(2) eq:+0.621 65.12% (G:22.76% B:0.44%) 34.88% (G:4.07% B:0.22%) 2. 24/22 6/4(2) 3/1 eq:+0.559 (-0.062) 62.60% (G:20.32% B:0.21%) 37.40% (G:4.65% B:0.20%) 3. 24/22 7/5(2) 3/1 eq:+0.521 (-0.100) 61.14% (G:23.05% B:0.44%) 38.86% (G:6.38% B:0.33%) 4. 24/22 7/5 7/3 eq:+0.458 (-0.163) 58.48% (G:20.21% B:0.31%) 41.52% (G:5.98% B:0.12%) 5. 24/22 7/5 3/1(2) eq:+0.452 (-0.169) 59.15% (G:17.74% B:0.25%) 40.85% (G:5.77% B:0.10%)


I makeFast WordPress Websitesfor any screen size.
Answer a few questions to help me understand your needs.It takes just 5 minutes and will save us a lot of time.


Depending on your architecture, this configuration may be overridden by a local configuration file. See documentation for more information.


Web development
Home
About
Discord
Web development
Web development
This web page is development by xXxlololxXx and ~♪☆ yuudachi_IJN ☆♪~
5
Min
Max
Generate
Play
Translate


Jewish Veterans And Serving Personnel Take Part In Remembrance Parade
The event traditionally takes place the week after Remembrance Sunday.
Jewish military veterans and serving personnel have marched through central London as part of a Remembrance event.
They were joined by families, school children and the Jewish Police Association as they marched from Horse Guards Parade to the Cenotaph in Whitehall.
The annual AJEX Ceremony of Remembrance commemorates the contribution and sacrifice of the Jewish community during wartime.
The ceremony has been running for the last 85 years and is organised by the Jewish Military Association UK (AJEX).
Mike Bluestone, AJEX national chairman, said: "Jews from this country and what is now the Commonwealth served this country in disproportionately high numbers, arguably proportionally higher than any other minority group.
"This annual parade is our opportunity to pay our respect to the war dead of all faiths.
"We now see anti-semitism on the rise in this country, continental Europe and the USA so it is once again so important that we fly the flag and show that we did serve loyally, we paid the price and continue to serve in today's Armed Forces.
"It is also our way of saying thank you to this country."
People from across the country and overseas, including the US and Israel, all took part in the commemorations.
Philip Robinson, who attended the parade, said "it's nice to be able to make a special contribution".
The event traditionally takes place the week after Remembrance Sunday.
Earlier this week, the nation fell silent to mark the 100th Armistice Day.


Aquisition. Management. Development.
Find Out MoreJNR Group is a private real estate investment and management company operating in Pennsylvania, New Jersey, and Delaware. Our portfolio consists of residential multifamily, student housing, retail and commercial centers, and government facilities. With over 40 years of industry experience, we specialize in managing the full lifecycle of real estate projects from acquisition/development to leasing/management.
Our ProjectsXX residential units in high-demand markets.
XX units near Wilkes University, Kings College, and East Stroudsburg.
XX square feet of shopping centers, government offices, and mixed use retail space.
Experience with large development projects.
Ready to start your next project with us? Give us a call or send us an email!


Potted Plot | History | First Night Critics | Did You Know? | Original Cast
First produced at the Royalty Theatre, London, March 25th 1875
The 40 minute "Trial by Jury" followed the Offenbach operetta "La Perichole".
The scene is a court of law. Barristers, Attorneys and Jurymen are discovered.
"Hark, the hour of ten is sounding;
Hearts with anxious fears are bounding,
Hall of Justice crowds surrounding,
Breathing hope and fear-"
The case to be heard today is a breach of promise. Edwin is being sued by Angelina.
Edwin duly arrives and explains his situation. The woman who he thought he loved had become a bore and so one morning he found comfort in another.
The jurymen relate that they were the same when they were younger but they are now reformed and have no sympathy for the defendant.
All rise for the Judge who explains to all how he managed to become a judge.
The jury is sworn in and the Plaintiff arrives, proceeded by her bridesmaids in full rig.
The Judge is most taken with Angelina.
The Counsel for the Plaintiff makes his statement. With Angelina sobbing on his chest he relates an account of the vile behaviour of Edwin.
"See my interesting client,
Victim of a heartless wile!
See the traitor all defiant
Wear a supercilious smile!"
There are expressions of sympathy all round. The defendant is already the guilty party.
The Plaintiff, thinking of the heavy damages she could get, embraces the Defendant and stresses what a loss she has suffered through being jilted.
Edwin, not to be outdone, points out that he is far from being a good catch.
"I smoke like a furnace - I'm always in liquor,
A ruffian - a bully - a sot:
I'm sure I should thrash her, perhaps I should kick her,
I am such a very bad lot!"
The Judge has a good idea. Maybe they could give him a little drink to see if he would actually thrash and kick her.
There are objections - except from Edwin.
The Judge becomes impatient and announces a somewhat surprising solution.
"Put your briefs upon the shelf,
I will marry her myself!"
All rejoice.
| History |
Enter Richard D'Oyly Carte. He was a concert agency executive, who at thirty-one was also serving as manager of the Royalty Theatre. Carte was always on the lookout for good material for use either as curtain raises or afterpieces. He wanted something to accompany Offenbach's La Périchole.
Gilbert dropped in on D'Oyly Carte one day in mid-January 1875 and showed him a new libretto he had been working on. Carte suggested that Sullivan would be the man to set it. Gilbert then visited Sullivan with his manuscript and read it to him.
Sullivan recalled the occasion: "He read it through, as it seemed to me, in a perturbed sort of way, with a gradual crescendo of indignation, in the manner of a man considerably disappointed with what he had written. As soon as he had come to the last word he closed the manuscript violently, apparently unconscious of the fact that he had achieved his purpose so far as I was concerned, inasmuch as I was screaming with laughter the whole time. The words were written, and the rehearsals completed, within the space of three weeks' time."
The first announcement in the Times, in January, omitted the name of Gilbert entirely. There was no further advertisement of the new work until March 20th when the Times notice did contain Gilbert's name.
La Périchole opened on March 25th, but it was Trial by Jury which stole the evening and started the famous pair on the long road of many successful ventures.
| First night critics |
Fun
"(Trial by Jury was) extremely funny and admirably composed. For once we have an original notion brought to a satisfactory conclusion."
Punch
"In Trial by Jury both Mr. Words and Mr. Music have worked together, and for the first quarter of an hour the Cantata (as they've called it) is the funniest bit of nonsense your representative has seen for a considerable time."
Daily News
"In whimsical invention and eccentric humour Mr. W.S. Gilbert has no living rival among our dramatic writers, and never has his peculiar vein of drollery and satire been more conspicuous than in a little piece entitled Trial by Jury, produced at the Royalty Theatre on Thursday evening."
Daily Telegraph
"Trial by Jury is a cantata, and, as such, is the work of...Mr. Sullivan, who, by the way, conduced the performance on Thursday night with his usual great tact and skill. After but one hearing of the piece it is scarely possible to decide upon the precise merits of Mr. Sullivan's latest work, so much is every faculty absorbed by the fun of the dialogue and situations. Nevertheless, we believe it will be found that the music to Trial by Jury is worthy the composer of Cox and Box: and, consequently, that it illustrates Mr. Sullivan's great capacity for dramatic writing of the lighter class."
Daily News
"On this occasion the dramatic and the musical composer have worked together; and so completely is each embued with the same spirit that it would be as difficult to conceive the existence of Mr. Gilbert's verses without Mr. Sullivan's music, as of Mr. Sullivan's music without Mr. Gilbert's verses. Each gives each a double charm."
The Times
"Mr. F. Sullivan's impersonation of the learned and impressionable Judge deserves a special word of praise for its quiet and natural humour."
Daily Telegraph
"Miss Nelly Bromley made the Plaintiff as interesting and attractive as possible."
Daily News
"Laughter more frequent or more hearty was never heard in any theatre than that which more than once brought the action of the 'dramatic cantata on Thursday evening to a temporary standstill."
| Did you know? |
At first, because of the importance of his name, Sullivan was considered as the creator of Trial By Jury. Posters called it a dramatic cantata by Arthur Sullivan. The librettist was of little importance; in fact, on the first night's program his name was incorrectly listed as W.C. Gilbert. But it must be admitted now that the elegant format of Trial By Jury was Gilbert's conception.


I collaborate with clients and peers to nurture and transform ideas into well thought out design specs. After all, that's where the majority of amazing user experiences start.
I sketch and wireframe interfaces focusing on content structure, intuitive UI patterns and simple interactions. I'm a minimalist who truly believes that less is more.
I design in the browser with HTML(5), CSS(3) and a touch of JavaScript. I love coding things from scratch, but I can work with front-end frameworks like Bootstrap too.
Get information about kenya's Tour operators, all from one place!
This was a freelance project. The requirements were to build a web-app that can access the Google Places API. It must include a map with pins and a list of locations, with some interactivity between the two.
Frontend implementation of the Creative Design Agency Dribble concept.
Clone of the popular Facebook App
This project is an implementation of The Odin Project's Rails curriculum.
I'm currently accepting new projects and would love to hear about yours. Please take a few minutes to tell me about it.
Contact me


Drag and drop Neurons to combine their activations!
These neurons are activation visualizations from the Inception V1 network. Neuron combinations represent images that maximally visualize two separate filters within the convolutional layer. This demo is a human interpratable visualization of how these neurons interact to build more complex concepts in image identification


Project of the day
There are lot of scenaries around the world, we should try to conserve it. Join hands with us, and grab an opportunity to travel these places.
Choti khanjarpur, BGP Nature Project we love
28%
funded
$10,981
pledged
134
backers
19
days to go
There are lot of scenaries around the world, we should try to conserve it. Join hands with us, and grab an opportunity to travel these places.
funded
pledged
days to go
Choti khanjarpur, BGP Nature Project we love
Share : facebook Twitter Google-plus Linkedin
846
$294,844
19


Ocean [ax74], ocean, in Crystal Sea
Last updated Turn #71
Ocean [ax74], ocean, in Crystal Sea
------------------------------------------------------------------------
13: Orion I [hd3f], ship, 2 hulls, 1 rowing port, 6 sails, 27% damaged,
13: arrived from Ocean [ax75], owner:
13: Phantasm [n4b], Imperial Empire, with 12 sailors
14: Orion I [hd3f], ship, 2 hulls, 1 rowing port, 6 sails, 27% damaged,
14: departed for Ocean [ax73].
Routes leaving Ocean:
North, to Ocean [aw74], 6 days
East, to Ocean [ax75], 6 days
South, to Ocean [ay74], 6 days
West, to Ocean [ax73], 6 days


src/utils.js
const ngeohash = require('ngeohash');
export class FirebaseNearbyUtils {
constructor() {}
/**
* Gets the default Firebase nearby config
*
* @return {Object} The configs object
*/
getDefaultConfig() {
return {
paths: {
locations: '/locations',
entries: '/entries',
},
minPrecision: 5,
maxPrecision: 7,
zoomLevel: 15,
}
}
/**
* Gets the Geohash box based on the locations lat and lng
*
* @param {Object} location holds the locations lat and lng
* @param {string} precision holds percision for the geohash e.g. 6 characters long
* @return {string} The Geohash string
*/
getGeohashByLocation(location, precision) {
return ngeohash.encode(location.lat, location.lng, precision);
}
/**
* Gets the Geohash based on the locations coordinates
*
* @param {string} geohash holds geohash string
* @param {number} minPercision holds minimal percision for the geohash
* @param {number} maxPercision holds maximum percision for the geohash
* @return {Array.<string>} Geohash strings
*/
getGeohashPrecisions(geohash, minPrecision, maxPrecision) {
const geohashes = [];
for (let i = 0; maxPrecision - minPrecision >= i; i++) {
geohashes.push(geohash.substring(0, geohash.length - i));
}
return geohashes;
}
/**
* Gets all the visible Geohashes within the given Boundaries (also overlapping geohashes)
* the geohash length will be calculated from the given precision
*
* @param {Object} boundaries holds coordinates of the boundaries
* @param {number} precision holds minimal percision for the geohash
* @return {Array.<string>} Holds all the Geohashes within the boundaries
*/
getGeohashesInBoundaries(boundaries, precision) {
return ngeohash.bboxes(boundaries.sw.lat, boundaries.sw.lng, boundaries.ne.lat, boundaries.ne.lng, precision);
}
/**
* Returns all the keys of locations inside the given boundaries
*
* @param {Object} boundaries holds coordinates of the boundaries
* @param {number} precision holds minimal percision for the geohash
* @return {Array.<string>} Holds all the Geohashes within the boundaries
*/
getLocationsInBoundaries(geohashNode, boundaries) {
const promises = [];
geohashNode.map(locations => {
// check if locations node exists
if (locations.val()) {
locations.forEach(location => {
// check if single location is within boundaries
if (this.isInBoundaries(location.val(), boundaries)) {
promises.push(new Promise((resolve, reject) => {
resolve(location.key);
}));
}
});
}
});
return Promise.all(promises);
}
/**
* Checks if the given location is within the boundaries
* This needs to be done, since getGeohashesInBoundaries() returns also overalpping locations, which our outside of the boundaries.
* The getGeohashesInBoundaries() will be used to reduce the number of possible locations, which provides us a huge performance gain.
*
* @param {Object} location holds the current location
* @param {Object} boundaries holds coordinates of the boundaries
* @return {boolean} Says if location is in or outside of boundaries
*/
isInBoundaries(location, boundaries) {
let isInBoundaries = false;
if (boundaries.sw.lat <= location.lat && boundaries.sw.lng <= location.lng
&& boundaries.ne.lat >= location.lat && boundaries.ne.lng >= location.lng) {
isInBoundaries = true;
}
return isInBoundaries;
}
}


South Korea nuclear regulator wants information on radioactive Fukushima water release
SEOUL: Japan's reluctance to disclose information about the release of radioactive water from its damaged Fukushima nuclear plant is hampering neighbouring countries' efforts to minimise the impact, the head of South Korea's nuclear safety agency said on Wednesday (Nov 20).
Since the 2011 earthquake and tsunami caused a meltdown at some of the reactors the Fukushima plant, owner Tokyo Electric Power Co has been storing radioactive water in tanks at the site from the cooling pipes used to keep the fuel cores from melting. The utility will run out of space for the water in 2022.
Japan has not yet decided how to deal with the contaminated water, but its environment minister said in September that radioactive water would have to be released from the site into the Pacific Ocean.
"We have been raising Japan's radioactive water issue to the international community to minimise the impact ... but as Japan hasn't disclosed any specific plan and process we would need more details to run simulations and study," Uhm Jae-sik, chairman of the Nuclear Safety and Security Commission, told Reuters.
In addition to the Fukushima crisis, safety concerns about nuclear energy have increased in South Korea following a 2012 scandal over the supply of faulty reactors parts with forged documents, prompting a series of shutdowns of nuclear reactors.
South Korea, the world's fifth-largest user of nuclear power, targets a long-term phase out of atomic power to allay public concerns.
READ: Japan embassy in Seoul posts radiation data amid escalating row
"Regardless of the government's energy policy change, our primary goal is ensuring the safety of nuclear power," Uhm said.
South Korea operates 25 nuclear reactors, which generate about a third of the country's total electricity. Of the 25 reactors, 10 are offline for maintenance, according to the website of Korea Hydro & Nuclear Power.


public class SquareMatrix2D
extends java.lang.Object
| Modifier and Type | Field and Description |
|---|---|
double |
x1
(x1 x2), (y1 y2)
|
double |
x2
(x1 x2), (y1 y2)
|
double |
y1
(x1 x2), (y1 y2)
|
double |
y2
(x1 x2), (y1 y2)
|
| Constructor and Description |
|---|
SquareMatrix2D()
Creates a new instance
|
SquareMatrix2D(double x1,
double x2,
double y1,
double y2)
Creates a new instance
|
public double x1
public double x2
public double y1
public double y2


Jose Mourinho rates Dele Alli's performance as Tottenham win at West Ham
Jose Mourinho praised the contribution of Dele Alli as Tottenham enjoyed their first away win in the Premier League since January.
In his first match in charge since replacing the outgoing Mauricio Pochettino earlier this week, Spurs raced into a two-goal advantage and made the game safe early in the second half thanks to Harry Kane’s header.
West Ham rallied late on to reduce the margin of defeat to a single goal, but it was Alli, playing in a more advanced role, who caught the eye of his new manager.
Mourinho said: ‘I’m happy with him, I spent a few minutes with him in training and outside the pitch. And we were saying that the best Dele Alli has to be back.
‘He’s too good to not be one of the best players in the world and not playing with the national team.
Advertisement Advertisement
‘He has to start from now, has to start now without injuries and start with some stability from tactical point of view.’
Alli, himself, insisted his performances in recent weeks suggested his form had been steadily improving, despite having been left out of England’s most recent squad, but insists there is still much more to come.
‘It’s been a very tough week for us emotionally,’ he said. ‘We’ve spent a long time with Poch and we were very sad but we had a job to do. We had to go out for the fans and try and stay as positive as we can.
‘I think I have been performing well so far this season but I need to get better than my old form and get to my best.
‘We have to carry on momentum and keep winning, we need to start that from now. There is still a lot to work on and we need to improve from now on.’
am-clash-unsure-tottenham-stars-future-11205846/” title=”Jose Mourinho benches Christian Eriksen for West Ham clash and is ‘unsure’ over Tottenham star’s future”]


--- title: Evaluate a Keras model type: docs repo: https://github.com/rstudio/keras menu: main: name: Evaluate a Keras model - keras parent: keras-reference aliases: - /reference/keras/evaluate.keras.engine.training.Model.html - /keras/reference/evaluate.keras.engine.training.Model.html - /guide/keras/reference/evaluate.keras.engine.training.Model.html - /tools/tools/keras/reference/evaluate.keras.engine.training.Model.html - /installation/keras/reference/evaluate.keras.engine.training.Model.html - /tutorials/keras/reference/evaluate.keras.engine.training.Model.html - /guide/tools/keras/reference/evaluate.keras.engine.training.Model.html - /deploy/keras/reference/evaluate.keras.engine.training.Model.html - /tools/keras/reference/evaluate.keras.engine.training.Model.html - /tutorials/tools/keras/reference/evaluate.keras.engine.training.Model.html ---
Evaluate a Keras model
# S3 method for keras.engine.training.Model
evaluate(
object,
x = NULL,
y = NULL,
batch_size = NULL,
verbose = 1,
sample_weight = NULL,
steps = NULL,
callbacks = NULL,
...
)
| object | Model object to evaluate |
| x | Vector, matrix, or array of test data (or list if the model has
multiple inputs). If all inputs in the model are named, you can also pass a
list mapping input names to data. |
| y | Vector, matrix, or array of target (label) data (or list if the model has
multiple outputs). If all outputs in the model are named, you can also pass
a list mapping output names to data. |
| batch_size | Integer or |
| verbose | Verbosity mode (0 = silent, 1 = progress bar, 2 = one line per epoch). |
| sample_weight | Optional array of the same length as x, containing
weights to apply to the model's loss for each sample. In the case of
temporal data, you can pass a 2D array with shape (samples,
sequence_length), to apply a different weight to every timestep of every
sample. In this case you should make sure to specify
|
| steps | Total number of steps (batches of samples) before declaring the
evaluation round finished. Ignored with the default value of |
| callbacks | List of callbacks to apply during evaluation. |
| ... | Unused |
Named list of model test loss (or losses for models with multiple outputs) and model metrics.
Other model functions:
compile.keras.engine.training.Model()
,
evaluate_generator()
,
fit.keras.engine.training.Model()
,
fit_generator()
,
get_config()
,
get_layer()
,
keras_model_sequential()
,
keras_model()
,
multi_gpu_model()
,
pop_layer()
,
predict.keras.engine.training.Model()
,
predict_generator()
,
predict_on_batch()
,
predict_proba()
,
summary.keras.engine.training.Model()
,
train_on_batch()


Starting With Version Control
No blog post
CSS Concepts
Arrays and Hashes
Enumerable Methods
Ruby Classes
Javascript
Tech


Rent unique places to stay from local hosts in 190+ countries.
Hermosa Beach
Cape Town
Create your symbol, Tell your story
Across an ocean or across town, Alice & Chris are always in search of local experiences.
Learn more about travel on Airbnb.
Feel at home, wherever your work takes you.
Get your team on Airbnb.
A professional photographer, Nina loves helping guests explore Shanghai's arts scene.
Learn more about hosting on Airbnb.


Empyreal
-
Utilities
-
Content
-
Components
-
Forms
Lorem, ipsum dolor sit amet consectetur adipisicing elit. Excepturi aliquam placeat ipsum atque voluptatibus delectus natus explicabo! Voluptatem, soluta. Ea?
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Cum dignissimos error placeat. Veniam eaque ratione exercitationem officia consequatur facilis laborum?
1
2
3
4
5
6
7
8
9
10
11
12
| Screen | Screen Width | Class Prefix |
|---|---|---|
| Mobile Devices | <= | " >s |
| Mobile Devices | > 600px |
m
|
| Desktop Devices | > 992px |
l
|
| Extra Large Devices | > 1200px |
xl
|
Full Width
Offset by 6 columns
Like columns, offsets also range from 1 to 12 and they are also responsive, so to add an offset of 3 columns in tablet screens and above use
offset-m3
. Offsets will always be applied from the left.
As the grid system is based on FlexBox, you can arrange the grid items using the
order-*
class.
I am the first child but am second in order.
I am the second child but am first in order.
col s12
col s12 m4 l2
col s12 m4 l8
col s12 m4 l2
col s6 l3
col s6 l3
col s6 l3
col s6 l3


08 May 1998
Disease Outbreak Reported
Crimean-Congo haemorrhagic fever has been diagnosed in four cases of which two died in a village in the Kohlu area of Baluchistan Province of Pakistan in February. The four cases belonged to the same family of herders living in close contact with their sheep. Specimens were collected from the two surviving patients, from other members of the family who developed fever without haemorrhagic symptoms and from many of the contacts. Blood specimens from cases and contacts were shipped to the WHO Collaborating Centre for Reference and Research on Special Pathogens at the Centre for Applied Medical Research, Public Health Laboratory Service, Porton Down, United Kingdom for testing. All had IgG and IgM antibody to Crimean-Congo haemorrhagic fever virus indicating recent infection. Other virologic testing is in progress at Porton Down.


You are editing a Template. Only some of the content of the Template can
be changed to ensure any checklists derived from a template maintain their
syntactic consistency. Fields that can be updated are:
Name
Description
Category/Team
Resources
The following properties can not be updated:
Assignees (Template do not have assignees)
Status (Templates do not have a status)
Template Items properties other than the resources


|
Apache log4cxx
Version 0.10.0
|
Appenders may delegate their error handling to ErrorHandlers
.
More...
Inherits OptionHandler.
Inherited by OnlyOnceErrorHandler [virtual]
, and FallbackErrorHandler [virtual]
.
Public Member Functions | |
| virtual | ~ErrorHandler () |
| virtual void | setLogger (const LoggerPtr &logger)=0 |
| Add a reference to a logger to which the failing appender might be attached to. More... | |
| virtual void | error (const LogString &message, const std::exception &e, int errorCode) const =0 |
| Equivalent to the error(const String&, helpers::Exception&, int, spi::LoggingEvent&) with the the event parameteter set to null. More... | |
| virtual void | error (const LogString &message) const =0 |
| This method is normally used to just print the error message passed as a parameter. More... | |
| virtual void | error (const LogString &message, const std::exception &e, int errorCode, const LoggingEventPtr &event) const =0 |
| This method is invoked to handle the error. More... | |
| virtual void | setAppender (const AppenderPtr &appender)=0 |
| Set the appender for which errors are handled. More... | |
| virtual void | setBackupAppender (const AppenderPtr &appender)=0 |
| Set the appender to fallback upon in case of failure. More... | |
| Public Member Functions inherited from OptionHandler | |
| virtual | ~OptionHandler () |
| virtual void | activateOptions (log4cxx::helpers::Pool &p)=0 |
| Activate the options that were previously set with calls to option setters. More... | |
| virtual void | setOption (const LogString &option, const LogString &value)=0 |
Set option to value . More... | |
| Public Member Functions inherited from Object | |
| virtual const helpers::Class & | getClass () const |
| virtual | ~Object () |
| virtual void | addRef () const =0 |
| virtual void | releaseRef () const =0 |
| virtual bool | instanceof (const Class &clazz) const =0 |
| virtual const void * | cast (const Class &clazz) const =0 |
Additional Inherited Members | |
| Static Public Member Functions inherited from Object | |
| static const helpers::Class & | getStaticClass () |
| static const log4cxx::helpers::ClassRegistration & | registerClass () |
Appenders may delegate their error handling to ErrorHandlers
.
Error handling is a particularly tedious to get right because by definition errors are hard to predict and to reproduce.
Please take the time to contact the author in case you discover that errors are not properly handled. You are most welcome to suggest new error handling policies or criticize existing policies.
|
inlinevirtual |
|
pure virtual |
Equivalent to the error(const String&, helpers::Exception&, int, spi::LoggingEvent&) with the the event parameteter set to null.
Implemented in FallbackErrorHandler, and OnlyOnceErrorHandler.
|
pure virtual |
This method is normally used to just print the error message passed as a parameter.
Implemented in FallbackErrorHandler, and OnlyOnceErrorHandler.
|
pure virtual |
This method is invoked to handle the error.
| message | The message assoicated with the error. |
| e | The Exption that was thrown when the error occured. |
| errorCode | The error code associated with the error. |
| event | The logging event that the failing appender is asked to log. |
Implemented in FallbackErrorHandler, and OnlyOnceErrorHandler.
|
pure virtual |
Set the appender for which errors are handled.
This method is usually called when the error handler is configured.
Implemented in FallbackErrorHandler, and OnlyOnceErrorHandler.
|
pure virtual |
Set the appender to fallback upon in case of failure.
Implemented in FallbackErrorHandler, and OnlyOnceErrorHandler.
|
pure virtual |
Add a reference to a logger to which the failing appender might be attached to.
The failing appender will be searched and replaced only in the loggers you add through this method.
| logger | One of the loggers that will be searched for the failing appender in view of replacement. |
Implemented in FallbackErrorHandler, and OnlyOnceErrorHandler.


GradientView
public final class GradientView : UIView
An easy to use wrapper around CGGradient
for drawing linear gradients.
For examples and testing its usage, you can use the FueledUtils
playground file provided with the workspace.
-
Defines the colors of a given type.
See moreDeclaration
Swift
public enum Definition
-
Defines the different type of supported gradients.
See moreDeclaration
Swift
public enum GradientType
-
Get/Set the type of the gradient. Please refer to
GradientType
for more info.Declaration
Swift
public var type: GradientView.GradientType { get set }
-
Get/Set the definition of the gradient. Please refer to
Definition
for more info.Warning
If the definition is.custom
, and the array has less than 2 elements, the code will crash at runtime.Declaration
Swift
public var definition: GradientView.Definition { get set }
-
Get/Set the start color of the gradient. When getting the property, if the gradient is
.custom
, it will return the first color in the array. When setting this property, if the gradient is.custom
, it will convert it to a.simple
using the last color of the array as theendColor
.Declaration
Swift
@IBInspectable public var startColor: UIColor { get set }
-
Get/Set the end color of the gradient. When getting the property, if the gradient is
.custom
, it will return the last color in the array. When setting this property, if the gradient is.custom
, it will convert it to a.simple
using the first color of the array as thestartColor
.Declaration
Swift
@IBInspectable public var endColor: UIColor { get set }
-
Please refer to the documentation for
UIView.init(frame:)
Declaration
Swift
override public init(frame: CGRect)
-
Please refer to the documentation for
UIView.init(coder:)
Declaration
Swift
required public init?(coder aDecoder: NSCoder)
-
Please refer to the documentation for
UIView.draw(_:)
Declaration
Swift
override public func draw(_ rect: CGRect)


My name is Spencer and I am a 15 year old High School student. During the first lesson in my physics class regarding electronic circuits (which dealt with the first two things currently available on the calculator), I realized that I could make things "simpler" with a calculator for it. In some ways, it is simpler, but it did take a good 6-10 hours in total to code, set up, try to host and eventually give up and move to tumblr.


PHOTOS: Pitch invader Awal Suleman given a heroes welcome on the streets of Cape Coast after release from Police custody
Awal Suleman, the famous Ghana pitch invader has been given a heroes welcome on his way home from Police custody.
Awal Suleman was detained by the Cape Coast Police following his invasion of the pitch in Ghana's AFCON qualifier against South Africa.
Following his release, he headed home like a hero set free from jail. People gathered around the streets leading to his home to celebrate him.
The 25-year old former 400m runner was arrested by Police after he run onto the pitch in the 84th minute of Ghana's 2-0 win against the Bafana Bafana.
He spent two days in Police custody.
His detention has divided opinions in the public with a social media trend asking for the release Awal.
FA President Kurt Okraku and members of the Association in the Central Region ensured the zealous fan was taken through the process of bail successfully on Saturday morning.


Home
Portfolio
Resume
Password Generator
Deployed Link
GitHub Repo
Scheduler
Deployed Link
GitHub Repo
Handlebars book list
GitHub Repo


Third year Computer Science student at the University of Calgary with a passion for making things and solving problems.
Checkers in Haskell
Developed a functionally complete chess engine, built on top of a codebase provided to us by TAs. Implemented AI capabilities using minmax algorithms (alpha-beta pruning specifically), able to look ahead 6ply instantly.
Developed a functionally complete chess engine, built on top of a codebase provided to us by TAs. Implemented AI capabilities using minmax algorithms (alpha-beta pruning specifically), able to look ahead 6ply instantly.


geometry::linestring< P, V, A > Class Template Reference
[Geometry: geometric objects]
A
linestring (named so by OGC) is a collection (default a vector) of points.
More...
Inherits geometry::geometry_traits< P >.
List of all members.
Detailed Description
template<typename P, template< typename, typename > class V = std::vector, template< typename > class A = std::allocator>
class geometry::linestring< P, V, A >
A
linestring (named so by OGC) is a collection (default a vector) of points.
- Template parameters:
-
- Concepts:
- All algorithms work on iterator pairs, based on a container with point types fulfilling the point concepts. They will take linestring.begin(), linestring.end() but they will also take std::vector begin()/end(), or other containers.
- Examples:
-
3_linestring_example.cpp, and 5_distance_example.cpp.
Constructor & Destructor Documentation
template<typename P , template< typename, typename > class V = std::vector, template< typename > class A = std::allocator>
template<typename P , template< typename, typename > class V = std::vector, template< typename > class A = std::allocator>


web-bluetooth-demo
Connect
getCharacteristicStatus
Update Name
Error
Could not connect to bluetooth device!


---
layout: post
title: Two new interviews with Rails creator David Heinemeier Hansson
categories:
- sightings
author: marcel
published: true
date: 2006-02-13 03:08:00.000000000 +00:00
---
MySQL developer Lenz Grimmer has a quick chat with David for the MySQL developer zone.
Also, uk.BUILDER.com has a long and insightful interview. David explains how 1.0 should have really been 2.0, what the continuum of database evil entails, why Rails is useful for the enterprise and the joys of aesthetic moments with Ruby. It’s a laundry list of David’s ideology, all in one place. A window into the culture and personality driving Rails.
Choice excerpts:
- I am not a vendor. I don’t work on Rails to please other people, I work on it to please me. That’s the beauty of open source. I’m free to make technology choices unrestricted by legacy or ill-advised customers.  There are plenty of people who do buy it because they share the priorities presented.
- So if labelling me “crazy” helps you ignore the disruptions Rails is bringing to the table, I say go for it. Maybe that’s an accurate label for me in the current situation you’re in. And if there’s no interest or ability to get out of that situation, it’s probably best to write me and Rails off as crazy such that you can head into work with a smile tomorrow.
- Once a high-level component becomes big enough to be interesting, it’ll take more work to configure it than it would take to build just what you needed from scratch.
Should be required reading for anyone interested in Rails.


Posting Report
Inbox
Support
My Profile
5 posted
We have posted your resume on 5 job boards.
View posting report
6 unread
You have 6 unread messages that need your attention.
Check your inbox


Radix Content Experiment and Goal Tracking Overview
For the past few weeks I have been using Google's tools to monitor visitor behavior of the Radix website and to drive users to watch the "Meet Radix" video. The website was built with Wix.com and launched in 2017. Before the experiments, the video was originally available on the Blog page of the website. Based on user input, it was also added to the Personal Shopper page.
Have I been successful at driving my users to my goal?
Since I started tracking this goal on the morning of June 3rd, 8 visitors have completed the goal of viewing the "Meet Radix" video:
- 5 visitors played the video from the English Property Search Page
- 2 visitors played it from the Spanish Property Search page
- 1 visitor played the video from the Blog page
I can say that more people played the video after I started my experiment as there were no views in the week before starting the experiment. However, it is challenging to draw conclusions about success of the goal with such little data, especially when I look closer at it.
I'd like to say that the data shows that the Personal Shopper page is a better location for the video because almost all new views were from that Page, but it's more likely that the increase in views is directly related to my efforts to obtain data for the Content Experiment. I sent the link to the Personal Shopper page to friends and family asking them to visit the Personal Shopper Page. The views seem to be from users navigating directly to the Personal Shopper page rather than users who found their way there browsing the site from home page or other starting point. I assume the completions that originated from tools like Google Optimize and Wix represent my own sessions when I was setting up and testing the experiment. Let's move on to those results.
Content Experiment Results
Last week, I set up a Content Experiment to see if more users would click on the video if it were on the left or right side of the screen.
While Google Optimize recommends running this experiment for 2 week more, early results show the original variant (video on the left side of the page) in the lead with a 78% change of being the winner. Based on this data, I would say that having the video as the first piece of content on the page leads to more views than when the text comes before the video.
If the data continues to show that more visitors play the video in the original version of the page, I will leave the video in that position when I end the experiment.
Other Data Considerations
Are you comfortable with this data collection and usage?
I like the idea of using real data about user interaction with a website to make that website better for those users. As we've learned with our usability tests in this course, observing users is one of best ways to improve a website.
However, looking at the details that are available about individual users, such as their geographic location along with what they clicked and when they clicked it, feels invasive. Users should at least know that their interactions with the website are being recorded for analysis and given the option to opt out.
Have you been tempted to use less ethical means of converting users?
While less ethical means such as misrespresenting links, spamming, and false keywords may create a temporary increase in a goal like increasing video views, I believe this approach would backfire in the long run. It would lead to disappointed, frustrating visitors and instill a feeling of distrust that would prevent them from returning. In addition to the negative ethical implications, I don't believe those means are effective in building a strong long term business and they are not an appealing way to achieve conversions.
Are these Google's tools for tracking and analyzing visitor data usable?
Yes, I was particulary impressed with how easy it was to create an alternate version of a web page in Google Optimize for the Content Experiment. Not only does the tool track the results of the experiment, but alternate variations are created directly in the tool. Because I was working with a website built with Wix, I did encounter limitations in the integration between Wix and Google's tools. Specifically, I wasn't able to add the anti-flicker snippet to the website to prevent a potential load flicker as the variant page was loaded.
I feel like I've just scratched the surface of what Google Analytics and Google Tag Manager can do, but it was helpful to get some experience in how to use them to measure user behavior that is important for a website. When combined with disclosure and opt-out options for users, I will continue to use Google Analytics in the future.


| DOSE: T+ 0:00 |
50 mg |
rectal |
Methoxetamine |
(liquid) |
| T+ 0:00 |
50 mg |
rectal |
DPT |
(liquid) |
| T+ 0:00 |
20 mg |
rectal |
2C-C |
(liquid) |
| T+ 2:15 |
25 mg |
insufflated |
Methoxetamine |
(powder / crystals) |
Dosage
50mg Methoxetamine (MXE)
50mg Dipropyltrpytamine (DPT)
20mg 4-Chloro-2,5-dimethoxy-phenethylamine (2C-C)
Rectally
(T + 2:15)
25mg Methoxetamine (MXE)
Insufflated
Intro/Background
I am a 24 year old (130lb, 5'10') university student currently studying chemistry. I have a interest in psychedelic drugs, Most notably tryptamines, I have a liking to dissociatives, and I use stimulants occasionally. Most of my drug usage is devoted to exploring these wonderful psychedelic molecules. I am well experienced in these substances seperately, although this was a fairly high dose, because of the multiple substances, and the method of administration. The first 3 entries were made during the experience.
Administration
10:15pm
(T + 0:00)
The substances above are weighed out accurately with a miligram scale, and dissolved in 8ml of distilled water. The solution was placed in a syringe without a needle and administered rectally.
(T + 0:15)
Body effects are noted, DPT seems to have taken hold, feeling vibrations, im hearing a ticking sound, like a clock. Its building quickly.
(T + 0:30)
Intensive, keeps on building, MXE dominates mental effects, DPT gives familiar tryptamine vibrations and visuals, body load is enjoyable. Body feels incredibly numb due to analgesic effects of both MXE and DPT. Only slight noticeable 2C-C are felt so far. I begin listening to music, both DPT and MXE seem to alter msuic in their own ways to an intense degree.
---
(T + 0:45)
Both DPT and MXE peak, music sounds absolutely alien, and i begin to dissociate drift, and lose awareness of my position and body. DPT visuals are intense 3D fractal patterns, similar to DMT, but very DPTesque while with the clear, mind state of MXE. It seems that music has full control of the experience, and the trip changes mentally and visually when a song comes on. But this is very characteristic of MXE. The peak consisted of phases dropping deep into this soft fuzzy, dreamlike DPT realm, completely immersive, then occasionally coming back for a short while, sometimes due to the change or break in the music.
(T + 1:45)
The DPT begins to grow less intense, but the mxe prolonged the peak a lot longer, as the DPT diminishes more and more, the 2C-C takes control. A transition in effects is noticed, the visuals change from purplish pink, intricate tryptamine patterns, to a more solid green/blue shapes and designs. A more sedated body load is felt, and dissociation is increased greatly. It is much more difficult to move. Little change in mental effects where noticed, still very (MXE.
(T + 2:30) Insufflated 25mg Methoxetamine
The atmosphere of the trip changes greatly, MXE is wearing off, body is utterly sedated, and mental dissociation is huge. I blindly reach for the capsule containing 25mg MXE I prepared earlier, I opened it and attempted to insufflate it. I wasn't sure if I had even gotten any because of the zero pain felt when insufflating MXE. A few minutes I was sure because of the taste in my throat. The MXE hits quickly, and within 15 minutes I have begun phasing again, and fall deeply into the dissociative MXE land. The experience has a completely new atmosphere then it did earlier with the DPT.
(T + 3:30) The trip seems to die down, finally, I wasn't expecting an intensity similar to the MXE and DPT earlier. Similar in dissociation and immersiveness, but with different visuals and mind state. I definitely enjoyed the MXE and DPT segment more then the 2C C + MXE experience. Disoriented, i soon fall asleep.
Conclusion
MXE is great to combine with psychedelics, it intensifys the experience greatly, and adds an analytical like clarity, which is strange for dissociatives. I will be repeating the MXE + DPT combo, but probably as smoked freebase while after taking some methoxetamine. This was quite a concoction, and its strange to have so many substances in ones body at the same time.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


I am Sylvia. I am a computational biologist by training, a scientist at heart. After digging through DNA of embryonic stem cells during my PhD, I took to science journalism, learned the wizardry of words and ended up with data again. Asking a question, designing the right experiment, acquiring data to give an answer and visualising it with a sensible graph - that's me.


I was recently studying the Expectation Maximization algorithm from this well cited Nature article. To be honest, I found it hard to get all the maths right initially. I had to infact resort to looking up a few forums to get a clear understanding of this algorithm. I decided to take a programming approach to clear up some concepts in this problem. Another reason to do this is the amount of calculations needed in this algorithm (though not difficult, can be time consuming).
We are given two coins- A and B. Both these coins have a certain probability of getting heads. We choose one of the coin at random (with equal probability) and toss it 10 times noting down the heads-tails pattern. We also carefully account which coin was thrown. We repeat this procedure 5 times. The coin tosses observed in this case are show in the figure below in case A.
Our aim is to determine the probability of getting a head on coin A and likewise for coin B. Intuitively, if we add up the number of heads observed when A was thrown and divide it by the total number of times A was tossed, we woud get this number. This comes from the well known principle of Maximum Likelihood.
This procedure of tossing a coin which may land as either heads or tails is an example of a Bernoulli trial. As per this Wiki page, its definition is as follows:
In the theory of probability and statistics, a Bernoulli trial (or binomial trial) is a random experiment with exactly two possible outcomes, "success" and "failure", in which the probability of success is the same every time the experiment is conducted
When $n$ such trials are performed, it is called a binomial experiment. In the case of the coin toss experiment, if we have:
then we observe $k$ heads as per the following:
$${n\choose{k}} p^k(1-p)^{n-k}$$
Let us write some code to see how this function varies. We fix $n$=10 and for varying $p$ and observe how the probability distirbution(pmf) varies.
import numpy as np
from scipy import stats
import matplotlib.pyplot as plt
import seaborn as sns
from ipywidgets import StaticInteract, RangeWidget
%matplotlib inline
a=range(11)
def plot_binomial(p=0.5):
fig, ax = plt.subplots(figsize=(4,3))
y = [0]*11
for i in a:
y[i-1] = stats.binom.pmf(i, 10, p)
ax.bar(a,y,label="$p = %.1f$" % p)
ax.set_ylabel('PMF of $k$ heads')
ax.set_xlabel('$k$')
ax.set_ylim((0,0.5))
ax.set_xlim((0,10))
ax.legend()
return fig
StaticInteract(plot_binomial, p=RangeWidget(0.0,1.0,0.1))
As expected, as we increase $p$, there is a higher probability of getting more heads. Now, let us look at the Maximum likelihood problem. Say, we are given that we made $n$ coin tosses and obtained $x$ heads. Using this information and the nature of distribution, let us find what value of $p$ would have most likely resulted in this data.
If we choose the probability of heads to be $p$, the likelihood (probability) of obtaining $x$ heads in $n$ throws in our data $D $ is: $$L(D|\theta) \propto p^x(1-p)^{n-x}$$ If we differentiate this term wrt $p$ and equate to 0, we get: $$ xp^{x-1}(1-p)^{n-x} - p^x (n-x)(1-p)^{n-x-1} = 0$$ or $$ p^{x-1}(1-p)^{n-x-1}[x(1-p) - p(n-x)]= 0$$ or $$ x - xp - pn + xp = 0$$ or $$ p = \frac{x}{n}$$
This also generalizes over when multiple sets of throws are done. Thus, in the figure shown above, we find the probability of head for coins A and coins B, given the data, as : $$ P (A=head|D) = \frac{\mathrm{heads~observed~when~A~was~thrown}}{\mathrm{times~A~was~thrown}}$$ $$ = \frac{24}{24+6} = 0.8$$ Similarly, for coin B, we can find this ratio as 0.45.
Now, we come to the main problem. What if we didn't note down which coin was thrown in which iteration. Can we still find out the probabilities of heads for the different coins. It turns out that we can use the EM algorithm for this task. I would recommend reading the theory in the nature paper before resuming this section. Now, we present the programming route to EM and its different components under this setting.
 The five rows correspond to the five set of throws.
observations = np.array([[1,0,0,0,1,1,0,1,0,1],
[1,1,1,1,0,1,1,1,1,1],
[1,0,1,1,1,1,1,0,1,1],
[1,0,1,0,0,0,1,1,0,0],
[0,1,1,1,0,1,1,1,0,1]])
The true coin choice- A =True, B= False
coins_id = np.array([False,True,True,False,True])
As discussed before, if we know which coin was used when, this task reduces to Maximum likelihood.
The sets of observations corresponding to coin A can be found as:
observations[coins_id]
Number of heads recorded when A was thrown
np.sum(observations[coins_id])
Thus, the probability of head for A given the data would be:
1.0*np.sum(observations[coins_id])/observations[coins_id].size
The same quantity for coin B would be the following:
1.0*np.sum(observations[~coins_id])/observations[~coins_id].size
Now, we follow the Step b in the first figure on this page (which is Figure 1 from the Nature article)
$$\theta_A^0 = 0.6$$ $$\theta_B^0 = 0.5$$
Let us take the first group of observation. We have 5 Heads and 5 tails. PMF according to binomial distribution is given by : ${n\choose{k}}p^k(1-p)^{n-k}$. For coin A we have $p=\theta^0_A=0.6$ and $n=10$. We calculate the $pmf$ as follows:
coin_A_pmf_observation_1 = stats.binom.pmf(5,10,0.6)
coin_A_pmf_observation_1
Similarly, for coin B, we get
coin_B_pmf_observation_1 = stats.binom.pmf(5,10,0.5)
coin_B_pmf_observation_1
Since coin_B_pmf_observation_1 is greater than coin_A_pmf_observation_1, coin B is more likely to have produced the sequence of 5 Heads and 5 Tails. We now normalize these $pmfs$ to 1 and $weigh$ our observations.
normalized_coin_A_pmf_observation_1 = coin_A_pmf_observation_1/(coin_A_pmf_observation_1+coin_B_pmf_observation_1)
print "%0.2f" %normalized_coin_A_pmf_observation_1
normalized_coin_B_pmf_observation_1 = coin_B_pmf_observation_1/(coin_A_pmf_observation_1+coin_B_pmf_observation_1)
print "%0.2f" %normalized_coin_B_pmf_observation_1
We now weigh in the observations according to this ratio. Thus, for observation set 1, we have:
weighted_heads_A_obervation_1 = 5*normalized_coin_A_pmf_observation_1
print "Coin A Weighted count for heads in observation 1: %0.2f" %weighted_heads_A_obervation_1
weighted_tails_A_obervation_1 = 5*normalized_coin_A_pmf_observation_1
print "Coin A Weighted count for tails in observation 1: %0.2f" %weighted_tails_A_obervation_1
weighted_heads_B_obervation_1 = 5*normalized_coin_B_pmf_observation_1
print "Coin B Weighted count for heads in observation 1: %0.2f" %weighted_heads_B_obervation_1
weighted_tails_B_obervation_1 = 5*normalized_coin_B_pmf_observation_1
print "Coin B Weighted count for tails in observation 1: %0.2f" %weighted_tails_B_obervation_1
We can similarly find out the weigted count in each observation set for both coin A and B. For now, we will pick up the numbers from the paper.
We now take the sum of weighted count of heads for both coin A and B. For coin A, we have 21.3 heads and 8.6 tails. Thus, we get the probability of getting a head at the end of this iteration as:
21.3/(21.3+8.6)
We can find the same quantity for coin B as well. Next, we repeat the same procedure using these latest calculated probabilities of obtaining heads for coins A and B.
Let us now write a procedure to do a single iteration of the EM algorithm. The function takes in as argument the following:
and outputs the new set of priors based on EM iteration.
def em_single(priors, observations):
"""
Performs a single EM step
Arguments
---------
priors : [theta_A, theta_B]
observations : [m X n matrix]
Returns
--------
new_priors: [new_theta_A, new_theta_B]
"""
counts = {'A':{'H':0,'T':0}, 'B':{'H':0,'T':0}}
theta_A = priors[0]
theta_B = priors[1]
# E step
for observation in observations:
len_observation = len(observation)
num_heads = observation.sum()
num_tails = len_observation - num_heads
contribution_A = stats.binom.pmf(num_heads,len_observation,theta_A)
contribution_B = stats.binom.pmf(num_heads,len_observation,theta_B)
weight_A = contribution_A/(contribution_A+contribution_B)
weight_B = contribution_B/(contribution_A+contribution_B)
# Incrementing counts
counts['A']['H']+= weight_A*num_heads
counts['A']['T']+= weight_A*num_tails
counts['B']['H']+= weight_B*num_heads
counts['B']['T']+= weight_B*num_tails
# M step
new_theta_A = counts['A']['H']/(counts['A']['H']+counts['A']['T'])
new_theta_B = counts['B']['H']/(counts['B']['H']+counts['B']['T'])
return [new_theta_A, new_theta_B]
This procedure calls the single EM iteration untill convergence or some stopping condition. We specificy two stopping conditions and the procedure stops when either condition is met.
def em(observations, prior, tol=1e-6, iterations=10000):
import math
iteration = 0
while iteration<iterations:
new_prior = em_single(prior, observations)
delta_change = np.abs(prior[0]-new_prior[0])
if delta_change<tol:
break
else:
prior = new_prior
iteration+=1
return [new_prior, iteration]
Let us run the algorithm for the priors used in the paper
em(observations, [0.6,0.5])
Great! Our results match exactly! It took 14 iterations of the EM algorithm to reach this value.
What if we reverse the priors for A and B
em(observations, [0.5,0.6])
Ok. EM does not have a notion of A and B!! For it, there exists two coins and it agains finds the same results.
What if prior for both A and B were equal?
em(observations, [0.3,0.3])
So, this clearly is not a very good initialization strategy!!
What if one of the priors is very close to 1
em(observations, [0.9999,0.00000001])
So EM is still smart enough!
If you have any suggestions feel free let me know.


{% extends "themes/" + sysSettings.systemTheme + "/layout.html" %} {% block head %}
To view this video please enable JavaScript, and consider upgrading to a web browser that supports HTML5 video
{{clip.description|markdown}}


git obliterate
Delete specific files and erase their history from a Git repository.
Part of `git-extras`.
More information: home page
- Erase the existence of specific files:
git obliterate file_1 file_2 ...
- Erase the existence of specific files between 2 commits:
git obliterate file_1 file_2 ... -- commit_hash_1home page.commit_hash_2


Welcome on wallabag documentation. Thanks to this tool, we hope that you can easily use wallabag and work with it.
Today, we have two documentations: for users and for developers. Just select your language and good reading!
Feel free to contribute to this documentation. It's your documentation.