Class FreeClimbList
Base class for representing a list of resources returned by the FreeClimb API. Resources are kept in an ArrayList which the user is given limited access to. Subclasses for each type of resource that can be returned in FreeClimb API's paginated lists should be made to wrap around this.
Inheritance
Inherited Members
Namespace: com.freeclimb.api
Assembly: freeclimb-cs-sdk.dll
Syntax
public abstract class FreeClimbList : APIRequester
Constructors
| Improve this Doc View SourceFreeClimbList(String, String, String, String)
Creates a FreeClimbList based on the JSON list returned by the FreeClimb API (rawPage).
Declaration
protected FreeClimbList(string accountId, string authToken, string rawPage, string listField)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | accountId | The accountId to use for credentials with the FreeClimb API when pulling new pages of the list. |
| System.String | authToken | The authToken to use for credentials with the FreeClimb API when pulling new pages of the list. |
| System.String | rawPage | The JSON string representing the first page of the list. |
| System.String | listField | The name of the array of resources within the raw JSON list. For example, for lists of Call resources the field is called "calls" and for Queues it's called "queues". |
Exceptions
| Type | Condition |
|---|---|
| FreeClimbException | Thrown upon failed request. |
Properties
| Improve this Doc View SourcegetLocalSize
Retrieve the size of the underlying List.
Declaration
public int getLocalSize { get; }
Property Value
| Type | Description |
|---|---|
| System.Int32 | The size of the underlying List. |
getTotalSize
Retrieve total size of the results list including what is still in non-downloaded pages.
Declaration
public int getTotalSize { get; }
Property Value
| Type | Description |
|---|---|
| System.Int32 | Total size of the results list including what is still in non-downloaded pages. |
Methods
| Improve this Doc View SourcebuildFromJson(String)
Update the FreeClimbList with the data from the provided next page.
Declaration
protected void buildFromJson(string rawPage)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | rawPage | The raw JSON string representing a page of a list. |
Exceptions
| Type | Condition |
|---|---|
| FreeClimbJSONException | Thrown upon failed to parse. |
constructElement(String)
Method that should be implemented with code to build the type of resource that a subclass represents.
Declaration
protected abstract IFreeClimbCommon constructElement(string element)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | element | A JSON string representing a FreeClimb object. |
Returns
| Type | Description |
|---|---|
| IFreeClimbCommon | An equivalent object to the one represented by the inputted JSON string. |
export()
Retrieve copy of the underlying list.
Declaration
public LinkedList<IFreeClimbCommon> export()
Returns
| Type | Description |
|---|---|
| System.Collections.Generic.LinkedList<IFreeClimbCommon> | Copy of the underlying list. |
get(Int32)
Retrieve the ith item in the local list.
Declaration
public IFreeClimbCommon get(int i)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | i | List index. |
Returns
| Type | Description |
|---|---|
| IFreeClimbCommon | The ith item in the local list. |
loadNextPage()
Loads the next page of the list into the local array
Declaration
public void loadNextPage()
Exceptions
| Type | Condition |
|---|---|
| FreeClimbJSONException | Thrown upon failed request. |


Cascading Style Sheets (CSS) is a style sheet language used for describing the presentation of a document written in a markup language.[1] Although most often used to set the visual style of web pages and user interfaces written in HTML and XHTML
Read more December 17, 1996;Inheritance is a key feature in CSS; it relies on the ancestor-descendant relationship to operate. Inheritance is the mechanism by which properties are applied not only to a specified element, but also to its descendants.[12] Inheritance relies on the document tree, which is the hierarchy of XHTML elements in a page based on nesting.
Read moreSample Code
Read more First Program
< style >
h1{color: red;}
< /style >


Run Docker containers on embedded devices
A host OS tailored for containers, designed for reliability, proven in production
Try resinOSFeatures
Building the OS we need
Tailored for containers
Containers will revolutionize connected devices, and resinOS is the best way to run them
Built to last anywhere
Made to survive harsh networking conditions and unexpected shutdowns
Just the essentials
A minimal Linux with the services needed to run Docker reliably on an embedded device - nothing else
Easy to port
Based on Yocto Linux for easy porting to most capable device types across varied CPU architectures
Fast, modern workflow
Who said embedded software has to be slow and painful to develop?
Open and friendly
Actively developed in the open; community participation warmly welcomed
Why resinOS
In our quest to build resin.io, a platform that brings the tools of modern software development to the world of connected hardware, we realized that we needed an operating system optimized for the use case: a minimal OS ideal for running containers on embedded devices. Because of the complexity required to work across many different network conditions as well as on embedded boards with diverse architectures, boot procedures, kernel configurations, and so forth, existing cloud-focused container OS solutions did not fit our needs. At the same time, existing embedded operating systems and frameworks were not designed for constant updates or containers. We had to create something new from the best of both worlds.
So we built resinOS, an operating system tailored for containers and designed for the unique realities of the embedded world. resinOS supports almost 20 distinct device types, has a robust networking and provisioning story, emphasizes reliability over long periods of operation, and enables a productive developer workflow. We’ve been running resinOS as part of the resin.io platform for years and are now releasing it as an independent operating system, so that others can benefit and contibrute to running containers on connected devices.
Downloads
Select your device type
Milestones
0% Complete
0 Closed
13 Open


Configuration basics
How does Mireka store configuration
Mireka configuration is stored in text files.
The configuration files are written in the JavaScript programming language,
although only the most basic elements of JavaScript is used. The configuration does two things:
- Sets up Mireka components and wire them together.
- Sets up mailing specific informations, like user accounts, forwading lists etc.
Location of configuration files
The location of the configuration files depends on how you installed Mireka.
- If you installed it by extracting the zip distribution archive then they are in the
conf
subdirectory.
- If you installed the deb package then they are in
/etc/mireka/
.
Editing
It is best if you edit the files using an editor capable of syntax highlighting JavaScript files.
For example you can use Vim on the Linux command line, or jEdit on Windows and Linux GUI.
After changing the configuration you have to restart Mireka.


2021 Competition
With the unique situation this year, ARC has evolved in the following ways:
- We will be postponing the usual competition til a tentative January 2021 start. This allows us to assess the COVID situation as it evolves. .
- This year's competition will happen in some form, whether virtual or in-person. We have revamped the rulebook and competition structure such that some form of a competition will occur, whether it is within the safe confines of everyone's community or together. Safety of all people involved is our primary priority, and all decision-making will be made with that as our priority.
Teams that have paid to participate last year will be able to participate free of charge. New teams are welcome to join the competition through the usual financial plan.
- Despite the delay, we will be holding different virtual activities that will be both safe and fun for all participating. We will be using DroneBlocks to give students the opportunity to program and learn how to use drones safely. Furthermore, we will be holding different talks with different speakers who work in the aerospace industry.
Below is a tentative schedule for this year:
- November 1st: DroneBlocks material released
- mid-November: Virtual ARC talks
- December 20th: Submission for DroneBlocks material is due/results shortly after
- December 20th: Registration Deadline for the 2021 competition
- By the end of December: Teams that are competing this year are announced, and rulebook finalized
- Apr/May 2021 2021 Competition
During this fall, we will be holding a fun and exciting virtual activity that will allow students to still participate in drone activities from the safety of their homes! ARC has procured access to DroneBlocks which offers students some lectures and virtual simulations on drone programming and flying!
Teams that have already registered have free access to this curriculum. In conjunction with the free access to DroneBlocks, the ARC staff will be coming up with a series of challenges that students can complete.
Students that successfully complete these tasks will be able to earn points for their teams that will count towards the actual ARC competition starting in January 2021.
Kickoff Presentation:
Meeting Recording:
Kickoff Presentation
Access Passcode: 89Rhq6?*
Slides can be found here: Kickoff Slides
Virtual Engagement Competition Rules:
- All participants must register here: https://forms.gle/WH5No6duxwyQnKVs7 to get to lecture/simulation access
- No teams of students are allowed
- Students must register to be able to receive prizes.
- Duplicate/similar submissions will result in disqualification at the judge's discretion.
- If students are participating in ARC, their submission may count towards the actual main competition scoring.
- Create a login account in the simulation (click the middle 3 bar button, and login)
- Go to the Mission Board, and load up the mission you’d like to accomplish
- Program the mission
- Save the mission using the instructions given in the challenge descriptions.
- Make sure the mision board is not public and only private
- Send the link to your mission to<EMAIL_ADDRESS>with your high school and student name
- Judges will reply within 2 days with whether your submission was successful enough
- Divisions:
- Team
- Schools whose students finish each mission will earn points based on how quickly they finish the challenges. These points apply to each challenge separately (i.e. if you finish 1st in the Challenge 1, 4th in Challenge 2, and 3rd in Challenge 3, you get 20 + 4 + 8 = 32 pts):
- 1st place: 20 points
- 2nd place: 10 points
- 3rd place: 8 points
- 4th place: 4 points
- 5th place: 2 point
- These points will be applied to the main ARC competition as bonus points in the end.
- If multiple members from a team high school team submits an entry, only the highest will count. This will apply to both Florida and California regions separately.
- Individual
- The first 3 teams that finish all 3 challenges will win prizes:
- 1st place: DJI Tello EDU Drone ($130 value)
- 2nd place: Potensic Drone ($30 value)
- 3rd place: $10 amazon giftcard
- If no student finishes all 3 challenges, the student with the most completions will
- The placement of students in rankings is independent of region (i.e. only one 1st, 2nd, and 3rd place prize will be awarded)
- Students are allowed to participate in both team and individual divisions.
- Lessons that are useful:
- Drone Simulation Lesson
- Introduction to Tello Drone Programming
- Advanced Tello Drone Programming
- Tello Challenges from Italy
- Challenges:
- Challenge 1: Fly a complex route
- Challenge 2: Acrobatics
- Challenge 3: Implement an algorithm
- Challenge Descriptions
- Lecture series points activites:
- Autonomy: Ben Marchionna, Vice President of Global Operations at Skyspecs Presentation Recording
Last modified Dec. 12th
The ARC staff understands the turbulent times that we are currently in, and we hope that these activities will help alleviate some of the pain. Please do not hesitate to reach out to us if you have any ideas on what we can do better (aero.robotics.comp@gmail.com).


Malachi 1:5
And your eyes shall see, and ye shall say, The LORD will be magnified from the border of Israel.


