| |
ActiveTcl User Guide
|
|
|
- NAME
- scale - Create and manipulate scale widgets
- SYNOPSIS
- scale pathName ?options?
- STANDARD OPTIONS
- -activebackground,
activeBackground, Foreground
- -background or -bg,
background, Background
- -borderwidth or -bd,
borderWidth, BorderWidth
- -cursor, cursor, Cursor
- -font, font, Font
- -foreground or -fg,
foreground, Foreground
- -highlightbackground,
highlightBackground, HighlightBackground
- -highlightcolor,
highlightColor, HighlightColor
- -highlightthickness,
highlightThickness, HighlightThickness
- -orient, orient, Orient
- -relief, relief, Relief
- -repeatdelay, repeatDelay,
RepeatDelay
- -repeatinterval,
repeatInterval, RepeatInterval
- -takefocus, takeFocus,
TakeFocus
- -troughcolor, troughColor,
Background
- WIDGET-SPECIFIC OPTIONS
- -bigincrement,
bigIncrement, BigIncrement
- -command, command,
Command
- -digits, digits,
Digits
- -from, from, From
- -label, label,
Label
- -length, length,
Length
- -resolution, resolution,
Resolution
- -showvalue, showValue,
ShowValue
- -sliderlength,
sliderLength, SliderLength
- -sliderrelief,
sliderRelief, SliderRelief
- -state, state,
State
- -tickinterval,
tickInterval, TickInterval
- -to, to, To
- -variable, variable,
Variable
- -width, width,
Width
- DESCRIPTION
- WIDGET COMMAND
- pathName
cget option
- pathName
configure ?option? ?value option value
...?
- pathName
coords ?value?
- pathName get
?x y?
- pathName
identify x y
- pathName set
value
- BINDINGS
- KEYWORDS
scale - Create and manipulate scale widgets
scale pathName ?options?
- -activebackground,
activeBackground, Foreground
- -background or -bg,
background, Background
- -borderwidth or -bd,
borderWidth, BorderWidth
- -cursor, cursor,
Cursor
- -font, font, Font
- -foreground or -fg,
foreground, Foreground
- -highlightbackground,
highlightBackground, HighlightBackground
- -highlightcolor,
highlightColor, HighlightColor
- -highlightthickness,
highlightThickness, HighlightThickness
- -orient, orient,
Orient
- -relief, relief,
Relief
- -repeatdelay,
repeatDelay, RepeatDelay
- -repeatinterval,
repeatInterval, RepeatInterval
- -takefocus, takeFocus,
TakeFocus
- -troughcolor,
troughColor, Background
- Command-Line Name: -bigincrement
- Database Name: bigIncrement
- Database Class: BigIncrement
- Some interactions with the scale cause its value to change by
``large'' increments; this option specifies the size of the large
increments. If specified as 0, the large increments default to 1/10
the range of the scale.
- Command-Line Name: -command
- Database Name: command
- Database Class: Command
- Specifies the prefix of a Tcl command to invoke whenever the
scale's value is changed via a widget command. The actual command
consists of this option followed by a space and a real number
indicating the new value of the scale.
- Command-Line Name: -digits
- Database Name: digits
- Database Class: Digits
- An integer specifying how many significant digits should be
retained when converting the value of the scale to a string. If the
number is less than or equal to zero, then the scale picks the
smallest value that guarantees that every possible slider position
prints as a different string.
- Command-Line Name: -from
- Database Name: from
- Database Class: From
- A real value corresponding to the left or top end of the
scale.
- Command-Line Name: -label
- Database Name: label
- Database Class: Label
- A string to display as a label for the scale. For vertical
scales the label is displayed just to the right of the top end of
the scale. For horizontal scales the label is displayed just above
the left end of the scale. If the option is specified as an empty
string, no label is displayed.
- Command-Line Name: -length
- Database Name: length
- Database Class: Length
- Specifies the desired long dimension of the scale in screen
units (i.e. any of the forms acceptable to Tk_GetPixels). For vertical scales
this is the scale's height; for horizontal scales it is the scale's
width.
- Command-Line Name: -resolution
- Database Name: resolution
- Database Class: Resolution
- A real value specifying the resolution for the scale. If this
value is greater than zero then the scale's value will always be
rounded to an even multiple of this value, as will tick marks and
the endpoints of the scale. If the value is less than zero then no
rounding occurs. Defaults to 1 (i.e., the value will be
integral).
- Command-Line Name: -showvalue
- Database Name: showValue
- Database Class: ShowValue
- Specifies a boolean value indicating whether or not the current
value of the scale is to be displayed.
- Command-Line Name: -sliderlength
- Database Name: sliderLength
- Database Class: SliderLength
- Specfies the size of the slider, measured in screen units along
the slider's long dimension. The value may be specified in any of
the forms acceptable to Tk_GetPixels.
- Command-Line Name: -sliderrelief
- Database Name: sliderRelief
- Database Class: SliderRelief
- Specifies the relief to use when drawing the slider, such as
raised or sunken.
- Command-Line Name: -state
- Database Name: state
- Database Class: State
- Specifies one of three states for the scale: normal,
active, or disabled. If the scale is disabled then
the value may not be changed and the scale won't activate. If the
scale is active, the slider is displayed using the color specified
by the activeBackground option.
- Command-Line Name: -tickinterval
- Database Name: tickInterval
- Database Class: TickInterval
- Must be a real value. Determines the spacing between numerical
tick marks displayed below or to the left of the slider. If 0, no
tick marks will be displayed.
- Command-Line Name: -to
- Database Name: to
- Database Class: To
- Specifies a real value corresponding to the right or bottom end
of the scale. This value may be either less than or greater than
the from option.
- Command-Line Name: -variable
- Database Name: variable
- Database Class: Variable
- Specifies the name of a global variable to link to the scale.
Whenever the value of the variable changes, the scale will update
to reflect this value. Whenever the scale is manipulated
interactively, the variable will be modified to reflect the scale's
new value.
- Command-Line Name: -width
- Database Name: width
- Database Class: Width
- Specifies the desired narrow dimension of the trough in screen
units (i.e. any of the forms acceptable to Tk_GetPixels). For vertical scales
this is the trough's width; for horizontal scales this is the
trough's height.
The scale command creates a new window (given by the
pathName argument) and makes it into a scale widget.
Additional options, described above, may be specified on the
command line or in the option database to configure aspects of the
scale such as its colors, orientation, and relief. The scale
command returns its pathName argument. At the time this
command is invoked, there must not exist a window named
pathName, but pathName's parent must exist.
 The trough corresponds to a range of
real values (determined by the from, to, and
resolution options), and the position of the slider selects
a particular real value. The slider's position (and hence the
scale's value) may be adjusted with the mouse or keyboard as
described in the BINDINGS section below. Whenever the scale's value
is changed, a Tcl command is invoked (using the command
option) to notify other interested widgets of the change. In
addition, the value of the scale can be linked to a Tcl variable
(using the variable
option), so that changes in either are reflected in the other.
Three annotations may be displayed in a scale widget: a label
appearing at the top right of the widget (top left for horizontal
scales), a number displayed just to the left of the slider (just
above the slider for horizontal scales), and a collection of
numerical tick marks just to the left of the current value (just
below the trough for horizontal scales). Each of these three
annotations may be enabled or disabled using the configuration
options.
The scale command creates a new Tcl command whose name is
pathName. This command may be used to invoke various
operations on the widget. It has the following general form:
pathName option ?arg arg ...?
Option and the args determine the exact behavior
of the command. The following commands are possible for scale
widgets:
- pathName cget
option
- Returns the current value of the configuration option given by
option. Option may have any of the values accepted by
the scale command.
- pathName configure ?option?
?value option value ...?
- Query or modify the configuration options of the widget. If no
option is specified, returns a list describing all of the
available options for pathName (see Tk_ConfigureInfo for information
on the format of this list). If option is specified with no
value, then the command returns a list describing the one
named option (this list will be identical to the corresponding
sublist of the value returned if no option is specified). If
one or more option-value pairs are specified, then the
command modifies the given widget option(s) to have the given
value(s); in this case the command returns an empty string.
Option may have any of the values accepted by the
scale command.
- pathName coords
?value?
- Returns a list whose elements are the x and y coordinates of
the point along the centerline of the trough that corresponds to
value. If value is omitted then the scale's current
value is used.
- pathName get ?x y?
- If x and y are omitted, returns the current value
of the scale. If x and y are specified, they give
pixel coordinates within the widget; the command returns the scale
value corresponding to the given pixel. Only one of x or
y is used: for horizontal scales y is ignored, and
for vertical scales x is ignored.
- pathName identify x
y
- Returns a string indicating what part of the scale lies under
the coordinates given by x and y. A return value of
slider means that the point is over the slider;
trough1 means that the point is over the portion of the
slider above or to the left of the slider; and trough2 means
that the point is over the portion of the slider below or to the
right of the slider. If the point isn't over one of these elements,
an empty string is returned.
- pathName set value
- This command is invoked to change the current value of the
scale, and hence the position at which the slider is displayed.
Value gives the new value for the scale. The command has no
effect if the scale is disabled.
Tk automatically creates class bindings for scales that give
them the following default behavior. Where the behavior is
different for vertical and horizontal scales, the horizontal
behavior is described in parentheses.
- [1]
- If button 1 is pressed in the trough, the scale's value will be
incremented or decremented by the value of the resolution
option so that the slider moves in the direction of the cursor. If
the button is held down, the action auto-repeats.
- [2]
- If button 1 is pressed over the slider, the slider can be
dragged with the mouse.
- [3]
- If button 1 is pressed in the trough with the Control key down,
the slider moves all the way to the end of its range, in the
direction towards the mouse cursor.
- [4]
- If button 2 is pressed, the scale's value is set to the mouse
position. If the mouse is dragged with button 2 down, the scale's
value changes with the drag.
- [5]
- The Up and Left keys move the slider up (left) by the value of
the resolution option.
- [6]
- The Down and Right keys move the slider down (right) by the
value of the resolution option.
- [7]
- Control-Up and Control-Left move the slider up (left) by the
value of the bigIncrement option.
- [8]
- Control-Down and Control-Right move the slider down (right) by
the value of the bigIncrement option.
- [9]
- Home moves the slider to the top (left) end of its range.
- [10]
- End moves the slider to the bottom (right) end of its
range.
If the scale is disabled using the state option then none
of the above bindings have any effect.
The behavior of scales can be changed by defining new bindings
for individual widgets or by redefining the class bindings.
scale, slider, trough, widget
Copyright © 1990-1994 The Regents of the University of California.
Copyright © 1994-1996 Sun Microsystems, Inc.
Copyright © 1995-1997 Roger E. Critchlow Jr.


