This page is devoted to give a brief overview of our results from our analysis based on data of tweets from American Politicans. If you haven't already familized yourself with the data we urge you to check out the Data page prior to reading this page to know what data is used.
As this page only contains a subsets of the findings, the full analysis as well as the code for reproducing the results, can be found in Explainer-Notebook. Feel free to checkout our Github repository as well.
This section will briefly summarize the data used for all graph modelling and is composed by two parts. The first part desribes the number of politicians in the dataset and their associations to parties as well as their association to the state which they were elected from. The second part briefly eloborates on how the politicians use Twitter, i.e. how many tweets each politician has made and the difference between the amount of tweets based on party.
Below, the party distribution plotted for the politicians in the data can be seen. Her it should be noted that this does not include all memebers of the 115th and 116th congress but it is limited to those who have a Twitter accounts.
The political system in America containing only two parties is clearly illustrated as well as two independents, Bernie Sanders and Angus King. One Libertarian, Justin Amash, is also present.
Another interesting aggregation is based on the types in the congress, i.e. Representative, Senator, or President (POTUS). Below are the numbers aggregated together with the party such that the distribution can be visualized.
Immediately, it becomes clear that the representatives dominate the dataset with a total of 503 people, hereby 244 are Repulicans and 259 are Democrats. There are only 111 senator and naturally only one president - Donald J. Trump.
Between the 115th and 116th congress all 435 seats in the house of representatives were up for election while only around a third of the 100 seats in the Senate were up for election. That means some of them were not reelected and thus replaced by another candiate and as such they are still present in the dataset. After a brief investigation it was also found that only around a fourth of the seats in the House of Representative got new politicians between the 115th and 116th congress. Moreover, the United States overseas territories also get seats in the house of representatives (but without voting power). With these reasons it makes sense that the representatives are so dominant. Furthermore, it explains why the total number of senators and representatives exceeds 435 and 100, which is number of seats in the House of Representatives and the Senate respectively. From the plot the stacked elements also illustrates the two party system - Democrats and Republicans domminate the political landscape but are fairly equal in terms of sizes.
Another interesting feature is the representation of the states. Below can be seen a stacked barplot for every state in the dataset describing the representation for every party. There is a total 56 states which is more than the usual 50 states that we hear about. This is because American Samoa, District of Columbia, Northern Mariana Islands, Puerto Rico and Virgin Islands also get seats in the House of Representatives. As mentioned they do not have the power to vote but they can participate in debates and they are also on Twitter. These are marked with (*).
In this part the basic statistics of the extracted tweets from the politicians will be presented.
Let's first have a look at the number of tweets based on the party and the type stated in the dataset.
From the barplot, it can be seen that Democrats tweet much more than the Republicans despite their proportion of profile is close to being equal. It is also tnteresting to see that Senators tweet disproportionally more than their colleagues in the House of Representatives - particularly for the Republicans. Recall that there are
Let's explore the distribution of the number of tweets posted per politician.
From the stacked historgram a skewed distribution is seen. Most politicans have tweeted less than 5000 times, but a few are super active on the platform with the most active reaching 18.000 tweets. This is across roughly 40 months so quite active one can say.
In the Data tab we mentioned that 16 prominent American Twitter profiles will be considered in the Retweet Analysis . In the table below can the selected medias and their information about their twitter-account be seen. This data is manually created.
| Media | Type | Twitter Name | Twitter Display Name |
|---|---|---|---|
| ABC News | Television | ABC | ABC News |
| CBS News | Television, radio | CBSNews | CBS News |
| CNN | Television | CNN | CNN |
| Fox News | Television | FoxNews | Fox News |
| MSNBC | Television | MSNBC | MSNBC |
| NBC News | Television | NBCNews | NBC News |
| Bloomberg | Online | business | Bloomberg |
| The New York Times | Newspaper | nytimes | The New York Times |
| USA Today Politics | Newspaper | usatodayDC | USA TODAY Politics |
| Breitbart News | Online | BreitbartNews | Breitbart News |
| TIME | Online | TIME | TIME |
| The Hill | Online | thehill | The Hill |
| POLITICO | Online | politico | POLITICO |
| The Wall Street Journal | Newspaper | WSJ | The Wall Street Journal |
| The Economist | Newspaper | TheEconomist | The Economist |
| HuffPost | Online | HuffPost | HuffPost |
We hope that our selection of media will reveal preferences for American policitians. The analysis of the media by examining retweets from American politicians can be seen in Analysis of Retweets.


Developing logical and accessible webpages
Hello, my name is Shaun Kent, Im 24 years old and currently reside in southwest Washington. I graduated from WSUV in 2019 with a bachelors in Public Affairs. I've always been fascinated with technology both in terms of its potential, growth, and usability which has pushed me to pursue a career in software development. I hope to translate my experience with public policy with my experience as a software engineer to create well designed, functional, and accessible websites.Thank you for checking out my portfolio!
This project was created to practice how HTML5 is written and too see the layout. The project has been furthered by the custom css stylesheet. This webpage showcases my understanding of how to use CSS stylesheets to set the page layout as well as style the various parts of the webpage.
Languages used: HTML5, CSS
View RepoThis project is a Vacation Resort website that will allow travelers access to information like accommodations, activities and travel arrangements. The purpose of this project was to showcase HTML5 and css skills while also learning to use branching so that multiple styles can be offered the the client.
Languages used: HTML5, CSS
View RepoThis is my cats webpage where users can access infromation on Kona's like, dislikes and favorite toys. The purpose of this project was to become more familiar wit the various elements that HTML5 uses and how they are displayed on the user interface. This webpage also shows experiment into using box model in CSS.
Languages used: HTML5, CSS
View Repo