Another correlation function?!
Yes, the correlation
function from the psycho
package.
devtools::install_github("neuropsychology/psycho.R") # Install the newest version
library(psycho)
library(tidyverse)
cor <- psycho::affective %>%
correlation()
This function automatically select numeric variables and run a correlation analysis. It returns a psychobject
.
A table
We can then extract a formatted table that can be saved and pasted into reports and manuscripts by using the summary
function.
summary(cor)
# write.csv(summary(cor), "myformattedcortable.csv")
| Age | Life_Satisfaction | Concealing | Adjusting | |
|---|---|---|---|---|
| Age | ||||
| Life_Satisfaction | 0.03 | |||
| Concealing | -0.05 | -0.06 | ||
| Adjusting | 0.03 | 0.36*** | 0.22*** | |
| Tolerating | 0.03 | 0.15*** | 0.07 | 0.29*** |
A Plot
It integrates a plot done with ggcorplot
.
plot(cor)
A print
It also includes a pairwise correlation printing method.
print(cor)
Pearson Full correlation (p value correction: holm):
- Age / Life_Satisfaction: Results of the Pearson correlation showed a non significant and weak negative association between Age and Life_Satisfaction (r(1249) = 0.030, p > .1).
- Age / Concealing: Results of the Pearson correlation showed a non significant and weak positive association between Age and Concealing (r(1249) = -0.050, p > .1).
- Life_Satisfaction / Concealing: Results of the Pearson correlation showed a non significant and weak positive association between Life_Satisfaction and Concealing (r(1249) = -0.063, p > .1).
- Age / Adjusting: Results of the Pearson correlation showed a non significant and weak negative association between Age and Adjusting (r(1249) = 0.027, p > .1).
- Life_Satisfaction / Adjusting: Results of the Pearson correlation showed a significant and moderate negative association between Life_Satisfaction and Adjusting (r(1249) = 0.36, p < .001***).
- Concealing / Adjusting: Results of the Pearson correlation showed a significant and weak negative association between Concealing and Adjusting (r(1249) = 0.22, p < .001***).
- Age / Tolerating: Results of the Pearson correlation showed a non significant and weak negative association between Age and Tolerating (r(1249) = 0.031, p > .1).
- Life_Satisfaction / Tolerating: Results of the Pearson correlation showed a significant and weak negative association between Life_Satisfaction and Tolerating (r(1249) = 0.15, p < .001***).
- Concealing / Tolerating: Results of the Pearson correlation showed a non significant and weak negative association between Concealing and Tolerating (r(1249) = 0.074, p = 0.05°).
- Adjusting / Tolerating: Results of the Pearson correlation showed a significant and weak negative association between Adjusting and Tolerating (r(1249) = 0.29, p < .001***).
Options
You can also cutomize the type (pearson, spearman or kendall), the p value correction method (holm (default), bonferroni, fdr, none…) and run partial, semi-partial or glasso correlations.
psycho::affective %>%
correlation(method = "pearson", adjust="bonferroni", type="partial") %>%
summary()
| Age | Life_Satisfaction | Concealing | Adjusting | |
|---|---|---|---|---|
| Age | ||||
| Life_Satisfaction | 0.01 | |||
| Concealing | -0.06 | -0.16*** | ||
| Adjusting | 0.02 | 0.36*** | 0.25*** | |
| Tolerating | 0.02 | 0.06 | 0.02 | 0.24*** |
Fun with p-hacking
In order to prevent people for running many uncorrected correlation tests (promoting p-hacking and result-fishing), we included the i_am_cheating
parameter. If FALSE (default), the function will help you finding interesting results!
df_with_11_vars <- data.frame(replicate(11, rnorm(1000)))
cor <- correlation(df_with_11_vars, adjust="none")
## Warning in correlation(df_with_11_vars, adjust = "none"): We've detected that you are running a lot (> 10) of correlation tests without adjusting the p values. To help you in your p-fishing, we've added some interesting variables: You never know, you might find something significant!
## To deactivate this, change the 'i_am_cheating' argument to TRUE.
summary(cor)
| X1 | X2 | X3 | X4 | X5 | X6 | X7 | X8 | X9 | X10 | X11 | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| X1 | |||||||||||
| X2 | -0.04 | ||||||||||
| X3 | -0.04 | -0.02 | |||||||||
| X4 | 0.02 | 0.05 | -0.02 | ||||||||
| X5 | -0.01 | -0.02 | 0.05 | -0.03 | |||||||
| X6 | -0.03 | 0.03 | 0.08* | 0.02 | 0.02 | ||||||
| X7 | 0.03 | -0.01 | -0.02 | -0.04 | -0.03 | -0.04 | |||||
| X8 | 0.01 | -0.07* | 0.04 | 0.02 | -0.01 | -0.01 | 0.00 | ||||
| X9 | -0.02 | 0.03 | -0.03 | -0.02 | 0.00 | -0.04 | 0.03 | -0.02 | |||
| X10 | -0.03 | 0.00 | 0.00 | 0.01 | 0.01 | -0.01 | 0.01 | -0.02 | 0.02 | ||
| X11 | 0.01 | 0.01 | -0.03 | -0.05 | 0.00 | 0.05 | 0.01 | 0.00 | -0.01 | 0.07* | |
| Local_Air_Density | 0.26*** | -0.02 | -0.44*** | -0.15*** | -0.25*** | -0.50*** | 0.57*** | -0.11*** | 0.47*** | 0.06 | 0.01 |
| Reincarnation_Cycle | -0.03 | -0.02 | 0.02 | 0.04 | 0.01 | 0.00 | 0.05 | -0.04 | -0.05 | -0.01 | 0.03 |
| Communism_Level | 0.58*** | -0.44*** | 0.04 | 0.06 | -0.10** | -0.18*** | 0.10** | 0.46*** | -0.50*** | -0.21*** | -0.14*** |
| Alien_Mothership_Distance | 0.00 | -0.03 | 0.01 | 0.00 | -0.01 | -0.03 | -0.04 | 0.01 | 0.01 | -0.02 | 0.00 |
| Schopenhauers_Optimism | 0.11*** | 0.31*** | -0.25*** | 0.64*** | -0.29*** | -0.15*** | -0.35*** | -0.09** | 0.08* | -0.22*** | -0.47*** |
| Hulks_Power | 0.03 | 0.00 | 0.02 | 0.03 | -0.02 | -0.01 | -0.05 | -0.01 | 0.00 | 0.01 | 0.03 |
As we can see, Schopenhauer’s Optimism is strongly related to many variables!!!
Credits
This package was useful? You can cite psycho
as follows:
- Makowski, (2018). The psycho Package: an Efficient and Publishing-Oriented Workflow for Psychological Science. Journal of Open Source Software, 3(22), 470. https://doi.org/10.21105/joss.00470
Previous blogposts
- Copy/paste t-tests Directly to Manuscripts
- APA Formatted Bayesian Correlation
- Fancy Plot (with Posterior Samples) for Bayesian Regressions
- How Many Factors to Retain in Factor Analysis
- Beautiful and Powerful Correlation Tables
- Format and Interpret Linear Mixed Models
- How to do Repeated Measures ANOVAs
- Standardize (Z-score) a dataframe
- Compute Signal Detection Theory Indices


--- layout: post status: publish published: true title: Interview with Nathan Barnett of Myrtle Beach Pelicans - Episode 7.11 author: display_name: Corey Fineran login: Corey email<EMAIL_ADDRESS>url: '' author_login: Corey author_email<EMAIL_ADDRESS>wordpress_id: 11143 wordpress_url: http://ivyenvy.com/?p=11143 date: '2015-04-15 22:00:59 +0000' date_gmt: '2015-04-16 03:00:59 +0000' categories: - Minor Leagues - Podcast tags: - Myrtle Beach - Myrtle Beach Pelicans comments: [] ---
On this week's episode of The Ivy Envy Podcast, we have discussion with Nathan Barnett of the Myrtle Beach Pelicans for you.
Myrtle Beach joined the #CubsFamily in the off-season and this is our opportunity to get to know Nathan and the Pelicans.
You can follow the Pelicans on:
Twitter - @PelicanBaseball
Facebook - https://www.facebook.com/myrtlebeachpelicans
Instagram - @PelicansBaseball


I LOVE TROUBLE A film review by Cindy Bale Copyright 1994 Cindy Bale
Starring Julia Roberts and Nick Nolte.
I tried hard not like this movie without succeeding. It contains parts of BRINGING UP BABY, any Hepburn/Tracy film, part of the plot of WAR GAMES, Cary Grant and Rosalind Russell in HIS GIRL FRIDAY, elevator shaft action, train action, and murder.  One of the bad guys was a surprise. The pace is fast enough, there are some "action" scenes. I think that this is a reasonable family summer movie for families with older kids who have already seen MAVERICK.
Julia Roberts and Nick Nolte are fine separately and together. I really identified with the Julia Roberts character (wishful thinking, I know!), but I do have better hair! Her hair, a very dull dark brown, has no color. She could use some highlights. They both do fine with their roles: he's a bored columnist with the Chicago Chronicle and she's a hotshot "cub" reporter with the Chicago Globe. They have great fun trying to out scoop each other to solve one case throughout this movie. I like the one story focus.
Other actors include Charles Martin Smith as Roberts' boss, Olympia Dukakis as Nolte's coworker, Nora Dunn also with the Chronicle, and Marsha Mason as a congresswoman.
Basically this movie is reasonably fun. There is a serious mystery to solve, and I enjoyed following a fun couple solving the mystery. It is a pleasant change of pace from movies that take themselves seriously. I do give successful comedy high marks.
Rating: 7 out of 10 Parker Pens.
.
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