|
PLATFORMER_BERRY_NINJA
|
A game object class that is aware of the camera that is following the main player. More...
#include <PlayerCameraAwareObject.hpp>
Public Member Functions | |
| PlayerCameraAwareObject (CameraComponent *player_camera, OnPlayerCollisionAction=NOTHING) | |
| Public constructor for PlayerCameraAwareObject. More... | |
| void | Render (SDL_Renderer *renderer) override |
| Overridden implementation for the Render method. Renders only if the object is in view. More... | |
| void | Update (float delta_time) override |
| Overridden implementation for the Render method. Renders only if the object is in view. More... | |
| void | AddComponent (Component *component) override |
| Overridden implementation for the Render method. Performs additional computations if added components are sprites. More... | |
| SDL_Rect & | BoundingBox () override |
| void | SetDestroyAnimation (SpriteComponent *destroy_animation_sprite) |
| This method is used to set the destroy animation for sprite. More... | |
| void | SetPlayerCollisionSound (std::string collision_sound) |
| This method is used to set the player collision sound. More... | |
| Public Member Functions inherited from GameObject | |
| GameObject () | |
| Default public constructor. More... | |
| virtual void | Init () |
| This method should be called one-time and prior to any other method invocations on this object. More... | |
| virtual void | UpdateFromEvent (SDL_Event &event) |
| This function passes along the user based event to the individual components. More... | |
| virtual void | RemoveComponent (Component *component) |
| virtual void | RemoveComponentType (ComponentType component_type) |
| This method is used to dynamically remove all components of a particular type from the object. More... | |
| virtual void | MarkObjectForDestruction () |
| This method is used to mark this object for destruction. More... | |
| virtual bool | IsDeleted () |
| A getter to get the deletion status of the game object. More... | |
| template<typename T > | |
| T | GetAttachedComponent (ComponentType component_type) |
| A generic function that can get an attached component of a specific type. More... | |
| template<typename T > | |
| std::vector< T > | GetAttachedComponentMultiple (ComponentType component_type) |
| A generic function that can get an attached component of a specific type. More... | |
| ~GameObject () | |
Protected Member Functions | |
| virtual void | PerformCollisionAction () |
Additional Inherited Members | |
| Protected Attributes inherited from GameObject | |
| std::vector< Component * > * | attached_components {} |
| bool | is_deleted {} |
A game object class that is aware of the camera that is following the main player.
This class should be used for most of the game objects since this class renders only the objects that are visible on screen. This class is well-suited for stationary objects in the level.
|
explicit |
Public constructor for PlayerCameraAwareObject.
| player_camera | The camera component attached to the PlayerObject in the game. |
|
overridevirtual |
Overridden implementation for the Render method. Performs additional computations if added components are sprites.
| component | The component that is being added. |
Reimplemented from GameObject.
|
overridevirtual |
Intialise and return the collision boundary of a game object and return the SDL Rect.
Implements BoundingBoxAware.
|
protectedvirtual |
Reimplemented in CheckpointObject.
|
overridevirtual |
Overridden implementation for the Render method. Renders only if the object is in view.
| renderer | The SDL_Renderer that is used to draw on screen. |
Reimplemented from GameObject.
| void PlayerCameraAwareObject::SetDestroyAnimation | ( | SpriteComponent * | destroy_animation_sprite | ) |
This method is used to set the destroy animation for sprite.
| destroy_animation_sprite | The animation that should be played when the object is being destroyed. |
| void PlayerCameraAwareObject::SetPlayerCollisionSound | ( | std::string | collision_sound | ) |
This method is used to set the player collision sound.
| collision_sound | The resource location for the collision sound. |
|
overridevirtual |
Overridden implementation for the Render method. Renders only if the object is in view.
| delta_time | The time passed between 2 consecutive frames. |
Reimplemented from GameObject.


--- layout: post --- {% assign name-with-date = page.path | split: "/" | last | split: "." | first %} {% assign name = name-with-date | split: "-" | slice: 3, name-with-date.size | join: "-" %} {% assign season = name | split: "-" | slice: 1, 1 | first %} {% capture races-season %}races-{{ season }}{% endcapture %} {% assign tier-race = name | split: "-" | slice: 2, 2 | join: "-" %} {% assign race-track = name | split: "-" | slice: -1 , 1 | join: "-" %} {% assign race-data = site.data.races[races-season][tier-race] %} {% assign video-list = race-data.videos %} {% assign track-name = race-track | split: "-" | last %}
The videos are missing.
{% endif %}The result is missing.
{% endif %}The notes are missing.
{% endif %}


The key to raising application performance in a massively parallel system like the K computer is to increase the speed of communication between compute nodes. In the K computer, this inter-node communication is governed by the Message Passing Interface (MPI) communication library and low-level communication. This paper describes the implementation and performance of the MPI communication library, which exploits the new Tofu-interconnect architecture introduced in the K computer to enhance the performance of petascale applications, and low-level communication mechanism, which performs fine-grained control of the Tofu interconnect.
| paper11.pdf (PDF) |
Presented: FUJITSU Scientific & Technical Journal 2012-7 (Vol.48, No.3)
@Article{shida2012:mpi_kcomputer, author = {Naoyuki Shida and Shinji Sumimoto and Atsuya Uno}, title = {{MPI} Library and Low-Level Communication on the {K computer}}, journal = {FUJITSU Scientific \& Technical Journal}, month = {July}, year = {2012}, volume = {48}, number = {3}, pages = {324--330} }


Migrants
You have Selected English
You Are
Student
Teacher
Institute
Service Provider
Manufactur/Retailer/Industriest/MSME
Migrants Worker
Return Overseas Citizen
Womens Entrepreneur
Senior Citizen/Retire


This webapplication is programmed by Joseph Wang, it is planned to upload the source to GitHub. In the mean time, if you are interested in the source code of the application, please send an email.
The following libraries are used to create this application.


A Brief Introduction
I am a 29 year old aspiring software developer who is currently studying at Code Fellows. I have been married for almost 5 years to my amazing wife, Kristin, who is the greatest partner in life I ever could have hoped for. I am a passionate problem solver and love to push myself to learn new things. I believe that we each have the ability to make a difference in the world. By leveraging our understanding of technology we are able to expand the scope of that positive impact.
My Goals
- Support myself and my family with a career that I am passionate about.
- Make a difference in the work. Whether it is through my career, my hobbies, or my community involvement.
- Go beyond just living life. Discover new things to experience and see as much of the world as I can.
My Work History
| Front Office Manager | Hotel Sorrento | Seattle, WA | Aug 2016 - June 2018 |
| Guest Services Manager | Aloft Tallahassee Downtown | Tallahassee, FL | Feb 2014 - Aug 2016 |
| Concierge | Radisson Blu Mall of America | Bloomington, MN | Mar 2013 - Dec 2013 |
My Education
| Code Fellows | NDSU |
|---|---|
| Seattle, WA | Fargo, ND |
| Currently Enrolled | General Studies |
| 2018 | 2009 |
Favorite Books or Book Series
- Kingkiller Chronicles Series by Patrick Rothfuss
- Wheel of Time Series by Robert Jordan & Brandon Sanderson
- Dresden Files Series by Jim Butcher
- Dune by Frank Herbert
- Way of Kings Series by Brandon Sanderson
- Mistborn Series by Brandon Sanderson
- Seventh Son Series by Orson Scott Card
- The Magic Engineer by L.E. Modesitt, Jr.
- Ender's Game by Orson Scott Card
- The Chronicles of Narnia Series by C.S. Lewis
Guessing Game
Let's play a guessing game about me. Click the button below you think you are up for it.


Welcome to my personal collection of reference info for the Dappervolk Pet/Avatar website. It is pretty sparse right now.
If you have any comments or bugs to report, please contact me at MouseyPounds#23596 on DV or at MouseyPounds#0557 on Discord. DMs on either are fine.
This tool summarizes both total points and points available within the time left.