This page will help you on how to create blog posts in Docusaurus.
Create a file at blog/2021-02-28-greetings.md
:
title: Greetings! author: Steven Hansel author_title: Docusaurus Contributor author_url: https://github.com/ShinteiMai author_image_url: https://github.com/ShinteiMai.png —
Congratulations, you have made your first post!
Feel free to play around and edit this post as much you like. ```
A new blog post is now available at http://localhost:3000/blog/greetings
.


--- title: Car Rentals layout: page ---
Car Rentals allows users to rent or hire cars of their choice, user can add cars to their favorite list as well
I built the backend using Ruby-on-Rails with JSON Web Token for authorization and authentication. And the frontend was built using React and Redux.
After completing the app development, tested it locally everything worked as expected. However, after pushing it to Heroku, I JWT used for authentication was not working as expected, spent the whole day troubleshooting this. Thanks to stackoverflow and google final was able to resolve it the next day. I did not include the secrets.yml file to target production environment.


Name
Artist
Year
Producer
Price
Songs
SremmLife
Rae Sremmurd
2009
Young Chop
35.29
No Flex Zone
duration: 3:05
No Type
duration: 4:22
The Pale Emperor
Marilyn Manson
2015
Tyler Bates
15.79
Cupid Carries a Gun
duration: 3:55
Deep Six
duration: 4:05
Unguarded
Rae Morris
2015
Jim Eliot
40.00
Skin
duration: 3:55
Under the Shadows
duration: 4:05
"For You
duration: 2:85
Life
Rae Sremmurd
2007
Rae Sremmurd
16.29
Red Zone
duration: 3:05


Bootstrap Basics
Click me!
Action
Toggle Dropdown
Action
Another action
Something else here
Separated link
This is a jumbotron!
dbhjdkdg dfjkghjkdfhgjkdjkgd jkdhfgkjdhfgkhd
Hi there!
Email address
Password
File input
Example block-level help text here.
Check me out
Submit


WILD WILD WEST (1999)
Rating: 2.0 stars (out of 4.0) ******************************** Key to rating system: 2.0 stars - Debatable 2.5 stars - Some people may like it 3.0 stars - I liked it 3.5 stars - I am biased in favor of the movie 4.0 stars - I felt the movie's impact personally or it stood out ********************************* A Movie Review by David Sunga
Directed by: Barry Sonnenfeld
Written by: Written by S.S. Wilson, Brent Maddock, Jeffrey Price and Peter S. Seaman
Starring: Will Smith, Kevin Kline, Salma Hayek, and Kenneth Branagh
Synopsis: Will Smith plays James West and Kevin Kline is Artemus Gordon in this 1999 movie based on the 1965-70 television adventure/spy series about two 1860s cowboy secret agents.
West attends a party and soon finds himself in trouble. "Sorry I made the mistake of drumming on a white woman's breasts," says West. Meanwhile Gordon falls for a saloon girl named Rita (Salma Hayek) whose father has been kidnapped.  The kidnapper, a scientist named Dr. Arliss Loveless (Kenneth Branagh), is wheelchair-bound, a condition which gives West ample comedic ammunition for emasculation and shortness jokes. As West, Gordon and Rita give chase Loveless plots to dismantle America and give most of it to European colonialist rulers.
Opinion: These days I often hear the WILD WILD WEST song played on MTV. It sounds like an old Stevie Wonder tune with all the same chords but they changed the words and now it's WILD WILD WEST. The song makes a pretty catchy advertisement for the movie.
WILD WILD WEST (1999) shows how agents West and Gordon first meet and become partners. Usually in cop buddy movies new partners develop a close bond after some initial friction. Unfortunately, in WILD WILD WEST chemistry between West and Gordon never seems to develop. James West has initial misgivings about technology and develops a bond with it, but he doesn't seem to like Gordon any more or any less by the end of the movie. West is a Civil War Era African American and Gordon is a white stranger, but the whole relationship aspect seems unexplored.
On the other hand, it's supposed to be escapist fantasy. WILD WILD WEST is the kind of movie where they spend a fortune on special effects but blunder on the details. A bad guy gets electrocuted with a big wrench. I didn't see any batteries or wires. West plucks a flattened bullet from the INSIDE of his bulletproof vest rather than the OUTSIDE. Huh?  And so on.
Given a choice between hearing the MTV song or watching the movie, I take the song.
Reviewed by David Sunga July 5, 1999
Copyright © 1999 by David Sunga This review and others like it can be found at THE CRITIC ZOO: http://www.criticzoo.com email<EMAIL_ADDRESS>The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Fishing vessel run aground successfully removed
by Environment CanterburyUPDATE 25/11 1200 – Small commercial fishing vessel run aground near Kaikōura has been successfully removed
Please attribute any quotes to Environment Canterbury regional on-scene commander Richard Purdon.
At 9pm on Sunday 24 November, the small commercial fishing vessel boat Ruff-Enuff was successfully removed from the water and placed on the roadside using a digger. About 60 litres of mixed fuels in 20 litre containers were removed from the vessel before it was towed above the high tide mark at 9pm on Sunday.
When the vessel ran aground, tanks were ruptured and about 600 litres of diesel fuel was lost. Some localised diesel sheen was visible in the immediate area of the grounding, and a large but thin plume of diesel was observed moving north towards South Bay. Diesel is a very light fuel which spreads and evaporates quickly, which is likely to happen over the coming days.
No affected wildlife has been observed as yet, however the response team is undertaking further shoreline and wildlife assessments, including aerial observations from the Kaikōura Aeroclub, and on-water observations from Whale Watch and Dolphin Encounter.
Members of the public are requested to call Environment Canterbury’s incident response line on 0800 765 588 immediately if they see oil on the water or any wildlife showing signs of distress due to oiling, or use Snap Send Solve.
ENDS


A self-professed geek and map addict, I've worked in the mapping and location space for over 20 years through a combination of luck and occasional good judgement. I'm the CTO of what3words, helping everyone and everything have a human friendly global address. I'm also co-founder and director of Malstow Geospatial, a small consultancy firm offering bespoke consulting and services in the geospatial, geotechnology, maps and location based services fields.
When I'm not in an office, I work from anywhere with the magic combination of good coffee, free Wi-Fi and somewhere to charge my MacBook Pro.
Previously I've been Head of APIs for the Ordnance Survey, the United Kingdom's national mapping agency, the Geotechnologist-in-residence for Lokku, was Director of Places and Director of Global Community Programs for Nokia Maps and HERE Maps. Before joining Nokia I led Yahoo’s UK Geo Technologies group, launching GeoPlanet, Placemaker, helping Flickr and Fire Eagle do location based services and have even worked at the European Space Agency, a job which really was rocket science.
Despite working on mapping strategies and global projects, I try to keep coding, mainly on planes, as maintainer for the Mapstraction JavaScript mapping API and have been known to make the odd WordPress plugin or two. I also talk at conferences a lot.
I'm based in London, where I live with my family, Alison, B10 and I8 in Teddington. A commited Italophile, I'm also a science fiction fan who thinks that removing Deckard's noir voiceover from Blade Runner was utterly the right thing to do. Our house runs on Macs and OS X because it's basically UNIX with a lovely user interface; we've been Windows free for over a decade.
I've been tweeting about maps as @vicchi since 2007, writing about maps at www.vicchi.org since 2001 and also make the occasional map at maps.geotastic.org.
A Fellow of the Royal Geographical Society, I've sat on the Executive for the AGI, the United Kingdom’s Association for Geographic Information, I'm a founder of the Location Forum, the co-founder of WhereCamp EU and conference chair of W3G.
Despite prevailing wisdom, it's a firm belief of mine that espresso, rare steak, red wine and chocolate really should be considered food groups.


Home
(current)
My Kitchen
My Recipes
My Ingredients
Logout
My Fridge
Cheese
20 slices
Dairy
Total: 1
My Freezer
Chicken
20 lbs
Meat
Total: 1
My Pantry
Tuna
10 cans
Meat
Sourdough
1 loaf
Bread
Onions
1 qty
Vegetable
Total: 3


1. What i did to creat my mold and cast was use the laser cutter to engrave my design, and then heat the metal down to a liquid and then poured it into the design i created, and then took my cast mold and then took a drill through it and then put it on a key chain.
1. For my chocolate mold i designed a Buffalo Bills logo through CAD, then used the mill to mill out my mold


public interface HttpEntity
An http entity is included in an http message to represent a resource. See RFC2616 §7 Entity.
An entity contains a body
, and metadata like contentType
.
An entity is sharable if its body can be read multiple times by multiple readers, potentially concurrently. A sharable entity can be cached and served to multiple http messages.
| Abstract Methods | |
|---|---|
ByteSource |
body()
The body of this entity.
|
ContentType |
contentType()
The content type.
|
| Default Methods | |
Async<ByteBuffer> |
bodyBytes(int maxBytes)
Get all the bytes of the body.
|
Async<String> |
bodyString(int maxChars)
Get the body as a String.
|
Long |
contentLength()
The length of the body; null if unknown.
|
String |
contentEncoding()
Encoding that has been applied on the body; null if none.
|
Instant |
lastModified()
When this entity was last modified; null if unknown.
|
Instant |
expires()
When this entity expires; null if unknown.
|
String |
etag()
The entity tag; null if none.
|
boolean |
etagIsWeak()
Whether the etag is weak.
|
ByteSource body() throws IllegalStateException
This method must not return null. If the body is empty, return a ByteSource that contains 0 bytes.
If this entity is sharable, each invocation of this method must return a new, independent ByteSource.
If this entity is not sharable, this method can only be invoked once; further invocations throw IllegalStateException.
The caller must close() the returned ByteSource eventually.
If the producer of the entity wants to treat the body as a sink to write to,
see BytePipe
.
It's possible that the consumer of an `HttpEntity` never calls the `body()` method. The implementation of `body()` should be lazy, creating body only on demand.
The length of the body should be consistent with contentLength()
;
however, if this is a response entity to a HEAD request, the body can be empty,
regardless of the value of contentLength()
.
IllegalStateException
- if invoked more than once on a non-sharable entity.default Async<ByteBuffer> bodyBytes(int maxBytes)
This method is equivalent to
body().
readAll
(maxBytes)
default Async<String> bodyString(int maxChars)
The default implementation calls body()
.
asString(maxChars, charset)
.
The charset is from contentType
's
"charset" parameter;
otherwise "UTF-8" is assumed.
contentEncoding
must be `null`,
or this action fails.
ContentType contentType()
This property corresponds to the Content-Type header.
This method may return null if the content type is unknown, then the recipient of the entity must guess the content type. However this is strongly discouraged.
default Long contentLength()
This property corresponds to the
Content-Length header.
Note that if this is a response entity to a HEAD request,
Content-Length
reports the would-be length,
while the body()
method can return an empty source.
If contentEncoding
!=null,
contentLength is the length after the encoding is applied.
The default implementation returns null.
default String contentEncoding()
This property corresponds to the Content-Encoding header.
For example, if the entity is an html document, and contentEncoding=="gzip", the entity body is the html document compressed in gzip format.
If two entities represent the same resource but with different content encodings, they should have different ETags.
If contentEncoding!=null, the reader of the body needs to decode it to get the original content.
The default implementation returns null.
See also HttpServerConf.requestEncodingPolicy(String)
.
Note that by default HttpServer rejects any request with Content-Encoding,
in which case the server app can assert that
entity.contentEncoding==null for all requests passed to it.
default Instant lastModified()
This property corresponds to the Last-Modified header.
The default implementation returns null.
Note: the precision of HTTP Last-Modified value is 1 second, which is very poor.
It may not adequate for fast changing resources.
Consider ETag instead. The default implementation of etag()
is based on
lastModified()
with nano-second precision.
default Instant expires()
This property corresponds to the Expires header.
The default implementation returns null.
default String etag()
This property corresponds to the
ETag header.
For example, if entity.etag()=="123"
, the response will contain the header
Entity: "123"
See also etagIsWeak()
.
Legal chars in ETag: 0x21-0xFF, except 0x22(") and 0x7F(DEL)
.
Backslash 0x5C(\)
is legal but should not be used either,
because some interpret it as the escape char.
The default implementation is based on lastModified()
and contentEncoding()
:
"t-53319ee8-623a7c0.gzip"
.
default boolean etagIsWeak()
See rfc7232#section-2.1.
The default implementation returns false
.


| Name | |
| IP Address | |
| Status | |
| Servers | |
| Available CPU | Unknown |
| Available Memory | Unknown |
| Available Swap Space | Unknown |
| Available Disk Space | Unknown |
| Tasks Submitted | |
| Tasks Running | |
| Tasks Done | |
| Last Update |
| Server | Tasks | Last Update | |||
|---|---|---|---|---|---|
| Submitted | Running | Done | |||
| Update Interval Seconds : | |
| Name or IP of Node to Show : |


Funnel chart can have 3D look. To achieve this, you should set depth3D and angle properties to some bigger than 0 values. Note, if you do this neckHeight will automatically become 0 (neck won't be displayed).
depth3D
angle
neckHeight


Why Getting it Right is Important
Why is it so important to make the right hire? How does a bad hire impact an organization?
Drag and drop the numbered circle displayed on each statement into the appropriate bucket to classify the impact of a good or a bad hire on an organization. Click Submit to view the feedback.
Drag and drop the numbered circle displayed on each statement into the appropriate bucket to classify the impact of a good or a bad hire on an organization. Click Submit to view the feedback.
As an interviewer, bear in mind the impact of a bad hire on an organization and therefore, the need to hire the right person for any job. Inform candidates about what organizations look for while interviewing. Also explain their role in becoming a ‘good hire’, and the importance of having the right knowledge, skills and attitude towards the job they are applying for.
A good hire :
- Contribute positively to the growth of the organization.
- Make the organization not only bigger, but better.
- Are an asset to the organization.
On the other hand, a bad hire:
- Results in high rates of attrition.
- Decreases the morale of other employees or the organization
- Adds significantly to the recruiting and training costs.
- Reduces revenue and productivity.
- Has a ripple effect on various departments.
1 1 Contribute positively to the growth of the organization. |
2 2 Results in high rates of attrition. |
3 3 Make the organization not only bigger, but better. |
4 4 Decreases the morale of other employees of the organization. |
5 5 Are an asset to the organization. |
6 6 Adds significantly to the recruiting and training costs. |
7 7 Reduces revenue and productivity. |
8 8 Has a ripple effect on various departments |
As much as 80% of employee turnover is due to bad hiring decisions.
- The Harvard Business Review
- The Harvard Business Review


Credible or credulous?
by S. UpendranWhat is the meaning of ‘nerd’? (SK Rajendran, Madurai)
The word, which is mostly used to show disapproval, rhymes with ‘herd’, ‘bird’ and ‘curd’. A ‘nerd’ is someone who is socially very awkward; he doesn’t know how to behave when he is in the company of others. He says or does the wrong thing. He is extremely intelligent, but the things he can talk about are the limited topics that he is passionate about; he finds it difficult to make polite conversation. Physically, he is not appealing. The four male characters in the television series, ‘Big Bang Theory’, are classic examples of nerds. The well-known American writer of children’s books, Dr. Seuss, coined the word.
Like most nerds, Devi spends most of her time in the library.

What is the meaning of ‘tiger by the tail’? (R Janet, Hyderabad)
How safe would you feel if you held a ferocious tiger by its tail? Not very, I am sure. While you are holding on to the tail, you are constantly worried about the teeth at the other end. The expression ‘have a tiger by the tail’ is frequently used in everyday contexts to suggest that you have taken on a task which you are not truly prepared for — you have inadvertently bitten off more than you can chew. The situation you are in or the person you are dealing with is dangerous. You have too big a problem to cope with, and you have no clue how to wriggle out of it.
I was keen on becoming the team leader. Now, six months later, I feel like I have a tiger by the tail.
What is the difference between ‘credulous’ and ‘credible’? (K Jayalakshmi, Erode)
Although both words come from the Latin word ‘credere’ meaning ‘to believe or trust’, they have vastly different meanings. When you say that someone’s story is ‘credible’, what you are suggesting is that it sounds believable. When you say that someone made a ‘credible’ witness, you are suggesting that he came across as someone ‘worthy of trust’. ‘Credulous’, on the other hand, has a negative connotation. When you refer to someone as being ‘credulous’, what you are suggesting is that he/she is willing to believe whatever the other person tells him/her. He/she ‘trusts’ others blindly; he/she is naive or gullible.
Raju’s account of how the accident happened didn’t sound credible at all.
Das doesn’t have a job. He makes ends meet by duping credulous tourists.
********
Be nice to nerds. Chances are, you’ll end up working for one. Bill Gates
The writer teaches at the English and Foreign Languages University, Hyderabad. upendrankye@gmail.com


created July 15, 2006
1. Examine the following Employee
class.
class Employee implements Comparable<Employee> { private String firstName; private String lastName; private int birthYear; String getFirstName() { return firstName; } String getLastName() { return lastName; } int getBirthYear() { return birthYear; } public Employee( String f, String l, int year ) { firstName = f; lastName = l; birthYear = year; } public String toString(){ finish this } public int compareTo( Employee other ) { finish this } }
Finish the compareTo()
method
using all three of the instance variables.
Access them using the getX()
methods.
Compare two employees by first looking at their last names.
If the names are different, return the value the String
method compareTo()
returns with the last names.
If the names are equal, look at the first name and
return the value the String
method compareTo()
returns.
If both parts of the name are equal,
return the difference of the birthYear
s so that
the older employee precedes the younger employee.
Test your implementation using this class:
import java.util.Arrays; class EmployeeTester { public static void main ( String[] args ) { Employee[] workers = new Employee[12]; workers[0] = new Employee( "Fred", "Adams", 1963); workers[1] = new Employee( "John", "Adams", 1959); workers[2] = new Employee( "Elmer", "Adams", 1976); workers[3] = new Employee( "Nancy", "Devon", 1963); workers[4] = new Employee( "Andrew", "Lewis", 1983); workers[5] = new Employee( "Douglas", "Page", 1981); workers[6] = new Employee( "Donald", "Wolder", 1963); workers[7] = new Employee( "Henry", "Wolder", 1972); workers[8] = new Employee( "Robert", "Wolder", 1959); workers[9] = new Employee( "Howard", "Cohen", 1933); workers[10] = new Employee( "Howard", "Cohen", 1958); workers[11] = new Employee( "Donald", "Rice", 1935); Arrays.sort( workers ); for ( int j=0; j<workers.length; j++ ) System.out.println( workers[j].toString() ); } }
2. Examine the following Diamond
class.
class Diamond implements Comparable<Diamond> { private String stockNumber; private int carot; /* size of the diamond */ private String clarity; /* clarity grade of the diamond */ private char color; /* color grade D-Z */ private String cut; /* name of the cut */ String getStock() { return stockNumber; } double getCarot() { return carot; } String getClarity() { return clarity; } char getColor() { return color; } String getCut() { return cut; } public Diamond( String s, double car, String clar, char col, String ct ) { stockNumber = s; carot = car; clarity = clar; color = col; cut = ct; } public String toString(){ finish this } public int compareTo( Diamond other ) { finish this } }
The size of a diamond is measured in carets, usually less than 5.0. The clarity grade of a diamond is give as a two or three letter code, FL, IF, VVS1, VVS2, VS1, VS2, SI1, SI2, I1, I2, I3. FL (flawless) is the best, I3 is the worst. The color grade is a one letter code, D through Z. D is the best, Z is the worst. The cut is the name of the pattern the diamond has been cut into.
Finish the toString()
and the compareTo()
methods.
Write compareTo()
so that diamonds are ordered first by caret,
then by clarity OR color, whichever is better for the particular diamond.
Since there are 23 grades of color, but only 11 grades of clarity,
regard the first two color grades as equal in grade to the first grade of clarity,
the next two color grades equal in grade to the second grade of clarity, and so on.
Write compareTo()
so that better diamonds are to the left
of poor diamonds. This means that
goodDiamond.compareTo( poorDiamond )
returns a negative value. Notice that large caret diamonds will appear first on the list, the reverse of the usual order for numbers.
In comparing the codes for clarity, you will need a series of
if
statements.
It might be useful to write a separate compareClarity()
method
as part of the class.
Use this testing class:
import java.util.Arrays; class DiamondTester { public static void main ( String[] args ) { Diamond[] stones = new Diamond[16]; stones[0] = new Diamond( "A1023", 1.0, "VS1", 'F', "brilliant"); stones[1] = new Diamond( "A5911", 1.1, "VVS2", 'G', "rose"); stones[2] = new Diamond( "C5427", 1.0, "VS1", 'D', "princess"); stones[3] = new Diamond( "D8307", 1.6, "SI1", 'H', "brilliant"); stones[4] = new Diamond( "B4825", 0.3, "I1", 'D', "rose"); stones[5] = new Diamond( "A1844", 2.1, "VS2", 'D', "lozenge"); stones[6] = new Diamond( "A3747", 3.1, "SI2", 'W', "baguette"); stones[7] = new Diamond( "E6393", 2.3, "VS2", 'I', "brilliant"); stones[8] = new Diamond( "C5619", 2.8, "VVS1", 'E', "pear"); stones[9] = new Diamond( "E8348", 1.4, "VS2", 'G', "brilliant"); stones[10] = new Diamond( "D2381", 1.7, "I3", 'G', "brilliant"); stones[11] = new Diamond( "C9253", 1.3, "VS2", 'H', "baguette"); stones[12] = new Diamond( "G3459", 2.1, "VS2", 'H', "rose"); stones[13] = new Diamond( "B3598", 2.4, "VVS2", 'D', "pear"); stones[14] = new Diamond( "D9836", 2.8, "IF", 'E', "princess"); stones[15] = new Diamond( "E1046", 2.2, "FL", 'E', "rose"); Arrays.sort( stones ); for ( int j=0; j<stones.length; j++ ) System.out.println( stones[j].toString() ); } }
Click here to go back to the main menu.


Game Theory: Introduction to the course¶
This course will cover the following aspects of Game Theory:
- Normal form games and Nash equilibrium
- Evolutionary Game Theory
- Some contemporary research
All course materials are available online at vknight.org/gt/. You can also find all the source files that create that website at github.com/drvinceknight/gt/.
Course notes¶
The course notes are written using Jupyter notebooks, you will see mathematics but also Python code used to illustrate and confirm certain results.
For example here is some code verifying the simple identity:
$$ (a + b) ^ 2 = a^2 + 2ab + b ^2. $$import sympy as sym # A library used for symbolic computations
sym.init_printing() # Use LaTeX to clean up the output
a, b = sym.symbols('a, b')
((a + b) ** 2).expand()
In class we will not follow the course notes: these are there for you to read on your own time. Instead we will use activities and other examples to illustrate the concepts. I have my own notes for those (which are also available to you): http://vkgt.readthedocs.io/en/latest/.
If you would like some information about the pedagogic approach:
- You can find my "teaching philosophy" here: https://vknight.org/tch-phi/
- Here is a paper describing some of the pedagogic rational for this approach: https://journals.gre.ac.uk/index.php/msor/article/view/254/254
It is possible that the course notes will change: for things like typos and clarifications, all of the notes are hosted openly on github and if you're interested you can find a list of all changes here: https://github.com/drvinceknight/gt/commits/master
Technology in class¶
Please use whatever resources you need to be successful in this class. Let me know if I can help with anything.
Office hours¶
I will hold 2-3 hours a week for office hours during which you may come and get help. Specific hours will be determined collaboratively as a class during the first class meeting.
Assessment¶
There are two piece of assessment in this course:
- Individual coursework (25%): The individual coursework includes a programming component.
- Exam (75%)


PERL595DELTA
Section: Perl Programmers Reference Guide (1)Updated: 2009-02-26
Index Return to Main Contents
NAME
perl595delta - what is new for perl v5.9.5DESCRIPTION
This document describes differences between the 5.9.4 and the 5.9.5 development releases. See perl590delta, perl591delta, perl592delta, perl593delta and perl594delta for the differences between 5.8.0 and 5.9.4.Incompatible Changes
Tainting and printf
When perl is run under taint mode, "printf()" and "sprintf()" will now reject any tainted format argument. (Rafael Garcia-Suarez)undef and signal handlers
Undefining or deleting a signal handler via "undef $SIG{FOO}" is now equivalent to setting it to 'DEFAULT'. (Rafael)strictures and array/hash dereferencing in defined()
"defined @$foo" and "defined %$bar" are now subject to "strict 'refs'" (that is, $foo and $bar shall be proper references there.) (Nicholas Clark)(However, "defined(@foo)" and "defined(%bar)" are discouraged constructs anyway.)
(?p{}) has been removed
The regular expression construct "(?p{})", which was deprecated in perl 5.8, has been removed. Use "(??{})" instead. (Rafael)Pseudo-hashes have been removed
Support for pseudo-hashes has been removed from Perl 5.9. (The "fields" pragma remains here, but uses an alternate implementation.)Removal of the bytecode compiler and of perlcc
"perlcc", the byteloader and the supporting modules (B::C, B::CC, B::Bytecode, etc.) are no longer distributed with the perl sources. Those experimental tools have never worked reliably, and, due to the lack of volunteers to keep them in line with the perl interpreter developments, it was decided to remove them instead of shipping a broken version of those. The last version of those modules can be found with perl 5.9.4.However the B compiler framework stays supported in the perl core, as with the more useful modules it has permitted (among others, B::Deparse and B::Concise).
Removal of the JPL
The JPL (Java-Perl Linguo) has been removed from the perl sources tarball.Recursive inheritance detected earlier
Perl will now immediately throw an exception if you modify any package's @ISA in such a way that it would cause recursive inheritance.Previously, the exception would not occur until Perl attempted to make use of the recursive inheritance while resolving a method or doing a "$foo->isa($bar)" lookup.
Core Enhancements
Regular expressions
- Recursive Patterns
-
It is now possible to write recursive patterns without using the "(??{})"
construct. This new way is more efficient, and in many cases easier to
read.
Each capturing parenthesis can now be treated as an independent pattern that can be entered by using the "(?PARNO)" syntax ("PARNO" standing for ``parenthesis number''). For example, the following pattern will match nested balanced angle brackets:
/ ^ # start of line ( # start capture buffer 1 < # match an opening angle bracket (?: # match one of: (?> # don't backtrack over the inside of this group [^<>]+ # one or more non angle brackets ) # end non backtracking group | # ... or ... (?1) # recurse to bracket 1 and try it again )* # 0 or more times. > # match a closing angle bracket ) # end capture buffer one $ # end of line /x
Note, users experienced with PCRE will find that the Perl implementation of this feature differs from the PCRE one in that it is possible to backtrack into a recursed pattern, whereas in PCRE the recursion is atomic or ``possessive'' in nature. (Yves Orton)
- Named Capture Buffers
-
It is now possible to name capturing parenthesis in a pattern and refer to
the captured contents by name. The naming syntax is "(?<NAME>....)".
It's possible to backreference to a named buffer with the "\k<NAME>"
syntax. In code, the new magical hashes "%+" and "%-" can be used to
access the contents of the capture buffers.
Thus, to replace all doubled chars, one could write
s/(?<letter>.)\k<letter>/$+{letter}/g
Only buffers with defined contents will be ``visible'' in the "%+" hash, so it's possible to do something like
foreach my $name (keys %+) { print "content of buffer '$name' is $+{$name}\n"; }
The "%-" hash is a bit more complete, since it will contain array refs holding values from all capture buffers similarly named, if there should be many of them.
"%+" and "%-" are implemented as tied hashes through the new module "Tie::Hash::NamedCapture".
Users exposed to the .NET regex engine will find that the perl implementation differs in that the numerical ordering of the buffers is sequential, and not ``unnamed first, then named''. Thus in the pattern
/(A)(?<B>B)(C)(?<D>D)/
$1 will be 'A', $2 will be 'B', $3 will be 'C' and $4 will be 'D' and not $1 is 'A', $2 is 'C' and $3 is 'B' and $4 is 'D' that a .NET programmer would expect. This is considered a feature. :-) (Yves Orton)
- Possessive Quantifiers
- Perl now supports the ``possessive quantifier'' syntax of the ``atomic match'' pattern. Basically a possessive quantifier matches as much as it can and never gives any back. Thus it can be used to control backtracking. The syntax is similar to non-greedy matching, except instead of using a '?' as the modifier the '+' is used. Thus "?+", "*+", "++", "{min,max}+" are now legal quantifiers. (Yves Orton)
- Backtracking control verbs
- The regex engine now supports a number of special-purpose backtrack control verbs: (*THEN), (*PRUNE), (*MARK), (*SKIP), (*COMMIT), (*FAIL) and (*ACCEPT). See perlre for their descriptions. (Yves Orton)
- Relative backreferences
- A new syntax "\g{N}" or "\gN" where ``N'' is a decimal integer allows a safer form of back-reference notation as well as allowing relative backreferences. This should make it easier to generate and embed patterns that contain backreferences. See ``Capture buffers'' in perlre. (Yves Orton)
- \K escape
-
The functionality of Jeff Pinyan's module Regexp::Keep has been added to
the core. You can now use in regular expressions the special escape "\K"
as a way to do something like floating length positive lookbehind. It is
also useful in substitutions like:
s/(foo)bar/$1/g
that can now be converted to
s/foo\Kbar//g
which is much more efficient. (Yves Orton)
- Vertical and horizontal whitespace, and linebreak
-
Regular expressions now recognize the "\v" and "\h" escapes, that match
vertical and horizontal whitespace, respectively. "\V" and "\H"
logically match their complements.
"\R" matches a generic linebreak, that is, vertical whitespace, plus the multi-character sequence "\x0D\x0A".
The _ prototype
A new prototype character has been added. "_" is equivalent to "$" (it denotes a scalar), but defaults to $_ if the corresponding argument isn't supplied. Due to the optional nature of the argument, you can only use it at the end of a prototype, or before a semicolon.This has a small incompatible consequence: the prototype() function has been adjusted to return "_" for some built-ins in appropriate cases (for example, "prototype('CORE::rmdir')"). (Rafael)
UNITCHECK blocks
"UNITCHECK", a new special code block has been introduced, in addition to "BEGIN", "CHECK", "INIT" and "END"."CHECK" and "INIT" blocks, while useful for some specialized purposes, are always executed at the transition between the compilation and the execution of the main program, and thus are useless whenever code is loaded at runtime. On the other hand, "UNITCHECK" blocks are executed just after the unit which defined them has been compiled. See perlmod for more information. (Alex Gough)
readpipe() is now overridable
The built-in function readpipe() is now overridable. Overriding it permits also to override its operator counterpart, "qx//" (a.k.a. "``"). Moreover, it now defaults to $_ if no argument is provided. (Rafael)default argument for readline()
readline() now defaults to *ARGV if no argument is provided. (Rafael)UCD 5.0.0
The copy of the Unicode Character Database included in Perl 5.9 has been updated to version 5.0.0.Smart match
The smart match operator ("~~") is now available by default (you don't need to enable it with "use feature" any longer). (Michael G Schwern)Implicit loading of feature
The "feature" pragma is now implicitly loaded when you require a minimal perl version (with the "use VERSION" construct) greater than, or equal to, 5.9.5.Modules and Pragmas
New Pragma, mro
A new pragma, "mro" (for Method Resolution Order) has been added. It permits to switch, on a per-class basis, the algorithm that perl uses to find inherited methods in case of a multiple inheritance hierarchy. The default MRO hasn't changed (DFS, for Depth First Search). Another MRO is available: the C3 algorithm. See mro for more information. (Brandon Black)Note that, due to changes in the implementation of class hierarchy search, code that used to undef the *ISA glob will most probably break. Anyway, undef'ing *ISA had the side-effect of removing the magic on the @ISA array and should not have been done in the first place.
bignum, bigint, bigrat
The three numeric pragmas "bignum", "bigint" and "bigrat" are now lexically scoped. (Tels)Math::BigInt/Math::BigFloat
Many bugs have been fixed; noteworthy are comparisons with NaN, which no longer warn about undef values.The following things are new:
- config()
- The config() method now also supports the calling-style "config('lib')" in addition to "config()->{'lib'}".
- import()
- Upon import, using "lib => 'Foo'" now warns if the low-level library cannot be found. To suppress the warning, you can use "try => 'Foo'" instead. To convert the warning into a die, use "only => 'Foo'" instead.
- roundmode common
- A rounding mode of "common" is now supported.
Also, support for the following methods has been added:
- bpi(), bcos(), bsin(), batan(), batan2()
- bmuladd()
- bexp(), bnok()
- from_hex(), from_oct(), and from_bin()
- as_oct()
In addition, the default math-backend (Calc (Perl) and FastCalc (XS)) now support storing numbers in parts with 9 digits instead of 7 on Perls with either 64bit integer or long double support. This means math operations scale better and are thus faster for really big numbers.
New Core Modules
- *
- "Locale::Maketext::Simple", needed by CPANPLUS, is a simple wrapper around "Locale::Maketext::Lexicon". Note that "Locale::Maketext::Lexicon" isn't included in the perl core; the behaviour of "Locale::Maketext::Simple" gracefully degrades when the later isn't present.
- *
- "Params::Check" implements a generic input parsing/checking mechanism. It is used by CPANPLUS.
- *
- "Term::UI" simplifies the task to ask questions at a terminal prompt.
- *
- "Object::Accessor" provides an interface to create per-object accessors.
- *
- "Module::Pluggable" is a simple framework to create modules that accept pluggable sub-modules.
- *
- "Module::Load::Conditional" provides simple ways to query and possibly load installed modules.
- *
- "Time::Piece" provides an object oriented interface to time functions, overriding the built-ins localtime() and gmtime().
- *
- "IPC::Cmd" helps to find and run external commands, possibly interactively.
- *
- "File::Fetch" provide a simple generic file fetching mechanism.
- *
- "Log::Message" and "Log::Message::Simple" are used by the log facility of "CPANPLUS".
- *
- "Archive::Extract" is a generic archive extraction mechanism for .tar (plain, gziped or bzipped) or .zip files.
- *
- "CPANPLUS" provides an API and a command-line tool to access the CPAN mirrors.
Module changes
- assertions
- The "assertions" pragma, its submodules "assertions::activate" and "assertions::compat" and the -A command-line switch have been removed. The interface was not judged mature enough for inclusion in a stable release.
- base
- The "base" pragma now warns if a class tries to inherit from itself. (Curtis ``Ovid'' Poe)
- strict and warnings
- "strict" and "warnings" will now complain loudly if they are loaded via incorrect casing (as in "use Strict;"). (Johan Vromans)
- warnings
-
The "warnings" pragma doesn't load "Carp" anymore. That means that code
that used "Carp" routines without having loaded it at compile time might
need to be adjusted; typically, the following (faulty) code won't work
anymore, and will require parentheses to be added after the function name:
use warnings; require Carp; Carp::confess "argh";
- less
- "less" now does something useful (or at least it tries to). In fact, it has been turned into a lexical pragma. So, in your modules, you can now test whether your users have requested to use less CPU, or less memory, less magic, or maybe even less fat. See less for more. (Joshua ben Jore)
- Attribute::Handlers
- "Attribute::Handlers" can now report the caller's file and line number. (David Feldman)
- B::Lint
- "B::Lint" is now based on "Module::Pluggable", and so can be extended with plugins. (Joshua ben Jore)
- B
- It's now possible to access the lexical pragma hints ("%^H") by using the method B::COP::hints_hash(). It returns a "B::RHE" object, which in turn can be used to get a hash reference via the method B::RHE::HASH(). (Joshua ben Jore)
- Thread
- As the old 5005thread threading model has been removed, in favor of the ithreads scheme, the "Thread" module is now a compatibility wrapper, to be used in old code only. It has been removed from the default list of dynamic extensions.
Utility Changes
cpanp
"cpanp", the CPANPLUS shell, has been added. ("cpanp-run-perl", an helper for CPANPLUS operation, has been added too, but isn't intended for direct use).cpan2dist
"cpan2dist" is a new utility, that comes with CPANPLUS. It's a tool to create distributions (or packages) from CPAN modules.pod2html
The output of "pod2html" has been enhanced to be more customizable via CSS. Some formatting problems were also corrected. (Jari Aalto)Documentation
New manpage, perlunifaq
A new manual page, perlunifaq (the Perl Unicode FAQ), has been added (Juerd Waalboer).Installation and Configuration Improvements
C++ compatibility
Efforts have been made to make perl and the core XS modules compilable with various C++ compilers (although the situation is not perfect with some of the compilers on some of the platforms tested.)Visual C++
Perl now can be compiled with Microsoft Visual C++ 2005.Static build on Win32
It's now possible to build a "perl-static.exe" that doesn't depend on "perl59.dll" on Win32. See the Win32 makefiles for details. (Vadim Konovalov)win32 builds
All win32 builds (MS-Win, WinCE) have been merged and cleaned up.d_pseudofork and d_printf_format_null
A new configuration variable, available as $Config{d_pseudofork} in the Config module, has been added, to distinguish real fork() support from fake pseudofork used on Windows platforms.A new configuration variable, "d_printf_format_null", has been added, to see if printf-like formats are allowed to be NULL.
Help
"Configure -h" has been extended with the most used option.Much less 'Whoa there' messages.
64bit systems
Better detection of 64bit(only) systems, and setting all the (library) paths accordingly.Ports
Perl has been reported to work on MidnightBSD.Support for Cray XT4 Catamount/Qk has been added.
Vendor patches have been merged for RedHat and GenToo.
Selected Bug Fixes
PerlIO::scalar will now prevent writing to read-only scalars. Moreover, seek() is now supported with PerlIO::scalar-based filehandles, the underlying string being zero-filled as needed. (Rafael, Jarkko Hietaniemi)study() never worked for UTF-8 strings, but could lead to false results. It's now a no-op on UTF-8 data. (Yves Orton)
The signals SIGILL, SIGBUS and SIGSEGV are now always delivered in an ``unsafe'' manner (contrary to other signals, that are deferred until the perl interpreter reaches a reasonably stable state; see ``Deferred Signals (Safe Signals)'' in perlipc). (Rafael)
When a module or a file is loaded through an @INC-hook, and when this hook has set a filename entry in %INC, __FILE__ is now set for this module accordingly to the contents of that %INC entry. (Rafael)
The "-w" and "-t" switches can now be used together without messing up what categories of warnings are activated or not. (Rafael)
Duping a filehandle which has the ":utf8" PerlIO layer set will now properly carry that layer on the duped filehandle. (Rafael)
Localizing an hash element whose key was given as a variable didn't work correctly if the variable was changed while the local() was in effect (as in "local $h{$x}; ++$x"). (Bo Lindbergh)
New or Changed Diagnostics
Deprecations
Two deprecation warnings have been added: (Rafael)
Opening dirhandle %s also as a file Opening filehandle %s also as a directory
Changed Internals
The anonymous hash and array constructors now take 1 op in the optree instead of 3, now that pp_anonhash and pp_anonlist return a reference to an hash/array when the op is flagged with OPf_SPECIAL (Nicholas Clark).Reporting Bugs
If you find what you think is a bug, you might check the articles recently posted to the comp.lang.perl.misc newsgroup and the perl bug database at http://rt.perl.org/rt3/ . There may also be information at http://www.perl.org/ , the Perl Home Page.If you believe you have an unreported bug, please run the perlbug program included with your release. Be sure to trim your bug down to a tiny but sufficient test case. Your bug report, along with the output of "perl -V", will be sent off to<EMAIL_ADDRESS>to be analysed by the Perl porting team.
SEE ALSO
The Changes file for exhaustive details on what changed.The INSTALL file for how to build Perl.
The README file for general stuff.
The Artistic and Copying files for copyright information.
Index
- NAME
- DESCRIPTION
- Incompatible Changes
- Core Enhancements
- Modules and Pragmas
- Utility Changes
- Documentation
- Installation and Configuration Improvements
- Selected Bug Fixes
- New or Changed Diagnostics
- Changed Internals
- Reporting Bugs
- SEE ALSO
This document was created by man2html, using the manual pages.
Time: 05:29:07 GMT, December 24, 2015


Click here to download this week's dataset as a CSV
Click here to download this week's dataset as a Hyper Extract
Historical Background
The Mesozoic Era was a time of diverse animal life on Earth, with dinosaurs being the most famous creatures to roam the planet during the era. Dinosaurs fascinate both young and old due to their fantastical appearance, the fossils & evidence they left behind and overall mystery associated with their very being & extinction. The first recorded evidence dinosaur fossil finds was in the early 1800's in England.
These discoveries stimulated our imagination, with various estimations of what the animals would have looked like when their bones were fully articulated and covered in skin. We know now that these drawings and interpretations, sometimes featuring random horns, spikes or other decorations were grossly incorrect. From what we now know are thumbs being placed as nose horns, to awkward postures, science has come a long way in helping us figure out how these magnificent creatures actually looked and acted.
Large amounts of money are spent every year on the excavation of geological formations that have been found to contain countless specimens. Outside of the field, additional research is carried out in museums and laboratories across the world. Despite the subject matter being at least 65 million years old, discoveries are made and reported in the scientific literature all the time. The sudden disappearance of these incredible creatures could hold lessons for humanity as we live on our ever changing planet.
With our oldest dataset yet, what kind of insights can you unearth? Take some time, and post your viz to Tableau Public, and Twitter with the hashtag #ThrowbackThursday, tagging @TThrowbackThurs.
Data Source
The dataset this week was sourced from the Paleobiology Database. Please be sure to cite the source on your viz.
I took the photo on this page at the Houston Museum of Natural Science in 2016.


Basic Cognito Example
Login
Create User
Verify User
Logout
Please Login Below
Create New User
Verify User
Logout


Welcome to Syriac.me, your online crash course in Classical Syriac Aramaic! This site will teach you all the fundamentals of the language. You'll learn how to read and write, how to build sentences, and much more!
Whether you're Syriac trying to learn your language, a Christian interested in Jesus' mother language, or a scholar of the Near East, this website is the perfect starting point!
This site teaches you Classical Syriac, also known as Kthobonoyo, according to Western pronunciation. That means we say "Alloho" for God, rather than "Allaha" (the Eastern way). However, we use Eastern script since it's the script for MAC and Safari display. If you're running Windows, all Syriac text should display as Estrangelo. For more information, check out the alphabet page.


|
BitShares-Core
6.1.0
BitShares blockchain implementation and command-line interface software
|
Public Member Functions | |
| websocket_tls_client_impl (const std::string &ca_filename) | |
| virtual | ~websocket_tls_client_impl () |
| std::string | get_host () const |
| void | setup_peer_verify (context_ptr &ctx, const std::string &ca_filename) |
| Public Member Functions inherited from fc::http::detail::generic_websocket_client_impl< asio_tls_stub_log > | |
| generic_websocket_client_impl () | |
| virtual | ~generic_websocket_client_impl () |
| websocket_connection_ptr | connect (const std::string &uri, const fc::http::headers &headers) |
Additional Inherited Members | |
| Public Attributes inherited from fc::http::detail::generic_websocket_client_impl< asio_tls_stub_log > | |
| fc::promise< void >::ptr | _connected |
| fc::promise< void >::ptr | _closed |
| fc::thread & | _client_thread |
| websocketpp::client< asio_tls_stub_log > | _client |
| websocket_connection_ptr | _connection |
| std::string | _uri |
| fc::optional< connection_hdl > | _hdl |
Definition at line 554 of file websocket.cpp.
|
inline |
Definition at line 557 of file websocket.cpp.
|
inlinevirtual |
Definition at line 605 of file websocket.cpp.
|
inline |
Definition at line 607 of file websocket.cpp.
|
inline |
Definition at line 612 of file websocket.cpp.


Class HexagonBar, that holds all the nessesary information for HexagonBar and it's details therefore we can use in the interface.
More...
#include <hexagon_bar.h>
|
| struct | Properties |
| | Struct with material specific properties TODO:Check if this can be moved to the base class. More...
|
| |
|
|
std::ostream & | operator<< (std::ostream &os, const HexagonBar &obj) |
| | Shift operator overload for class Aluminium, this will print all the nessesery informations.
|
| |
Class HexagonBar, that holds all the nessesary information for HexagonBar and it's details therefore we can use in the interface.
◆ Type
| Enumerator |
|---|
| HexagonBar | This grade is commercially pure aluminum. It is soft and ductile and has excellent workability, making it ideal for applications with difficult forming. It can be welded using any method, but it is non heat-treatable. It has an excellent resistance to corrosion and is commonly used in the chemical and food processing industries.
|
◆ HexagonBar()
| MassCalculator::Shapes::HexagonBar::HexagonBar |
( |
double |
side, |
|
|
double |
length |
|
) |
| |
◆ getDiagonal()
| double MassCalculator::Shapes::HexagonBar::getDiagonal |
( |
void |
| ) |
const |
Get the Radius object.
- Returns
- const double Radius of the HexagonBar
◆ getLength()
| double MassCalculator::Shapes::HexagonBar::getLength |
( |
void |
| ) |
const |
Get the Length object.
- Returns
- const double Length of the HexagonBar
◆ getSide()
| double MassCalculator::Shapes::HexagonBar::getSide |
( |
void |
| ) |
const |
Get the Side object.
- Returns
- const double Side of the HexagonBar
◆ getSurfaceArea()
| double MassCalculator::Shapes::HexagonBar::getSurfaceArea |
( |
void |
| ) |
const |
Get the Surface Area object.
- Returns
- double Surface Are of the HexagonBar
◆ getType()
| std::string MassCalculator::Shapes::HexagonBar::getType |
( |
void |
| ) |
const |
Get the Surface Area object.
- Returns
- double Surface Are of the HexagonBar
◆ getVolume()
| double MassCalculator::Shapes::HexagonBar::getVolume |
( |
void |
| ) |
const |
Get the Volume object.
- Returns
- double Volume of the HexagonBar
◆ setSize()
| bool MassCalculator::Shapes::HexagonBar::setSize |
( |
double |
side, |
|
|
double |
length |
|
) |
| |
Set the Size object.
- Parameters
-
- Returns
- true If setting the size is successful
-
false If setting the size fails
The documentation for this class was generated from the following files:
- /home/runner/work/masscalculator.github.io/masscalculator.github.io/MassCalculator/masscalculator-core/libraries/masscalculator-core/include/masscalculator/masscalculator-core/shapes/hexagon_bar.h
- /home/runner/work/masscalculator.github.io/masscalculator.github.io/MassCalculator/masscalculator-core/libraries/masscalculator-core/src/shapes/hexagon_bar.cc


I'm sure all of us are familiar with the famous "How to ask question the smart way" guide.
I don't necessarily want to reinvent the wheel here, but I have some beefs with the guide that inspired me to make this thread.
Specifically:
- The original guide is too big. It's like a 10 page thing. Often when I want to draw people's attention to it, I just want to draw their attention to a specific paragraph, which isn't very convenient.
- I don't agree with all of it. Specifically the amount of research he expects people to do.
- It's too broad and doesn't cover some really specific things that I see often on these particular boards.
So the goal of this thread is to address those issues and allow the userbase here to contribute some of their own tips.
The idea is simple, but in order to keep it useful I would like to introduce some "rules" for posting new tips:
- 1 item per post. That way individual items can be linked instead of having to link to one massive article. This way when these tips are "broken", we can link the user to the direct post rather than directing them to a general guide.
- Put a one-line summary of the tip in bold (and possibly in caps -- just make it noticable) at the top so that when the person clicks on the link, it's immediately clear what they did wrong.
- Try to keep each item short. People aren't going to read a whole page. In order for this to be effective we need to avoid the tl;dr.
That's about all I can think of for now. I'll start off with a few that get my goat. More are welcome.
 We filter them based on what the topic says. If your topic accurately describes your problem, it's more likely to get a response.
Examples of bad thread topics:
"A quick question":
doesn't describe anything
"How do I...":
Incomplete sentence. Finish the sentence and maybe it would be a good topic.
"Getting compiler errors"
Better, but still not very descriptive
Examples of good thread topics:
"Numbers printed to the screen aren't showing up right"
"Using vector, program crashes on exit."
TELL US WHAT COMPILER ERROR YOU'RE GETTING
Compiler errors often tell you exactly what's wrong with the code. They take experience to fully understand, but the regulars here all have that experience and know how to read them.
Do's:
- Copy paste the error as the compiler tells it to you
- Show us the line of code that is causing the compiler error
Don'ts
- Don't tell us you're getting error C2203. We don't know what that is.
- Don't paraphrase/reword the error. Chances are you're leaving out/changing some critical information that we need.
 Be specific about why it doesn't work.
- Do you get errors when you try to compile? If yes, tell us what and where the errors are.
- Does the program not do what you want when you run it? If yes, tell us what you want it to do, and what it actually does.
We can't solve a problem when we don't know what the problem is.


Javascript, Hybrid Mobile, Node and UX Design lover.
Started programming in C++, with knowledge in HTML5, CSS3, JavaScript languages and is currently improving his knowledge of Node.js, ReactJS and React Native. I discovered my passion for Javascript a few months ago when I decided to develop my first application using ReactJS.


SABOTAGE
Copyright (c) 1985 Lakeside Publ.
Sabotage is played on a 9x13 square board with the following setup:
- HOME CELL - The cell marked as red/green point at the diagram. The red point belongs to Red, the green point to Green.
- NEUTRAL KING - Starts at the board center (the yellow piece at the diagram).
- MOVE PHASE - On each turn, each player moves one of his stones:
- Soldiers slide (orthogonally or diagonally) over a number of empty cells equal to the sum of friendly and enemy pieces (the neutral King does not count) at the column of the piece to be moved. The last cell can be occupied by a non friendly piece, which is captured.
- There are no jumps.
- If a soldier captures a neutral or enemy King, it is promoted to King.
- GOAL - Wins the player that move his King into his home cell.
An example Red's turn. Red is almost winning but his King is under attack by a green soldier. The red King or the red soldier cannot attack it, since they must move exactly two cells (both belong to the same column). The green soldier can attack the King since it is the only piece on its column.
If Red moves his King to [1], he makes a double threat: (a) capture the green soldier with his soldier (now, it can attack the green soldier) and (b) he can move down the King into his home base in three turns. If Green captures the red soldier, Red moves his King one cell to the south and wins the game in two moves. There is no valid move left to Green in this position.
There is a ZRF to play Sabotage with Zillions. Another variant to this game is just swap home cells. In this case, plaers need to invade the enemy's area to win (which seems more fun).


apache-ant-1.10.7
Introduction to Apache Ant
The Apache Ant package is a
Java-based build tool. In theory,
it is like the make
command, but without make's wrinkles. Ant is different. Instead of a model that is
extended with shell-based commands, Ant is extended using Java classes. Instead of writing shell
commands, the configuration files are XML-based, calling out a
target tree that executes various tasks. Each task is run by an
object that implements a particular task interface.
This package is known to build and work properly using an LFS-9.1
platform.
Package Information
Apache Ant Dependencies
Required
A JDK (Java Binary or OpenJDK-12.0.2) and
GLib-2.64.1
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/apache-ant
Installation of Apache Ant
First fix an incompatibility issue between the documentation
standard used in the build tree, and the one expected by OpenJDK-12.0.2:
sed -i 's/--add-modules java.activation/-html4/' build.xml
Build a limited bootstrap version of Apache Ant using the following command:
./bootstrap.sh
Download the runtime dependencies using the fetch.xml
ant build script:
bootstrap/bin/ant -f fetch.xml -Ddest=optional
Build Apache Ant by running the
following command:
./build.sh -Ddist.dir=$PWD/ant-1.10.7 dist
Install, as the root
user:
cp -rv ant-1.10.7 /opt/ &&
chown -R root:root /opt/ant-1.10.7 &&
ln -sfv ant-1.10.7 /opt/ant
Command Explanations
bootstrap/bin/ant -f fetch.xml
-Ddest=optional: Downloads the missing dependencies
to user's home directory, and copy them into the source tree (in
the lib/optional
directory, where
ant picks them up at
build time).
./build.sh -Ddist.dir=$PWD/ant-1.10.7
dist: This command builds, tests, then installs the
package into a temporary directory.
Configuring Apache Ant
Config
Files
/etc/ant/ant.conf
, ~/.ant/ant.conf
, and ~/.antrc
Configuration Information
Some packages will require ant to be in the search path
and the ANT_HOME
environment variable
defined. Satisfy these requirements by issuing, as the
root
user:
cat > /etc/profile.d/ant.sh << EOF
# Begin /etc/profile.d/ant.sh
pathappend /opt/ant/bin
export ANT_HOME=/opt/ant
# End /etc/profile.d/ant.sh
EOF
The above instructions assume you have configured your system as
described in The Bash Shell Startup
Files.
Contents
Installed Programs:
ant, antRun, antRun.pl,
complete-ant-cmd.pl, runant.pl, and runant.py
Installed Libraries:
Numerous ant*.jar
and dependant libraries in
$ANT_HOME
/lib
Installed Directories:
/opt/ant-1.10.7
Short Descriptions
|
ant
|
is a Java based build
tool used by many packages instead of the conventional
make
program.
|
|
antRun
|
is a support script used to start ant build scripts in a
given directory.
|
|
antRun.pl
|
is a Perl script that
provides similar functionality offered by the
antRun
script.
|
|
complete-ant-cmd.pl
|
is a Perl script that
allows Bash to complete
an ant
command-line.
|
|
runant.pl
|
is a Perl wrapper script
used to invoke ant.
|
|
runant.py
|
is a Python wrapper
script used to invoke ant.
|
|
ant*.jar
|
files are the Apache Ant
Java class libraries.
|
Last updated on 2020-03-12 04:24:44 -0500


Providing professional financial advice for generations.
This is the technological developments that are expected to bring computers into the physical environment as autonomous entities without human direction, freely moving and interacting with humans and other objects.
The emergence of autonomous things marks a key landmark in technological progress. Early examples include autonomous drones and self-driving vehicles. Expect to see more autonomous things as these kinds of technologies develop further.
Autonomous things are fundamentally important because they represent the first real untethering of machines from explicit human guidance. Humans are used to programming things, but are not used to them acting in autonomous ways. Self-driving vehicles are still making their way onto the roads. While widespread adoption of autonomous things has yet to occur, there are indications that it is coming soon.
Why are robotics important?
Robotics technology influences every aspect of work and home. Robotics has the potential to positively transform lives and work practices, raise efficiency and safety levels and provide enhanced levels of service. Even more, robotics is set to become the driving technology underpinning a whole new generation of autonomous devices and cognitive artefacts that, through their learning capabilities, interact seamlessly with the world around them, and hence, provide the missing link between the digital and physical world.
Robotics is already the key driver of competitiveness and flexibility in large scale manufacturing industries. Without robotics many of Europe’s successful manufacturing industries would not be able to compete from their current European bases of operation. In these industries robotics already underpins employment. Increasingly robotics is becoming more relevant for smaller manufacturing industries which are central to Europe’s manufacturing and employment capacity.
For more detailed information on autonomous things, click here.


@extends('layout/memberArea') @section('title','ASESOR') @section('container')
| Name | {{$asesor->name}} | |
| MET | {{$asesor->met}} | |
| Sertifikat | {{$asesor->sertifikat}} | |
| Place and Date of Birth | {{$asesor->placebirth}}, {{$asesor->datebirth}} | |
| Sex | {{$asesor->sex}} | |
| Marital Status | {{$asesor->maritalstatus}} | |
| Religion | {{$asesor->religion}} | |
| Home Address | {{$asesor->address}} | |
| Telephone No. | {{$asesor->telephone}} | |
| Position/Office | {{$asesor->office}} | |
| LSP Registration | {{$asesor->lspregistration}} | |
| Latest Education | {{$asesor->education}} | |
| Master/Lead/Asesor/Training/Recurrent | {{$asesor->position}} | |
| Initial Asesor Training | {{$asesor->initial}} |
| Employer | eemployer; ?> | |
| Job/Responsibilities Uploaded File |
| Employer | educationdata; ?> | |
| Job/Responsibilities Uploaded File |
| Employer | avitraining; ?> | |
| Job/Responsibilities Uploaded File |
| Employer | othertraining; ?> | |
| Job/Responsibilities Uploaded File |
| License Data | licenseheld; ?> | |
| License Validity |
| Teaching Aspeck | teachingaspeck; ?> |
| conclusion ?> |
| recommendation ?> |
| masterasesor; ?> |


Demonstrating students call on NSFAF to release their outstanding funds
Students from University of Namibia, Namibia Institute of Technology, vocational training centres and International University of Management took to the street this morning calling on Namibia Students Financial Assistance Fund (NSFAF) to release their outstanding funds.


Reports multiple consecutive spaces in a RegExp.
Because spaces are not visible by default, it can be hard to see how many spaces are required.
The RegExp can be made more clear by replacing the consecutive spaces with a single space and a counted quantifier.
Example:
( )
After the quick-fix is applied:
( {5})
New in 2017.1


ANDROID NEW DEVICE ONBOARDING EXPERIENCE
Having a new device is exciting but the setup experience can be daunting. For this project, I worked with UX team to create a fluid experience that is secure, fast and consistent with Google overall user experience.
OBJECTIVES & CHALLENGES
SECURE, FAST, CONSISTENT
With new devices some users forget about their existing accounts and would sign up for new accounts, which leads to the proliferation of a large number of inactive user accounts over the years. One of the main goal for this project is to remind users of existing accounts, while taking into account security issues by only providing necessary user information.
DESIGN PROCESS
RESEARCH AND LEARN
When designing to improve existing solution, it is important to understand the current product and potentials . Partnered with designers, researchers, and software engineers, I tried to understand the reasons of the final implementations. I gathered information on different user groups and their pain points. I learned Google design principles and identified the ones are most relevant to this project and use them as my guidelines in design stage. (trust, personalized, effortless) Technical implementation (engineering implementation - algorithms, logistics and limitations)
Maps & Flow
System Design
By laying out the current solution, I identified the decision points from a user’s perspective and then decide the points that requires updates for better user experience.
Experience Design
USER JOURNEY
After finding the solution, I try to apply it onto a real user and really see the solution from the user’s perspective to identify issues and opportunities.


| Top |
Functions
nc_reduced_shear_calib_ref ()
NcReducedShearCalib *
nc_reduced_shear_calib_ref (NcReducedShearCalib *rs_calib
);
Increases the reference count of rs_calib
by one.
nc_reduced_shear_calib_free ()
void
nc_reduced_shear_calib_free (NcReducedShearCalib *rs_calib
);
Decreases the reference count of rs_calib
by one.
nc_reduced_shear_calib_clear ()
void
nc_reduced_shear_calib_clear (NcReducedShearCalib **rs_calib
);
If rs_calib
is different from NULL, decreases the reference count of
rs_calib
by one and sets rs_calib
to NULL.
nc_reduced_shear_calib_eval ()
gdouble nc_reduced_shear_calib_eval (NcReducedShearCalib *rs_calib
,const gdouble g_th
,const gdouble psf_size
,const gdouble gal_size
);
[virtual eval]


| Penny Pics | |
| Customized Birthday/Anniversary Pictures with Pennies | |
|
Looking for that one-of-a-kind birthday/anniversary gift? PennyPics is a unique birthday/anniversary gift idea that shows how much you really care. A PennyPic is a handsomely framed collection of pennies; one penny minted from each year of your loved one's life; with a custom message to your liking. Click on any of the pictures on this page to see the samples in more detail.
PennyPics celebrates your loved one with a customized message that
personalizes how you really feel. Want to make your loved one feel
good? -- "Your not getting older, your getting more valuable!" A Custom greeting is available on the back. Depending on the age of your loved one, there may be limited space on the front mount. At your option, you can compose a personal greeting that is displayed on the back of the mount. PennyPics is a perfect gift idea for those special birthdays/anniversary! Order yours today! See our Price List and conditions. |
Home Price List Order Contact Us |
|
Contact: Resa © Copyright 2005-2006. All rights reserved. |


Nice to meet you
I'm senior web developer...
If you have hard but interesting project...
↓ ↓ ↓ write me ↓ ↓ ↓
Nice to meet you
I'm senior web developer...
If you have hard but interesting project...
↓ ↓ ↓ write me ↓ ↓ ↓
MY LATEST PROJECTS
Just big free database of books, magazines and comics.
CLICK TO REDIRECTA bot that do all dirty work for you on CSGOlounge.com.
CLICK TO REDIRECTAdded some functional to this
CLICK TO REDIRECTMY TOP-SKILLS
HTML5
CSS3
JavaScript
Canvas
PHP
Bootstrap
Materialize
JQuery / AngularJS
Paper.js
Laravel


Applies a function to each open transaction in a cache.
(defgeneric map-transactions (cache function) (:documentation "Applies a function to each open transaction in a cache."))


Choleor
Color your choreo style with AI-based Choreo creator
Choose music to create your choreo
Search
Upload


UI-Grid provides an i18nService that you can use to change the default language, add translations, or change existing translations.
The easiest way to set language is to use the ui-i18n directive in a div that contains the grid.
<div ui-i18n="{{lang}}">Only one ui-i18n directive is allowed. The current language setting is stored in the i18n service (singleton) so there is currently no way to have more than one language per app.
Another option is to use the i18nService and use the setCurrentLang method
i18nService.setCurrentLang('fr');
For an example using angular-translate to translate your headers, refer to http://plnkr.co/edit/KnrKTst5dWXvlZNeIy9c?p=preview
If you would like to get better performance out of your application, it is recommended that you take advantage of UI-Grid's multi-file support. By default ui-grid.base.js will contain just the english language, in order to load the other language follow the example bellow:
<script src="/release/ui-grid.base.js"></script> <script src="/release/i18n/ui-grid.language.[YOUR_LANGUAGE_HERE].js"></script> <!-- Alternatively you can load all languages provided with you grid by loading the following --> <script src="/release/i18n/ui-grid.language.all.js"></script>


Promoting your territory towards foreign tourists
EasyCamper wants to promote the excellance of italian food and wine,art,culture and the economy.
Discover the places linked to your area that you can link to your structure
Additional services designed for needs of campers
Travelling often means that you don't have time to organise excurcions along your route. EasyCamper takes care of that!
Discover the Guided Tour and additional services that you can link to your structure
Free online showcase with promotion in Italy and abroad
Forget about the time and money spent on creating your own website or e-commerce system for bookings.
Easycamper creates your showcase . Discover the terms and conditions for joining the Network


Multivariate break test
In this tutorial, I explain how to implement, in a flexible way, the algorithm of Bai, Lumsdaine, and Stock (1998).
Step 1: Let’s begin by lagging our matrix of observations.
This function takes as argument a matrix of time series and lags it by an order (q).
Code
compute_lags <- function(Y #time series matrix Y
, q) #lag order q
{
p <- dim(Y)[1] #get the dimensions
n <- dim(Y)[2]
myDates <- rownames(Y)[(q + 1) : p] #optional: keep the rownames dates of the data frame with final matching
Y <- data.matrix(Y) #matrix conversion
YLAG <- matrix(data = NA, nrow <- (p - q), ncol <- (n * (q + 1))) #create an empty matrix
for(i in 0:q)
{
YLAG[ , (n * i + 1):(n * (i + 1))] <- Y[(q - i + 1):(p - i), ]
}
Y <- YLAG[,1:n]
YLAG <- YLAG[,(n + 1):dim(YLAG)[2]]
return(list(Y = Y, YLAG = YLAG, myDates = myDates))
}
Step 2: Create all matrices
This function takes as argument, a matrix Y (of multivariate time series), an order q for the VAR, an optional matrix X of contemporaneous covariates, it adds an optional trend and determines whether we test for a break at the mean level (intercept = TRUE) or for all the parameters (intercept = FALSE).
Code
matrix_conformation <- function(Y, q, X, trend, intercept)
{
pInit <- dim(Y)[1] #get the original number of observations
lY <- compute_lags(Y, q) #get the list of contemporaneous and lags objects
Y <- lY$Y #get the matching dependent matrix
YLAG <- lY$YLAG #get the lagged dependent variables matrix
myDates <- lY$myDates #get the original matching rowname vector (of dates)
p <- dim(Y)[1] #length of the matrix
nEq <- dim(Y)[2] #number of equations of the vAR
print(p)
In <- diag(nEq) #identity matrix of the number of equations of the VAR
Gt <- as.matrix(cbind(rep(1, p), YLAG)) #create a unique matrix transpose of G with one intercept and autoregressive terms
n <- dim(Gt)[2] #incremental number of regressors
if(!is.null(X)) #if additional covariates matrix is passed as argument
{
if(pInit==dim(X)[1]) #and if its size is equal to the original matrix Y
{
Gt <- cbind(Gt, data.matrix(X[(q + 1) : pInit, ])) #increment Gt by the contemporaneous covariate matrix X
n <- dim(Gt)[2] #increment the total number of regressors
}
else
print("The number of observations of X does not match the one of Y")
}
if(trend) #check if we add a trend
{
Gt <- cbind(Gt, seq(1, p, by = 1)) #add trend
n <- dim(Gt)[2] #increment the total number of regressors
}
if(intercept) #if only the intercept is allowed to break
{
s <- t(data.matrix(c(rep(0, n)))) #create the selection vector
s[1] <- 1 #vector only select the first element (intercept) to test the shift
S <- kronecker(s, In) #create the selection matrix
}
if(!intercept) #full parameters structural change estimation
{ #get the full dimension of the test
r <- nEq * n
S <- diag(r) #identity matrix of the size of the test is the selection matrix
}
G <- t(Gt) #transpose Gt to get G as in BLS
Yex <- data.matrix(c(t(Y))) #Expend and vectorize Y
Gex <- kronecker(t(G), In) #Expend G
return(list(Yex = Yex, Gex = Gex, p = p, G = G, S = S, myDates = myDates, Y = Y, nEq = nEq))
}
Step 3: We determine which is the optimal order of the VAR(q). For this we keep the option of using the Akaike Information Criterion (AIC) or Bayesian Information Criterion (BIC).
We add the argument qMax which determines up until which lag we are going to compute the criteria.
Code
compute_aicbic <- function(Y, qMax, X, trend, intercept) #compute the AIC and BIC criteria for lags from 1 to 6
{
library(stats) #load stats package
AICBIC = matrix(data <- NA, nrow = 2, ncol = qMax) #create empty matrix for the AIC / BIC criteria
for(q in 1:qMax)
{
print(paste0("Testing lags number : ", q))
lConfMatrix <- matrix_conformation(Y, q, X, trend, intercept) #create a list of conformed objects for the estimation
Yex <- lConfMatrix$Yex
Gex <- lConfMatrix$Gex
mod <- lm(Yex~Gex) #estimate the model with lm
AICBIC[1,q] <- AIC(mod) #get AIC
AICBIC[2,q] <- BIC(mod) #get BIC
}
rownames(AICBIC) <- c("AIC", "BIC")
colnames(AICBIC) <- paste0("lags = ", 1:qMax)
return(AICBIC)
}
Step 4: Let’s create a function to compute the parameters of the VAR(q).
This function is based on the pre-computed conformed matrix. We keep the option to compute it by Ordinary Least Squares (OLS), Feasible Generalized Least Squares (FGLS) or Iterative Generalized Least Squares (IGLS). FGLS and IGLS are required if we add additional covariates that are not common to all equations as in a Seemingly Unrelated Regression (SUR). The arguments are a matrix of covariates Z, which includes original and breaking covariates. Yex is an expended vector of the dependent variables Y, nEq is the number of equations, p is the number of observations, estMode is a string which can switch between “OLS”, “FGLS” and “IGLS”. In the case of “IGLS”, iter is an integer which determines the number of iterations used.
Code
compute_beta <- function(Z, Yex, nEq, p, estMode, iter) #function which takes the regressor matrices Z and Yex, number of equations nEq
#number of observations p, mode of estimation "estMode" and number of iterations
#in the case of iterative feasible general least square
{
if(estMode == "OLS") #if OLS
{
Beta <- solve(Z %*% t(Z), tol = 0) %*% Z %*% Yex #solve the system and get the vector of betas
}
if(estMode == "FGLS") #if FGLS
{
Beta <- solve(Z %*% t(Z), tol = 0) %*% Z %*% Yex #solve the system and get the vector of betas
Sigma <- compute_sigma(Z, Yex, Beta, nEq) #get the covariance matrix of errors
Omega <- kronecker(diag(p), Sigma) #get Omega
Beta <- solve(Z %*% solve(Omega, tol = 0) %*% t(Z), tol = 0) %*% Z %*% solve(Omega, tol = 0) %*% Yex #solve the system and get the vector of betas
}
if(estMode == "IGLS") #if IGLS
{
Beta <- solve(Z %*% t(Z), tol = 0) %*% Z %*% Yex #solve the system and get the vector of betas
for (i in 1:iter)
{
Sigma <- compute_sigma(Z, Yex, Beta, nEq) #get the covariance matrix of errors
Omega <- kronecker(diag(p), Sigma) #get Omega
Beta <- solve(Z %*% solve(Omega, tol = 0) %*% t(Z), tol = 0) %*% Z %*% solve(Omega, tol = 0) %*% Yex #solve the system and get the vector of betas
# print(Sigma) #control for convergence / non divergence
}
}
Sigma <- compute_sigma(Z, Yex, Beta, nEq) #final estimation of Sigma
return(list(Beta = Beta, Sigma = Sigma))
}
Step 5: Let’s compute the covariance matrix of errors: Sigma.
This function simply compute the errors generated by the VAR in OLS, FGLS or IGLS mode.
Code
compute_sigma <- function(Z, Yex, Beta, nEq) #compute the covariance matrix of errors as in BLS (1998)
{
errors <- (Yex - t(Z) %*% Beta) #get the n*p vector of residuals
Errors <- matrix(errors, ncol = nEq, byrow = T) #reset as matrix to obtain Sigma
Sigma <- cov(Errors)
return(Sigma)
}
Step 6: We compute the F-statistic of the selected breaking parameters.
Code
compute_fstat <- function(R, Beta, Z, p, Sigma) #compute the f-statistic as in BLS (1998)
{
RBeta <- R %*% Beta #pre compute the RBeta matrix with the selected coefficients allowed to break
if(!is.null(Sigma)) #if the covariance matrix of error is passed as argument, compute F-stat
{
Omega <- kronecker(diag(p), Sigma) #get Omega
Fk <- p * t(RBeta) %*% solve(R %*% solve((Z %*% solve(Omega, tol = 0) %*% t(Z)) / p, tol = 0) %*% t(R), tol = 0) %*% RBeta
}
return(Fk)
}
Step 7: Before stepping into the confidence interval computation, let’s write a function computing the alphas based on critical values of the limiting distribution V (see, Picard, 1985).
This function takes a vector of critical values (e.g., 90%, 95% and 99%) and get the corresponding alpha levels.
Code
compute_vdistr_cv = function(ci = c(0,9, 0.95, 0,99)) #computes the critical values for a vector of confidence intervals proposed, ci
{
u <- length(ci) #get the number of ci elements
target <- 1 - (1 - ci) / 2 #redefine target for a two tail CI
print(paste0("The vdistr targets are: ",target))
x <- seq(-200, 200, 0.01) #define the support sequence "x" for the CDF of V
V <- (3 / 2) * exp(abs(x)) * pnorm( (-3 / 2) * abs(x)^0.5 ) - (1 / 2) * pnorm( (-1 / 2) * abs(x)^0.5 ) #compute V
cumV <- cumsum(V)/sum(V) #scale the CDF of V to reach one
# dev.new()
# plot(x, cumsum(gamma)/sum(gamma), t = 'l') #optionally plot V (nice shape!)
cv <- rep(NA, u)
k <- 1
print(target)
for(i in 2:length(x))
{
if(cumV[i-1] < target[k] && cumV[i] >= target[k])
{
cv[k] <- x[i]
k <- k + 1
if(k>u)
break
}
}
print(cv)
return(cv)
}
Step 8: We compute the corresponding confidence intervals for a potential break date.
This function uses the original G matrix of covariates, the selection matrix S, the covariance matrix Sigma and the alphas from the critical values computed above.
Code
compute_ci <- function(G, S, Sigma, R, Beta, cv, p) #as per Bekeart Harvey Lumsdaine (2002) // recall that RBeta = S %*% deltaT
{
u <- length(cv) #get the number of critical values from the vdistr
ciDelta <- rep(NA, u) #create empty vector
RBeta <- R %*% Beta #pre compute the selection of (breaking) parameters to test
tCi <- solve(t(RBeta) %*% S %*% kronecker((G %*% t(G)) / p, solve(Sigma, tol = 0)) %*% t(S) %*% RBeta, tol = 0) #compute the conf interval factor
for(i in 1:u)
{
ciDelta[i] <- cv[i] * tCi #get the vector of critical values
}
# print(ciDelta)
return(ciDelta)
}
Step 9: One step before launching the main function, get a nice graphical output for our results.
Code
compute_plot_stats <- function(myDates, Variables, fstat, CI, Y, meanShift) #function to compute summary statistics and deliver plots
{
library(ggplot2)
library(reshape2)
library(ggpubr)
library(stargazer)
myDates <- as.Date(myDates, format = "%d.%m.%Y")
maxF <- which.max(fstat) #get the index when the break occurs
cis <- round(CI[maxF, ]) #get the confidence intervals around the break
#hard code for three different confidence intervals
startDate90 <- myDates[maxF - cis[1]]
endDate90 <- myDates[maxF + cis[1]]
startDate95 <- myDates[maxF - cis[2]]
endDate95 <- myDates[maxF + cis[2]]
startDate99 <- myDates[maxF - cis[3]]
endDate99 <- myDates[maxF + cis[3]]
p <- dim(Y)[1]
n <- dim(Y)[2]
Y <- Y * 100 #get values in percentage
Y <- apply(Y, 2, as.double)
Y <- data.frame(cbind(myDates, Y))
colnames(Y)[1] <- "Date"
colnames(Y)[2:(n + 1)] <- Variables
Y[,1] <- myDates
Y <- melt(Y, id.var = "Date") #reshape to long format
names(Y)[2] = "Variables"
dev.new()
g1 <- ggplot(Y, aes(x = Date, y = value, group = Variables, colour = Variables))
g1 <- g1 + geom_line()
g1 <- g1 + ggtitle("") + xlab("Date") + ylab("Intensity (%)")
g1 <- g1 + coord_cartesian(ylim = c(0, max(Y$value, na.rm = T)))
g1 <- g1 + scale_y_continuous(expand = c(0,0)) #force the y axis to start at zero
g1 <- g1 + scale_x_date(breaks = scales::pretty_breaks(n = 10))
g1 <- g1 + theme_bw()
#add shaded area for various ci
g1 <- g1+annotate("rect", xmin = startDate90, xmax = endDate90, ymin = 0, ymax = Inf,
alpha = .6)
g1 <- g1+annotate("rect", xmin = startDate95, xmax = endDate95, ymin = 0, ymax = Inf,
alpha = .4)
g1 <- g1+annotate("rect", xmin = startDate99, xmax = endDate99, ymin = 0, ymax = Inf,
alpha = .2)
d <- data.frame(date = myDates[maxF], event = "The event")
g1 <- g1 + geom_vline(data = d, mapping = aes(xintercept = date), color = "black", size = 1) #add the break line
return(g1)
}
Step 10: Finally, the main function, wrapping up all others and running a loop for all potential k breaks considered
This function takes all the aforementioned arguments, adding a trim parameter (in percent) to compute the burn-in and “burn-out” periods. In addition, I add a boolean parameter (posBreak), which if set to TRUE will discard all breaks arising from a decrease in intercept or full parameters.
Code
main <- function(Y #Y is a matrix or vector which will be lagged by (q) to compute a VAR(q)
, X = NULL #X is a matrix of (contemporaneous) covariates
, trend = FALSE #trend is a boolean indicating whether a trend vector should be added to the VAR
, intercept = TRUE #intercept is a boolean indicating whether the test applies on the mean shift (TRUE) or all parameters (FALSE)
, ci = c(0.9, 0.95, 0.99) #ci is the vector of confidence intervals (in growing order) to compute based on the CDF of a V distr.
, estMode = "OLS" #estMode can take values of "OLS", "FGLS", "IGLS"
, iter = 3 #in the case of "IGLS", the number of iteration "iter" can be specified.
, aicbicMode = "AIC" #AicbicMode can be "AIC" or "BIC" depending on the maximum criterion to select
, qMax = 6 #qMax is the number of lags (from 1 to qMax) tested to determine the AIC / BIC maximum.
, trim = 0.15 #trim is the percentage parameter to start and end the sample analysis
, posBreak = FALSE #if we want the algorithm to only detect positive breaks
)
{
myVars <- colnames(Y) #get the variable names
qOpt <- compute_aicbic(Y, qMax, X, trend, intercept) #return the AIC and BIC criteria for lags from 1 to 6
print(qOpt) #print the matrix of AIC and BIC for each lags
q <- as.numeric(which.max(qOpt[aicbicMode,])) #choose the lag q according to the max AIC
print(paste0("lag with the maximum ", aicbicMode, " is: ", q))
lconf <- matrix_conformation(Y, q, X, trend, intercept) #create a list of conform objects for the estimation
Yex <- lconf$Yex #get the conformed (expanded) Yex matrix (for the system, in vector form)
Gex <- lconf$Gex #get the conformed G matrix of regressors for the system
p <- lconf$p #final number of observations
G <- lconf$G #original matrix of regressors
S <- lconf$S #selection matrix
Y <- lconf$Y #matching original dependent variables matrix
nEq <- lconf$nEq #original number of equations / dependent variables
myDates <- lconf$myDates #matching dates
print(paste0("The number of equations in the system is: ", nEq))
fstat <- rep(NA, p) #create a vector of f_statistics for each k tested
meanShift <- rep(NA, p) #create a vector with the evaluated size of the intercept difference
CI <- matrix(data = NA, nrow = p, ncol = length(ci)) #create a matrix of confidence intervals for each k tested
cv <- compute_vdistr_cv(ci) #compute critical values for the vector of confidence intervals proposed
startInd <- round(trim * p) #start index
endInd <- round(p - trim * p) #end index
for(k in startInd:endInd) #loop over the k with a trimming date / burn period
{
if(k%%10==0)
print(paste0("The iteration is at the level k = ", k)) #get an idea of where we are in the loop every 10 iterations
GexB <- Gex %*% t(S)
GexB[1:((k - 1) * (nEq)),] <- 0 #force filling the GexB matrix with 0 before and original values after k
Z <- t(cbind(Gex, GexB)) #bind the regressor and breaking regressor matrices together
lbetaSigma <- compute_beta(Z, Yex, nEq, p, estMode, iter) #compute the BetaSigma object list
Beta <- lbetaSigma$Beta #get the vector of betas
Sigma <- lbetaSigma$Sigma #get the covariance matrix of errors
pBeta <- length(Beta) #get the length of the vector of betas
#create a selection matrix to get only the betas of interest (breakings)
if(intercept) #1 - case where only shift in intercept
{
R <- matrix(data = 0, nrow = nEq, ncol = pBeta)
R[,(pBeta - nEq + 1):pBeta] <- diag(nEq)
}
if(!intercept) #2 - case where all parameters break
{
R <- matrix(data = 0, nrow = pBeta / 2 , ncol = pBeta)
R[,(pBeta / 2 + 1):pBeta] <- diag(pBeta / 2)
}
fstat[k] <- compute_fstat(R, Beta, Z, p, Sigma) #compute the F-statistic for the current k
CI[k, ] <- compute_ci(G, S, Sigma, R, Beta, cv, p) #compute the confidence interval for the current k
meanShift[k] <- mean(R %*% Beta) #get the mean intercept shift
}
if(posBreak) #if posBreak is TRUE, limit to positive break detection
fstat[meanShift < 0] <- 0
dev.new()
plot(fstat) #plots the generated sequence of F-statistics
g1 <- compute_plot_stats(myDates, myVars, fstat, CI, Y)
breakInd <- which.max(fstat)
breakDate <- myDates[breakInd]
breakCi <- CI[breakInd, ]
rownames(Y) <- myDates
Gt <- t(G)
rownames(Gt) <- myDates
meanShift <- meanShift[breakInd]
maxF = max(fstat, na.rm=T)
trimDates = matrix(data=c(myDates[startInd], myDates[endInd]),nrow = 1, ncol = 2)
colnames(trimDates) <- c("begin trim date", "end trim date")
return(list(fstat = fstat #return a "multibreak" class object
, maxF = maxF
, confInterval = breakCi
, criticalValues = cv
, breakDate = breakDate
, Y = data.frame(Y)
, G = data.frame(Gt)
, breakInd = breakInd
, meanShift = meanShift
, aicbic = qOpt
, g1 = g1
, trimDates = trimDates))
}
Simulation: now that everything is ready, let’s generate some clean data to test whether we are able to identify break dates.
This extra function generates a matrix of p time series of n observations, based on the R rnorm generation. The argument intensity is a double value which is added to the generated data after the break that we can set to occur at any percent of the dataset (here at 35%)
Code
compute_simul <- function(n, p, intensity = 1, whenbreak = 0.35)
{
set.seed(123) #optional
prebreakN <- round(n * whenbreak)
postbreakN <- round(n * (1 - whenbreak))
Y <- rbind(matrix(rnorm(prebreakN * p) + 5, nrow = prebreakN, ncol = p), matrix(rnorm(postbreakN * p) + 5 + intensity, nrow = postbreakN, ncol = p))
startDate <- as.Date("22.01.2020", format = "%d.%m.%Y") #date when I wrote this code
simulDates <- 0:(n - 1) + startDate
simulDates <- format(simulDates, format = "%d.%m.%Y")
rownames(Y) <- simulDates
colnames(Y) <- LETTERS[1:p]
print(head(Y))
return(Y)
}
Graphical result with three simulated variables
Graphical result with five simulated variables
To get the full working package, including data, you can clone or import the project from my github repository


Hailu Ren's practice mainly focuses on photography and sound, experimenting with the potentiality for these two mediums to manifest themselves within each other.
The installation Riot on the Hush explores how noise can be visualised in photographic images and acoustically recreated by the viewers' interaction with the photographic print.
Hailu juxtaposes photographs of Butoh dance movement with collaged fragments of sounding objects that reflect how human beings react to the noise objects generate. The materiality of these images creates a 'soundscape' of its own, both through the crumpled surfaces displayed, and from the action of stepping on them. The subtle sound generated by the stepped on print is amplified through speakers and in this way, becomes disturbing, highlighting its material presence.
This body of work aims to create a multi-sensory and interactive experience and to add synaesthetic value to photography in the contemporary context of the gallery.


--- layout: page title: Benjamin Söllner subtitle: Blog & Portfolio description: Benjamin Söllner - big data & self driving cars tags: photography, data, data science, Benjamin Söllner, data analyst, integration, IT integration, information technology, visualization, multimedia computer science, projects, portfolio, blog --- {% include JB/setup %}


LADY MARYAM ABACHA ABACHA COURT GIDADO ROAD KANO - NIGERIA ATTENTION:C.E.O I am lady Maryam Abacha, wife of the late General Sani Abacha,ex-military Head of State of the Federal Republic of Nigeria who died on the 8th of June 1998 of heart problems. I contacted you because of my need to deal with person/persons who my family and I have had no previous personal relationship with. An adventist friend of the family introduced you to me. Since the death of my husband, my family had been subjected to all sorts of harrassment and intimidation with lots of negative reports emanating from the government and the press about my husband. The present Government has also ensured that our bank accounts are frozen and all assests siezed. It is in view of this that I seek your co-operation and assistance in the transfer of the sum of US$100Million only being the very last of my family fund in my possession and control. The Federal Government have seized all our properties and frozen all our accounts both local and international, but my only hope now is the available US$100Million cash, which I carefully packaged and deposited with a security finance company in Holland. My purpose of contacting you is for someone who will be able to pay the dumurrage charges incured in the security finance company and also after transfering the funds, will be able to invest the funds on my behalf till such a time when I will be free from my present predicament. Your benefit I can assure you will be very substantial. Please ensure to keep this proposal very secret and confidential for obvious reasons and send to us your private telephone and fax numbers for easy and confidential communication. We await your immediate response. Sincerely yours, LADY MARYAM ABACHA


I was trying to figure this out on my own, but i think i will need the assistance of some caster masters
How long is a Turn in real time? vs how long is an hour in real time? (related to spells like Bulls duration (1 hr per lvl) and Aura of Glory (1 turn per lv) )
Thanks for any help
Peace
A turn is a minute and an hour depends on the module but it's generally two minutes.
hmm so its module dependant..