Kibana is an open source (Apache Licensed), browser based analytics and search interface to Logstash and other timestamped data sets stored in ElasticSearch. With those in place Kibana is a snap to setup and start using (seriously). Kibana strives to be easy to get started with, while also being flexible and powerful, just like Logstash and Elasticsearch. Check it out ...
Kibana was created to search logs and machine generated data. It plays extra nice with Logstash, using Logstash's time stamped indices to query Elasticsearch in the most efficient way.
Find 'Mozilla' in any field of any event, even if you never used a Logstash filter to define a single field
Mozilla
If you've defined a field called agent to store user agent strings:
agent:"Mozilla Firefox"
We can also search numerical ranges. Lets find every zip file downloaded larger than 300 bytes
extension:zip AND bytes:[300 TO *]
Kibana 3 ships with a great interface to Logstash, but it doesn't stop there. Design your own custom dashboards with configurable panels that can be grouped by role. The possibilities are endless and we're adding fun new features, panels and visualizations all the time. Charts and panels are fully interactive with features like drill down, range selection and customization. They're also totally sharable and saveable.
You're not here to write code. You're here to get things done. Kibana 3 allows you to build custom dashboards right in your browser without writing a line of code. Dashboards are built on a grid system with fixed height rows and variable width panels that are given a 'span' of 1 through 12 depending on how much of the screen you want them to use. And the best part: Its all point + click + awesomeness.
By now you're thinking: Oh great, another black box that I can't integrate with my configuration management system. No way homefry. Under all the slick, colorful, Bootstrap based control, we're cooking up fresh JSON, and you know you can build that programatically. Drop you totally awesome puppet/chef/cfengine generated dashboard in dashboards/myawesomeness
and point your browser at http://localhost:8000/index.html#/dashboard/file/myawesomeness
. Who's awesome? You're awesome.


Data. Analysis. Display.
Search by street or time to find meters that suit your needs!
Blogs from our contributors
Uyen contributed to back end development of the google map and integration of all features.
View BlogAsk questions! Chat about MIT! Learn about data! Contact us!


Are you Vaccinated against COVID-19 ?
Vaccines save millions of lives each year. Vaccines work by training and preparing the body’s natural defences – the immune system – to recognize and fight off the viruses and bacteria they target. After vaccination, if the body is later exposed to those disease-causing germs, the body is immediately ready to destroy them, preventing illness.


WITNESS LIST Land & Resource Management Committee March 17, 2003-10:00A HB 568 For: Barnett, Richard (Self) Bray, Robert Harold (Self) Doescher, Charles (CAFA) Doescher, Pat (Apache Iron Metal & Auto Salvage, Inc.) Graybeal, William (Self) Hobbs, Darlia (Self and CAFA/Twin Points Resort) Hobbs, Jr., Robert A. (Self) Lee, Shirley W. (Self and Long Island Village) Melton, Clyde (Self) Picht, Clyde (Self) Rekeweg, Alice J. (Self) Robinson, James W. (Self) Against: Brock, Euline (Denton City Council & City of Denton) Crolley, Bill (Texas Chapter of American Planning Association) Ewart, Robert (City of Dayton) Hammel, David (City of Parker, TX) Horton, Susan (Texas Municipal League) Jeffers, James P. (City of Plainview) Morales, William V. (Self) Nielson, Thomas (City of Round Rock, TX. Mayor Pro Tem) Palumbo, Dorothy (City of Denton) Shepherd, James E. (City of Parker, TX) Stephens, John (City of Austin) Vining, Joe (City of Round Rock) Registering, but not testifying: For: Anderson, Ron C. (Self and CAFA) Gerstenschlager, MerryLynn (Self and Texas Eagle Forum) Hobbs, John D. (Self) Howe, Billy (Texas Farm Bureau) Hunnicutt, Margaret (Self) Morris, Wanna G. (Self) Against: Martinez, Mario A. (City of Laredo) HB 568 Committee Substitute (Jones, Jesse) For: Austin, John (Self) Bray, Robert Harold (Self) Collins, Darrell D. (Self) Doescher, Charles (CAFA) Doescher, Pat (Apache Iron Metal & Auto Salvage, Inc.) Eubanks, Jackie (Self) Gaines, Jimmy (Texas Landowners Council, Inc.) Goodnight, Mamie Frances Spivey (Self) Goodnight, S.W. (Self) Graybeal, William (Self) Haas, Harvey J. (Self) Harris, Mitchell (Self and Ag Texas Farm Credit Services) Henning, Tom (Self) Hobbs, Darlia (Self and CAFA/Twin Points Resort) Hobbs, Jr., Robert A. (Self) Jackson, Deborah (Self) Lane, Larry (Self) Lee, Shirley W. (Self and Long Island Village) Lueck, Jerry (Self) McHale, James P. (Self) Melton, Clyde (Self) Pivec, Stephanie (Self) Pope, C. Ilene (Self) Rekeweg, Alice J. (Self) Rice, Ruby (Self) Smithey, Mary Sue (Self) Tarver, Maudie (Self) Turley, Gary (Self) Uriegas, Mary (Self) Wood, Kathleen (Self) Zimmerman, Don (Self) Against: Arnold, Denny (Self and Mayor & City Council City of Victoria) Callaway, James (City of Sugarland) Crolley, Bill (Texas Chapter of American Planning Association) Cryan, Charles (College Station City Council) Ewart, Robert (City of Dayton) Garza, Jesus H. (City of San Antonio) Gertson, Richard (City of Abilene) Hawk, Curtis (Self and City of Burleson) Lendman, Louis A. (City of San Antonio, Texas) Martin, Tom (City of Lubbock) Murray, Jim (Self and City of Vernon) Nielson, Thomas (City of Round Rock, TX. Mayor Pro Tem) Stretcher, Keith (City of Midland) Thurmond, James (City of Missouri City) Tobias, Wayne (Self) Vining, Joe (City of Round Rock) Registering, but not testifying: For: Anderson, Ron C. (Self and CAFA) Cassidy, Terence P. (Self) Collins, Patty (Self) Haney, Bobby D. (Self) Haney, Ora Wyvon (Self) Hawkins, Carole (Self) Hawkins, George (Self) Howe, Billy (Texas Farm Bureau) Hunnicutt, Margaret (Self) Hutton, Denise L. (Self) McHale, Patricia (Self) Morris, Wanna G. (Self) Phillips, Calvin L. (Self) Rains, Charels (Self) Rice, Chuck (Self) Smith, Jennan "Chick" (Self) Smith, Robert E. (Self) Spradley, Jean (Self) Zembrod, Tom (Self) Against: Aghamalian, Brandon (City of Fort Worth) Armendariz, Ricardo (City of El Paso) Croslin, Peggy (City of Cedar Park) Emal, Matthew (City of Houston) Martinez, Mario A. (City of Laredo) Place, Allen (City of Copperas Cove) HB 584 Against: Crolley, Bill (Texas Chapter of American Planning Assoc.) Registering, but not testifying: Against: Hammel, David (City of Parker, Texas) HB 584 Committee Substitute (Jones, Jesse) Against: Shepherd, James E. (City of Parker, Texas) HB 609 Against: Horton, Susan (Texas Municipal League) Lendman, Louis A. (City of San Antonio, Texas) Registering, but not testifying: For: Gerstenschlager, MerryLynn (Self and Texas Eagle Forum) Against: Brock, Euline (Denton City Council, City of Denton) Crolley, Bill (Texas Chapter of American Planning Assoc.) Emal, Matthew (City of Houston) Garza, Jesus H. (City of San Antonio) Hawk, Curtis (Self and City of Burleson) Palumbo, Dorothy (City of Denton) Stephens, John (City of Austin) HB 662 For: Glenn, Eric (Self) Against: Garza, Jesus H. (City of San Antonio) Lendman, Louis A. (City of San Antonio, TX) On: Pivec, Sephanie (Self) Registering, but not testifying: Against: Crolley, Bill (Texas Chapter of American Planning Assoc.) Emal, Matthew (City of Houston) Shepherd, James E. (City of Parker, TX) HB 1197 For: Baker, Rex (City of Dripping Springs) Gaines, Jimmy (Texas Landowners Council, Inc.) Garza, Jesus H. (City of San Antonio) Lendman, Louis A. (City of San Antonio, TX) Registering, but not testifying: For: Littlefield, Sue (Self) Against: Crolley, Bill (Texas Chapter of American Planning Assoc.) Shepherd, James E. (City of Parker, Texas) HJR 36 For: Glenn, Eric (Self) Against: Garza, Jesus H. (City of San Antonio) Lendman, Louis A. (City of San Antonio, TX) On: Pivec, Sephanie (Self) Registering, but not testifying: Against: Emal, Matthew (City of Houston) Shepherd, James E. (City of Parker, TX)


Implementing Status Callbacks
GNSDK allows you to implement status callback functions that are called at certain points during ongoing operations. Implementing a callback function allows you to monitor an operation's status, and cancel it if necessary. You can set a callback for any of the following operations:
- MusicID queries
- Enriched content fetches
- Locale and List loading and updates
- Mood presentation handle creation
- Submit parcel handle creation
- Video queries
For example, when creating a MusicID query, you can register a status callback, which GNSDK calls at different stages. This allows you to display query progress to users or respond to various conditions.
Displaying Operation Status
To create a status callback, implement a function with the following prototype:
typedef gnsdk_void_t (GNSDK_CALLBACK_API *gnsdk_status_callback_fn)( gnsdk_void_t* user_data, gnsdk_status_t status, gnsdk_uint32_t percent_complete, gnsdk_size_t bytes_total_sent, gnsdk_size_t bytes_total_received, gnsdk_bool_t* p_abort );
When this function is called, the status parameter contains a value indicating operation status, such as gnsdk_status_begin, gnsdk_status_progress, or gnsdk_status_complete. For example, a status callback might respond to the following statuses to display operation progress:
switch(status) { case gnsdk_status_begin: printf("\nBegin..."); break; case gnsdk_status_connecting: printf("\nConnecting..."); break; case gnsdk_status_sending: printf("\nSending..."); break; case gnsdk_status_receiving: printf("\nReceiving..."); break; case gnsdk_status_progress: printf("\nIn progress..."); break; case gnsdk_status_complete: printf("\nComplete\n"); break; default: break; }
For a full list of status values, see “Status Callbacks” in the GNSDK C API Reference.
Registering a Status Callback
A status callback is registered when you create a query or load or update a locale or list. The following functions accept a status callback as a parameter:
- gnsdk_musicid_query_create()
- gnsdk_link_query_create()
- gnsdk_manager_locale_load()
- gnsdk_manager_locale_update()
- gnsdk_manager_list_retrieve()
- gnsdk_manager_list_update()
- gnsdk_moodgrid_presentation_create()
- gnsdk_submit_parcel_create()
- gnsdk_video_query_create()
canceling Operations
To cancel a query or large operation that is in progress, you can set the status callback's p_abort parameter to GNSDK_TRUE. In response, the query returns an abort error.
Example: Using a Callback
Sample Application: musicid_file_libraryid/main.c
This example demonstrates using a status callback function for a MusicID query.


Created by Margaryta Tyshkevich, Olesya Yaremenko and Roman Kobzar.
Link to the project code: Notepad++ Theme Editor on GitHub
Implemented plugins / libraries, created by other developers :
To install a theme for your Notepad++ ...
-
Move its XML file into your C:\Program Files (x86)\Notepad++\themes folder.
-
Restart Notepad++ ...
-
Choose the theme from a drop-down list in Settings > Style Configurator... .