CONCEIVING ADA (director/writer: Lynn Hershman Leeson; screenwriter: Eileen Jones, their conception of Ada's life based on the book "Ada, the Enchantress of Numbers, a Selection From the Letters of Lord Byron's Daughter and Her Description of the First Computer," by Betty A. Toole; cinematographers: Hiro Narita/Bill Zarchy (virtual sets); cast: Tilda Swinton (Ada Byron King), Timothy Leary (Sims), Karen Black (Lady Byron/Mother Coer), Francesca Faridany (Emmy Coer), J.D. Wolfe (Nicholas), John O'Keefe (Charles Babbage), John Perry Barlow (John Crosse), Ellen Sebastian (Emmy's doctor), 1997)
Reviewed by Dennis Schwartz
Lynn Hershman Leeson is the director/writer of an intriguing cyber-fantasy film. In 1980 the U.S. Department of Defense named the Ada programming language in honor of Lord Byron and Mary Wollstonecraft's daughter, the mathematician Ada Byron King, Countess Lovelace (1815-1852), credited as the "first computer programmer" because of her plan for calculating Bernoulli numbers. It is a film that is strong on ideas about artificial life, memory, and immortality; and, in the innovative technology it uses to convey its virtual reality story by using the latest in cutting edge technology, such as digital software photoshop programs. The film was structured around the idea of a double helix to be visualized in every scene and shot by using a DNA image as a model for the actors' placement and camera movement. The actors appeared before nothing but a bluescreen and were photographed with a Digital Betacam and this was then transferred to computer images depicting the same Victorian bed-and-breakfast rooms where Ada Byron King actually resided, the actors and the authentic rooms were then seen together in the live video.
The film is much weaker on its drama than on its technology, as its characters seem to pale a bit besides the computerized images of artificial life that it created. Nevertheless, for computer geeks, this is a definite must see; for others, it should be of considerable interest to the more intellectual-minded who like to see something different for a change in a film, in a film that also has the ability to challenge the usual concepts of what reality is thought to be.
Conceiving Ada tracks the somewhat analogous contemporary life that the American neurotic computer programer, Emmy Coer (Francesca Faridany), has with the 19th century creator of the first computer language program, Ada Byron King (Tilda Swinton), as Emmy dedicates her life to making contact with that problematic genius and rebel against Victorian behavior and her arranged marriage, by becoming what is called an "agent" through the use of a computer program she has created in her position as a genetic memory expert. An "agent" is supposed to be anyone or thing who can retrieve information and can talk directly with someone from the past. The common thread in the woman's lives, is their obsessive genius, their searing curiosity, and an indifference to bringing children into the world and then raising them. Also, part of Emmy's attraction to Ada, is that both of their mothers wanted to stifle their intellectual development, as Karen Black plays the dual role of mother to both of them.
The fascination with Ada by Emmy goes beyond her respect for her work and her stance as a feminist fighting for respect in a male dominated field. They share a common feeling about art and memory, and conduct their lives in a similar free-spirited manner.  Ada has several lovers, as well as a spouse and several children.  She collaborates with Charles Babbage (J.D. Wolfe), who is the inventor of an engine called the "Theory of Miracles."His invention aims at trying to predict the infinite number of possibilities there are in life, such as what are the practical uses derived from conscious dreams. As envisioned by Ada, this information can lead to composing music and creating a poetic language. In a fit of jealousy over her superior intelligence and promiscuous behavior, Babbage changed Ada's notes and the purpose of the engine they were collaborating on. As a result, he received all the credit for the invention and she was later on reduced to living out a painful existence where she got hooked on opium, which a doctor prescribed as treatment for her pain. One of Ada's other lovers is Byron's children tutor, but she develops a more intense and deeper sexual relationship with the devious but likable John Crosse (Barlow), an expert in encryption. Emmy is also exuberant about sex and obsessed about her work, living with a boyfriend, Nicholas (J.D. Wolfe), who pressures her to have his baby and stop being obsessed with the Ada project and start taking care of her health by eating right. He interferes with her work by going into her computer program to try and stop her project.
As an added bonus to the movie, a very tired looking and ashen Timothy Leary (He died in 1996) plays Emmy's guru, Sims, and the surprise about this brilliant and controversial advocate of taking hallucinogenics and well known space explorer's appearance here, is that he is obviously very sick, but appears to be sober and rational in his thoughts. He dispenses advice, warnings about danger having a quality of randomness, and offers wisdom to his young woman acolyte.
By touching up her own DNA, the pregnant Emmy finds out that she can travel to the past and share her space (cyber- and- womb) with Ada. Ada is a broken and disappointed 37-year-old at this time, who is about to die from cancer, feeling that she has lost everything in life and is wondering why she never was what she should have been. Emmy offers to try and save her work and give her the historical recognition she deserves, as she tries to get Ada to divulge the secrets of her work. But Ada doesn't want all her secrets told, saying that every generation has to recreate the world in their own image.
The concept offered in this film, of the possibility to retreat to the past for communication with historical figures and to gather information from stored memory, is an alluring idea and is certainly one that gives this intelligently made film a highbrow premise worth savoring. What weakness' there are to the story, come about from its complications in its storytelling and the didactic way it explains so much of its mathematical theory to an audience that needs this vital information made clear in order to help them make sense out of what is taking place-- but this ruins the entertainment value of the film and curtails its natural flow. As a result, that very riveting performance of a first-class actress, one of the very best, the illuminated Tilda Swinton (Orlando), is overshadowed by the film's inability to be more energetically engaging, though some effort was made to bring more life and passion into the story by showing both Emmy's and Ada's sexual passions unfold. But the story couldn't completely connect with all the characters involved and bring out their side of the story. If the film remained more focused on Ada's story and we understood her work a little bit more, and if we saw why Babbage got credit for the invention not her, it would have been in all probability an even better film. Swinton is that good of a performer to have carried this film further if given more camera time. The film's ingenuous structure and imaginative nature suffered some dents because it misplaced its focus, not staying with the part of the story that was truly unique and inspiring. Yet for those on the lookout for a brainy non-Hollywood film, one that has an original flare to it, this one should prove to be more than satisfactory.
REVIEWED ON 10/28/99 GRADE: B+
Dennis Schwartz: "Ozus' World Movie Reviews"
http://www.sover.net/~ozus
<EMAIL_ADDRESS>© ALL RIGHTS RESERVED DENNIS SCHWARTZ
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


--- layout: post title: "It's not fair to compare Android with Internet Explorer" date: 2011-08-18 comments: false ---


Thank you for participating in our study. After you finish, you can pick up your $5.00 gift card, good for any puchase on BusMall!
Please select the item that you would be most likely to purchase from the 3 images below. To select the item, please click on it. You will need to select your pick of item at least 25 times before finishing. Don't think too long, just click your first choice. Have fun!
Item One
Item Two
Item Three


About Me
There is no intro in here I am from Earth And from the Country of the Phillippines, And studying in the college school of Cvsu-Silang,But I live in Dasma.
I am Studying ComSci in Cvsu-Silang and Creating And Developing System or Website is what I do right now.Like it or not you're living in it – this is the Digital Age. Computer programmes have all but infiltrated every aspect of our lives. Computer scientists theorise, design, develop, and apply the software and hardware for the programmes we use day in day out – sounds pretty important to us.


--- layout: post status: publish published: true title: '"However you feel, you’re right" - Episode 8.39' author: display_name: Corey Fineran login: Corey email<EMAIL_ADDRESS>url: '' author_login: Corey author_email<EMAIL_ADDRESS>wordpress_id: 11970 wordpress_url: http://ivyenvy.com/?p=11970 date: '2016-07-24 23:10:11 +0000' date_gmt: '2016-07-25 04:10:11 +0000' categories: - Podcast tags: [] comments: [] ---
Thanks for downloading the 417th episode of The Ivy Envy Podcast. On this episode, we talk about our tailgate event at the Cubs/Brewers game on Saturday. We also briefly talk about the series win.
With trade rumors involving Aroldis Chapman swirling during the recording of this episode, we start coming to terms that the 2016 Cubs (and beyond?) could have Aroldis Chapman on the roster.


Ahsan Haleem
linkedin.com/in/ahsan-haleem
GitHub
github.com/AhsanHaleem
Technical Skills
Preferred:
Familiar:
Soft Skills
Education
Carleton University
Bachelor of Computer Science
Third-year
September 2015 - Present
Work Experience
Fulfillment Associate
Walmart Canada (Part-time)
June 2018 - September 2018
Front Desk Representative
Envie Student (Part-time)
April 2017 - July 2017
Barista
Simple Cafe (Part-time)
April 2017 - June 2017
Projects
Fizz Buzz
Human to whale language convertor
Rock Paper Sciccor Lizard Spork Game
Resume Design
Certifications
CS50 - Introduction to Computer Science
HavardX and EdX
C language coding challenges
HackerRank
Learn C++
Codecademy
Learn Git and Github
Codecademy


This page should redirect right away to the correct url, once it does, bookmarket it on your mobile phone, then remove the /inject.html? (including the question mark) part to get the bookmarklet to work.
Alternatively, to inject CoffeeConsole, bookmarket this: CoffeeConsole and sync to your phone.


|
Nana - a C++ framework project
The Programmer's Guide |
|
This lesson is indented to get you started programming with Nana.GUI. Let's
read the simple HelloWorld code.
#include <nana/gui/wvl.hpp> #include <nana/gui/widgets/button.hpp> int main() { using namespace nana::gui; form fm; fm.caption(STR("Hello World")); button btn(fm, nana::rectangle(20, 20, 150, 30)); btn.caption(STR("Quit")); btn.make_event<events::click>(API::exit); fm.show(); exec(); } Screenshot Walkthrough Line-by-line #include <nana/gui/wvl.hpp> This line includes the Nana.GUI class definition. #include <nana/gui/widgets/button.hpp> This line includes the Nana.GUI.button class definition. int main() { The main() function is the entry point to the program. Almost always when using Nana.GUI, main() only needs to perform some kind of initialization before passing the control to the Nana.GUI library, which then tells the program about the user's actions via events. using namespace nana::gui; Specify the nominated namespace nana::gui can be used in main function block scope. In this example, these names form, button, events, API and exec are defined in the namespace nana::gui. With this using-directive, we could use these names directly in the main function scope. form fm; This is the first piece of window-system code. A form is creating while the variable fm is defined. The form is a window with title bar and a sizable border frame, it's fundamental that you can put some widgets above it. fm.caption(STR("Hello World")); Set the form to display the text "Hello World" in its title bar. button btn(fm, nana::rectangle(20, 20, 150, 30)); After the form, comes a button we created. In its constructor arg-list, the first argument tells the btn who the parent window is, and the following arguments describe position and size of btn. btn.caption(STR("Quit")); Set the btn to display the text "Quit". btn.make_event<events::click>(API::exit); make_event() is a method that every Nana.GUI widgets provide, you can register an event callback by using it. We want to exit the program while a mouse clicks on the btn. Now, register a callback function on click event. fm.show(); A form widget is never visible when you create it. You must call show() to make it visible. exec(); This is where the main() passes the control to Nana.GUI, and exec() will return when the application exists. In exec(), Nana.GUI processes the message loop and passes every event on to the appropriate widgets. } You should now save and compile the program. Further STR("Hello World") What is STR? STR is a macro that transforms a multi-byte string into wide-byte string if NANA_UNICODE is defined in config.hpp. With STR you can easier switch your program between multi-byte and wide-byte. btn.make_event<events::click>(API::exit); What is nana::gui::API::exit? This is an API provided by Nana.GUI, its prototype is void exit(), if exit() is called, Nana.GUI may destroy all the windows you've created and the exec() will return. Member make_event() has a template argument, the argument can be a function or a functor with const nana::gui::eventinfo& parameter or not. Is it right that invoking exit() in an event callback? It is right that Nana.GUI guarantees a program correct if it accesses an invalid GUI objects handle. Return |


Starting my talk on @shoooesrb at #rubyconf in a few minutes (Salon C)! Come join the fun... I’ve got stickers! 👞👠👟✨
11/16/2017, 8:22:00 AM
Favs: 6
Retweets: 1
link--- layout: tweet ---
Starting my talk on @shoooesrb at #rubyconf in a few minutes (Salon C)! Come join the fun... I’ve got stickers! 👞👠👟✨
11/16/2017, 8:22:00 AM
Favs: 6
Retweets: 1
link


Evening 10 Series 2017 Event 5
| TL 5 |
02 May 17 |
|
10 |
miles |
| Name |
Position |
Road bike |
Actual Time |
Avg. mph |
| |
|
|
|
|
| Luke
Marlow |
1 |
|
00:23:51 |
25.16 |
| Jim
Lowbridge |
2 |
|
00:24:48 |
24.19 |
| Matt
Crabtree |
3 |
|
00:24:58 |
24.03 |
| Lawrence
Cox |
4 |
|
00:25:26 |
23.59 |
| Richard
Mortimer |
5 |
1 |
00:25:45 |
23.30 |
| Bill
Barrie |
6 |
|
00:25:57 |
23.12 |
| Adrian
Killworth |
7 |
|
00:26:08 |
22.96 |
| John
Ellis |
8 |
2 |
00:26:37 |
22.54 |
| Roger
Kockelbergh |
9 |
|
00:26:45 |
22.43 |
| Linda
Hubbard |
10 |
|
00:26:54 |
22.30 |
| Mitchell
James |
11 |
|
00:27:32 |
21.79 |
| Simon
Ward |
12 |
|
00:27:43 |
21.65 |
| Mike
Ives |
13 |
3 |
00:28:49 |
20.82 |
| Matthew
Vallins |
14 |
|
00:29:17 |
20.49 |
| Chris
Lydall |
15 |
|
00:29:24 |
20.41 |
| Stewart
Holland |
16 |
|
00:29:52 |
20.09 |
| John
Welsford |
17 |
|
00:30:38 |
19.59 |
| Jennifer
Clegg |
18 |
|
00:30:54 |
19.42 |
| David
Bayliss |
19 |
4 |
00:31:16 |
19.19 |
| Dom
Switzer |
20 |
5 |
00:31:34 |
19.01 |
|
|
|
|
|


SweetFreeStuff.com
///////////////////////////////////////////
Free Boss The Scent Mens Fragrance Sample
Posted: 22 Aug 2015 11:10 AM PDT
http://feedproxy.google.com/&edburner&utm_medium=email
Free Boss The Scent Men’s Fragrance Sample
The post Free Boss The Scent Men’s Fragrance Sample appeared first on
SweetFreeStuff.com.
///////////////////////////////////////////
Free Clay Sample from American Fine Arts
Posted: 22 Aug 2015 10:21 AM PDT
http://feedproxy.google.com/&edburner&utm_medium=email
Free Clay Sample from American Fine Arts
The post Free Clay Sample from American Fine Arts appeared first on
SweetFreeStuff.com.
///////////////////////////////////////////
Free Crescent Cotton Sticker
Posted: 22 Aug 2015 10:08 AM PDT
http://feedproxy.google.com/&edburner&utm_medium=email
Free Crescent Cotton Sticker
The post Free Crescent Cotton Sticker appeared first on SweetFreeStuff.com.
///////////////////////////////////////////
Free YAK Sticker
Posted: 22 Aug 2015 10:05 AM PDT
http://feedproxy.google.com/&edburner&utm_medium=email
Like, Share, or Retweet and they will send you a FREE YAK sticker in the
mail!
The post Free YAK Sticker appeared first on SweetFreeStuff.com.
///////////////////////////////////////////
FREE Medium Two-Topping Handmade Pan Pizza at Dominos (8/24 @ 3PM ET!)
Posted: 22 Aug 2015 10:00 AM PDT
http://feedproxy.google.com/&edburner&utm_medium=email
*Update: A no hitter has been thrown and this offer goes live Monday,
August 24th at 3pm ET! When a pitcher throws a no-hitter this season, visit
MLB.com/Dominono and enter your mlb.com account. after Each of the first 2
no-hitters, THE FIRST 20,000 MLB.COM USERS TO ENTER THEIR MLB.COM ACCOUNTS
will receive a code valid for Continue reading FREE Medium Two-Topping
Handmade Pan Pizza at Dominos (8/24 @ 3PM ET!)
The post FREE Medium Two-Topping Handmade Pan Pizza at Dominos (8/24 @ 3PM
ET!) appeared first on SweetFreeStuff.com.
///////////////////////////////////////////
Free Fish Hippie Sticker
Posted: 22 Aug 2015 09:55 AM PDT
http://feedproxy.google.com/&edburner&utm_medium=email
Verify through e-mail to receive your free sticker. Free Fish Hippie Sticker
The post Free Fish Hippie Sticker appeared first on SweetFreeStuff.com.
///////////////////////////////////////////
Free Sample of Truvia Natural Sweetener
Posted: 21 Aug 2015 10:00 PM PDT
http://feedproxy.google.com/&edburner&utm_medium=email
The post Free Sample of Truvia Natural Sweetener appeared first on
SweetFreeStuff.com.
///////////////////////////////////////////
Free K-Cup Pod Sample Pack
Posted: 21 Aug 2015 10:00 PM PDT
http://feedproxy.google.com/&edburner&utm_medium=email
Click on the Free K Cup pod sample link. Free K-Cup Pod Sample Pack
The post Free K-Cup Pod Sample Pack appeared first on SweetFreeStuff.com.
///////////////////////////////////////////
Free Subscription to US Weekly
Posted: 21 Aug 2015 10:00 AM PDT
http://feedproxy.google.com/&edburner&utm_medium=email
The post Free Subscription to US Weekly appeared first on
SweetFreeStuff.com.


A comma-separated list of saved session names can be supplied. Registry entries will be generated for all listed sessions.
Copy this text into a file, save it as 'putty.reg', and double-click to install, or use the button below.
Download putty.reg


Task
Question 2:
Create a webpage that uses the data from the Sample Data URL and displays the data as a bar chart that shows the type of
sports based on the number of bronze medals.
Question 2:
Create a webpage that uses the data from the Sample Data URL and displays the data as a bar chart that shows the type of
sports based on the number of bronze medals.


Toggle navigation
Video Call
Chat
Video Chat
Welcome , Love to see you back.
Online user:
Your Id:
Call
Sign Up


The Greatest 100
Miles
by Andy Milroy
Distance running can be a fairly predictable sport; runners set off at an even
pace to finish in a time close to that they have achieved before. Sometimes
however, a runner emerges who is touched by genius, who seeks to break the
mould. Over thirty-five years ago, such a runner produced his greatest
performance, a performance that still is regarded with awe by ultrarunners
across the world, not just for the times achieved, but the sheer audacity of the
run.
On October 25, 1975, at Tipton in England, perhaps the greatest 100mile race
ever staged took place. It was a British Road Runners Club promotion held three
weeks after the London to Brighton Race. All 18 competitors had been very
carefully selected from a far greater number who had wanted to run, and although
only three of these had previously competed in a track “100 miler,” all were
vastly experienced ultrarunners.
The two most experienced entrants were probably Ron Bentley, the then holder of
the 24 hour track record 259.603 km, although until the last moment he was a
doubtful starter because of injury, and New Zealander Siegfried Bauer, who had
averaged 124 km a day in running the 1,600 km from Pretoria to Cape Town and 114
km miles a day on a 2125 km run of the length of New Zealand. Bauer had
also run 6:56:08 at the Unna 100 Km in Germany in early September. But for many,
the most intriguing competitor was Cavin Woodward, who had won the Brighton in
5:12:07, just over a minute outside the course record, and who had also set a
new world best for the 30 mile track event earlier in the year.
Before the race Woodward had looked at Derek Kay’s splits in setting the world
track best for 100 miles (11:56:56), and decided that such even paced running
was not his style. The Woodward method of running a race was to go off as
fast as he could for as long as he could: “No matter what pace you start at, you
will slow eventually, so start at a fast pace which will give you momentum.”
  In front I can speed up when I feel like it, slow down when I come
to a hill, judge the traffic, and do what I want to do.”
However, even he had his doubts about his ability to blast 100 miles from the
front. As he said later, “My one big problem with this race was I did not
know if I could cover the distance. The longest race I had run was the
Brighton; I knew I could run 50 miles, so I decided to go for as fast a time as
possible for 50 miles and then ‘hang on’ as long as I could to see if I could
cover the 100 mile course.” So he devised three schedules. The first
would break the world record of 11:56:56 by 20 minutes; the second would break
it by five minutes; and the third would break John Tarrant’s British record of
12:31.
The first schedule had ten mile [16km] splits of 55, 59, 62, 64, and 65 minutes
for the first 50 miles, giving a 50 mile time of 5:05. Woodward would see how
things went, and if possible try to break the world record of 5:01:01.
Woodward used a carbo loading diet prior to the race. He ate kippers,
grapefruit and so on for three days and then ate normally with potatoes,
sandwiches and the like. During the race he was to use the electrolyte
drink supplied by the organizers, in this case Accolade, the race sponsors.
A dull and misty dawn broke to reveal a scene reminiscent of some medieval
tournament, with brightly coloured tents that would shelter the many handlers
ready to bring aid to the present day warriors who would be fighting out on the
yielding but soft cinder track. The day was never to be warmer than 12
degrees C —not really warm enough for comfortable running.
When the race started, Woodward took off like a marathon runner, a speed that
appeared to surprise the timekeepers and recorders as they sat in their drafty
stand. Even those who were used to his blitz starts had figured he would
treat an event four times the marathon with at least some circumspection.
The first mile was passed in 5:19, five miles[8km] in 27:49, ten miles[16km] in
56:27, 15 miles in 1:25:22, and 20 miles [32km] in 1:54:26. At this point,
Woodward was running at almost ten and one half miles [17.5km] per hour, and his
very fast initial pace had apparently seduced the majority of the field to
respond. Fifteen of the 18 at 20 miles were inside a world record
schedule. (But that is not too unusual in an ultra race of that duration.
Despite their most earnest pre-race pledges, male ultrarunners tend to go off
too fast!)
When Woodward reached 20 miles, he was 26 minutes ahead of the even paced
schedule to break the existing record, and his lead over the field was 16
minutes, with Martin Thompson of Australia in second place in 2:10:37, Derek
Funnell third just over three minutes back, and Tom O’Reilly less than a minute
behind him. They were followed by a group two minutes later consisting of
Siegfried Bauer, Fred Howell, Bill Carr, Alan Richards, and John Berry. Woodward
reached the marathon point in 2:31:22.
By 30 miles [48.2km], Woodward was now two minutes and ten seconds inside his
fastest schedule, so things were looking good. He had a few twinges in his
right calf, and shoe trouble, but nothing major. The 50km mark was passed
in under 3:01 – this is in a race that was scheduled as well over three times
50km!
By 40 miles [64.3km] he was 3:42 inside schedule, so it was set up for the next
ten miles. Laps of 1:36 were planned for the next 20 laps, and 1:33 for the last
20 laps; he covered 80km in under 4:57 and reached 50 miles in 4:58:53 to be the
first man to run faster than ten miles [16km] an hour for 50 miles.
Woodward was relieved to have broken the 50 mile record; it meant that the
effort had been worthwhile. Something had been achieved even if he did not
succeed in breaking the 100 mile world best. He relaxed a little, knowing
that he could take two hours longer to complete the second 50 miles than he had
the first, and still break the world 100 mile mark. He pushed on for three
more miles before he made his first toilet stop. He had been determined
that he would not do that until after 50 miles. Tom O’Reilly was second
through the 50 mile point with 5:32:49, having overtaken Martin Thompson
(5:45:20).
Woodward’s schedule for the next 50 miles was ten mile [16km] splits of 74, 75,
76, 80, and 86 minutes. In the first 6 hours Woodward had run 94.54 km. He took
another stop to check on a blister at 59 miles but decided that it would last
out to the finish.
By 60 miles Woodward was nine minutes inside his fastest schedule, and pushed on
to take the 100 km world best with a time of 6:25:28, taking a massive 34
minutes off the previous best mark which had been set in Germany only the week
before. (The RRC had only just decided to start recognizing metric ultra
distances, and Woodward was not really aware there was a 100km world best. )
Thirty years later such 100km times are still rare; only one runner has bettered
it on the track. Reflecting on his run, 20 years later,Woodward felt that
he could easily have improved on the 6:25, remembering his various stops, but
that might have had long term consequences for his final 100 mile time.).
In second place, Tom O’Reilly had produced the then third best track mark of
alltime of 7:00:18.
By 70 miles [112km] Woodward had fallen back to six minutes inside his fastest
schedule, but still covered 119km in 8 hours. Following a further stop at
78 miles, Woodward was now only two minutes inside schedule. By the time
80 miles [130km] was passed he was paying the price of his earlier speed and
there was a marked drop in his pace.
There was just the chance that Tom O’Reilly, who was gradually reducing the
distance between himself and the leader, would provide an upset that would have
been unthinkable earlier in the day. However, O’Reilly himself was having
problems. He had three bad spells between 65 and 80 miles, and stopped
each time. On the final occasion, the tough veteran, Ron Bentley had said to him
as he passed, “Get going.” He did, and was not to stop again until he
reached the finish.
Dr John Brotherhood took a sample of Woodward’s urine, decided that he was
beginning to suffer from fatigue, and advised him that his temperature was
dropping too fast and that more clothing was needed. An additional Tshirt,
a pullover, and rugby shirt, plus tracksuit bottoms, started to warm him up, and
eased the pins and needles that he had begun to suffer in his arms, perhaps
because of his high arm action.
Despite these problems, Woodward took the world 150 km best with 10:44:55, and
from then began to pick up his pace, with the end in sight. From 90 miles he was
running sub 5:00 minutes kilometres. From 95 miles he pushed hard, all the time
coming closer to his fastest schedule. His last mile was 7:07, and he broke the
world record by 18:02 with 11:38:54, bettering Derek Kay’s record set in Durban,
South Africa, in 1972.
Woodward had taken 6:40:01 for his second 50 miles, a differential of 1:41:08
between the two 50 mile splits. His 50km splits were 3:01, 6:25:28,
10:44:55, with 54 minutes for his last 10.93 km. Mentally he had kept going, and
coped with the repetition of track running by checking his lap times and working
them out.
A large crowd gathered to cheer the winner in the final stages, but now he had
finished, the other competitors had to push on steadily into the darkness for
another four hours or more. Tom O’Reilly finished 23 minutes 28 seconds
behind for second place, (taking third place on the then world alltime track
rankings), and in third, a further 32 minutes, 19 seconds after came local
runner Bill Carr, who had run a very even pace while other runners had had their
good and bad patches. The rest of the field came in at regular intervals
until Bob Jeans finished in 13th place, 12 minutes inside the tough 16 hour time
limit. The final results were:
1. Cavin Woodward 11:38:54
2. Tom O’Reilly 12:02:32
3. Bill Carr 12:34:51
4. Martin Thompson,AUS 12:42:50
5. Fred Howell 12:49:29
6. Alan Richards 12:59:48
7. Ron Bentley 13:29:56
8. Siegfried Bauer,NZL 13:31:55
9. Derek Funnell 13:49:24
10. Bob Meadowcroft 14:42:30
11. John Berry 14:55:38
12. Ken Shaw 15:35:44
13. Bob Jeans 15:47:58
Woodward commented afterwards, “I was told before the race that the one thing I
could not do was blast off with 5m30s miles [3m43s kms]. Of course I did,
and I broke the world 50 mile record. Then I heard, ‘He will now drop out
somewhere in the race, so who will break the 100 mile record?’ I went on
and broke the 100 mile record as well . . . It was a great sense of achievement
when I did do it, as I had had doubts.”
“I did not want to prove everybody had been wrong. I proved that it could be
done. I hope I have altered the outlook of some runners. I hope I
proved that running even paced is not the only way of winning races and breaking
records. I would like to think that if a runner wants to try and run
ultras fast right from the start against the wishes of his coach or trainer he
could convincingly argue that that was the way Cavin Woodward did it.”
If Woodward had not run the 100 miles in his own way, it is possible that people
would still be saying that the only way to run a 100 miles is to start slow, and
pace yourself through the race. Woodward had no injuries following the
race, and in fact represented his club in the Birmingham League races the
following weekend, being one of their six scoring runners!
.


