WITNESS LIST Environmental Regulation Committee April 25, 2006-10:00A Interim Charge 2 For: Ballou, Tom (Sherwin Alumina, L.P.) On: Bergeron Perdue, Stephanie (TCEQ) Eden, Dan (TCEQ)


Explore Biology
Make a selection of terms below and submit to see their associated annotations
Enter one or more GO terms:
Choose terms from your basket ({{basketList.length}} available)
Choose or input GO terms above to view your selection here
Optional root terms:
Molecular Function Terms ({{getSelectedMFTerms().length}})
Biological Process Terms ({{getSelectedBPTerms().length}})
Cellular Component Terms ({{getSelectedCCTerms().length}})


Freya Anderson strikes gold with freestyle double
Freya Anderson completed a freestyle double with victory in the 200m at the European Short Course Swimming Championships in Glasgow.
The 18-year-old Shropshire swimmer, who secured her maiden individual medal at this level and a European title with an impressive victory in the 100m freestyle on Friday, clocked a new national record of 1:52.77 in the 200m final.
That was 0.11 of a second quicker than Italy’s Federica Pellegrini, with Holland’s Femke Heemskerk taking bronze.
Ellesmere Titan Anderson then added a silver medal to her haul when she teamed up with Duncan Scott, Scott McLay and Anna Hopkin in the 4x50m freestyle final.
The British quartet finished 0.33secs behind gold medal winners Russia.
Anderson said: “It’s just amazing – I really didn’t expect it.
“Even when I touched the wall and looked around I saw the one by my name I was like ‘what!?’.
“I’m really happy with how I managed to pace my race and come back hard on the last 50m.
“I knew how a few of the others would swim it and thought if I could be with them at around the 150m mark I could make my move.
“It’s a tactical race the 200m free so I had to keep looking around whilst also focusing on my own race.
“I’ve never been good at short course and I’ve been working on my turns and skills for years, so to finally see it paying off is really rewarding. The crowd were amazing and even when I finished and looked up everyone was just so happy, it was really nice to see that.
“I saw my parents in the crowd, they weren’t here on Friday, so it was amazing to see them up there.”
Anderson was sixth with 50m left to swim, before producing a final 50m that was over a second quicker than anyone else in the race to take the title.
Timed to perfection, she overhauled Pellegrini with her final few strokes to obliterate Fran Halsall’s British record that has stood for 10 years.
The men led the relay team off, with all of their rivals taking the same approach.
Hopkin produced an outrageous swim, which would later be confirmed as the fastest female split of the race, to mean Anderson would enter the water neck and neck with her rivals.
With the two gold medals to her name already, the Ellesmere swimmer delivered a blistering anchor securing silver to the home crowd’s delight.
Anderson just missed out on another medal when she came home fourth in the 400m freestyle final.
After looking good in qualifying, Anderson swam the race in her usual style -conservative early on before finishing strongly.
Out in lane one the youngster was slightly isolated and away from the race in the centre lanes, but finished strongly to record a personal best.
She added: “I certainly didn't come into this expecting anything but I'm really happy, what more could I have asked for this week!
"I found it quite hard being in the outside lane as I couldn't really see anything that was going on, but I'm happy with a PB and with how I swam it.”


