This privacy statement explains the privacy practices of repostplus ("repostplus" or "us", "our", "we") for the users of our mobile phone application ("Application"), our website ("Website") – together the "Service", and the information in the Service. As used herein, "you" or "your" refers to the individual accessing or using the Service.
We respect your right to privacy. Your ability to make informed choices about the uses of your information is important to us. This privacy statement explains our policy regarding the collection, use, disclosure and protection of Personal Information. The terms of this privacy statement apply to information collected from you unless different terms are specified as part of a special offer or in another form or contract we provide you.
Personal Information is information that can be directly associated with a specific person or entity such as e-mail address, IP address, information about the person’s browser, device or operating system, or information directly linked to that person.
By using the Service you agree to the use of Personal Information as described in this Privacy Policy.
We may automatically collect certain Personal Information when you use the Service, such as IP address, information about your browser, device or operating system or similar information.
If you upload or use Personal Information which relates to someone other than you, you represent to us that you have that person's legally binding consent to the use of the information as described herein or that you are legally authorized to consent on their behalf.
We may use the Personal Information you provide us with in connection with operating the Service (for example, to send you push notifications about new features which are available on the Service); to maintain reasonable security; to help diagnose problems with our servers; to enable us to develop and improve the features, contents, and Service; to respond to your inquiries about our Service and to enforce our rights and resolve disputes. By using the Service you consent to receiving email communications to tell you about the our services. If you prefer not to receive promotional information from us, we make it easy for you to let us know. You can contact us at any time to decline promotional information (see Choice below).
We do not sell, rent, share, or disclose Personal Information to third parties, except as provided herein.
Personal Information does not include "aggregate" information. Aggregate information is data we collect about a group or category of services or users, from which individual customer identities have been removed. In other words, information about how you use a service, or the results of such use, may be collected and combined with similar information others, but no Personal Information will be included in the resulting data. We can extract statistical data from your content in order to provide other users or partners without connecting it to any personal data such as name or e-mail address.
Aggregate data helps us understand trends and user needs so that we can better consider new products and services, and tailor existing products and services to customer desires. You understand that we may commercialize aggregate information by any and all means, and that you will receive no payment or other consideration in respect of such use.
We use third party tracking tools like Mixpanel. If you wish to opt-out from our third party services, please email us at<EMAIL_ADDRESS>In addition, we may disclose Personal Information in the good faith belief that we are required to do so by law, or that doing so is reasonably necessary to comply with laws or legal process, respond to any claims, or to protect the rights, property, or personal safety of us, our customers, or the public. We will fully cooperate with any law enforcement authorities or court order requesting or directing us to disclose the identity, behavior or digital content of any user suspected to have engaged in illegal or infringing behavior.
We may provide Personal Information to third party vendors or service providers who assist us or our affiliates in administering and managing our sites, products, services or business (such as third parties providing hosting services). These recipients of Personal Information are not authorized to use the information we share with them for any other purpose. By providing such information, you expressly consent to such transfer and use, including transfers outside of the jurisdiction in which the information was provided.
Information about our customers, including Personal Information, may be disclosed as part of, or during negotiations of, any merger, sale of company assets or capital stock, merger, reorganization, dissolution or similar event. By providing such information, you expressly consent to such transfer and use, including transfers outside of the jurisdiction in which the information was provided.
We have put into place security measures in an effort to protect Personal Information from loss, misuse or alteration while it is under our control. We use technical, contractual, administrative and physical measures in an effort to protect against unauthorized access. These include secured servers. Although we take measures we believe are appropriate to safeguard against unauthorized disclosures of Personal Information, "perfect security" does not exist on the Internet. We cannot ensure or warrant the security of any Personal Information you transmit to us, and you transmit such information at your own risk.
Upon usage of the Service, we may retain your Personal information for a commercially reasonable period of time for backup, archival, or audit purposes.
If at any time you wish to stop receiving promotional information from the Service, you may opt out by e-mailing us at<EMAIL_ADDRESS>You must be 13 years of age or older in order to establish an account on and use the Service. In the event you become aware that somebody under the age of 13 has enrolled without parental permission, please inform us immediately.
If any part of the Service links you to websites, enables the download of third party software, or integrates third party software, those websites, software or related services are not subject to this Privacy Policy. Any Personal Information you provide on the linked pages is provided directly to this third-party and is subject to that third party's provider's privacy policy.
Except as described above, we are not responsible for the content or privacy practices of websites to which we link. Links from our site to third parties or other websites are provided for your convenience. We encourage you to learn about the privacy practices of each web site before providing them with Personal Information.
If you have any questions about this Policy, please contact our Data Protection Officer by emailing us at<EMAIL_ADDRESS>We reserve the right to change this privacy statement at any time, but will alert you that changes have been made by indicating the date it was last updated. We encourage you to review our privacy statement to make sure you understand how your information will be used. If there is ever a material change to how we use your information and the new uses are unrelated to uses we disclose in this statement, we will communicate the changes in advance, and such changes will apply following the date of such change.
Updated: April 2019


Keep on going and don't let frustration and failures discourage you!
Learning to code isn’t simple.
In fact, you may have to inject a bit of your own “blood, sweat, and tears” into the process.

You + tutor + mentor + peers = SUCCESS!
Only you carry the weight of your goal.This means you have to be proactive in troubleshooting and problem-solving independently,
using the incredible plethora of knowledge and experiences documented across the interwebs in blogs and forums.
You are more then welcome to check out useful resources that we recommend for you,
and remember YOU CAN DO IT!!!
Please check out the Tour of Heroes tutorial
from Angular Team. It is very helpful and easy
to follow resource for beginners.
Great JavaScript resource for beginners
and expirienced developers
The C# guide provides many resources
about the C# language. This site has many different
audiences. Depending on your experience with
programming, or with the C# language and .NET,
you may wish to explore different
sections of this guide.
Please review Mosh's best-selling C# series
For the coding interview prep, we could highly
suggest to purchase the "Cracking the coding interview"
by Gayle Laakmann McDowell.


#encoding: UTF-8
# Copyright (C) 2016 Mauro Palumbo
# This file is distributed under the terms of the # MIT License.
# See the file `License' in the root directory of the present distribution.
"""
This submodule groups all functions relevant for computing the total energies at 0 K.
"""
import sys
import time
from read import read_EtotV, read_Etot
from eos import fit_Murn, print_eos_data, write_Etotfitted
from fitutils import fit_anis
from minutils import find_min
[docs]def fitEtotV(fin,fout=None):
"""
This function reads :math:`E(V)` data from the input file *fin*, fits them with a Murnaghan EOS,
prints the results on the *stdout* and write them in the file "fout".
It returns the volumes and energies read from the input file, the fitted coefficients
of the EOS and the corresponding :math:`\chi^2`.
"""
V, E = read_EtotV(fin)
a, cov, chi = fit_Murn(V,E)
print_eos_data(V,E,a,chi,"Etot")
if (fout!=None):
write_Etotfitted(fout,V,E,a,chi,"Etot")
return V, E, a, chi
[docs]def fitEtot(fin, out=True, ibrav=4,fittype="quadratic",guess=None,method="BFGS",minoptions={}):
"""
This function reads the file *fin* containing the energies as a function
of the lattice parameters :math:`E(a,b,c)` and fits them with a quartic (*fittype="quartic"*) or
quadratic (*fittype="quadratic"*) polynomial. Then it finds the minimun energy
and the corresponding lattice parameters.
ibrav is the Bravais lattice, guess is an initial guess for the minimization.
Depending on ibrav, a different number of lattice parameters is considered.
It prints fitting results on the screen (which can be redirected to *stdout*)
if *out=True*.
It returns the lattice parameters and energies as in the input file *fin*,
the fitted coefficients of the polynomial, the corresponding :math:`\chi^2`,
the lattice parameters at the minimum and the minimun energy.
Note: for cubic systems use fitEtotV instead.
Advanced input parameters:
*guess*, an initial guess for the minimization. It is a 6 elements list
[a,b,c,0,0,0].
*method*, the method to be used in the minimization procedure, as in the
scipy.optimize.minimize. See its documentation for details.
*minoptions*, a dictionary with additional options for the minimization
procedure, as in the scipy.optimize.minimize. See its documentation for details.
"""
# Read the energies
celldmsx, Ex = read_Etot(fin,ibrav)
# Fit and find the minimun at 0 K
a0, chia0 = fit_anis(celldmsx, Ex, ibrav, out, type=fittype)
if chia0!=None:
mincelldms, fmin = find_min(a0, ibrav, type=fittype, guess=guess,method="BFGS",minoptions={})
return celldmsx, Ex, a0, chia0, mincelldms, fmin


Telegram bots are a really revolutionary way to communicate with users in a secure way. Telegram Bots API is really easy to use and efficient to establish a multi media enabled experience with your user. The telegram bot market is really exploding and there's a bot for every usage now on it's Telegram Store Bot. I develop bots for Telegram using yagop's node-telegram-bot-api library which is fully compatible with Telegram official Bot's API
All the bots listed below are open sourced on Github and any contribution is very welcomed


sayhello() {
echo "Hello $1"
}
sayhello
./myscript World
just prints "Hello " instead of "Hello World".
sayhello() {
echo "Hello $1"
}
sayhello "$@"
./myscript World
now prints "Hello World".
In a function, $1
and up refers to the function's parameters, not the script's parameters.
If you want to process your script's parameters in a function, you have to explicitly pass them. You can do this with myfunction "$@"
.
Note that "$@"
refers to the current context's positional parameters, so if you call a function from a function, you have to pass in "$@"
to both of them:
first() { second "$@"; }
second() { echo "The first script parameter is: $1"; }
first "$@"
If the parameters are optional and you currently just don't want to use them, you can ignore this message. In versions strictly greater than v0.6.0, ignoring SC2120 on a function will also disable SC2119 on each of the call sites.