Activate Grab to Pan
Grab to pan - Grab this section with your mouse, and move your mouse around to pan the content.


| Package | Description |
|---|---|
| org.apache.fop.render |
Generic renderer interface.
|
| org.apache.fop.render.afp |
An AFP Renderer implementation and supporting classes.
|
| org.apache.fop.render.java2d |
Java2D Renderer which paints rendered pages on Graphics2D instances.
|
| org.apache.fop.render.pcl |
PCL Renderer (Supports PCL5 and HP GL/2)
|
| org.apache.fop.render.pdf |
PDF Renderer
|
| org.apache.fop.render.ps |
PostScript Renderer
|
| Modifier and Type | Class and Description |
|---|---|
class |
AbstractImageHandlerGraphics2D
Abstract base class for ImageHandler implementations that process Java2D images through
the Graphics2DImagePainter interface.
|
| Modifier and Type | Method and Description |
|---|---|
ImageHandler |
ImageHandlerRegistry.getHandler(RenderingContext targetContext,
org.apache.xmlgraphics.image.loader.Image image)
Returns an
ImageHandler which handles an specific image type given the MIME type
of the image. |
| Modifier and Type | Method and Description |
|---|---|
void |
ImageHandlerRegistry.addHandler(ImageHandler handler)
Add an image handler.
|
| Modifier and Type | Class and Description |
|---|---|
class |
AbstractAFPImageHandlerRawStream
A base abstract AFP raw stream image handler
|
class |
AFPImageHandlerGraphics2D
PDFImageHandler implementation which handles Graphics2D images.
|
class |
AFPImageHandlerRawCCITTFax
AFPImageHandler implementation which handles CCITT encoded images (CCITT fax group 3/4).
|
class |
AFPImageHandlerRawJPEG
ImageHandler implementation which handles ImageRawJPEG instances. |
class |
AFPImageHandlerRawStream
AFPImageHandler implementation which handles raw stream images.
|
class |
AFPImageHandlerRenderedImage
PDFImageHandler implementation which handles RenderedImage instances.
|
class |
AFPImageHandlerSVG
Image handler implementation which handles SVG images for AFP output.
|
| Modifier and Type | Class and Description |
|---|---|
class |
Java2DImageHandlerGraphics2D
Image handler implementation that paints
Graphics2D image on another Graphics2D
target. |
class |
Java2DImageHandlerRenderedImage
Image handler implementation that paints
RenderedImage instances on a Graphics2D
object. |
| Modifier and Type | Class and Description |
|---|---|
class |
PCLImageHandlerGraphics2D
Image handler implementation that paints Graphics2D images in PCL.
|
class |
PCLImageHandlerRenderedImage
Image handler implementation that paints
RenderedImage instances in PCL. |
| Modifier and Type | Class and Description |
|---|---|
class |
PDFImageHandlerGraphics2D
PDFImageHandler implementation which handles Graphics2D images.
|
class |
PDFImageHandlerRawCCITTFax
Image handler implementation which handles CCITT encoded images (CCITT fax group 3/4)
for PDF output.
|
class |
PDFImageHandlerRawJPEG
Image handler implementation which handles raw JPEG images for PDF output.
|
class |
PDFImageHandlerRawPNG
Image handler implementation which handles CCITT encoded images (CCITT fax group 3/4)
for PDF output.
|
class |
PDFImageHandlerRenderedImage
Image handler implementation which handles RenderedImage instances for PDF output.
|
class |
PDFImageHandlerSVG
Image Handler implementation which handles SVG images.
|
| Modifier and Type | Interface and Description |
|---|---|
interface |
PSImageHandler
Specialized image handler interface for PostScript output.
|
| Modifier and Type | Class and Description |
|---|---|
class |
PSImageHandlerEPS
Image handler implementation which handles EPS images for PostScript output.
|
class |
PSImageHandlerGraphics2D
Image handler implementation which handles vector graphics (Java2D) for PostScript output.
|
class |
PSImageHandlerRawCCITTFax
Image handler implementation which handles CCITT fax images for PostScript output.
|
class |
PSImageHandlerRawJPEG
Image handler implementation which handles undecoded JPEG images for PostScript output.
|
class |
PSImageHandlerRawPNG
Image handler implementation which handles raw (not decoded) PNG images for PostScript output.
|
class |
PSImageHandlerRenderedImage
Image handler implementation which handles RenderedImage instances for PostScript output.
|
class |
PSImageHandlerSVG
Image handler implementation which handles SVG images for PostScript output.
|
Copyright 1999-2020 The Apache Software Foundation. All Rights Reserved.


