Number of Recordings :
OR
Cumulative Recording Time (secs) :
Media requested :
Audio
Video
Audio+video
For unlimited recordings and to use the total cumulative recording time, set the number of recordings to 0.


Before you can commit to the subversion repository, you will need to create an SVN password. To do this, log on to minotaur.apache.org and run the following command:
svnpasswd
The will ask you for a subversion password. This is the user and password you will use when checking in code.
When you commit code to subversion, it will try to use the username you are logged in as on the current system. If this is different than your subversion username, you will need to specifiy this on the commit statement. Subversion will prompt for your password when you run the command. Note the is the SVN password, which is not the same as your minotaur password This password can be entered as a command line argument to avoid interaction. The follow command line will commit with a specified username and password:
svn commit --username username --password password
To commit with TortoiseSVN, simply right click on the directory you want to run the commit from and select commit. A list of files changed will be displayed with a text box for a log message. At this point you can select which files should be committed and enter you log text. Select OK to start the commit, a dialog box will appear prompting for username and password. You will also be able to select a check box to remember the credentials. If you select this check box, you will not be prompted for information in the future


Power is defined as work done over time. Power measures the rate that voltage sources, like batteries, convert energy into electrical energy. Power could also measure the rate that electrical components convert electrical energy in other forms, like heat or light.
$$P = \frac{W}{\Delta t}$$
\(P\) = power [W, J/s, watt]\(W\) = work, change in energy [J, joules]
\(\Delta t\) = time period [s, second]
Power is analogous to velocity. Velocity measures how position changes over time. Power measures how energy changes over time.
solution
$$P = \frac{W}{\Delta t}$$ $$W = P\Delta t$$ $$W = (1500)(3600)$$ $$W = 5\,400\,000 \, \mathrm{J}$$Power bills in America use a unit called kiloWatt hour. This is actually a unit of energy, not power.
$$\text{(kilo)(watt)(hour)}$$ $$(1000) \left(\mathrm{\frac{J}{s}}\right)(3600\, \mathrm{s})$$ $$3\,600\,000\, \left(\mathrm{\frac{J}{s}}\right)(\mathrm{s})$$ $$1\, \mathrm{kWh} = 3\,600\,000\, \mathrm{J}$$ Example: How many kiloWatt hours of energy would I consume if I ran my 1500 W electric heat at full power for 4 weeks?solution
$$\Delta t = 4 \, {\color{#f54}\mathrm{week} } \left(\frac{7 {\color{#28b}\,\mathrm{day}} }{1 \, {\color{#f54}\mathrm{week}} }\right) \left(\frac{24 \, {\color{#f08}\mathrm{hour}}}{1 \, {\color{#28b}\mathrm{day}}}\right) \left(\frac{3600 \,\mathrm{s}}{1 \, {\color{#f08}\mathrm{hour}}}\right)$$ $$\Delta t = 2\,419\,200 \, \mathrm{s}$$$$P = \frac{W}{\Delta t}$$ $$W = P\Delta t$$ $$W = (1500)(2\,419\,200) $$ $$W = 3\,628\,800\,000 \left( \frac{1\, \mathrm{kWh}}{3\,600\,000\, \mathrm{J}} \right) = 1008 \, \mathrm{kWh}$$
solution
$$W = 1008 \, \mathrm{kWh}$$ $$W = 1008 \, \mathrm{kWh} \left( \frac{\$0.12}{1\, \mathrm{kWh}} \right) = \$120.96$$Electrical Power
Circuit elements, like resistors, convert electrical energy into heat. Too much power can overheat sensitive circuit elements, like LEDs.
The rate of the heat output is controlled by the voltage multiplied by the current going through the element.
derivation of electrical power
We can convert power into electrical terms with some substitution.
$$P = \frac{W}{\Delta t} \quad \quad \quad W = {\color{#07c}Vq} \quad \quad \quad I = \color{#f53} \frac{q}{\Delta t}$$ $$P = \frac{{\color{#07c}Vq}}{\Delta t}$$ $$P = {\color{#f53}\frac{q}{\Delta t}}V$$ $$P = IV$$$$P = IV$$
\(P\) = power [W, watt, J/s]\(I\) = current [A, amp]
\(V\) = voltage [V, volt]
\(R\) = resistance [Ω, ohm]
Watt is the unit of power. The wattage of an electrical appliance gives you an idea of how much electrical energy the appliance converts. An 800 W microwave uses 800 J per second. A 1600 W microwave will heat food much faster because it converts twice the electrical energy into heat each second.
solution
$$P=IV$$ $$P=(0.095)(9)$$ $$P=0.855\, \mathrm{W}$$answer
As resistor converts electrical energy into heat energy it does work. The heat energy dissipates into the air.
If we combine P=IV with Ohm's law we can get more power equations.
Example: Calculate the power dissipated by each resistor.solution
$$I = 0.02\, \mathrm{A}$$ $$P=(0.02)^2 (6000)$$ $$P=2.4 \, \mathrm{W}$$$$P=(0.02)^2 (20000)$$ $$P=8.0\, \mathrm{W}$$
$$P=(0.02)^2 (5000)$$ $$P=2.0\, \mathrm{W}$$
solution
$$P=I^2R$$ $$P=(0.05)^2(300)$$ $$P=0.75\, \mathrm{W}$$Find the heat dissipated by the resistor in 10 seconds.
solution
$$P=0.75\, \mathrm{W}$$$$P = \frac{W}{\Delta t}$$ $$W = P \Delta t$$ $$W = (0.75\, \mathrm{W})(10\, \mathrm{s})$$ $$W = 7.5\, \mathrm{J}$$
solution
$$P=IV$$ $$P=(0.024)(1.5)$$ $$P=0.036\, \mathrm{W}$$$$P = \frac{W}{\Delta t}$$ $$W = P\Delta t$$ $$W = (0.036 \, \mathrm{\frac{J}{s}})(5\, \mathrm{min})\left(\frac{60\, \mathrm{s}}{1\, \mathrm{min}}\right)$$ $$W = (0.036 \frac{J}{s})(300s)$$ $$W = 10.8\, \mathrm{J}$$


Install Virtualmin
Difficulty: Value from spreadsheet
Time: Time value
Webmin is a GUI tool that helps you manage the software packages installed on your server. Virtualmin is an extension of Webmin that extends its functionality to managing Virtual Private Servers (VPS).
On the left hand side of the page there is a menu. Clicking on the name toggles the UI between Virtualmin and Webmin. You will notice some differences from the standard Webmin interface because the two tools offer slightly different functionality. Webmin manages your server while Virtualmin manages the individual VPS you have installed on your physical server.
Use the post-installation wizard to familiarize yourself with Virtualmin and use it to help you build out some VPS and the software running on them.


{% include head.html %}
courses.airavata.org
Course
Lectures
Projects
Contact
Source on Github
{{ content }} {% include google_analytics.html %}


Overview of the Data¶
[3]:
import pandas as pd
import numpy as np
[4]:
import seaborn as sns
import folium
from folium import plugins
import matplotlib
from matplotlib import pyplot as plt
from folium.plugins import HeatMap
from folium.plugins import MarkerCluster
[5]:
nyc_data = pd.read_csv("/data/bikeshare/data/unified/nyc.csv")
boston_data = pd.read_csv("/data/bikeshare/data/unified/boston.csv")
main_data = pd.read_csv("/data/bikeshare/data/unified/merged.csv")
[6]:
nyc = {'name':'New York City', 'data':nyc_data, 'ref':'nyc'}
boston = {'name':'Boston', 'data':boston_data, 'ref':'bos'}
main = {'name':'All Data', 'data':main_data, 'ref':'all'}
Gender and gender by usertype distribution¶
[53]:
def riders_by_gender(data):
gender = data['data'].gender
gender_plot = sns.countplot(x = 'gender', data=data['data'])
plt.savefig('../images/1/duration_distribution_by_gender_'+data['ref']+'.png')
[54]:
def gender_by_user_type(data):
gender_by_usertype = sns.countplot(x = 'user_type', hue = 'gender', data = data['data'])
New York City
[55]:
riders_by_gender(nyc)
Boston
[56]:
riders_by_gender(boston)
Throughout the bar plot, we can easily observe that the number of the make bikeshare is higher third times as that of the female bikeshare. Moreover, all female and male are subscriber (annual member) and all unknown people are customer (24-hour pass or 3-day pass user - non-member).
Gender of Users (Percentage)¶
How does bikeshare service usage differ by gender?
[57]:
def users_by_gender(data):
x = data['data'].gender.value_counts().index
y = data['data'].gender.value_counts()
count = data['data'].gender.count()
plt.bar(x, y/count)
axes = plt.gca()
axes.set_ylim([0,1])
plt.ylabel("Ratio out of {} riders".format(count))
plt.title("Gender of Bikeshare Riders in {}".format(data['name']))
plt.savefig('../images/1/users_by_gender_'+data['ref']+'.png')
plt.show()
[58]:
users_by_gender(boston)
[59]:
users_by_gender(nyc)
[60]:
users_by_gender(main)
Male ridership seems to be higher in Boston compared to NYC where male ridership is 80% with females being under 20%. In NYC, male ridership is a little above 60% and female ridership is also higher above 20%.
Distribution of Trip Duration¶
[61]:
# How many trips went from Station A all the way to Station A
# New York City
totalTrips = len(nyc_data)
same_station = nyc_data[nyc_data.start_station == nyc_data.end_station]
tripDuration = same_station['duration']
print ('Total number of trips of New York Bikeshare: {:,}'.format(totalTrips))
print (('Trips from A -> A: {:,}').format(len(same_station)))
print (('Trips from A -> A: {:.1%}').format(len(same_station) / totalTrips))
Total number of trips of New York Bikeshare: 5,562,321
Trips from A -> A: 137,027
Trips from A -> A: 2.5%
[62]:
# How many trips went from Station A all the way to Station A
# Boston
totalTrips1 = len(boston_data)
same_station1 = boston_data[boston_data.start_station == boston_data.end_station]
tripDuration1 = same_station['duration']
print ('Total number of trips of Boston Bikeshare: {:,}'.format(totalTrips1))
print (('Trips from A -> A: {:,}').format(len(same_station1)))
print (('Trips from A -> A: {:.1%}').format(len(same_station1) / totalTrips1))
Total number of trips of Boston Bikeshare: 1,579,025
Trips from A -> A: 76,311
Trips from A -> A: 4.8%
[63]:
# General distribution information about trip duration in New York City
tripDuration = same_station['duration']
tripDuration.describe()
[63]:
count<PHONE_NUMBER>00
mean 23.085907
std 70.636620
min 1.000000
25% 3.250000
50% 12.983333
75% 28.966667
max 10019.616667
Name: duration, dtype: float64
[64]:
# General distribution information about trip duration in New York City
tripDuration1 = same_station1['duration']
tripDuration1.describe()
[64]:
count 7.631100e+04
mean 3.247803e+03
std 1.445736e+04
min 0.000000e+00
25% 5.400000e+02
50% 1.527000e+03
75% 3.474000e+03
max 2.645243e+06
Name: duration, dtype: float64
[65]:
# check out trip in minutes distribution
# New York City
tripDuration[tripDuration < tripDuration.quantile(.95)].plot(kind='hist')
plt.xlabel('time (minutes)')
plt.title('General New York Trip Duration Distribution')
plt.savefig('../images/1/general_ny_duration_distribution_'+nyc['ref']+'.png')
[66]:
# check out trip in minutes distribution
# Boston
tripDuration1[tripDuration1 < tripDuration1.quantile(.95)].plot(kind='hist')
plt.xlabel('time (minutes)')
plt.title('General Boston Trip Duration Distribution')
plt.savefig('../images/1/general_boston_duration_distribution_'+boston['ref']+'.png')
[69]:
# distribution grouped by subscriber type
# New York City
same_station[tripDuration < tripDuration.quantile(.95)].groupby('user_type')['duration'].plot(kind='hist', stacked=True, legend=True)
plt.xlabel('time (minutes)')
plt.title('Distribution of same station trip by user type in New York City')
plt.savefig('../images/1/duration_distribution_by_usertype_'+nyc['ref']+'.png')
[70]:
# distribution grouped by subscriber type
# Boston
same_station1[tripDuration1 < tripDuration1.quantile(.95)].groupby('user_type')['duration'].plot(kind='hist', stacked=True, legend=True)
plt.xlabel('time (minutes)')
plt.title('Distribution of same station trip by user type in Boston')
plt.savefig('../images/1/boston_duration_distribution_by_usertype_'+boston['ref']+'.png')
The first 30 minutes of each ride are included in the price of the pass, and you can take as many rides as you want while your pass is active. If you keep a bike out for more than 30 minutes at a time, it’s an extra $4 per additional 15 minutes. Therefore, I will look up for the distribution of trip duration less than 30 minutes.
[71]:
# New york City
same_station[same_station['duration'] < 30] \
.groupby('user_type')['duration'] \
.plot(kind='hist', stacked=True, legend=True, bins=20)
plt.xlabel('time (minutes)')
plt.title('Trip Duration (<30) distribution in New York')
plt.savefig('../images/1/nyc_duration_distribution_<30'+nyc['ref']+'.png')
[72]:
# Boston
same_station1[same_station1['duration'] < 30] \
.groupby('user_type')['duration'] \
.plot(kind='hist', stacked=True, legend=True, bins=20)
plt.xlabel('time (minutes)')
plt.title('Trip Duration (<30) distribution in Boston')
plt.savefig('../images/1/boston_duration_distribution_<30_'+boston['ref']+'.png')
We notice that lots of trip duration are less than 3 minutes. We can regard less than three-minute trip duration is the accidental checkouts.
[73]:
# Approximate the number of accidental checkouts
# New York
old_count = len(same_station)
same_station = same_station[same_station.duration >3]
new_count = len(same_station)
accidental_checkout = old_count - new_count
print('The number of accidental checkouts in New York is about {}'.format(accidental_checkout))
The number of accidental checkouts in New York is about 32668
[74]:
# Approximate the number of accidental checkouts
# Boston
old_count = len(same_station1)
same_station1 = same_station1[same_station1.duration >3]
new_count = len(same_station1)
accidental_checkout = old_count - new_count
print('The number of accidental checkouts in Boston is about {}'.format(accidental_checkout))
The number of accidental checkouts in Boston is about 4751
[75]:
# Examine the < 30 minutes trip duration again after dropping the accidental checkouts
# New York City
same_station[same_station['duration'] < 30] \
.groupby('user_type')['duration'] \
.plot(kind='hist', stacked=True, legend=True, bins=20)
plt.xlabel('time (minutes)')
plt.title('Duration Distribution in New York City without the accidental checkouts')
plt.savefig('../images/1/ny_duration_distribution_without_accidentalcheckouts_'+nyc['ref']+'.png')
[76]:
# Examine the < 30 minutes trip duration again after dropping the accidental checkouts
# Boston
same_station1[same_station1['duration'] < 30] \
.groupby('user_type')['duration'] \
.plot(kind='hist', stacked=True, legend=True, bins=20)
plt.xlabel('time (minutes)')
plt.title('Duration Distribution in Boston without the accidental checkouts')
plt.savefig('../images/1/boston_duration_distribution_without_accidentalcheckouts_'+boston['ref']+'.png')
Analysis Through the graphs of New York City and Bostion duration distribution without accidental checkouts, we observe that there are few people who are non-members rent the bikeshare with duration time less than 30 minutes while lots people in New York City rent the bikeshare with duration time less than 30 minutes (both members and non-members). However, the range of duration time between New York City and Boston varies a lot: New York City is from 0 to 70 (minutes) and Boston is from 0 - 9000 (minutes). It means that people often rent the bike day by day (short time) in New York City while people in Boston often rent the bike for a whole week (they regard bike as the main vehicle). Therefore, we can see in the graphs that the user type of poeple in Boston are annual member while that in New York varies between subscriber and customer a lot.
Users by Age¶
How does bikeshare service usage differ by age?
[77]:
def users_by_age(data):
age_counts = (2018 - data['data'].birth_year).value_counts()
axes = plt.gca()
axes.set_xlim([18,80])
plt.bar(age_counts.index, age_counts)
plt.xlabel("Age")
plt.ylabel("Count")
plt.title("Age of Bikeshare Riders in {}".format(data['name']))
plt.savefig('../images/1/duration_distribution_by_age_'+data['ref']+'.png')
plt.show()
[78]:
users_by_age(boston)
[79]:
users_by_age(nyc)
[80]:
users_by_age(main)
[46]:
# Distribution of age
(2018 - main_data.birth_year).describe()
[46]:
count 5.232128e+06
mean 4.240304e+01
std 1.105295e+01
min 2.100000e+01
25% 3.400000e+01
50% 4.000000e+01
75% 5.000000e+01
max 1.190000e+02
Name: birth_year, dtype: float64
Analysis Taking a closer look at the main data. We can see that the distribution of age is skewed to the right. The majority of the users are between their 30s-50s. A reason for the use of bicycles for the current demographic could be 2 reasons in my opinion: 1. As people earn more, they stray away from bicycles. Hence people with higher median earnings (who generally tend to be older, could use other means of transportation) 2. While the bicycles are cheaper than taxis and ride hailing apps, they are more expensive than the metro in NYC or Boston. Demographics with a lower income, generally <20 year olds could use the metro otherwise.
[ ]:


--- date: 2010-02-16T00:00:00Z published: true title: Facebook Is the Web’s Ultimate Timesink - it's a destination site. url: /2010/02/16/facebook-is-the-web-s-ultimate-timesink-it-s-a-destination-site-/ ---
The average U.S. Internet user spends more time on Facebook than on Google, Yahoo, YouTube, Microsoft, Wikipedia, and Amazon combined. Think about that for a moment.


Plan steps for world domination find empty spot in cupboard and sleep all day intrigued by the shower, so find something else more interesting leave hair everywhere tuxedo cats always looking dapper.
As of v8.0, Safari exhibits a bug in which resizing your browser horizontally causes rendering errors in the justified nav that are cleared upon refreshing.
Plan steps for world domination find empty spot in cupboard and sleep all day intrigued by the shower, so find something else more interesting leave hair everywhere tuxedo cats always looking dapper.
Plan steps for world domination find empty spot in cupboard and sleep all day intrigued by the shower, so find something else more interesting leave hair everywhere tuxedo cats always looking dapper.
Plan steps for world domination find empty spot in cupboard and sleep all day intrigued by the shower, so find something else more interesting leave hair everywhere tuxedo cats always looking dapper.


--- layout: post podcast_file_name: 'episode8.mp3' duration: '05:00' data_length: '4807702' published: true title: Episode 8 --- {% include post_start.html %} {% include note.html project='Collector' version='1.0.0' author='Michaël Fortin' twitter='IrradiatedApps' description='Ruby and LINQ-inspired categories on NSArray. Fully tested and documented.' homepage='http://github.com/fortinmike/Collector' source='' %} {% include note.html project='AGGeometryKit+POP' version='0.1' author='Håvard Fossli' twitter='hfossli' description='Bridging AGGeometryKit with POP for amazing dynamics and animations.' homepage='https://github.com/hfossli/AGGeometryKit-POP' source='' %} {% include note.html project='MobileVLCKit' version='2.2.0' author="Pierre d'Herbemont & Felix Paul Kühne" twitter='videolan' description='MobileVLCKit is an Objective-C wrapper for libvlc's external interface on iOS.' homepage='https://wiki.videolan.org/VLCKit/' source='' %} {% include note.html project='BCMeshTransformView' version='0.8.1' author='Bartosz Ciechanowski' twitter='bciechanowski' description='Mesh transforms for UIView' homepage='https://github.com/Ciechan/BCMeshTransformView' source='' %} {% include note.html project='Axt' version='0.0.1' author='Matthias Hochgatterer' twitter='brutella' description='A forgiving HTML SAX Parser for iOS.' homepage='https://github.com/brutella/Axt' source='' %} {% include note.html project='ULDocument' version='1.0.0' author='The Soulmen GbR' twitter='ulyssesapp' description='A lightweight and iCloud-ready document class.' homepage='https://github.com/soulmen/ULDocument.git' source='' %}
Soundtrack: I'm Not Going Away by texasradiofish.
Guest host: Ash Furrow.
{% include post_end.html %}


{% extends 'base.html'%} {% block content %}
Written By: {{ article.author }}
Published on: {{ article.publishedAt | datetimeformat}}
{{ article.description}}
Read More


What if you've already created an entire animation, with lots of key-frames, but then decide you should
add something to the character...like sunglasses for example? Spriter makes this easy. If you've animated
your character with bones then Spriter makes the solution simple. Simply go the the very first key-frame
at time 0, add your sunglasses image to the frame and perfect its position, scale, rotation etc to fit
perfectly on the characters face. Then assign that new sunglasses sprite to the head bone by selecting the
head bone, holding B and then left-clicking on the sunglasses sprite. You can test that the sunglasses are
now firmly attached to the characters face by rotating the head bone, and then pressing Cntrl+Z to undo
the movement. Now that the sunglasses are perfectly places and a child of the head bone, just select
them, press Cntrl+C, then in the menu, choose “edit/paste to all keys”, or by pressing Cntrl+Shift+V.
After perhaps a few seconds of processing, you can scroll through your time-line or play your animation
to see that the sunglasses are now properly positioned and attached to the head on all frames.
Adding Additional Sprites to a Finished Animation


Full url of streaming: e.g. https://mastodon.social/api/v1/streaming/user
headers object of streaming request
Proxy setting, or set false if don't use proxy
reconnection interval[ms] when the connection is unexpectedly closed
Request the url and get response, and start streaming.
Reconnects to the same endpoint.
Resets connection and remove listeners.
Resets parameters.
Set up parser when receive some data.
Start streaming connection.
Stop the connection.
Generated using TypeDoc
EventStream Listener of text/event-stream. It receives data, and parse when streaming.


Debug log:
Title:
vid:
Time:
Ads:
cmsid:
State:
Seek:
asset:
CC:
Big Buck Bunny (live)
Tears of Steel(vod)


Everyone Hates The Shitty, Cheap Flounder From ‘The Little Mermaid Live!’
by Michelle RennexIn celebration of 30 years since we were blessed with The Little Mermaid, even though we didn’t ask, ABC gave us the musical television event, The Little Mermaid Live!
Not to be confused with the highly-anticipated live-action film adaptation of the original, the TV special was filmed in front of a live audience and broadcast last night in the US.
Related
Boasting an impressive cast including the likes of Queen Latifah as Ursula, Auli’I Cravalho as Ariel and Shaggy as Sebastian, the question on everyones lips was who would play Flounder. If you’ve ever watched The Little Mermaid, you know what an integral part of the story he plays as Ariels best fish friend.
Unfortunately for everyone, no one played Flounder. Instead the decision was made that Flounder would be a puppet controlled by three different puppeteers.
Making his appearance in the iconic ‘Part of Your World’ scene, Flounders appearance shocked everyone. The demonic flounder is featured at 2.50 onwards, if your eyes can handle it.
In the comments of the video, viewers couldn’t even focus on Auli’I’s vocals because they were so distracted by Flounders kid’s art project-style appearance.
The reception on Twitter wasn’t all that warm either, with people questioning why Flounder looked so cheap, and well, that damn scary.
The disappointment only continued once Shaggy took stage as Sebastian the crab. Dressed in red jeans, a red jacket, red shoes and no claws, one YouTube user described as the outfit as “the ‘Thriller’ uniform.” The sentiments continued onto Twitter where others expressed their confusion.
Well… here’s hoping for a little more in the costume and props department with the live-action film.


The bulk of the American Community Survey is the over 1400 detailed data tables. These tables have reference codes, and knowing how the codes are structured can be helpful in knowing which table to use. The Census Bureau produces a variety of types of tables for the American Community Survey, but Census Reporter only serves the "detailed tables."
Codes start with either the letter B or C, followed by two digits for the table subject, then 3 digits that uniquely identify the table. (For a small number of technical tables the unique identifier is 4 digits.) In some cases additional letters for racial iterations and Puerto Rico-specific tables.
Tables beginning with B have the most detailed column breakdown, while a C table for the same numbers will have fewer columns. For example, the B02003 table ("Detailed Race") has 71 columns, while the "collapsed version," C02003 has only 19 columns. While your instinct may be to want as much data as possible, sometimes choosing the C table can simplify your analysis.
The first two digits after B/C indicate the broad subject of a table. Note that many tables have more than one subject, but this reflects the main subject.
Links in the table below are to Census Reporter's help pages relevant to each subject.
Three groups of tables reflect technical details about how the Census is administered. In general, you probably don't need to look at these too closely, but if you need to check for possible weaknesses in your data analysis, they may come into play.
Many tables are provided in multiple racial tabulations. If a table code ends in a letter from A-I, that code indicates that the table universe is restricted to a subset based on responses to the race or Hispanic/Latino-origin questions. Here is a guide to those codes:
There are a number of other ACS data products which the Census Bureau offers on data.census.gov, but which are not available for bulk download. Because we can't get the bulk data, these tables are not directly included in Census Reporter, but you might want to know about them.
The data profile (DP) tables provide a lot of popular statistics across subjects in a single table. The Census Reporter "profile" pages are modeled off of the DP tables, although we've added charts and made some alternate choices. The ACS produces four kinds of DP tables, with one variant for Puerto Rico. The links below go to the given data profile for the entire United States (or Puerto Rico, for DP02PR), but data profiles are also available for all states (including DC and Puerto Rico), all metropolitan areas, all congressional districts, all counties, all places and all tracts. (Note that Data Profiles are released as part of the 1-year and 5-year ACS, so for tracts, counties, and places with population less than 65,000 you'll need to look for the ACS 5-year Data Profiles.)
The comparison profile (CP) tables provide a lot of popular statistics across subjects in a single table. Additionally, they provide data for those statistics across several years. Values are provided only as percentages, and the tables include flags which indicate whether the change for any value between years is statistically significant.
The links below go to the given comparison profile for the entire United States (or Puerto Rico, for CP02PR), but comparison profiles are also available for all states (including DC and Puerto Rico), all metropolitan areas, all congressional districts, and counties and places with a minimum population of 65,000 for the 1-year ACS and of 5,000 for the 5-year ACS.
Narrative profiles are not tables, but instead, documents with text and charts describing selected geographies. Narrative profiles based on the most recent 5-year ACS release are available for the Nation, states, counties, places, census tracts, ZIP Code Tabulation Areas, Metropolitan/Micropolitan statistical areas, and American Indian Areas/Alaska Native Areas/Hawaiian Home Lands.
The Census Bureau provides an interactive tool for selecting the geography for a narrative profile. See this example of the narrative profile for the United States.
The subject tables are another collection of similar top-level statistics which may be more easily digested than the full detailed tables. As with data profiles, you must use data.census.gov to get these tables. The links below go to the given subject table for the entire United States (or for Puerto Rico, for table codes ending in PR), but subject tables are also available for all states (including DC and Puerto Rico), all metropolitan areas, all congressional districts, all counties, all places and all tracts. (Note that Subject Tables are released as part of the 1-year and 5-year ACS, so tracts, counties, and places with population less than 65,000 you'll need to look for the ACS 5-year Subject tables.)
{% include "topics/_blocks/_subject-table-codes.html" %}The Geographic Comparison/Ranking tables take a single statistic and list its value for a number of geographies.
The GCT files include the US, states (including DC and Puerto Rico), metropolitan areas, metropolitan divisions, combined statistical areas (CSAs), urban areas, school districts, counties, places and PUMAs. GCT files are in CSV format and are created for only the 1-year ACS, with the same limitations that only places with population > 65,000 are included in the 1-year files. (Prior to the 2019 ACS release, many GCT files were also available for the 5-year ACS data.)
The R files are much like the GCT files, except they are in Microsoft Excel format, and only include the US and states (including DC and Puerto Rico). In the Excel file, data users can select a state from a menu, and the file will compute whether each of the other rows in the file is statistically significantly different from the selected geography.
These files are not offered in data.census.gov, but can be downloaded directly from the Census Bureau's file server.
{% include "topics/_blocks/_gct-table-codes.html" %}


1. Do you want to handle your groups easier?
2. Do you want to know which words are more valuable to you and your groups?
Then, the only thing you need is to enter to RadFa's world, only with one move....
Log In to Radfa with your Facebook account now!
2. Do you want to know which words are more valuable to you and your groups?
Then, the only thing you need is to enter to RadFa's world, only with one move....
Log In to Radfa with your Facebook account now!


Omega Melvin A. is a student studying web development at Moringa School. I completed Moringa pre-prep on the 24th of June, 2021 and began Prep classes on the 28th of June.
The reason to why I chose programming course because I want to learn how to control the interaction between people and machines.
I like drawing, traveling, listening and watching movies and music.
This project was done using html and css showing what the restaurant would offer in the various course meals (breakfast,lunch and dinner)
ViewThis project was done using html and css showing details about my favourite band and their list of song together with every member's personal details and the reason to why they are my favourite band.
View


Store and restore tree status using cookies or local storage.
- Set options
- click, expand, and select nodes
- press [F5] to reload.
Status: beta. Details: ext-persist.
jquery.fancytree.js project home Link to this page Example Browser View source code


02-treesiftr-advanced.Rmd
treesiftr is an R package (R Core Team 2018) for visualizing the relationship between phylogenetic trees and phylogenetic data. Phylogenetic trees are crucial to the study of comparative biology, taxonomy, and evolution. However, understanding how to read a phylogenetic tree, and how a phylogenetic tree relates to underlying phylogenetic data, remains challenging.
In today’s lab exercise, we will learn about the data in a phylogenetic matrix, and then use these data in the matrix to visualize a phylogenetic tree. We will use RStudio (RStudio Team 2015) to conduct our exercise.
Tip
Linked text goes to the glossary. If you see a term you don’t recognize, remember you can refresh your memory at the bottom of this worksheet!
The data matrix included with treesiftr is a matrix of binary (“0” and “1”) characters compiled to estimate a topology of living and extinct bear species (Abella et al. 2012). This matrix is fairly typical in size for a paleontological matrix, comprising 62 characters. It is, however, atypically complete, with only 18% missing data. In the following exercises, missing data will be represented by a thin black line. The “0” state will be represented in pale blue, and the “1” in brown.
treesiftr works by subsetting a phylogenetic matrix using the start
, stop
and step
arguments. The start
argument controls where in the matrix you would like to begin visualizing characters. For example, a start value of 1 would indicate to begin visualizing characters from the first character in the matrix. The stop
value indicates what will be the first character in the last visualization. A stop value of 10 would indicate that the first character in the last visualization should be character 10. The step
value indicates how many characters at once to visualize. A step value of three would indicate characters should be viewed in threes. For example, if start
= 1, stop
= 10, and step = 3
, 10 visualizations will be produced. The first will visualize characters 1, 2, and 3. The final will be characters 10, 11, and 12.
A maximum parsimony tree is then estimated from each dataset. The tree is scored under both parsimony and Lewis’ Mk model (Lewis 2001) for discrete character data. The data and tree are then visualized using ggtree, based upon the ggplot2 package. This application makes use of Shiny to provide a graphical interface, but in this tutorial, we will use the R Studio interface to visualize our data.
Currently, treesiftr can be installed via the devtools install_github
function. treesiftr has a number of required packages. Install and load the below.
The first step to making a treesiftr visualization is to select the subset of the phylogenetic matrix that we would like to visualize. This is performed via a function called generate_sliding
. The below command will subset the
# Locate package data and read alignment
fdir <- system.file("extdata", package = "treesiftr")
aln_path <- file.path(fdir, "bears_fasta.fa")
bears <- alignfigR::read_alignment(aln_path)
# Read in a starting phylogenetic tree
tree <- ape::read.tree(file.path(fdir, "starting_tree.tre"))
# Generate our list of dataframe subsets
sample_df <- generate_sliding(bears, start_char = 1, stop_char = 5, steps = 1)
The result of this is a dataframe, shown below:
## starting_val stop_val step_val
## 1 1 2 1
## 2 2 3 1
## 3 3 4 1
## 4 4 5 1
## 5 5 6 1
This dataframe dispays the start character (the first character that will be visualized) and stop character (the final character that will be visualized).
We can then build trees from each subset:
output_vector <- generate_tree_vis(sample_df = sample_df, alignment = aln_path, tree = tree, phy_mat = bears)
## Final p-score 2 after 0 nni operations
## Final p-score 2 after 0 nni operations
## Final p-score 2 after 0 nni operations
## Final p-score 2 after 1 nni operations
## Final p-score 2 after 1 nni operations
The above code saves the trees to a vector, but does not visualize them. They can be visualized by naming the vector, like so:
## [[1]]
## NULL
##
## [[2]]
## NULL
##
## [[3]]
## NULL
##
## [[4]]
## NULL
##
## [[5]]
Phangorn
(Schliep 2011, Schliep2017) requires a starting tree to estimate a parsimony tree. We specify the tree we read in earlier for this purpose. The trees, which were generated with ggtree
(Yu et al. 2017) have been saved to a vector, which can be displayed in its entirety, or subsetted to look at specific trees.
pscore
argument:output_vector <- generate_tree_vis(sample_df = sample_df, alignment = aln_path, tree = tree, phy_mat = bears,
pscore = TRUE)
random_tree = TRUE
, like so:output_vector <- generate_tree_vis(sample_df = sample_df, alignment = aln_path, tree = tree, phy_mat = bears,
pscore = TRUE, random_tree = TRUE)
Are the parsimony scores larger or smaller than those of the character on an estimated tree? Does this make sense to you? Why?
Visualize character set 2-3 and 3-4. What monophyletic group from the tree for characters 2-3 is no longer on the tree for characters 3-4?
View a tree of characters 8 - 10. Which character, 8, 9 or 10, represents a reversal from a derived state to ancestral?
What information would we need to decide if the “1” state possesed by Zaragocyon_daamsi in character 52 is an autapomorphy?
You can add the likelihood score to the visualization using the below code:
output_vector <- generate_tree_vis(sample_df = sample_df, alignment = aln_path, tree = tree, phy_mat = bears,
pscore = TRUE, lscore = TRUE)
Does the character set 8, 9, and 10 have the same parsimony score as the character set 9, 10, and 11? How about the same likelihood score?
Compare characters 46-49 and 47-50. Why does set 47-50 have a better likelihood than 46-49?
What is the relationship between the likelihood score and increasing the number of characters visualized?
What is the minimum number adding a parsimony-informative character can add to the parsimony score?
These trees are fully resolved. Based on your exploration of the data, does this degree of resolution make sense? Take a look at characters 1-3, for example. Does displaying a fully resolved tree make sense for these characters?
Ancestral State: A character state possessed by the ancestor of a group
Autapomorphy: A character state that is unique to a specific taxon.
Derived State: A character state that is different from the ancestral state.
Likelihood Score: The likelihood of the observed data under a specific model.
Maximum likelihood: A phylogenetic optimatlity criterion under which phylogenetic data are modeled according to sets of assumptions. Under this criterion, the tree that has the best (“maximum”) likelihood score under the assumed model is to be preferred.
Maximum parsimony: A phylogenetic optimality criterion. This criterion holds that the tree implying the fewest changes in the characters used to generate it should be preferred.
Monophyletic: A group on a phylogeny of an ancestor and all of its descendents.
Parsimony Score: The number of changes implied by a character on a tree.
Resolved: A node that is bifucating, leaving two descendent lineages.
Reversal: A change from the derived state back to the ancestral state.
Abella, Juan, David M. Alba, Josep M. Robles, Alberto Valenciano, Cheyenn Rotgers, Raül Carmona, Plinio Montoya, and Jorge Morales. 2012. “Kretzoiarctos Gen. Nov., the Oldest Member of the Giant Panda Clade.” PLoS One 17: e48985.
Lewis, Paul O. 2001. “A Likelihood Approach to Estimating Phylogeny from Discrete Morphological Character Data.” Systematic Biology 50 (6). Oxford University Press: 913–25. https://doi.org/10.1080/106351501753462876.
R Core Team. 2018. R: A Language and Environment for Statistical Computing. Vienna, Austria: R Foundation for Statistical Computing. https://www.R-project.org/.
RStudio Team. 2015. RStudio: Integrated Development Environment for R. Boston, MA: RStudio, Inc. http://www.rstudio.com/.
Schliep, K.P. 2011. “Phangorn: Phylogenetic Analysis in R.” Bioinformatics 27 (4): 592–93. https://doi.org/10.1093/bioinformatics/btq706.
Yu, Guangchuang, David Smith, Huachen Zhu, Yi Guan, and Tommy Tsan-Yuk Lam. 2017. “Ggtree: An R Package for Visualization and Annotation of Phylogenetic Trees with Their Covariates and Other Associated Data.” Methods in Ecology and Evolution 8 (1): 28–36. https://doi.org/10.1111/2041-210X.12628.


I Alone Level-up: Chapter 87
It was an interesting phenomenon . As the footsteps grew louder and closer, the sound from the Hunters became quieter .
“Son hyung…”
“ . ”
A silence fell on the raiding party .
Meanwhile, Jinwoo’s ears were working hard . Using the silence of the raiding party to his advantage, he perked his ears to try and determine the number of approaching entities .
step step
step step
Because of his naturally keen hearing combined with the high Sense stat, he was able to distinguish between the footsteps .
‘48, 49, 50, 51 . ’
51 footsteps . It was the same sound as the high orcs earlier . Jinwoo looked around .
‘ . ’
Nervousness filled the faces of the Hunters . They, too, had roughly determined the number of enemies through their senses . Winning the battle just now against 22 high orc warriors was a miracle . And now there were 51 more approaching, over twice the previous amount .
‘ . There’s no hope for victory . ’
Well, to the Hunters Guild’s raiding party, of course . Jinwoo looked behind him into his shadow . His shadow appeared to be swaying and twitching .
woooooooo-
It felt like his soldiers were complaining that they haven’t seen blood in a while . Jinwoo returned his gaze forward .
ba dum, ba dum, ba dum
The heart that was calm up until now was starting to beat harder .
‘Just wait…’
Now was not the right time . He calmed himself and quietly looked forward . The enemies finally appeared .
stop
The high orcs stopped a bit of distance away from the Hunters .
“Kreuuuuu”
“Kreuk . ”
They looked like they were about to charge at them any second now . The oppressive pressure coming from the high orcs that numbered over fifty could not be put to words . Even without fighting, the results were clear .
“Fuck!”
“Why is this happening…”
“Sniff . ”
The Hunters groaned in terror . They had retreated backwards because of the pressure, but their backs were met by the invisible wall . What could they do now? They had finished their battle preparations a while ago, but none of them took the initiative . Instead, they all looked to the Raid Leader Son Gihoon for help .
The Tanker’s mouth was closed in a straight line .
‘Shit…’
If only Guildmaster Choi Jongin or Deputy Guildmaster Cha Haein was here… Son Gihoon’s brows furrowed . S-rankers wielded the unimaginable power to overturn situations like this . If they were here, high orcs like these would be nothing .
‘Of all the days…’
. Why were those two absent from the Raid today? Having always fought at their side, Son Gihoon realized just how powerless he was in this moment . The absence of the S-rank was too painful . However, he could not wallow in despair forever . He had to make a decision .
 ’
However, with their retreat cut off, there wasn’t any other option .
From the day he made the decision to become a Hunter,
From the day he took his inaugural step into the Dungeon,
From the day he first lost conscious after being wounded,
He knew that this day would come someday .
‘Yes, yes I did . ’
Resolved to fight until the bitter end, Son Gihoon unsheathed his longsword .
shiing-
When the Raid Leader looked back to his team, the Hunters that waited for his orders nodded . Son Gihoon turned his gaze forward . Raising his shield to below his chin, the Tanker glared at the high orcs . However, the magic beasts did not appear to be attacking yet .
‘Did he make his decision?’
Jinwoo also began his preparations . His right hand was held behind his back, gripping Baruka’s Tanto . The E-ranker closed his eyes . The heart that was beating crazily was now calming down in the eve of battle .
Ba dum . Ba dum . Ba dum .
Don’t waste any strength on useless movements .
Control your breathing .
‘ . Good . ’
When Jinwoo opened his eyes again, they were filled with a sharp light .
gulp
The Hunters gulped nervously as sweat gathered on their brows .
Meanwhile, Jinwoo gulped in anticipation .
gulp
‘I wonder how much experience points these guys will give me?’
Jinwoo’s lips curved into a thin smile .
Suddenly, a lone high orc started to move from back of the group . The magic beast shoved its comrades roughly out of its way and came out ahead of the group . The orc looked over the Hunters with its beast-like eyes .
“Grrrrl… . ”
It was a head taller than the rest, with long tusks sticking out of its mouth .
‘Is he the captain?’
Jinwoo’s eyes narrowed . If he just killed that thing right now, wouldn’t the battle become easier? What should he do? While Jinwoo fidgeted with Baruka’s Tanto and wondered, the high orc opened its mouth,
“Kraerak Tuo Sheena Wegeudu Ahraknaka . ”
It was a booming voice . The high orc’s gaze was fixed on the vanguard of the raiding party, Son Gihoon .
“Kraerak Tuo Sheena Wegeudu Ahraknaka!”
The Hunters began to whisper among themselves .
“What?”
“Is it trying to talk to us?”
“What’s it saying?”
Suddenly, the face of the high orc began to shake . When the shaking stopped, its mouth opened and spoke with a completely different voice than just now,
“Human…”
It was like a ventriloquist speaking through a dummy .
“Humans…”
Looking closer, the high orc’s eyes had turned white like a fish that had been dead for a while .
What! The Hunters felt like they had been slapped across the face . The orc was speaking in the language of humans!
‘How does an orc know Korean?!’
‘Magic? Is it magic?’
In this unexpected development, the Hunters could not close their mouths . The high orc captain’s mouth continued to move,
“I… Am… Kargargan[1] . I… Wish… To… Meet… With… You… Humans… Follow… This… One…”
A magic beast wants to talk with humans? Something like this had not ever been reported in the history of the Gates . In an unprecedented situation, Son Gihoon and his teammates fell into chaos .
“Gihoon hyung, you don’t actually believe a magic beast, right?”
“Ignore it, sir . ”
“Gihoon, this is trap . If we’re going to die, let’s just end it here . ”
“Still, if it’s an orc that we can talk to, maybe…”
“Hey moron, after all the time you spent in Dungeons, do you still not know magic beasts?”
In that short time, a discord fell upon the Hunters . Son Gihoon broke his silence with a question,
“Kargargan, are you the one who blocked the cave?”
“That… is… correct… I… am… a… proud… great… sorcerer… of… the… oruku… your… human… strengths… cannot… break… my… magic . ”
“Is there an existence stronger than you in this cave?”
“How… dare… would… any… stand… against… me!”
A booming voice rang out and assaulted the ears of the Hunters . Several of the Hunters flinched or covered their ears, but Son Gihoon nodded calmly . His guesses were on the mark . The existence that was borrowing that high orc’s mouth to talk to them was the boss of this Dungeon . Because the boss could not leave its room until the Dungeon Break, it was calling the Hunters to where it was .
‘I don’t know why but…’
As the Raid Leader’s reply was delayed, the high orc captain raised its axed high into the air .
“Choose… will… you… die… here… by… my… soldiers… or… will… you… follow… my… soldiers . ”
“We’ll follow . ”
At his reply, the Hunter’s were shocked,
“Hoon hyung!”
“Gihoon-ssi!”
Son Gihoon silenced his teammates and watched the high orc’s reaction .
“Follow… human . ”
With that, the high orc captain’s eyes returned to normal .  The high orc spoke,
“Ash tuo reka .  The high orc captain remained and gestured to Son Gihoon to follow it .
“We should go to . ”
Son Gihoon was the first to start walking . The hesitating Hunters started to follow after him one by one .
‘What’s he thinking?’
Jinwoo stared curiously at Son Gihoon . On top of the boss himself, the boss room should be filled with even more high orcs . Of course, the probability of survival would plummet there . And so, Jinwoo was not sure what the Raid Leader was thinking by following them .
‘Is he thinking of bargaining with the boss? To leave here alive?’
The chance of that happening was low…
Still . This might actually be a good thing for Jinwoo . He had expected to just take care of a few dozen high orc warriors .  Jinwoo returned the dagger in his hand to the inventory and quietly followed the group .
Purposely slowing his pace, Son Gihoon came next to Jinwoo . The Raid Leader spoke to the porter in a low voice,
“Hunter-nim . ”
“Yes?”
Jinwoo replied without turning his head . Son Gihoon also spoke while keeping his gaze fixed on the high orc in front of them .
“When we meet the boss… we’re going to ambush it . Whether or not we succeed in killing it, its magic blocking the exit should be released . ”
It was a reasonable thought . With the exception of curses, maintaining a spell required the focus and concentration of the caster . The higher the level of the magic, the stronger the focus required .
But what would they do with that? Even if they succeeded in killing the boss or undoing its magic, they would just be swarmed and massacred by the high orc warriors . In other words, the chance of the raiding party leaving here alive was about 0% . As if to clear up Jinwoo’s confusion, Son Gihoon continued with a determined face,
“Once we have all of their attention, Hunter-nim, escape from the boss room . Leave this Dungeon and contact the main raiding party . ”
By the time the raiding party including the S-rankers arrived, it will have been all over for the current party . Son Gihoon was resolved to sacrifice his life .

Jinwoo cast a quick sideway glance to look over the man’s face . The Tanker’s expression was hardened, but the light in his eyes were strong .
“As Hunters, our job is not to leave the Dungeon alive . It is to close the Gate . It is because of that job that many people support us with a great amount of money . ”
Son Gihoon strengthened his voice,
“We’ll just do as we always have . But not you . There is no need for you to die here . I hope that you can leave here alive . ”
Jinwoo felt a strong conviction from the man’s voice . He was putting his life on the line . No matter what Jinwoo said, he knew it would not change Son Gihoon’s mind . As such, Jinwoo just replied with a nod .
Cha Haein arrived at the scene .
She had pressed her cap down so most people did not recognize her . She walked over to look for the mining team . Some Hunters passed her by and gave quick glances but concluded that she must’ve been a Guild employee and did not pay much attention .
In the distance, she saw Team Leader Bae and the Hunters of the mining team .
ba dum, ba dum
Her heart began to race . She carefully looked through the miner’s faces .
‘Where is that man…?’
She did not find Jinwoo .
Should she say something? It felt like she had lost the strength in her entire body .

Let’s just wait a minute . He might’ve gone to the bathroom .
.
Just three more minutes .
.
Just five more…
.
After fifteen minutes, Jinwoo did not show up .
“Sigh-”
With a deep sigh, she turned to leave .
The woman took few steps, then immediately turned around and returned to her waiting spot .
She removed her cap, then huffed rapidly to psyche herself up . After gathering the courage, she walked over to Team Leader Bae . The Hunters of the mining team turned their gaze towards the approaching woman . Thankfully, because they were low-ranking Hunters, their stench was bearable .
“Huh?”
Recognizing the Deputy Guildmaster, the team leader quickly ran over .
“Hunter Cha-nim, isn’t this your day off?”
“Hello . ”
After a quick greeting, Cha Haein looked around to see if there was anyone listening, then carefully asked,
“Er… is Hunter Sung Jinwoo here by any chance?”
“Sung-ssi?”
At the unexpected mention of his ace, Team Leader Bae looked curious,
“Sung-ssi went with the attack team as a porter…”
“A porter?”
Cha Haein was shocked,
“He went into the Gate?”
The team leader agreed with her disbelief and replied,
“Yep . ”
An E-rank Hunter volunteered as a porter and entered an A-rank Dungeon? It’s not like he was a cat with nine lives .
‘What’s he thinking?’
 She had not been mistaken about those daggers . There was something else . Although she had accepted his explanation without much fuss yesterday, when she thought about it carefully, there was no way a Hunter with four years of experience would be “lost” in a Dungeon .
‘I have to find out . ’
Just what was this man called Sung Jinwoo doing at Hunters Guild? She had to confirm with her own two eyes . In order to do that, she had to enter the Dungeon . The woman was the Deputy Guildmaster of Hunters Guild and an S-rank Hunter . No one would stop her if she wanted to participate in her own Guild’s Raid .
Biting the nail on her thumb while contemplating, Cha Haein made her decision .
“That Gate, I’m going to go inside . ”
.
Translator’s Notes:
[1]: “Kargargan” (카르갈간): made up name . Ka 카 + reu 르 + gar 갈 + gan 간 . Kargargan


mdi-home
Home
mdi-jump-rope
Edit Tricks
mdi-cart
Shop
DEPRECATED
mdi-translate
Translate
mdi-forum
Contact
mdi-logout
Log Out
the Tricktionary Admin
Auth
You don't have permissions to view this page
mdi-googleLog In With Google
Log Out
Edit Tricks
Shop
v1 Translations
Deprecated, kept because android
v1 Contact
Deprecated, kept because not yet in v2


THERE'S A TRICK
How to play Google Stadia games in 4K resolution
The game may not look as vibrant, but it works.
by Asher MadanGoogle Stadia launched a few days ago and it's safe to say that the launch didn't go as planned. A lot of gamers who preordered still don't have their devices, and there are reports of a number of other problems. However, the biggest issue we've seen on social media is the picture quality. Many reviewers even noted that "4K doesn't look like 4K." Well, you'll be happy to know that we have a quick way to fix image quality.
If you're one of the users who's seeing blurry visuals when you're playing Stadia through the Chromecast Ultra, you should think about turning off high dynamic range lighting (HDR). On many games, it appears to dramatically increase the resolution. Below, you can see a table of the improvements to image quality we witnessed after turning off HDR from the Stadia app on Android. We tested a number of games that users are likely to pick up at launch.
| Game | With HDR Resolution | Without HDR Resolution | Frame Rate |
|---|---|---|---|
| Assassin's Creed Odyssey | Slightly Blurry | 4K | 30 FPS |
| Destiny 2 | 1080p | Higher Resolution | 60 FPS |
| Gylt | Blurry | Blurry | 30 FPS |
| Just Dance 2020 | No HDR | 4K | 30 FPS |
| Kine | No HDR | 4K | 60 FPS |
| Metro Exodus | Slightly Blurry | 4K | 30 FPS |
| Mortal Kombat 11 | Blurry | Slightly Sharper Image | 60 FPS |
| Red Dead Redemption 2 | 1440p | Slightly Sharper Image | 30 FPS |
| Samurai Shodown | No HDR | 4K | 60 FPS |
| Shadow of the Tomb Raider | Blurry | Sharper Image | 60 FPS |
| Trials Rising | No HDR | 4K | 60 FPS |
Our internet speed is 330 Mbps and we plugged in an ethernet cable into the Chromecast Ultra.
While games like Gylt still look blurry with HDR on or off, the majority of other titles witnessed some improvement. You probably won't be able to immediately tell if you're playing Metro Exodus, Mortal Kombat 11, or Red Dead Redemption 2, but if you're a fan of Destiny 2 and Shadow of the Tomb Raider, you'll be elated. Destiny 2 sees the biggest boost to resolution, but it's unclear if it's running at 1440p or 1800p. Shadow of the Tomb Raider becomes noticeably clearer when HDR is off, too.
Games like Kine and Samurai Shodown don't appear to support HDR so they're at 4K resolution no matter what. Out of all of the titles listed above, they have the best image quality by far.
In order to turn off HDR, open the Stadia app on your Android phone and follow these steps.
- Open the Stadia app on Android and tap your profile picture in the top right corner.
- Tap on "Display" towards the bottom of the screen.
- Slide the "High Dynamic Range (HDR)" slider to the left.
You can also take a look at the visual guide below.
Doing so will turn off HDR on any games you launch in the future. If you have a title open already, you'll have to exit out of it and start a new session for HDR to turn off.
Hopefully, this guide will help you get a clearer image. Let's hope that Google figures out a way to lower the requirements for game streaming so that HDR isn't so taxing on its servers and our internet connections.
Everything you need
Stadia Premiere Edition
A good way to start
This bundle includes everything you need to get started with Google Stadia. It includes the controller, Chromecast Ultra, Destiny 2, Samurai Shodown, and three months of the Stadia Pro subscription for you and a friend. It's a great way to begin your game streaming journey.
Pick up the parts
Chromecast Ultra
UHD streaming
You can buy everything together or you can get just the basics for Google Stadia. The Chromecast Ultra is available to purchase now and lets you stream 4K TV as well as play games.
All you need
Stadia controller
A firm grip on what's needed
The Stadia controller is all you need to use Google Stadia if you already have the Chromecast Ultra. You can also use it on your other devices. Get the Wasabi colored one, it's gorgeous.
We may earn a commission for purchases using our links. Learn more.


class: center, middle, inverse, title-slide # Tidying your data ## SISBID 2018
https://github.com/dicook/SISBID
### Di Cook (
<EMAIL_ADDRESS>,
@visnut
)
Heike Hofmann (
<EMAIL_ADDRESS>,
@heike_hh
) ### 07/25-27/2018 --- # Using `tidyr`, `dplyr` - Writing readable code using **pipes** - What is **tidy data**? Why do you want tidy data? Getting your data into tidy form using tidyr. - Reading different **data formats** - String operations, working with **text** --- # The pipe operator `%>%` - `x %>% f(y)` is the same as `f(x, y)` - part of `dplyr` package - pipes allow the code to be *read* like a sequence of operations Example: ```r tb <- read_csv("../data/TB_notifications_2018-03-18.csv") tb %>% filter(year == 2016) %>% group_by(country) %>% summarize(cases = sum(c_newinc, na.rm=TRUE)) %>% arrange(desc(cases)) # A tibble: 217 x 2 country cases <chr> <int> 1 India 1763876 2 China 778493 3 Indonesia 358608 4 Pakistan 356390 5 Philippines 332941 6 South Africa 237045 7 Bangladesh 222248 8 Myanmar 137551 9 Democratic Republic of the Congo 130596 10 Ethiopia 125836 # ... with 207 more rows ``` --- # What is **tidy data**? - What do we expect tidy data to look like? - Couple of exercises to look closer at what we find in practice --- class: inverse middle # Your turn 1 What are the variables? ``` # A tibble: 6 x 4 Inst AvNumPubs AvNumCits PctCompletion <chr> <dbl> <dbl> <dbl> 1 ARIZONA STATE UNIVERSITY 0.9 1.57 31.7 2 AUBURN UNIVERSITY 0.79 0.64 44.4 3 BOSTON COLLEGE 0.51 1.03 46.8 4 BOSTON UNIVERSITY 0.49 2.66 34.2 5 BRANDEIS UNIVERSITY 0.3 3.03 48.7 6 BROWN UNIVERSITY 0.84 2.31 54.6 ``` --- class: inverse middle # Your turn 2 What's in the column names of this data? What are the experimental units? What are the measured variables? ``` # A tibble: 3 x 12 id `WI-6.R1` `WI-6.R2` `WI-6.R4` `WM-6.R1` `WM-6.R2` `WI-12.R1` <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> 1 Gene… 2.18 2.20 4.20 2.63 5.06 4.54 2 Gene… 1.46 0.585 1.86 0.515 2.88 1.36 3 Gene… 2.03 0.870 3.28 0.533 4.63 2.18 # ... with 5 more variables: `WI-12.R2` <dbl>, `WI-12.R4` <dbl>, # `WM-12.R1` <dbl>, `WM-12.R2` <dbl>, `WM-12.R4` <dbl> ``` --- class: inverse middle # Your turn 3 What are the variables? What are the records? ``` V1 V2 V3 V4 V5 V9 V13 V17 V21 V25 V29 V33 V37 V41 V45 V49 1 ASN00086282 1970 7 TMAX 141 124 113 123 148 149 139 153 123 108 119 112 2 ASN00086282 1970 7 TMIN 80 63 36 57 69 47 84 78 49 42 48 56 3 ASN00086282 1970 7 PRCP 3 30 0 0 36 3 0 0 10 23 3 0 4 ASN00086282 1970 8 TMAX 145 128 150 122 109 112 116 142 166 127 117 127 5 ASN00086282 1970 8 TMIN 50 61 75 67 41 51 48 -7 56 62 47 33 6 ASN00086282 1970 8 PRCP 0 66 0 53 13 3 8 0 0 0 3 5 V53 V57 V61 V65 V69 V73 V77 V81 V85 V89 V93 V97 1 126 112 115 133 134 126 104 143 141 134 117 142 2 51 36 44 39 40 58 15 33 51 74 39 66 3 5 0 0 0 0 0 8 0 18 0 0 0 4 159 143 114 65 113 125 129 147 161 168 178 161 5 67 84 11 41 18 50 22 28 74 94 73 88 6 0 0 64 3 99 36 8 0 0 0 8 36 ``` --- class: inverse middle # Your turn 4 What are the variables? What are the experimental units? ``` # A tibble: 6 x 22 iso2 year m_04 m_514 m_014 m_1524 m_2534 m_3544 m_4554 m_5564 m_65 <chr> <int> <int> <int> <int> <int> <int> <int> <int> <int> <int> 1 ZW 2003 NA NA<PHONE_NUMBER> 2228 981 367 205 2 ZW 2004 NA NA<PHONE_NUMBER> 2298 1056 366 198 3 ZW 2005 NA NA<PHONE_NUMBER> 1855 762 295 656 4 ZW 2006 NA NA<PHONE_NUMBER> 1939 896 348 199 5 ZW 2007 6 132<PHONE_NUMBER> 0 716 292 153 6 ZW 2008 NA NA 127 614 0 3316 704 263 185 # ... with 11 more variables: m_u <int>, f_04 <int>, f_514 <int>, # f_014 <int>, f_1524 <int>, f_2534 <int>, f_3544 <int>, f_4554 <int>, # f_5564 <int>, f_65 <int>, f_u <int> ``` --- class: inverse middle # Your turn 5 What are the variables? What are the experimental units? ``` religion <$10k $10-20k $20-30k $30-40k 1 Agnostic 27 34 60 81 2 Atheist 12 27 37 52 3 Buddhist 27 21 30 34 4 Catholic 418 617 732 670 5 Don’t know/refused 15 14 15 11 ``` --- class: inverse middle # Your turn 6 10 week sensory experiment, 12 individuals assessed taste of french fries on several scales (how potato-y, buttery, grassy, rancid, paint-y do they taste?), fried in one of 3 different oils, replicated twice.  What are the factors of the experiment? What was measured? What do you want to know? --- # Messy Data Patterns There are various features of messy data that one can observe in practice. Here are some of the more commonly observed patterns: - Column headers are values, not variable names - Variables are stored in both rows and columns, contingency table format - One type of experimental unit stored in multiple tables - Dates in many different formats --- # What is Tidy Data? - Each observation forms a row - Each variable forms a column - Data is contained in a single table - Long form makes it easier to reshape in many different ways - Wider forms are common for analysis --- ![](lego.png) --- ![](playmobile.png) --- # Tidy Verbs - `gather`: specify the **keys** (identifiers) and the **values** (measures) to make long form (used to be called melting) - `spread`: variables in columns (used to be called casting) - `separate`/`unite`: split and combine columns - `nest`/`unnest`: working with list variables --- # Gathering `gather(data, key = "key", value = "value", ...)` `data %>% gather(key = "key", value = "value", ...)` - `gather` turns a wide format into a long format - two new variables are introduced (in key-value format): **key** and **value**: multiple columns (specified in `...`) are collapsed; their names go into variable `key`, their values go into variable `value`. ```r dframe id trtA trtB 1 1 2.5 45 2 2 4.6 35 dframe %>% gather(treatment, outcome, trtA, trtB) id treatment outcome 1 1 trtA 2.5 2 2 trtA 4.6 3 1 trtB 45.0 4 2 trtB 35.0 ``` --- # TB notifications new notifications of TB have the form `new_sp_genderage`: ```r read_csv("../data/TB_notifications_2018-03-18.csv") %>% select(country, iso3, year, starts_with("new_sp_")) %>% head() # A tibble: 6 x 23 country iso3 year new_sp_m04 new_sp_m514 new_sp_m014 new_sp_m1524 <chr> <chr> <int> <int> <int> <int> <int> 1 Afghan… AFG 1980 NA NA NA NA 2 Afghan… AFG 1981 NA NA NA NA 3 Afghan… AFG 1982 NA NA NA NA 4 Afghan… AFG 1983 NA NA NA NA 5 Afghan… AFG 1984 NA NA NA NA 6 Afghan… AFG 1985 NA NA NA NA # ... with 16 more variables: new_sp_m2534 <int>, new_sp_m3544 <int>, # new_sp_m4554 <int>, new_sp_m5564 <int>, new_sp_m65 <int>, # new_sp_mu <int>, new_sp_f04 <int>, new_sp_f514 <int>, # new_sp_f014 <int>, new_sp_f1524 <int>, new_sp_f2534 <int>, # new_sp_f3544 <int>, new_sp_f4554 <int>, new_sp_f5564 <int>, # new_sp_f65 <int>, new_sp_fu <int> ``` --- # TB notifications (gather) create two new variables: variable `key` (contains all variable names starting with `new_sp_`) and variable `count` with the values: ```r tb1 <- read_csv("../data/TB_notifications_2018-03-18.csv") %>% select(country, iso3, year, starts_with("new_sp_")) %>% gather(key, count, starts_with("new_sp_")) tb1 %>% na.omit() %>% head() # A tibble: 6 x 5 country iso3 year key count <chr> <chr> <int> <chr> <int> 1 Afghanistan AFG 2010 new_sp_m04 4 2 Afghanistan AFG 2011 new_sp_m04 2 3 Afghanistan AFG 2012 new_sp_m04 0 4 Albania ALB 2005 new_sp_m04 0 5 Albania ALB 2006 new_sp_m04 1 6 Albania ALB 2007 new_sp_m04 0 ``` --- # Separate Columns `separate (data, col, into, sep = "[^[:alnum:]]+", ...)` `data %>% separate (col, into, sep = "[^[:alnum:]]+", ...)` - split column `col` from data frame `frame` into a set of columns as specified in `into` - `sep` is the splitting separator. By default splits happen for any non-alphanumeric value.
 Pro tip: specify `sep` to have some more control; any regular expression will work - `unite` combines multiple variables into one --- # TB notification (separate) Work on `key`: ```r tb2 <- tb1 %>% separate(key, sep = "_", into=c("foo_new", "foo_sp", "genderage")) tb2 %>% na.omit() %>% head() # A tibble: 6 x 7 country iso3 year foo_new foo_sp genderage count <chr> <chr> <int> <chr> <chr> <chr> <int> 1 Afghanistan AFG 2010 new sp m04 4 2 Afghanistan AFG 2011 new sp m04 2 3 Afghanistan AFG 2012 new sp m04 0 4 Albania ALB 2005 new sp m04 0 5 Albania ALB 2006 new sp m04 1 6 Albania ALB 2007 new sp m04 0 ``` --- # TB notification (separate again) Now split `genderage` into first character (m/f) and rest. `substr` allows to extract sub strings from a character vector (see `?substr`): ```r tb3 <- tb2 %>% select(-starts_with("foo")) %>% mutate(gender=substr(genderage, 1, 1), age=substr(genderage, 2, length(genderage))) %>% select(-genderage) tb3 %>% na.omit() %>% head() # A tibble: 6 x 6 country iso3 year count gender age <chr> <chr> <int> <int> <chr> <chr> 1 Afghanistan AFG 2010 4 m 04 2 Afghanistan AFG 2011 2 m 04 3 Afghanistan AFG 2012 0 m 04 4 Albania ALB 2005 0 m 04 5 Albania ALB 2006 1 m 04 6 Albania ALB 2007 0 m 04 ``` --- class: inverse middle # Your turn ![](lorikeets.png) Turn the `french_fries` data (from package `reshape`) from wide format into a long format with variables `type` and `rating`. What would we like to find out about this data? ``` time treatment subject rep potato buttery grassy rancid painty 61 1 1 3 1 2.9 0.0 0.0 0.0 5.5 25 1 1 3 2 14.0 0.0 0.0 1.1 0.0 62 1 1 10 1 11.0 6.4 0.0 0.0 0.0 26 1 1 10 2 9.9 5.9 2.9 2.2 0.0 63 1 1 15 1 1.2 0.1 0.0 1.1 5.1 27 1 1 15 2 8.8 3.0 3.6 1.5 2.3 ``` --- # What Would We Like to Know? - Is the design complete? - Are replicates like each other? - How do the ratings on the different scales differ? - Are raters giving different scores on average? - Do ratings change over the weeks? Each of these questions involves different summaries of the data. --- # Gathering the French Fries ```r ff_long <- gather(french_fries, key = type, value = rating, potato:painty) head(ff_long) time treatment subject rep type rating 1 1 1 3 1 potato 2.9 2 1 1 3 2 potato 14.0 3 1 1 10 1 potato 11.0 4 1 1 10 2 potato 9.9 5 1 1 15 1 potato 1.2 6 1 1 15 2 potato 8.8 ``` --- # Long to Wide In certain applications, we may wish to take a long dataset and convert it to a wide dataset (perhaps displaying in a table). This is called "spreading" the data. --- # Spread We use the **spread** function from `tidyr` to do this: ```r french_fries_weeks <- spread(ff_long, key = time, value = rating) head(french_fries_weeks) treatment subject rep type 1 2 3 4 5 6 7 8 9 10 1 1 3 1 buttery 0.0 0.3 0.2 0.1 0.3 1.2 0.0 0.5 0.4 NA 2 1 3 1 grassy 0.0 0.1 0.0 0.0 0.0 0.0 0.0 1.3 0.0 NA 3 1 3 1 painty 5.5 0.3 0.0 0.0 1.7 9.5 5.5 3.8 7.0 NA 4 1 3 1 potato 2.9 9.0 11.8 13.6 14.0 0.4 2.9 3.5 1.1 NA 5 1 3 1 rancid 0.0 5.8 6.0 1.7 0.0 0.0 0.0 0.0 0.0 NA 6 1 3 2 buttery 0.0 0.5 0.5 0.0 0.8 1.1 0.0 0.3 0.5 NA ``` Plot Week 1 against Week 9 in a scatterplot: ```r french_fries_weeks %>% ggplot(aes(x = `1`, y = `9`)) + geom_point() ``` --- # Week 1 vs week 9 ```r french_fries_weeks %>% ggplot(aes(x = `1`, y = `9`)) + geom_point() ```  --- class: inverse middle # Your turn ![](lorikeets.png) ## Do the Replicates Look Like Each Other? Tackle this by plotting the replicates against each other using a scatterplot. You will need to first gather the data into long form, and then get the replicates spread into separate columns by replicate. --- # Are ratings similar on different scales? - Are ratings similar on the different scales: potato'y, buttery, grassy, rancid and painty? - We need to gather the data into long form, and make plots facetted by the scale. --- # Ratings on the Different Scales ```r ff.m <- french_fries %>% gather(type, rating, -subject, -time, -treatment, -rep) head(ff.m) time treatment subject rep type rating 1 1 1 3 1 potato 2.9 2 1 1 3 2 potato 14.0 3 1 1 10 1 potato 11.0 4 1 1 10 2 potato 9.9 5 1 1 15 1 potato 1.2 6 1 1 15 2 potato 8.8 ``` -- ```r ggplot(data=ff.m, aes(x=rating)) + geom_histogram(binwidth=2) + facet_wrap(~type, ncol=5) ```  --- # Side-By-Side Boxplots ```r ggplot(data=ff.m, aes(x=type, y=rating, fill=type)) + geom_boxplot() ```  --- # Ratings by week How do ratings change over the weeks? Again, we use the long form of the data and plot: ```r ff.m$time <- as.numeric(ff.m$time) ggplot(data=ff.m, aes(x=time, y=rating, colour=type)) + geom_point(size=.75) + geom_smooth() + facet_wrap(~type) ```  --- class: inverse middle # Your turn Read the genes data from folder `data`. Column names contain data and are kind of messy. Introduce data frame `gtidy` as shown below: ```r genes <- read_csv("../data/genes.csv") ``` ```r head(gtidy) # A tibble: 6 x 5 id trt time rep expr <chr> <chr> <chr> <chr> <dbl> 1 Gene 1 I 6 1 2.18 2 Gene 2 I 6 1 1.46 3 Gene 3 I 6 1 2.03 4 Gene 1 I 6 2 2.20 5 Gene 2 I 6 2 0.585 6 Gene 3 I 6 2 0.870 ``` ![](lorikeets.png) --- # Plot from before ```r gmean <- gtidy %>% group_by(id, trt, time) %>% summarise(expr = mean(expr)) gtidy %>% ggplot(aes(x = trt, y = expr, colour=time)) + geom_point() + geom_line(data = gmean, aes(group = time)) + facet_wrap(~id) ```  --- # Models and model output Functions such as `lm`, `glm`, `lmer`, ... allow us to fit models e.g. fit french fry rating with respect to all designed main effects: ```r ff_long <- gather(french_fries, key = type, value = rating, potato:painty) ff_lm <- lm(rating~type+treatment+time+subject, data=ff_long) ``` --- `summary`, `str`, `resid`, `fitted`, `coef`, ... allow us to extract different parts of a model for a linear model. Other model functions work differently ... major headaches! ```r summary(ff_lm) Call: lm(formula = rating ~ type + treatment + time + subject, data = ff_long) Residuals: Min 1Q Median 3Q Max -7.0729 -1.9674 -0.4644 1.5202 10.2192 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 1.19851 0.25792 4.647 3.50e-06 *** typegrassy -1.15513 0.15572 -7.418 1.49e-13 *** typepainty 0.70055 0.15577 4.497 7.11e-06 *** typepotato 5.13322 0.15572 32.964 < 2e-16 *** typerancid 2.03293 0.15572 13.055 < 2e-16 *** treatment2 -0.05128 0.12051 -0.426 0.6705 treatment3 -0.04546 0.12056 -0.377 0.7062 time2 0.10194 0.21613 0.472 0.6372 time3 -0.01361 0.21613 -0.063 0.9498 time4 -0.10250 0.21613 -0.474 0.6353 time5 -0.13301 0.21690 -0.613 0.5398 time6 -0.04611 0.21613 -0.213 0.8311 time7 -0.24621 0.21628 -1.138 0.2550 time8 -0.11626 0.21658 -0.537 0.5914 time9 0.13188 0.22783 0.579 0.5627 time10 0.54635 0.22783 2.398 0.0165 * subject10 1.71451 0.24389 7.030 2.48e-12 *** subject15 -0.35911 0.24489 -1.466 0.1426 subject16 0.47519 0.24408 1.947 0.0516 . subject19 2.01651 0.24389 8.268 < 2e-16 *** subject31 1.49284 0.25098 5.948 2.98e-09 *** subject51 1.87284 0.24389 7.679 2.07e-14 *** subject52 0.19484 0.24389 0.799 0.4244 subject63 0.96051 0.24389 3.938 8.37e-05 *** subject78 -0.58283 0.24389 -2.390 0.0169 * subject79 -0.53702 0.25027 -2.146 0.0320 * subject86 0.43543 0.25098 1.735 0.0828 . --- Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Residual standard error: 2.9 on 3444 degrees of freedom (9 observations deleted due to missingness) Multiple R-squared: 0.3995, Adjusted R-squared: 0.395 F-statistic: 88.13 on 26 and 3444 DF, p-value: < 2.2e-16 ``` --- # Tidying model output The package `broom` gets model results into a tidy format at different levels One value for each: - model: `broom::glance` - coefficient in the model: `broom::tidy` - value in the dataset: `broom::augment` --- # Goodness of fit statistics: `glance` ```r glance(ff_lm) r.squared adj.r.squared sigma statistic p.value df logLik AIC 1 0.3995198 0.3949865 2.89966 88.13113 0 27 -8606.787 17269.57 BIC deviance df.residual 1 17441.83 28957.24 3444 ``` --- # Model estimates: `tidy` ```r ff_lm_tidy <- tidy(ff_lm) glimpse(ff_lm_tidy) Observations: 27 Variables: 5 $ term <chr> "(Intercept)", "typegrassy", "typepainty", "typepota... $ estimate <dbl> 1.19851228, -1.15513007, 0.70054547, 5.13321525, 2.0... $ std.error <dbl> 0.2579150, 0.1557200, 0.1557749, 0.1557200, 0.155720... $ statistic <dbl> 4.64692727, -7.41799461, 4.49716394, 32.96439433, 13... $ p.value <dbl> 3.495385e-06, 1.489614e-13, 7.113736e-06, 2.275767e-... ``` --- # Model diagnostics: `augment` ```r ff_lm_all <- augment(ff_lm) glimpse(ff_lm_all) Observations: 3,471 Variables: 13 $ .rownames <chr> "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", ... $ rating <dbl> 2.9, 14.0, 11.0, 9.9, 1.2, 8.8, 9.0, 8.2, 7.0, 13.0... $ type <chr> "potato", "potato", "potato", "potato", "potato", "... $ treatment <fct> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ... $ time <fct> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ... $ subject <fct> 3, 3, 10, 10, 15, 15, 16, 16, 19, 19, 31, 31, 51, 5... $ .fitted <dbl> 6.331728, 6.331728, 8.046235, 8.046235, 5.972622, 5... $ .se.fit <dbl> 0.2578966, 0.2578966, 0.2523712, 0.2523712, 0.25301... $ .resid <dbl> -3.4317275, 7.6682725, 2.9537651, 1.8537651, -4.772... $ .hat <dbl> 0.007910376, 0.007910376, 0.007575050, 0.007575050,... $ .sigma <dbl> 2.899486, 2.897111, 2.899641, 2.899907, 2.898931, 2... $ .cooksd <dbl> 4.169299e-04, 2.081769e-03, 2.955862e-04, 1.164238e... $ .std.resid <dbl> -1.1882021, 2.6550643, 1.0225395, 0.6417396, -1.652... ``` --- # Residual plot ```r ggplot(ff_lm_all, aes(x=.fitted, y=.resid)) + geom_point() ```  --- # Adding random effects Add random intercepts for each subject ```r library(lme4) fries_lmer <- lmer(rating~type+treatment+time+subject + ( 1 | subject ), data = ff_long) ``` --- class: inverse middle # Your turn - Augment the ff_long data with the model diagnostics - Plot the residuals from the (a) fixed, (b) random effects - Plot fitted values against observed values --- # Resources - Data transformation [cheatsheet](https://github.com/rstudio/cheatsheets/raw/master/source/pdfs/data-transformation-cheatsheet.pdf) - [Wickham (2007) Reshaping data](https://www.jstatsoft.org/article/view/v021i12/v21i12.pdf) - [broom vignettes, David Robinson](https://cran.r-project.org/web/packages/broom/vignettes/broom.html) --- # Share and share alike This work is licensed under the Creative Commons Attribution-Noncommercial 3.0 United States License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc/3.0/us/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.


TED Virtual Machine (VM)¶
How to run the TED toolkit Virtual Machine (VM) Application
Pre-requisites¶
Download VirtualBox: http://www.virtualbox
Setting up TED VM Application¶
Downdload TED VM files from Galaxy Data Libraries¶
Galaxy Data Libraries link: http://galaxy.hunter.cuny.edu/library/list#folders/Fb56e686e7a485784
Select Appliance on VM¶
Import OVA Appliance on VM¶
TED Appliance settings for import on VM¶
TED Appliance Importing on VM¶
TED Appliance Settings on VM¶
Go to Settings¶
System Requirements¶
Open virtual disk file for TED Appliance on VM


Project management anti-patterns
Groupthink:
Avoid promoting viewpoints outside the comfort zone during groupthink
Overengineering:
Spending resources making a project more robust and complex than is needed
Smoke and mirrors:
Demonstrating unimplemented functions as if they were already implemented
Software bloat:
Allowing successive versions of a system to demand ever more resources
Waterfall model:
An older method of software development that inadequately deals with unanticipated
Software design anti-patterns
Abstraction inversion:
Re-implement it using higher level functions
Ambiguous viewpoint:
Presenting a model without specifying its viewpoint
Big ball of mud:
A system with no recognizable structure
Database-as-IPC:
Always use database as the ipc
Gold plating:
extra feature without adding value
Input kludge:
Failing to handle invalid input
Interface bloat:
Making an interface so powerful that it is extremely difficult to implement
Magic pushbutton:
Coding implementation logic directly within interface code
Race hazard:
Failing to see the consequence of different orders of events
Stovepipe system:
A barely maintainable assemblage of ill-related components
Object-oriented design anti-patterns
Call super:
Requiring subclasses to call a superclass's overridden method
Circular dependency:
Unnecessary mutual dependencies between software modules
God object:
Concentrating too many functions in a single part of class
Object cesspool:
Reusing objects whose state does not suitablefor re-use
Object orgy:
All public !!!
Input kludge:
Failing to handle invalid input
Poltergeists:
Objects whose sole purpose is to pass information to another object
Sequential coupling:
A class that requires its methods to be called in a particular order
Yo-yo problem:
A structure (e.g., of inheritance) that is hard to understand due to excessive fragmentation
Programming anti-patterns
Accidental complexity:
Unecessary complexity
Action at a distance:
Unexpected interaction between parts of a system
Blind faith:
Lack of checking of the result of a subroutine
Boat anchor:
Retaining unused part of a system
Busy waiting:
Consuming CPU while waiting for something to happen, usually by repeated checking instead of messaging
Caching failure:
Not resetting a flag when it has been changed
Cargo cult programming:
Using patterns and methods without understanding why
Coding by exception:
Adding new code to handle each special case as it is recognized
Error hiding:
Showing nothing or showing a meaningless message
Programming anti-patterns
Hard code:
Embedding assumptions about the environment of a system in the code
Lava flow:
Retaining undesirable code
Loop-switch sequence:
Conditions in a loop
Magic numbers:
Unexplained numbers in algorithms
Magic strings:
Literal strings in code, for comparisons, as event types etc.
Repeating yourself:
Writing code which contains repetitive patterns and substrings over again
Soft code:
Storing business logic in configuration files rather than source code
Spaghetti code:
Programs whose structure is barely comprehensible, especially because of misuse of code structures
Shotgun surgery:
Developer adds multiple features to codebase in a single change
Methodological anti-patterns
Copy and paste programming
Golden hammer, Silver bullet:
Assuming that a favorite solution is universally applicable
Improbability factor:
Assuming that it is improbable that a known error will occur
Not Invented Here (NIH) syndrome,Reinventing the wheel,Reinventing the square wheel:
Failing to adopt an existing, adequate solution
Premature optimization:
Coding early-on for perceived efficiency, sacrificing good design, maintainability, and sometimes even real-world efficiency
Programming by permutation (or "programming by accident"):
Trial and error
Tester Driven Development:
Software projects in which new requirements are specified in bug reports
Configuration management anti-patterns
Dependency hell: Problems with versions of required products
one more thing...
github.com / karuna / presentation


Home
About Us
Lessons
Camps
Contact Us
Contact Us!
Contact Me!
Send me a message. I would love to hear from you!
First Name
Last Name
Email Address
Topic
Lessons
Open Houses
Teachers
Other
Things I am interested in learning more about:
Lessons
Being a surf instructor
Camp
Become a part of our email list
Message


@(userForm: Form[UserLogin])(implicit msg: play.api.i18n.Messages)
@import helper._
@implicitFieldConstructor = @{ FieldConstructor(twitterBootstrapInput.f)}
@main("Employee-Self-Service") {
Register now for FREE
- See all your Bloggers
- Sign Up is always free
- Save your all Blogs
- Fast checkout
- Get a gift (profile visits more than 10000)
- Technical Discussion using free Blogs
Yes please, register now!
}


But Charles, the conqueror of foreigners, was beset by his own men in a plot that was strange indeed, but vain. For, after returning from the Slavs to Regensburg, he was nearly captured by a son born of a concubine, whose mother had ominously marked him with the name of most glorious Pippin, and as far as it was in Pippin's power, Charles was condemned to death.
Which was discovered in this way.
When Pippin had deliberated on the death of the emperor in the church of Saint Peter with assembled nobles, after the discussion was done, "fearing everything safe", he ordered them to see if anyone was hidden anywhere in the corners or beneath the altar; and lo, as they feared, they found one priest concealed below the altar. And they seized him and forced him to swear an oath not to betray their plot. He, to keep from losing his life, did not refuse to swear as they dictated. But after they withdrew, he, caring little for that sacrilegious oath, hurried to the palace.
And after he had finally penetrated, with the greatest difficulty, through seven barred doors to the bedchamber of the emperor, he beat on the door, bringing the ever wakeful Charles to the greatest astonishment about who would dare to disturb him at that hour. Nevertheless he ordered the women, who were accustomed to accompany him to attend the queen or her daughters, to go and see who was at the door and what he wanted. They went out and found him to be a very humble person. Then, with immoderate laughter and guffawing, they barred the door and tried to hide in the corners of the room, covering their mouths with their garments.
But the most wise emperor, whose notice nothing under heaven could escape, diligently inquired of the women what the matter was, and who was beating at the door.  And he, falling to Charles' feet, at once revealed everything in order.
And indeed, suspecting nothing at all, before the third hour of the day all those conspirators were transported into exile or punished appropriately.
Likewise, the hunchbacked dwarf Pippin himself, after being beaten without mercy and tonsured, was punished by being sent for some time to the monastery of Saint Gaul, which was seen as poorer and meaner than all other places of the broad empire.
And not much later some of the Frankish nobles wished to send bands of men against the king. And though this did not at all escape his notice, yet nonetheless he was not willing to destroy them because, had they wished well, they could have been a great defense for Christians, he directed his envoys to the same Pippin, to ask him what ought to be done about these men.
And when they found him in the garden with the older brothers, (as the younger ones were occupied with harder work) digging out nettles and other noxious plants with a garden fork, to let more useful plants grow more vigorously, they revealed to him the reason for their arrival. But he, drawing a sigh from the bottom of his heart, as all frail men are accustomed to be more easily irritated than healthy ones, replied in these words: "If Charles had thought my advice worthy, he should not have laid such injuries upon me. I have no word to send him. Tell him what you found me doing."
But they, afraid to return to the formidable emporer without a clear answer, asked him again and again what they should report to their lord.
Then he said, angrily: "I send him no word other than what I'm doing. I'm digging up useless weeds to let useful vegetables grow better."
And so they left in sorrow, like men with nothing reasonable to report.
And when they came to the emperor and were asked what they had to report, they lamented that, after so much effort and such a journey, they were not one word wiser. But when the king, with great wisdom, questioned them in detail on where they found him and what he was doing and what answers he had given them, they said: "We found him sitting on a three-legged peasant's stool and cultivating a vegetable bed with a garden fork; and after relating the reason for our journey, we could only extract this answer from him with our pressing demands: 'I have nothing to say but what I'm doing. I'm digging up useless weeds to let useful vegetables grow better.'"
On hearing this the Augustus, not without cunning and strong in wisdom, rubbed his ears and puffed out his nostrils, and said to them: "My good vassals, you have brought back a reasonable response."
And so, while they were afraid about danger to their lives, he himself carried this advice into effect, sweeping all of those conspirators from the midst of the living, and allowing his loyal men to increase and extend themselves with the places occupied by the unproductive men.
Indeed, he ordered that one of his enemies, who had picked out for himself the highest hill in France and whatever he could see from it, be hanged from a gallows set up on that very same hill.


Truck purchased. Picking it up tomorrow. It's so big.
Had a great night out on the roller rink, adult skate night top 40 DJ style.  I got my skate-y groove on for two hours until the blisters threatened to form fully. You know that hot spot where there's only so many more joy laps you can make before you end up limping around for a week.
Ah the wind in my 2.5 inches of hair, the smell of shoe sanitizing spray, and the latest slow jams one after another... In my current state of single-hood, there was a definite wistfulness for that disco ball lit couple skate where one of you awkwardly goes backwards while you hold slightly tugging hands since you don't want to or can't sync up exactly (this isn't the fox trot folks). There's Dr. Pepper lip gloss. Ah sigh.
Peace and quiet, tea and a mountain of New Years Resolution fruits and vegetables were here when I got home and turned the heat up from 55. Having to lug a 30+ tank of propane in and out of a tiny hatch and a bizarre variety of rental cars is motivation enough to Jimmy Carter it around here. I haven't timed it yet, but I'm betting the Coors can will turn bright blue after and hour in here with the heat off. There's pretty much no insulation and plus anyone who bought this thing in 1992 probably appreciated the nickname of "Snowbird". There's a certain amount of accumulated wisdom behind fleeing the cold with your house behind your truck.
Picking up the truck tomorrow. Got to learn how to drive this thing. Thinking it might grow on me faster than I imagine. Cowboy Cadillac. Hm. Night y'all.


RUN-PARTS(8) RUN-PARTS(8) NAME run-parts - run scripts or programs in a directory SYNOPSIS run-parts [--test] [--verbose] [--report] [--lsbsysinit] [--regex=RE] [--umask=umask] [--arg=argument] [--exit-on-error] [--help] [--version] [--list] [--reverse] [--] DIRECTORY run-parts -V DESCRIPTION run-parts runs all the executable files named within constraints described below, found in directory directory. Other files and directo‐ ries are silently ignored. If neither the --lsbsysinit option nor the --regex option is given then the names must consist entirely of ASCII upper- and lower-case letters, ASCII digits, ASCII underscores, and ASCII minus-hyphens. If the --lsbsysinit option is given, then the names must not end in .dpkg-old or .dpkg-dist or .dpkg-new or .dpkg-tmp, and must belong to one or more of the following namespaces: the LANANA-assigned namespace (^[a-z0-9]+$); the LSB hierarchical and reserved namespaces (^_?([a-z0-9_.]+-)+[a-z0-9]+$); and the Debian cron script namespace (^[a-zA-Z0-9_-]+$). If the --regex option is given, the names must match the custom extended regular expression specified as that option's argument. Files are run in the lexical sort order (according to the C/POSIX locale character collation rules) of their names unless the --reverse option is given, in which case they are run in the opposite order. OPTIONS --test print the names of the scripts which would be run, but don't actu‐ ally run them. --list print the names of the all matching files (not limited to executa‐ bles), but don't actually run them. This option cannot be used with --test. -v, --verbose print the name of each script to stderr before running. --report similar to --verbose, but only prints the name of scripts which produce output. The script's name is printed to whichever of std‐ out or stderr the script first produces output on. --reverse reverse the scripts' execution order. --exit-on-error exit as soon as a script returns with a non-zero exit code. --lsbsysinit use LSB namespaces instead of classical behavior. --new-session run each script in a separate process session. If you use this option, killing run-parts will not kill the currently running script, it will run until completion. --regex=RE validate filenames against custom extended regular expression RE. See the EXAMPLES section for an example. -u, --umask=umask sets the umask to umask before running the scripts. umask should be specified in octal. By default the umask is set to 022. -a, --arg=argument pass argument to the scripts. Use --arg once for each argument you want passed. -- specifies that this is the end of the options. Any filename after -- will be not be interpreted as an option even if it starts with a hyphen. -h, --help display usage information and exit. -V, --version display version and copyright and exit. EXAMPLES Print the names of all files in /etc that start with `p' and end with `d': run-parts --list --regex '^p.*d$' /etc COPYRIGHT Copyright (C) 1994 Ian Jackson. Copyright (C) 1996 Jeff Noxon. Copyright (C) 1996, 1997, 1998 Guy Maor Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Clint Adams run-parts is free software; see the GNU General Public License version 2 or later for copying conditions. There is no warranty. Debian 27 Jun 2012 RUN-PARTS(8)


Error
Somethisng went wrong. Please try again later.
Success
Profile was updated.
Warning
Deadline is coming.