Created by Team Failing Street of the University of Portland
We like to make our passwords short and easy to remember. And we like to use the same one for everything.
Short, memorable passwords are easy for the bad guys to figure out. And if you use the same one for everything they can get a hold of everything you do online.
I have one word for you...
Transforming your weak, human passwords into computer generated ones.
Greystash takes a security phrase you set up, the address of the website you are visiting, and your normal easy to remember password and...
Easy password: cats4ever
Transformed into: 3@JmeK-%`sjRtNl[w
Greystash will put a checkmark in each password field on supported websites. When the check is present, Greystash will work its magic.
If you click on the checkmark, it will change into an 'X', meaning Greystash will be turned off and won't change the password.
Simply make sure there is a check in the password fields and your new account will be set up with a Greystash secure password!
Make sure to turn off the password transformation when entering your old password.
Need to change your security phrase?
Just click the wizard!
Close this tab and set your Secret Phrase to get started!


DfE enquiries
Central newsdesk 020 7783 8300
General enquiries 0370 000 2288
Press release
New more demanding rules ensure only high-quality candidates with good levels of literacy and numeracy go on to train to be teachers.
New figures show that changes to toughen up the skills tests taken by prospective teachers have raised the quality of those entering the teaching profession.
New more demanding rules introduced in September 2012 have ensured only high-quality candidates with good levels of literacy and numeracy go on to train to be teachers. This will raise standards in schools. As a result, the Department for Education will not be bringing in new tests.
Since 1 September 2012 applicants:
Under the previous system, the proportion passing was very high - 98% of candidates in the 2011 to 2012 academic year passed both skills tests and so could progress to qualified teacher status.
In 2011 to 2012:
Results of the first cohort of applicants to teacher training sitting the tests under the new rules show that 88% passed both tests within 3 attempts. 12% did not pass both skills tests in 2012 to 2013. Almost 3% failed 3 times and cannot progress to teacher training for at least 2 years.
| Teacher trainees* taking tests in academic year 2011 to 2012 | Teacher trainees* taking tests in academic year 2012 to 2013 | 2012 to 2013 applicants to teacher training (taking pre-entry skills tests for courses starting 2013 to 2014) | |
|---|---|---|---|
| Number of candidates taking skills tests | 35,724 | 39,567 | 44,069 |
| Number of candidates passing both skills tests | 35,087 (98%) | 35,059 (89%) | 38,657 (88%) |
| Failed three times and are unable to proceed | N/A | 574 (1.5%) | 1,188 (2.7%) |
*Teacher trainees also includes those who have completed their training but had yet to pass the tests.
A Department for Education spokesperson said:
The robust changes to the skills tests have had the desired effect, raising the bar for entry into teacher training and ensuring that high-quality graduates are entering the profession. This is raising standards in schools.
We will continue to evaluate the skills tests to make sure even more brilliant teachers are entering the classroom.
Central newsdesk 020 7783 8300
General enquiries 0370 000 2288
Published: 26 October 2013
From: Department for Education
Part of: Teaching and school leadership


Class: Concurrent::Edge::LockFreeStack
- Inherits:
-
Synchronization::Object
- Object
- Synchronization::Object
- Concurrent::Edge::LockFreeStack
- Includes:
- Enumerable
- Defined in:
- lib/concurrent/edge/lock_free_stack.rb
Defined Under Namespace
Constant Summary
- EMPTY =
Empty[nil, nil]
Instance Method Summary (collapse)
- - (Object) clear
- - (Object) clear_each(&block)
- - (Object) compare_and_clear(head)
- - (Object) compare_and_pop(head)
- - (Object) compare_and_push(head, value)
- - (Object) each(head = nil)
- - (Boolean) empty?
-
- (LockFreeStack) initialize
constructor
A new instance of LockFreeStack.
- - (Object) peek
- - (Object) pop
- - (Object) push(value)
Constructor Details
- (LockFreeStack) initialize
Returns a new instance of LockFreeStack
28 29 30 31 |
# File 'lib/concurrent/edge/lock_free_stack.rb', line 28 def initialize super() self.head = EMPTY end |
Instance Method Details
- (Object) clear
79 80 81 82 83 84 85 |
# File 'lib/concurrent/edge/lock_free_stack.rb', line 79 def clear while true current_head = head return false if current_head == EMPTY return true if compare_and_set_head current_head, EMPTY end end |
- (Object) clear_each(&block)
87 88 89 90 91 92 93 94 95 96 |
# File 'lib/concurrent/edge/lock_free_stack.rb', line 87 def clear_each(&block) while true current_head = head return self if current_head == EMPTY if compare_and_set_head current_head, EMPTY each current_head, &block return self end end end |
- (Object) compare_and_clear(head)
63 64 65 |
# File 'lib/concurrent/edge/lock_free_stack.rb', line 63 def compare_and_clear(head) compare_and_set_head head, EMPTY end |
- (Object) compare_and_pop(head)
52 53 54 |
# File 'lib/concurrent/edge/lock_free_stack.rb', line 52 def compare_and_pop(head) compare_and_set_head head, head.next_node end |
- (Object) compare_and_push(head, value)
37 38 39 |
# File 'lib/concurrent/edge/lock_free_stack.rb', line 37 def compare_and_push(head, value) compare_and_set_head head, Node[value, head] end |
- (Object) each(head = nil)
69 70 71 72 73 74 75 76 77 |
# File 'lib/concurrent/edge/lock_free_stack.rb', line 69 def each(head = nil) return to_enum(:each, head) unless block_given? it = head || peek until it.equal?(EMPTY) yield it.value it = it.next_node end self end |
- (Boolean) empty?
33 34 35 |
# File 'lib/concurrent/edge/lock_free_stack.rb', line 33 def empty? head.equal? EMPTY end |
- (Object) peek
48 49 50 |
# File 'lib/concurrent/edge/lock_free_stack.rb', line 48 def peek head end |
- (Object) pop
56 57 58 59 60 61 |
# File 'lib/concurrent/edge/lock_free_stack.rb', line 56 def pop while true current_head = head return current_head.value if compare_and_set_head current_head, current_head.next_node end end |
- (Object) push(value)
41 42 43 44 45 46 |
# File 'lib/concurrent/edge/lock_free_stack.rb', line 41 def push(value) while true current_head = head return self if compare_and_set_head current_head, Node[value, current_head] end end |


This is the API specification for the core part of the Confectory project.
Confectory is a modular framework, designed to hide the complexity of handling configuration files for Java applications in general, providing a reliable and fast API for parsing data from different sources (e.g.: file or URL) in a variety of formats, and allowing data access using a unified data query language.
Main features:
The core part of the project defines the base API and provides basic standard functionality, including:
Configuration
class, which is typically a combination of a Source
and a Mapper
, producing configuration data that can be retrieved in a variety of formats
ConfigurationContainer
class, for management of multiple configuration objects using
namespaces and precendence levels in case of key/path collision
Source
implementations for loading local resources from file system and classpath
Mapper
implementations for delivering contents as String
,
Properties
, JSONObject
(using smart-json
as default provider),
Document
(XML) and POJO (user-defined beans)
For additional modules, refer to the Confectory project Home.
For code samples, refer to the Confectory project Wiki.


Copies the SSH key file given in the credentials to a temporary location, then sets a variable to that location.
(The file is deleted when the build completes.) Also optionally sets variables for the SSH key's username and passphrase.
Warning: if the Jenkins controller or agent node has multiple executors,
any other build running concurrently on the same node will be able to read
the contents of this file.


Champions League: Hakimi inspires Dortmund to comeback win over Inter
by Reuters
• Napoli held by Salzburg, Valencia see off Lille 4-1
• Barcelona goalless with Slavia Prague, Lyon beat Benfica
Borussia Dortmund defender Achraf Hakimi produced a blistering individual performance as he scored a brace to help his side come back from two goals down to beat Internazionale 3-2.
Lautaro Martínez and Matías Vecino fired Inter into a 2-0 first-half lead before Dortmund came storming back with Hakimi scoring either side of a Julian Brandt effort.
The result left Dortmund second in the group on seven points from four games, one behind Barcelona and three ahead of third-placed Inter.
Napoli gave another erratic performance as they hit the woodwork twice, wasted a hatful of chances and looked shaky at the back in a 1-1 draw at home to RB Salzburg.
| Pos | Team | P | GD | Pts |
|---|---|---|---|---|
| 1 | Barcelona | 4 | 2 | 8 |
| 2 | Borussia Dortmund | 4 | 1 | 7 |
| 3 | Inter Milan | 4 | 0 | 4 |
| 4 | Slavia Prague | 4 | -3 | 2 |
Salzburg’s teenage forward Erling Braut Haaland continued his prolific season by putting the Austrian champions ahead from a penalty, his seventh goal in four games in Group E and his 23rd of the season in all competitions. Hirving Lozano equalised with a superb strike one minute before half-time but, despite carving out more openings in the second half, Carlo Ancelotti’s side missed their chance to book a knockout-stage place with two games to spare.
Barcelona’s patchy form continued as they failed to break down a diligent and bold Slavia Prague side and were held to a 0-0 home draw in their Champions League Group F game on Tuesday.
With Luis Suárez injured, Barça lacked a cutting edge and the visiting goalkeeper, Ondrej Kolar, produced an admirable display to shut out the Catalan side, thwarting Lionel Messi and Sergi Roberto from close range in the second half.
Messi also struck the top of the post in the first half following a thrilling solo charge from his own half and then teed up Arturo Vidal for a tap-in late in the game but the effort was ruled out for offside.
Gerard Piqué did not shy away from criticising his side’s performance at the Nou Camp. “Playing like this it’s difficult to see us winning the Champions League,” he said.
Valencia breathed life into their hopes of qualifying for the last 16 with a stunning second-half turnaround to beat Lille 4-1.
The Nigerian forward Victor Osimhen gave the French side a deserved lead in the 25th minute but Valencia drew level in the 65th minute with a panenka penalty from their captain, Dani Parejo.
The home side went ahead with an own-goal from the Lille defender Adama Soumaoro before Geoffrey Kondogbia stretched Valencia’s lead two minutes later with an outstanding long-distance strike, and the substitute Ferran Torres rounded off the win with a coolly taken finish in the 90th minute.
| Pos | Team | P | GD | Pts |
|---|---|---|---|---|
| 1 | RB Leipzig | 4 | 2 | 9 |
| 2 | Lyon | 4 | 3 | 7 |
| 3 | Zenit St Petersburg | 4 | -1 | 4 |
| 4 | Benfica | 4 | -4 | 3 |
RB Leipzig were dominant as they followed up on Saturday’s eight-goal demolition of Mainz 05 in the Bundesliga by beating Zenit St Petersburg 2-0 away to stay top of Group G.Leipzig’s captain, Diego Demme, put the visitors ahead with a dipping shot through a crowded penalty area in first-half stoppage time before Timo Werner found Emil Forsberg, who slipped the ball through to Marcel Sabitzer, and the Austrian took the ball past the goalkeeper, Mikhail Kerzhakov, with his first touch before slotting it into the net.
Lyon revived their hopes of reaching the last 16 when first-half goals by Joachim Andersen and Memphis Depay helped secure a 3-1 win over Benfica.


This is the home page for the Purdue University chapter of Perl Mongers, which has been active since 2006. Since 2015, we've co-organized as the Perl SIG of Hack Lafayette. We meet monthly, with presentations primarily but not exclusively about Perl.
Membership in our Perl Users Group is free and open to anyone. People at all levels of programmming experience are welcome and encouraged to attend.
We have meetings once a month on the second Wednesday of the month,
usually involving a presentation dealing with technical topics. In the
past, we've covered topics relating to Javascript, HTML Mail, Selenium,
and Go, as well as Perl.
Drink coffee (or whatever beverage suits your taste) and talk
about open source (or whatever topics come up).
2:00 PM in Online event
Because of COVID-19, the 2020 Perl and Raku Conference has been
moved to the Cloud. Gizmo and Dave are involved, and will talk
about what parts of the Conference interested them and how things
worked.
5:30 PM in Online event
Drink coffee (or whatever beverage suits your taste) and talk
about open source (or whatever topics come up).
2:00 PM in Online event
Topic TBA.
5:30 PM in Online event
Sign up for the mailing list to be kept informed of upcoming events.
If you have questions about the organization or about this page, contact Dave Jacoby.


Group Details
DELETE GROUP
Add a member
Add a member
Delete a member
Delete a member
Members of {{group_name}}
Date added
{{user.name}}
{{user.date}}


I am interested in this project from an education point of view, rather than as a specific project.
I have built the CT sensor circuit as described here: http://openenergymonitor.org/emon/buildingblocks/ct-sensors-interface
Due to just being components i had lying around i have used a 47 ohm burden, 100k ohm divider resistors, and a 47uF Cap.
as far as i can see, the CT clamp outputs "a voltage" which conforms to the AC wave form of the supply (UK 240V)
How does the burden resistor affect the output to the arduino? (my max monitored amps is 75A, but does this affect the reading given to the analog pin?
What form is the output to arduino analog pin if you dont use the OEM library? a very fast waveform? too fast for the arduino?
if i have hypothesized this correctly, the library must look for the maximum of recorded peaks over a timeframe and present them as the actual current?
I am hoping to be able to write my own sketch to read the current draw, but am struggling to see what i am looking at (due currently to limited understanding i guess)
Hope this all makes sense. thanks
Ol
Re: CT clamp data output?
The clue is in the name - current transformer. It acts as a current source, the output is a current, not a voltage. No matter what value the burden resistor (within limits), the same current always flows in the secondary circuit. That current is of course generated by the changing flux in the core which has in turn been generated by the primary current. So the secondary current should be an exact replica of the primary current - the current you're trying to measure.
From that, it's a simple step via Ohm's Law to see that the burden resistor converts the current into a voltage. We need a voltage because the ADC input has a very high impedance and it draws almost no current. Nor can you force a current into it - that's what 'high impedance' means.
The limits I mentioned are imposed by the construction of the c.t. Like any other transformer, it has a maximum power (or VA) rating and if that is exceeded, you overload it. So maximum power is with a high value of load (burden) resistor and minimum power is with zero value burden - a short circuit. I said a c.t. was a current source, this is the exact opposite to a normal voltage transformer.
The OEM library is just a collection of software. It's not necessary to use it (but it's very convenient!) You can do exactly the same things without it. What you need to do is measure the voltage in some way. What we choose to do is sample the voltage many times (about 50) during each cycle of mains and use the numbers to calculate the voltage, then knowing the various conversion constants (like the transformer ratio and burden value) we can convert that into a current. So your hypothesis is wrong - we don't just measure the peaks, we measure all of the wave. If I carry on, I'll be repeating a lot that's already written in Building Blocks.


JWPlayerDelegate Protocol Reference
| Conforms to | NSObject |
|---|---|
| Declared in | JWPlayerDelegate.h |
Overview
@protocol JWPlayerDelegate
The JWPlayerDelegate protocol defines methods that a delegate of a JWPlayerController object can optionally implement to intervene when player callbacks are captured.
Other Methods
– onAll
onAll(callback)
- (void)onAll
Discussion
This singular API call can be used to gather all information from the player’s API. Note: This will output a large amount of information and may degrade performance if it is used for an extended period of time.
Declared In
JWPlayerDelegate.h
Playback
– onPlayAttempt
onPlayAttempt(callback)
- (void)onPlayAttempt
Discussion
Useful for QOE tracking - Triggered the instant a user attempts to play a file. This event fires before both the onPlay and onBeforePlay events.
Declared In
JWPlayerDelegate.h
– onBeforePlay
onBeforePlay(callback)
- (void)onBeforePlay
Discussion
Fired just before the player begins playing. Unlike the onPlay event, the player will not have begun playing or buffering when triggered, which makes this the right moment to insert preroll ads using playAd().
Declared In
JWPlayerDelegate.h
– onFirstFrame:
onFirstFrame(callback)
- (void)onFirstFrame:(NSInteger)loadTime
Parameters
loadTime |
The amount of time (In milliseconds) it takes for the player to transition from a playAttempt to a firstFrame event. Use this to determine the period of time between a user pressing play and the same user viewing their content. |
|---|
Discussion
Useful for QOE tracking - Triggered by a video’s first frame event (Or the instant an audio file begins playback). This event pinpoints when content playback begins.
Declared In
JWPlayerDelegate.h
– onPlay
onPlay(callback)
- (void)onPlay
Discussion
Fired when the player enters the ‘playing’ state.
Declared In
JWPlayerDelegate.h
– onPlay:
onPlay(callback)
- (void)onPlay:(NSString *)oldState
Discussion
Fired when the player enters the ‘playing’ state.
Declared In
JWPlayerDelegate.h
– onPause
onPause(callback)
- (void)onPause
Discussion
Fired when the player enters the ‘paused’ state.
Declared In
JWPlayerDelegate.h
– onPause:
onPause(callback)
- (void)onPause:(NSString *)oldState
Discussion
Fired when the player enters the ‘paused’ state.
Declared In
JWPlayerDelegate.h
– onIdle
onIdle(callback)
- (void)onIdle
Discussion
Fired when the player enters the ‘idle’ state.
Declared In
JWPlayerDelegate.h
– onIdle:
onIdle(callback)
- (void)onIdle:(NSString *)oldState
Discussion
Fired when the player enters the ‘idle’ state.
Declared In
JWPlayerDelegate.h
– onReady
onReady(callback)
- (void)onReady
Discussion
Fired when the player has initialized in either Flash or HTML5 and is ready for playback.
Declared In
JWPlayerDelegate.h
– onReady:
onReady(callback)
- (void)onReady:(NSInteger)setupTime
Discussion
Fired when the player has initialized in either Flash or HTML5 and is ready for playback.
Declared In
JWPlayerDelegate.h
– onBeforeComplete
onBeforeComplete(callback)
- (void)onBeforeComplete
Discussion
Fired just before the player completes playing. Unlike the onComplete event, the player will not have moved on to either showing the replay screen or advancing to the next playlistItem, which makes this the right moment to insert post-roll ads using playAd().
Declared In
JWPlayerDelegate.h
– onComplete
onComplete(callback)
- (void)onComplete
Discussion
Fired when an item completes playback.
Declared In
JWPlayerDelegate.h
Buffer
– onBuffer
onBuffer(callback)
- (void)onBuffer
Discussion
Fired when the player enters the ‘buffering’ state.
Declared In
JWPlayerDelegate.h
– onBuffer:reason:
onBuffer(callback)
- (void)onBuffer:(NSString *)oldState reason:(NSString *)reason
Discussion
Fired when the player enters the ‘buffering’ state.
Declared In
JWPlayerDelegate.h
– onBufferChange:
onBuffer(callback)
- (void)onBufferChange:(double)buffer
Parameters
buffer |
Percentage between 0 and 100 of the current media that is buffered. |
|---|
Discussion
Fired when the currently playing item loads additional data into its buffer.
Declared In
JWPlayerDelegate.h
Playback Position
– onTime:ofDuration:
onTime(callback)
- (void)onTime:(double)position ofDuration:(double)duration
Parameters
position |
Playback position in seconds. |
|---|---|
duration |
Duration of the current item in seconds. |
Discussion
While the player is playing, this event is fired as the playback position gets updated. This may occur as frequently as 10 times per second.
Declared In
JWPlayerDelegate.h
– onSeek:fromPosition:
onSeek(callback)
- (void)onSeek:(double)offset fromPosition:(double)position
Parameters
offset |
The user requested position to seek to (in seconds). Note the actual position the player will eventually seek to may differ. |
|---|---|
position |
The position of the player before the player seeks (in seconds). |
Discussion
Fired after a seek has been requested either by scrubbing the controlbar or through the API.
Declared In
JWPlayerDelegate.h
– onSeeked
onSeeked(callback)
- (void)onSeeked
Discussion
Triggered when content playback resumes after seeking. As opposed to onSeek, this API listener will only trigger when playback actually continues.
Declared In
JWPlayerDelegate.h
Metadata
– onMeta:
onMeta(callback)
- (void)onMeta:(NSDictionary *)metaData
Parameters
metaData |
Object containing the new metadata. This can be metadata hidden in the media (ID3, XMP, keyframes) or metadata broadcasted by the playback provider (bandwidth, quality switches). |
|---|
Discussion
Fired when new metadata has been broadcasted by the player.
Declared In
JWPlayerDelegate.h
Caption
– onCaptionsList:with:
onCaptionsList(callback)
- (void)onCaptionsList:(NSArray *)tracks with:(NSInteger)selectedTrack
Parameters
tracks |
The full array of caption tracks. |
|---|---|
selectedTrack |
The currently selected caption track. |
Discussion
Fired when the list of available captions tracks is updated. Happens shortly after a playlist item starts playing.
Declared In
JWPlayerDelegate.h
– onCaptionsChanged:
onCaptionsChanged (callback)
- (void)onCaptionsChanged:(NSInteger)selectedTrack
Parameters
selectedTrack |
Index of the new active captions track in the tracks array. Note the captions are Off if the selectedTrack is 0. |
|---|
Discussion
Fired when the active captions track is changed. Happens in response to e.g. a user clicking the controlbar CC menu or a script calling setCurrentCaptions.
Declared In
JWPlayerDelegate.h
– onCaptionsChange:
onCaptionsChange (callback)
- (void)onCaptionsChange:(NSInteger)selectedTrack
Parameters
selectedTrack |
Index of the new active captions track in the tracks array. Note the captions are Off if the selectedTrack is 0. |
|---|
Discussion
Fired when the active captions track is changed. Happens in response to e.g. a user clicking the controlbar CC menu or a script calling setCurrentCaptions.
Declared In
JWPlayerDelegate.h
Quality
– onLevels:
onLevels(callback)
- (void)onLevels:(NSArray *)levels
Parameters
levels |
The full array of quality levels. |
|---|
Discussion
Fired when the list of available quality levels is updated. Happens e.g. shortly after a playlist item starts playing.
Declared In
JWPlayerDelegate.h
– onQualityLevels:
onQualityLevels(callback)
- (void)onQualityLevels:(NSArray *)levels
Parameters
levels |
The full array of quality levels. |
|---|
Discussion
Fired when the list of available quality levels is updated. Happens e.g. shortly after a playlist item starts playing.
Declared In
JWPlayerDelegate.h
– onLevelsChanged:
onLevelsChanged(callback)
- (void)onLevelsChanged:(NSInteger)currentLevel
Parameters
currentLevel |
Index of the new quality level in the getQualityLevels() array. |
|---|
Discussion
Fired when the active quality level is changed. Happens in response to e.g. a user clicking the controlbar quality menu or a script calling setCurrentLevel.
Declared In
JWPlayerDelegate.h
– onQualityChange:
onQualityChange(callback)
- (void)onQualityChange:(NSInteger)currentQuality
Parameters
currentQuality |
Index of the new quality level in the getQualityLevels() array. |
|---|
Discussion
Fired when the active quality level is changed. Happens in response to e.g. a user clicking the controlbar quality menu or a script calling setCurrentQuality.
Declared In
JWPlayerDelegate.h
– onVisualQuality:reason:label:
onVisualQuality(callback)
- (void)onVisualQuality:(NSString *)mode reason:(NSString *)reason label:(NSString *)label
Parameters
mode |
The type of quality selection that has been enabled with the player. This will read auto when a user is relying on our automatic quality determination or manual when a user has selected a static quality. |
|---|---|
reason |
Why the quality was changed. This can be initial choice. |
label |
Information about the quality that was changed. This will display your label, bitrate, index, and resolution. |
Discussion
Fired when the active quality level is changed for HLS. This is different than onLevelsChanged since this will trigger when adaptive streaming automatically shifts quality. In addition, this will also provide reasons why this change happened, as well as information about how and why this change was triggered.
Declared In
JWPlayerDelegate.h
Audio Track
– onAudioTracks:
onAudioTracks (callback)
- (void)onAudioTracks:(NSArray *)audioTracks
Parameters
audioTracks |
The full array with audio tracks. |
|---|
Discussion
Fired when the list of available audio tracks is updated. Happens e.g. shortly after a playlist item starts playing.
Declared In
JWPlayerDelegate.h
– onAudioTrackChanged:
onAudioTrackChanged (callback)
- (void)onAudioTrackChanged:(NSInteger)currentAudioTrack
Parameters
currentAudioTrack |
Index of the newly selected audio track in the JWPlayerController’s audioTracks property. |
|---|
Discussion
Fired when the active audio track is changed. Happens in repsponse to e.g. a user clicking the audio tracks menu or setting the currentAudioTrack JWPlayerController property.
Declared In
JWPlayerDelegate.h
Playlist
– onPlaylist:
onPlaylist(callback)
- (void)onPlaylist:(NSArray *)playlist
Parameters
playlist |
The new playlist; an array of playlist items. |
|---|
Discussion
Fired when a new playlist has been loaded into the player. Note this event is not fired as part of the initial playlist load (playlist is loaded when onReady is called).
Declared In
JWPlayerDelegate.h
– onPlaylistItem:
onPlaylistItem(callback)
- (void)onPlaylistItem:(NSInteger)index
Parameters
index |
Zero-based index into the playlist array (e.g. 0 is the first item). |
|---|
Discussion
Fired when the playlist index changes to a new playlist item. This event occurs before the player begins playing the new playlist item.
Declared In
JWPlayerDelegate.h
– onPlaylistComplete
onPlaylistComplete(callback)
- (void)onPlaylistComplete
Discussion
Fired when the player is done playing all items in the playlist. However, if the repeat option is set true, this is never fired.
Declared In
JWPlayerDelegate.h
Resize
– onFullscreen:
onFullscreen
- (void)onFullscreen:(BOOL)status
Parameters
status |
Whether or not video is in fullscreen mode. |
|---|
Discussion
Fired when the player toggles to/from fullscreen.
Declared In
JWPlayerDelegate.h
– onResize:
onResize
- (void)onResize:(CGSize)size
Parameters
size |
The new dimensions of the player. |
|---|
Discussion
Fired when the player’s size changes.
Declared In
JWPlayerDelegate.h
– onPictureInPicture:
onPictureInPicture
- (void)onPictureInPicture:(BOOL)status
Parameters
status |
Whether or not player is displayed in Picture in Picture. |
|---|
Discussion
Fired when the player enters/exits picture in picture mode. Picture in Picture is only available on iPad Pro, iPad Air (or later), and iPad mini 2 (or later) running iOS 9.
Declared In
JWPlayerDelegate.h
Controls
– onControls:
onControls
- (void)onControls:(BOOL)status
Parameters
status |
New state of the controls. Is true when the controls were just enabled. |
|---|
Discussion
Fired when controls are enabled or disabled by setting the JWPlayerController controls property to a boolean.
Declared In
JWPlayerDelegate.h
– onDisplayClick
onDisplayClick(callback)
- (void)onDisplayClick
Discussion
Fired when a user clicks the video display. Especially useful for wiring your own controls when the built-in ones are disabled. Note the default click action (toggling play/pause) will still occur if controls are enabled.
Declared In
JWPlayerDelegate.h
– onControlBarVisible:
onControlBarVisible
- (void)onControlBarVisible:(BOOL)isVisible
Parameters
isVisible |
Current control bar visibility status. |
|---|
Discussion
Fired when player control bar appears/disappears. Would not be called if controls set to false.
Especially useful for synchronizing custom controls visibility with player control bar.
Declared In
JWPlayerDelegate.h
Advertising
– onAdRequest:forPosition:
onAdRequest(callback)
- (void)onAdRequest:(NSString *)tag forPosition:(NSString *)adPosition
Parameters
tag |
The ad tag that is being requested. |
|---|---|
adPosition |
Whether an ad is in a pre, mid, or post position. |
Discussion
VAST and IMA. Fired whenever an ad is requested by the player.
Declared In
JWPlayerDelegate.h
– onAdRequest:forPosition:client:creativeType:
onAdRequest(callback)
- (void)onAdRequest:(NSString *)tag forPosition:(NSString *)adPosition client:(JWAdClient)client creativeType:(NSString *)creativeType
Parameters
tag |
The ad tag that is being requested. |
|---|---|
adPosition |
Whether an ad is in a pre, mid, or post position. |
client |
The client that is currently being used, vast or googima. |
creativeType |
The type of ad that is being played, linear or nonlinear. |
Discussion
VAST and IMA. Fired whenever an ad is requested by the player.
Declared In
JWPlayerDelegate.h
– onAdSkipped:
onAdSkipped(callback)
- (void)onAdSkipped:(NSString *)tag
Parameters
tag |
The ad tag that was skipped. |
|---|
Discussion
VAST and IMA. Fired whenever an ad has been skipped.
Declared In
JWPlayerDelegate.h
– onAdSkipped:client:creativeType:
onAdSkipped(callback)
- (void)onAdSkipped:(NSString *)tag client:(JWAdClient)client creativeType:(NSString *)creativeType
Parameters
tag |
The ad tag that was skipped. |
|---|---|
client |
The client that is currently being used, vast or googima. |
creativeType |
The type of ad that is being played, linear or nonlinear. |
Discussion
VAST and IMA. Fired whenever an ad has been skipped.
Declared In
JWPlayerDelegate.h
– onAdComplete:
onAdComplete(callback)
- (void)onAdComplete:(NSString *)tag
Parameters
tag |
The ad tag that is currently playing. |
|---|
Discussion
VAST and IMA. Fired whenever an ad has completed playback.
Declared In
JWPlayerDelegate.h
– onAdComplete:client:creativeType:
onAdComplete(callback)
- (void)onAdComplete:(NSString *)tag client:(JWAdClient)client creativeType:(NSString *)creativeType
Parameters
tag |
The ad tag that is currently playing. |
|---|---|
client |
The client that is currently being used, vast or googima. |
creativeType |
The type of ad that is being played, linear or nonlinear. |
Discussion
VAST and IMA. Fired whenever an ad has completed playback.
Declared In
JWPlayerDelegate.h
– onAdClick:
onAdClick(callback)
- (void)onAdClick:(NSString *)tag
Parameters
tag |
The ad tag that is currently playing. |
|---|
Discussion
VAST and IMA. Fired whenever a user clicks an ad to be redirected to its landing page.
Declared In
JWPlayerDelegate.h
– onAdClick:client:creativeType:
onAdClick(callback)
- (void)onAdClick:(NSString *)tag client:(JWAdClient)client creativeType:(NSString *)creativeType
Parameters
tag |
The ad tag that is currently playing. |
|---|---|
client |
The client that is currently being used, vast or googima. |
creativeType |
The type of ad that is being played, linear or nonlinear. |
Discussion
VAST and IMA. Fired whenever a user clicks an ad to be redirected to its landing page.
Declared In
JWPlayerDelegate.h
– onAdCompanions:companions:
onAdCompanions(callback)
- (void)onAdCompanions:(NSString *)tag companions:(NSArray<JWAdCompanion*> *)companions
Parameters
tag |
The ad tag that is currently playing. |
|---|---|
companions |
An array with available companion information. |
Discussion
VAST only. Fired whenever an ad contains companions.
Declared In
JWPlayerDelegate.h
– onAdImpression:
onAdImpression(callback)
- (void)onAdImpression:(NSString *)tag
Parameters
tag |
The ad tag that is currently playing. |
|---|
Discussion
VAST and IMA. Fired whenever an ad starts playing back. At this point, the VAST tag is loaded and the creative selected.
Declared In
JWPlayerDelegate.h
– onAdImpression:adPosition:adSystem:adTitle:client:creativeType:vastVersion:wrapper:
onAdImpression(callback)
- (void)onAdImpression:(NSString *)tag adPosition:(NSString *)position adSystem:(NSString *)adSystem adTitle:(NSString *)adTitle client:(JWAdClient)client creativeType:(NSString *)creativeType vastVersion:(double)vastVersion wrapper:(NSArray *)wrapper
Parameters
tag |
The ad tag that is currently playing. |
|---|---|
adSystem |
AdSystem referenced inside of the VAST XML. |
adTitle |
AdTitle referenced inside of the VAST XML. |
client |
The client that’s currently being used, vast or googima. |
creativeType |
The type of ad that is being played. |
adPosition |
An ad’s position. |
Discussion
VAST and IMA. Fired whenever an ad starts playing back. At this point, the VAST tag is loaded and the creative selected.
Declared In
JWPlayerDelegate.h
– onAdImpression:adPosition:adSystem:adTitle:client:creativeType:vastVersion:wrapper:mediaFile:linear:
onAdImpression(callback)
- (void)onAdImpression:(NSString *)tag adPosition:(NSString *)position adSystem:(NSString *)adSystem adTitle:(NSString *)adTitle client:(JWAdClient)client creativeType:(NSString *)creativeType vastVersion:(double)vastVersion wrapper:(NSArray *)wrapper mediaFile:(NSString *)mediaFile linear:(BOOL)linear
Parameters
tag |
The ad tag that is currently playing. |
|---|---|
adSystem |
AdSystem referenced inside of the VAST XML. |
adTitle |
AdTitle referenced inside of the VAST XML. |
client |
The client that’s currently being used, vast or googima. |
creativeType |
The type of ad that is being played. |
mediaFile |
the currently playing media item. |
linear |
Wether the ad is linear or nonlinear. |
adPosition |
An ad’s position. |
Discussion
VAST and IMA. Fired whenever an ad starts playing back. At this point, the VAST tag is loaded and the creative selected.
Declared In
JWPlayerDelegate.h
– onAdPlay:
onAdPlay(callback)
- (void)onAdPlay:(NSString *)tag
Parameters
tag |
The ad tag that is currently playing. |
|---|
Discussion
VAST and IMA. Fired whenever an ad starts playing. Will fire after an ad is unpaused.
Declared In
JWPlayerDelegate.h
– onAdPlay:creativeType:newState:oldState:
onAdPlay(callback)
- (void)onAdPlay:(NSString *)tag creativeType:(NSString *)creativeType newState:(NSString *)newState oldState:(NSString *)oldState
Parameters
tag |
The ad tag that is currently playing. |
|---|---|
creativeType |
The type of ad that is being played. |
newState |
The new state of the player. |
oldState |
the old state of the player. |
Discussion
VAST and IMA. Fired whenever an ad starts playing. Will fire after an ad is unpaused.
Declared In
JWPlayerDelegate.h
– onAdPause:
onAdPause(callback)
- (void)onAdPause:(NSString *)tag
Parameters
tag |
The ad tag that is currently playing. |
|---|
Discussion
VAST and IMA. Fired whenever an ad is paused.
Declared In
JWPlayerDelegate.h
– onAdPause:creativeType:newState:oldState:
onAdPause(callback)
- (void)onAdPause:(NSString *)tag creativeType:(NSString *)creativeType newState:(NSString *)newState oldState:(NSString *)oldState
Parameters
tag |
The ad tag that is currently playing. |
|---|---|
creativeType |
The type of ad that is being played. |
newState |
The new state of the player. |
oldState |
the old state of the player. |
Discussion
VAST and IMA. Fired whenever an ad is paused.
Declared In
JWPlayerDelegate.h
– onAdTime:ofDuration:tag:index:
onAdTime(callback)
- (void)onAdTime:(double)position ofDuration:(double)duration tag:(NSString *)tag index:(NSInteger)sequence
Parameters
position |
The current playback position in the ad creative. |
|---|---|
duration |
The total duration of the ad creative. |
tag |
The ad tag that is currently playing. |
sequence |
Returns the sequence number the ad is a part of. |
Discussion
VAST and IMA. Fired while ad playback is in progress.
Declared In
JWPlayerDelegate.h
– onAdTime:ofDuration:tag:index:client:creativeType:
onAdTime(callback)
- (void)onAdTime:(double)position ofDuration:(double)duration tag:(NSString *)tag index:(NSInteger)sequence client:(JWAdClient)client creativeType:(NSString *)creativeType
Parameters
position |
The current playback position in the ad creative. |
|---|---|
duration |
The total duration of the ad creative. |
tag |
The ad tag that is currently playing. |
sequence |
Returns the sequence number the ad is a part of. |
Discussion
VAST and IMA. Fired while ad playback is in progress.
Declared In
JWPlayerDelegate.h
– onAdError:
onAdError(callback)
- (void)onAdError:(NSError *)error
Parameters
error |
Object containing the error message under property localizedDescription. The following error messages are possible: -invalid ad tag (e.g. invalid XML, broken VAST) -ad tag empty (e.g. no ad available after chasing the wrappers) -no compatible creatives (e.g. only FLV video in HTML5) -error playing creative (e.g. a 404 on the MP4 video) -error loading ad tag (for all else) When applicable, the userInfo (NSDictionary) property of error will contain the ad tag that is currently playing (key: tag), and/or the vmap (key: vmap). If Google IMA is being used as the ad Client, the imaErrorType will be included (key: imaErrorType) and not the vmap. |
|---|
Discussion
VAST and IMA. Fired whenever an error prevents the ad from playing.
Declared In
JWPlayerDelegate.h
– onAdStarted:creativeType:
onAdStarted(callback)
- (void)onAdStarted:(NSString *)tag creativeType:(NSString *)creativeType
Parameters
tag |
The URL of the ad tag that was started. |
|---|---|
creativeType |
The type of VPAID ad that is being played. |
Discussion
VPAID-only. Will trigger when a VPAID ad creative signals to our player that it is starting. This differs from adImpression since the advertisement may not yet be visible.
Declared In
JWPlayerDelegate.h
– onAdMeta:
onAdMeta(callback)
- (void)onAdMeta:(NSDictionary *)metaData
Parameters
metaData |
Object containing the new metadata. This can be metadata hidden in the media (ID3, XMP, keyframes) or metadata broadcasted by the playback provider (bandwidth, quality switches). |
|---|
Discussion
Fired when new metadata has been broadcasted by the player during an Ad.
Declared In
JWPlayerDelegate.h
Related
– onOpenRelatedOverlay:relatedFile:items:
onOpenRelatedOverlay(callback)
- (void)onOpenRelatedOverlay:(JWRelatedOpenMethod)method relatedFile:(NSString *)relatedFile items:(NSArray<JWPlaylistItem*> *)items
Parameters
method |
The method used to open the overlay. (api, complete, or interaction) |
|---|---|
relatedFile |
The URL of the feed that was loaded into the player. |
items |
An object of all objects that have been loaded into the related plugin. |
Discussion
Triggers when the related overlay is opened.
Declared In
JWPlayerDelegate.h
– onCloseRelatedOverlay:
onCloseRelatedOverlay(callback)
- (void)onCloseRelatedOverlay:(NSString *)method
Parameters
method |
The method used to close the overlay. (api, complete, or click) |
|---|
Discussion
Triggers when the related overlay is closed.
Declared In
JWPlayerDelegate.h
– onRelatedPlay:auto:position:
onRelatedPlay(callback)
- (void)onRelatedPlay:(JWPlaylistItem *)item auto:(BOOL)autoplay position:(NSInteger)position
Parameters
item |
Metadata for the chosen item specified in the feed. |
|---|---|
position |
Ordinal position of the related video that has been chosen. |
auto |
Returns true if started via autoplay; false if manually started. |
Discussion
Triggers when a user selects an object in a related feed.
Declared In
JWPlayerDelegate.h
Error
– onError:
onError(callback)
- (void)onError:(NSError *)error
Parameters
error |
Object containing the reason for the error in property localizedDescription. See “Common error messages” on http://support.jwplayer.com/customer/portal/articles/1403682-troubleshooting-your-setup for a list of possible media errors. |
|---|
Discussion
Fired when a media error has occurred, causing the player to stop playback and go into ‘idle’ mode.
Declared In
JWPlayerDelegate.h
– onSetupError:
onSetupError(callback)
- (void)onSetupError:(NSError *)error
Parameters
error |
Object containing the error message that describes why the player could not be setup. Error message can be accessed in property localizedDescription. |
|---|
Discussion
Fired when neither the Flash nor HTML5 player could be setup.
Declared In
JWPlayerDelegate.h


Portfolio
-
- Personal Works -
Imperfect Brightness King
(Android)
Imperfect Brightness King
(iOS)Imperfect Brightness King (iOS)
View in Youtube
Line Chatbot
Youtube Channel Crawler
View in Line
Message Board (Backend, PM)
Message Board
View in Web -
- Freelance Cases -
Taiwan Face Memory Test (TFMT)
Independently
Taiwan Face Process Test
Independently
Taiwan Emotion Recognition Test
Independently -
- Engagement -
iCarer
Independently: Face Recognition Account System
iCarer
Independently: Bluetooth connection of Blood Glucose and Blood Pressure meter


Capsule Care
Home
Services
Drugs
Cosmetics
Nutrition
Best Selling
Add Product
About Us
Contact Us
Cart
Add Product
Add New Product
Product Name
Product Descreption
Product Image
Product Price
Product Type
Product Type
Drugs
Cosmetics
Nutrition
your product has been added


Project 1
My greatest triumph...| # | Project Title | Project Description | Course | Project GitHub Repo | Running Project |
|---|---|---|---|---|---|
| 1 | Project 1 | Webstorm & Github Tutorial | IS 117 | My Repository | My Project |
The purpose of this project was to demonstrate knowledge of Webstorm and Github. We had to screenshot steps of a process for both applications. This project was done with a partner. I did the Webstorm tutorial and my partner did the Github tutorial.


HowTo Performance Test in Rails 4
Inspired by
First thing you should know
In Rails 4, performance test functionality was extracted out ! So, you need to add
# Gemfile
gem 'rails-perftest' ,group: :benchmark
And if you want your rails-perftest show memory usage. You also need to add
# Gemfile
gem 'ruby-prof' ,group: :benchmark
[! Important !] In my environment,
rails-4.1.6, ruby-<IP_ADDRESS>, x86_64-darwin14
After doing lots of efforts, I finally can get memory usage info.
But I fount this issue. please check: https://github.com/ruby-prof/ruby-prof/issues/165.
And I’m not sure that my memory usage is correct or not.
But I’ll still show you how I do these jobs. Maybe after fixing the issue, we can get correct informantion.
Create a new environment for performance test
create a new file: config/environments/benchmark.rb
In fact, all contents are copied from config/environments/production.rb since we need to know performance in real world.
Rails.application.configure do
# Settings specified here will take precedence over those in config/application.rb.
# Code is not reloaded between requests.
config.cache_classes = true
# Eager load code on boot. This eager loads most of Rails and
# your application in memory, allowing both threaded web servers
# and those relying on copy on write to perform better.
# Rake tasks automatically ignore this option for performance.
config.eager_load = true
# Full error reports are disabled and caching is turned on.
config.consider_all_requests_local = false
config.action_controller.perform_caching = true
# Enable Rack::Cache to put a simple HTTP cache in front of your application
# Add `rack-cache` to your Gemfile before enabling this.
# For large-scale production use, consider using a caching reverse proxy like nginx, varnish or squid.
# config.action_dispatch.rack_cache = true
# Disable Rails's static asset server (Apache or nginx will already do this).
config.serve_static_assets = false
# Compress JavaScripts and CSS.
config.assets.js_compressor = :uglifier
# config.assets.css_compressor = :sass
# Do not fallback to assets pipeline if a precompiled asset is missed.
config.assets.compile = false
# Generate digests for assets URLs.
config.assets.digest = true
# `config.assets.precompile` and `config.assets.version` have moved to config/initializers/assets.rb
# Specifies the header that your server uses for sending files.
# config.action_dispatch.x_sendfile_header = "X-Sendfile" # for apache
# config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for nginx
# Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
config.force_ssl = true
# Set to :debug to see everything in the log.
config.log_level = :info
# Prepend all log lines with the following tags.
# config.log_tags = [ :subdomain, :uuid ]
# Use a different logger for distributed setups.
# config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new)
# Use a different cache store in production.
# config.cache_store = :mem_cache_store
config.cache_store = :dalli_store
# Enable serving of images, stylesheets, and JavaScripts from an asset server.
# config.action_controller.asset_host = "http://assets.example.com"
# Ignore bad email addresses and do not raise email delivery errors.
# Set this to true and configure the email server for immediate delivery to raise delivery errors.
# config.action_mailer.raise_delivery_errors = false
# Enable locale fallbacks for I18n (makes lookups for any locale fall back to
# the I18n.default_locale when a translation cannot be found).
config.i18n.fallbacks = true
# Send deprecation notices to registered listeners.
config.active_support.deprecation = :notify
# Disable automatic flushing of the log to improve performance.
# config.autoflush_log = false
# Use default logging formatter so that PID and timestamp are not suppressed.
config.log_formatter = ::Logger::Formatter.new
# Do not dump schema after migrations.
config.active_record.dump_schema_after_migration = false
end
add configuration: config/database.yml
default: &default
adapter: mysql2
encoding: utf8
host: <IP_ADDRESS>
username: root
password: your_password
staging:
<<: *default
database: your_project_development
development:
<<: *default
database: your_project_development
test:
<<: *default
database: your_project_test
production:
<<: *default
database: your_project_production
benchmark:
<<: *default
database: your_project_production
Create a test helper file to setup your benchmark tests:
create a new file: test/benchmark_helper.rb
ENV["RAILS_ENV"] = "benchmark"
require File.expand_path('../../config/environment', __FILE__)
require 'rails/test_help'
require 'rails/performance_test_help'
class ActionDispatch::PerformanceTest
self.profile_options = { runs: 5, metrics: [:wall_time, :memory,:objects, :gc_runs, :gc_time],
output: 'tmp/performance', formats: [:flat, :graph_html, :call_tree, :call_stack] }
end
Create a test file
rails generate performance_test page
and it will create a file named page.rb under test/performance/
require 'benchmark_helper'
class PageTest < ActionDispatch::PerformanceTest
test "homepage" do
get '/'
end
end
Add a rake task for running your real-world benchmarks (optional)
lib/tasks/test_benchmark.rake
Rake::TestTask.new(:real_world_benchmark => ['test:benchmark_mode']) do |t|
t.libs << 'test'
t.pattern = 'test/performance/**/*_test.rb'
end
end
Update your Rakefile
Rails 4 no longer defines db:test:prepare, however, rails-perftest still use test:prepare. So, we need to workaround.
require File.expand_path('../config/application', __FILE__)
Rails.application.load_tasks
Rake.application.instance_eval do
# Remove test:prepare
@tasks['test:benchmark'].prerequisites.shift if @tasks['test:benchmark']
@tasks['test:profile'].prerequisites.shift if @tasks['test:profile']
end
For memory measurement, we need the railsexpress patches.
https://github.com/skaes/rvm-patchsets
rvm get stable
But my rvm isn’t update to date correctly, So I use
cd /tmp
git clone https://github.com/skaes/rvm-patchsets.git
cd rvm-patchsets
./install.sh
Then I run
rvm reinstall 2.2.2 --patch railsexpress
After reinstall Ruby, we need to recreate our gemset
cd your_project
rvm gemset create your_project
gem install bundler
bundle install
Finally
These command should work~
RAILS_ENV=benchmark bundle exec rake test:real_world_benchmark
RAILS_ENV=benchmark bundle exec rake test:benchmark
RAILS_ENV=benchmark bundle exec rake test:profile
Then these command will create some files under your_project/tmp/performance
PS. Please notice that before performance test, you should make sure that there are no any errors while visit the page.
Without using “rails-perftest”, you might use..
if You need detailed information, you can use “request_profiler”
inspired by https://www.coffeepowered.net/2013/08/02/ruby-prof-for-rails/
we can use request_profiler, which allows you to profile rack requests using ruby-prof.
gem 'request_profiler'
And you might need to add this line into config/enviornments/benchmark.rb
config.middleware.use "Rack::RequestProfiler"
On every page you want to profile, just add ?profile_request=true
for example, we want to profile “/” , just key
https://localhost:3000/?profile_request=true
then you wiil see file named 2015-07-14-16-49-19—profile_request=true.html under tmp/performance/
if You need to quickly and easily find out what is bottleneck, “rack-mini-profiler” is best choice.
Gemfile
gem 'rack-mini-profiler', require: false
Create a new file config/initializers/rack_profiler.rb
if Rails.env == 'development' || Rails.env == 'benchmark'
require 'rack-mini-profiler'
# initialization is skipped so trigger it
Rack::MiniProfilerRails.initialize!(Rails.application)
end
Add to app/controllers/application_controller.rb
before_action :authorize_for_miniprofiler
def authorize_for_miniprofiler
if Rails.env == 'development' || Rails.env == 'benchmark'
Rack::MiniProfiler.authorize_request
end
end
now you can see this under development and benchmark environments


 Register for summer camp at MVPNS!
Children who are currently enrolled in the 3's, 4's, and 4/5's during the 2015-2016 school year have priority registration through Friday, March 17th. We will then open up our summer camp registration to the public.
Please mail the completed registration form to: MVPNS, P.O. Box 4174, Mountain View, CA 94040. Attach a check made out to MVPNS in the amount of $150 per week. Please note the name of your child and "Summer Camp" in the memo section of your check.
Tuition is non-refundable unless we can replace your child's spot. Limited tuition assistance is available.
Please note: We are still developing the number of days required for the work parent schedule during camp (maximum will be one day per week).
If you have any questions please contact Teacher Claire via email at<EMAIL_ADDRESS>* Must have turned 3 years old by September 1, 2016


And I make things. From big concepts to finite details, I have a strong ambition to create unique experiences & shape the world around me. Most of all, I'm driven to learn everything I can using design to solve problems.
BFA in Visual Communication | University of Oklahoma ('16)
If you'd like to chat or download my resume, drop me a line.


The ratio of boys to girls born in Russia is 1.09:1.
What proportion of Russian families with exactly 6 children will have at least 3 boys? (Ignore the probability of multiple births.)
Submission Modes and Output Format
You may submit either an R or Python program to accomplish the above task, or solve the problem on pen-and-paper. Your output should be a floating point/decimal number, correct to 3 places of decimal.
In the text box below, enter a floating point/decimal number, correct to 3 places of decimal.
Alternatively, you may submit an R program, which uses the above parameters (hard-coded) and computes the answer.
Your answer should resemble something like:
0.123
(This is NOT the answer, just a demonstration of what the answering format should resemble).


@* * Copyright 2021 HM Revenue & Customs * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *@ @import uk.gov.hmrc.calculatenifrontend.config.AppConfig @import java.time.LocalDate @this( layout: Layout, breadcrumbs: uk.gov.hmrc.calculatenifrontend.views.html.helpers.breadcrumbs ) @(selectedInterval: LocalDate, intervals: List[(LocalDate, String)], title: String, data: List[(String, Html)])(implicit request: Request[_], messages: Messages, appConfig: AppConfig) @layout( pageTitle = Some(title), beforeContentBlock = Some(breadcrumbs(title)) ) {


JavaScript Oidc Client
Home
Login Only
Login With Profile
Login With Profile and Access Token
Access Token Only
Call Service
Logout
Authorization Response
ID Token Contents
Access Token
Ajax Result


Data Fields | |
| VALUE | read |
| VALUE | write |
| VALUE | except |
| struct timeval * | timeout |
| rb_fdset_t | fdsets [4] |
| union { | |
| int fd | |
| int error | |
| } | as |
| rb_fdset_t * | read |
| rb_fdset_t * | write |
| rb_fdset_t * | except |
| struct timeval * | tv |
Definition at line 7717 of file io.c.
| union { ... } select_args::as |
Referenced by rb_wait_for_single_fd(), and select_single().
Definition at line 2907 of file thread.c.
Referenced by rb_wait_for_single_fd(), and select_single().
Definition at line 7718 of file io.c.
Referenced by rb_f_select(), rb_wait_for_single_fd(), select_call(), select_single(), and select_single_cleanup().
| int select_args::fd |
Definition at line 2906 of file thread.c.
Referenced by rb_wait_for_single_fd(), and select_single().
Definition at line 7720 of file io.c.
Referenced by rb_f_select(), select_call(), and select_end().
Definition at line 7718 of file io.c.
Referenced by rb_f_select(), rb_wait_for_single_fd(), select_call(), select_single(), and select_single_cleanup().
struct timeval* select_args::timeout [read] |
Definition at line 7719 of file io.c.
Referenced by rb_f_select(), and select_call().
struct timeval* select_args::tv [read] |
Definition at line 2912 of file thread.c.
Referenced by rb_wait_for_single_fd(), and select_single().
Definition at line 7718 of file io.c.
Referenced by rb_f_select(), rb_wait_for_single_fd(), select_call(), select_single(), and select_single_cleanup().


“BILIM-INNOVATION” (former “KATEV”) is an International educational fund which was created in order to promote cooperation in the field of education between Kazakhstan and Turkey by direct support of presidents Nursultan Nazarbayev and Turgut Ozal.
“BILIM-INNOVATION” consists of 27 public lyceums, 3 private lyceums, 2 international shcools (“SPECTRUM” in Astana and “GALAXY INTERNATIONAL” in Almaty), 2 colleges in Almaty and Taraz as well as 3 Memorandum based schools in Atyrau, Kulsary and Ekibastuz.
Educational institutions earlier recognized as “Kazakh-Turkish lyceums” were renamed to “Bilim-Innovation” lyceums in honor of the 25th anniversary of independence of Kazakhstan.
Founded in 1992, these lyceums have been making their place in the educational space of Kazakhstan for 25 years, with a modern education in three languages and advanced educational system in line with the era of globalization.
We support the policy of the Leader Nursultan Nazarbayev called “Three-Level language” and use it effectively in the field of education. 25 years of EMI (English as Medium of Instruction) system for natural sciences subjects (in particular: mathematics, chemistry, physics, biology and computer science) has been developed in “Bilim-Innovation” lyceums (hereinafter BIL). The EMI system, which is used in more than 60 countries of the world, has entered the country’s educational sector first with the BIL.
“Education-Innovation” lyceums – are the Kazakh language lyceums for gifted children. The distinctive feature of the educational process in the lyceums is the interdisciplinary integration of the extensive program material at the expense of the lyceum component using the innovative content of the curriculum of the natural-mathematical cycle disciplines.
The main purpose of the lyceums is to provide the students with the necessary conditions for the development of functional literacy and let talented children improve based on national and universal values, achievements of science and practice, achievements in education.
Admission to the lyceums is carried out on the basis of the competition on mathematics, logic, Kazakh language and history of Kazakhstan. English language examinations are not held to children studying in rural areas.
26460 applicants participated in the competition for the 2018-2019 academic year. 1674 students were enrolled in the 7th grade.
The BIL is a world-renowned scientific fund with university textbooks, electronic books, scientific papers, etc. written in English for in-depth study of natural sciences.
When opening the first lyceums, foreign teachers were involved in teaching English and teaching special subjects in English. Teachers from Turkey accounted for 90% of the teaching staff. Since 1997, the system of substituting foreign specialists with Kazakh teachers has been systematically carried out. Students who are fluent in Kazakh, Russian and English are accepted as assistants to the lyceum. After graduating, they became the first teachers of English. Currently, there are 1260 teachers, of whom 86% are local experts. And foreigners who are fluent in the Kazakh language fulfill their duties under the education system of Kazakhstan.
Our goal is to improve the quality of education by implementing the standards of education under direct supervision of the Ministry of Education and Science of the country. The textbooks for the development of the education system of the country were prepared by the Minister of Education and Science Erlan Sagadiyev Kenzhegaliev. Teachers of BIL prepared the first part of books in only 6 months. These are the most up-to-date English language teaching aids in Kazakhstan.
The Kazakh language Olympiad “Zharkyn Bolashak” is held annually in order to expand and develop the sphere of the state language, as well as to support young people, who are working hard for the “bright future” of Kazakhstan. Every year more than 5,000 students from more than 1000 schools attend “Zharkyn Bolashak”. To date, educational grants from SDU and other universities are allocated to the Olympiad, organized to enhance the status of our native language and revitalize our national identity.
Features of the educational process in the lyceums
The curriculum of the lyceums has been adapted to the international educational standards that should be deeply ingrained through the content of the State Standard of the Republic of Kazakhstan (SESE-GOOS) and the lyceum component.
Multilingual education
Training is conducted in 3 languages. The Kazakh language is taught in Kazakh and Russian-speaking groups. English language teaching begins with the learning of Beginner and Elementary students, and further English language proficiency is derived from Grade 7. Lyceum graduates have a good command of English.


| Name or ID number | Job role | Expiry date | Status | |
|---|---|---|---|---|
|
|
{{ training.worker.mainJob?.title }} | {{ training.expires ? (training.expires | date: 'd MMM y') : '-' }} |
1 expired
1 expires soon
1 missing
OK
|
There are no matching results
Make sure that your spelling is correct.


This class represents a Call Detail Records. More...
Public Member Functions | |
| override void | InitFromDictionary (Dictionary< string, object > dico) |
| This method initializes object properties from the parameter dictionary. More... | |
Properties | |
| int | Callid [get, set] |
| Unique call id. More... | |
| string | CliPres [get, set] |
| CLI presentation (possible values are defined in ThecallrApi.Enums.CliPresentations class). More... | |
| string | CliNumber [get, set] |
| CLI number if available. More... | |
| string | CliName [get, set] |
| CLI name if available. More... | |
| DateTime | Start [get, set] |
| Call start date and time. More... | |
| DateTime | Answer [get, set] |
| Call answer date and time. More... | |
| DateTime | Hangup [get, set] |
| Call hangup date and time. More... | |
| string | Hangupsource [get, set] |
| Hangup source (possible values are defined in ThecallrApi.Enums.CdrHangupSources class). More... | |
| string | Hangupcause [get, set] |
| ISDN cause code. More... | |
| int | Duration [get, set] |
| Call total duration in seconds. More... | |
| int | DurationAnswered [get, set] |
| Call answered duration in seconds. More... | |
| int | DurationBilled [get, set] |
| Call billed duration in seconds. More... | |
| string | BillingCustomerCostLabel [get, set] |
| Billing destination name. More... | |
| decimal | BillingCustomerDebitEur [get, set] |
| Call debit in EUR cents. More... | |
| decimal | BillingCustomerCreditEur [get, set] |
| Call credit in EUR cents Format. More... | |
| string | ScenarioName [get, set] |
| Voice app name. More... | |
| string | ScenarioHash [get, set] |
| Voice app ID. More... | |
| string | PackageName [get, set] |
| Package name. More... | |
| string | CustomerField [get, set] |
| Custom CDR field. More... | |
This class represents a Call Detail Records.
|
virtual |
This method initializes object properties from the parameter dictionary.
| dico | Dictionary. |
Implements ThecallrApi.Objects.BaseClass.
Reimplemented in ThecallrApi.Objects.Cdr.CdrOut, and ThecallrApi.Objects.Cdr.CdrIn.
|
getset |
Call answer date and time.
|
getset |
Billing destination name.
|
getset |
Call credit in EUR cents Format.
|
getset |
Call debit in EUR cents.
|
getset |
Unique call id.
|
getset |
CLI name if available.
|
getset |
CLI number if available.
|
getset |
CLI presentation (possible values are defined in ThecallrApi.Enums.CliPresentations class).
|
getset |
Custom CDR field.
|
getset |
Call total duration in seconds.
|
getset |
Call answered duration in seconds.
|
getset |
Call billed duration in seconds.
|
getset |
Call hangup date and time.
|
getset |
ISDN cause code.
|
getset |
Hangup source (possible values are defined in ThecallrApi.Enums.CdrHangupSources class).
|
getset |
Package name.
|
getset |
Voice app ID.
|
getset |
Voice app name.
|
getset |
Call start date and time.


Buy premium quality nuts, chocolates, dried fruits and kosher gift baskets from the best place on the web. www.ohnuts.com is the place to be if you will settle for nothing less than the best. Go nuts for nuts. www.ohnuts.com carries the freshest. the best tasting nuts that money can buy. Buy in bulk and save money. You can also buy healthy snacks. All items are low priced and great tasting. Check it out online at www.ohnuts.com. Use our discount coupons to save money.
If you are nuts about nuts, you are in luck! www.ohnuts.com is the best place to buy nuts and candies, gift baskets, dried fruits and lots more. check it out online. You will get the best products from them. You can buy candy by color, flavor or occasion. Nuts are great for your health. Eat a small portion of nuts everyday for health benefits. Walnuts are known to curb appetite. That is a handy tip if you are trying to lose weight. Buy all kinds of nuts at a great amazing price at www.ohnuts.com.
Shop at www.ohnuts.com for delicious nuts including Macadamia nuts, cashew, pistachios and lots more. You can also buy baking supplies, candies by the color, taste and price. They are delicious. www.ohnuts.com carries a large supply of dried fruits, chocolates and candy. Get beautiful gift baskets and your friends will love the delicious taste of all the products. Use our coupons to save money.


The WinJS.Navigation system provides three events: beforenavigate, navigating, and navigated. These events let you control when navigation occurs, prepare your code to be navigated away from, and respond to a completed navigation.
This page lets you set various options and navigate between the scenarios of this sample. In addition, the scenario selector list also uses the navigation framework; please see the event handler for navigated in default.js for details of how the contents of the screen are changed upon navigation.


--- layout: default permalink: / default_title_head: true ---
When I originally wanted to get into modding SkaterXL, I found that resources were sparse and unorganized over the modding Discord and other resources, so I decided to document and centralize the information I gather in my journey for future modders to better enjoy the learning process of getting into modding the game, and help grow, maintain and make order in the knowledge gained by the veteran modders in the community.
This is intended for beginner & veteran modders as one. The guides and documentation should cover everything from setting up your development environment, and up to useful / common game functions which may be used frequently when creating mods for the game.


Contributors
Projects
Issues
{{ repo.Description | characters:60: false }} No Description
{{ issue.Title | characters:80: false }}


The transform-style
CSS property determines if the children of the element are positioned in the 3D-space or are flattened in the plane of the element.
If flattened, the children will not exist on their own in the 3D-space.
As this property is not inherited, it must be set for all non-leaf descendants of the element.
flat
visual
transform-style: preserve-3d or transform-style: flat
where :
preserve-3d
flat
| Specification | Status | Comment |
|---|---|---|
| CSS 3D Transforms Level 3 | Working Draft |
| Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
|---|---|---|---|---|---|
| Basic support | 12 -webkit | 10.0 (10) -moz | 10 -ms | -- | (Supported) -webkit |
| Feature | Android | Firefox Mobile (Gecko) | IE Phone | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|
| Basic support | 3.0 -webkit | 10.0 (10) -moz | ? | -- | (Supported) -webkit |


---
layout: js-documentation
title: Ink_1
description: Ink Core.
site_root: ../
---
All samples are using This module provides the necessary methods to create and load the modules using Ink. Function.prototype.bind alternative/fallback. fn
context
more...
Function.prototype.bind alternative for event handlers. fn
context
more...
Function.prototype.bind alternative for class methods object
methodName
more...
Creates an Ink.Ext module Does exactly the same as createModule but creates the module in the Ink.Ext namespaceInk.requireModules
, please read how to use it at Ink.requireModules section
Ink_1 class
Function name
Description
.bind(fn, context)
Function.prototype.bind alternative/fallback.
.bindEvent(fn, context)
Function.prototype.bind alternative for event handlers.
.bindMethod(object, methodName)
Function.prototype.bind alternative for class methods
.createExt(moduleName, version, dependencies, modFn)
Creates an Ink.Ext module
.createModule(mod, version, deps, modFn)
Creates a new module.
.error()
Calls native console.error if available.
.extendObj(destination, source)
Extends an object with another
.getModule(mod, [version])
Loads a module.
.getModuleScripts()
Builds the markup needed to load the modules.
.getModulesLoadOrder()
Lists loaded module names.
.getPath(key, [noLib])
Get the full path of a module.
.i(id)
Shorter alias to document.getElementById.
.loadScript(uri, [contentType])
Loads a script URL.
.log()
Calls native console.log if available.
.namespace(ns, [returnParentAndKey])
Defines a module namespace.
.requireModules(deps, cbFn)
Requires modules asynchronously
.s(selector, [from])
Selects elements like
Ink.ss
, but only returns the first element found.
.setPath(key, rootURI)
Sets the URL path for a namespace.
.ss(selector, [from])
Alias for Ink.Dom.Selector
.warn()
Calls native console.warn if available.
Property name
Description
.VERSION
.bind(fn, context)
method
Creates a new function that, when called, has its this keyword set to the provided value, with a given sequence of arguments preceding any provided when the new function is called.Accepts
{% include js_samples/Ink_1_bind.html %}
.bindEvent(fn, context)
method
Same as bind but keeps first argument of the call the original event.
Set context
to false
to preserve the original context of the function and just bind the arguments.Accepts
{% include js_samples/Ink_1_bindEvent.html %}
.bindMethod(object, methodName)
method
See Ink.bind. The difference between bindMethod
and bind
is that bindMethod
fetches a method from an object. It can be useful, for instance, to bind a function which is a property of an object returned by another function.Accepts
{% include js_samples/Ink_1_bindMethod.html %}
.createExt(moduleName, version, dependencies, modFn)
method
moduleName
Extension nameversion
Extension versiondependencies
Extension dependenciesmodFn
Function returning the extensionCreates a new module.
Use this to wrap your code and benefit from the module loading used throughout the Ink library
mod
Module name, separated by dots. Like Ink.Dom.Selector, Ink.UI.Modalversion
Version numberdeps
Array of module names which are dependencies of the module being created. The order in which they are passed here will define the order they will be passed to the callback function.modFn
The callback function to be executed when all the dependencies are resolved. The dependencies are passed as arguments, in the same order they were declared. The function itself should return the module.Calls native console.error if available.
more...
Arguments to be evaluatedExtends an object with another
Copy all of the properties in one or more source objects over to the destination object, and return the destination object. It's in-order, so the last source will override properties of the same name in previous arguments.
destination
The object that will receive the new/updated propertiessource
The object whose properties will be copied over to the destination objectmore...
Additional source objects. The last source will override properties of the same name in the previous defined sourcesLoads a module.
A synchronous method to get the module from the internal registry.
It assumes the module is defined and loaded already!
mod
Module nameversion
Version number of the moduleBuilds the markup needed to load the modules.
This method builds the script tags needed to load the currently used modules
Lists loaded module names.
The list is ordered by loaded time (oldest module comes first)
Get the full path of a module.
This method looks up the paths given in setPath (and ultimately the default Ink's path).
key
Name of the module you want to get the pathnoLib
Flag to skip appending 'lib.js' to the returned path.Shorter alias to document.getElementById.
Just calls document.getElementById(id)
, unless id
happens to be an element.
If id
is an element, Ink.i
just returns it.
You can use this in situations where you want to accept an element id, but a raw element is also okay.
id
Element IDLoads a script URL.
This creates a script
tag in the head
of the document.
Reports errors by listening to 'error' and 'readystatechange' events.
uri
Can be an external URL or a module namecontentType
'text/javascript'The `type` attribute of the new script tag.Calls native console.log if available.
more...
Arguments to be evaluatedDefines a module namespace.
ns
Namespace to define.returnParentAndKey
Flag to change the return value to an array containing the namespace parent and the namespace keyRequires modules asynchronously
Use this to get modules, even if they're not loaded yet
deps
Array of module names. The order in which they are passed here will define the order they will be passed to the callback function.cbFn
The callback function to be executed when all the dependencies are resolved. The dependencies are passed as arguments, in the same order they were declared.Selects elements like Ink.ss
, but only returns the first element found.
Using sizzle-specific selectors is NOT encouraged!
selector
CSS3 selector stringfrom
documentContext element. If set to a DOM element, the `selector` will only look for descendants of this DOM Element.Sets the URL path for a namespace.
Use this to customize where requireModules and createModule will load dependencies from.
This can be useful to set your own CDN for dynamic module loading or simply to change your module folder structure
key
Module or namespacerootURI
Base URL path and schema to be appended to the module or namespaceExample
{% highlight html %}{% raw %} Ink.setPath('Ink', 'https://my-cdn/Ink/'); Ink.setPath('Lol', 'https://my-cdn/Lol/'); // Loads from https://my-cdn/Ink/Dom/Whatever/lib.js Ink.requireModules(['Ink.Dom.Whatever'], function () { ... }); // Loads from https://my-cdn/Lol/Whatever/lib.js Ink.requireModules(['Lol.Whatever'], function () { ... }); {% endraw %}{% endhighlight %}Alias for Ink.Dom.Selector
Using sizzle-specific selectors is NOT encouraged!
selector
CSS3 selector stringfrom
documentContext element. If set to a DOM element, the `selector` will only look for descendants of this DOM Element.Calls native console.warn if available.
more...
Arguments to be evaluated{String}


Senior Software Engineer
Aurora
Mountain View
Email: mvelez999 [AT] yahoo.com
Hello, World! After graduting from UC Davis, I began working in the self-driving industry. At Uber ATG, I worked on storage and data infrastructure. Currently, at Aurora, I am working on improving infrastructure efficiency and control cloud costs.
You can checkout my open source code on Github, and Bitbucket.
| Kodethon | Kodethon is a web-based integrated development environment (IDE) where students can program in all of the programming languages used at UC Davis, including Python, C, C++, Java, Lisp, and Prolog. Students can create multi-file projects and organize their files using a traditional Unix directory structure. Their files are stored in the cloud and can be accessed from a variety of devices including smart phones and tablets. The built-in editor provides convenient features like syntax-highlighting and basic auto-completion. Students can use an easy-to-use shell or a full Unix terminal -- within the browser -- to execute Unix commands. Kodethon also supports real-time collaboration which facilitates pair programming and live teaching assistance. To date, Kodethon has been used by over 3,000 students in at least 15 different courses. |
| CompAssist | Every programmer, from novices to professionals, makes compilation errors. Resolving them can be time-consuming, difficult, and frustrating, especially for novices. CompAssist is a web application prototype that generates and refines compilation repair examples. Based on these examples, it suggests possible patches to users when their program fails to compile. The repair examples are synthesized and reduced using a novel Fuzz-and-Reduce technique. |
| Code Search | A common task for developers is to search for code examples. For example, a developer may want to see example snippets illustrating how to “declare an array in C” or “open a file in Python”. Code Search is a web application that allows a user to enter a natural language query to search for code snippets. We learn the mapping of natural language terms to code snippets by analyzing over 4 million snippets from a public Stack Overflow data dump. |
| Cow Grooming Tracker | Healthy cattle readily use grooming brushes but this behavior subsides when animals become ill. Tracking use of a brush may provide an opportunity for health monitoring, especially if the process could be automated. We assessed how healthy heifers groom themselves on a brush and hypothesized that radio-frequency identification (RFID) could be used to accurately and automatically record this behavior. Angus and Hereford heifers were fitted with 2 ultra-high-frequency RFID ear tags and monitored in groups of 8 while housed in a pen with an electronic brush, video cameras, and 4 RFID antennas. |
| Wheat and Chaff in Source Code | Source code can be separated into wheat and chaff. |


--- layout: post title: ng-animate First Look with AngularJS Wizard date: 2013-04-26 18:37:58.000000000 -07:00 type: post published: true status: publish categories: - AngularJS - JavaScript tags: [] meta: _edit_last: '8' image: '' _layout: layout-default _thumbnail_id: '687' _nina_cross_promo: a:1:{s:8:"template";s:17:"custom_1399328552";} _yoast_wpseo_primary_category: '' _wpcom_is_markdown: '1' author: login: ohmadmin email<EMAIL_ADDRESS>display_name: Lukas Ruebbelke first_name: Lukas last_name: Ruebbelke ---
So my friend Matias, aka Year of Moo, Moo or MooMoo as I like to call him just dropped some animation functionality into AngularJS. I think this is fantastic and am super excited to see AngularJS get some love in the visual department. I dig that I can be functional AND fashionable!
There is still a lot of work to be done around ng-animate but it is a great start and so I wanted to build something "useful" to get our feet wet.
With that said, we are going to build a wizard style dialog using AngularStrap and ng-animate. And beneath the dialog we find the nucleus.
[button link="http://onehungrymind.com/wizard/" size="large" window="yes"]Demo[/button]
[button link="https://github.com/simpulton/angularjs-wizard" size="large" window="yes"]Code[/button]
We are going to first build the wizard by itself without any of the special sauce and then I am going to show you how easy it is to add in the animations. So let's get down to bizness!
The first thing we need to do is get a modal on the page. I opted to use the incredibly useful AngularStrap which can be found here http://mgcrea.github.io/angular-strap/.
I am going to show you the HTML 'skeleton' so we are all on the same page. HAHAHAHAHAH! See what I did there?! I know for a fact that John C. Bland heard my high pitched cackle in his head as he read that very line.
{% highlight html %}
<link href="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/2.3.1/css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" type="text/css" href="app.css" />
Pretty straight forward stuff here. We are importing jQuery, AngularJS, Boostrap and AngularStrap with the Boostrap CSS at the top. We are also auto-bootstrapping AngularJS with the App module and defining a AppCtrl to go with it.
To make AngularStrap available to your app you simply need to inject it in as as submodule to your main application module like so.
[js]
angular.module('App', ['$strap.directives'])
.controller('AppCtrl', function($scope) { });
[/js]
We technically have an AngularJS application with AngularStrap working and so now we need to actually earn our keep. I really dig that AngularStrap makes it easy to attach the modal to the DOM dynamically via a template without cluttering up your HTML. I have written such a mechanism myself and I am glad no one else ever has to do it again!
So to show the modal, we are going to add a button to the page that looks like the markup below.
{% highlight html %}
{% endhighlight %}
There are two parts that I want to point out here. The first part is bs-modal="'partials/wizard.html'" which is the conduit for the Boostrap modal to gain access to the page and the attribute value of partials/wizard.html is the template that it populates the modal with. The second part is data-toggle="modal" which is used to toggle visibility of the modal. Easy!
And in the partial we start with this basic HTML structure as established by Twitter Bootstrap.
{% highlight html %}
{% endhighlight %}
And now we have our modal!
We are now going to put the wiz in wizard. First we need to establish the stages available in the wizard and give users a way to step through them. We do this by creating $scope.steps with three steps defined in the array. We also need to keep track of the current step we are on and so we use $scope.step to do this.
[js]
angular.module('App', ['$strap.directives'])
.controller('AppCtrl', function($scope) {
$scope.steps = ['one', 'two', 'three'];
$scope.step = 0;
$scope.isCurrentStep = function(step) {
return $scope.step === step;
};
$scope.setCurrentStep = function(step) {
$scope.step = step;
};
$scope.getCurrentStep = function() {
return $scope.steps[$scope.step];
};
});
[/js]
I am going to elaborate what each of these functions do by anchoring it to the HTML that uses it. In the wizard we have a button group with three buttons. There is one button for each step of the wizard. When you click any of these buttons, it calls setCurrentStep with the step that the corresponds to the button. I am also dynamically setting the btn-primary class in the CSS with ng-class and binding it to the isCurrentStep function. I like binding to functions that perform a small unit of logic instead of putting it into my markup. Because of the way AngularJS handles two-way databinding, it is really easy to do this.
{% highlight html %}
{% endhighlight %}
Just below the button group, we are going to start to flesh out the structure we want to build out the steps of our wizard in. I am binding ng-switch to the getCurrentStep method which returns the appropriate label for the switch to work off of. I defined $scope.steps as an array of strings for this very reason.
{% highlight html %}
{% endhighlight %}
We have a way to jump directly to a state in the wizard via the nav buttons but let us create a way to iterate over the steps with next and previous buttons.
Let us start with the HTML and then we can dig into the JavaScript that supports it. We have two buttons that are used to call handlePrevious and handleNext via ng-click. The reason we are passing dismiss as a parameter to handleNext is that if we are at the last step we need a way to close the modal. If we are on the first step, we want to hide the previous button which is easy enough with ng-show and binding it to !isFirstStep(). And! If we are on the last step, we want to change the label of the next button to reflect that it is going to behave differently. Could we possibly bind the label to a function as well? Yep! You got it! getNextLabel makes a stunning debut!
{% highlight html %}
{% endhighlight %}
I have called out a few methods that we need to cover in the controller. They are small and to the point and so I am going to briefly comment on them.
isFirstStep compares step to 0 and returns true if we are indeed on the first step.
isLastStep compares step to the length of the steps array minus 1 (to account for the zero ordinal shift) and returns true of we are on the last step.
getNextLabel uses isLastStep to determine if we are on the last step and returns either Submit or Next as the label.
handlePrevious uses isFirstStep to determine if we are on the first step and if we are not, subtracts 1 from step.
handleNext uses isLastStep to determine if we are on the last step. If we are not, it adds 1 to step. If we are, then we call dismiss to close the modal. In real life you would process the wizard data just before you called this.
[js]
angular.module('App', ['$strap.directives'])
.controller('AppCtrl', function($scope) {
// Code omitted
$scope.isFirstStep = function() {
return $scope.step === 0;
};
$scope.isLastStep = function() {
return $scope.step === ($scope.steps.length - 1);
};
$scope.getNextLabel = function() {
return ($scope.isLastStep()) ? 'Submit' : 'Next';
};
$scope.handlePrevious = function() {
$scope.step -= ($scope.isFirstStep()) ? 0 : 1;
};
$scope.handleNext = function(dismiss) {
if($scope.isLastStep()) {
dismiss();
} else {
$scope.step += 1;
}
};
});
[/js]
And now we have a working wizard that we can step through! Okay! I admit we are missing the animations and the content but that is exactly what we are going to cover next.
And now it is time to get to the punchline! ng-animate works on JavaScript or CSS animations and you can spin them up a couple ways. In this tutorial we are going to take the path of least resistance and use the ng-animate directive in conjunction with the ng-switch which has animation events built in to make it easy to control.
So how does this work? In a nutshell, you attach ng-animate to a directive that supports animations such as ng-switch and then give it a value that corresponds to some CSS styling we are going to get to in just a moment. You can see that I have done this via ng-animate="slide".
{% highlight html %}
{% endhighlight %}
ng-animate works with a few methods such as enter, hide, leave, move and show and you define the setup and start state for each animation in the CSS.
The formula is as follows [animation-name]-[method]-[state-of-animation] so following this format we define slide as slide-enter-setup and slide-enter-start. So we have defined the animation on enter but does the format work the same for leave? Yep! We apply the same formula and we get slide-leave-setup and slide-leave-start. You will notice that I have one extra block of CSS where I define enter and leave setup. ng-animate allows you to define custom easing animations and so I like to get that out of the way way in one fell swoop.
[css]
.slide-enter-setup, .slide-leave-setup {
-webkit-transition:all cubic-bezier(0.250, 0.460, 0.450, 0.940) 0.5s;
-moz-transition:all cubic-bezier(0.250, 0.460, 0.450, 0.940) 0.5s;
-o-transition:all cubic-bezier(0.250, 0.460, 0.450, 0.940) 0.5s;
transition:all cubic-bezier(0.250, 0.460, 0.450, 0.940) 0.5s;
}
[/css]
[css]
.slide-enter-setup {
position:absolute;
left:0;
top:-200px;
}
.slide-enter-start {
top:0;
}
.slide-leave-setup {
position:absolute;
top:0;
}
.slide-leave-start {
top:200px;
}
[/css]
I have defined the slide animation to animate from -200px to 0px on enter and from 0px to 200px on leave.
Slide moves from top to bottom but let us create another animation that moves from left to right and call it wave.
[css]
.wave-enter-setup, .wave-leave-setup {
-webkit-transition:all cubic-bezier(0.250, 0.460, 0.450, 0.940) 0.5s;
-moz-transition:all cubic-bezier(0.250, 0.460, 0.450, 0.940) 0.5s;
-o-transition:all cubic-bezier(0.250, 0.460, 0.450, 0.940) 0.5s;
transition:all cubic-bezier(0.250, 0.460, 0.450, 0.940) 0.5s;
}
[/css]
[css]
.wave-enter-setup {
position:absolute;
left:-100%;
}
.wave-enter-start {
left:0;
}
.wave-leave-setup {
position:absolute;
left:0;
}
.wave-leave-start {
left:100%;
}
[/css]
Take a moment and try to identify the pattern I talked about earlier. See it? Easy. With wave, we are simply moving from left to right 100% of the width. We could write these all day long now!
And to use wave instead of slide we just change ng-animate to ng-animate="'wave'".
{% highlight html %}
{% endhighlight %}
And now we have a wizard dialog that you can open and animate from step to step. Super awesome but we need to actually do something "useful" with it!
ng-switch is like a good neighbor and it cleans up after its children as it moves from one view to another. This is a good thing! But! It does cause problems when you need to preserve values from one view to another.
The solutions to this is pretty simple actually. You create a model object on the parent scope to use in the children. I have done this by declaring the $scope.wizard object on AppCtrl.
[js]
angular.module('App', ['$strap.directives'])
.controller('AppCtrl', function($scope) {
$scope.steps = ['one', 'two', 'three'];
$scope.stepIndex = 0;
$scope.wizard = { tacos: 2 };
// CODE OMITTED
});
[/js]
From there you define your ng-models in the children views to reference the wizard object like so ng-model="wizard.tacos".
{% highlight html %}
{% endhighlight %}
We have covered a lot of ground and I have had a lot of fun building out the example project. This is just a first look at ng-animate but I think it is a great step in the right direction to kicking up our AngularJS apps a notch.
Big ups to MooMoo for all his great work and we are already kicking around some ideas on how to make it even better. Stay tuned!
Source Files: https://github.com/simpulton/angularjs-wizard
Year of Moo: http://www.yearofmoo.com/2013/04/animation-in-angularjs.html
AngularStrap: http://mgcrea.github.io/angular-strap/
AngularJS Docs: http://code.angularjs.org/1.1.4/docs/api/ng.directive:ngAnimate


Two airmen killed in ‘mishap’ involving two planes at Air Force base in Oklahoma
by Yaron SteinbuchTwo airmen were killed Thursday morning in what officials called an “aircraft mishap” involving two trainer planes at a US Air Force base in Oklahoma, according to a report.
The two T-38 Talons, each carrying two crew members, were being flown in a routine training mission at Vance Air Force Base in Enid when the accident occurred about 9 a.m., according to the Air Force Times.
The names of the deceased were being withheld pending notification of their next of kin. The accident remains under investigation.
Vance is home to the 71st Flying Training Wing, which flies the T-1A Jayhawk, the T-6A Texan II, and the T-38 to train hundreds of pilots each year.


EasyRTC OpenSource is: 1) A browser client library written in JavaScript. This client handles the signaling and to a large extent insulates applications from ongoing changes in the WebRTC api. 2) A signaling server based on Node.js. Together, these two components will let you write a simple video conferencing application, or a file sharing application, etc in just a few lines of simple code.
Install Node.js
See Node.js
Install EasyRTC
-
cd /var/nodes
-
sudo git clone https://github.com/priologic/easyrtc.git
-
cd easyrtc
-
sudo npm install
-
cd server_example
-
sudo npm install
-
cd /var/nodes
-
sudo chown -R www-data:www-data easyrtc
Run Server Example
-
cd /var/nodes/easyrtc/server_example
-
sudo -u www-data node server.js


There's supposed to be something magical about meeting a bish like you're supposed to see a random cutie pop up on Facebook and you send her a message and she sends you an emoji and fourteen comments later you are in love.
Tinder.  Shows you something about Humans Tinder does. Like it used to be in the Victorian era there was a grand tapestry of events that went into courtship between a man and a woman it was as epic as human society could come up with courtship it was the center of society. Now we just mofo swipe right. Our ceremony of courtship has been reduced to the swiping of a thumb of a consumer electronics good.
  Remember when we used to go to restaurants together. Remember when dating was more than mofo developing fishing lures for social media dating sites. Like I can't just fish for bitches on Facebook. I can fish for bitches on OKCupid.  When you tell yourself you should specialize in setting up OKCupid profiles for people to increase their incoming fish by 400% total beesheet but whatever, just so long as they know they getting 400% more of the nothing they were getting before.
I'm just saying. We're better than this.  Like it's a breakthrough in religious consciousness to declare Jesus Christ dead and buried.
Do you see what I am saying?  There is no magic to this. I need some magic and complexity. Like if you had to solve a puzzle to guess a girl's favorite color on social networking dating sites.
Like I just have a problem with this thing at the center of our society when the center of our society should be the club. We should all belong to something and belonging to a dating website does not prepare you for dating. It prepares you for nothing. Being social prepares you for marriage. Not doing what I am doing holed up in a one bedroom apartment sending tweets to the White House on a lark an aid of an aid might send a message to someone that will send a message to someone. We need more concreteness in our social media.
If people knew that if they sent a message to someone on a dating site they were going to get a date. They would do it differently they would be more discerning. Like there is nothing wrong with going on dates with 25 different guys over the span of 3 months because of social media or going out with 25 girls if it was casually kept to dating if it was a legit dating site you could get a date TONIGHT with a dating site.
It's not a dating site it's a you me let's go get married site. This is bogus. Now there are couples that have these romantic stories of how they met through social media sites like OKCupid or Plenty of Fish and their story they tell their kids about how they met involves clicking buttons on a GUI interface not about how she was walking across the street and you waited for her to cross and you asked her for a cigarette and she gave you one and then you asked her for her phone number and she gave it to you and that night you called her and you had a four hour conversation with your future wife that you met that afternoon because you took the time to look her in the eye as she was on the other side of the street and she saw you waiting for her and she fell in love with you.
Love.
Things like that.
Just nothing.


Generate a Microsoft Word resume from JSON Resume data,
online or from your own computer
The JSON Resume format is an open standard, for storing resume content separately from any visual style.
Place your resume data in source control if you like, and track it over time. Even create branches, when you need resume content that is custom-tailored for specific job opportunities.
Create a JSON Resume FileApply a template to your content, to automatically generate a professional looking resume in Microsoft Word format.
You can use Word or LibreOffice to convert your resume into PDF or HTML format if you wish.
View Template GalleryResumeFodder gives you a choice of two front-ends. You can generate resumes online, without installing any software. Or you can use a command-line utility, to generate resumes entirely on your local machine with no Internet connection.
ResumeFodder is written in Go, and compiles to a standalone executable with no dependencies.
DownloadResumeFodder supports a handful of extensions to the standard JSON Resume spec. You can have bullet-point highlights in your summary section, group your job history (e.g. "Recent Experience" versus "Prior Experience"), and more.
However, ResumeFodder maintains compatibility with other JSON Resume processors. All of the extension fields are completely optional, and should be ignored if you use your data file with another processor.
View DocumentationResumeFodder is open-source under the MIT License, and hosted on GitLab with a GitHub mirror. Contributions are welcomed, especially for creating new templates (no coding skills required!).
All of your data is completely private. The command-line generator runs entirely on your local machine, with no Internet connection. The online generator does not log or store any resume content.
Contribute


Native language: {{user.nat_lang}}
Language that I want to learn: {{user.lang_learn}}
Description: {{user.description | subString}}
Do you really want to delete your friend {{ user.name }} ?