Energy Differential Privacy (EDP)¶
Energy Differential Privacy (EDP) enables the use of the gold standard of privacy protection, differential privacy, for high value energy efficiency analytics.
This project is funded by the U.S. Department of Energy as part of the Energy Data Vault project.
This documentation covers the core library (eeprivacy) as well as detailed examples of applying the library in practice.
In the ecosystem of open source differential privacy projects, EDP targets a sector-specific niche, enabling and optimizing specific use cases rather than solving general purpose problems.


Garden of Fear
80s metal is back
Band
Music
Gallery
Contacts
Garden of Fear are a band so cute that panties fly at their gigs.
Giuseppe Galluccio
Bass guitar
Andrea Baldi
Guitar
Andrea Garofalo
Vocals
Mirko Trezzi
Guitar
Paolo Pustorino
Drums


{% extends "base_generic.html" %} {% block content %}
You have no ablities. Sorry?
You have no items. Acquire some?


Schedule List
Schedule For [[${entry.entryMonth}]] Entry
Block
Start Date
End Date
Sections Offered
EntryMonth
BlockStartDate
BlockEndDate
[[${section.course.courseDesc}]] ([[${section.course.courseCode}]])


At the bottom of the toolbox, click an eraser shape.
Drag the pointer over the area you want to erase.
Notes
The selected background color shows what color the eraser will leave behind. You can change the background color by right-clicking another color in the color box.
You can change a specific color (and nothing else) by changing the foreground color to the color you want to erase and the background color to the color you want to replace it with. Then, when you click the eraser, you can right-click to change the color.
You can undo any number of changes by clicking the Edit menu and then clicking Undo for each change.


|
3D Rendering - Jesús Fermín Villar Ramírez
3D Rendering without OpenGL or third-party graphics libraries
|
: Class that manages camera behaviour
More...
#include <Camera.hpp>
Public Member Functions | |
| Camera () | |
| Creates a camera instance. Default projection values are: near field: 1 far field: 50 field of view: initial_fov value aspect ratio: 1. More... | |
| Camera (class View *view) | |
| Creates a camera instance. More... | |
| toolkit::Projection3f | get_projection () |
| Gets the projection matrix. More... | |
| Transform & | get_transform () |
| Gets a reference to the transform. More... | |
| void | Update (float delta, class View &view) |
| Update the camera. More... | |
| void | change_fov (View &view, float modificator) |
| Change the field of view. More... | |
: Class that manages camera behaviour
Definition at line 40 of file Camera.hpp.
|
inline |
Creates a camera instance. Default projection values are: near field: 1 far field: 50 field of view: initial_fov value aspect ratio: 1.
Definition at line 71 of file Camera.hpp.
| Rendering3D::Camera::Camera | ( | class View * | view | ) |
Creates a camera instance.
| view | A pointer to the container view |
Definition at line 41 of file Camera.cpp.
| void Rendering3D::Camera::change_fov | ( | View & | view, |
| float | modificator | ||
| ) |
Change the field of view.
| view | The view reference |
| modificator | The modification to apply |
Definition at line 78 of file Camera.cpp.
|
inline |
Gets the projection matrix.
Definition at line 83 of file Camera.hpp.
|
inline |
Gets a reference to the transform.
Definition at line 92 of file Camera.hpp.
| void Rendering3D::Camera::Update | ( | float | delta, |
| class View & | view | ||
| ) |
Update the camera.
| delta | The delta time |
| view | The view reference |
Definition at line 51 of file Camera.cpp.