Santa tell me if you're really there Don't make me fall in love again If he won't be here next year Santa tell me if he really cares 'Cause I can give it all away if he won't be here next year Feeling Christmas all around And I'm trying to play it cool But it's hard to focus when I see you walking around the room Let it snow, it's blasting now But I won't get in the mood I'm avoiding every mistletoe until I know It's true love that he thinks of So next Christmas I'm not all alone, boy Santa, tell me if you're really there Don't make me fall in love again if he won't be here Next year Santa, tell me if he really cares 'Cause I can't give it all away if he won't be here Next year I've been down this road before Fell in love on Christmas night But on New Year's Day I woke up and he wasn't by my side Now I need someone to hold Be my fire in the cold But it's hard to tell if this is just a fling Or if it's true love that he thinks of So next Christmas I'm not all alone, babe Santa, tell me if you're really there Don't make me fall in love again if he won't be here Next year Santa, tell me if he really cares 'Cause I can't give it all away if he won't be here Next year Oh, I wanna have him beside me like oh-oh-oh On the 25th by the fire place, oh-oh-oh But I don't want no broken heart This year I've got to be smart Oh, baby If you want me, if you want me Santa, tell me if you're really there Don't make me fall in love again if he won't be here Next year Santa, tell me if he really cares 'Cause I can't give it all away if he won't be here Next year Santa, tell me if you're really there Don't make me fall in love again if he won't be here Next year Santa, tell me if he really cares 'Cause I can't give it all away if he won't be here Next year


| Methods |
public
|
list(string $path, array $except = []): array
List all directories in a directory.
List all directories in a directory.
|
#
|
public
|
make(string $path, int $chmod = 0755, bool $recursive = false): void
Create a directory.
|
#
|
public
|
move(string $path, string $location): void
Move a driectory to another location.
Move a driectory to another location.
Throws
|
#
|
public
|
copy(string $path, string $location): void
Copy a directory and all its contents.
Copy a directory and all its contents.
Throws
|
#
|
public
|
delete(string $path, bool $strict = true): void
Delete a directory entirely.
Delete a directory entirely.
Throws
|
#
|
public
|
empty(string $path): void
Empty a specific directory keeping the directory.
Empty a specific directory keeping the directory.
Throws
|
#
|


Murder Hornets Policy
Effective Date: May 31, 2020
Information gathering and usage
Data submitted by users will be shared with local conservatories and appropriate parties interested in tracking Murder Hornets. User location is not trapped by our app.
Changes
If our information practices change at some time in the future we will post the policy changes to our Web site to notify you of these changes and we will use for these new purposes only data collected from the time of the policy change forward. If you are concerned about how your information is used, you should check back at our Web site periodically.
If you feel that this site is not following its stated information policy, you may contact us at corneezius@gmail.com.