Attach importance to moral training in schools - Onyinah
by Boakye Baafi, GNAKumasi, Nov. 25, GNA – Mr Joseph Kwabena Onyinah, former Ashanti Regional Director of Education, has urged heads of senior high schools to attach greater importance to the moral training of students since that was key to academic excellence.
He said preparing the students adequately to observe high moral values would not only help the youth to cultivate positive attitudes towards life, but would also help them to appreciate God’s creation and respect for the environment.
Mr Onyinah was speaking at the launch of the 40th Anniversary celebration of the Association of Catholic Heads of Higher Institutions (ACHHI) in Kumasi.
The Association was formed 39 years ago to bring all heads of Catholic higher institutions together to promote holistic quality education through Christian principles.
Mr Onyinah called for unity among members and advised them to focus on helping students to develop critical thinking skills, while improving standards of education in the country.
Reverend Father Nicholas Apetorgbor, the National President of the Association, said it would continue to partner with the Catholic Church and the Ghana Education Service to provide quality education to students.
GNA


What's new?
Thank you for upgrading. We are constantly working to improve this app.
Here are some new features that have been added in this release.
New in Version 2.0
New UI for tablets
Improved UI for latest android version
New in Version 1.0.1
Due to a bug, download of puzzles was limited. Now the download limit is removed.
Error while deleting (Purging) completed games is resolved.
New in Version 1.0
This is the first version.
Report bugs
To report a bug in the app, please contact the developer by Email.


我活在世上，无非想要明白些道理，遇见些有趣的事。 ——王小波
I'm talent, 27 years old, and now as a F2E.
In my spare time, I like to research latest technologies in the front-end.
In addition, I also have many other hobbies, which sometimes surprize others.
......
I like running, and I'm a marathoner.
I like reading, especially Japanese mystery novels.
I like fighting, and I always appear in various boxing halls.
I like Nihongo, and I passed JLPT N2 test through self study.
I like nunchakus, and I provided technical guidance to the nunchakus association in my university for almost two years.
I like performance, and I involved writing and producing for several micro films.
......
The domain of this site is registered on GoDaddy, the site is hosted in AWS, and the source code is in Github.
As you see, the UI of this site is very simple, because the purpose of this site is just try the latest technologies.
I will improve this site continuously later.
Of course, maybe there are also some notes about my life or my work.
I love sociality very much, below are some of my most commonly used SNSs:
I also have FB and Twitter, and I use them occasionally:
Moreover, I have a tech bloghere.
You can also contact me via email:
houritsunohikari at gmail.com


This is a demo of using static content with the XAPI Launch platform. When you click the button, your LRS will include the statement.
This is a link to another page on another domain. Since the attribute "courseLink" is set to "true" the launch library will transport your launch token to this content. Note that since the page you are on now has already exchanged the token for a session cookie from the client, the next page in the course must also use client side tracking.


Demonstrates splitting of line features.
The split control can be configured to listen for edits on any vector layer or it can allow for creation of temporary sketch features. Modified or newly drawn features will be used to split existing features on any target layer. This example shows the split control configured to use temporary sketches for the split.