class: center, middle, inverse, title-slide # ETC1010: Data Modelling and Computing ## Lecture 8A: Text analysis ### Dr. Nicholas Tierney & Professor Di Cook ### EBS, Monash U. ### 2019-09-19 --- class: bg-main1 # recap .huge[ - linear models (are awesome) - many models ] --- class: bg-main1 # Announcements .huge[ - Assignment 3 - Project - Peer review marking open (soon!) - No class on September 27 (AFL day) ] --- class: bg-main1 # Tidytext analysis  --- class: bg-main1 # Why text analysis? .huge[ - To use the realtors text description to improve the Melbourne housing price model - Determine the extent of public discontent with train stoppages in Melbourne - The differences between Darwin's first edition of the Origin of the Species and the 6th edition - Does the sentiment of posts on Newcastle Jets public facebook page reflect their win/los record? ] --- class: bg-main1 # Typical Process .huge[ 1. Read in text 2. Pre-processing: remove punctuation signs, remove numbers, stop words, stem words 3. Tokenise: words, sentences, ngrams, chapters 4. Summarise 5. model ] --- class: bg-main1 # Packages .huge[ In addition to `tidyverse` we will be using three other packages today ] ```r library(tidytext) library(genius) library(gutenbergr) ``` --- class: bg-main1 # Tidytext .huge[ - Using tidy data principles can make many text mining tasks easier, more effective, and consistent with tools already in wide use. - Learn more at https://www.tidytextmining.com/, by Julia Silge and David Robinson. ] --- class: bg-main1 # What is tidy text? ```r text <- c("This will be an uncertain time for us my love", "I can hear the echo of your voice in my head", "Singing my love", "I can see your face there in my hands my love", "I have been blessed by your grace and care my love", "Singing my love") text ``` ``` ## [1] "This will be an uncertain time for us my love" ## [2] "I can hear the echo of your voice in my head" ## [3] "Singing my love" ## [4] "I can see your face there in my hands my love" ## [5] "I have been blessed by your grace and care my love" ## [6] "Singing my love" ``` --- class: bg-main1 # What is tidy text? ```r text_df <- tibble(line = seq_along(text), text = text) text_df ``` ``` ## # A tibble: 6 x 2 ## line text ## <int> <chr> ## 1 1 This will be an uncertain time for us my love ## 2 2 I can hear the echo of your voice in my head ## 3 3 Singing my love ## 4 4 I can see your face there in my hands my love ## 5 5 I have been blessed by your grace and care my love ## 6 6 Singing my love ``` --- class: bg-main1 # What is tidy text? ```r text_df %>% unnest_tokens( output = word, input = text, token = "words" # default option ) ``` ``` ## # A tibble: 49 x 2 ## line word ## <int> <chr> ## 1 1 this ## 2 1 will ## 3 1 be ## 4 1 an ## 5 1 uncertain ## 6 1 time ## 7 1 for ## 8 1 us ## 9 1 my ## 10 1 love ## # … with 39 more rows ``` --- class: bg-main1 # What is unnesting? ```r text_df %>% unnest_tokens( output = word, input = text, token = "characters" ) ``` ``` ## # A tibble: 171 x 2 ## line word ## <int> <chr> ## 1 1 t ## 2 1 h ## 3 1 i ## 4 1 s ## 5 1 w ## 6 1 i ## 7 1 l ## 8 1 l ## 9 1 b ## 10 1 e ## # … with 161 more rows ``` --- class: bg-main1 # What is unnesting - ngrams length 2 ```r text_df %>% unnest_tokens( output = word, input = text, token = "ngrams", n = 2 ) ``` ``` ## # A tibble: 43 x 2 ## line word ## <int> <chr> ## 1 1 this will ## 2 1 will be ## 3 1 be an ## 4 1 an uncertain ## 5 1 uncertain time ## 6 1 time for ## 7 1 for us ## 8 1 us my ## 9 1 my love ## 10 2 i can ## # … with 33 more rows ``` --- class: bg-main1 # What is unnesting - ngrams length 3 ```r text_df %>% unnest_tokens( output = word, input = text, token = "ngrams", n = 3 ) ``` ``` ## # A tibble: 37 x 2 ## line word ## <int> <chr> ## 1 1 this will be ## 2 1 will be an ## 3 1 be an uncertain ## 4 1 an uncertain time ## 5 1 uncertain time for ## 6 1 time for us ## 7 1 for us my ## 8 1 us my love ## 9 2 i can hear ## 10 2 can hear the ## # … with 27 more rows ``` --- class: center, middle # Analyzing lyrics of one artist --- class: bg-main1 # Let's get more data .huge[ We'll use the `genius` package to get song lyric data from [Genius](https://genius.com/). - `genius_album()` allows you to download the lyrics for an entire album in a tidy format. ] --- class: bg-main1 # getting more data .huge[ - Input: Two arguments: `artists` and `album`. If it gives you issues check that you have the album name and artists as specified on [Genius](https://genius.com/). - Output: A tidy data frame with three columns: - `title`: track name - `track_n`: track number - `text`: lyrics ] --- class: bg-main1 # [Greatest Australian Album of all time (as voted by triple J)](https://www.abc.net.au/triplej/hottest100/alltime/11/countdown/cd_1.htm)  --- class: bg-main1 # Greatest Australian Album of all time (as voted by triple J) ```r od_num_five <- genius_album( artist = "Powderfinger", album = "Odyssey Number Five" ) od_num_five ``` ``` ## # A tibble: 310 x 4 ## track_title track_n line lyric ## <chr> <int> <int> <chr> ## 1 Waiting For The Sun 1 1 This will be an uncertain time for us my love ## 2 Waiting For The Sun 1 2 I can hear the echo of your voice in my head ## 3 Waiting For The Sun 1 3 Singing my love ## 4 Waiting For The Sun 1 4 I can see your face there in my hands my love ## 5 Waiting For The Sun 1 5 I have been blessed by your grace and care my love ## 6 Waiting For The Sun 1 6 Singing my love ## 7 Waiting For The Sun 1 7 There's a place for us sitting here waiting for the … ## 8 Waiting For The Sun 1 8 And it calls me back into the safe arms that I know ## 9 Waiting For The Sun 1 9 For every step you're further away from me my love ## 10 Waiting For The Sun 1 10 I grow more unsteady on my feet my love ## # … with 300 more rows ``` --- class: bg-main1 # Save for later ```r powderfinger <- od_num_five %>% mutate( artist = "Powderfinger", album = "Odyssey Number Five" ) powderfinger ``` ``` ## # A tibble: 310 x 6 ## track_title track_n line lyric artist album ## <chr> <int> <int> <chr> <chr> <chr> ## 1 Waiting For The… 1 1 This will be an uncertain time f… Powderfi… Odyssey Num… ## 2 Waiting For The… 1 2 I can hear the echo of your voic… Powderfi… Odyssey Num… ## 3 Waiting For The… 1 3 Singing my love Powderfi… Odyssey Num… ## 4 Waiting For The… 1 4 I can see your face there in my … Powderfi… Odyssey Num… ## 5 Waiting For The… 1 5 I have been blessed by your grac… Powderfi… Odyssey Num… ## 6 Waiting For The… 1 6 Singing my love Powderfi… Odyssey Num… ## 7 Waiting For The… 1 7 There's a place for us sitting h… Powderfi… Odyssey Num… ## 8 Waiting For The… 1 8 And it calls me back into the sa… Powderfi… Odyssey Num… ## 9 Waiting For The… 1 9 For every step you're further aw… Powderfi… Odyssey Num… ## 10 Waiting For The… 1 10 I grow more unsteady on my feet … Powderfi… Odyssey Num… ## # … with 300 more rows ``` --- class: bg-main1 # What songs are in the album? ```r powderfinger %>% distinct(track_title) ``` ``` ## # A tibble: 11 x 1 ## track_title ## <chr> ## 1 Waiting For The Sun ## 2 My Happiness ## 3 The Metre ## 4 Like A Dog ## 5 Odyssey #5 ## 6 Up & Down & Back Again ## 7 My Kind Of Scene ## 8 These Days ## 9 We Should Be Together Now ## 10 Thrilloilogy ## 11 Whatever Makes You Happy ``` --- class: bg-main1 # How long are the lyrics in Powderfinger's songs? ```r powderfinger %>% count(track_title) %>% arrange(-n) ``` ``` ## # A tibble: 11 x 2 ## track_title n ## <chr> <int> ## 1 Up & Down & Back Again 46 ## 2 My Happiness 40 ## 3 These Days 35 ## 4 Like A Dog 33 ## 5 Thrilloilogy 32 ## 6 My Kind Of Scene 31 ## 7 The Metre 30 ## 8 We Should Be Together Now 27 ## 9 Waiting For The Sun 21 ## 10 Whatever Makes You Happy 11 ## 11 Odyssey #5 4 ``` --- class: bg-main1 # Tidy up the lyrics! ```r powderfinger_lyrics <- powderfinger %>% unnest_tokens(output = word, input = lyric) powderfinger_lyrics ``` ``` ## # A tibble: 2,076 x 6 ## track_title track_n line artist album word ## <chr> <int> <int> <chr> <chr> <chr> ## 1 Waiting For The Sun 1 1 Powderfinger Odyssey Number Five this ## 2 Waiting For The Sun 1 1 Powderfinger Odyssey Number Five will ## 3 Waiting For The Sun 1 1 Powderfinger Odyssey Number Five be ## 4 Waiting For The Sun 1 1 Powderfinger Odyssey Number Five an ## 5 Waiting For The Sun 1 1 Powderfinger Odyssey Number Five uncertain ## 6 Waiting For The Sun 1 1 Powderfinger Odyssey Number Five time ## 7 Waiting For The Sun 1 1 Powderfinger Odyssey Number Five for ## 8 Waiting For The Sun 1 1 Powderfinger Odyssey Number Five us ## 9 Waiting For The Sun 1 1 Powderfinger Odyssey Number Five my ## 10 Waiting For The Sun 1 1 Powderfinger Odyssey Number Five love ## # … with 2,066 more rows ``` --- class: bg-main1 # What are the most common words? ```r powderfinger_lyrics %>% count(word) %>% arrange(-n) ``` ``` ## # A tibble: 451 x 2 ## word n ## <chr> <int> ## 1 the 93 ## 2 you 77 ## 3 i 55 ## 4 and 54 ## 5 to 48 ## 6 it 42 ## 7 in 39 ## 8 a 38 ## 9 for 33 ## 10 me 32 ## # … with 441 more rows ``` --- # Stop words .huge[ - In computing, stop words are words which are filtered out before or after processing of natural language data (text). - They usually refer to the most common words in a language, but there is not a single list of stop words used by all natural language processing tools. ] --- class: bg-main1 # English stop words ```r get_stopwords() ``` ``` ## # A tibble: 175 x 2 ## word lexicon ## <chr> <chr> ## 1 i snowball ## 2 me snowball ## 3 my snowball ## 4 myself snowball ## 5 we snowball ## 6 our snowball ## 7 ours snowball ## 8 ourselves snowball ## 9 you snowball ## 10 your snowball ## # … with 165 more rows ``` --- class: bg-main1 # Spanish stop words ```r get_stopwords(language = "es") ``` ``` ## # A tibble: 308 x 2 ## word lexicon ## <chr> <chr> ## 1 de snowball ## 2 la snowball ## 3 que snowball ## 4 el snowball ## 5 en snowball ## 6 y snowball ## 7 a snowball ## 8 los snowball ## 9 del snowball ## 10 se snowball ## # … with 298 more rows ``` --- class: bg-main1 # Various lexicons .huge[ See `?get_stopwords` for more info. ] ```r get_stopwords(source = "smart") ``` ``` ## # A tibble: 571 x 2 ## word lexicon ## <chr> <chr> ## 1 a smart ## 2 a's smart ## 3 able smart ## 4 about smart ## 5 above smart ## 6 according smart ## 7 accordingly smart ## 8 across smart ## 9 actually smart ## 10 after smart ## # … with 561 more rows ``` --- class: bg-main1 # What are the most common words? ```r powderfinger_lyrics ``` ``` ## # A tibble: 2,076 x 6 ## track_title track_n line artist album word ## <chr> <int> <int> <chr> <chr> <chr> ## 1 Waiting For The Sun 1 1 Powderfinger Odyssey Number Five this ## 2 Waiting For The Sun 1 1 Powderfinger Odyssey Number Five will ## 3 Waiting For The Sun 1 1 Powderfinger Odyssey Number Five be ## 4 Waiting For The Sun 1 1 Powderfinger Odyssey Number Five an ## 5 Waiting For The Sun 1 1 Powderfinger Odyssey Number Five uncertain ## 6 Waiting For The Sun 1 1 Powderfinger Odyssey Number Five time ## 7 Waiting For The Sun 1 1 Powderfinger Odyssey Number Five for ## 8 Waiting For The Sun 1 1 Powderfinger Odyssey Number Five us ## 9 Waiting For The Sun 1 1 Powderfinger Odyssey Number Five my ## 10 Waiting For The Sun 1 1 Powderfinger Odyssey Number Five love ## # … with 2,066 more rows ``` --- class: bg-main1 # What are the most common words? ```r stopwords_smart <- get_stopwords(source = "smart") powderfinger_lyrics %>% anti_join(stopwords_smart) ``` ``` ## # A tibble: 649 x 6 ## track_title track_n line artist album word ## <chr> <int> <int> <chr> <chr> <chr> ## 1 Waiting For The Sun 1 1 Powderfinger Odyssey Number Five uncertain ## 2 Waiting For The Sun 1 1 Powderfinger Odyssey Number Five time ## 3 Waiting For The Sun 1 1 Powderfinger Odyssey Number Five love ## 4 Waiting For The Sun 1 2 Powderfinger Odyssey Number Five hear ## 5 Waiting For The Sun 1 2 Powderfinger Odyssey Number Five echo ## 6 Waiting For The Sun 1 2 Powderfinger Odyssey Number Five voice ## 7 Waiting For The Sun 1 2 Powderfinger Odyssey Number Five head ## 8 Waiting For The Sun 1 3 Powderfinger Odyssey Number Five singing ## 9 Waiting For The Sun 1 3 Powderfinger Odyssey Number Five love ## 10 Waiting For The Sun 1 4 Powderfinger Odyssey Number Five face ## # … with 639 more rows ``` --- class: bg-main1 # What are the most common words? ```r powderfinger_lyrics %>% anti_join(stopwords_smart) %>% count(word) %>% arrange(-n) ``` ``` ## # A tibble: 287 x 2 ## word n ## <chr> <int> ## 1 back 16 ## 2 time 15 ## 3 waiting 13 ## 4 coming 10 ## 5 slowly 10 ## 6 days 9 ## 7 love 9 ## 8 creeping 8 ## 9 grace 8 ## 10 place 8 ## # … with 277 more rows ``` --- # What are the most common words? ```r powderfinger_lyrics %>% anti_join(stopwords_smart) %>% count(word) %>% arrange(-n) %>% top_n(20) %>% ggplot(aes(fct_reorder(word, n), n)) + geom_col() + coord_flip() + theme_minimal() + labs(title = "Frequency of Powderfinger's lyrics", subtitle = "`Back` tops the chart", y = "", x = "") ``` ---  --- class: bg-main1 # Sentiment analysis .huge[ - One way to analyze the sentiment of a text is to consider the text as a combination of its individual words - and the sentiment content of the whole text as the sum of the sentiment content of the individual words ] --- class: bg-main1 # Sentiment lexicons .pull-left[ ```r get_sentiments("afinn") ``` ``` ## # A tibble: 2,477 x 2 ## word value ## <chr> <dbl> ## 1 abandon -2 ## 2 abandoned -2 ## 3 abandons -2 ## 4 abducted -2 ## 5 abduction -2 ## 6 abductions -2 ## 7 abhor -3 ## 8 abhorred -3 ## 9 abhorrent -3 ## 10 abhors -3 ## # … with 2,467 more rows ``` ] .pull-right[ ```r get_sentiments("bing") ``` ``` ## # A tibble: 6,786 x 2 ## word sentiment ## <chr> <chr> ## 1 2-faces negative ## 2 abnormal negative ## 3 abolish negative ## 4 abominable negative ## 5 abominably negative ## 6 abominate negative ## 7 abomination negative ## 8 abort negative ## 9 aborted negative ## 10 aborts negative ## # … with 6,776 more rows ``` ] --- class: bg-main1 # Sentiment lexicons .pull-left[ ```r get_sentiments(lexicon = "bing") ``` ``` ## # A tibble: 6,786 x 2 ## word sentiment ## <chr> <chr> ## 1 2-faces negative ## 2 abnormal negative ## 3 abolish negative ## 4 abominable negative ## 5 abominably negative ## 6 abominate negative ## 7 abomination negative ## 8 abort negative ## 9 aborted negative ## 10 aborts negative ## # … with 6,776 more rows ``` ] .pull-right[ ```r get_sentiments(lexicon = "loughran") ``` ``` ## # A tibble: 4,150 x 2 ## word sentiment ## <chr> <chr> ## 1 abandon negative ## 2 abandoned negative ## 3 abandoning negative ## 4 abandonment negative ## 5 abandonments negative ## 6 abandons negative ## 7 abdicated negative ## 8 abdicates negative ## 9 abdicating negative ## 10 abdication negative ## # … with 4,140 more rows ``` ] --- class: bg-main1 # Sentiments in Powderfinger's lyrics ```r sentiments_bing <- get_sentiments("bing") powderfinger_lyrics %>% inner_join(sentiments_bing) %>% count(sentiment, word) %>% arrange(-n) ``` ``` ## # A tibble: 70 x 3 ## sentiment word n ## <chr> <chr> <int> ## 1 positive like 15 ## 2 negative slowly 10 ## 3 positive love 9 ## 4 negative creeping 8 ## 5 positive grace 8 ## 6 positive welcome 8 ## 7 positive right 7 ## 8 positive happy 6 ## 9 positive enough 5 ## 10 positive well 5 ## # … with 60 more rows ``` --- # Visualising sentiments  --- class: bg-main1 ## Visualising sentiments ```r powderfinger_lyrics %>% inner_join(sentiments_bing) %>% count(sentiment, word) %>% arrange(desc(n)) %>% group_by(sentiment) %>% top_n(10) %>% ungroup() %>% ggplot(aes(fct_reorder(word, n), n, fill = sentiment)) + geom_col() + coord_flip() + facet_wrap(~sentiment, scales = "free") + theme_minimal() + labs( title = "Sentiments in Powderfinger's lyrics", x = "" ) ``` --- class: bg-main1 # Comparing lyrics across artists --- ## Get more data: The White Stripes & The Midnight ```r stripes <- genius_album(artist = "The White Stripes", album = "Elephant") %>% mutate(artist = "The White Stripes", album = "Elephant") midnight <- genius_album(artist = "The Midnight", album = "Kids") %>% mutate(artist = "The Midnight", album = "Kids") ``` --- class: bg-main1 # Combine data: ```r ldoc <- bind_rows(powderfinger, stripes, midnight) ldoc ``` ``` ## # A tibble: 1,047 x 6 ## track_title track_n line lyric artist album ## <chr> <int> <int> <chr> <chr> <chr> ## 1 Waiting For The… 1 1 This will be an uncertain time f… Powderfi… Odyssey Num… ## 2 Waiting For The… 1 2 I can hear the echo of your voic… Powderfi… Odyssey Num… ## 3 Waiting For The… 1 3 Singing my love Powderfi… Odyssey Num… ## 4 Waiting For The… 1 4 I can see your face there in my … Powderfi… Odyssey Num… ## 5 Waiting For The… 1 5 I have been blessed by your grac… Powderfi… Odyssey Num… ## 6 Waiting For The… 1 6 Singing my love Powderfi… Odyssey Num… ## 7 Waiting For The… 1 7 There's a place for us sitting h… Powderfi… Odyssey Num… ## 8 Waiting For The… 1 8 And it calls me back into the sa… Powderfi… Odyssey Num… ## 9 Waiting For The… 1 9 For every step you're further aw… Powderfi… Odyssey Num… ## 10 Waiting For The… 1 10 I grow more unsteady on my feet … Powderfi… Odyssey Num… ## # … with 1,037 more rows ``` --- class: bg-main1 # LDOC lyrics ```r ldoc_lyrics <- ldoc %>% unnest_tokens(word, lyric) ldoc_lyrics ``` ``` ## # A tibble: 7,618 x 6 ## track_title track_n line artist album word ## <chr> <int> <int> <chr> <chr> <chr> ## 1 Waiting For The Sun 1 1 Powderfinger Odyssey Number Five this ## 2 Waiting For The Sun 1 1 Powderfinger Odyssey Number Five will ## 3 Waiting For The Sun 1 1 Powderfinger Odyssey Number Five be ## 4 Waiting For The Sun 1 1 Powderfinger Odyssey Number Five an ## 5 Waiting For The Sun 1 1 Powderfinger Odyssey Number Five uncertain ## 6 Waiting For The Sun 1 1 Powderfinger Odyssey Number Five time ## 7 Waiting For The Sun 1 1 Powderfinger Odyssey Number Five for ## 8 Waiting For The Sun 1 1 Powderfinger Odyssey Number Five us ## 9 Waiting For The Sun 1 1 Powderfinger Odyssey Number Five my ## 10 Waiting For The Sun 1 1 Powderfinger Odyssey Number Five love ## # … with 7,608 more rows ``` --- class: bg-main1 # Common LDOC lyrics - Without stop words: ```r ldoc_lyrics %>% anti_join(stopwords_smart) %>% count(artist, word, sort = TRUE) # alternative way to sort ``` ``` ## # A tibble: 1,082 x 3 ## artist word n ## <chr> <chr> <int> ## 1 The White Stripes girl 35 ## 2 The White Stripes home 33 ## 3 The Midnight lost 32 ## 4 The White Stripes button 26 ## 5 The White Stripes love 26 ## 6 The Midnight boy 25 ## 7 The White Stripes cold 24 ## 8 The Midnight kids 20 ## 9 The White Stripes good 20 ## 10 The Midnight strangers 19 ## # … with 1,072 more rows ``` --- class: bg-main1 # Common LDOC lyrics - With stop words: ```r ldoc_lyrics_counts <- ldoc_lyrics %>% count(artist, word, sort = TRUE) ldoc_lyrics_counts ``` ``` ## # A tibble: 1,619 x 3 ## artist word n ## <chr> <chr> <int> ## 1 The White Stripes to 139 ## 2 The White Stripes the 124 ## 3 The White Stripes i 120 ## 4 The White Stripes you 116 ## 5 The Midnight the 108 ## 6 The White Stripes do 102 ## 7 Powderfinger the 93 ## 8 The White Stripes a 89 ## 9 The White Stripes and 82 ## 10 Powderfinger you 77 ## # … with 1,609 more rows ``` --- class: bg-main1 # What is a document about? .huge[ - Term frequency - Inverse document frequency `$$idf(\text{term}) = \ln{\left(\frac{n_{\text{documents}}}{n_{\text{documents containing term}}}\right)}$$` tf-idf is about comparing **documents** within a **collection**. ] --- class: bg-main1 # Calculating tf-idf: Perhaps not that exciting... What's the issue? ```r ldoc_words <- ldoc_lyrics_counts %>% bind_tf_idf(term = word, document = artist, n = n) ldoc_words ``` ``` ## # A tibble: 1,619 x 6 ## artist word n tf idf tf_idf ## <chr> <chr> <int> <dbl> <dbl> <dbl> ## 1 The White Stripes to 139 0.0366 0 0 ## 2 The White Stripes the 124 0.0326 0 0 ## 3 The White Stripes i 120 0.0316 0 0 ## 4 The White Stripes you 116 0.0305 0 0 ## 5 The Midnight the 108 0.0620 0 0 ## 6 The White Stripes do 102 0.0268 0 0 ## 7 Powderfinger the 93 0.0448 0 0 ## 8 The White Stripes a 89 0.0234 0 0 ## 9 The White Stripes and 82 0.0216 0 0 ## 10 Powderfinger you 77 0.0371 0 0 ## # … with 1,609 more rows ``` --- class: bg-main1 # Re-calculating tf-idf ```r ldoc_words %>% bind_tf_idf(term = word, document = artist, n = n) %>% arrange(-tf_idf) ``` ``` ## # A tibble: 1,619 x 6 ## artist word n tf idf tf_idf ## <chr> <chr> <int> <dbl> <dbl> <dbl> ## 1 The Midnight kids 20 0.0115 1.10 0.0126 ## 2 The Midnight strangers 19 0.0109 1.10 0.0120 ## 3 The Midnight woah 13 0.00746 1.10 0.00820 ## 4 The White Stripes button 26 0.00684 1.10 0.00752 ## 5 The Midnight lost 32 0.0184 0.405 0.00745 ## 6 The Midnight was 32 0.0184 0.405 0.00745 ## 7 The White Stripes her 25 0.00658 1.10 0.00723 ## 8 The White Stripes cold 24 0.00632 1.10 0.00694 ## 9 The Midnight monsters 11 0.00631 1.10 0.00694 ## 10 The White Stripes oh 63 0.0166 0.405 0.00672 ## # … with 1,609 more rows ``` ---  --- class: bg-main1 # Your Turn: .huge[ - go to rstudio.cloud and repeat the analyses done in the lecture for your own artists. - some suggestions: - Daft Punk's "Discovery" or "Random Access Memories" - Musicals: "Les Miserables" or "Wicked" ] --- class: bg-main1, middle, center # Part Two: Tidy Text analysis on Books --- class: bg-main1 # Getting some books to study .huge[ The [Gutenberg project](http://www.gutenberg.org/wiki/Main_Page) provides the text of over 57000 books free online. Let's explore The Origin of the Species by Charles Darwin using the `gutenbergr` R package. ] --- class: bg-main1 .huge[ We need to know the `id` of the book, which means looking this up online anyway. - The first edition is `1228` - The sixth edition is `2009` ] --- class: bg-main1 # Packages used .huge[ - We need the `tm` package to remove numbers from the page, and `gutenbergr` to access the books. ] ```r # The tm package is needed because the book has numbers # in the text, that need to be removed, and the # install.packages("tm") library(tm) library(gutenbergr) ``` --- class: bg-main1 # Download darwin ```r darwin1 <- gutenberg_download(1228) darwin1 ``` ``` ## # A tibble: 15,819 x 2 ## gutenberg_id text ## <int> <chr> ## 1 1228 ON THE ORIGIN OF SPECIES. ## 2 1228 "" ## 3 1228 OR THE PRESERVATION OF FAVOURED RACES IN THE STRUGGLE FOR LIFE. ## 4 1228 "" ## 5 1228 "" ## 6 1228 By Charles Darwin, M.A., ## 7 1228 "" ## 8 1228 Fellow Of The Royal, Geological, Linnaean, Etc., Societies; ## 9 1228 "" ## 10 1228 Author Of 'Journal Of Researches During H.M.S. Beagle's Voyage Round The ## # … with 15,809 more rows ``` ```r # remove the numbers from the text darwin1$text <- removeNumbers(darwin1$text) ``` --- class: bg-main1 # Tokenize .huge.pull-left[ - break into one word per line - remove the stop words - count the words - find the length of the words ] .pull-right[ ```r darwin1_words <- darwin1 %>% unnest_tokens(word, text) %>% anti_join(stop_words) %>% count(word, sort = TRUE) %>% mutate(len = str_length(word)) darwin1_words ``` ``` ## # A tibble: 6,395 x 3 ## word n len ## <chr> <int> <int> ## 1 species 1541 7 ## 2 varieties 434 9 ## 3 selection 414 9 ## 4 forms 403 5 ## 5 natural 382 7 ## 6 plants 335 6 ## 7 life 306 4 ## 8 animals 297 7 ## 9 nature 260 6 ## 10 distinct 257 8 ## # … with 6,385 more rows ``` ] --- class: bg-main1 # Analyse tokens ```r quantile( darwin1_words$n, probs = seq(0.9, 1, 0.01) ) ``` ``` ## 90% 91% 92% 93% 94% 95% 96% 97% 98% 99% 100% ## 19.00 21.00 24.00 26.00 31.00 36.00 43.00 52.00 66.00 101.06 1541.00 ``` --- class: bg-main1 # Analyse tokens .left-code[ ```r darwin1_words %>% top_n(n = 20, wt = n) %>% ggplot(aes(x = n, y = fct_reorder(word, n))) + geom_point() + ylab("") ``` ] .right-plot[  ] --- class: bg-main1 # Download and tokenize the 6th edition. ```r darwin6 <- gutenberg_download(2009) darwin6$text <- removeNumbers(darwin6$text) ``` --- class: bg-main1 # show tokenized words ```r darwin6_words <- darwin6 %>% unnest_tokens(word, text) %>% anti_join(stop_words) %>% count(word, sort = TRUE) %>% mutate(len = str_length(word)) darwin6_words ``` ``` ## # A tibble: 8,335 x 3 ## word n len ## <chr> <int> <int> ## 1 species 1922 7 ## 2 forms 565 5 ## 3 selection 559 9 ## 4 natural 533 7 ## 5 varieties 486 9 ## 6 plants 471 6 ## 7 animals 436 7 ## 8 distinct 359 8 ## 9 life 350 4 ## 10 nature 325 6 ## # … with 8,325 more rows ``` --- class: bg-main1 ```r quantile(darwin6_words$n, probs = seq(0.9, 1, 0.01)) ``` ``` ## 90% 91% 92% 93% 94% 95% 96% 97% 98% 99% 100% ## 20.00 22.00 25.00 28.00 32.00 38.00 45.00 57.00 75.00 109.66 1922.00 ``` --- class: bg-main1 ```r darwin6_words %>% top_n(n = 20, wt = n) %>% ggplot(aes(x = n, y = fct_reorder(word, n))) + geom_point() + ylab("") ```  --- class: bg-main1 # Compare the word frequency .left-code[ ```r darwin <- full_join( darwin1_words, darwin6_words, by = "word" ) %>% rename( n_ed1 = n.x, len_ed1 = len.x, n_ed6 = n.y, len_ed6 = len.y ) ``` ] .right-plot[ ```r darwin ``` ``` ## # A tibble: 8,604 x 5 ## word n_ed1 len_ed1 n_ed6 len_ed6 ## <chr> <int> <int> <int> <int> ## 1 species 1541 7 1922 7 ## 2 varieties 434 9 486 9 ## 3 selection 414 9 559 9 ## 4 forms 403 5 565 5 ## 5 natural 382 7 533 7 ## 6 plants 335 6 471 6 ## 7 life 306 4 350 4 ## 8 animals 297 7 436 7 ## 9 nature 260 6 325 6 ## 10 distinct 257 8 359 8 ## # … with 8,594 more rows ``` ] --- class: bg-main1 ## plot the word frequency .left-code[ ```r ggplot(darwin, aes(x = n_ed1, y = n_ed6, label = word)) + geom_abline(intercept = 0, slope = 1) + geom_point(alpha = 0.5) + xlab("First edition") + ylab("6th edition") + scale_x_log10() + scale_y_log10() + theme(aspect.ratio = 1) ``` ] .right-plot[  ] --- class: bg-main1 # Your turn: .vlarge[ - Does it look like the 6th edition was an expanded version of the first? - What word is most frequent in both editions? - Find some words that are not in the first edition but appear in the 6th. - Find some words that are used the first edition but not in the 6th. - Using a linear regression model find the top few words that appear more often than expected, based on the frequency in the first edition. Find the top few words that appear less often than expected. ] --- class: bg-main1 ## Book comparison .huge[ Idea: Find the important words for the content of each document by decreasing the weight of commonly used words and increasing the weight for words that are not used very much in a collection or corpus of documents. ] --- class: bg-main1 # Term frequency, inverse document frequency (`tf_idf`). .vlarge[ Helps measure word importance of a document in a collection of documents. E.g, A novel in a collection of novels, a website in a collection of websites. ] .large[ `$$tf_{word} = \frac{Number~of~times~word~t~appears~in~a~document}{Total~number~of~words~in~the~document}$$` `$$idf_{word} = log \frac{number~of~documents}{number~of~documents~word~appears~in}$$` `$$tf_idf = tf\times idf$$` ] --- class: bg-main1 ```r darwin <- bind_rows("first" = darwin1_words, "sixth" = darwin6_words, .id = "edition") darwin ``` ``` ## # A tibble: 14,730 x 4 ## edition word n len ## <chr> <chr> <int> <int> ## 1 first species 1541 7 ## 2 first varieties 434 9 ## 3 first selection 414 9 ## 4 first forms 403 5 ## 5 first natural 382 7 ## 6 first plants 335 6 ## 7 first life 306 4 ## 8 first animals 297 7 ## 9 first nature 260 6 ## 10 first distinct 257 8 ## # … with 14,720 more rows ``` --- class: bg-main1 # TF IDF ```r darwin_tf_idf <- darwin %>% bind_tf_idf(word, edition, n) darwin_tf_idf %>% arrange(desc(tf_idf)) ``` ``` ## # A tibble: 14,730 x 7 ## edition word n len tf idf tf_idf ## <chr> <chr> <int> <int> <dbl> <dbl> <dbl> ## 1 sixth mivart 28 6 0.000361 0.693 0.000250 ## 2 sixth prof 28 4 0.000361 0.693 0.000250 ## 3 sixth cambrian 27 8 0.000348 0.693 0.000241 ## 4 sixth illegitimate 21 12 0.000271 0.693 0.000188 ## 5 sixth lamellae 21 8 0.000271 0.693 0.000188 ## 6 sixth pedicellariae 19 13 0.000245 0.693 0.000170 ## 7 sixth dimorphic 18 9 0.000232 0.693 0.000161 ## 8 sixth orchids 17 7 0.000219 0.693 0.000152 ## 9 sixth fittest 16 7 0.000206 0.693 0.000143 ## 10 first deg 11 3 0.000194 0.693 0.000135 ## # … with 14,720 more rows ``` --- class: bg-main1 ```r gg_darwin_1_vs_6 <- darwin_tf_idf %>% arrange(desc(tf_idf)) %>% mutate(word = factor(word, levels = rev(unique(word)))) %>% group_by(edition) %>% top_n(15) %>% ungroup() %>% ggplot(aes(x = word, y = tf_idf, fill = edition)) + geom_col(show.legend = FALSE) + labs(x = NULL, y = "tf-idf") + facet_wrap(~edition, ncol = 2, scales = "free") + coord_flip() + scale_fill_brewer(palette = "Dark2") ``` --- class: bg-main1  --- class: bg-main1 # What do we learn? .huge[ - Mr Mivart appears in the 6th edition, multiple times ] ```r str_which(darwin6$text, "Mivart") ``` ``` ## [1] 5435 6973 7982 7987 7990 7998 8003 8011 8026 8059 8081 8194 8204 8229 ## [15] 8234 8268 8413 8466 8506 8532 8575 8581 8603 8612 8677 8684 8759 9001 ## [29] 9014 9025 9055 9063 9125 16240 20456 ``` ```r darwin6[5435, ] ``` ``` ## # A tibble: 1 x 2 ## gutenberg_id text ## <int> <chr> ## 1 2009 to this rule, as Mr. Mivart has remarked, that it has little value. ``` --- class: bg-main1 # What do we learn? .huge[ - Prof title is used more often in the 6th edition - There is a tendency for latin names - Mistletoe was mispelled in the 1st edition ] --- class: bg-main1 # Lab exercise .huge[ Text Mining with R has an example comparing historical physics textbooks: *Discourse on Floating Bodies* by Galileo Galilei, *Treatise on Light* by Christiaan Huygens, *Experiments with Alternate Currents of High Potential and High Frequency* by Nikola Tesla, and *Relativity: The Special and General Theory* by Albert Einstein. All are available on the Gutenberg project. Work your way through the [comparison of physics books](https://www.tidytextmining.com/tfidf.html#a-corpus-of-physics-texts). It is section 3.4. ] --- class: bg-main1 # Thanks .huge[ - Dr. Mine Çetinkaya-Rundel - Dr. Julia Silge: https://github.com/juliasilge/tidytext-tutorial - Dr. Julia Silge and Dr. David Robinson: https://www.tidytextmining.com/ - Josiah Parry: https://github.com/JosiahParry/genius ]