Given a PBMExperiment of normalized probe intensities, this function fits
robust probe-level models across samples using the lmFit
and eBayes
functions from the limma package. The output is a PBMExperiment object with
probes in rows and conditions, rather than individual samples, in columns. The
condition labels of each sample should be specified as a column in the colData of
input PBMExperiment using the stratify=
parameter. By default, the function
expects a "condition"
column in the colData of the input object.
probeFit( pe, assay = SummarizedExperiment::assayNames(pe)[1], stratify = "condition", guardrail = TRUE, offset = 1L, verbose = FALSE, ... )
| pe | a PBMExperiment object containing PBM intensity data. |
|---|---|
| assay | a string name of the assay to use for fitting probe models.
(default = |
| stratify | a character string specifying a column in |
| guardrail | a logical value whether to stop function if any sample appears to be of clearly low quality. Currently, this only checks for whether more than 20% of probes in any sample are NA. If any criteria is met, an error will be returned. (default = TRUE) |
| offset | an integer offset to add to intensities before log2 scaling to prevent errors with zero intensities. If set to 0, probes with zero intensities are dropped/ignored in estimation. (default = 1) |
| verbose | a logical value whether to print verbose output during analysis. (default = FALSE) |
| ... | additional parameters to be passed to |
PBMExperiment object with probe-level log2 intensity information aggregated
across replicates for each unique value in stratify
. Columns in the returned
PBMExperiment correspond to unique values of the stratify
variable, and
rows correspond to the subset of probes passing the filtering criteria
of the original PBMExperiment object. The PBMExperiment includes three assays,
"beta"
, "sd"
, and "df"
, storing the cross-replicate
mean, standard deviation, and degrees of freedom estimates for each condition and probe.
More specifically, limma::lmFit
is called on the log2-transformed values of the
specified assay with no intercept and a binary design matrix with columns corresponding
to the unique values of colData(pe)[[stratify]]
. Since PBM experiments are often
performed with few replicates per condition, the fit is then passed to limma::eBayes
with robust = TRUE
and trend = TRUE
by default. Parameters to
limma::eBayes
can be modified by specifying them during the call to probeFit
.
The cross-probe robust and trended variance estimates are obtained using the
eBayes
function from the limma package with robust = TRUE
and
trend = TRUE
by default. The procedure was developed and described
in the following paper:
Phipson, B., Lee, S., Majewski, I. J., Alexander, W. S., & Smyth, G. K. (2016). Robust hyperparameter estimation protects against hypervariable genes and improves power to detect differential expression. Annals of Applied Statistics, 10(2), 946-963.


#!/usr/bin/perl
stop the script, on signal
sub stop { print "Exiting...\n"; $connection->Disconnect(); exit(0); }
Set the signals that will stop the script This probably needs review for cron etc/
sub set_signals { $SIG{HUP} = \&stop; $SIG{KILL} = \&stop; $SIG{TERM} = \&stop; $SIG{INT} = \&stop; return; }
Processing for messages coming in from human client. All messages processed for cclite
sub in_message { my $sid = shift; my $message = shift; my $type = $message->GetType(); my $fromJID = $message->GetFrom("jid"); my $from = $fromJID->GetUserID(); my $originator = $message->GetFrom(); my $resource = $fromJID->GetResource(); my $subject = $message->GetSubject(); my $body = $message->GetBody(); process_cclite_message( $body, $fromJID ); if ($debug) { print "===\n"; print "Message ($type)\n"; print " From: $from ($resource) $from\n"; print " Subject: $subject\n"; print " Body: $body\n"; print "===\n"; print $message->GetXML(), "\n"; print "===\n"; } }
Another message type, not sure what this does? AOL?
sub in_iq { my $sid = shift; my $iq = shift; my $from = $iq->GetFrom(); my $type = $iq->GetType(); my $query = $iq->GetQuery(); my $xmlns = $query->GetXMLNS(); if ($debug) { print "===\n"; print "IQ\n"; print " From $from\n"; print " Type: $type\n"; print " XMLNS: $xmlns"; print "===\n"; print $iq->GetXML(), "\n"; print "===\n"; } }
Prcoessing presence messages
sub in_presence { my $sid = shift; my $presence = shift; my $from = $presence->GetFrom(); my $type = $presence->GetType(); my $status = $presence->GetStatus(); if ($debug) { print "===\n"; print "Presence\n"; print " From $from\n"; print " Type: $type\n"; print " Status: $status\n"; print "===\n"; print $presence->GetXML(), "\n"; print "===\n"; } }
A crude first attempt to process GPG encoded Jabber input bodies containing 'send' or 'balance' transactions. Does not send encrypted receipts at present...
sub process_cclite_message { my ( $body, $fromJID ) = @_; my ( $transaction_found, $transaction_line, $transaction_description_ref, $parse_type ); # originator is mail style address + resource stub, parse $originator =~ s/^([^\/]+)\/.*?$/$1/; # if encoded, assumed to be a transaction... if ( $body =~ /BEGIN PGP MESSAGE/ ) { open( JABBER, ">$message_file" ); print JABBER $body; close(JABBER); ( $transaction_found, $transaction_line ) = decode_decrypt_reformat( $passphrase, $message_file, $reformat, $decrypt, $logfile, $trace ); ( $parse_type, $transaction_description_ref ) = mail_message_parse( 'local', $registry, $originator, '', '', $transaction_line ); # add 'via jabber' literal to description of transaction $transaction_description_ref->{'description'} = "$messages{'viajabber'} " . $transaction_description_ref->{'description'}; #FIXME: we have output, error and text within transaction, needs simplifying # also add the Via Jabber/Via Email prefix at this stage before transaction processing... if ( !length( $transaction_description_ref->{'error'} ) && $transaction_description_ref->{'type'} eq 'send' ) { $transaction_description_ref->{'output_message'} = mail_transaction($transaction_description_ref); } elsif ( $transaction_description_ref->{'type'} eq 'balance' ) { $transaction_description_ref->{'output_message'} = $transaction_description_ref->{'text'}; } }
message fields for refereence...
to=>string|JID, - set multiple fields in the <message/> from=>string|JID, at one time. This is a cumulative type=>string, and over writing action. If you set subject=>string, the "to" attribute twice, the second body=>string, setting is what is used. If you set thread=>string, the subject, and then set the body errorcode=>string, then both will be in the <message/> error=>string
my $output = "$transaction_description_ref->{'error'} $transaction_description_ref->{'output_message'}"; my $type = $transaction_description_ref->{'type'}; if ( !$transaction_found ) { $connection->MessageSend( 'to' => $fromJID, 'type' => 'chat', 'body' => "no transaction detected" ); } else { my $output = "$transaction_description_ref->{'error'} $transaction_description_ref->{'output_message'}"; $connection->MessageSend( 'to' => $fromJID, 'type' => 'chat', 'body' => $output ); } return; } #------------------------------------------------------------------------------------------------------------------ # Start of main script #------------------------------------------------------------------------------------------------------------------ use strict; use lib '../../../lib'; # and cclite support use Ccconfiguration; use Ccmailgateway; use Cclitedb; use Cclite; use Cccrypto; use Cccookie; use Ccu; my %configuration = readconfiguration; my $configuration_hash_ref = \%configuration; # message language now decided by decide_language 08/2011 our %messages = readmessages(); # don't need at present run from command line... my $cookieref = get_cookie(); # specific configuration file for this, for the moment... my %jabber_configuration = readconfiguration('../../../config/readjabber.cf'); my $server = $jabber_configuration{'server'}; my $port = $jabber_configuration{'port'}; my $username = $jabber_configuration{'username'}; my $password = $jabber_configuration{'password'}; # this is experimental, multiple cclite bots, distinguished by registry name my $resource = $jabber_configuration{'hardcoded_registry'}; my $temp_directory = $jabber_configuration{'temp_directory'}; our $message_file = "$jabber_configuration{'temp_directory'}/$jabber_configuration{'message'}"; our $reformat = "$jabber_configuration{'temp_directory'}/$jabber_configuration{'reformat'}"; our $decrypt = "$jabber_configuration{'temp_directory'}/$jabber_configuration{'decrypt'}"; our $encrypted = "$jabber_configuration{'temp_directory'}/$jabber_configuration{'encrypted'}"; # STDERR for gpg operations, if specified... our $logfile = "$jabber_configuration{'temp_directory'}/$jabber_configuration{'logfile'}"; # turns gpg trace on and off, prints to STDOUT (or STDERR?) our $trace = $jabber_configuration{'trace'}; # sleep in seconds for processing loop, not needed... our $sleep = $jabber_configuration{'sleep'}; # clearly this is very insecure, should be held as a smartcard token for example, this # passphrase unlocks the private key for decrpyting the incoming transactions # users private key on client is used to sign transactions # note the key and the running user must correspond, otherwise the key won't get released by gpg our $passphrase = $jabber_configuration{'passphrase'}; # this will leave data in the intermediate files and mail in the mailbox, if set to 1, avoids # resetting/resending etc. when debugging my $debug = $jabber_configuration{'debug'}; # for cron, replace these with hardcoded registry name our $registry = $jabber_configuration{'hardcoded_registry'} || $$cookieref{registry}; # print out all the values in the configuration file, if debugging... if ($debug) { foreach my $key ( keys %jabber_configuration ) { print "$key = $jabber_configuration{$key}\n"; } } # validate the current registry #FIXME: this routine is repeated needs to go into a library my ( $class, $token ); my ( $error, $registryref ) = get_where( $class, $registry, 'om_registry', '*', 'name', $registry, $token, '', '' ); if ( length($error) ) { log_entry( $class, $registry, 'fatal', "database error for $registry: $error", $token ); exit 0; } # set the stop signals, probably needs review, depending on how run... set_signals(); our $connection = new Net::XMPP::Client(); $connection->SetCallBacks( message => \&in_message, presence => \&in_presence, iq => \&in_iq ); my $status = $connection->Connect( hostname => $server, port => $port ); if ( !( defined($status) ) ) { print "ERROR: Jabber server is down or connection was not allowed.\n"; print " ($!)\n"; exit(0); }
signed_presence_not_working
#my $gpg = new GnuPG( 'trace' => $trace );
#FIXME: Signed prssence to be sorted out, something in the Perl libraries # input but not put into the presence XML stanza
$gpg->sign( plaintext => "/tmp/online.txt", passphrase => $passphrase, output => "/tmp/sign.txt", 'armor' => 1 );
my $signature = 'dummy signature for testing'; my @result = $connection->AuthSend( username => $username, password => $password, # registry is used as resource at present... resource => $resource ); if ( $result[0] ne "ok" ) { print "ERROR: Authorization failed: $result[0] - $result[1]\n"; exit(0); } print "Logged in to $server:$port...\n"; $connection->RosterGet(); print "Getting Roster to tell server to send presence info...\n"; my %x; ###my $pres = new Net::XMPP::Presence(%x, 'signature' => $signature) ; # this doesn't seem to send anything in the signature stanza though... $connection->PresenceSend( 'signature' => $signature ); print "Sending presence to tell world that we are logged in...\n"; while ( defined( $connection->Process() ) ) { } print "ERROR: The connection was killed...\n"; exit(0);


Use our search engine to look for tips on your symptoms
*NOTE* Do not take the results found here as diagnostics!!! These are only tips and might not be accurate!!!
 Please refer to our list of Physicians by country
to see recommended physicians near you.
*TIPS* Use search words like "how to treat a.. (headache)" or "what to do in case of.. (broken leg)" for better results


# Required Modules
from parapy.core import *
from parapy.geom import *
from components.liftingsurfaces import VerticalStabilizer, HorizontalStabilizer
from math import radians
from user import MyColors
from definitions import ExternalBody
from directories import *
__author__ = ["Nelson Johnson", "San Kilkis"]
__all__ = ["CompoundStabilizer"]
[docs]class CompoundStabilizer(ExternalBody):
""" This class will instantiate the horizontal tail with the required area form the scissor plot. Also it will
instantiate the vertical tails and position them relative to one another in a 'boom tail' conifguration. It also
places a connector at the VT and HT intersection for the fuselage booms.
:returns: ParaPy Geometry of the VT
:param required_planform_area: This is the required horizontal tail area of the main wings from the stability \
analysis.
:type required_planform_area: float
:param wing_planform_area: This is the wing planfrom area in [m^2]
:type wing_planform_area: float
:param wing_mac_length: This is the MAC length of the wing in SI meters
:type wing_mac_length: float
:param wing_semi_span: This is the semispan of the wing in SI meters
:type wing_semi_span: float
:param lhc: This is non-dimensionalized horizontal tail arm for the conventional plane.
:type lhc: float
:param configuration: This is a switch to determine the configuration.
:type configuration: str
:param aspect_ratio: This is the assumed Aspect Ratio of the HT Surface. The VT surface is a fixed AR of 1.4
:type aspect_ratio: float
:param taper: This is the required Taper Ratio of the VT Surface.
:type taper: float
:param twist: This is the required Twist Angle of the Tip Airfoil w.r.t the Root Airfoil in degrees.
:type twist: float
:param color: Changes the color of the wing skin to the one defined in MyColors
:type color: tuple
:param ply_number: Changes the number of ply's of carbon fiber pre-preg.
:type ply_number: int
"""
__icon__ = os.path.join(DIRS['ICON_DIR'], 'ctail.png')
#: Below is the required horizontal tail area of the main wings from the stability analysis.
required_planform_area = Input(0.8, settable=False)
#: Below is the required TOTAL wing area of the main wings.
wing_planform_area = Input(0.8, settable=False)
#: Below is the MAC length of the wing
wing_mac_length = Input(0.43, settable=False)
#: Below is the semispan of the wing
wing_semi_span = Input(1.9, settable=False)
#: Below is the non-dimensionalized horizontal tail arm
lhc = Input(3.0, settable=False)
#: Below is a switch to determine the configuration.
configuration = Input('conventional', validator=val.OneOf(['conventional']), settable=False)
#: Below is the assumed HT aspect ratio.
aspect_ratio = Input(5.0, settable=False)
#: Below is the assumed VT taper ratio.
taper = Input(0.35, settable=False)
#: This is the wing twist for the VT.
twist = Input(0.0, settable=False)
#: This value is used to set the default color of the wing-part
color = Input(MyColors.skin_color)
#: Changes the number of ply's of carbon fiber http://www.ijera.com/papers/Vol4_issue5/Version%202/J45025355.pdf
ply_number = Input(3, validator=val.Instance(int))
[docs] @Part
def stabilizer_h(self):
""" This is an instantiation of the :class:`HorizontalStabilizer` class with the required planform area from the
scissor plot.
:return: Horizontal Tail Object
:rtype: Fused
"""
return HorizontalStabilizer(position=self.position,
planform_area=self.required_planform_area,
aspect_ratio=self.aspect_ratio,
ply_number=self.ply_number + 1)
[docs] @Part
def stabilizer_vright(self):
""" This is an instantiation of the :class:`VerticalStabilizer` class with the current aircraft dimensions for
the right VT.
:return: Right Vertical Tail Object
:rtype: Fused
"""
return VerticalStabilizer(position=translate(self.position,
'y', self.stabilizer_h.semi_span,
'z', sorted(self.stabilizer_h.solid.faces,
key=lambda f: f.cog.y)[-1].cog.z - self.position.z),
wing_planform_area=self.wing_planform_area,
wing_mac_length=self.wing_mac_length,
wing_semi_span=self.wing_semi_span,
lvc=self.lhc,
lvc_canard=0.5,
configuration=self.configuration,
aspect_ratio=1.4,
taper=0.35,
twist=0.0)
[docs] @Part
def stabilizer_vleft(self):
""" This is an instantiation of the :class:`VerticalStabilizer` with the current aircraft dimensions for the \
left VT.
:return: Left Vertical Tail Object
:rtype: VerticalStabilizer
"""
return VerticalStabilizer(position=translate(self.position,
'y', -1 * self.stabilizer_h.semi_span,
'z', sorted(self.stabilizer_h.solid.faces,
key=lambda f: f.cog.y)[-1].cog.z - self.position.z),
wing_planform_area=self.wing_planform_area,
wing_mac_length=self.wing_mac_length,
wing_semi_span=self.wing_semi_span,
lvc=self.lhc,
lvc_canard=self.lhc,
configuration=self.configuration,
aspect_ratio=1.4,
taper=0.35,
twist=0.0)
[docs] @Attribute
def weight(self):
""" Total mass of the compound tail.
:return: Mass in SI kilogram
:rtype: float
"""
return self.stabilizer_h.weight + self.stabilizer_vright.weight + self.stabilizer_vleft.weight
[docs] @Attribute
def center_of_gravity(self):
""" Location of the center of gravity of the compound stabilizer w.r.t the origin. This is calculated with
weighted averages.
:return: Location Tuple in SI meter
:rtype: Point
"""
weights = [self.stabilizer_h.weight, self.stabilizer_vright.weight, self.stabilizer_vleft.weight]
cgs = [self.stabilizer_h.center_of_gravity, self.stabilizer_vright.center_of_gravity,
self.stabilizer_vleft.center_of_gravity]
total_weight = sum(weights)
cg_x = sum([weights[i] * cgs[i].x for i in range(0, len(weights))]) / total_weight
cg_y = sum([weights[i] * cgs[i].y for i in range(0, len(weights))]) / total_weight
cg_z = sum([weights[i] * cgs[i].z for i in range(0, len(weights))]) / total_weight
return Point(cg_x, cg_y, cg_z)
[docs] @Attribute(private=True)
def tail_joiner(self):
""" This joins the tails and connector shafts together through a series of Fuse operations to be able to
present a single `external_shape` required for the .step file output.
:return: ParaPy Fused Boxes
:rtype: Fused
"""
# Fusing Right Horizontal Tail:
shape_in_r = Fused(shape_in=self.stabilizer_h.solid, tool=self.stabilizer_vright.solid)
shape_out_r = Fused(shape_in=shape_in_r, tool=self.connector_right)
# Fusing Left Horizontal Tail:
shape_in_l = Fused(shape_in=self.stabilizer_h.ht_mirror, tool=self.stabilizer_vleft.solid)
shape_out_l = Fused(shape_in=shape_in_l, tool=self.connector_left)
shape_out = Fused(shape_in=shape_out_r, tool=shape_out_l)
return shape_out
[docs] @Attribute(private=True)
def critical_thickness(self):
""" This attribute finds the larger airfoil thickness of the HT or VT stabilizers to then be able to
construct the tail-boom shaft with a radius equal to this larger thickness.
:return: The larger airfoil thickness of the HT or VT
:rtype: float
"""
horizontal_tail_thickness = sorted(self.stabilizer_h.solid.faces, key=lambda f: f.cog.y)[-1].bbox.height
vertical_tail_thickness = sorted(self.stabilizer_vright.solid.faces, key=lambda f: f.cog.z)[0].bbox.length
if horizontal_tail_thickness >= vertical_tail_thickness:
critical_thickness = horizontal_tail_thickness
else:
critical_thickness = vertical_tail_thickness
return critical_thickness
[docs] @Attribute(private=True)
def tail_shaft_circle(self):
""" This attribute makes a circle with thickness found from 'critical_thickness' attribute and extrudes it
along the HT tip chord.
:return: Boom Connector Cross-Section and Extrude
"""
_profile = Circle(position=self.stabilizer_vright.position, radius=(self.critical_thickness / 2.0) * 1.5)
_extrude = ExtrudedSolid(island=_profile, distance=self.stabilizer_h.root_chord)
return _profile, _extrude
[docs] @Attribute(private=True)
def internal_shape(self):
""" This is the internal shape of the compound stabilizer. It is None because the current app uses a boom tail\
structure instead of a single fuselage, and thus there is no shape to present for the fuselage builder.
:rtype: None
"""
return None
[docs] @Attribute
def boom_plane(self):
""" Defines the XZ-plane that is coincident with the boom connector.
:return: Boom XZ Plane
:rtype: Plane
"""
return Plane(reference=self.tail_shaft_circle[0].center,
normal=Vector(0, 1, 0),
binormal=Vector(0, 0, 1))
[docs] @Part
def connector_right(self):
""" This rotates the extruded right boom shaft connector to point in the X direction.
:return: Right Boom Connector
:rtype: RotatedShape
"""
return RotatedShape(shape_in=self.tail_shaft_circle[1],
rotation_point=self.tail_shaft_circle[0].center,
vector=Vector(0, 1, 0),
angle=radians(90))
[docs] @Part
def connector_left(self):
""" This rotates the extruded left boom shaft connector to point in the X direction.
:return: Left Boom Connector
:rtype: MirroredShape
"""
return MirroredShape(shape_in=self.connector_right,
reference_point=self.position,
vector1=Vector(1, 0, 0), vector2=Vector(0, 0, 1))
[docs] @Attribute
def component_type(self):
""" This attribute names the component 'ct' for compound stabilizer.
:return: Name of Compound Tail Configuration
:rtype: str
"""
return 'ct'
[docs] @Part
def external_shape(self):
""" This defines the external shape for the ExternalBody class in definitions.
:return: CompoundStabilizer External Geometry
:rtype: ScaledShape
"""
return ScaledShape(shape_in=self.tail_joiner, reference_point=Point(0, 0, 0), factor=1, hidden=True)
if __name__ == '__main__':
from parapy.gui import display
obj = CompoundStabilizer(label='Compound Tail')
display(obj)


--- layout: post title: TomTom to track phones for real-time traffic info date: 2006-10-27 00:00:00 categories: digital-media interfaces-&-interaction mobile ---
TomTom to track phones for real-time traffic info: "The system uses standard signalling data sent back and forth between mobile phones and cellular base-stations to pin-point a handset's location and speed, which are effectively the position and speed of the vehicle it's inside. Build a composite of all the data received this way from handsets located along a road and you have an indication of how congested - or not - that road is."
Interesting; I'd heard of this technique before, perhaps it was their trial...?


Rooster is a simple countdown timer, with the explicit goal of keeping out the cruft.


The three new things I have learned about myself and my ego as a result of the core learning:
1. I learned about taking regular breaks and how important they are when doing difficult problem solving. It helps keep me calm.
2. My ego feels damaged when the code doesn’t work and I feel frustrated if I don’t understand after spending some time on the problem.
3. I realised I need to work more on my emotional intelligence and my patience.
What surprised me the most about the core learning: Rubber ducky concept
What were the most challenging aspects of the core learning?
Finding out that I need to work on a few areas such as patience and emotional intelligence.
I think Dev Academy, a programming school, spend so much time focusing on core learning in a web development bootcamp course because:
The skills this teaches you can help in your career as a programmer and can set the Dev Academy candidates apart from other candidates when searching for work.


Manifesto for Agile Software Testing
We are uncovering better ways of testing by doing it and helping others to do it. Through this work we have come to value:
Testing throughout over testing at the end
Preventing bugs over finding bugs
Testing understanding over checking functionality
Building the best system over breaking the system
Collective responsibility for quality over individual responsibility
That is, while there is value in the items on the right, we value the items on the left more.
Contact
The Manifesto for Agile Software Testing is © 2013 Karen Greaves and Samantha Laing


HeroModifier
public final class HeroModifier
extension HeroModifier: HeroStringConvertible
Undocumented
-
Undocumented
Declaration
Swift
public init(applyFunction: @escaping (inout HeroTargetState) -> Void)
-
Apply modifiers directly to the view at the start of the transition. The modifiers supplied here won’t be animated. For source views, modifiers are set directly at the beginning of the animation. For destination views, they replace the target state (final appearance).
Declaration
Swift
public static func beginWith(_ modifiers: [HeroModifier]) -> HeroModifier
-
Undocumented
Declaration
Swift
public static func beginWith(modifiers: [HeroModifier]) -> HeroModifier
-
Undocumented
Declaration
Swift
public static func beginWith(_ modifiers: HeroModifier...) -> HeroModifier
-
Use global coordinate space.
When using global coordinate space. The view become a independent view that is not a subview of any view. It won’t move when its parent view moves, and won’t be affected by parent view’s attributes.
When a view is matched, this is automatically enabled. The
source
modifier will also enable this.Global coordinate space is default for all views prior to version 0.1.3
Declaration
Swift
public static var useGlobalCoordinateSpace: HeroModifier
-
ignore all heroModifiers attributes for a view’s direct subviews.
Declaration
Swift
public static var ignoreSubviewModifiers: HeroModifier
-
ignore all heroModifiers attributes for a view’s subviews.
- recursive: if false, will only ignore direct subviews’ modifiers. default false.
Declaration
Swift
public static func ignoreSubviewModifiers(recursive: Bool = false) -> HeroModifier
-
Will create snapshot optimized for different view type. For custom views or views with masking, useOptimizedSnapshot might create snapshots that appear differently than the actual view. In that case, use .useNormalSnapshot or .useSlowRenderSnapshot to disable the optimization.
This modifier actually does nothing by itself since .useOptimizedSnapshot is the default.
Declaration
Swift
public static var useOptimizedSnapshot: HeroModifier
-
Create snapshot using snapshotView(afterScreenUpdates:).
Declaration
Swift
public static var useNormalSnapshot: HeroModifier
-
Create snapshot using layer.render(in: currentContext). This is slower than .useNormalSnapshot but gives more accurate snapshot for some views (eg. UIStackView).
Declaration
Swift
public static var useLayerRenderSnapshot: HeroModifier
-
Force Hero to not create any snapshot when animating this view. This will mess up the view hierarchy, therefore, view controllers have to rebuild its view structure after the transition finishes.
Declaration
Swift
public static var useNoSnapshot: HeroModifier
-
Force the view to animate.
By default, Hero will not animate if the view is outside the screen bounds or if there is no animatable hero modifier, unless this modifier is used.
Declaration
Swift
public static var forceAnimate: HeroModifier
-
Force Hero use scale based size animation. This will convert all .size modifier into .scale modifier. This is to help Hero animate layers that doesn’t support bounds animation. Also gives better performance.
Declaration
Swift
public static var useScaleBasedSizeChange: HeroModifier
-
Undocumented
Declaration
Swift
public static func from(node: ExprNode) -> HeroModifier?
-
Fade the view during transition
Declaration
Swift
public static var fade: HeroModifier
-
Force don’t fade view during transition
Declaration
Swift
public static var forceNonFade: HeroModifier
-
Set the position for the view to animate from/to.
- position: position for the view to animate from/to
Declaration
Swift
public static func position(_ position: CGPoint) -> HeroModifier
-
Set the size for the view to animate from/to.
- size: size for the view to animate from/to
Declaration
Swift
public static func size(_ size: CGSize) -> HeroModifier
-
Set the transform for the view to animate from/to. Will override previous perspective, scale, translate, & rotate modifiers
- t: the CATransform3D object
Declaration
Swift
public static func transform(_ t: CATransform3D) -> HeroModifier
-
Set the perspective on the transform. use in combination with the rotate modifier.
- perspective: set the camera distance of the transform
Declaration
Swift
public static func perspective(_ perspective: CGFloat) -> HeroModifier
-
Scale 3d
- x: scale factor on x axis, default 1
- y: scale factor on y axis, default 1
- z: scale factor on z axis, default 1
Declaration
Swift
public static func scale(x: CGFloat = 1, y: CGFloat = 1, z: CGFloat = 1) -> HeroModifier
-
Scale in x & y axis
- xy: scale factor in both x & y axis
Declaration
Swift
public static func scale(_ xy: CGFloat) -> HeroModifier
-
Translate 3d
- x: translation distance on x axis in display pixel, default 0
- y: translation distance on y axis in display pixel, default 0
- z: translation distance on z axis in display pixel, default 0
Declaration
Swift
public static func translate(x: CGFloat = 0, y: CGFloat = 0, z: CGFloat = 0) -> HeroModifier
-
Undocumented
Declaration
Swift
public static func translate(_ point: CGPoint, z: CGFloat = 0) -> HeroModifier
-
Rotate 3d
- x: rotation on x axis in radian, default 0
- y: rotation on y axis in radian, default 0
- z: rotation on z axis in radian, default 0
Declaration
Swift
public static func rotate(x: CGFloat = 0, y: CGFloat = 0, z: CGFloat = 0) -> HeroModifier
-
Undocumented
Declaration
Swift
public static func rotate(_ point: CGPoint, z: CGFloat = 0) -> HeroModifier
-
Rotate 2d
- z: rotation in radian
Declaration
Swift
public static func rotate(_ z: CGFloat) -> HeroModifier
-
Set the backgroundColor for the view to animate from/to.
- backgroundColor: backgroundColor for the view to animate from/to
Declaration
Swift
public static func backgroundColor(_ backgroundColor: UIColor) -> HeroModifier
-
Set the borderColor for the view to animate from/to.
- borderColor: borderColor for the view to animate from/to
Declaration
Swift
public static func borderColor(_ borderColor: UIColor) -> HeroModifier
-
Set the shadowColor for the view to animate from/to.
- shadowColor: shadowColor for the view to animate from/to
Declaration
Swift
public static func shadowColor(_ shadowColor: UIColor) -> HeroModifier
-
Create an overlay on the animating view.
- color: color of the overlay
- opacity: opacity of the overlay
Declaration
Swift
public static func overlay(color: UIColor, opacity: CGFloat) -> HeroModifier
-
Set the opacity for the view to animate from/to.
- opacity: opacity for the view to animate from/to
Declaration
Swift
public static func opacity(_ opacity: CGFloat) -> HeroModifier
-
Set the cornerRadius for the view to animate from/to.
- cornerRadius: cornerRadius for the view to animate from/to
Declaration
Swift
public static func cornerRadius(_ cornerRadius: CGFloat) -> HeroModifier
-
Set the zPosition for the view to animate from/to.
- zPosition: zPosition for the view to animate from/to
Declaration
Swift
public static func zPosition(_ zPosition: CGFloat) -> HeroModifier
-
Set the contentsRect for the view to animate from/to.
- contentsRect: contentsRect for the view to animate from/to
Declaration
Swift
public static func contentsRect(_ contentsRect: CGRect) -> HeroModifier
-
Set the contentsScale for the view to animate from/to.
- contentsScale: contentsScale for the view to animate from/to
Declaration
Swift
public static func contentsScale(_ contentsScale: CGFloat) -> HeroModifier
-
Set the borderWidth for the view to animate from/to.
- borderWidth: borderWidth for the view to animate from/to
Declaration
Swift
public static func borderWidth(_ borderWidth: CGFloat) -> HeroModifier
-
Set the shadowOpacity for the view to animate from/to.
- shadowOpacity: shadowOpacity for the view to animate from/to
Declaration
Swift
public static func shadowOpacity(_ shadowOpacity: CGFloat) -> HeroModifier
-
Set the shadowOffset for the view to animate from/to.
- shadowOffset: shadowOffset for the view to animate from/to
Declaration
Swift
public static func shadowOffset(_ shadowOffset: CGSize) -> HeroModifier
-
Set the shadowRadius for the view to animate from/to.
- shadowRadius: shadowRadius for the view to animate from/to
Declaration
Swift
public static func shadowRadius(_ shadowRadius: CGFloat) -> HeroModifier
-
Set the shadowPath for the view to animate from/to.
- shadowPath: shadowPath for the view to animate from/to
Declaration
Swift
public static func shadowPath(_ shadowPath: CGPath) -> HeroModifier
-
Set the masksToBounds for the view to animate from/to.
- masksToBounds: masksToBounds for the view to animate from/to
Declaration
Swift
public static func masksToBounds(_ masksToBounds: Bool) -> HeroModifier
-
Sets the duration of the animation for a given view. If not used, Hero will use determine the duration based on the distance and size changes.
- duration: duration of the animation
Note: a duration of .infinity means matching the duration of the longest animation. same as .durationMatchLongest
Declaration
Swift
public static func duration(_ duration: TimeInterval) -> HeroModifier
-
Sets the duration of the animation for a given view to match the longest animation of the transition.
Declaration
Swift
public static var durationMatchLongest: HeroModifier
-
Sets the delay of the animation for a given view.
- delay: delay of the animation
Declaration
Swift
public static func delay(_ delay: TimeInterval) -> HeroModifier
-
Sets the timing function of the animation for a given view. If not used, Hero will use determine the timing function based on whether or not the view is entering or exiting the screen.
- timingFunction: timing function of the animation
Declaration
Swift
public static func timingFunction(_ timingFunction: CAMediaTimingFunction) -> HeroModifier
-
(iOS 9+) Use spring animation with custom stiffness & damping. The duration will be automatically calculated. Will be ignored if arc, timingFunction, or duration is set.
- stiffness: stiffness of the spring
- damping: damping of the spring
Declaration
Swift
@available(iOS 9, *) public static func spring(stiffness: CGFloat, damping: CGFloat) -> HeroModifier
-
Transition from/to the state of the view with matching heroID Will also force the view to use global coordinate space.
The following layer properties will be animated from the given view.
position bounds.size cornerRadius transform shadowColor shadowOpacity shadowOffset shadowRadius shadowPath
Note that the following properties won’t be taken from the source view.
backgroundColor borderWidth borderColor
- heroID: the source view’s heroId.
Declaration
Swift
public static func source(heroID: String) -> HeroModifier
-
Works in combination with position modifier to apply a natural curve when moving to the destination.
Declaration
Swift
public static var arc: HeroModifier
-
Works in combination with position modifier to apply a natural curve when moving to the destination.
- intensity: a value of 1 represent a downward natural curve ╰. a value of -1 represent a upward curve ╮. default is 1.
Declaration
Swift
public static func arc(intensity: CGFloat = 1) -> HeroModifier
-
Cascade applys increasing delay modifiers to subviews
Declaration
Swift
public static var cascade: HeroModifier
-
Cascade applys increasing delay modifiers to subviews
- delta: delay in between each animation
- direction: cascade direction
- delayMatchedViews: whether or not to delay matched subviews until all cascading animation have started
Declaration
Swift
public static func cascade(delta: TimeInterval = 0.02, direction: CascadeDirection = .topToBottom, delayMatchedViews: Bool = false) -> HeroModifier
-
Apply modifiers only if the condition return true.
Declaration
Swift
public static func when(_ condition: @escaping (HeroConditionalContext) -> Bool, _ modifiers: [HeroModifier]) -> HeroModifier
-
Undocumented
Declaration
Swift
public static func when(_ condition: @escaping (HeroConditionalContext) -> Bool, _ modifiers: HeroModifier...) -> HeroModifier
-
Undocumented
Declaration
Swift
public static func whenMatched(_ modifiers: HeroModifier...) -> HeroModifier
-
Undocumented
Declaration
Swift
public static func whenPresenting(_ modifiers: HeroModifier...) -> HeroModifier
-
Undocumented
Declaration
Swift
public static func whenDismissing(_ modifiers: HeroModifier...) -> HeroModifier
-
Undocumented
Declaration
Swift
public static func whenAppearing(_ modifiers: HeroModifier...) -> HeroModifier
-
Undocumented
Declaration
Swift
public static func whenDisappearing(_ modifiers: HeroModifier...) -> HeroModifier


Use CloudShow to power a menu board at your restaurant, a promo screen in reception, an analytics dashboard for production, or anything else you can think of.
Download the client for your device, pair your device with CloudShow, and you're up-and-running within minutes!
CloudShow supports all the major social platforms, like Twitter, Instagram, Yelp, and more.
You can also upload PowerPoint slideshows, videos, PDFs, audio files, images, and much more to show on your digital signs.
With over 60 apps available today and more being added every month you have the power to display anything you need.
Use the default simple schedule to show one layout all the time, or use detailed schedules to show different layouts at different times of the day, or different days of the week
Create as many layouts as you need and schedule everything exactly how you want it.
Use templates to simplify your device management. Create a template and use it on multiple devices with one-click.
Update your template and all assigned devices will receive the new content in realtime for easy management.
Extend your sign's layout with widgets.
Widgets can overlay extra information on your sign, like the time, date, weather, and more. You can even add background music and audio to almost any app.
Manage your devices from anywhere in the world.
Need to update a sign while you're travelling? No problem, it's just a few clicks away. View your device map to get a quick overview of the status and location of all your devices.
Update your device's configuration and your digital sign is updated automatically. There's nothing to update or install each time, it just works like magic.
Change a layout or schedule, add an app, re-arrange the images in your slideshow and watch as your digital sign is updated in realtime right next to you or on the other side of the world.
Try CloudShow today, it's completely free for one device!
Need more devices?
60-day Enterprise free trial


UD for Zaar
Tokenization and Word Segmentation
Since the dependencies presented in the Universal Dependencies framework are based on a lexical approach of syntax, the first step of the processing chain is to decide how to tokenize the language. The idea is, by breaking down the sentence into tokens, to extract the syntactic information related to words in the discourse chain.
- The Zaar treebank is an extension of an oral corpus (https://cortypo.huma-num.fr/index.html) interlinearized and glossed on a morphological basis.
- Tokenization had to take into account the fact that syntactic information in Zaar can be spread in different ways in words, affixes and clitics. It has been decided to keep as tokens only words (with and without affixes) and clitics while the syntactic information contained in affixes is annotated by morphological features of the affixed words. Clitics are PRON conveying syntactic functions such as complement and modifier. They are preceded by an “=” sign in the transcription.
- As we are dealing with oral data, we have chosen the illocutionary unit as the basic transcription unit. Punctuation tokens (e.g. <, >, //, etc.) organise the illocutionary unit into: pre-nucleus < nucleus > post-nucleus //
Morphology
This is an overview only. For more detailed discussion and examples, see the list of Zaar POS tags and Zaar features.
Tags
- The language specific tagset is the original annotation made from the extended version of the Leipzig Glossing Rules. (Available at here)
- The UD tagset is based on a conversion from the previous annotation to UPOS.
- Zaar uses 16 of the universal tags (with the exception of
SYM
, which is not relevant for oral data) - As in other African languages (e.g. Hausa, Wolof), the verbal inflections in Zaar are gathered in a single
AUX
that precedes theVERB
, and expresses various combinations ofTense
(4 values),Aspect
(7 values) andMood
(4 values). This relatively small treebank already shows 23 combinations, resulting in 23 different AUX. The following auxiliaries are recognized in Zaar:- àː for perfect (aspect)
- á for aorist (aspect)
- àːnáː for recent past perfect (tense + aspect)
- àːtá for remote past perfect (tense + aspect)
- àːyi for perfect iterative aspect
- àːyí for immediate past perfect (tense + aspect)
- àːyiká for perfect progressive aspect
- ánáː for recent past tense
- ánáːyáː for recent past imperfect (tense + aspect)
- ánáːyi for recent past iterative (tense + aspect)
- átâ for remote past tense
- átâyáː for remote past imperfect (tense + aspect)
- átâyi for remote past iterative (tense + aspect)
- átáyiká for remote past progressive (tense + aspect)
- áyǎː for immediate past imperfect (tense + aspect)
- áyí for immediate past tense
- á̙yyiká for immediate past progressive (tense + aspect)
- ʧáː imperfect (aspect)
- ʧáːnaː for concomitant (aspect)
- ʧáːyi for imperfect iterative (aspect)
- ʧáyiká for imperfect progressive (aspect)
- tə̀ for subjunctive (mood)
- ʧiká for progressive (aspect)
- ʧínaː for recent past irrealis (tense + mood)
- ʧíta for remote past irrealis (tense + mood)
- wò for future (tense)
- wòyi for future iterative (tense + aspect)
- wòyiká for future continuous (tense + aspect)
- yáː for conditional (mood)
- yí for irrealis (mood)
- yiː for iterative (aspect)
Features
- The Zaar treebank uses 34 universal features
- 8 language specific values associated with the Zaar
AUX
have been added to the scheme:- 3 for the
Tense
feature (Imm
= Immediate Past ;Rec
= Recent Past ;Rem
= Remote Past;), - 3 for the
Aspect
feature (Aor
= Aorist ;Conc
= Concomitant ;ImpIter
= Iterative Imperfect) - 2 other
Aspect
features, used independently of theAUX
upos, were added:- Inchoative (
Aspect=Inch
) - Resultative (
Aspect=Res
)
- Inchoative (
- 3 for the
Syntax
- The dependency analysis is a conversion of the manual annotation to SUD format. For more information, see SUD guidelines.
- Zaar is mostly a SVO language. The only exception is found in the progressive Aspect, where the direct object of precedes the nominalized verb (a Vnoun).
- Zaar is a prodrop language with a strong proportion of dislocated subjects and complements. In addition to a possible independent lexical or pronominal subject (tagged
nsubj
), theAUX
contains agreement features forPerson
andNumber
. - We have direct object with
obj
, indirect object withiobj
.
Treebanks
There is 1 Zaar UD treebank:


{% extends "templates.jinja/base.page-with-navbar.html" %} {% block title %} Hesperian - Pregnancy & Birth{% endblock %} {% block id %}How_to_change_babys_position{% endblock %} {% block content %}
During the last month of pregnancy, it may be possible for a pregnant woman to change the baby's position by lying in this position for 10 minutes, 2 times a day:
Lie on the floor with pillows under the hips. Try to get the hips higher than the head. Do this every day with an empty stomach, until the baby changes to a head-down position. Then stop.
{% endblock %} {% block footer %} {% endblock %}


| Date | Result | Player A | Player B | Player C | Player D | Score | |
|---|---|---|---|---|---|---|---|
| {{game.gameDate | date:'medium'}} | {{game.win ? "Win" : "Loss"}} | {{game.playerA.name}} | {{game.playerB.name}} | VS | {{game.playerC.name}} | {{game.playerD.name}} | ({{game.teamABScore}}-{{game.teamCDScore}}) |


| Sets the graphics mode for the screen. |
| width = width of screen in pixels (640, 800, etc) height = height of screen in pixels (480, 600, etc) color depth = depth in bits (16, 24, or 32 bit - use 16 if possible!) mode = Video mode (see description); Optional |
Command Description:
| This command sets Blitz into 'graphics' mode with the specified width, height, and color depth (in bits). This command must be executed before any graphic related commands can be used. Color depth is OPTIONAL and should be left blank if possible - Blitz will determine the best color mode automatically for the user's video card. Valid graphic width and height varies GREATLY from card to card so to be sure your users can display the mode you wish, use the GfxModeExists command to be sure before you try and set the mode yourself. Common resolutions that are probably safe are 640x480 and 800x600. Try to avoid odd screen modes like 640x400 as MANY MANY cards cannot display them. Chances are if you can set your Windows screen resolution to a particular resolution, then Blitz will behave in that resolution also. Remember, each step higher in resolution and color depth mark a large jump in system requirements and may be inversely proportionate to system performance. If you use the lowest resolution and depth possible to meet your desired game parameters, it will allow more people with lesser systems than your own still play and enjoy your game. This is why many games still support a 640x480 mode :) An extra parameter is used at the end of the command after the color depth. Here are the parameters: 0 : auto - windowed in debug, fullscreen in non-debug (this is the default) 1 : fullscreen mode 2 : windowed mode 3 : scaled window mode |
Example:
| ;GRAPHICS Example ; Set The Graphic Mode Graphics 800,600 ; Now print something on the graphic screen Text 0,0, "This is some text printed on the graphic screen (and a white box)! Press ESC ..." ; Now for a box Rect 100,100,200,200,1 While Not KeyHit(1) Wend |


Freshman
Sophomore
Junior
Senior
Fall
Spring
Fall
Spring
Fall
Spring
Fall
Spring
{{message}}
Political Economy
Economics
Economics/Mathematics
Psychology
Biology
International Relations
Thematic Option Honors Program
University General Education Program
Built with care by Anshu Siripurapu, Alven Wang, and Chris Wilson in Los Angeles, California.
Star
Fork
Issue
Follow @anshusiripurapu
Follow @alvenw


Gibdo is a starting point for creating HTML5 Canvas games in a top-down 2D style. It is written in CoffeeScript and provides the following features,
- A scrolling view window that tracks the player across the game world.
- View limit detection to allow the player to move off the centre of the screen as edges are reached.
- Collision detection.
- Keyboard input.
- Sprite animation.
You can read through the fully annotated source or fork it on github.
Controls: Arrow keys to move.


Buffalo Plains [av57], plain, in Imperia, peasants: 113
Last updated Turn #108_bad
Buffalo Plains [av57], plain, in Imperia, peasants: 113
------------------------------------------------------------------------
18: Pack of wolves [gv2b], wolves, number: 5, went west.
24: Stack of nazgul [cn9b], nazgul, number: 2, arrived from the east.
26: Stack of nazgul [cn9b], nazgul, number: 2, went west.
30: The population grows by one peasant.
Routes leaving Buffalo Plains:
North, plain, to Buffalo Plains [au57], 7 days
East, plain, to Buffalo Plains [av58], 7 days
South, to Ocean [aw57], The Inner Sea, 2 days
West, plain, to Buffalo Plains [av56], 7 days
Inner locations:
Rocky hill [ae4e], rocky hill, 1 day
Grassy field [ae4f], pasture, 1 day, owner:
Giant lizard [cd7l], giant lizards, number: 23
Seen here:
Stack of nazgul [fq5t], nazgul, number: 5


--- layout: default_page --- {% if page.path == "README.md" %} {% elsif page.path contains "2020" %}
« 25 Days of Ruby Gems - Ruby Advent Calendar 2020, December 1st - December 25th
{% elsif page.path contains "football" %}« Ruby Football Week 2021, June 11th to June 17th - 7 Days of Ruby (Sports) Gems
{% elsif page.path contains "pixel" %}« Ruby Pixel Art Week 2021, April 19th to April 25th - 7 Days of Ruby (Graphics) Gems
{% elsif page.path contains "opendata" %}« Ruby Open Data Week 2021, March 6th to March 12th - 7 Days of Ruby (Open Data) Gems
{% elsif page.path contains "blockchain" %}« Ruby Blockchain Week 2021, January 3rd to January 9th - 7 Days of Ruby (Crypto) Gems
{% elsif page.path contains "glimmer" %}« Ruby Glimmer Days 2021, January 26th to January 29th - 4 Days of Ruby (Desktop) Gems
{% elsif page.path contains "week" %} {% else %} {% endif %} {{ content }} {% if page.path == "README.md" %} {% elsif page.path contains "football" %}Join us over on the r/PlanetRuby channel. Official home of the Best of Ruby Gems Series discussions. Thanks!
{% else %} {% endif %} {% include footer.html %}


public class EqtTextWatcher
extends java.lang.Object
implements android.text.TextWatcher
newText
for
all possible actions that the user can perform.| Modifier and Type | Field and Description |
|---|---|
private java.lang.String |
eqt
full equation
|
private boolean |
errOccurred
recording whether error has occurred during equation display transformation.
|
private MainActivity |
mainActivity
main application instance
|
private boolean |
modified
indicate whether it starts modifying the equation.
|
private java.lang.String |
newText
|
private java.lang.String |
oldText
equation before modification
|
static java.lang.String |
OP_DEL
operation that the user tries to delete a symbol before the cursor
Synopsis
delete
|
static java.lang.String |
OP_INS
operation that the user tries to insert a symbol after the cursor
Synopsis
insert <symbol>
|
static java.lang.String |
OP_LEFT
operation that the user tries to move the cursor to the left
Synopsis
left
|
static java.lang.String |
OP_RIGHT
operation that the user tries to move the cursor to the right
Synopsis
right
|
static java.lang.String |
OP_SET
operation that the user tries to erase the entire equation
Synopsis
set <new equation>
|
private int[] |
window
a 2-element tuple recording the view range in the
equation . |
| Constructor and Description |
|---|
EqtTextWatcher(MainActivity mainActivity)
create a new equation text watcher
|
| Modifier and Type | Method and Description |
|---|---|
void |
afterTextChanged(android.text.Editable newText)
executed after the
equation transformation process is done. |
void |
beforeTextChanged(java.lang.CharSequence oldText,
int start,
int beforeLen,
int afterLen)
executed before the
equation is replaced with new text |
java.lang.String |
getEqt()
get the full equation
|
boolean |
isOpDel()
check if the user has just tried to delete the symbol before the cursor
|
boolean |
isOpIns()
check if the user has just tried to insert a new symbol after the cursor
|
boolean |
isOpLeft()
check if the user has just tried to move the cusor to the left.
|
boolean |
isOpRight()
check if the user has just tried to move the cusor to the right.
|
boolean |
isOpSet()
check if the user has just tried to erase the entire equation.
|
void |
onTextChanged(java.lang.CharSequence newText,
int start,
int beforeLen,
int afterLen)
executed when the
equation is replaced with new text. |
private void |
probeWindowEnd()
probe the
ending index of the window so that the window will
maintain showing the equation in device's screen width |
private void |
probeWindowStart()
probe the
starting index of the window so that the window will
maintain showing the equation in device's screen width |
void |
reset()
reset this watcher to default settings
|
private MainActivity mainActivity
private java.lang.String oldText
private java.lang.String newText
private java.lang.String eqt
private int[] window
private boolean errOccurred
private boolean modified
afterTextChanged(Editable)
.public static final java.lang.String OP_INS
public static final java.lang.String OP_DEL
public static final java.lang.String OP_LEFT
public static final java.lang.String OP_RIGHT
public static final java.lang.String OP_SET
public EqtTextWatcher(MainActivity mainActivity)
mainActivity
- main application instancepublic void reset()
public boolean isOpIns()
OP_INS
public boolean isOpDel()
OP_DEL
public boolean isOpLeft()
OP_LEFT
public boolean isOpRight()
OP_RIGHT
public boolean isOpSet()
OP_SET
public java.lang.String getEqt()
private void probeWindowStart()
starting index of the window
so that the window will
maintain showing the equation in device's screen widthprivate void probeWindowEnd()
ending index of the window
so that the window will
maintain showing the equation in device's screen widthpublic void beforeTextChanged(java.lang.CharSequence oldText, int start, int beforeLen, int afterLen)
equation
is replaced with new textbeforeTextChanged
in interface android.text.TextWatcher
oldText
- old equation textstart
- unusedbeforeLen
- unusedafterLen
- unusedpublic void onTextChanged(java.lang.CharSequence newText, int start, int beforeLen, int afterLen)
equation
is replaced with new text. Note that the
first argument newText
will be packed as the user's command.
See newText
for more details.
This function is responsible for interpreting which command the user tries to
perform and transforming the equation
accordingly. At last, it will
update the window
's position.
onTextChanged
in interface android.text.TextWatcher
newText
- new equation textstart
- unusedbeforeLen
- unusedafterLen
- unusedpublic void afterTextChanged(android.text.Editable newText)
equation transformation process
is done. This function is responsible for rendering the "relative" equation to the
equation display
.afterTextChanged
in interface android.text.TextWatcher
newText
- used for replacing with "relative" equation


Contact Information
- Instructor: Michael Levet (He/Him/His)
- Contact: firstname (dot) lastname (at) colorado (dot) edu
- Office Hours: (Zoom)
- Tuesday 6/1 4:30-6:30 PM
- Week of 6/7 onwards: Monday and Tuesday 3-4 PM, and By Appointment
- 7/12: Cancelled.
- Graduate Teaching Assistants:
- Ethan Hobbs: Office Hours on Wednesdays, 2-4 PM (Zoom)
- Vimal Kakarapathi: Office Hours on Tuesdays and Thursdays, 2:00-4:00 PM (Zoom)
- Sagi Shaier: Office Hours Wednesdays and Fridays 8:00-9:00 AM (Zoom)
- Undergraduate Course Assistants:
- Helen Kim: Mondays 1-2 PM, Tuesdays 8-9 AM and 4-6 PM, Thursdays 3-5, and Fridays 4-5 PM (Zoom)
- Office Hours Cancelled for Monday 6/14.
- Seok Jun Song: Mondays 5-7 PM, Tuesdays 5-7 PM, and Saturdays 10 AM-1 PM (Zoom)
- Seok's first day of office hours will be on Saturday 6/5.
- Seok's office hours on Monday 6/14 will be cancelled. He will instead hold office hours on Wednesday 6/16 from 5-7 PM.
- Syllabus
- Lectures:
- Section 400: MTW 9:25-10:45 (ECCS 1B28)
- Section 401: MTW 9:25-10:45 (Zoom)
- Section 410: MTW 11:20-12:40 (ECES 1B28)
- Section 411: MTW 11:20-12:40 (Zoom)
- Recitations:
- Section 403 (Vimal): Thursday 9:25-10:45 (Zoom)
- Section 405 (Vimal): Friday 9:25-10:45 (Zoom)
- Section 413 (Sagi): Thursday 11:20-12:40 (Zoom)
- Section 415 (Ethan): Friday 11:20-12:40 (Zoom)
- Google Forms: (You must be signed in to your CU Boulder account to access these forms.)
Announcements
- 8/4:
PS14 grades are now posted. The cutoff for a S30 Overall Score >= 3 required getting at least a 2 on all problems, and at least a 3 on two or more of the problems.
- 8/3:
- PS13 grades are now posted to Gradescope. The cutoffs for a S31 Overall Score >= 3 required getting at least a 2 on each of Problems 5-7,
as well as at least a 3 on at least two of Problems 5-7.
- 8/2:
- We are working to get everything graded as quickly as possible. Our goal is to have everything graded by Tuesday evening, but
it may be Wednesday early afternoon until we finish all of our grading.
- Progress reports will be posted once we have all of our grading done, to help you all gauge what you want/need to attempt on the final
requizzing period.
- Solutions for PS12, PS13, and PS14 will be up no later than tomorrow evening.
- The logistics for the final requizzing period are the same as for RQ1 and RQ2. The Final Requizzing Period will be held from 8/4 at 8 AM through 8/6 at 2 PM.
- After we grade the final requizzing period, we will release grades on Gradescope. You all will have roughly a day to check things over. I want to ensure
that the grades I submit to the registrar are accurate. I will follow up with more on these logistics once grades are released.
- The last day of office hours will be tomorrow 8/3.
- If there is anything I can do to support you all between now and the end of the semester, please don't hesitate to reach out!
- 7/29:
- RQ2 grades have all been posted.
- The retake token form will close on Saturday 7/31 at 4 PM.
- PS14 has been extended to Monday 8/2 at 8 PM.
-
All retake token quizzes must be completed by then. You will hear back in time to take your retake token quiz before this deadline.
- 7/27:
- PS12 grades have been posted. Revisions for PS12 are due on 8/1 at 8 PM to the PS12 Revisions assignment on Canvas. Note that you must have made a good-faith effort at PS12 to be eligible for revisions.
- We are working on grading RQ2 and will release grades as we have them. If you wish to use a retake token on Standards 1-13, I strongly encourage you to submit your corrections and reflections sooner than later. That way, if you need to revise your corrections and reflections, you will have time to resubmit them. Once the corrections and reflections Google form closes, new or revised corrections and reflections will not be accepted.
- Solutions for RQ2- Standards 19-25 will be released tomorrow afternoon.
- 7/24: PS11 grades have been posted.
- The cutoffs for getting an S22 Overall Score >= 3 requried getting a 3 on both Problems 2 and 3, or getting a 4 on either Problem 2 or 3 and a 2 on the other. (So scores of (3, 3), (4, 2), or (2, 4)).
- The cutoffs for getting an S23 Overall Score >= 3 requried getting a 3 on both Problems 4 and 5, or getting a 4 on either Problem 4 or 5 and a 2 on the other. (So scores of (3, 3), (4, 2), or (2, 4)).
- 7/21:
- Today was our last day of lecture. My intent is to return lecture time to you all, so that you all can work on problem sets, quizzes, retake tokens, etc.
- This will be our last week for recitation.
- PS10 solutions are posted to Canvas, and PS10 grades are posted to Gradescope. The cutoff for a S19 Overall Score >= 3 was a 3 on both Problems 2 and 3.
- PS11 solutions will be up sometime Friday after 8 PM.
- Solutions for Quizzes 14-18 will be up sometime Saturday evening.
- We are intending to have PS11 and Quiz 14-18 grades posted no later than the end of the day on Sunday (and hopefully sooner).
- 7/19: PS13 is now available and is due on 7/30 at 8 PM. PS14 is also available, and it is due on 8/1 at 8 PM.
- 7/18: Grades for PS9, Quiz 12, and Quiz 13 have been released. The cutoff for a S16 Overall Score >= 3 on PS9 required a score of 3 on both Problems 4 and 5.
- 7/16:
- PS12, covering S26, is now posted. The due date is 7/24 at 8 PM. We will grade S26, and then there will be an opportunity to revise and resubmit the entirety of S26 after receiving initial feedback. You must make an initial and good-faith effort attempt in order to be eligible for revisions. Note that these revisions do not count towards your retake tokens.
- Quizzes over S14-18 open on Monday and close Friday 7/23 at 8 PM. We will work to have grades back by Sunday 7/25 in the evening.
- RQ2 will open on Sunday 7/25 at 10 AM and close on Tuesday 7/27 at 2 PM. The logistics are similar as RQ1.
- RQ2 will cover S14-25.
- As this will be the second attempt at S19-25, we will release solutions for these standards.
- Class on 7/26 and 7/27 will be cancelled.
- Office hours will be cancelled for the duration of RQ2. My office hours will also be cancelled on Tuesday afternoon, so that I can migrate the quizzes to Gradescope. The other TAs and CAs will have their scheduled office hours as usual, starting after 2 PM on Tuesday.
- As a reminder, the quizzes are individual efforts. Collaboration on the quizzes is strictly prohibited.
- There will be quizzes over S19-25 open from Wednesday 7/28-Sunday 8/1. We will work to have grades for these standards out from RQ2 ASAP.
- For Standards 26-31, you will only need to demonstrate proficiency once in order for these standards to count towards your final grade. There will be two attempts: HW and the Final Requizzing Period.
- PS13 covering Standards 26-29 (P vs. NP) and 31 (Hashing) will be released either on Monday or Tuesday 7/19-7/20. It will be due on Friday 7/30. I will keep this problem set intentionally short.
- PS14 covering Standard 30 (Structure and Consequences of P vs. NP) will be released also likely be released on Monday or Tuesday 7/19-7/20. It will be due on Sunday 8/1. PS14 is designed to provide practice with reductions and the simulation technique.
- The Final Requizzing Period will be held from 8/4 at 8 AM through 8/6 at 2 PM. The logistics will be identical to RQ1 and RQ2. The Final Requizzing Period will cover Standards 1-31.
- 7/15:
- PS11 is now posted. It is due on Wednesday 7/21 at 8 PM.
- 7/13:
- PS10 is now posted. It is due on Saturday 7/17 at 8 PM.
- The Retake Token Form is now open. Please see under the Google Forms header. This form will close within 24 hours after grades for RQ2 are released or July 31 at 8 PM, whichever comes first.
- 7/11:
- Solutions for RQ1- S11, S12, and S13 have been posted to Canvas.
- Grades for RQ1- S11 and S13 have been posted to Gradescope.
- I will be cancelling my office hours on 7/12, so that I can work on finalizing grades for RQ1.
- 7/9:
- Quizzes for Standards 11, 12, and 13 open on 7/12. They close 7/16 at 8 PM.
- Solutions for RQ1- S11-13 will be posted no later than Sunday evening. We are working to get these three requizzes graded ASAP.
- PS10 will likely be posted Monday evening. It will be due on Saturday 7/17 at 8 PM.
- 7/5:
- Solutions for Quizzes 6-10 and PS8 are now on Canvas.
- Grades for Quizzes 6, 8, and 9 were posted to Gradescope on 7/3.
- Grades for PS7, PS8, Quiz 7, and Quiz 10 are posted to Gradescope as of today.
-
PS7: The cutoff for a Standard 11 Overall Score >= 3 involved: Problem 2 Score >= 2, Problem 3 Score >= 3, and Problem 4 Score >= 3.
-
PS8: The cutoff for a Standard 12 Overall Score >= 3 involved: Problem 2a Score >= 3, Problem 2b Score >= 2, Problem 2c Score >= 3.
-
PS8: The cutoff for a Standard 13 Overall Score >= 3 involved: Problem 3a Score >= 2, Problem 3b Score >= 3, Problem 3c Score >= 3.
- I have posted progress reports to Gradescope. Next to each standard, there is a number 0, 1, or 2, indicating the number of assignments for which you have received a Standard Overall Score >= 3. You need to earn a Standard Overall Score >= 3 on two assignments in order for that standard to count towards your final grade. Therefore, you do not need to attempt again any standard where you have a 2 on the progress report. Please double check your progress report against your own records.
- 7/2:
- PS9 is now posted. It is due on 7/14.
- Requizzing Period 2 (RQ2) will not be held on 7/22-7/23. The tentative dates will be 7/26-7/27. I reserve the right to push the dates back further. The precise standards covered on RQ2 is TBD. I will communicate more details as we get closer and they come into focus. For now, I didn't want you all to stress about RQ2.
- 6/29:
- Requizzing Period 1 will be next week. The logistics are below.
- Requizzing Period 1 will cover Standards 1-13. There will be one quiz per standard.
- The rules for our weekly quizzes apply for the requizzing period. These are open-book, open-note, and individual efforts. You may not discuss the quizzes with other people; however, you may email me (but not the TAs or CAs) for clarification (with the understanding that you may not get a response in time, and that emailing me counts against the time limit).
- The quizzes will open on Wednesday July 7 at 4 PM. They window to take a requiz will close on Friday July 9 at 2 PM.
- Solutions will be released for Standards 11-13, as this will be the second scheduled attempt at these standards. There will be a third scheduled attempt at these standards on a weekly quiz, which will be scheduled reasonably after you all receive graded feedback and solutions for these standards on the requizzing period.
- As per the syllabus, solutions for Standards 1-10 will not be released.
- All graded work (PS7, PS8, Quizzes 6-10) will be released no later than the end of the day on Wednesday July 8. We will make every effort to return grades as early as possible.
- Class will be cancelled on July 6-7, so that you all can use this time to study. Recitation will be cancelled on July 8-9, so that you all can use this time for the requizzing period if you wish.
- Office hours will be cancelled from Wednesday after 4 PM through Friday at 2 PM.
- Once we return more grades (hopefully over the weekend or early next week), I will work on posting a progress report to Gradescope.
- We will make every effort to have the Requizzing Period 1 quizzes graded by the end of the day on Wednesday, July 14 (and hopefully sooner). Note that the drop deadline is Thursday, July 15.
- In light of the holiday weekend, office hours from July 3-5 will be cancelled.
- 6/24:
- PS5 grades have been posted. The cutoff for a Standard 6 Overall Score >= 3 required a score of 3 on Problems 2, 3, and 4.
- We will have PS6 graded and released this weekend, along with PS6 solutions.
- There will be quizzes over Standards 6-10 next week. Because there are 5 quizzes, we will open them on Monday 6/28, and they will close at 8 PM on Friday 7/2.
- PS8 is now posted. It will be due on 7/2 at 8 PM.
- Quiz 2 grades have been released, and the solutions are now on Canvas.
- 6/22:
- PS4 grades have been posted.
- The cutoff for a Standard 4 Overall Score >= 3 was a majority of scores >= 3 and no scores < 2.
- The cutoff for a Standard 5 Overall Score >= 3 was: score of >= 3 on both problems 5 and 6a, and a score >= 2 on problem 6b.
- 6/21:
- The Zoom recordings and handwritten notes from today have been posted to Canvas.
- PS7 will become available tomorrow at 1 PM. It will be due on Tuesday 6/29 at 8 PM.
- Several folks asked about opportunities to learn more about Ethics in Computing. Prof. Casey Fiesler's INFO 4601/5601 Ethical and Policy Dimensions of Information, Technology, and New Media is a very good (and also very popular) course to take!
- Mechanism Design for Social Good (MD4SG) is another good resource for CS Ethics, though it is not affiliated with CU. Mechanism Design is closely associated with Game Theory. In Game Theory, the goal is to study how agents behave in competitive and cooperative situations. Mechanism Design focuses on how to design incentive structures to ellicit desired behavior or information from the agents. MD4SG applies Mechanism Design techniques with the goal of designing systems that support and catalyze social good.
- The Algorithmic Justice League is an outstanding resource on AI Ethics.
- 6/20:
PS6 is now posted. It is due on Wednesday 6/23 at 8 PM.
- 6/19:
- PS3 Grades have been posted to Gradescope. The cutoff for a Standard 3 Overall Score of 3 was: (i) at least a 3 on problem 4(a)-(b), and (ii) a majority of 3's on problems 2, 3, and 4(c).
- PS3 and PS4 solutions are on Canvas.
- We will have quizzes over S3, S4, and S5 open Wednesday 6/23 and close Friday 6/25 at 8 PM.
- 6/16:
- The Zoom recordings and handwritten notes from today are on Canvas.
- The recitation worksheet for this week is also on Canvas (Modules -> Week 3).
- In case anyone was interested, here are links to the Fenner, Gurjar, and Thierauf paper on the parallel bipartite matching algorithm: the preprint and the subsequent journal version. The proofs in these two versions use different techniques. For reading through a paper, I recommend the following approach:
- Read the Abstract and Introduction first to understand what the result is, why it is important, and a comparison to previous work.
- Next, read the preliminaries to the point where you are comfortable with the key objects and terms. You will likely be referring back to the preliminaries frequently as you read the paper- this is completely normal (I do this all the time)!
- For each subsequent section, read the section to understand what the main results in that section are. Try to understand the key ideas and approaches. Do not read the proofs, especially on a first pass!
- If you are interested in the proofs and technical details after reading through the paper once, then go back through and read through the proofs.
- Research papers take more time to go through than textbooks or lecture notes in classes you have taken.
To be clear, there is no obligation to read through this paper, and you will not be assessed on it.
- 6/15:
- PS4 has been extended. The new due date is tomorrow 6/16 at 8 PM. Note that PS5 is still due on Friday 6/18 at 8 PM.
- The Zoom recordings and handwritten notes from today have been posted.
- The first Requizzing Period was tentatively slated for July 1-2 in the syllabus. In order to allow for more time for practice and feedback, the first Requizzing Period will be held on July 8-9.
- 6/14:
-
PS2 grades have been posted. The cutoff for a Standard 2 Overall Score of 3 required meeting the following conditions:
- Your Problem 2b score was >= 3.
- You scored at least a 2 on all of Problems 2a, 3, 4, and 5.
- On Problems 2a, 3, 4, and 5, you scored either: three 3's, or two 4's and two 2's.
- The Zoom recordings and handwritten lecture notes from today are on Canvas. See Modules -> Week 3.
- PS5 is now available. It is due on Friday 6/18 at 8 PM. For Problem 4, I highly recommend reading over the statements of Theorems 50 and 51 in Section 4.1 of the typed lecture notes. You should not need the proofs themselves, but the theorem statements may be useful.
- 6/13:
- Solutions for PS1 and PS2 are now available.
- Quiz 1 over Standard 1 and Quiz 2 over Standard 2 will become available on Wednesday 6/16 at 8 AM. You will have 45 minutes per quiz, and you may take the quiz anytime before Friday 6/18 at 8 PM. I would advise starting before Friday 6/18 at 7:15 PM, as Canvas may lock you out at 8 PM sharp.
- 6/9:
- The Zoom recordings and handwritten notes from today are posted to Canvas (Modules -> Week 2).
- PS4 is posted. It is due on Tuesday 6/15 at 8 PM.
- The recitation worksheet for this week is also on Canvas (Modules -> Week 2). The goal of recitation is to gently introduce concepts related to trees; and in particular, minimum-weight spanning trees. We will build on these concepts more next week.
- 6/8:
- PS1 grades are released on Gradescope.
- If you would like, you may revise and resubmit either Problem 3 or Problem 4 from PS1, subject to a few conditions.

- You must still sign the honor code.
- If you submit revisions for both Problems 3 and 4, we will by default grade Problem 3 and ignore Problem 4.
- Let x \in {3, 4}.  In this case, the Standard 1 Overall score will be updated as necessary.
- To clarify, you may redo the given problem. This is different than submitting a regrade request.
- Revisions are due by Saturday 6/12 at 8 PM to Canvas. See the PS1 Revisions assignment on Canvas.
- If it is helpful in deciding which problem to revise, the cutoff for a Standard 1 Overall Score of 3 was the following:
- Problem 2: Score >= 2, and
- Problem 3: Score >= 3, and
- Problem 4: Score >= 3.
- Regardless as to whether revising will change the outcome of your Standard 1 Overall Score, it is a good opportunity to get a second round of feedback, as well as to iron out any issues before the Standard 1 Quiz (which will likely be sometime next week depending on when the PS1 Revisions are graded).
- The Zoom links and handwritten notes today are posted to Canvase (Modules -> Week 2).
- We finished covering Section 3.1 Exchange Arguments, and we got up to Theorem 40 in Section 3.2 Interval Scheduling today. We will cover Theorem 40 and its proof tomorrow.
6/7:
- Problem Set 3 (Covering Dijkstra's Algorithm) is available starting at 1 PM. It is due on Friday 6/11 at 8:00 PM.
- The handwritten notes and Zoom recordings are now posted to Canvas (Modules -> Week 2). OIT mentioned that they had issues with their technology freezing about 20 minutes into the 9:25 AM lecture. It may be possible that the videos from the Lecture Videos tab on Canvas may have issues today. So the Zoom links under modules may be better to view.
- I have updated the Engagement Standard (Progress) assignment on Gradescope to only display the Recitation 1 grades. You should be hopefully able to see the feedback. Let me know if this is not the case.
6/2:
- We covered Chapters 2.1-2.3 (DFS, BFS, Shortest Paths on Unweighted Graphs) and started Chapter 2.4 (Dijkstra's Algorithm), covering through 2.4.1. We will cover a second example of Dijkstra's Algorithm (Section 2.4.2), the proof of correctness and complexity analysis (2.5) on Monday.
- Problem Set 2 (covering BFS/DFS) is now available. It is due on Wednesday 6/9 at 8:00 PM.
- The handwritten lecture notes and Zoom recordings from today have been posted to Canvas.
- For recitation this week, there is a recitation worksheet on Canvas (Modules -> Week 1). Please work on this in groups. You are welcome and encouraged to have the typed lecture notes on Canvas open, while you are working the problems.
6/1:
- We covered Chapter 1 (Proof by Induction) through the proof of Proposition 5 in the lecture notes. We will begin with Definition 6
in the typed lecture notes tomorrow. Definition 6 through Proposition 8 on the typed lectures notes correspond to Problem 4 in HW1.
- If you get a chance, please fill out this Day One Survey. This will help me plan for the class.
- The handwritten lecture notes have been posted to Canvas. See Modules -> Week 1.
- I have uploaded the Zoom recordings from today to Canvas (see Modules -> Week 1). Additionally, Classroom Capture should automatically post recordings to Canvas (see the Lecture Videos tabs). I have (hopefully) turned on transcripts for the Zoom recordings.
I have no idea if one recording will be of higher quality than the other; both are there.
5/30:
- Problem Set 1 will become available on 6/1 at 1:00 PM. It is due on Friday 6/4 at 8:00 PM.
- The Syllabus Quiz will become available on 6/1 at 1:00 PM. It is due on Wednesday 6/9 at 8:00 PM.
4/19: CSCI 3104 will be taught with lectures in a hybrid format, where in-person and online sections meeting simultaneously. Recitations will be taught in a remote synchronous format, to facilitate working problems in groups.
- Students enrolled for in-person lectures are welcome to participate virtually if they prefer.
- Due to COVID restrictions, students enrolled for online lecture sections may not attend in person. Similarly, students enrolled for in-person lecture sections may only attend the sections in-person for which they registered (e.g., someone who registered for the 9:25 AM in-person lecture may not attend in-person lecture at 11:20 AM, but is welcome to attend the 11:20 lecture section online.)
- While students are welcome to attend online lectures at the time of their choosing, they must attend recitations for which they are enrolled. Exceptions to this will be made on an individual basis, such as in cases of extenuating circumstances, and must be cleared with the instructor (and not the TAs).
- All assignments and assessments will be done asynchronously and turned in online. Office hours will also be held virtually. Students may complete the entire course remotely.
- Lectures will be recorded via Zoom and posted to Canvas. Handwritten lecture notes will also be posted to Canvas.


You can choose to include a Salt in Shibboleth's javascript. This is just one more layer of security (& complexity). This will include an extra token in the password generator that is unique to this device & browser
FAQ
Want to bypass the clipboard?
If you dont feel comfortable using the clipboard, you can drag the clipboard button out and into any password field.


Characters
New Characters
1. Pick a Hero class
2. Take that class's Starting Items
Info
You cannot trade or sell your Starting Items. If lost or discarded, may be repurchased for the price on the card in town. (No specific location needed.)
3. Choose one starting power.
Warning!
You may never take either of the two starting powers you didn't choose.
4. Draw a Personal Item.
Info
You cannot trade, sell, lose, or discard your Personal Item.
5. Take 1 Side Bag Item from this list:
- Whiskey / Sake
- Bandages
- Dynamite / Bombs
- Tonic
Levels
See XP.
Danger!
Do not post hero upgrade charts. Flying Frogs considers this restricted information.


Victoria Windle is a Fanshawe student. She has brown hair and eyes and she is 155 cm tall. She is the oldest of 3 siblings. Her oldest brother is named Owen and is 14. Her sister is named Zoey and is 3. She graduated from Sacred Heart highschool, Walkerton in 2020. She was born May 24th 2002. She likes to read, draw, paint, play video games and listen to music. Victoria is not good at sports. Victoria is good at baking. She likes to bake bread and pretzels. Victoria is very stressed about midterms but hopes she will do well. She will try her best. Victoria is still learning CSS and therefore did not incorporate it into this project.
Likes
Dislikes