--- layout: post title: Building Paths in C# and Java date: 2009-09-07 20:16:22.000000000 +02:00 categories: [] tags: - .NET - Java - Path status: publish type: post published: true meta: {} author: login: admin email<EMAIL_ADDRESS>display_name: Philippe first_name: Philippe last_name: Vlérick excerpt: !ruby/object:Hpricot::Doc options: {} ---
When it comes to build full path files strings in C# or Java, I very often see methods being reinvented again and again.
However, both framework offer utility classes to do just that for you. An it has been developed by some of the most skilled developers on the planet. How can you beat that? So stop rolling out your own path building functions!
I’m always astonished that so many developers don’t know the System.IO.Path utility static class of the .NET Framework.
As an example, see this code:
String file1 = Path.Combine(@"C:\tmp\testquot;, "test.txt"); String file2 = Path.Combine(@"C:\tmp\test", "test.txt"); //file1 == file2 //"C:\tmp\test\test.txt" Console.WriteLine("File: {0}", file1);
Doesn’t matter if you forgot the “\” at the end of the directory string, it will be added. If it’s already there, it’s also fine! If you don’t know that stuff yet, have a look at the others methods available.
Now, onto Java.
Java has the File class to do that. It’s very easy to use, but it doesn’t work the same way. You have to instantiate a new File object every time, instead of calling a static method like in .NET.
File file1 = new File("C:\tmp\test", "test.txt"); File file2 = new File("C:\tmp\test\", "test.txt");
Now, this object is an abstract representation of the “C:\tmp\test\test.txt” file, so if you call toString() on it, you get that path as a string.
Two interesting things I noticed while writing this.
First, a difference between .NET and Java path creators. The .NET Path.Combine will return only the second string if it starts with the “\” character, while the Java File class will ignore it. the .NET class probably assumes that it’s a relative path, while the Java class ignores it.
Second, if you try to create an instance of the .NET Path class, Visual Studio will give you the following error message: “Cannot create an instance of the abstract class or interface 'System.IO.Path'”. Once you tried to build, if fails and the error message changes to “Cannot create an instance of the static class 'System.IO.Path'”. It’s clearly related to Visual Studio, but it’s the first time I notice that behavior (the first error message was quite suspicious with the “abstract class or interface” thingy). Anyway, Visual Studio warns you that it cannot be done, which is the important thing, then it refines it’s error message based on the output of the compiler.


FIXED DEPARTURES
Guaranteed Departure Trips
CUSTOMIZED TRIP
Design your own trip
FIND TRIP
Search Perfect Package
Discover New Horizons
Our Services
Wide variety of tours
We offer a wide variety of personally picked tours with destinations all over Nepal.
High Quality Service
Our tour managers are qualified, skilled, and friendly to bring you the best service.
Hand Picked Hotels
Our team offers only the best selection of affordable and luxury hotels to our clients.
24/7 Support
You can always get professional support from our staff 24/7 and ask any question you have.
Our Best Trips
Everest Climbing
Chitwan National Park
Pokhara Visits
Our Partners
Gorkha, Gandaki, Nepal
+977 1-1234567 ( Office )
+977<PHONE_NUMBER> ( BRG )
contact@brgtravels.com


Relaxr
Get peace of mind with a single tap
Benefits
The perfect personal assistant. Relaxr does your job for you so you can enjoy life as it is meant to be.
"Relaxr changed my life. I've been able to travel the world, spend limited time working and my boss keeps thanking me for crushing work."
-Amanda, Intuit
Relaxr
Copyright 2015. Relaxr.


|
MoraLife
1.3.4
A Digital Conscience for your iOS device.
|
Home view model. More...
#import <HomeModel.h>
Instance Methods | |
| (id) | - initWithModelManager: |
| Builds model with dependency injection. More... | |
| (NSString *) | - generateWelomeMessageWithTimeOfDay:andMood:andEnthusiasm: |
| Return a welcome message to be spoken by UserConscience. More... | |
| (NSString *) | - generateReactionWithMood:andEnthusiasm: |
| Return a welcome message to be spoken by UserConscience. More... | |
Properties | |
| NSString * | greatestVirtue |
| NSString * | worstVice |
| NSString * | highestRank |
| UIImage * | greatestVirtueImage |
| UIImage * | worstViceImage |
| UIImage * | highestRankImage |
Home view model.
Retrieve data from User's entries in order to display greatest virtue, worst vice, highest rank and ethicals.
| - (NSString *) generateReactionWithMood: | (CGFloat) | mood | |
| andEnthusiasm: | (CGFloat) | enthusiasm | |
Return a welcome message to be spoken by UserConscience.
| mood | CGFloat current UserConscience mood |
| enthusiasm | CGFloat current UserConscience enthusiasm |
| - (NSString *) generateWelomeMessageWithTimeOfDay: | (NSDate *) | now | |
| andMood: | (CGFloat) | mood | |
| andEnthusiasm: | (CGFloat) | enthusiasm | |
Return a welcome message to be spoken by UserConscience.
Implementation: Determine time of day, and which thought should be displayed.
| now | NSDate current time of day |
| mood | CGFloat current UserConscience mood |
| enthusiasm | CGFloat current UserConscience enthusiasm |
Cycle through available dilemmas, current mood, etc.
| - (id) initWithModelManager: | (ModelManager *) | modelManager |
Builds model with dependency injection.
| modelManager | ModelManager for either production or testing |
|
readnonatomicstrong |
|
readnonatomicstrong |
|
readnonatomicstrong |
|
readnonatomicstrong |
|
readnonatomicstrong |
|
readnonatomicstrong |


Protest in Hampi University against JNU fee increase
by Staff ReporterHundreds of students and a few faculty members of Kannada University, Hampi, staged a demonstration in the campus on Wednesday condemning the “police brutalities” on the agitating students of Jawaharlal Nehru University (JNU), New Delhi.
Organised under the aegis of Bayalu Chintana Samshodhana Vidyarthi Balaga, they gathered at Tripadi Circle in the campus and formed a human chain to extend solidarity to the JNU students who were agitating against the fee hike.
They then marched to the university administrative complex raising slogans against the “police brutalities” on the agitating JNU students.
“JNU students and faculty members are in the forefront criticising the BJP’s divisive politics. The Union government is bent on closing down the premier institute by branding it as a breeding centre for urban Naxals,” Muniraju, a student leader said.
A. Subbanna Rai, Registrar of Hampi University, received the memorandum addressed to the President of India and assured the agitating students and faculty members of forwarding it to the concerned persons through the Vice-chancellor.
The main demand in the memorandum was the withdrawal of the cases filed against the JNU students and the immediate release of arrested students.
Sangamesh, Latha, Krishnamurthy and other students’ leaders were present.


Toggle navigation
Hamster Home
Last updated:
Update
About
This page contains the current stats of your hamster's wellbeing.
How is your hamster doing?
Distance Ran
Last fed:
Water Level
Video Stream
Your browser does not support the HTML5 canvas tag.
Hamster Activity
Photo Gallery


Conditions let you specify restrictions on individual items in a query. To place restrictions across different items we use constraints. Constraints compare one vertex or edge in the query to another vertex or edge.
QGraph permits two types of constraints:
Identity constraints compare the identities of two database objects or links.
Attribute constraints compare the attribute values of two database objects or links.
Identity constraints are typically used to ensure that the same database entity does not match two different query elements. Exercise 5.5 illustrates a typical use of an identity constraint.
Attribute constraints
allow you to compare different
attributes as long as
their data types
are comparable.
In addition to comparing attribute values with the
same data type, Proximity also lets you to compare
DBL
with FLT
and
INT
, and FLT
with INT
.
This exercise uses an attribute constraint to compare values for the
school attribute across objects.
The following exercise creates a query that finds linked web pages from different schools. The example query uses an attribute constraint to compare the value of the school attribute for the two web page objects.
Exercise 5.4. Adding constraints to a query:
The query created in this exercise is also available in the
Proximity 4.3 distribution in
$PROX_HOME/doc/user/tutorial/examples/different-schools.qg2.xml
.
Before beginning, make sure that you are serving the ProxWebKB database using Mserver. Start the Proximity Database Browser if it is not already running.
From the Query menu, choose New Query. Proximity starts the Query Editor.
Create a vertex labeled start_page
.
Create a second vertex labeled linked_page
.
Add the numeric annotation [1..]
to the
linked_page vertex.
Create a directed edge from
start_page to
linked_page. Label the edge
linked_to
.
If you do not have automatic edge annotation enabled, add the
numeric annotation [1..]
to the
linked_to edge.
In the Constraints area at the bottom of the query properties pane, click Add to add a new constraint to the query.
The Query Editor adds a temporary constraint, item1 > item2, as an example to be edited with the correct values. (Because this temporary constraint uses vertex labels not present in the query, the status list shows that the query is invalid.)
Replace the example constraint with
start_page.school <> linked_page.school
and press Tab.
The query should now be valid.
Make sure the query is valid by checking the status list at the bottom of the Query Editor window. If the query is not valid, examine the errors in the drop-down list and fix any problems before continuing.
[Optional] Add a name and description and save the query.
From the File menu, choose
Run or press the Ctrl-R to
execute your query.
Proximity prompts you for a name for the results container. Enter
different-schools
and click
OK.
Proximity opens a window to show you a trace of the query execution. The last lines should be similar to the following excerpt (leading information showing elapsed time and execution thread has been omitted from the trace for brevity):
INFO kdl.prox.qgraph2.QueryGraph2CompOp - -> found 0 subgraphs INFO kdl.prox.qgraph2.QueryGraph2CompOp - -> query results saved in container: different-schools INFO kdl.prox.qgraph2.QueryGraph2CompOp - * query: done Status: finished running query
Close this window after the query finishes.
The resulting container has no subgraphs—there are no web pages in this database that link to a page at another school. Proximity creates a container even when there are no matches to the query.


Can you think of an analogy to describe HTML, CSS and the DOM? How would you describe it to your non-technical friend?
I would describe HTML, CSS and the DOM as the structure or foundation of a home, the CSS as the paint on the walls, and the DOM as the blueprint of the home to be referred back to as you make changes to the paint and the structure.
What is meant by boxifying design?
Boxifying is the term used to determine each and every possible box around each element on a page. For example, to boxify a simple website, you would box out each larger space into obvious grids, and then work down each box to make the grid more defined. Usually when you boxify, you will be determining each and every possible way you could seperate and identify each box inside the grid you create.
What is the box model?
The box model is the model used for determining the space between the content, the padding, the border and the margin. Specifying these items creates the layout on your page for this content.


---
sort_order: 32
tei_id: rdx_191dd.p.idp4773456
annotation_count: 0
images:
small-thumbnail: https://readux.ecds.emory.edu/books/emory:191dd/pages/emory:rfd6q/mini-thumbnail/
json: https://readux.ecds.emory.edu/books/emory:191dd/pages/emory:rfd6q/info/
full: https://readux.ecds.emory.edu/books/emory:191dd/pages/emory:rfd6q/fs/
page: https://readux.ecds.emory.edu/books/emory:191dd/pages/emory:rfd6q/single-page/
thumbnail: https://readux.ecds.emory.edu/books/emory:191dd/pages/emory:rfd6q/thumbnail/
title: Page 32
number: 32
---
{% raw %}3S THE LAND-CLAIM.{% endraw %}
{% raw %}"Just as you pleaso; hope it won't be long," answered{% endraw %}
{% raw %}Flag, good-humoredly. " Wher , did you get that pony ?"{% endraw %}
{% raw %}" Bought him."{% endraw %}
{% raw %}" He's a fine, stout fellow. What did you pay for{% endraw %}
{% raw %}him ?"{% endraw %}
{% raw %}" Traded my gun to one of the Omahas for him."{% endraw %}
{% raw %}" Did you get any game this morning ?"{% endraw %}
{% raw %}" No. I made up my mind to go and look at a claim{% endraw %}
{% raw %}down on the Platte ; and that's where I found this animal."{% endraw %}
{% raw %}" Hope Doc has supper ready," said Flag, as they came in{% endraw %}
{% raw %}sight of the shaiitj'. " But there's no light, and, of course,{% endraw %}
{% raw %}no supper, and I'm as hungry as a starved wolf," he{% endraw %}
{% raw %}added.{% endraw %}
{% raw %}• Flag went into the shanty and threw down his kit, while{% endraw %}
{% raw %}Ed remained outside to picket his pony.{% endraw %}
{% raw %}" I don't see what keeps Doc aud Squire out so late, this{% endraw %}
{% raw %}evening," Flag remarked, coming up behind Ed so unexpect¬{% endraw %}
{% raw %}edly as to cause him to jump aside as he was driving a stake{% endraw %}
{% raw %}in the ground. " I believe I shall go up to the vUIage and{% endraw %}
{% raw %}get my supper. What do you say to going along ?"{% endraw %}
{% raw %}" I'm not hungry; but I'm tired, aud I shall stay at home{% endraw %}
{% raw %}and go to bed."{% endraw %}
{% raw %}" Very well; I wish you a good night's rest;" and Flag{% endraw %}
{% raw %}turned away, half amused and half provoked at his mess¬{% endraw %}
{% raw %}mate's surly humor.{% endraw %}
{% raw %}It was near midnight when Flag returned, accompanied by{% endraw %}
{% raw %}Alien—other friends and citizens having volunteered to take{% endraw %}
{% raw %}charge of the body of Dr. Edwards. The night w.as beauti¬{% endraw %}
{% raw %}fully light and warm. As the young men walked home¬{% endraw %}
{% raw %}ward, conversing on the events of the day, their imaginations{% endraw %}
{% raw %}became very naturally much excited, and enabled them to{% endraw %}
{% raw %}recall each and every past circumstance of their association{% endraw %}
{% raw %}with the deceased. These reminiscences had quite scared{% endraw %}
{% raw %}away all sleepfulness, aud when they threw themselves upon{% endraw %}
{% raw %}the bed which they occupied in common, it was not to close{% endraw %}
{% raw %}their eyes, but only to relax their limbs, while they continued{% endraw %}
{% raw %}their talk.{% endraw %}
{% raw %}" We ought to waken Ed, I suppose, and tel. him about{% endraw %}
{% raw %}this affair," said Flag.{% endraw %}
{% raw %}" No, not to-night," answered Squire, wearily, " I bava{% endraw %}


This intention converts an
if
expression checking a variable being null or not right after initializing it to an elvis operator in the initializer (if applicable).


GitHub Flavored Markdown lets you create useful documents in GitHub and GitHub Enterprise using .md
files. Like other varieties of markdown, GitHub Markdown tries to be as readable as possible in its raw form, resulting in an intentionally limited set of formatting options. However, these options can feel restrictive when dealing with complex content.
Although GitHub Markdown strips out most HTML tags, here are a few tricks that can give you more flexibility when formatting your documents. These advanced formatting options can make your documents more useable, but they come at the expense of plain text readability, so use with caution.
Check out this excellent cheatsheet for an overview of standard formatting in GitHub Markdown.
To left align and resize an image:
Use:

To right align and resize an image:
Use:

To center and resize an image:
Use:

To create a dropdown containing text:
Use:
To create a dropdown containing a list:
Use:

Example

This dropdown contains

a list!

To create a dropdown containing an image:
Use:

Example

To create a dropdown containing code:
This dropdown contains
a code block!
Use:

Example

$ This dropdown contains
a code block!

To create a single button:
| Click here |
|---|
Use:
To create a row of buttons:
| Click here | Or here | Or here |
|---|
Use:
| [Click here](https://github.com/) | [Or here](https://github.com/) | [Or here](https://github.com/) |
| --------------------------------- | ------------------------------ | ------------------------------ |
To link to a heading:
This is an example of an anchor link to a heading.
Use:
This is an example of an [anchor link](#anchor-links) to a heading.
To create an anchor anywhere on the page, use:

To reference it:
This is an example of an anchor link anywhere on the page.
Use:
See [creating an anchor link anywhere](#manual-anchor).
To create a horizontal line:
Use:
---
To add extra space, use one or more:

GitHub Flavored Markdown Spec - https://github.github.com/gfm/
Advanced Markdown with David Wells - https://github.com/DavidWells/advanced-markdown
Markdown Cheatsheet PDF - https://enterprise.github.com/downloads/en/markdown-cheatsheet.pdf


Provides a number of methods for turning different kinds of containers into a set of option tags.
The collection_select, select and time_zone_select methods take an options parameter, a hash:
:include_blank - set to true or a prompt string if the first option element of the select element is a blank. Useful if there is not a default value required for the select element.
For example,
select("post", "category", Post::CATEGORIES, {:include_blank => true})
could become:
<select name="post[category]"> <option></option> <option>joke</option> <option>poem</option> </select>
Another common case is a select tag for an belongs_to-associated object.
Example with @post.person_id => 2:
select("post", "person_id", Person.all.collect {|p| [ p.name, p.id ] }, {:include_blank => 'None'})
could become:
<select name="post[person_id]"> <option value="">None</option> <option value="1">David</option> <option value="2" selected="selected">Sam</option> <option value="3">Tobias</option> </select>
:prompt - set to true or a prompt string. When the select element doesn't have a value yet, this prepends an option with a generic prompt -- "Please select" -- or the given prompt string.
Example:
select("post", "person_id", Person.all.collect {|p| [ p.name, p.id ] }, {:prompt => 'Select Person'})
could become:
<select name="post[person_id]"> <option value="">Select Person</option> <option value="1">David</option> <option value="2">Sam</option> <option value="3">Tobias</option> </select>
Like the other form helpers, select can accept an :index option to manually set the ID used in the resulting output. Unlike other helpers, select expects this option to be in the html_options parameter.
Example:
select("album[]", "genre", %w[rap rock country], {}, { :index => nil })
becomes:
<select name="album[][genre]" id="album__genre"> <option value="rap">rap</option> <option value="rock">rock</option> <option value="country">country</option> </select>
:disabled - can be a single value or an array of values that will be disabled options in the final output.
Example:
select("post", "category", Post::CATEGORIES, {:disabled => 'restricted'})
could become:
<select name="post[category]"> <option></option> <option>joke</option> <option>poem</option> <option disabled="disabled">restricted</option> </select>
When used with the collection_select helper, :disabled can also be a Proc that identifies those options that should be disabled.
Example:
collection_select(:post, :category_id, Category.all, :id, :name, {:disabled => lambda{|category| category.archived? }})
If the categories “2008 stuff” and “Christmas” return true when the method archived? is called, this would return:
<select name="post[category_id]"> <option value="1" disabled="disabled">2008 stuff</option> <option value="2" disabled="disabled">Christmas</option> <option value="3">Jokes</option> <option value="4">Poems</option> </select>
Returns <select> and <option> tags for the collection of existing return values of method for object‘s class. The value returned from calling method on the instance object will be selected. If calling method returns nil, no selection is made without including :prompt or :include_blank in the options hash.
The :value_method and :text_method parameters are methods to be called on each member of collection. The return values are used as the value attribute and contents of each <option> tag, respectively.
Example object structure for use with this method:
class Post < ActiveRecord::Base belongs_to :author end class Author < ActiveRecord::Base has_many :posts def name_with_initial "#{first_name.first}. #{last_name}" end end
Sample usage (selecting the associated Author for an instance of Post, @post):
collection_select(:post, :author_id, Author.all, :id, :name_with_initial, :prompt => true)
If @post.author_id is already 1, this would return:
<select name="post[author_id]"> <option value="">Please select</option> <option value="1" selected="selected">D. Heinemeier Hansson</option> <option value="2">D. Thomas</option> <option value="3">M. Clark</option> </select>
# File lib/action_view/helpers/form_options_helper.rb, line 190 def collection_select(object, method, collection, value_method, text_method, options = {}, html_options = {}) InstanceTag.new(object, method, self, options.delete(:object)).to_collection_select_tag(collection, value_method, text_method, options, html_options) end
Returns <select>, <optgroup> and <option> tags for the collection of existing return values of method for object‘s class. The value returned from calling method on the instance object will be selected. If calling method returns nil, no selection is made without including :prompt or :include_blank in the options hash.
Parameters:
object - The instance of the class to be used for the select tag
method - The attribute of object corresponding to the select tag
collection - An array of objects representing the <optgroup> tags.
group_method - The name of a method which, when called on a member of collection, returns an array of child objects representing the <option> tags.
group_label_method - The name of a method which, when called on a member of collection, returns a string to be used as the label attribute for its <optgroup> tag.
option_key_method - The name of a method which, when called on a child object of a member of collection, returns a value to be used as the value attribute for its <option> tag.
option_value_method - The name of a method which, when called on a child object of a member of collection, returns a value to be used as the contents of its <option> tag.
Example object structure for use with this method:
class Continent < ActiveRecord::Base has_many :countries # attribs: id, name end class Country < ActiveRecord::Base belongs_to :continent # attribs: id, name, continent_id end class City < ActiveRecord::Base belongs_to :country # attribs: id, name, country_id end
Sample usage:
grouped_collection_select(:city, :country_id, @continents, :countries, :name, :id, :name)
Possible output:
<select name="city[country_id]"> <optgroup label="Africa"> <option value="1">South Africa</option> <option value="3">Somalia</option> </optgroup> <optgroup label="Europe"> <option value="7" selected="selected">Denmark</option> <option value="2">Ireland</option> </optgroup> </select>
# File lib/action_view/helpers/form_options_helper.rb, line 242 def grouped_collection_select(object, method, collection, group_method, group_label_method, option_key_method, option_value_method, options = {}, html_options = {}) InstanceTag.new(object, method, self, options.delete(:object)).to_grouped_collection_select_tag(collection, group_method, group_label_method, option_key_method, option_value_method, options, html_options) end
Returns a string of <option> tags, like options_for_select, but wraps them with <optgroup> tags.
Parameters:
grouped_options - Accepts a nested array or hash of strings. The first value serves as the <optgroup> label while the second value must be an array of options. The second value can be a nested array of text-value pairs. See options_for_select for more info.
Ex. ["North America",[["United States","US"],["Canada","CA"]]]
selected_key - A value equal to the value attribute for one of the <option> tags, which will have the selected attribute set. Note: It is possible for this value to match multiple options as you might have the same option in multiple groups. Each will then get selected="selected".
prompt - set to true or a prompt string. When the select element doesn't have a value yet, this prepends an option with a generic prompt - "Please select" - or the given prompt string.
Sample usage (Array):
grouped_options = [ ['North America', [['United States','US'],'Canada']], ['Europe', ['Denmark','Germany','France']] ] grouped_options_for_select(grouped_options)
Sample usage (Hash):
grouped_options = { 'North America' => [['United States','US'], 'Canada'], 'Europe' => ['Denmark','Germany','France'] } grouped_options_for_select(grouped_options)
Possible output:
<optgroup label="Europe"> <option value="Denmark">Denmark</option> <option value="Germany">Germany</option> <option value="France">France</option> </optgroup> <optgroup label="North America"> <option value="US">United States</option> <option value="Canada">Canada</option> </optgroup>
Note: Only the <optgroup> and <option> tags are returned, so you still have to wrap the output in an appropriate <select> tag.
# File lib/action_view/helpers/form_options_helper.rb, line 473 def grouped_options_for_select(grouped_options, selected_key = nil, prompt = nil) body = '' body << content_tag(:option, prompt, { :value => "" }, true) if prompt grouped_options = grouped_options.sort if grouped_options.is_a?(Hash) grouped_options.each do |group| body << content_tag(:optgroup, options_for_select(group[1], selected_key), :label => group[0]) end body.html_safe end
Returns a string of <option> tags, like options_from_collection_for_select, but groups them by <optgroup> tags based on the object relationships of the arguments.
Parameters:
collection - An array of objects representing the <optgroup> tags.
group_method - The name of a method which, when called on a member of collection, returns an array of child objects representing the <option> tags.
group_label_method+ - The name of a method which, when called on a member of collection, returns a string to be used as the label attribute for its <optgroup> tag.
option_key_method - The name of a method which, when called on a child object of a member of collection, returns a value to be used as the value attribute for its <option> tag.
option_value_method - The name of a method which, when called on a child object of a member of collection, returns a value to be used as the contents of its <option> tag.
selected_key - A value equal to the value attribute for one of the <option> tags, which will have the selected attribute set. Corresponds to the return value of one of the calls to option_key_method. If nil, no selection is made. Can also be a hash if disabled values are to be specified.
Example object structure for use with this method:
class Continent < ActiveRecord::Base has_many :countries # attribs: id, name end class Country < ActiveRecord::Base belongs_to :continent # attribs: id, name, continent_id end
Sample usage:
option_groups_from_collection_for_select(@continents, :countries, :name, :id, :name, 3)
Possible output:
<optgroup label="Africa"> <option value="1">Egypt</option> <option value="4">Rwanda</option> ... </optgroup> <optgroup label="Asia"> <option value="3" selected="selected">China</option> <option value="12">India</option> <option value="5">Japan</option> ... </optgroup>
Note: Only the <optgroup> and <option> tags are returned, so you still have to wrap the output in an appropriate <select> tag.
# File lib/action_view/helpers/form_options_helper.rb, line 421 def option_groups_from_collection_for_select(collection, group_method, group_label_method, option_key_method, option_value_method, selected_key = nil) collection.map do |group| group_label_string = eval("group.#{group_label_method}") "<optgroup label=\"#{ERB::Util.html_escape(group_label_string)}\">" + options_from_collection_for_select(eval("group.#{group_method}"), option_key_method, option_value_method, selected_key) + '</optgroup>' end.join.html_safe end
Accepts a container (hash, array, enumerable, your type) and returns a string of option tags. Given a container where the elements respond to first and last (such as a two-element array), the “lasts” serve as option values and the “firsts” as option text. Hashes are turned into this form automatically, so the keys become “firsts” and values become lasts. If selected is specified, the matching “last” or element will get the selected option-tag. selected may also be an array of values to be selected when using a multiple select.
Examples (call, result):
options_for_select([["Dollar", "$"], ["Kroner", "DKK"]]) <option value="$">Dollar</option>\n<option value="DKK">Kroner</option> options_for_select([ "VISA", "MasterCard" ], "MasterCard") <option>VISA</option>\n<option selected="selected">MasterCard</option> options_for_select({ "Basic" => "$20", "Plus" => "$40" }, "$40") <option value="$20">Basic</option>\n<option value="$40" selected="selected">Plus</option> options_for_select([ "VISA", "MasterCard", "Discover" ], ["VISA", "Discover"]) <option selected="selected">VISA</option>\n<option>MasterCard</option>\n<option selected="selected">Discover</option>
You can optionally provide html attributes as the last element of the array.
Examples:
options_for_select([ "Denmark", ["USA", {:class => 'bold'}], "Sweden" ], ["USA", "Sweden"]) <option value="Denmark">Denmark</option>\n<option value="USA" class="bold" selected="selected">USA</option>\n<option value="Sweden" selected="selected">Sweden</option> options_for_select([["Dollar", "$", {:class => "bold"}], ["Kroner", "DKK", {:onclick => "alert('HI');"}]]) <option value="$" class="bold">Dollar</option>\n<option value="DKK" onclick="alert('HI');">Kroner</option>
If you wish to specify disabled option tags, set selected to be a hash, with :disabled being either a value or array of values to be disabled. In this case, you can use :selected to specify selected option tags.
Examples:
options_for_select(["Free", "Basic", "Advanced", "Super Platinum"], :disabled => "Super Platinum") <option value="Free">Free</option>\n<option value="Basic">Basic</option>\n<option value="Advanced">Advanced</option>\n<option value="Super Platinum" disabled="disabled">Super Platinum</option> options_for_select(["Free", "Basic", "Advanced", "Super Platinum"], :disabled => ["Advanced", "Super Platinum"]) <option value="Free">Free</option>\n<option value="Basic">Basic</option>\n<option value="Advanced" disabled="disabled">Advanced</option>\n<option value="Super Platinum" disabled="disabled">Super Platinum</option> options_for_select(["Free", "Basic", "Advanced", "Super Platinum"], :selected => "Free", :disabled => "Super Platinum") <option value="Free" selected="selected">Free</option>\n<option value="Basic">Basic</option>\n<option value="Advanced">Advanced</option>\n<option value="Super Platinum" disabled="disabled">Super Platinum</option>
NOTE: Only the option tags are returned, you have to wrap this call in a regular HTML select tag.
# File lib/action_view/helpers/form_options_helper.rb, line 322 def options_for_select(container, selected = nil) return container if String === container selected, disabled = extract_selected_and_disabled(selected).map do | r | Array.wrap(r).map { |item| item.to_s } end container.map do |element| html_attributes = option_html_attributes(element) text, value = option_text_and_value(element).map { |item| item.to_s } selected_attribute = ' selected="selected"' if option_value_selected?(value, selected) disabled_attribute = ' disabled="disabled"' if disabled && option_value_selected?(value, disabled) %(<option value="#{ERB::Util.html_escape(value)}"#{selected_attribute}#{disabled_attribute}#{html_attributes}>#{ERB::Util.html_escape(text)}</option>) end.join("\n").html_safe end
Returns a string of option tags that have been compiled by iterating over the collection and assigning the result of a call to the value_method as the option value and the text_method as the option text. Example:
options_from_collection_for_select(@people, 'id', 'name')
This will output the same HTML as if you did this:
<option value="#{person.id}">#{person.name}</option>
This is more often than not used inside a select_tag like this example:
select_tag 'person', options_from_collection_for_select(@people, 'id', 'name')
If selected is specified as a value or array of values, the element(s) returning a match on value_method will be selected option tag(s).
If selected is specified as a Proc, those members of the collection that return true for the anonymous function are the selected values.
selected can also be a hash, specifying both :selected and/or :disabled values as required.
Be sure to specify the same class as the value_method when specifying selected or disabled options. Failure to do this will produce undesired results. Example:
options_from_collection_for_select(@people, 'id', 'name', '1')
Will not select a person with the id of 1 because 1 (an Integer) is not the same as ‘1’ (a string)
options_from_collection_for_select(@people, 'id', 'name', 1)
should produce the desired results.
# File lib/action_view/helpers/form_options_helper.rb, line 363 def options_from_collection_for_select(collection, value_method, text_method, selected = nil) options = collection.map do |element| [element.send(text_method), element.send(value_method)] end selected, disabled = extract_selected_and_disabled(selected) select_deselect = {} select_deselect[:selected] = extract_values_from_collection(collection, value_method, selected) select_deselect[:disabled] = extract_values_from_collection(collection, value_method, disabled) options_for_select(options, select_deselect) end
Create a select tag and a series of contained option tags for the provided object and method. The option currently held by the object will be selected, provided that the object is available.
There are two possible formats for the choices parameter, corresponding to other helpers’ output:
* A flat collection: see options_for_select * A nested collection: see grouped_options_for_select
Example with @post.person_id => 1:
select("post", "person_id", Person.all.collect {|p| [ p.name, p.id ] }, { :include_blank => true })
could become:
<select name="post[person_id]"> <option value=""></option> <option value="1" selected="selected">David</option> <option value="2">Sam</option> <option value="3">Tobias</option> </select>
This can be used to provide a default set of options in the standard way: before rendering the create form, a new model instance is assigned the default options and bound to @model_name. Usually this model is not saved to the database. Instead, a second model object is created when the create request is received. This allows the user to submit a form page more than once with the expected results of creating multiple records. In addition, this allows a single partial to be used to generate form inputs for both edit and create forms.
By default, post.person_id is the selected option. Specify :selected => value to use a different selection or :selected => nil to leave all options unselected. Similarly, you can specify values to be disabled in the option tags by specifying the :disabled option. This can either be a single value or an array of values to be disabled.
The HTML specification says when multiple parameter passed to select and all options got deselected web browsers do not send any value to server. Unfortunately this introduces a gotcha: if an User model has many roles and have role_ids accessor, and in the form that edits roles of the user the user deselects all roles from role_ids multiple select box, no role_ids parameter is sent. So, any mass-assignment idiom like
@user.update_attributes(params[:user])
wouldn’t update roles.
To prevent this the helper generates an auxiliary hidden field before every multiple select. The hidden field has the same name as multiple select and blank value.
This way, the client either sends only the hidden field (representing the deselected multiple select box), or both fields. Since the HTML specification says key/value pairs have to be sent in the same order they appear in the form, and parameters extraction gets the last occurrence of any repeated key in the query string, that works for ordinary forms.
# File lib/action_view/helpers/form_options_helper.rb, line 156 def select(object, method, choices, options = {}, html_options = {}) InstanceTag.new(object, method, self, options.delete(:object)).to_select_tag(choices, options, html_options) end
Returns a string of option tags for pretty much any time zone in the world. Supply a ActiveSupport::TimeZone name as selected to have it marked as the selected option tag. You can also supply an array of ActiveSupport::TimeZone objects as priority_zones, so that they will be listed above the rest of the (long) list. (You can use ActiveSupport::TimeZone.us_zones as a convenience for obtaining a list of the US time zones, or a Regexp to select the zones of your choice)
The selected parameter must be either nil, or a string that names a ActiveSupport::TimeZone.
By default, model is the ActiveSupport::TimeZone constant (which can be obtained in Active Record as a value object). The only requirement is that the model parameter be an object that responds to all, and returns an array of objects that represent time zones.
NOTE: Only the option tags are returned, you have to wrap this call in a regular HTML select tag.
# File lib/action_view/helpers/form_options_helper.rb, line 504 def time_zone_options_for_select(selected = nil, priority_zones = nil, model = ::ActiveSupport::TimeZone) zone_options = "" zones = model.all convert_zones = lambda { |list| list.map { |z| [ z.to_s, z.name ] } } if priority_zones if priority_zones.is_a?(Regexp) priority_zones = model.all.find_all {|z| z =~ priority_zones} end zone_options += options_for_select(convert_zones[priority_zones], selected) zone_options += "<option value=\"\" disabled=\"disabled\">-------------</option>\n" zones = zones.reject { |z| priority_zones.include?( z ) } end zone_options += options_for_select(convert_zones[zones], selected) zone_options.html_safe end
Return select and option tags for the given object and method, using time_zone_options_for_select to generate the list of option tags.
In addition to the :include_blank option documented above, this method also supports a :model option, which defaults to ActiveSupport::TimeZone. This may be used by users to specify a different time zone model object. (See time_zone_options_for_select for more information.)
You can also supply an array of ActiveSupport::TimeZone objects as priority_zones, so that they will be listed above the rest of the (long) list. (You can use ActiveSupport::TimeZone.us_zones as a convenience for obtaining a list of the US time zones, or a Regexp to select the zones of your choice)
Finally, this method supports a :default option, which selects a default ActiveSupport::TimeZone if the object’s time zone is nil.
Examples:
time_zone_select( "user", "time_zone", nil, :include_blank => true) time_zone_select( "user", "time_zone", nil, :default => "Pacific Time (US & Canada)" ) time_zone_select( "user", 'time_zone', ActiveSupport::TimeZone.us_zones, :default => "Pacific Time (US & Canada)") time_zone_select( "user", 'time_zone', [ ActiveSupport::TimeZone['Alaska'], ActiveSupport::TimeZone['Hawaii'] ]) time_zone_select( "user", 'time_zone', /Australia/) time_zone_select( "user", "time_zone", ActiveSupport::TimeZone.all.sort, :model => ActiveSupport::TimeZone)
# File lib/action_view/helpers/form_options_helper.rb, line 276 def time_zone_select(object, method, priority_zones = nil, options = {}, html_options = {}) InstanceTag.new(object, method, self, options.delete(:object)).to_time_zone_select_tag(priority_zones, options, html_options) end
Generated with the Darkfish Rdoc Generator 2.


Sign In
Email address
Password
Sign in with Facebook
Sign in with Twitter
Submit
Reset
Create Account


Forensics Writeup
Table of Contents
- Glory of the Garden - Points: 50
- This garden contains more than it seems. You can also find the file in /problems/glory-of-the-garden_6_0d6d3ea97757b84c7a51a38daa7dca8d on the shell server.
Hint: What is a hex editor?
$ wget https://2019shell1.picoctf.com/static/064eaf1591900ad250736459aa2448a0/garden.jpg
$ cat garden.jpg
picoCTF{more_than_m33ts_the_3y3f20F5be9}
- unzip - Points: 50
- Can you unzip this file and get the flag?
Hint: put the flag in the format picoCTF{XXXXX}
$ wget https://2019shell1.picoctf.com/static/37762a7e5774d7d6c1bc79e8e1758ef9/flag.zip
$ unzip file.zip
$ eog file.png
picoCTF{unz1pp1ng_1s_3a5y}
- So Meta - Points: 150
- Find the flag in this picture. You can also find the file in /problems/so-meta_5_7c198bd3e228862d97a40316b8a103e4.
Hint: What does meta mean in the context of files? Ever hear of metadata?
$ wget https://2019shell1.picoctf.com/static/973cd0e3beea255e6a0b5316aa6287ce/pico_img.png
$ strings image.png
picoCTF{s0_m3ta_ffd09c0f}
- What Lies Within - Points: 150
- Theres something in the building (image file). Can you retrieve the flag?
Hint: There is data encoded somewhere, there might be an online decoder
$ wget https://2019shell1.picoctf.com/static/aec3861fc4d5bce4d39dc0db196426de/buildings.png
# after installing rubygems package
$ gem install zsteg
# add the executable to envinronment PATH
$ PATH="`ruby -e 'puts Gem.user_dir'`/bin:$PATH"
$ zsteg building.png
picoCTF{h1d1ng_1n_th3_b1t5}
- extensions - Points: 150
- This is a really weird text file TXT? Can you find the flag?
Hint: How do operating systems know what kind of file it is? (It's not just the ending!)
Hint: Make sure to submit the flag as picoCTF{XXXXX}
$ wget https://2019shell1.picoctf.com/static/45886ed4b6d5d1dc74c4944fcf4b4041/flag.txt
$ mv flag.txt flag.png
$ eog flag.png
picoCTF{now_you_know_about_extensions}
- shark on wire 1 - Points: 150
- We found this packet capture. Recover the flag. You can also find the file in /problems/shark-on-wire-1_0_13d709ec13952807e477ba1b5404e620.
Hint: Try using a tool like Wireshark
Hint: What are streams?
$ wget https://2019shell1.picoctf.com/static/ae9ca8cff43ed638ed5d137f9ece7455/capture.pcap
$ wireshark capture.pcap
# right click and then follow udp stream
picoCTF{StaT31355_636f6e6e}
- WhitePages - Points: 250
- I stopped using YellowPages and moved onto WhitePages... but the page they gave me is all blank!
Hint:
$ wget https://2019shell1.picoctf.com/static/d7068f4c75d7b4a3e342cc57d528c5ce/whitepages.txt
$ xxd whitepages.txt
from pwn import *
with open('./whitepages.txt', 'rb') as f:
data = f.read()
data = data.replace('e28083'.decode('hex'), '0').replace('20'.decode('hex'), '1')
print unbits(data)
picoCTF{not_all_spaces_are_created_equal_178d720252af1af29369e154eca23a95}
- c0rrupt - Points: 250
- We found this file. Recover the flag. You can also find the file in /problems/c0rrupt_0_1fcad1344c25a122a00721e4af86de13.
Hint: Try fixing the file header
$ wget https://2019shell1.picoctf.com/static/3435d990f1d20fe3563cbb897b4c96db/mystery
$ ghex mystery
- The header is similar as PNG header -> 89 50 4E 47 0D 0A 1A 0A. Substitute the value in.
$ pngcheck mystery
- OUTPUT -> mystery: invalid chunk name "C"DR" (43 22 44 52)
$ ghex mystery
- Look for that bytes in the hex editor, they are in the IHDR Image Header which specify that chunk type must contains the value 49 48 44 52 (IHDR, that is the equivalent respectively of 73 72 68 82)
$ pngcheck mystery
- OUTPUT -> mystery CRC error in chunk pHYs (computed 38d82c82, expected 495224f0)
$ ghex mystery
- Look for the expected bytes in the hex editor and substitute them with the computed one
$ pngcheck mystery
- OUTPUT -> mystery invalid chunk length (too large)
$ ghex mystery
- The bytes AB 44 45 54 must contains the IDAT chunk, substitute with 49 44 41 54. The other problem is the chunk’s length: AA AA FF A5, is too big. Since it's not possible to identify CRCs in order to find the end of the chunk, we must look for the next IDAT chunk because IDAT chunk must be consecutive. The next IDAT chunk is at offset 10008 while the first IDAT it's at offset 00057. Do the math, the difference is FFB1. We must subtract 4 bytes for the length field of the second IDAT, subtract 4 bytes for the CRC of the first IDAT, and subtract 4 bytes again for the chunktype of the first IDAT, 12 bytes in total. The math give us FF A5. We can replace now the value AA AA FF A5 with 00 00 FF A5.
$ pngcheck mystery
- OUTPUT -> OK: mystery (1642x1095, 24-bit RGB, non-interlaced, 96.3%)
$ eog mystery
picoCTF{c0rrupt10n_1847995}
- like1000 - Points: 250
- This .tar file got tarred alot. Also available at /problems/like1000_0_369bbdba2af17750ddf10cc415672f1c.
Hint: Try and script this, it'll save you alot of time
$ wget https://2019shell1.picoctf.com/static/8694f84879d3b7c0dcf775930f4665fc/1000.tar
#!/bin/bash
for i in $(seq 1000 -1 1)
do
tar xvf "$i.tar"
done
picoCTF{l0t5_0f_TAR5}
- m00nwalk - Points: 250
- Decode this message from the moon. You can also find the file in /problems/m00nwalk_0_05441e9344c829ba5a648e8b28ef1564.
Hint: How did pictures from the moon landing get sent back to Earth?
Hint: What is the CMU mascot?, that might help select a RX option
$ wget https://2019shell1.picoctf.com/static/fe892e7bef69b386ce5638053c0d312c/message.wav
# http://users.belgacom.net/hamradio/rxsstv.htm
picoCTF{beep_boop_im_in_space}


|
Class Summary |
| ApolloFrame |
CompositeApolloFrame subclass is now the working instantiation of ApolloFrame. |
| ApolloJalviewEventBridge |
Converts events from apollo to jalview and vice versa |
| ApolloMetalScrollBarUI |
|
| ApolloRunner |
|
| ApolloScrollBar |
|
| ArrayListTransferHandler |
|
| AutoSaveThread |
|
| CheckMemoryThread |
|
| ChromosomeField |
Chromsome field is either a combo box or text field depending on if config
has a chromosome vector |
| ControlledPanel |
An extension of JPanel to make automatic Controller window management possible. |
| Controller |
An event controller forwarding multiple types of event to registered listeners. |
| ControllerDebugListener |
|
| DetailInfo |
This class is mainly for EvidencePanel and its SetDetailPanel, but there is handy methods
that could be widely used. |
| DisabledEditor |
A TableCellEditor which disables edits in the cells. |
| FeaturePropertyPanel |
A panel which renders a configuration tab dialog for a FeatureProperty |
| FindPanel |
A ControlledPanel which displays the find dialog
(for name, base position and sequence). |
| FullSyntenyPanel |
This doesnt seem to be used anymore - delete? |
| GCScoreCalculator |
changed long positions to int positions to be consistent with rest of apollo
using ints for positions, hope this is ok |
| GenericFileAdapterGUI |
|
| GenericFileFilter |
This is a generic file filter for filtering results for javax.swing.FileChooser |
| GenericFileFilterTest |
|
| GlyphChooser |
|
| MultiController |
An event controller forwarding multiple types of event to registered listeners. |
| NonWindowControlledObject |
This class was solely being used by AbstractLazySequence, and actually is no longer
as it didnt seem to serve any real purpose - it added ALS as listener to controller
but doesnt actually listen for any event - ControlledObjectI is used by Controller
solely for its window - and there is no window here - so im thinking this class
could get tossed - steve? |
| PopupPropertyListener |
|
| PreferencesDialog |
A dialog to let the user change the style parameters. |
| PreferenceWindow |
Window for displaying preference options. |
| PrefsPanel |
PrefsPanel goes inside a PreferencesDialog window. |
| ProgressFrame |
|
| PropertyPanel |
A panel which renders a single type row in the TypePanel. |
| ProxyDialog |
|
| ScoreCalculator |
|
| Selection |
Manages a selection of objects(a vector of SelectionItems),
and for SelectableI's controls their selection state. |
| SelectionItem |
A holder for a selected object, which also records the objects source. |
| SelectionManager |
Controller for selection. |
| SelectionType |
A class holding selection type information - whether the selection was made at
the feature level, the feature set level (eg by clicking on an intron) or some
other way. |
| SeqMatchPanel |
A Panel to display sequence matches from the find panel. |
| SeqSelectorTable |
CallsSeqSelector on separate thread and populates table with
results |
| SequenceSelector |
Searches for and maintains a list of matches of a search sequence in a SequenceI. |
| SgrScoreCalculator |
Gets the score for a given position from a sgr file |
| SliderWindow |
|
| StatusBar |
Shows the status bar at the bottom of the main display. |
| StatusPane |
Class defining a status bar (modified from "Beginning Java 2"). |
| StoredScoreCalculator |
Refactored abstract class for score calculators that store the scores in
memory. |
| StyleWizard |
GUI for handling the configuration of Apollo styles. |
| SwingWorker |
This is the 3rd version of SwingWorker (also known as
SwingWorker 3), an abstract class that you subclass to
perform GUI-related work in a dedicated thread. |
| TableColumnChooser |
|
| Tier |
Judging from the methods here a Tier has drawing space, text end(?),
it might have a label, a non modifiable gap space of 1, and char space. |
| TierManager |
The base abstract TierManager class to organise a set of data into several
tiers. |
| Transformer |
A class to perform coordinate transformations between pixel and user coordinates. |
| TypePanel |
A panel to show and allow edits to FeatureProperties. |
| TypesWizard |
GUI for handling the configuration of Apollo tiers/types. |
| UnBorderedSplitPane |
|
| URLQueryGenerator |
|
| WiggleScoreCalculator |
|
| WindowScoreCalculator |
|


Photography and audiovisual
We care about each frame and deliver quality audiovisual pieces tailored to the needs of our customers.
Flexibility, Professionalism, Art.
Service of photography and aduivisuales specialized in marketing, events and culinary photography. Leave your special moments in professional hands. — We specialize in integrating audiovisual content on digital platforms.
All the tools you need
Our sessions are accompanied by a Director of Photography responsible for technical, aesthetic and artistic level does not fail anything, and goals are achieved.
Events
Plan your events without worrying about capturing the details, we'll take care of that, video and audiovisual montage.
Learn MoreOutside
Show your products, share the spaces that surround your brand with our team of professionals in photography.
Learn MoreTradition
Document, plan with us and let others know your story, there is no better time than now, even if it is short.
Learn MoreFly!.
We offer video recording and aerial photography services in 4k, carrying out projects ranging from tourism, real estate or event promotion, as well as aerial surveillance.


SUGAR HILL A film review by Michael John Legeros Copyright 1994 Michael John Legeros
Directed by Leon Ichaso Written by Barry Michael Cooper Starring Wesley Snipes, Michael Wright, Theresa Randle, Abe Vigoda, Ernie Hudson, and Clarence Williams III MPAA Rating "R" Running Time Approx. 110 minutes
---
Wesley Snipes is starting the year solo! After recent pairings with everyone from Dennis Hopper to Sly Stallone, the back-to-brunette actor has returned to NEW JACK territory as another KING OF NEW YORK.
In the downbeat drama SUGAR HILL, Snipes stars as a Harlem hood who's ready to retire. For years, Romello and his brother (Wright) have been dealing drugs for a neighborhood gangster (Vigoda). But Romeo's tired of the trade. He's knows what's ahead--including a rival dealer (Hudson)--and wants to "get out." Unfortunately, Romello's "retirement" is threatened by obligations to both his brother and his junkie father (Williams).
Forget SUGAR HILL's moral slant, the *cast* is the best reason to watch this film.
Snipes is great and always worth watching. He's backed by former "Mod Squad-er" Clarence Williams III, a knock-out as the drugged dad. Father's final scene is the most chilling in the film. Less impressive is Michael Wright, who twitches more than Samuel Jackson in JUNGLE FEVER. And don't forget Abe Vigoda's genial gangster. He gets the best lines *and* the best monologue.
Of course, *everyone* in SUGAR HILL gets a monologue. Which is the problem.
Barry Michael Cooper's script is way too talky. Yap yap yap and everyone keeps talking. Here's a first: a gangster film with more speeches than murders!  So every scene d-r-a-g-s. *Then* come the flashbacks, which stop the film cold.
The intrusive soundtrack doesn't know when to quit, either.
But there are *some* rewards to the overdone drama. In addition to the acting, the photography is handsome, the humor is rich, and the message is frank. Not a bad balance for a "butt bruiser."
Bottom line: SUGAR HILL is a downbeat drug drama that's too talky for its own good. Excellent actors and high production values can't disguise this long-sit.
Grade: C+
.
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


Preparation time
over 2 hours
Cooking time
30 mins to 1 hour
Serves
Makes 12
Dietary
These incredibly sweet more-ish buns have a sticky pecan topping and are filled with cinnamon and dried fruit. ‘Schnecken’ means snails in German, a reference the spiral shape of the buns.
Equipment and preparation: you will need a free-standing mixer fitted with a dough hook.
For the dough, melt the butter in a small saucepan over a low heat, then add the milk and sugar and heat until tepid.
Pour the mixture into a jug and add the yeast. Leave to rest for 8-10 minutes.
Stir the salt and the eggs into the yeast mixture.
Place the flour in a free-standing food mixer fitted with the dough hook attachment. Add the yeast mixture and mix on a low speed working through the initial wet stage until the dough begins to pull away cleanly from the sides of the bowl and is smooth.
Place in a large greased bowl, cover with an oiled cling film, and prove for two hours or more, or until tripled in volume.
Grease a 23 x 33 x 3cm/9 x 13 x 1½in baking tray with oil - if the tin is too shallow, it will ooze over the side.
For the sticky topping, melt the butter, brown sugar and golden syrup together in a pan.
Spread over the base of the greased baking tray and sprinkle over the pecans. Set aside.
For the fruit filling, mix together the cherries, raisins, cinnamon and sugar in a bowl. Set aside.
When the dough has risen, knock back and roll out on a lightly floured surface to a rectangle of 30 x 38cm/12 x 15in.
Brush with the dough with melted butter, then evenly spread over the fruit. Roll up, starting with the long side, into a sausage shape.
Place the sausage, seam-side down, and cut into 12 equal pieces using a very sharp knife. Place cut-side up into the prepared pecan pan.
Cover with oiled cling film and leave to rise for about 40 minutes.
Preheat the oven to 200C/fan oven 180C/400F/Gas 6.
Bake the buns for about 35-40 minutes. If browning too quickly, cover with some foil.
Turn out of the tray while still warm onto a plate or baking tray.


{{ define "content" }}
A Constellation rebalance has been requested. Refreshing constellation page in {{.RefreshTime}}s.


Successful Build Environments
O/S
CPU
C Compiler
Environment Variable(s)
make(1)
configure(1) Option


Synergy Advance
-
anonymous
Hey Wincent,
So, on learning about Synergy Advance, I'm obviously very curious about it? Can you tell us anything about what you're planning for it? Because I really can't think of anything more I would like to have in Synergy; it has every feature I could possibly want.
Are you planning to limit features of the normal Synergy and only put them in Synergy Advance, or will Synergy Advance be all-new features. We're all very excited about this!
Adam
Reply
This topic is now closed.


Discussions and Meetings
Discussions about Silverblue happen on the<EMAIL_ADDRESS>mailing list.
Team Silverblue has regular, bi-weekly IRC meetings.
- #fedora-meeting-2 on freenode, every second Monday, 9:00 EDT
{{define "title"}}Team Silverblue — Community{{end}}
{{define "body"}}
Discussions about Silverblue happen on the<EMAIL_ADDRESS>mailing list. Team Silverblue has regular, bi-weekly IRC meetings.
Discussions and Meetings
Please check the mailing list for meeting announcements and agendas
and feel free to come by!
Outside of the meeting, you can always come by and chat about Silverblue in the #fedora-workstation IRC channel on freenode.
Before reporting issues, please check in chat or on the mailing list that you've found a new issue.
As Team Silverblue covers multiple sub-projects and distributions, where to report issues depends on which distribution or component you're reporting and issue against. In general, it is useful to check on chat or the mailing list where to report things. Here are links to a few of the issue trackers:
For issues that are specific to Team Silberblue, but not clearly related to one of those components, you can use the Team Silverblue issue tracker.
{{end}}


class: inverse middle background-image: url(images/people2.png) background-position: 99% 98% background-size: 55% # *The Paradox of the Positive* ## Exploratory tools for visualising the individuals in (multivariate) longitudinal data ### Di Cook, Monash University
 .small[Joint with Nick Tierney and Tania Prvan]
 International Biometrics Conference
 .tiny[Virtual Learning Series, July 20, 2020] .tiny[

[https://dicook.org/files/IBC2020/slides.html](https://dicook.org/files/IBC2020/slides.html)]
 .footnote[Image credit: 2020 Australian Open spectators by Di Cook] --- background-image: url(images/singer_willett.png) background-size: 50% .huge[ ☀ ] .footnote[Example from Singer and Willett (2003) Applied Longitudinal Data Analysis: Modeling Change and Event Occurrence] --- class: inverse  .footnote[[Exploring Longitudinal Data with GGobi](http://ggobi.org/book/chap-misc/Longitudinal.mov) by Di Cook on [GGobi website](http://ggobi.org)] --- class: inverse middle .huge[ 🌧 ] # Shiver. --
 The variation from individual to individual is much greater than the overall trend. While there may be an overall trend that matches our common belief, many individuals have a different experience. --- background-image: \url(https://suziegruber.com/wp-content/uploads/2018/06/Frayed-Rope-2-Deposit-web.jpg) background-size: cover class: inverse center # A divergence of purpose

 .pull-left[ Statistics
 for policy ] .pull-right[ Statistics
 for the public ] .footnote[Image source: [Suzie Graber]((https://suziegruber.com/wp-content/uploads/2018/06/Frayed-Rope-2-Deposit-web.jpg)]  --- background-image: \url(https://upload.wikimedia.org/wikipedia/commons/2/21/Frederick_Douglass_by_Samuel_J_Miller%2C_1847-52.png) background-size: 15% background-position: 100% 0% # Paradox of the positive > *Douglass orates that positive statements about American values, such as liberty, citizenship, and freedom, were an offense to the enslaved population of the United States because of their lack of freedom, liberty, and citizenship. As well, Douglass referred not only to the captivity of enslaved people, but to the merciless exploitation and the cruelty and torture that slaves were subjected to in the United States. Rhetoricians R.L. Heath and D. Waymer called this topic the "paradox of the positive" because it highlights how something positive and meant to be positive can also exclude individuals.* .footnote[[Wikipedia: What to a slave is the fourth of July ](https://en.wikipedia.org/wiki/What_to_the_Slave_Is_the_Fourth_of_July%3F)] --- .pull-left[
Aside: Should race even be a variable used in analyses?
] .pull-right[

"First, if racism is a principal factor organizing social life, why not study racism rather than race? Second, why use an unscientific system of classification in scientific research?" AJPH 22 years ago, loud and clear, in plain sight, @mindphul https://t.co/aLQ5BqquIS
— Melanie Wall (@mwallbiostat) July 12, 2020
  ] --- .large[I'm going to talk about] --

.large[.purple[new tools for longitudinal data]] --

.large[.green[to explore the individuals]] --

.large[.orange[in the R package `brolgar`.]] --- # What is the data structure `brolgar` builds on `tsibble`, by Earo Wang. ``` *## # A tsibble: 6,402 x 9 [!] *## # Key: id [888] ## id ln_wages xp ged xp_since_ged black hispanic high_grade ## <int> <dbl> <dbl> <int> <dbl> <int> <int> <int> ## 1 31 1.49 0.015 1 0.015 0 1 8 ## 2 31 1.43 0.715 1 0.715 0 1 8 ## 3 31 1.47 1.73 1 1.73 0 1 8 ## 4 31 1.75 2.77 1 2.77 0 1 8 ## 5 31 1.93 3.93 1 3.93 0 1 8 ## 6 31 1.71 4.95 1 4.95 0 1 8 ## 7 31 2.09 5.96 1 5.96 0 1 8 ## 8 31 2.13 6.98 1 6.98 0 1 8 ## 9 36 1.98 0.315 1 0.315 0 0 9 ## 10 36 1.80 0.983 1 0.983 0 0 9 ## # … with 6,392 more rows, and 1 more variable: unemploy_rate <dbl> ``` --- # Making spaghetti .pull-left[ ```r wages %>% ggplot(aes(x = xp, y = ln_wages, group = id)) + geom_line(alpha=0.3) + invthm ``` ] .pull-right[  ] --- class: inverse middle center # from a spaghetti mess  .footnote[Source: giphy] --- class: inverse middle center # to controlled spaghetti handling  .footnote[Source: giphy] --- class: inverse middle center # to perfection  .footnote[Source: giphy] --- # Its not regular .pull-left[ Using features, compute the number of measurements for each subject ```r wages %>% * features(ln_wages, n_obs) %>% ggplot(aes(x = n_obs)) + geom_bar() + xlab("Number of observations") + invthm ``` ] .pull-right[  ] --- # We could filter on this .pull-left[ ```r *wages <- wages %>% add_n_obs() wages %>% * filter(n_obs > 3) %>% select(id, ln_wages, xp, n_obs) ``` ] .pull-right[ ``` ## # A tsibble: 6,145 x 4 [!] *## # Key: id [764] ## id ln_wages xp n_obs ## <int> <dbl> <dbl> <int> ## 1 31 1.49 0.015 8 ## 2 31 1.43 0.715 8 ## 3 31 1.47 1.73 8 ## 4 31 1.75 2.77 8 ## 5 31 1.93 3.93 8 ## 6 31 1.71 4.95 8 ## 7 31 2.09 5.96 8 ## 8 31 2.13 6.98 8 ## 9 36 1.98 0.315 10 ## 10 36 1.80 0.983 10 ## # … with 6,135 more rows ``` ] --- # Subjects don't all start at the same time .pull-left[ Using features to extract minimum time ```r wages %>% * features(xp, list(min = min)) %>% ggplot(aes(x = min)) + geom_histogram(binwidth=0.5) + xlim(c(0, 13)) + xlab("First time in study") + invthm ``` ] .pull-right[  ] --- # There's a range of experience .pull-left[ Using features to extract range of time index ```r wages_xp_range <- wages %>% * features(xp, feat_ranges) ggplot(wages_xp_range, aes(x = range_diff)) + geom_histogram() + xlab("Range of experience") + invthm ``` ] .pull-right[  ] --- # Small spoonfuls of spaghetti .pull-left[ Sample some individuals ```r set.seed(20200720) wages %>% * sample_n_keys(size = 10) %>% ggplot(aes(x = xp, y = ln_wages, group = id)) + geom_line() + xlim(c(0,13)) + ylim(c(0, 4.5)) + xlab("Years of experience") + ylab("Log wages") + invthm ``` .tiny[Wages conversion 0.5 = $1.65; 4.5 = $90] ] .pull-right[  ] --- count: false # Small spoonfuls of spaghetti .pull-left[ Sample some individuals ```r wages %>% * sample_n_keys(size = 10) %>% ggplot(aes(x = xp, y = ln_wages, group = id)) + geom_line() + xlim(c(0,13)) + ylim(c(0, 4.5)) + xlab("Years of experience") + ylab("Log wages") + invthm ``` .tiny[Wages conversion 0.5 = $1.65; 4.5 = $90] ] .pull-right[  ] --- count: false # Small spoonfuls of spaghetti .pull-left[ Sample some individuals ```r wages %>% * sample_n_keys(size = 10) %>% ggplot(aes(x = xp, y = ln_wages, group = id)) + geom_line() + xlim(c(0,13)) + ylim(c(0, 4.5)) + xlab("Years of experience") + ylab("Log wages") + invthm ``` .tiny[Wages conversion 0.5 = $1.65; 4.5 = $90] ] .pull-right[  ] --- # Take a spoonful of different lengths .pull-left[ Sample experienced individuals ```r wages %>% add_n_obs() %>% * filter(n_obs > 7) %>% sample_n_keys(size = 10) %>% ggplot(aes(x = xp, y = ln_wages, group = id)) + geom_line() + xlim(c(0,13)) + ylim(c(0, 4.5)) + xlab("Years of experience") + ylab("Log wages") + invthm ``` .tiny[Wages conversion 0.5 = $1.65; 4.5 = $90] ] .pull-right[  ] --- # Take a spoonful of different lengths .pull-left[ Sample INexperienced individuals ```r wages %>% add_n_obs() %>% * filter(n_obs < 5) %>% sample_n_keys(size = 10) %>% ggplot(aes(x = xp, y = ln_wages, group = id)) + geom_line() + xlim(c(0,13)) + ylim(c(0, 4.5)) + xlab("Years of experience") + ylab("Log wages") + invthm ``` .tiny[Wages conversion 0.5 = $1.65; 4.5 = $90] ] .pull-right[  ] --- # Take a spoonful of different lengths .pull-left[ Sample average experience ```r wages %>% add_n_obs() %>% * filter(n_obs > 4, n_obs < 8) %>% sample_n_keys(size = 10) %>% ggplot(aes(x = xp, y = ln_wages, group = id)) + geom_line() + xlim(c(0,13)) + ylim(c(0, 4.5)) + xlab("Years of experience") + ylab("Log wages") + invthm ``` .tiny[Wages conversion 0.5 = $1.65; 4.5 = $90] ] .pull-right[  ] --- # Also we can - `facet_strata`: show the whole pot, neatly separated into equally portioned - `facet_sample`: show most of the pot in neatly separated portions ---  --- # Special features Compute tignostics for each subject - Slope, intercept from simple linear model - Variance, standard deviation - Jumps, differences --- # Increasing .pull-left[ ```r wages_slope <- wages %>% add_n_obs() %>% filter(n_obs > 4) %>% * key_slope(ln_wages ~ xp) %>% left_join(wages, by = "id") %>% as_tsibble(key = id, index = xp) wages_slope %>% * filter(.slope_xp > 0.4) %>% ggplot(aes(x = xp, y = ln_wages, group = id)) + geom_line() + ylim(c(0, 4.5)) + xlab("Years of experience") + ylab("Log wages") + invthm ``` ] .pull-right[  ] --- # Decreasing .pull-left[ ```r wages_slope %>% * filter(.slope_xp < (-0.7)) %>% ggplot(aes(x = xp, y = ln_wages, group = id)) + geom_line() + ylim(c(0, 4.5)) + xlab("Years of experience") + ylab("Log wages") + invthm ``` ] .pull-right[  ] --- # A different style of five number summary Who is average? Who is different?
 Find those individuals who are representative of the min, median, maximum, etc of growth, using `keys_near()` --- .pull-left[ ```r wages_threenum <- wages %>% add_n_obs() %>% filter(n_obs > 4) %>% key_slope(ln_wages ~ xp) %>% * keys_near(key = id, * var = .slope_xp, * funs = l_three_num) %>% left_join(wages, by = "id") %>% as_tsibble(key = id, index = xp) ``` ] .pull-right[  ] ---  --- # Sculpting spaghetti .pull-left[ Mixed effects model, education as fixed effect, subject random effect using slope. ```r wages_fit_int <- * lmer(ln_wages ~ xp + high_grade + * (xp |id), data = wages) wages_aug <- wages %>% add_predictions(wages_fit_int, var = "pred_int") %>% add_residuals(wages_fit_int, var = "res_int") ``` ] .pull-right[  ] --- # Sample and show the data, too ```r set.seed(1) wages_aug %>% add_n_obs() %>% filter(n_obs > 4) %>% sample_n_keys(size = 12) %>% * ggplot(aes(x = xp, y = pred_int, group = id, colour = factor(id))) + geom_line() + * geom_point(aes(x = xp, y = ln_wages, colour = factor(id))) + scale_colour_ochre(palette = "emu_woman_paired") + facet_wrap(~id, ncol=4) + xlab("Years of experience") + ylab("Log wages") + invthm + theme(legend.position = "none") ``` ---  --- # Multivariate ```r library(tourr) wages_mv_df <- wages_mv %>% select(ln_wages, expens, savings, id) %>% as.data.frame() wages_12227 <- data.frame(from = 6137:6146, to = 6138:6147) %>% as.matrix() wages_735 <- data.frame(from = 408:418, to = 409:419) %>% as.matrix() edges <- rbind(wages_12227, wages_735) animate_xy(wages_mv_df[,1:3], axes = "bottomleft", col="grey90", edges = wages_12227) animate_xy(wages_mv_df[,1:3], axes = "bottomleft", col="grey90", edges = wages_735) render_gif(wages_mv_df[,1:3], grand_tour(), display_xy(axes = "bottomleft", col="grey90", edges = wages_12227), gif_file="./tour1.gif", apf=1/15, frames=200) render_gif(wages_mv_df[,1:3], grand_tour(), display_xy(axes = "bottomleft", col="grey90", edges = wages_735), gif_file="./tour2.gif", apf=1/15, frames=200) ``` --- .pull-left[ Subject 12227  ] -- .pull-left[ Subject 735  ] --- background-image: \url(images/mouldy-spaghetti.jpg) background-size: cover class: inverse middle center # I'm sorry about the wages data .footnote[Image source: [https://www.stayathomemum.com.au](https://www.stayathomemum.com.au/my-lifestyle/mouldy-food-how-far-is-too-far-gone/)] --- .pull-left[ .small[ - Even though its messy, its too clean - Original cohort included 12,686 individuals, but this data has only 888 individuals - Process not transparent - Demographic groups have very different numbers ] ] .pull-right[ .small[ https://www.nlsinfo.org/content/cohorts/nlsy79/get-data - I have been trying to refresh the wages data - can extract approx 6000 individuals - many odd values, like hourly wages > $10,000 per hour - different coding of variables from one year to another ] ] --- Example of data issues  --- class: inverse middle center # Individual approach in use --- background-image: \url(images/NYTimes1.png) background-size: 80% .footnote[[NYTimes Coronavirus coverage](https://www.nytimes.com/interactive/2020/us/coronavirus-us-cases.html)] --- background-image: \url(images/NYTimes2.png) background-size: 100% .footnote[[NYTimes Coronavirus coverage](https://www.nytimes.com/interactive/2020/us/coronavirus-us-cases.html)] --- --- # What I hope you have heard today - When the variation is large, we need better methods to summarise the variation - We need .orange[more research], and .orange[acceptance], on methods for communicating the individual experience - .orange[Statistics needs to address the individual experience], so we can better engage with the public. *I feel this is important for evolving democracy, for literate citizenship. As more tools become readily available, people will do their own analysis*. --- background-image: \url(https://upload.wikimedia.org/wikipedia/commons/9/99/Brolga_%2835984742503%29.jpg) background-size: 40% background-position: 99% 99% class: inverse ### Read more about the `brolgar` package at # http://brolgar.njtierney.com
 **br**owse **o**ver **l**ongitudinal data
 **g**raphically and **a**nalytically in **R** .footnote[Image source: [wikicommons](https://upload.wikimedia.org/wikipedia/commons/9/99/Brolga_%2835984742503%29.jpg] --- class: inverse middle background-image: url(images/people2.png) background-position: 99% 1% background-size: 35% # Acknowledgements Slides created via the R package [**xaringan**](https://github.com/yihui/xaringan), with **iris theme** created from [xaringanthemer](https://github.com/gadenbuie/xaringanthemer). The chakra comes from [remark.js](https://remarkjs.com), [**knitr**](http://yihui.name/knitr), and [R Markdown](https://rmarkdown.rstudio.com). Slides are available at [https://dicook.org/files/IBC2020/slides.html](https://dicook.org/files/IBC2020/slides.html) and supporting files at [https://github.com/dicook/IBC2020](https://github.com/dicook/IBC2020).
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. .footnote[Image credit: 2020 Australian Open spectators by Di Cook]


{% extends "base.html"%} {%block title%}{{packet_type_description}} - Packet Viewer{%endblock%} {%block location%}
Home -> PCap Files -> {{filename}} -> {{packet_type_description}}
Prev | Next