# each-async [![Build Status](https://travis-ci.org/sindresorhus/each-async.svg?branch=master)](https://travis-ci.org/sindresorhus/each-async)
> Async concurrent iterator (async forEach)
Like [async.each()](https://github.com/caolan/async#eacharr-iterator-callback), but tiny.
I often use async.each() for doing async operations when iterating, but I almost never use the other gadzillion methods in async.
Async iteration is one of the most used async control flow patterns.
## Install
Download [manually](https://github.com/sindresorhus/each-async/releases) or with a package-manager.
`bash
$ npm install --save each-async
`
`bash
$ bower install --save each-async
`
`bash
$ component install sindresorhus/each-async
`
## Usage
### Node.js
```js eachAsync([‘foo’,’bar’,’baz’], function (item, index, done) {
console.log(item, index); done();
- }, function (error) {
- console.log(‘finished’);
}); //=> foo 0 //=> bar 1 //=> baz 2 //=> finished ```
## API
### eachAsync(array, callback, finishedCallback)
#### array
The array you want to iterate.
#### callback(item, index, done)
A function which is called for each item in the array with the following arguments:
- item: the current item in the array
- index: the current index
- done([error]): call this when you’re done with an optional error. Supplying anything other than undefined/null will stop the iteration.
Note that order is not guaranteed since each item is handled concurrently.
#### finishedCallback(error)
A function which is called when the iteration is finished or on the first error. First argument is the error passed from done() in the callback.
## License
[MIT](http://opensource.org/licenses/MIT) © [Sindre Sorhus](http://sindresorhus.com)


The gallery is a small collection of work that I have done in ceramics. It is organized by time, roughly newer to older.


There are given all popular quotes, motivational quotes, inspirational quotes, love quotes, life quotes, funny quotes, positive quotes, teacher quotes, success quotes and happiness quotes.
Abraham Lincoln
Albert Einstein
Buddha
William Shakespeare
Steve Jobs
Mahatma Gandhi
Bob Marley
Marilyn Monroe
Joseph Addison
Mary Kay Ash
Sparky Anderson
Richard Bach
Francis Bacon
Mark Twain
Aristotle
Walt Disney
Bruce Lee
Benjamin Franklin
Muhammad Ali
Jim Morrison
Narendra Modi
Aesop
Susan B Anthony
Thomas Aquinas
James A Baldwin
Lucille Ball
Maya Angelou
Julius Caesar
Joseph Campbell
Jesus Christ
Winston Churchill
Confucius
Barack Obama
Chanakya
Louisa May Alcott
Arthur Ashe
Isaac Asimov
Honore de Balzac
Amelia Barr
Bill Cosby
Indira Gandhi
Abdul Kalam
Bill Gates
Khalil Gibran
Audrey Hepburn
Swami Vivekananda
Mother Teresa
Sholom Aleichem
Francis of Assisi
Kevyn Aucoin
Thomas Jefferson
Michael Jordan
John Keats
Helen Keller
John F Kennedy
Martin Luther King Jr
Ansel Adams
Douglas Adams
Woody Allen
Saint Augustine
Marcus Aurelius
Dalai Lama
John Lennon
C S Lewis
Vince Lombardi
Martin Luther
Nelson Mandela
John Adams
John Quincy Adams
Henri Frederic Amiel
Jane Austen
Sai Baba
Love
Life
Inspirational
Motivational
Happiness
Success
Positive
Friendship
Marriage
Poetry
Fear
Religion
Time
Wisdom
Philosophy
Dreams
Women
Freedom
Truth
Work
Death
Romance
Attitude
God
Men
Peace
Knowledge
Education
Learning
Liberty
Power
Reading
Thinking
Business
Patriotism
©Copyright 2015-2017 www.quoteperson.com. All rights reserved.


As of this afternoon (26th Jan), the OEM website and forum was moved to it's own dedicated server, which should overcome the issues which we have encountered over the weekend, and hopefully boost performance.
If you encounter any problems, or wish to comment on the new installation, then please post below.
Paul Reed
Re: New OEM server!
We are now on the new server as of 12:49 26th of January
Re: New OEM server!
Looks good from here Trystan! Logged in ok, everything seems to be where it should (aside from avatars). I have just cut and pasted a "thread(PART 2)" comment back to it's intended thread without a problem, great stuff!
Paul
Re: New OEM server!
Thanks Paul! yes just trying to work out this avatar issue.
Re: New OEM server!
Seems to be quicker too!
PS - the server time seems to be +1hr when not logged in.
EDIT - I have also noticed the site is only available to my smartphone via the IP address, even if I "request desktop site" I can only reach your "new IP announcement page" via any homepage links and any navigation from the OEM homepage (reached via IP) results in a 404. ////Now OK\\\\
Paul
Re: New OEM server!
Agree, it's much faster!
I can access the new site via smartphone OK, but I'm 4hrs behind your post, and probably now the new IP has fully propagated.
Paul
Re: New OEM server!
Definite improvement in speed!
Re: New OEM server!
Great to hear it feels faster, it is running on quite a powerful dedicated machine :) same spec as emoncms.org. Interestingly the server load is 0.05 which is significantly lower than the average load on emoncms.org.
Avatars should now work ok, there was a permissions issue.
Re: New OEM server!
Not sure if profile image changing works though.. please list any other issues you see and I will look into them
Re: New OEM server!
Hi, I'm not able to post to an on going discussion. /home/forums/general discussion/what i can monitor
I can edit the existing posts but not add a reply.
Update on this, I'm not able to post to any forum topics except this one?
////Above issues sorted\\\\
Also i'm not getting notifications of private messages or reply's to forum comments, this was a problem prior to the server change.
Re: New OEM server!
Grant, I can see 9 posts on that topic since mine, starting "Not sure about anything of the other inputs, as I'm not sure how to messure them....", but none are held for moderation. Have you checked your browser cache?
Re: New OEM server!
Hi Grant, you should be able to post OK now, I've tweaked your forum account settings & published the posts that you made earlier.
Let me know if you still have problems.
Paul
Trystan - Grant has a point about the lack of notifications, is that something which could be sorted now you have more control of the server environment?
Re: New OEM server!
It appears to be back and working. thanks, still a problem with email notifications, but this was a problem prior to the server.
Re: New OEM server!
Smartphone access is indeed sorted now.
Re: New OEM server!
Comment notifications are now working!! I reset everyone's comment notification settings to off to stop a flurry of unexpected emails. To enable just set the "Notify me when new comments are posted" to either all comments or replies to my comment at the bottom of the post or in your user account settings.
Re: New OEM server!
It seems to be working for me, however I'm getting emails about posts where I haven't posted!
My settings are;
At the bottom of every thread, I see;
Paul
Example email extract below where I haven't posted;
Greetings, Paul Reed.
|
| Your subscription on OpenEnergyMonitor
| notifies you of new comments:
|
| Category: Questions and support
| Author: mtran
| Title: CT3 delayed readings?
| Link: http://openenergymonitor.org/emon/node/10089
| Direct unsubscribe link (content type):
|
http://openenergymonitor.org/emon/s/del/node/type/forum/-1/238/95a37a00c...
| --------------------------------------------------------------------
| New comment:
| Author: mtran
| Title: Which sketch are you using,
*Which sketch are you using, and has it been changed?*
I'm running the 3 phase one from here ->
Re: New OEM server!
As am I, it would seem that all recent posting are generating notifications, could get messy !
Re: New OEM server!
Ah might have missed a step, it should now work ok.
Re: New OEM server!
The forum is so quiet it's hard to test! but I just got the email below, again for a topic which I haven't subscribed to or posted in.
The options at the bottom of the thread are unchecked, which suggests that it shouldn't have been sent.
Paul
| Greetings, Paul Reed.
|
| Your subscription on OpenEnergyMonitor
| notifies you of new comments:
|
| Category: Questions and support
| Author: mtran
| Title: CT3 delayed readings?
| Link: http://openenergymonitor.org/emon/node/10089
| Direct unsubscribe link (content type):
|
http://openenergymonitor.org/emon/s/del/node/type/forum/-1/238/95a37a00c...
| --------------------------------------------------------------------
| New comment:
| Author: Robert Wall
| Title: Note: You have not answered
Note: You have not answered the frequency question yet. That sketch is for a
50 Hz system
Re: New OEM server!
Déjà vu...
I reckon quite a few people have gone away as a consequence of "the troubles". I can't comment as I found the advisory emails more trouble that they were worth. But I recognise that wouldn't be the case for someone with a specific question or a specific interest in one thread.
Re: New OEM server!
I got an alert for the test post you made Robert, despite again not subscribing or posting in the thread. I don't think its fixed.
Is anyone else experiencing the same issue?
Paul
Re: New OEM server!
I have subscribe to two threads that i have commented on (one i started) and I'm not receiving any notifications.
Re: New OEM server!
I have not subscribed to any threads, however am receiving many notifications on my email address every hour. I have tried unsubscribe but they still keep coming in. Can anyone held to stop these please.
Many Thanks.
Re: New OEM server!
I have not seen a notification at all. I've not marked a thread, and in my account settings I have "Receive content follow-up notification e-mails" unticked and "Receive comment follow-up notification e-mails" set to "No notifications".
Re: New OEM server!
Thanks Robert
Just checked my account settings and they are the same as yours but they are still coming in. I seem to be getting a copy of every new message on any topic ??????
Re: New OEM server!
Same here Roy, you're not alone!
It will get sorted.
Paul
Re: New OEM server!
I am also getting loads of email notifications and I've never been on this site for 2 years. I've UNTICKED notification box but still my inbox is filling with these emails
Re: New OEM server!
Hi Paul
I am sure it will get sorted. Thanks for the help..
Roy
Re: New OEM server!
Would it not be better to turn off notifications until this is sorted out, a lot of people will be getting p'ed off with multiple emails from oem and may be deleting their accounts in frustration.
Re: New OEM server!
Hi, I get also dozens of Notifications. that's not nice. In my Accoutsetting ist "no Notifications" selected.
Re: New OEM server!
Very sorry about the comment notifications, i have disabled the module for now.
Re: New OEM server!
I'm still receiving them!
Re: New OEM server!
Sorry, don't work actually. I get Notification from the following Threads:
CT3 delayed readings? http://openenergymonitor.org/emon/node/10089 (last Mi 28.01.2015 12:45)
New OEM server! http://openenergymonitor.org/emon/node/10058 (last Mi 28.01.2015 12:45)
Te "Direct unsubscribe link (category)" gets the message "The requested page could not be found."
Good luck for solving this ;-)
Re: New OEM server!
Sorry again, I've disabled further modules that may be related, let me know if any more come through.
Re: New OEM server!
another test comment, any emails?
Re: New OEM server!
No, they seem to be successfully disabled now.
Paul
Re: New OEM server!
Ok, I had two modules enabled 'comment notify' and 'subscriptions' which I missed. Comment notify is now on while subscriptions are disabled. Interesting to hear if the comment notifications now work as expected.
Re: New OEM server!
Not sure if this is "new server" related or not but I have just linked to this thread
http://openenergymonitor.org/emon/node/5736 and found the in-line images not being displayed, the links at the bottom of the post seem to work ok though.
Paul
EDIT - Scrap that! it seems they are "dropbox" links so may no longer be available.
2nd EDIT - The dropbox url's suggest the inline images were in fact weekly.png and vis-profile2.png, could the url's be edited to point to the local copy? (sorry this is posted in wrong place I wasn't aware at the time)
Re: New OEM server!
Done!
Re: New OEM server!
Re last post by Trystan above; can someone post a reply below so I can test notifications.
Thanks
Paul
Re: New OEM server!
test post
Re: New OEM server!
Thanks Grant - Yes it does work now, and a notification email was received OK.
Paul
----------------------------------------------------------
Hello Paul Reed, grantwatson has commented on: New OEM server!. You can view
the comment at the following url
http://openenergymonitor.org/emon/node/10058#comment-27205
Re: New OEM server!
Hi (forum admins/mods),
As you'll no doubt see, I've inadvertently made multiple duplicate posts in the "Hi from New Zealand" thread thinking I was doing something wrong (or the new forum was playing up).
What I didn't notice was, that there was a moderation notice at the top of the screen and this is the reason for multiple and duplicate posts, which makes me wonder if the moderation notice could be more prominent (or I need my eyes checked)?
BTW: if you wouldn't mind approving just the last post and dumping the rest, that would be appreciated.
Cheers
//Done - Paul
Re: New OEM server!
Thanks... I'll try to pay a little more attention next time - I promise :)
Re: New OEM server!
No worries, I've also changed your forum account, so hopefully you wont have repeat problems.
Paul
Re: New OEM server!
I don't seem to be getting any email notifications of PMs even though the box is ticked in the settings, Infact I don't seem to have a choice. If I clear the tick-box to disable PM notifications the tick reappears when the page is saved. Any ideas, anyone ?
Paul
Re: New OEM server!
There are 2 types of notifications, Subscriptions & Comments, and I understand that only 'comments' is currently activated, so I suspect that PM notifications will be lumped in with Subscriptions.
When Trystan activated Subscriptions, for some reason we got emails constantly, so it's been switched off.
It would be good to get both alerts working....
Paul
Re: New OEM server!
Darn! The PM notifications would have been very good.


For More Info
Unfortunately, I'm not able to share this project with everyone. For additional details, please contact me at<EMAIL_ADDRESS>At EY, I worked with the Design team on an engagement to design a banking platform for a large financial services client. Coming onto the engagement part way, I was able to look at existing designs and provide feedback on how these designs could be improved. I was also tasked with designing and creating wireframes for certain aspects and pages in responsive platforms. I took ownership in consolidating wireframes into a single Sketch file, and created an interactive prototype in Invision to be presented in client meetings.
Tools Used: Sketch, Invision, Zeplin
Unfortunately, I'm not able to share this project with everyone. For additional details, please contact me at shenemilie@gmail.com.


Video Record
Start camera
StartRecording
Play
Download
Media Stream Constraints options
Echo cancellation:
View source on GitHub


Mpumalanga Bar celebrate formal launch
Following the official opening of the new Mpumalanga High Court by President Cyril Ramaphosa on November 8, the Mpumalanga Society of Advocates (Mpumalanga Bar) held its Annual Bar Dinner on Friday at Emnotweni.
by Desiré FourieMBOMBELA – The dinner was held in honour of chairman, Adv William Mokhare, SC, and also as the formal launch of the Mpumalanga Bar, which has existed for three years.
Mpumalanga is the last province in the country to launch the Society of Advocates under the auspices of the General Council of the Bar.
ALSO READ: Tourists are supposedly being targeted by criminals
The launch was supported by Premier Refilwe Mtshweni-Tsipane, Judge President of the Mpumalanga Division of the High Court, Francis Legodi, as well as other judges and representatives from organisations in the legal fraternity, such as the Black Lawyers Association, National Association of Democratic Lawyers (Nadel) and the Mbombela Attorneys Association.
“The launch is a big milestone for justice,” Adv Zodwa Gumede of the Mpumalanga Bar, who organised the event, told Lowvelder.
“The people of Mpumalanga will no longer have to travel hundreds of kilometres to Pretoria or Johannesburg for the services of advocates, as the Mpumalanga Bar is home to skilled advocates. This means that the constitutional imperative of access to justice is no longer a pipe dream, but a reality for the people of the province.”
During the evening, the Mpumalanga Bar also congratulated their nine newly graduated advocates, and also the Pupil of the Year, Wilma Kasa.
ALSO READ: Barbertonians are urged to use water sparingly amid availability concerns


|
Drake
|
VectorBase is an abstract base class that real-valued signals between Systems and real-valued System state vectors must implement.
Classes that inherit from VectorBase will typically provide names for the elements of the vector, and may also provide other computations for the convenience of Systems handling the signal. The vector is always a column vector. It may or may not be contiguous in memory. Contiguous subclasses should typically inherit from BasicVector, not from VectorBase directly.
| T | The scalar type, which must be one of the default scalars. |
#include <drake/systems/framework/vector_base.h>
Public Member Functions | |
| virtual | ~VectorBase () |
| virtual int | size () const =0 |
| Returns the number of elements in the vector. More... | |
| T & | operator[] (int index) |
| Returns the element at the given index in the vector. More... | |
| const T & | operator[] (int index) const |
| Returns the element at the given index in the vector. More... | |
| const T & | GetAtIndex (int index) const |
| Returns the element at the given index in the vector. More... | |
| T & | GetAtIndex (int index) |
| Returns the element at the given index in the vector. More... | |
| void | SetAtIndex (int index, const T &value) |
| Replaces the state at the given index with the value. More... | |
| virtual void | SetFrom (const VectorBase< T > &value) |
Replaces the entire vector with the contents of value . More... | |
| virtual void | SetFromVector (const Eigen::Ref< const VectorX< T >> &value) |
Replaces the entire vector with the contents of value . More... | |
| virtual void | SetZero () |
| virtual VectorX< T > | CopyToVector () const |
| Copies this entire VectorBase into a contiguous Eigen Vector. More... | |
| virtual void | CopyToPreSizedVector (EigenPtr< VectorX< T >> vec) const |
| Copies this entire VectorBase into a pre-sized Eigen Vector. More... | |
| virtual void | ScaleAndAddToVector (const T &scale, EigenPtr< VectorX< T >> vec) const |
Adds a scaled version of this vector to Eigen vector vec , which must be the same size. More... | |
| VectorBase & | PlusEqScaled (const T &scale, const VectorBase< T > &rhs) |
Add in scaled vector rhs to this vector. More... | |
| VectorBase & | PlusEqScaled (const std::initializer_list< std::pair< T, const VectorBase< T > & >> &rhs_scale) |
| Add in multiple scaled vectors to this vector. More... | |
| VectorBase & | operator+= (const VectorBase< T > &rhs) |
Add in vector rhs to this vector. More... | |
| VectorBase & | operator-= (const VectorBase< T > &rhs) |
Subtract in vector rhs to this vector. More... | |
| virtual void | GetElementBounds (Eigen::VectorXd *lower, Eigen::VectorXd *upper) const |
| Get the bounds for the elements. More... | |
Does not allow copy, move, or assignment | |
| VectorBase (const VectorBase &)=delete | |
| VectorBase & | operator= (const VectorBase &)=delete |
| VectorBase (VectorBase &&)=delete | |
| VectorBase & | operator= (VectorBase &&)=delete |
Protected Member Functions | |
| VectorBase () | |
| virtual const T & | DoGetAtIndex (int index) const =0 |
| Implementations should ensure this operation is O(1) and allocates no memory. More... | |
| virtual T & | DoGetAtIndex (int index)=0 |
| Implementations should ensure this operation is O(1) and allocates no memory. More... | |
| virtual void | DoPlusEqScaled (const std::initializer_list< std::pair< T, const VectorBase< T > & >> &rhs_scale) |
| Adds in multiple scaled vectors to this vector. More... | |
|
delete |
|
delete |
|
virtual |
|
protected |
Copies this entire VectorBase into a pre-sized Eigen Vector.
Implementations should ensure this operation is O(N) in the size of the value.
| std::exception | if vec is the wrong size. |
|
virtual |
Copies this entire VectorBase into a contiguous Eigen Vector.
Implementations should ensure this operation is O(N) in the size of the value and allocates only the O(N) memory that it returns.
Reimplemented in BasicVector< T >, BasicVector< double >, BasicVector< AutoDiffXd >, and BasicVector< drake::symbolic::Expression >.
|
protectedpure virtual |
Implementations should ensure this operation is O(1) and allocates no memory.
The index has already been checked for negative, but not size.
Implemented in BasicVector< T >, BasicVector< double >, BasicVector< AutoDiffXd >, BasicVector< drake::symbolic::Expression >, Subvector< T >, and Supervector< T >.
|
protectedpure virtual |
Implementations should ensure this operation is O(1) and allocates no memory.
The index has already been checked for negative, but not size.
Implemented in BasicVector< T >, BasicVector< double >, BasicVector< AutoDiffXd >, BasicVector< drake::symbolic::Expression >, Subvector< T >, and Supervector< T >.
|
protectedvirtual |
Adds in multiple scaled vectors to this vector.
All vectors are guaranteed to be the same size.
You should override this method if possible with a more efficient approach that leverages structure; the default implementation performs element-by-element computations that are likely inefficient, but even this implementation minimizes memory accesses for efficiency. If the vector is contiguous, for example, implementations that leverage SIMD operations should be far more efficient. Overriding implementations should ensure that this operation remains O(N) in the size of the value and allocates no memory.
| const T& GetAtIndex | ( | int | index | ) | const |
Returns the element at the given index in the vector.
| std::runtime_error | if the index is >= size() or negative. Consider operator[]() instead if bounds-checking is unwanted. |
| T& GetAtIndex | ( | int | index | ) |
Returns the element at the given index in the vector.
| std::runtime_error | if the index is >= size() or negative. Consider operator[]() instead if bounds-checking is unwanted. |
|
virtual |
Get the bounds for the elements.
If lower and upper are both empty size vectors, then there are no bounds. Otherwise, the bounds are (*lower)(i) <= GetAtIndex(i) <= (*upper)(i) The default output is no bounds.
| VectorBase& operator+= | ( | const VectorBase< T > & | rhs | ) |
Add in vector rhs
to this vector.
| VectorBase& operator-= | ( | const VectorBase< T > & | rhs | ) |
Subtract in vector rhs
to this vector.
|
delete |
|
delete |
| T& operator[] | ( | int | index | ) |
Returns the element at the given index in the vector.
index
< size() | const T& operator[] | ( | int | index | ) | const |
Returns the element at the given index in the vector.
index
< size() | VectorBase& PlusEqScaled | ( | const T & | scale, |
| const VectorBase< T > & | rhs | ||
| ) |
Add in scaled vector rhs
to this vector.
Both vectors must be the same size.
| VectorBase& PlusEqScaled | ( | const std::initializer_list< std::pair< T, const VectorBase< T > & >> & | rhs_scale | ) |
Add in multiple scaled vectors to this vector.
All vectors must be the same size.
Adds a scaled version of this vector to Eigen vector vec
, which must be the same size.
Implementations may override this default implementation with a more efficient approach, for instance if this vector is contiguous. Implementations should ensure this operation remains O(N) in the size of the value and allocates no memory.
Reimplemented in BasicVector< T >, BasicVector< double >, BasicVector< AutoDiffXd >, and BasicVector< drake::symbolic::Expression >.
| void SetAtIndex | ( | int | index, |
| const T & | value | ||
| ) |
Replaces the state at the given index with the value.
| std::runtime_error | if the index is >= size(). Consider operator[]() instead if bounds-checking is unwanted. |
|
virtual |
Replaces the entire vector with the contents of value
.
| std::runtime_error | if value is not a column vector with size() rows. |
Implementations should ensure this operation is O(N) in the size of the value and allocates no memory.
|
virtual |
Replaces the entire vector with the contents of value
.
Throws std::runtime_error if value
is not a column vector with size() rows.
Implementations should ensure this operation is O(N) in the size of the value and allocates no memory.
Reimplemented in BasicVector< T >, BasicVector< double >, BasicVector< AutoDiffXd >, and BasicVector< drake::symbolic::Expression >.
|
virtual |
Reimplemented in BasicVector< T >, BasicVector< double >, BasicVector< AutoDiffXd >, and BasicVector< drake::symbolic::Expression >.
|
pure virtual |
Returns the number of elements in the vector.
Implementations should ensure this operation is O(1) and allocates no memory.
Implemented in BasicVector< T >, BasicVector< double >, BasicVector< AutoDiffXd >, BasicVector< drake::symbolic::Expression >, Subvector< T >, and Supervector< T >.


A short description of this topic to make it easier to understand
Once you become a legal childminder you should not need to reapply again (for example, when starting a new childminding job). However, if you are convicted of a criminal offence your childminder status may be removed.


{{ project_name }}
{{ project_description }}
{{ subject }}
{{ message|safe }} {% for label, url in actions %}
{{ label }}
{% endfor %}
© {{ project_name }}


<lomSemanticDensity>
The <lomSemanticDensity> provides learning metadata about a subjective measure of the learning object's usefulness as compared to its size or duration.
Category: Learning and training: metadata elements


 It is all over the place. I last used it 6 years ago.
[dscrdeql] <sisana10> I have not used facebook in years.
[dscrdeql] <sisana10> Now im bombarded with alerts all the time!
[dscrdeql] <donaldmathers> Facebook isn’t too bad to me. I barely use Instagram anymore lol
[dscrdeql] <AndronicusBass-Founder> got my bass beats cranked and getting stuck into it
[dscrdeql] <AndronicusBass-Founder> Im often in the music channel
[dscrdeql] <AndronicusBass-Founder> If you have headphones join it and see what i listen to
[dscrdeql] <donaldmathers> Hahah nice
[dscrdeql] <donaldmathers> I love music
[dscrdeql] <AndronicusBass-Founder> We have a music bot
[dscrdeql] <shah1305> nice one
[dscrdeql] <donaldmathers> Never thought of using it
[dscrdeql] <donaldmathers> Didn’t know you had one truthfully lol
[dscrdeql] <AndronicusBass-Founder> Im tempted to see if I can use another bot to have multiple channels of music
[dscrdeql] <donaldmathers> And how does it work? It just plays music all day long?
[dscrdeql] <AndronicusBass-Founder> I like ambient/euphoric drum and bass
(edited)
[dscrdeql] <AndronicusBass-Founder> always good with piano
[dscrdeql] <donaldmathers> I used to dance to drum and bass and other types of dance music like House and happy hardcore
[dscrdeql] <AndronicusBass-Founder> you can get it to play internet streaming radio from its list, or play youtube links or create a play ilst and load it with songs previousloaded
[dscrdeql] <donaldmathers> That’s awesome
[dscrdeql] <AndronicusBass-Founder> Andronicus rhymes with anonymous but has a Latin sound while my name is Andrew and I like Bass
[dscrdeql] <donaldmathers> So your name works out perfectly lol
[dscrdeql] <AndronicusBass-Founder> indeed
[dscrdeql] <donaldmathers> Mine is just a mix between Donald trump and Marshall Mathers lol
[dscrdeql] <jellysmash> i used to play guitar
[dscrdeql] <AndronicusBass-Founder> haha. he hates trump but all celebs are puppets including politicians
[dscrdeql] <jellysmash> sold my electric guitars for crypto
[dscrdeql] <AndronicusBass-Founder> then you will be able to buy heaps
[dscrdeql] <!!! Thorth !!!> serious ?? @jellysmash ?
[dscrdeql] <donaldmathers> Lol
[dscrdeql] <donaldmathers> He hates trump? Who is he? @AndronicusBass-Founder
[dscrdeql] <AndronicusBass-Founder> that eminem dude
[dscrdeql] <donaldmathers> Lmaoo oh you are absolutely right
[dscrdeql] <donaldmathers> He really does lol
[dscrdeql] <AndronicusBass-Founder> celebrities need to stay out of politics. after all they are paid to act and people blindly follow them unfortunately.
[dscrdeql] <AndronicusBass-Founder> I might rain a bit more
[dscrdeql] <tanya> need to be active lol
[dscrdeql] <tanya> not active
[dscrdeql] <tanya> oh well, need to get ready for the day
[dscrdeql] <sisana10> @tanya I just checked, it says your active.
[dscrdeql] <donaldmathers> Rain rain!
[dscrdeql] <donaldmathers> Most celebrities don’t know what they are talking about anyway
[dscrdeql] <donaldmathers> Paid actors-they act. That’s all they know how to do
[dscrdeql] <AndronicusBass-Founder> The celebrities i respect are economists and some journalists
[dscrdeql] <donaldmathers> Yep
[dscrdeql] <donaldmathers> Active!
[dscrdeql] <x2maano> oops
[dscrdeql] <donaldmathers> Rain!
[dscrdeql] <donaldmathers> Some breakfast and coffee...and then a nice joint and the beach
[dscrdeql] <donaldmathers> Who wants to join me virtually?
[dscrdeql] <SwimedDragon> I got to prepare dinner stuff
[dscrdeql] <donaldmathers> Last pic is just of my 2 kids
[dscrdeql] <donaldmathers> 2 out of the 5 dogs I have


Welcome to your 2-nd assignment in Unsupervised Machine Learning in Finance.
In this assignment we look in-depth at model-free factor analysis using PCA. By model-free we mean that we do not rely on any factors such as value or momentum to decompose portfolio returns, but instead using Principal Component Analysis (PCA) to deduce structure of portfolio returns.
We work with S&P 500 index stock data.
iPython Notebooks are interactive coding environments embedded in a webpage. You will be using iPython notebooks in this class. You only need to write code between the ### START CODE HERE ### and ### END CODE HERE ### comments. After writing your code, you can run the cell by either pressing "SHIFT"+"ENTER" or by clicking on "Run Cell" (denoted by a play symbol) in the upper bar of the notebook.
We will often specify "(≈ X lines of code)" in the comments to tell you about how much code you need to write. It is just a rough estimate, so don't feel bad if your code is longer or shorter.
import os
import os.path
import numpy as np
import datetime
import sys
sys.path.append("..")
import grading
try:
import matplotlib.pyplot as plt
%matplotlib inline
except:
pass
try:
import pandas as pd
print(" pandas: %s"% pd.__version__)
except:
print("Missing pandas package")
### ONLY FOR GRADING. DO NOT EDIT ###
submissions=dict()
assignment_key="BBz-XobeEeegARIApDSa9g"
all_parts=["nvDA9", "ykDlW", "rpYVm","oWy6l","MWWt7","3VyJD"]
### ONLY FOR GRADING. DO NOT EDIT ###
COURSERA_TOKEN = "HS7Xnr9EQucoKYNu" # the key provided to the Student under his/her email on submission page
COURSERA_EMAIL =<EMAIL_ADDRESS># the email
# load dataset
asset_prices = pd.read_csv(os.getcwd() + '/data/spx_holdings_and_spx_closeprice.csv',
date_parser=lambda dt: pd.to_datetime(dt, format='%Y-%m-%d'),
index_col = 0).dropna()
n_stocks_show = 12
print('Asset prices shape', asset_prices.shape)
asset_prices.iloc[:, :n_stocks_show].head()
print('Last column contains SPX index prices:')
asset_prices.iloc[:, -10:].head()
Instructions:
Calculate percent returns, also known as simple returns using asse_prices. assign the result to variable asset_returns. Keep only not-nan values in the resulting pandas.DataFrame
Calculate de-meaned returns and scale them by standard deviation $\sigma$. Assign result to normed_returns variable
We now compute stock returns and normalize stock returns data by subtracting the mean and dividing by standard diviation. This normalization is required by PCA.
asset_returns = pd.DataFrame(data=np.zeros(shape=(len(asset_prices.index), asset_prices.shape[1])),
columns=asset_prices.columns.values,
index=asset_prices.index)
normed_returns = asset_returns
### START CODE HERE ### (≈ 4 lines of code)
# normed_returns is pandas.DataFrame that should contain normalized returns
# Calculate percent returns, also known as simple returns using asse_prices.
# Assign the result to variable asset_returns.
asset_returns = asset_prices.pct_change()
#
# Keep only not-nan values in the resulting pandas.DataFrame
asset_returns = asset_returns.replace(np.nan, 0, regex=True)
# Calculate de-meaned returns and scale them by standard deviation.
# Assign result to normed_returns variable
# We now compute stock returns and normalize stock returns data by subtracting
# the mean and dividing by standard diviation. This normalization is required by PCA.
normed_returns = (asset_returns - asset_returns.mean(axis=0)) / asset_returns.std(axis=0)
normed_returns = pd.DataFrame(normed_returns)
# Drop the first row
normed_returns = normed_returns.iloc[1:]
### END CODE HERE ###
normed_returns.iloc[-5:, -10:].head()
### GRADED PART (DO NOT EDIT) ###
part_1=list(normed_returns.iloc[0,: 100].as_matrix().squeeze())
try:
part1 = " ".join(map(repr, part_1))
except TypeError:
part1 = repr(part_1)
submissions[all_parts[0]]=part1
grading.submit(COURSERA_EMAIL, COURSERA_TOKEN, assignment_key,all_parts[:1],all_parts,submissions)
normed_returns.iloc[0,: 100].as_matrix().squeeze()
### GRADED PART (DO NOT EDIT) ###
train_end = datetime.datetime(2012, 3, 26)
df_train = None
df_test = None
df_raw_train = None
df_raw_test = None
df_train = normed_returns[normed_returns.index <= train_end].copy()
df_test = normed_returns[normed_returns.index > train_end].copy()
df_raw_train = asset_returns[asset_returns.index <= train_end].copy()
df_raw_test = asset_returns[asset_returns.index > train_end].copy()
print('Train dataset:', df_train.shape)
print('Test dataset:', df_test.shape)
Now we compute PCA using all available data. Once we do have PCA computed we fix variance explained at some number and see what is the smallest number of components needed to explain this variance.
Instructions:
import sklearn.decomposition
import seaborn as sns
stock_tickers = normed_returns.columns.values[:-1]
assert 'SPX' not in stock_tickers, "By accident included SPX index"
n_tickers = len(stock_tickers)
pca = None
cov_matrix = pd.DataFrame(data=np.ones(shape=(n_tickers, n_tickers)), columns=stock_tickers)
cov_matrix_raw = cov_matrix
if df_train is not None and df_raw_train is not None:
stock_tickers = asset_returns.columns.values[:-1]
assert 'SPX' not in stock_tickers, "By accident included SPX index"
### START CODE HERE ### (≈ 2-3 lines of code)
# computing PCA on S&P 500 stocks
# Calculate covariance matrix using training data set,
# i.e. df_train for all assets. Assign results to cov_matrix.
#cov_matrix=df_train.cov()
cov_matrix = df_train[stock_tickers].cov()
# Calculate covariance matrix using training data set,
# i.e. df_raw_train for all assets. Assign results to cov_matrix_raw.
cov_matrix_raw=df_raw_train[stock_tickers].cov()
# Use scikit-learn PCA to fit PCA model to cov_matrix. Assign fitted model to pca
clf = sklearn.decomposition.PCA()
pca = clf.fit(cov_matrix)
# not normed covariance matrix
### END CODE HERE ###
cov_raw_df = pd.DataFrame({'Variance': np.diag(cov_matrix_raw)}, index=stock_tickers)
# cumulative variance explained
var_threshold = 0.8
var_explained = np.cumsum(pca.explained_variance_ratio_)
num_comp = np.where(np.logical_not(var_explained < var_threshold))[0][0] + 1 # +1 due to zero based-arrays
print('%d components explain %.2f%% of variance' %(num_comp, 100* var_threshold))
### GRADED PART (DO NOT EDIT) ###
part_2 = np.diag(cov_matrix[: 100])
try:
part2 = " ".join(map(repr, part_2))
except TypeError:
part2 = repr(part_2)
submissions[all_parts[1]]=part2
grading.submit(COURSERA_EMAIL, COURSERA_TOKEN, assignment_key,all_parts[:2],all_parts,submissions)
### GRADED PART (DO NOT EDIT) ###
np.diag(cov_matrix[: 100])
if pca is not None:
bar_width = 0.9
n_asset = int((1 / 10) * normed_returns.shape[1])
x_indx = np.arange(n_asset)
fig, ax = plt.subplots()
fig.set_size_inches(12, 4)
# Eigenvalues are measured as percentage of explained variance.
rects = ax.bar(x_indx, pca.explained_variance_ratio_[:n_asset], bar_width, color='deepskyblue')
ax.set_xticks(x_indx + bar_width / 2)
ax.set_xticklabels(list(range(n_asset)), rotation=45)
ax.set_title('Percent variance explained')
ax.legend((rects[0],), ('Percent variance explained by principal components',))
if pca is not None:
projected = pca.fit_transform(cov_matrix)
Instructions:
We now look a the first two eigen portfolios. We use definition of eigen portfolios as provided by Avellaneda http://math.nyu.edu/faculty/avellane/AvellanedaLeeStatArb20090616.pdf
Following Avellaneda we define eigen portfolio weights as: $$Q_i^{(j)} = \frac{v_i^{(j)}}{\sigma_i}$$
where $j$ is the index of eigen portfolio and $v_i$ is the i-th element of j-th eigen vector.
In the code the pca.components_ are the Principal axes in feature space, representing the directions of maximum variance in the data. The components are sorted by explainedvariance.
Hint: do not forget to normalize portfolio wieghts such they sum up to 1.
Assign pc_w to be weights of the first eigen portfolio.
# the first two eigen-portfolio weights# the fi
# first component
# get the Principal components
pc_w = np.zeros(len(stock_tickers))
eigen_prtf1 = pd.DataFrame(data ={'weights': pc_w.squeeze()*100}, index = stock_tickers)
if pca is not None:
pcs = pca.components_
### START CODE HERE ### (≈ 1-2 lines of code)
# normalized to 1
# NOTE: You use 0 because it is the first portfolio
pc_w = pcs[:,0] / np.sum(pcs[:,0])
### END CODE HERE ###
eigen_prtf1 = pd.DataFrame(data ={'weights': pc_w.squeeze()*100}, index = stock_tickers)
eigen_prtf1.sort_values(by=['weights'], ascending=False, inplace=True)
print('Sum of weights of first eigen-portfolio: %.2f' % np.sum(eigen_prtf1))
eigen_prtf1.plot(title='First eigen-portfolio weights',
figsize=(12,6),
xticks=range(0, len(stock_tickers),10),
rot=45,
linewidth=3)
### GRADED PART (DO NOT EDIT) ###
part_3 = list(eigen_prtf1.squeeze().values)
try:
part3 = " ".join(map(repr, part_3))
except TypeError:
part3 = repr(part_3)
submissions[all_parts[2]]=part3
grading.submit(COURSERA_EMAIL, COURSERA_TOKEN, assignment_key,all_parts[:3],all_parts,submissions)
eigen_prtf1.squeeze().values
### GRADED PART (DO NOT EDIT) ###
We sort the first two eigen portfolio weights and plot the results.
pc_w = np.zeros(len(stock_tickers))
eigen_prtf2 = pd.DataFrame(data ={'weights': pc_w.squeeze()*100}, index = stock_tickers)
if pca is not None:
pcs = pca.components_
### START CODE HERE ### (≈ 1-2 lines of code)
# normalized to 1
# NOTE: You use 1 because it is the second portfolio
pc_w = pcs[:,1] / np.sum(pcs[:,1])
### END CODE HERE ###
eigen_prtf2 = pd.DataFrame(data ={'weights': pc_w.squeeze()*100}, index = stock_tickers)
eigen_prtf2.sort_values(by=['weights'], ascending=False, inplace=True)
print('Sum of weights of second eigen-portfolio: %.2f' % np.sum(eigen_prtf2))
eigen_prtf2.plot(title='Second eigen-portfolio weights',
figsize=(12,6),
xticks=range(0, len(stock_tickers),10),
rot=45,
linewidth=3)
### GRADED PART (DO NOT EDIT) ###
part_4 = list(eigen_prtf2.as_matrix().squeeze())
try:
part4 = " ".join(map(repr, part_4))
except TypeError:
part4 = repr(part_4)
submissions[all_parts[3]]=part4
grading.submit(COURSERA_EMAIL, COURSERA_TOKEN, assignment_key,all_parts[:4],all_parts,submissions)
eigen_prtf2.as_matrix().squeeze()
### GRADED PART (DO NOT EDIT) ###
Instructions:
def sharpe_ratio(ts_returns, periods_per_year=252):
"""
sharpe_ratio - Calculates annualized return, annualized vol, and annualized sharpe ratio,
where sharpe ratio is defined as annualized return divided by annualized volatility
Arguments:
ts_returns - pd.Series of returns of a single eigen portfolio
Return:
a tuple of three doubles: annualized return, volatility, and sharpe ratio
"""
annualized_return = 0.
annualized_vol = 0.
annualized_sharpe = 0.
### START CODE HERE ### (≈ 4-5 lines of code)
### ...
n_years = ts_returns.shape[0]/periods_per_year
annualized_return = np.power(np.prod(1+ts_returns),(1/n_years))-1
annualized_vol = ts_returns.std() * np.sqrt(periods_per_year)
annualized_sharpe = annualized_return / annualized_vol
### END CODE HERE ###
return annualized_return, annualized_vol, annualized_sharpe
We compute the annualized return, volatility, and Sharpe ratio of the first two eigen portfolios.
if df_raw_test is not None:
eigen_prtf1_returns = np.dot(df_raw_test.loc[:, eigen_prtf1.index], eigen_prtf1 / 100)
eigen_prtf1_returns = pd.Series(eigen_prtf1_returns.squeeze(), index=df_test.index)
er, vol, sharpe = sharpe_ratio(eigen_prtf1_returns)
print('First eigen-portfolio:\nReturn = %.2f%%\nVolatility = %.2f%%\nSharpe = %.2f' % (er*100, vol*100, sharpe))
year_frac = (eigen_prtf1_returns.index[-1] - eigen_prtf1_returns.index[0]).days / 252
df_plot = pd.DataFrame({'PC1': eigen_prtf1_returns, 'SPX': df_raw_test.loc[:, 'SPX']}, index=df_test.index)
np.cumprod(df_plot + 1).plot(title='Returns of the market-cap weighted index vs. First eigen-portfolio',
figsize=(12,6), linewidth=3)
if df_raw_test is not None:
eigen_prtf2_returns = np.dot(df_raw_test.loc[:, eigen_prtf2.index], eigen_prtf2 / 100)
eigen_prtf2_returns = pd.Series(eigen_prtf2_returns.squeeze(), index=df_test.index)
er, vol, sharpe = sharpe_ratio(eigen_prtf2_returns)
print('Second eigen-portfolio:\nReturn = %.2f%%\nVolatility = %.2f%%\nSharpe = %.2f' % (er*100, vol*100, sharpe))
We repeat the exercise of computing Sharpe ratio for the first N portfolios and select portfolio with the highest postive Sharpe ratio.
n_portfolios = 120
annualized_ret = np.array([0.] * n_portfolios)
sharpe_metric = np.array([0.] * n_portfolios)
annualized_vol = np.array([0.] * n_portfolios)
idx_highest_sharpe = 0 # index into sharpe_metric which identifies a portfolio with rhe highest Sharpe ratio
if pca is not None:
for ix in range(n_portfolios):
### START CODE HERE ### (≈ 4-5 lines of code)
pc_w = pcs[:,ix] / np.sum(pcs[:,ix])
eigen_prtf = pd.DataFrame(data ={'weights': pc_w}, index = stock_tickers)
eigen_returns = np.dot(df_raw_test.loc[:, eigen_prtf.index], eigen_prtf )
eigen_returns = pd.Series(eigen_returns.squeeze(), index=df_test.index)
annualized_ret[ix], annualized_vol[ix], sharpe_metric[ix] = sharpe_ratio( eigen_returns )
### END CODE HERE ###
# find portfolio with the highest Sharpe ratio
### START CODE HERE ### (≈ 2-3 lines of code)
### ...
results = pd.DataFrame(data={'Return': annualized_ret, 'Vol': annualized_vol, 'Sharpe': sharpe_metric})
results.sort_values(by=['Sharpe'], ascending=False, inplace=True)
idx_highest_sharpe = results.index[0]
### END CODE HERE ###
print('Eigen portfolio #%d with the highest Sharpe. Return %.2f%%, vol = %.2f%%, Sharpe = %.2f' %
(idx_highest_sharpe,
annualized_ret[idx_highest_sharpe]*100,
annualized_vol[idx_highest_sharpe]*100,
sharpe_metric[idx_highest_sharpe]))
fig, ax = plt.subplots()
fig.set_size_inches(12, 4)
ax.plot(sharpe_metric, linewidth=3)
ax.set_title('Sharpe ratio of eigen-portfolios')
ax.set_ylabel('Sharpe ratio')
ax.set_xlabel('Portfolios')
results = pd.DataFrame(data={'Return': annualized_ret, 'Vol': annualized_vol, 'Sharpe': sharpe_metric})
results.sort_values(by=['Sharpe'], ascending=False, inplace=True)
results.head(10)
# https://www.coursera.org/learn/fundamentals-machine-learning-in-finance/discussions/weeks/2/threads/iF-Qk5nYEeiHaQooPC_NRA
# 1) Use the COLUMNS in the pcs matrix to get the weights for the eigenportfolios, although the principal components are stored in rows. (For parts 3 and 4 you can use either rows or columns).
# 2) Calculate annualized returns in the function sharpe_ratio() using the GEOMETRIC MEAN of the daily returns ts_returns.
# 3) You will get NaN's in the results array (most likely for 3 eigenportfolios). Therefore, before you submit part 5, do results.dropna(inplace=True). This will reduce the number of Sharpe ratios submitted to the grader from 120 to 117.
# If you want to read the detailed discussion that led up to these insights:
# https://www.coursera.org/learn/fundamentals-machine-learning-in-finance/discussions/all/threads/60PTYG_jEeieDw7iscz5Kg
results.dropna(inplace=True)
### GRADED PART (DO NOT EDIT) ###
part_5 = list(results.iloc[:, 1].values.squeeze())
try:
part5 = " ".join(map(repr, part_5))
except TypeError:
part5 = repr(part_5)
submissions[all_parts[4]]=part5
grading.submit(COURSERA_EMAIL, COURSERA_TOKEN, assignment_key,all_parts[:5],all_parts,submissions)
results.iloc[:, 1].values.squeeze()
### GRADED PART (DO NOT EDIT) ###
### GRADED PART (DO NOT EDIT) ###
part6 = str(idx_highest_sharpe)
submissions[all_parts[5]]=part6
grading.submit(COURSERA_EMAIL, COURSERA_TOKEN, assignment_key,all_parts[:6],all_parts,submissions)
idx_highest_sharpe
### GRADED PART (DO NOT EDIT) ###


Some text to the user about the input field
Surname
There was a problem!
There was almost a problem!
There were no problems!


You need to enable JavaScript to run this app.
Welcome to Syllit!
Syllit counts the syllables in the given word


all files
components/
96.19%
Statements
101/105
88.89%
Branches
24/27
94.12%
Functions
16/17
95.06%
Lines
77/81
File
Statements
Branches
Functions
Lines
Hits.js
100%
25/25
100%
7/7
100%
6/6
100%
19/19
Selector.js
94.12%
16/17
100%
0/0
75%
3/4
88.89%
8/9
Template.js
95.24%
60/63
85%
17/20
100%
7/7
94.34%
50/53


CssClassNames
class CssClassNames extends JsonConfig (View source)
CssClassNames Properties Object
An object containing all the values for the cssClassNames which can be passed into the Table's options.
Constants
| TYPE |
Type of JsonConfig object
|
Methods
Builds the CssClassNames object when passed an array of options.
Shortcut method to set the value of an option and return $this.
Parses the config array by passing the values through each method to check validity against if the option exists.
Assigns a class name to the table header row (
Assigns a class name to the non-header rows (
Assigns a class name to odd table rows (
Assigns a class name to the selected table row (
Assigns a class name to the hovered table row (
Assigns a class name to all cells in the header row (
Assigns a class name to all non-header table cells (
Assigns a class name to the cells in the row number column (
Details
at line 55
__construct(
array $config = array())
Builds the CssClassNames object when passed an array of options.
in
JsonConfig at line 64
mixed
__get(
string $option)
Get the value of a set option via magic method.
in
JsonConfig at line 75
Options
getOptions()
Gets the Options object for the JsonConfig
in
JsonConfig at line 90
JsonConfig
setOption(
string $option,
mixed $value)
Shortcut method to set the value of an option and return $this.
In order to maintain backwards compatibility, ConfigObjects will be unwrapped.
in
JsonConfig at line 106
setOptions(
array $config)
Parses the config array by passing the values through each method to check validity against if the option exists.
in
JsonConfig at line 275
array
jsonSerialize()
Custom serialization of the JsonConfig object.
at line 69
CssClassNames
headerRow(
string $headerRow)
Assigns a class name to the table header row (
at line 82
CssClassNames
tableRow(
string $tableRow)
Assigns a class name to the non-header rows (
at line 95
CssClassNames
oddTableRow(
string $oddTableRow)
Assigns a class name to odd table rows (
at line 108
CssClassNames
selectedTableRow(
string $selectedTableRow)
Assigns a class name to the selected table row (
at line 121
CssClassNames
hoverTableRow(
string $hoverTableRow)
Assigns a class name to the hovered table row (
at line 134
CssClassNames
headerCell(
string $headerCell)
Assigns a class name to all cells in the header row (
at line 147
CssClassNames
tableCell(
string $tableCell)
Assigns a class name to all non-header table cells (
at line 160
CssClassNames
rowNumberCell(
string $rowNumberCell)
Assigns a class name to the cells in the row number column (


Get data from DEFRA's UK-AIR website <https://uk-air.defra.gov.uk/>. It basically scrapes the HTML content.
| Version: | 0.3.5 |
| Depends: | R (≥ 2.10) |
| Imports: | lubridate, tibble, httr, xml2, dplyr, sp, rgdal |
| Suggests: | testthat, leaflet, parallel, rmarkdown, knitr, ggplot2, zoo, lintr |
| Published: | 2018-07-08 |
| Author: | Claudia Vitolo [aut, cre], Andrew Russell [ctb] (This package is part of the KEHRA project and Andrew supervised the technical/software development.), Allan Tucker [ctb] (This package is part of the KEHRA project and Allan supervised the technical/software development.), Maëlle Salmon [ctb] (Maëlle Salmon reviewed the package for rOpenSci, see https://github.com/ropensci/onboarding/issues/68), Hao Zhu [ctb] (Hao Zhu reviewed the package for rOpenSci, see https://github.com/ropensci/onboarding/issues/68) |
| Maintainer: | Claudia Vitolo <cvitolodev at gmail.com> |
| BugReports: | https://github.com/ropensci/rdefra/issues |
| License: | GPL-3 |
| URL: | https://github.com/ropensci/rdefra |
| NeedsCompilation: | no |
| Citation: | rdefra citation info |
| Materials: | README NEWS |
| CRAN checks: | rdefra results |
| Reference manual: | rdefra.pdf |
| Vignettes: |
rdefra: Interact with the UK AIR Pollution Database from DEFRA |
| Package source: | rdefra_0.3.5.tar.gz |
| Windows binaries: | r-devel: rdefra_0.3.4.zip, r-release: rdefra_0.3.4.zip, r-oldrel: rdefra_0.3.4.zip |
| OS X binaries: | r-release: rdefra_0.3.5.tgz, r-oldrel: rdefra_0.3.5.tgz |
| Old sources: | rdefra archive |
Please use the canonical form https://CRAN.R-project.org/package=rdefra to link to this page.


A BOOLERR record describes a cell that contains a constant Boolean or error value. The rw field contains the 0-based row number. The col field contains the 0-based column number.
Record Data
|
Offset |
Field Name |
Size |
Contents |
|
4 |
rw |
2 |
Row |
|
6 |
col |
2 |
Column |
|
8 |
ixfe |
2 |
Index to the XF record |
|
10 |
bBoolErr |
1 |
Boolean value or error value |
|
11 |
fError |
1 |
Boolean/error flag |
The bBoolErr field contains the Boolean or error value, as determined by the fError field. If the fError field contains a 0 (zero), the bBoolErr field contains a Boolean value; if the fError field contains a 1, the bBoolErr field contains an error value.
Boolean values are 1 for true and 0 for false.
Error values are listed in the following table.
|
Error value |
Value (hex) |
Value (dec.) |
|
#NULL! |
00h |
0 |
|
#DIV/0! |
07h |
7 |
|
#VALUE! |
0Fh |
15 |
|
#REF! |
17h |
23 |
|
#NAME? |
1Dh |
29 |
|
#NUM! |
24h |
36 |
|
#N/A |
2Ah |
42 |


Welcome to KUTE.js API documentation, here we're going to talk about how to download, install, use, control and set up cross browser animations, in great detailed. KUTE.js can be found on CDN and also npm and Bower repositories with all it's features and tools.
You can install KUTE.js package by using either Bower or NPM.
$ npm install --save kute.js
# Or
$ bower install --save kute.js
In your website add the following code, the best would be to put it at the end of your body
tag:
<script src="https://cdn.jsdelivr.net/kute.js/1.0.0/kute.min.js"></script> <!-- core KUTE.js -->
Also you can include the tools that you need for your project:
<script src="https://cdn.jsdelivr.net/kute.js/1.0.0/kute-jquery.min.js"></script> <!-- jQuery Plugin -->
<script src="https://cdn.jsdelivr.net/kute.js/1.0.0/kute-easing.min.js"></script> <!-- Bezier Easing Functions -->
<script src="https://cdn.jsdelivr.net/kute.js/1.0.0/kute-physics.min.js"></script> <!-- Physics Easing Functions -->
Your awesome animation coding would follow after these script links.
You need to know when users' browser is a legacy one in order to use KUTE.js only for what browsers actually support. A quick note here: IE8 doesn't support any transform
property or RGBA
colors while IE9 can only do 2D transformations. Check the 2D transforms and the 3D transforms browser support list for more information.
Don't use Modernizr, the best thing you can actually do is to use the Microsoft's synthax for it's own legacy browsers, and here is the full refference on that. For other legacy browsers there is a ton of ways to target them, quite efficiently I would say: there you go.
These methods allow you to create tween objects; here a tween object is essentially like an animation setup for a given HTML element, defining CSS properties, animation duration or repeat. The methods have different uses and performance scores while making it easy to work with.
.to() method is the most simple method which allows you to create tween objects for animating CSS properties from a specific default value OR from current/computed value TO a desired value.
It's performance is not the same as for the next two because it has to compute the default/current value on tween .start()
and thus delays the animation for a cuple of miliseconds, but this feature is great for simple animations AND it has the ability to stack transform properties as they go, making smooth transform animations on chained tweens. See the .start() method for the solution for sync/delay issue.
Considering a given div element is already transparent, a super quick example would be:
KUTE.to(div,{opacity:1}).start()
.fromTo() method is the best way to build animations for BEST performance and absolute control. The tests prove this method to be the fastest methods but unlike the .to()
method, it does not stack transform properties on chained tweens. Also, another advantage is the fact that you can set measurement units for both starting and end values, to avoid glitches. We've talked about this in the features page. So here's a quick example:
KUTE.fromTo(div,{opacity:1},{opacity:0}).start()
.Animate() method is only a fallback for the older KUTE.js versions and works as the .fromTo()
method. It will be deprecated with later versions.
These methods allows you to control when the animation starts or stops. Let's write a basic tween object to work with the methods:
var tween = KUTE.fromTo(div,{opacity:1},{opacity:0});
This tween object is now ready to work with the methods.
.start() method starts animation for a given tween object. It can start the animation for both cached and non-cached objects. Unlike previous versions of KUTE.js, where animation started immediately after tween object creation, now you have to manually start them.
//cached object defined above
tween.start();
//non-cached object are created on the fly and garbage collected after animation has finised
KUTE.fromTo(div,{opacity:1},{opacity:0}).start();
//also start the tween at a certain time
tween.start(now); // where now must be the current or future time as number, see below
As you can see, you can also set a time for the animation to start, example: tween.start(myTimeValue)
. Having access to the method is useful when starting animation for large amounts of elements with same properties at the same time because using it properly eliminates any syncronization issue that may occur, even if you are using the .to()
method. This applies to our performance test page as well, and the trick is super duper simple:
// step 1 - create an empty array and grab the elements to animate
var tweens = [], myElements = document.querySelector('.myManyElements');
// step 2 - define tween objects for each element
for (var i = 0; i < numberOfElements; i++) {
var tween = KUTE.fromTo(myElements[i], fromValues, toValues, options);
//now we populate the tweens array
tweens.push(tween);
}
// step 3 - calculate the right time to start
// first we need the exact current time
var now = window.performance.now(); // this returns the exact current time in numeric format
// also we estimate/calculate an adjustment lag
// depending on the number of the elements AND hardware capability
// maybe (numberOfElements / 16) would be an accurate value for PCs
var lag = 100; // number of miliseconds for the script to built tween objects for all elements
// step4 - we just start the animation for all elements at once
for (var i = 0; i < numberOfElements; i++) {
tweens[i].start(now+lag);
}
If you care to see the actual working code, check it in the perf.js file.
.stop() method stops animation for a given tween object while animating. You cannot stop the animation for tween objects created on the fly, only for cached objects. Let's assume that for the given tween we decide to stop the animation via click
action:
stopButton.addEventListener('click', function(){
tween.stop();
}, false);
.pause() method freezez the animation at any given time for a given tween object, and unlike the .stop()
method, this one allows resuming the animation on a later use of the next method .play()
.
pauseButton.addEventListener('click', function(){
tween.pause();
}, false);
.play() or .resume() methods allows you to resume an animation for a given tween object only if it was paused or else will produce no effect.
playButton.addEventListener('click', function(){
tween.play(); // or tween.resume();
}, false);
.chain() method can be used to chain tweens together. When the animation finishes for a given tween, it triggers the animation start for another tween.
var tween2 = KUTE.fromTo(div,{left:50},{left:0});
//the first tween chains the new tween
tween.chain(tween2);
//the new tween chains the first one creating a loop
tween2.chain(tween);
It's also possible to chain multiple tweens, just as shown in the below example, but the one that finishes last (has longest delay and duration together) should be used last in the .chain()
method arguments list. Why? Because when a tween is finished it triggers cancelAnimationFrame()
and KUTE.js will stop "ticking" causing all other chained tweens to stop prematurelly.
//chain multiple tweens
tween.chain(tween1,tween2);
These options affect all types of tweens, no matter the properties used or context.
duration: 500 option allows you to set the animation duration in miliseconds. The default value is 700.
repeat: 20 option allows you to run the animation of given tween multiple times. The default value is 0.
delay: 500 option allows you to schedule the tween animation after a certain number of miliseconds. The default value is 0.
repeatDelay: 500 option allows you to set a number of miliseconds delay between repeatable animations. If repeat
option is set to 0, will produce no effect. The default value is 0.
yoyo: true/false option makes use of the internal reverse functionality to also animate from end to start for a given tween. This option requires that you use the repeat
option with at least value 1. The default value is false.
easing: 'easingCubicInOut' option allows you to use a custom easing function for your animation. For more info on the easing functions, you need to see the example pages. The default value is linear.
These options only affect animation involving any property from CSS3 transform
specs and have no effect on other CSS properties. While you can set perspective
or perspective origin
via CSS, these options are here to help, especially with full browser support and preffix free handling.
perspective: 500 option allows you to set a 3D transformation perspective
for a given HTML element that is subject to transform animation. No default value.
perspectiveOrigin: "50% 50%" option allows you to set a perspectiveOrigin
for a given HTML. This option has no default value and only accepts valid CSS values according to it's specs.
parentPerspective: 500 option allows you to set a 3D perspective
for the parent of the HTML element subject to the transform animation.
parentPerspectiveOrigin: "50% 50%" option allows you to set a perspectiveOrigin
for the parent of the HTML element subject to the transform animation. Also like the above similar options, this options only accepts valid CSS values.
These options also affect all types of tweens, and are bound by the tween control options and the internal update functions.
start: function option allows you to set a function to run once tween animation starts.
update: function option allows you to set a function to run on every frame.
pause: function option allows you to set a function to run when animation is paused.
resume: function option allows you to set a function to run when animation is resumed.
stop: function option allows you to set a function to run when animation is stopped.
complete: function option allows you to set a function to run when animation is finished.
A quick example would look like this:
//define a function
var callback = function(){
//do some foo
}
//create object and start animating already
KUTE.fromTo(div,{left:150},{left:0},{complete: callback}).start();
keepHex: true option allows you to always use HEX
color format, even if you have used RGB
or RGBA
. This option is useful when tweening color properties on legacy browsers, however modern browsers may ignore this option for performance reasons.
The easing functions generally make animations closer to reality and completely eliminate the boring factor for a given context. The most simple example to understand what they do, think of gravity. Dropping an object from a given height, will start moving to the ground with accelerated speed. If the object has some sort of bounciness like a ball, it will jump back up and up again, till the gravity will eventually stick the object to the ground.
What scientists observed and put in theory houndreads of years ago, later the pioneers of scripting started to implement the laws of physics into digital animation and came up with this notion of easing to describe the progression of movement. If you care to dig into the concept, here's an excellent resource some developers recommend. I would also recommend this one too.
Modern browsers that support transition
can also make use of some generic easing functions via the CSS3 transition-timing-function:ease-out
property, but in Javascript animation, we need some special functions. The popular Robert Penner's easing functions set is one of them, and is the default set included with KUTE.js because it's the fastest set I know in terms of performance. Some functions may lack a bit of accuracy but they cover the most animation needs. Generally the easing functions' names are built with keywords that describe the type of easing, like circular or exponential, and also the type of progression in and/or out.
To use them, simply set a tween option like so easing: KUTE.Easing.easingSinusoidalInOut
or simply easing: 'easingSinusoidalInOut'
.
linear is the default easing function and just as it sounds, it means that the animation has no acceleration or deceleration over time. While this one is basically boring, it's the fastest in all, and it's very useful when animating opacity or colors because we cannot really distinguish changes in speed for such cases, but mostly for movement.
curve based functions are the next set of easings we are going to tak about. They are basically the same, the only difference is the number of multipliers applied (better think of it like the more weight an object has, the more acceleration):
The In / Out explained:
back easing functions describe more complex animations (I would call them reverse gravity easings). They also come with in and/or out types of progression.
elasticity easing functions describe the kind of animation where the object is elastic. With in and/or out as well.
gravity based easing functions describe the kind of animation where the object has a certain degree of bounciness, like a ball. With in and/or out as well.
While modern browsers support CSS3 transition
with transition-timing-function: cubic-bezier(0.1,0.5,0.8,0.5)
, in Javascript animation we need some specific functions to cover that kind of functionality. As mentioned in the features page, we are using a modified version of the cubic-bezier by Gaëtan Renaudeau. I believe this must be most accurate easing functions set.
You can use them either with easing: KUTE.Ease.bezier(mX1, mY1, mX2, mY2)
or easing: 'bezier(mX1, mY1, mX2, mY2)'
, where mX1, mY1, mX2, mY2 are Float values from 0 to 1. You can find the right values you need right here.
There is also a pack of presets, and the keywords look very similar if you have used jQuery.Easing plugin before:
KUTE.js also packs the dynamics physics easing functions by Michael Villar and I have to say these functions are amazing in terms of flexibility, control and performance. They allow you to control the friction, bounciness, frequency, elasticity, or multiple bezier points for your animations.
You can use them either with regular Javascript invocation as shown below and configure / visualize them on the author's website, while you can also use the pack of presets featuring mostly bezier based functions. Ok now, let's get to it:
frequency:1-1000
, friction:1-1000
, anticipationSize:0-1000
(a kind of delay in miliseconds) and anticipationStrength:0-1000
(a kind of a new curve to add to the function while waiting the anticipationSize). Usage: easing: KUTE.Physics.spring({friction:100,frequency:600})
.frequency:0-1000
and friction:0-1000
. Usage: easing: KUTE.Physics.bounce({friction:100,frequency:600})
.elasticity:1-1000
and bounciness:0-1000
. Usage: easing: KUTE.Physics.gravity({elasticity:100,bounciness:600})
.gravity
except that the ball instead of being dropped it's thrown into the air. This allows you to set same options: elasticity:1-1000
and bounciness:0-1000
. Usage: easing: KUTE.Physics.forceWithGravity({elasticity:100,bounciness:600})
.easing: KUTE.Physics.bezier({points:POINTS_ARRAY_COMES HERE})
, again use the author's website, edit the bezier curve as you wish and copy paste the points array into this function. Here's how a basic easeIn looks like:
// sample bezier based easing setting
easing: KUTE.Physics.bezier({points: [{"x":0,"y":0,"cp":[{"x":0.483,"y":0.445}]},{"x":1,"y":1,"cp":[{"x":0.009,"y":0.997}]}] })
The presets can be used both as a string easing:'physicsIn'
or easing:KUTE.Physics.physicsIn(friction:200)
. The list is:
friction
option;friction
option.


Plot time trend
plot_time_trend( data, variables, time_variable, filter_value = 1, title = NULL, xlab = NULL, ylab = NULL, var_names = NULL, max_value = 100, color = 0.5, return = c("data", "plot") )
| data | Data object |
|---|---|
| variables | which variables do you want to see |
| time_variable | choose between month or wave |
| filter_value | which value of response e.g. 1 - most of the time |
| title | specify title |
| xlab | specify xlab |
| ylab | specify ylab |
| var_names | to relabel the header on the plot |
| max_value | adjust the y axis |
| color | change the color, available range = 0-1 |
| return | do you want to get data or plot -- I like this to |
plot_time_trend(data = iCARE, variables = c(impacvd_sq003, impacvd_sq001, impacvd_sq002), filter_value = 1, time_variable = wave, # test out for month if you wish var_names = c("impacvd_sq003" = "Depression", "impacvd_sq001" = "Anxiety", "impacvd_sq002" = "Loneliness"), max_value = 25, title = "Trend over waves of survey", return = "plot")#> Error in mutate(., sum_month_status = sum(n), prop_most_time = n/sum_month_status * 100): could not find function "mutate"


Fabio Catanese
Home
Projects
About me
Contact me
Fabio Catanese
frontend developer
My projects
Tanith Lee tribute page
My first Free Code Camp challenge
About me
what do I know?
HTML5
CSS3
Bootstrap
JQuery
Twine
who am I?
A web development enthusiast, teacher, videogames-lover, novels, comics and scripts writer.
< / > contact me < / >
Twitter
LinkedIn
GitHub
FreeCodeCamp


TalkGods
Logout
Buy #HashCash
Post
Run Ad
Run!
{{text}}
{{{youtube}}}
Ringtone Devices
Speaker Devices
{{first_name}} {{last_name}}
{{created}}
{{message}}
Teddy Murray
Software Engineer


The Battle to Own Content Marketing
It was American marketing guru Seth Godin who back in 2008 said: “Content marketing is the only marketing left”. In the seven years since we’ve seen agencies scramble to get a share of marketers’ growing spend on content.


Uses of Class
com.arjuna.mw.wsas.exceptions.SystemException
-
-
Uses of SystemException in com.arjuna.mw.wsas
Methods in com.arjuna.mw.wsas that throw SystemException Modifier and Type Method Description GlobalId
UserActivity. activityId()
java.lang.String
UserActivity. activityName()
What is the name of the current activity? Use only for debugging purposes!void
ActivityManager. addHLS(HLS service)
Register the specified HLS with the activity service.HLS[]
ActivityManager. allHighLevelServices()
Allows an invoker to obtain a list of all registered HLSs.ActivityHierarchy
UserActivity. currentActivity()
Outcome
UserActivity. end()
Complete the activity with the current completion status.Outcome
UserActivity. end(CompletionStatus cs)
Complete the activity with the completion status provided.CompletionStatus
UserActivity. getCompletionStatus()
Get the completion status currently associated with the activity.HLS
ActivityManager. getHighLevelService(java.lang.String serviceType)
Allows an invoker to obtain a specific registered HLS supporting a given coordination type.int
UserActivity. getTimeout()
Get the timeout value currently associated with activities.void
ActivityManager. removeHLS(HLS service)
Unregister the specified HLS with the activity service.void
UserActivity. resume(ActivityHierarchy tx)
Given a token representing a context, associate it with the current thread of control.java.lang.String
UserActivity. serviceType()
void
UserActivity. setCompletionStatus(CompletionStatus endStatus)
Set the termination status for the current activity, if any.void
UserActivity. setTimeout(int timeout)
Set the timeout to be associated with all subsequently created activities.void
UserActivity. start(java.lang.String serviceType)
Start a new activity with a given coordination type.void
UserActivity. start(java.lang.String serviceType, int timeout)
Start a new activity with a given coordination type.Status
UserActivity. status()
ActivityHierarchy
UserActivity. suspend()
Suspend the current activity from this thread and return the token representing the context, if any, or null otherwise. -
Uses of SystemException in com.arjuna.mw.wsas.activity
Methods in com.arjuna.mw.wsas.activity that throw SystemException Modifier and Type Method Description void
HLS. begun()
An activity has begun and is active on the current thread.Outcome
HLS. complete(CompletionStatus cs)
The current activity is completing with the specified completion status.void
HLS. completed()
The activity has completed and is still active on the current thread.CompletionStatus
Outcome. completedStatus()
The state in which the activity completed.Context
HLS. context()
Return the context augmentation for this HLS, if any on the current activity, i.e., the activity active on the current thread.java.lang.Object
Outcome. data()
Outcome specific information that can be used to determine finer level details about the outcome instance.java.lang.String
HLS. identity()
The HLS name.java.lang.String
Outcome. name()
Give a name for this outcome.int
HLS. priority()
The activity service maintains a priority ordered list of HLS implementations.void
HLS. resumed()
The activity has been resumed on the current thread and is active on that thread.void
HLS. suspended()
The activity is being suspended, but is still active on the current thread. -
Uses of SystemException in com.arjuna.mw.wsas.exceptions
Subclasses of SystemException in com.arjuna.mw.wsas.exceptions Modifier and Type Class Description class
HLSException
Thrown the HLS completion fails.class
SystemCommunicationException
Marker interface for exceptions e.g.Constructors in com.arjuna.mw.wsas.exceptions with parameters of type SystemException Constructor Description HLSException(SystemException ex)
HLSException(java.lang.String reason, SystemException obj)
-
Uses of SystemException in com.arjuna.mw.wscf.api
Methods in com.arjuna.mw.wscf.api that throw SystemException Modifier and Type Method Description Outcome
UserCoordinatorService. coordinate(CompletionStatus cs)
If the application requires and if the coordination protocol supports it, then this method can be used to execute a coordination protocol on the currently enlisted participants at any time prior to the termination of the coordination scope.CoordinatorId
UserCoordinatorService. identifier()
Qualifier[]
UserCoordinatorService. qualifiers()
Status
UserCoordinatorService. status()
-
Uses of SystemException in com.arjuna.mw.wscf.exceptions
Subclasses of SystemException in com.arjuna.mw.wscf.exceptions Modifier and Type Class Description class
BegunFailedException
The coordination protocol failed to start.class
NoCoordinatorException
There is no coordinator associated with the target.class
UnexpectedException
A general error has occurred. -
Uses of SystemException in com.arjuna.mw.wscf.model.sagas.api
Methods in com.arjuna.mw.wscf.model.sagas.api that throw SystemException Modifier and Type Method Description void
UserCoordinator. begin(java.lang.String coordinationType)
Start a new activity.void
UserCoordinator. begin(java.lang.String coordinationType, int timeout)
Start a new activity.void
UserCoordinator. cancel()
Cancel the activity.void
UserCoordinator. close()
Confirm the current activity.void
UserCoordinator. complete()
Complete the activity.ActivityHierarchy
UserCoordinator. currentActivity()
void
CoordinatorManager. delistParticipant(java.lang.String participantId)
Remove the specified participant from the coordinator associated with the current thread.void
CoordinatorManager. enlistParticipant(Participant act)
Enrol the specified participant with the coordinator associated with the current thread.int
UserCoordinator. getTimeout()
Get the timeout value currently associated with activities.CoordinatorId
UserCoordinator. identifier()
void
CoordinatorManager. participantCannotComplete(java.lang.String participantId)
A participant cannot complete during normal execution or compensation.void
CoordinatorManager. participantCompleted(java.lang.String participantId)
The participant has completed its work and it ready to compensate if necessary.void
CoordinatorManager. participantFaulted(java.lang.String participantId)
A participant has faulted during normal execution or compensation.void
UserCoordinator. resume(ActivityHierarchy tx)
Given a token representing a context, associate it with the current thread of control.void
UserCoordinator. setCancelOnly()
Set the termination status for the current activity to cancel only.void
UserCoordinator. setTimeout(int timeout)
Set the timeout to be associated with all subsequently created activities.Status
UserCoordinator. status()
ActivityHierarchy
UserCoordinator. suspend()
Suspend the current activity from this thread and return the token representing the context, if any, or null otherwise. -
Uses of SystemException in com.arjuna.mw.wscf.model.sagas.exceptions
Subclasses of SystemException in com.arjuna.mw.wscf.model.sagas.exceptions Modifier and Type Class Description class
CancelFailedException
A fail occurred during a Business Agreement cancel operation -- only applies in WSBA 1.1.class
CompensateFailedException
There is no coordinator associated with the target.class
CoordinatorCancelledException
There is no coordinator associated with the target.class
CoordinatorConfirmedException
There is no coordinator associated with the target.class
DuplicateSynchronizationException
There is no coordinator associated with the target.class
InvalidSynchronizationException
There is no coordinator associated with the target. -
Uses of SystemException in com.arjuna.mw.wscf.model.sagas.outcomes
Methods in com.arjuna.mw.wscf.model.sagas.outcomes that throw SystemException Modifier and Type Method Description CompletionStatus
CoordinationOutcome. completedStatus()
The state in which the activity completed.java.lang.Object
CoordinationOutcome. data()
Outcome specific information that can be used to determine finer level details about the outcome instance.java.lang.String
CoordinationOutcome. name()
Give a name for this outcome. -
Uses of SystemException in com.arjuna.mw.wscf.model.sagas.participants
Methods in com.arjuna.mw.wscf.model.sagas.participants that throw SystemException Modifier and Type Method Description void
Synchronization. afterCompletion(int status)
The transaction that the instance is enrolled with has either closed or compensated and the relevant termination state ss passed as a parameter.void
Participant. cancel()
Cancel the participant at top-level.void
Participant. close()
Confirm the participant at top-level.void
Participant. compensate()
Compensate the participant.void
ParticipantWithComplete. complete()
Complete the participant.void
Participant. forget()
Inform the participant that is can forget the heuristic result.java.lang.String
Participant. id()
-
Uses of SystemException in com.arjuna.mw.wscf.model.twophase.api
Methods in com.arjuna.mw.wscf.model.twophase.api that throw SystemException Modifier and Type Method Description void
UserCoordinator. begin(java.lang.String serviceType)
Start a new activity.void
UserCoordinator. begin(java.lang.String serviceType, int timeout)
Start a new activity.void
UserCoordinator. cancel()
Cancel the activity.void
UserCoordinator. confirm()
Confirm the current activity.ActivityHierarchy
UserCoordinator. currentActivity()
void
CoordinatorManager. delistParticipant(Participant act)
Remove the specified participant from the coordinator associated with the current thread.void
CoordinatorManager. delistSynchronization(Synchronization act)
Remove the specified synchronization from the coordinator associated with the current thread.void
CoordinatorManager. enlistParticipant(Participant act)
Enrol the specified participant with the coordinator associated with the current thread.void
CoordinatorManager. enlistSynchronization(Synchronization act)
Enrol the specified synchronization with the coordinator associated with the current thread.int
UserCoordinator. getTimeout()
Get the timeout value currently associated with activities.CoordinatorId
UserCoordinator. identifier()
void
CoordinatorManager. participantReadOnly(java.lang.String participantId)
A participant is readonly.void
CoordinatorManager. participantRolledback(java.lang.String participantId)
The participant has rolled back.void
UserCoordinator. resume(ActivityHierarchy tx)
Given a token representing a context, associate it with the current thread of control.void
UserCoordinator. setCancelOnly()
Set the termination status for the current activity to cancel only.void
UserCoordinator. setTimeout(int timeout)
Set the timeout to be associated with all subsequently created activities.Status
UserCoordinator. status()
ActivityHierarchy
UserCoordinator. suspend()
Suspend the current activity from this thread and return the token representing the context, if any, or null otherwise. -
Uses of SystemException in com.arjuna.mw.wscf.model.twophase.exceptions
Subclasses of SystemException in com.arjuna.mw.wscf.model.twophase.exceptions Modifier and Type Class Description class
CoordinatorCancelledException
There is no coordinator associated with the target.class
CoordinatorConfirmedException
There is no coordinator associated with the target.class
DuplicateSynchronizationException
There is no coordinator associated with the target.class
HeuristicCancelException
There is no coordinator associated with the target.class
HeuristicConfirmException
There is no coordinator associated with the target.class
HeuristicHazardException
There is no coordinator associated with the target.class
HeuristicMixedException
There is no coordinator associated with the target.class
InvalidSynchronizationException
There is no coordinator associated with the target.class
ParticipantCancelledException
There is no coordinator associated with the target. -
Uses of SystemException in com.arjuna.mw.wscf.model.twophase.outcomes
Methods in com.arjuna.mw.wscf.model.twophase.outcomes that throw SystemException Modifier and Type Method Description CompletionStatus
CoordinationOutcome. completedStatus()
The state in which the activity completed.java.lang.Object
CoordinationOutcome. data()
Outcome specific information that can be used to determine finer level details about the outcome instance.java.lang.String
CoordinationOutcome. name()
Give a name for this outcome. -
Uses of SystemException in com.arjuna.mw.wscf.model.twophase.participants
Methods in com.arjuna.mw.wscf.model.twophase.participants that throw SystemException Modifier and Type Method Description void
Synchronization. afterCompletion(int status)
The transaction that the instance is enrolled with has completed and the state in which is completed is passed as a parameter.void
Synchronization. beforeCompletion()
The transaction that the instance is enrolled with is about to commit.void
Participant. cancel()
Cancel the participant at top-level.void
Participant. confirm()
Confirm the participant at top-level.void
Participant. confirmOnePhase()
Confirm the participant in a single phase.void
Participant. forget()
Inform the participant that is can forget the heuristic result.java.lang.String
Participant. id()
Vote
Participant. prepare()
Prepare the participant for top-level. -
Uses of SystemException in com.arjuna.mw.wscf11.model.sagas
Methods in com.arjuna.mw.wscf11.model.sagas that throw SystemException Modifier and Type Method Description static CoordinatorManager
CoordinatorManagerFactory. coordinatorManager()
static CoordinatorManager
CoordinatorManagerFactory. coordinatorManager(java.lang.String protocol)
Obtain a reference to a coordinator that implements the specified protocol.static UserCoordinator
UserCoordinatorFactory. userCoordinator()
static UserCoordinator
UserCoordinatorFactory. userCoordinator(java.lang.String protocol)
Obtain a reference to a coordinator that implements the specified protocol. -
Uses of SystemException in com.arjuna.mw.wscf11.model.twophase
Methods in com.arjuna.mw.wscf11.model.twophase that throw SystemException Modifier and Type Method Description static CoordinatorManager
CoordinatorManagerFactory. coordinatorManager()
static CoordinatorManager
CoordinatorManagerFactory. coordinatorManager(java.lang.String protocol)
Obtain a reference to a coordinator that implements the specified protocol.static UserCoordinator
UserCoordinatorFactory. userCoordinator()
static UserCoordinator
UserCoordinatorFactory. userCoordinator(java.lang.String protocol)
Obtain a reference to a coordinator that implements the specified protocol.
-