There are a lot of tools out there that we can use to automate our awesomeness. One of those easy/free/fun tools is a continuous integration (CI) server. Since we are building in Windows and deploying to Linux, we can go ahead and upgrade a CI server from ‘important’ to essential. There are various products out there that can accomplish this; I’m going with what I know and that is TeamCity from JetBrains.
On our Ubuntu box, after we finish the easy as candy install, we’re going to want to install Mono. Check out this previous post on how to do that and set it up in your /etc/environment.
Now that Mono is rocking, lets hop over to our CI install. At the time of this post, the latest version of TeamCity is 7.0.2a. Looking at the code below, we’re going to install Java, pull down the latest version of the TeamCity linux tar, decompress it, switch directories and fire it up :
sudo apt-get install openjdk-7-jre
wget - http://download.jetbrains.com/teamcity/TeamCity-7.0.2a.tar.gz
tar xfz TeamCity-7.0.2a.tar.gz
cd Teamcity
sudo ./bin/runAll.bat start
Pretty easy right? Lets check out our web interface:
Yay! Everything works! You’re also at a ubiquitous web interface which will likely give the Softie in you some solace. There are tons of resources online for setting up your project in TeamCity to check it out, build it, run tests, deploy, yada yada yada. If you are just getting started, I highly recommend Troy Hunt’s post. You can also install Ruby on this server and have a wonderfully awesome auto-deployment method via Capistrano. If you are interested in deploying with Capistrano, let me know I’ll try to barf out a quick post on it. This is a pretty short and to the point post, if it needs more content with regards to project checkouts and stuff, let me know and I can barf that out as well.


Summary
Lehigh Hanson, Inc. is one of the largest construction materials companies in North America producing aggregates, cement, concrete, and other related building materials.
What I did
Worked for 7 months in the IT department as an application developer
- Created a custom CSS extension for Bootstrap 4 written in SASS to automatically apply the company's UI style to its current and future web applications
- Performed QA and UAT testing on flagship web and mobile applications during development and deployment
- Created documentation for an online knowledge base for the company's online portal which was presented to senior management in a proposal to expand to more than 62 countries worldwide


This is a little blurb about content dev experience and how the items below pertain to it.
I collaborated closely with the creative director for this multi-touch promotion. It explained a rather complicated concept in a very limited amount of space.
Typically, Starbucks Rewards customer visits to the stores drop off dramatically in January. This challenge engaged normally less-engaged customers and drove tens of thousands in additional incremental revenue.


--- creation_epoch:<PHONE_NUMBER> lastmod_epoch:<PHONE_NUMBER> categories: ['Tech Tricks'] title: Belkin Wireless G USB Network Adapter in OpenWrt --- Trick is finding the right kernel module to install.
Kudos to http://opensource.bureau-cornavin.com/belkin/ for providing some chipset info. I just tried each one until it worked.
My adapter is a F5D7050 v4xxx with a chipset of Zydas 1211B
OpenWrt command was
opkg install kmod-zd1211rw


Please upload the image you would like to calculate below (.png format)
Developed by Summer Ai, Runting Shao, Ningji Shen, Chang Xu and Zihui Zhang at the University of Washington.
All Rights Reserved.


About
Blog
Contact
Previous Post
Post Title
jkhdsfhsdkfdsjf,jdshfljdskhgsjgoieuwrewhfksdvs sdjvkdshjfks
Read More
Contact


A common headache of mine: what’s the most efficient way to copy a URL in one iOS app and quickly create a relevant task for it in OmniFocus?
My earlier post on an episode of Connected is a great example: I had to copy the podcast URL from Overcast, switch over to OmniFocus, create a task with a relevant name (i.e., one that wasn’t just the URL itself), and save it. Adding to the friction of this experience is that I did it while trying to rush out the door.
Thus, I set out to create a cleaner method.

The End Goal
Upon copying a URL, the workflow should run with a Launch Center Pro action that:
- allows the user to select what “type” the new task will be (e.g., a reminder to email someone about this URL, a reminder to create a blog post about this URL, or a custom one).
- selects the task-creation method (either Mail Drop or the OmniFocus URL scheme) to use.
- finally, creates an OmniFocus task that has the type, the name of the URL’s page, and includes the URL in the task note.
The Software Participants
- Launch Center Pro
- Pythonista
- Drafts
- OmniFocus for iOS
- Mail Drop
The Setup
Step #1. Download the Pythonista Script
The Pythonista script is a fairly simple one; I’ll let the comments speak for themselves:
Step #2. Download the Drafts Mail Drop Action
drafts://x-callback-url/import_action?type=email&name=Email to<EMAIL_ADDRESS>You’ll notice that in the Pythonista script, the Mail Drop method makes use of a Drafts action. I’ve discussed this before – when sending tasks to OmniFocus via Mail Drop, I prefer using Drafts because it allows transmission of the email in the background (something Launch Center Pro does not do).
At any rate, this Drafts action is straightforward:
- The first line of the draft (the title) gets used as the task title in OmniFocus.
- The remaining lines of the draft (the body) get used as the task note in OmniFocus.
The only part you should have to change is the “To” address; make sure to use your Mail Drop address.
Step #3. Download the Launch Center Pro Action
The Launch Center Pro action is also straightforward:
- First, prompt the to pick a task “type” (meaning, the text that will appear in the OmniFocus task title before the title of the URL). There are some defaults in place – “Blog post” and “Email” – as as well as the opportunity to enter a custom type.
- Second, prompt the user to pick a delivery method (either Mail Drop or the OmniFocus iOS app).
- Launch the Pythonista script provide (as arguments) the URL (from the clipboard) and the delivery method.
- Once the task is created, return control to Launch Center Pro.
(Feel free to customize the list of task types to fit your purposes.)
With all this in place, let’s test, shall we?
The Test
As an example, let’s use something comparable to what I opened with: let’s pretend that I want to remember to email someone about the first episode of Inquisitive (after listening to it in Overcast).
First, I pop open the share sheet in Overcast (while on that episode):
In Launch Center Pro, I run the “Task From URL” action:
I select the “Email” task type:
I choose the delivery mechanism – for the purposes of this test, I’ll choose “Mail Drop”:
The action runs and control returns to Launch Center Pro. A quick jump over to OmniFocus shows that my task has arrived successfully:
Wrap Up
I continue to be amazed at how useful Pythonista (and its sister app, Editorial) are capable of. In so many workflows, the default tools of the individual apps – great though they may be – aren’t enough; in those instances, the power of Python shines through these two outstanding apps.
Enjoy!
UPDATE (9/2/14): Updated the script to handle URLs that reject “bot-like” requests.


A Provider class is a class with a method named provide that can participate in injection
Consider the following example of a provider:
public class Chocolatier implements Provider { public Chocolate provide(CocaoBeans cocaoBeans) { return new Chocolate(cocaoBeans); } }
And its example usage:
pico.addAdapter(new ProviderAdapter(new Chocolatier())); pico.addComponent(NeedsChocolate.class);
In this example, 'NeedChocolate' and other components added to the PicoContainer instance can depend on a 'Chocolate' instance. Such dependencies are declared in the usual way (Constructor args etc) and PicoContainer will call the provider method to create the Chocolate instance. For the class in question, there must be only one provide method, it must return something other than void, and it can take zero, one or many arguments. Those arguments are themselves dependencies that will be satisfied by PicoContainer at time of invocation.
You will note that the example above shows a transparent class (no implements/extends/throws/imports from PicoContainer's API). It is also possible to extend the Provider class directly to do the same:
public class Chocolatier2 extends ProviderAdapter { public Chocolate provide(CocaoBeans cocaoBeans) { return new Chocolate(cocaoBeans); } } ... pico.addAdapter(new Chocolatier()); pico.addComponent(NeedsChocolate.class);
It may be that you want more than one dependency for the provide method. If that is the case and you want to leverage parameter names for disambiguation. To do this for the compositional case, choose the contructor to ProviderAdapter that has a boolean flag (set to true). To do this for the extends case, override the useNames() method.
As of release 2.10, ProviderAdapter has a second constructor that takes a LifecycleStrategy so any provided instances may participate in lifecycles.