Steelers-Browns fight results in more than $732K in fines
by Jake TrotterThe NFL has disciplined 33 players from the Pittsburgh Steelers and Cleveland Browns -- with fines totaling $732,422 -- as penalty for the brawl that broke out in the closing seconds of their game on Nov. 14.
The league on Saturday fined 29 players -- including Pittsburgh's Minkah Fitzpatrick and Cleveland's Jarvis Landry -- $3,507 apiece for "entering the fight area."
Browns defensive end Myles Garrett was suspended indefinitely and fined $45,623 for ripping off and swinging Mason Rudolph's helmet, hitting the Steelers quarterback in the head with it during Cleveland's 21-7 victory.
| Disciplined | Team | Fine |
|---|---|---|
| Cleveland Browns | $250,000 | |
| Pittsburgh Steelers | $250,000 | |
| Tyson Alualu | PIT | $3,507 |
| Mark Barron | PIT | $3,507 |
| Tony Brooks-James | PIT | $3,507 |
| Juston Burris | CLE | $3,507 |
| T.J. Carrie | CLE | $3,507 |
| Bud Dupree | PIT | $3,507 |
| Terrell Edmunds | PIT | $3,507 |
| Trey Edmunds | PIT | $3,507 |
| Matt Feiler | PIT | $3,507 |
| Minkah Fitzpatrick | PIT | $3,507 |
| Ramon Foster | PIT | $3,507 |
| Myles Garrett* | CLE | $45,623 |
| Mike Hilton | PIT | $3,507 |
| Johnny Holton | PIT | $3,507 |
| Tevin Jones | PIT | $3,507 |
| Kameron Kelly | PIT | $3,507 |
| Jarvis Landry | CLE | $3,507 |
| Devaroe Lawrence | CLE | $3,507 |
| Larry Ogunjobi* | CLE | Rescinded |
| Maurkice Pouncey* | PIT | $35,096 |
| Sheldrick Redwine | CLE | $3,507 |
| Mason Rudolph | PIT | $50,000 |
| Jaylen Samuels | PIT | $3,507 |
| Chris Smith | CLE | $3,507 |
| Robert Spillane | PIT | $3,507 |
| Cameron Sutton | PIT | $3,507 |
| Chad Thomas | CLE | $3,507 |
| Denzel Ward | CLE | $3,507 |
| James Washington | PIT | $3,507 |
| T.J. Watt | PIT | $3,507 |
| Greedy Williams | CLE | $3,507 |
| Vince Williams | PIT | $3,507 |
| Mack Wilson | CLE | $3,507 |
| *Suspended |
Garrett lost his appeal this week and stands to lose about $1.2 million in salary for missing the six remaining games.
Rudolph, who was not suspended, was slapped with the biggest fine, of $50,000. Pittsburgh center Maurkice Pouncey, who won an appeal reducing his suspension from three to two games, was fined $35,096 for fighting.
Browns defensive tackle Larry Ogunjobi was suspended for one game, but his $10,527 fine was rescinded upon appeal.
In addition, both the Browns and Steelers franchises were fined $250,000 each.
Fines collected go to programs for former NFL players.
Three Cleveland players were also fined for plays that happened before the melee.
Safety Damarious Randall was fined $28,075 for unnecessary roughness and was ejected for a hit to the head of Steelers receiver Diontae Johnson, which knocked Johnson out of the game with a concussion.
Defensive end Chad Thomas was fined $21,056 for a hit on Rudolph. From the same play, cornerback Greedy Williams was fined $28,075 for unnecessary roughness on a hit that left Steelers receiver JuJu Smith-Schuster with a concussion as well.
The Browns travel to Pittsburgh for the rematch Dec. 1.


*This review was originally published at "The Juicy Cerebellum" and is copyright 1998 Alex Sandell [All Rights Reserved]. To read the full review, head to www.juicycerebellum.com*
If Merchant-Ivory produced a "Star Trek" film, this would be it. A man who must have been about 7 feet tall sat in front of me at the theater, blocking my view. At first, this infuriated me; by the end of the movie I felt like thanking him. Watching his gigantic head bobbing up and down was the only thing that managed to keep me awake.
"Insurrection" runs less than two hours but feels like it never ends. Whenever Picard's new girlfriend Anij (Donna Murphy) magically puts the world in slow- motion (don't ask), it feels like director Jonathan Frakes is applauding his pacing of the film. It just plods along as though there is no need to actually entertain the audience when you can just bore the hell out of them and still bring in 30-million the first week.
There are a few redeeming scenes toward the end of the movie, but nothing you haven't seen in the million sci-fi flicks that have went before it. There's nothing new in the special-effect's department, either. The effects seem to have been sacrificed to cover the lead actor's ever-growing salaries. The film suffers from a dated look due to this. 1996's "Star Trek: First Contact" was ahead of its time with the stunning visual effects it showed us. It is unfortunate "Insurrection" took a step backward.
All in all, this film isn't worth your time. It is nothing more than one of those "sucky" episodes you would turn off on TV. "Oh, no! They're playing that 'Insurrection' episode again! Is 'Jerry Springer' on?"
If you must see it, wait for video. Pass this one up at the theater and go rent any of the even numbered sequels such as parts 2, 4, 6 or 8. When it comes to the "Star Trek" series, odd just isn't better.
-----------== Posted via Deja News, The Discussion Network ==---------- http://www.dejanews.com/ Search, Read, Discuss, or Start Your Own
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Services
I can create a beautiful website for your next project.
I am familiar with multiple types of CMS including WordPress,
Wix, and Squarespace. I'll create your next website using
HTML5, Javascript, and CSS3 or by using your favorite CMS platform.
Collaberation
I have worked with artist Tracy Funches and everyone
at The Heart of Delray Beach art gallery to create web content
and organize plans to increase web presence. I've built blogs
for Earth Florida CBD and The Options Oracle and maintained SEO
to increase web traffic. I love collaberation with other creatives
and enjoy engaging with like-minded individuals or other developers
to build something new and exciting. See a list of my past projects below:
- The Heart of Delray Beach
- Earth Florida CBD


12 photos of Newcastle's enormous new Christmas Market Newcastle Christmas Market opened today, covering a larger area than ever before 16 Nov 2019, 13:24 by Lesley Oldfield A look around Newcastle Christmas Market 2019(Image: Newcastle Chronicle) A look around Newcastle Christmas Market 2019(Image: Newcastle Chronicle) Apres Ski Bar situated at Monument Newcastle for the 2019 Christmas Market(Image: Newcastle Chronicle) A look around Newcastle Christmas Market 2019(Image: Newcastle Chronicle) A look around Newcastle Christmas Market 2019(Image: Newcastle Chronicle) Terri Toner and three-year-old Eva Law enjoy the Newcastle Christmas Market 2019(Image: Newcastle Chronicle) A look around Newcastle Christmas Market 2019(Image: Newcastle Chronicle) A look around Newcastle Christmas Market 2019(Image: Newcastle Chronicle) Terri Toner and three-year-old Eva Law enjoy the Newcastle Christmas Market 2019(Image: Newcastle Chronicle) Apres Ski Bar situated at Monument Newcastle for the 2019 Christmas Market(Image: Newcastle Chronicle) A look around Newcastle Christmas Market 2019(Image: Newcastle Chronicle) A look around Newcastle Christmas Market 2019(Image: Newcastle Chronicle)


Text steganography library for JavaScript
This is a text steganography library for JavaScript adapted from Hernan Moraldo's reference implementation for “An Approach for Text Steganography Based on Markov Chains”. This method produces more natural looking and less easily detectable texts than other Markov-based systems. In this implementation, n-gram models support updating and n values of ≥ 1.
Acknowledgements:
Initial setup:
var stego = new MarkovTextStego();
Create n-gram model:
var corpus = [...]; var model = new stego.NGramModel(n); model.import(corpus);
Initialise the Codec:
var codec = new stego.Codec(model);
Encode / Decode:
codec.encode('Hello World!'); codec.decode('The Achaeans. And with a moderate force of which one has to remark that men ought either to the kingdom! In exchange for the priesthood? Were San Pietro ad Vincula. He was obliged to avoid one trouble without running into another but prudence consists in knowing how lukewarm he was priest and that those men who were besieging Gaeta. In charge of Messer Antonio the priest to the shoulders of the counsellors will think of himself.');
Update the model with an array of additional corpus text:
model.update(additionalCorpus);
Change the model to a different one:
codec.setModel(newModel);


Stereo TypesDevelopers in San Francisco12/20/2015I feel like we all go or have experienced some kind of steroe types in our lives. Regardless if it's a gender, sexual, racial, etc. But one I'd like to talk about is my most recent and new form of steroetype that I've been a part of. I grew up in Los Angeles, Ca and moved to Riverside, Ca when I was 15. I've never really left Southern California but being interested and involved in the tech industry you always hear about Silicon Valley and all the huge changes in San Francisco but I've never seen it for myself. This weekend I came to San Francisco to look for housing and got to meet a lot of really cool and amazing people but sadly not all of them thought the same about me and it wasn't because of anything I said or did but it was just because I was a "Developer". I personally love how rapid this field is growing but it does have it's down sides. One thing I've learned since being here is San Fran has gone up in rent 700% in the last 5 years! A lot of people have been forced out of their homes because rent has been shooting up because the tech field is really blowing up. I'm seeing that more businesses are growing than homes and people seem to be blaming these "developers". I've seen a lot of hate towards this field because of all that from the locals and they have tried to discourage me from continuing.All I have to say is that is NOT the reason why I came into this field so why am I being blamed for that? I love what I'm learning and I'm not going to let anyone give me a guilt trip over stuff other people have done and I wouldn't want anyone else to get discouraged or slowed down because of this. Ultimately we all have the right to do what we want and get to choose what we want to do with the knowledge. I hope no one takes that responsibility lightly but it is our choice just like everyone else outside the field. |
|
Other Blog entries |


Name: note
Type: Comment facility
Status: Core
General: All arguments following after the command word are considered a comment, which is written into the output stream, has no effect on execution, however.


Lately, Grunt has completely taken over my development process. In one of my previous posts I explained how I use Gruntjs to develop Joomla! extenstions.
Today I would like to take a closer look at one Gruntjs plugin that I have been using, grunt-exec. grunt-exec is a plugin for executing shell commands. I have 2 shell commands that I use the most when working on a project:
The first one removes the backup files created by text editors. It filters all files ending with the charecter ~
in the current working directory and sub-directories. I run this command everytime I perform a clean up.
find . -type f -name "*~" -exec rm -f {} \;
I use the second command in my PHP projects to check for syntax errors in php files. I run this command just before packaging my project into a zip file.
find . -type f -name '*.php' -exec php -l {} \;
Below is how my Gruntfile for executing these commands looks like.
module.exports = function(grunt) {
grunt.initConfig({
exec: {
test: {
cmd: "find . -type f -name '*.php' -exec php -l {} ;",
callback: function (error, stdout, stderr) {
grunt.log.write('stdout: ' + stdout);
grunt.log.write('stderr: ' + stderr);
if (error !== null) {
grunt.log.error('exec error: ' + error);
}
}
},
clean: {
cmd: 'find . -type f -name "*~" -exec rm -f {} ;'
}
},
compress: {
project: {
options: {
archive: './com_project.zip'
},
files: [
{cwd: 'component/', src: ['**/*'], expand: true, dest: ''}
]
}
}
});
grunt.loadNpmTasks('grunt-exec');
grunt.loadNpmTasks('grunt-contrib-compress');
grunt.registerTask('default', ['exec', 'compress']);
};
The problem that I encountered with grunt-exec is that it buffers output, which is inconvenient if you want to check each operation output individually. What I wanted was the ability to exit the Node process if any php file had syntax errors and prevent the zip file from being created.
So I dived into the grunt-exec code to see if I could solve the problem. grunt-exec uses the exec
method of the Child Process module to execute commands. When the exec
method is called it returns the ChildProcess object
which is an event emitter. Bingo! All I needed to do was pass functions that accept the data event emitted by ChildProcess object
's stdout
and stderr
streams. I then replaced the callback option with 2 ondata event handlers.
What the 2 functions do is check if the emitted data contains error reports, if so, exit the Node process.
module.exports = function(grunt) {
grunt.initConfig({
exec: {
test: {
cmd: "find . -type f -name '*.php' -exec php -l {} ;",
onOutData: function (data) {
if (data.match(/Errors parsing|PHP Parse error/g)) {
grunt.log.error(data);
process.exit(1);
}
else {
grunt.log.write(data);
}
},
onErrData: function (data) {
if (data.match(/Errors parsing|PHP Parse error/g)) {
grunt.log.error(data);
process.exit(1);
}
else {
grunt.log.write(data);
}
}
},
clean: {
cmd: 'find . -type f -name "*~" -exec rm -f {} ;'
}
},
compress: {
project: {
options: {
archive: './com_project.zip'
},
files: [
{cwd: 'component/', src: ['**/*'], expand: true, dest: ''},
]
}
}
});
grunt.loadNpmTasks('grunt-exec');
grunt.loadNpmTasks('grunt-contrib-compress');
grunt.registerTask('default', ['exec', 'compress']);
};
I submitted a pull request which has not yet been merged, so for now I am using my own fork.
If you are using grunt-exec and you need more control over the output you can replace the grunt-exec version value in your package.json
file with the url to my fork or create your own fork.
----
"devDependencies": {
"grunt": "~0.4.1",
"grunt-contrib-compress": "~0.5.2",
"grunt-exec": "git+ssh://git@github.com:qawemlilo/grunt-exec.git#v0.4.3"
}
---


Native Windows GUI: Low level events
Winapi implements a bazillion of events and applications are free to define their own. There's no way for NWG to
catch
wrap them all. As a solution, NWG lets you use
bind_raw_event_handler
to hook the system event queue without parsing the parameters.
Using raw events handlers
fn log_resize(window: &Window) {
use winapi::um::winuser::WM_SIZE;
use winapi::shared::minwindef::{HIWORD, LOWORD};
const MY_UNIQUE_RAW_HANDLER_ID: usize = 45776;
bind_raw_event_handler(&window.handle, MY_UNIQUE_RAW_HANDLER_ID, |_hwnd, msg, _w, l| {
match msg {
WM_SIZE => {
println!("w: {}, h: {}", LOWORD(l as u32), HIWORD(l as u32));
},
_ => {}
}
None
});
}
Raw event handlers work in similar way as default events handers. It works by adding a callback to a window control. This callback then gets called
everytime the control receives an event.
The parameters:
handle
is the handle of a window control
id
is an id identifying the handler. Without a different id, binding the same handler a second time on the same control will replace the first handler!
f
is the callback that will be called.
The return value:
RawEventHandler
works the same way as the normal
event handler. This object is an opaque handle over the event hook
and ignoring this value means that the callback and all its data will be leaked.
The callback:
The callback takes 4 arguments:
HWND, MSG, WPARAM, and LPARAM
which are the same value passed to the window procedures.
This guide assumes you already know how to use them.
The callback also lets you pass a value back to the OS. If
None
is returned, the internal handler will use
DefSubclassProc
and
execute the next event handler on the control. If a
Some
value is returned, this value will be returned by the internal handler and the following
handlers
will not be called.
Events handlers are always executed from last added to first added. Ie, user hooks will be executed before any NWG hooks.
Freeing raw handlers
To free a raw event handler call:
nwg::unbind_raw_event_handler(&handler)
Calling unbind twice or trying to unbind an handler after destroying its parent will cause the function to panic.
Checking if a raw handler is bound
If you are not sure if a raw event handler is bound and you don't want your application to panic, use the
nwg::has_raw_handler(&handle, handler_id)
method.
Example:
let handler = bind_raw_event_handler(&handle, 9001, move |_hwnd, _msg, _w, _l| {
None
});
assert!(has_raw_handler(&handle, 9001) == true);


Participant Consent Form
The purpose of this usability study is to evaluate the design of the IDForWeb. We are interested in determining if people can accomplish common tasks and easily find information using this IDForWeb. The session will not ‘test' you or your ability, rather the session will test the IDForWeb to provide information on areas that might be improved. Please be advised that there are no risks associated with participation in this session.
During this session, you will be asked to complete some tasks using the IDForWeb and fill out a user satisfaction questionnaire. As you complete the tasks, the student of CS6035 class will observe and take notes. In addition, during the session, recorded IDs (a video and a image) will be stored as an encrypted form on the cloud server for future review. The session will last no longer thirty minutes.
If for any reason you are uncomfortable during the session and do not want to complete a task, you may say so and we will move on to the next task. In addition, if you do not want to continue, you may end the session and leave at any time.
Approximately 4,500 people will participate in this study. Results from all sessions will be included in a usability report to be presented to the research team in Georgia Tech Institute for Information Security and Privacy (GT-IISP). Your name will not be included in the report nor will your name be associated with any session data collected.
If you wish to speak with someone about your participation in this study, or if you feel you were not treated as described above, please contact the head of this research, Dr. Simon Chung through e-mail<EMAIL_ADDRESS>I, the whom mentioned below, have read and fully understand the extent of the study and any risks involved. All of my questions, if any, have been answered to my satisfaction. My name (signature) below acknowledges my understanding of the information provided in this form and indicates my willingness to participate in this user testing session. I have been given a blank copy of this consent form for my records.
|


Generates a printable maths worksheet with 100 mixed-operation problems, no repeats.
Name
Date
Result


Warehouse Keeper Cliff:
I'll place numbers 1-9 on a 3x3 numberpad. Then you pick 6 numbers out of 1-9. When you finished your choices, we count how many lines can be made from your numbers: horizontally, vertically or diagonally. Got it? Maybe the easiest way to learn is to play it once.
I'll give you a reward if your choice of numbers can make 3 lines.


toggle
Mollit food truck thundercats, odio sustainable jean shorts do farm-to-table brunch tempor craft beer. Twee semiotics skateboard, reprehenderit ennui consequat tattooed nulla pork belly. In adipisicing sapiente craft beer single-origin coffee incididunt. Qui aute leggings, messenger bag aesthetic 8-bit sartorial lo-fi sriracha nisi trust fund small batch food truck hoodie fugiat. Semiotics farm-to-table american apparel reprehenderit, bespoke fanny pack cillum assumenda locavore iphone banh mi excepteur forage mumblecore. Eu sustainable excepteur chambray chillwave. Four loko pickled esse mixtape synth mcsweeney's beard.
Mollit food truck thundercats, odio sustainable jean shorts do farm-to-table brunch tempor craft beer. Twee semiotics skateboard, reprehenderit ennui consequat tattooed nulla pork belly. In adipisicing sapiente craft beer single-origin coffee incididunt. Qui aute leggings, messenger bag aesthetic 8-bit sartorial lo-fi sriracha nisi trust fund small batch food truck hoodie fugiat. Semiotics farm-to-table american apparel reprehenderit, bespoke fanny pack cillum assumenda locavore iphone banh mi excepteur forage mumblecore. Eu sustainable excepteur chambray chillwave. Four loko pickled esse mixtape synth mcsweeney's beard.


Joseph Daigle is a software professional. The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way. You can email at joseph.daigle _at_ gmail.com.
rss | linkedin | twitter | stackoverflow | github
Copyright 2015-2016 © Joseph Daigle. Powered by Jekyllrb.


Here are the steps you should make if you want to use python scripts on
IIS 7:
- Please make sure Python is installed properly or refer to Python
Notes – 1 :
Setup
for installation steps.
- Make sure CGI module is installed in IIS 7.
Control Panel -> Programs -> Program and Features
-> Turn Windows features on and off -> Internet Information
Services -> World Wide Web Services -> Application
Development Features -> CGI module (Ensure that it is
selected).
- Add web application for Python, In IIS Manager, right click
Sites –> Add Web Site..
- In the Add Web Site dialog box, set Site name e.g.:
PythonTest, and make it pointing to some folder like C:\PythonTest,
then click OK
- In Features View, open Handler Mappings
- On the left pane click Add Script Map …
- In Request path, put “*.py” as the script files extension, In
Executable select &qu ot;C:\Python25\Python.exe %s %s", or
change it according to your Python installation path. (The two “%s”
after the executable are required for console-based script
interpreters but would not be required for an Internet Server API
[ISAPI]-based script interpreter). Then give the script mapping an
appropriate Name, like Python. Click OK.
- Create a test.py into the virtual directory (C:\PythonTest), and
copy the following script into it.
print
print ‘Status: 200 OK’
print ‘Content-type: text/html’
print
print ‘<TITLE>Python Sample
CGI</TITLE>’ print ‘’
print ‘
This is a header
’
print ‘
’ #this is a comment
print ‘See this is just like most other HTML’
print ‘
’
print ‘’


[
Top
]
[
Contents
]
[
Index
]
[
?
]
Table of Contents
Copying
1 Introduction
1.1 Selection Specifiers
1.1.1 Extensions
1.2 Select Semantics
2 Systems
2.1
select
3 Files
3.1 Lisp
3.1.1
select.asd
3.1.2
select/package.lisp
3.1.3
select/select-dev.lisp
3.1.4
select/select.lisp
4 Packages
4.1
slct
5 Definitions
5.1 Exported definitions
5.1.1 Functions
5.1.2 Generic functions
5.1.3 Structures
5.2 Internal definitions
5.2.1 Macros
5.2.2 Functions
5.2.3 Generic functions
5.2.4 Structures
6 Change Log
Appendix A Indexes
A.1 Concepts
A.2 Functions
A.3 Variables
A.4 Data types
[
Top
]
[
Contents
]
[
Index
]
[
?
]
This document was generated on
December 23, 2017
using
texi2html 5.0
.


INNOCENCE A film review by Pete Croatto Copyright 2001 filmcritic.com
The most amazing thing about Paul Cox's Innocence is how unlike a movie it is. I mean that as the highest compliment. If most studios were to profile an elderly couple who rekindle a 40-year-old romance, I'd want to run and hide. The sex scenes would be handled as a farce, producers would shed 20 years off the characters' ages (so Susan Sarandon and Harrison Ford could star) and true love would shine through any obstacle without explanation and consequence.
Along with a charming romantic story, the Australian/Belgian Innocence shows how an increasing sense of mortality combined with revisiting the past while being entrenched in the present can make something that seems so right seem downright questionable.
The romance gets started when former musician Andreas (Charles "Bud" Tingwell), learns that his true love, Claire (Julia Blake), lives nearby. They decide to catch up on old times, but soon find themselves in a reinvigorating affair. Complicating matters is Andreas' frail health, and Claire's longtime husband (Terry Norris), who can't understand why he's suddenly become obsolete.
In my mind, the movie is less about the relationship between Andreas and Claire, than the feelings of everyone involved. John, Claire's husband, endlessly questions what he did wrong.  Andreas, an agnostic, begins to question his fate, a message Cox delivers in a memorable dream sequence.
Cox litters the movie with flashbacks, including the repeated vision of a roaring train. It's a reminder of Andreas and Claire's past love (as young lovers, they met by train), but as it recurs, we get the feeling that the past and the present have clashed. A pall is cast on the whole affair.
A master of the understated, Cox strings together a series of memorable moments. In Andreas' dream sequence, amidst the roar of the train and conversations, we get the whole picture of Andreas and Claire's love. We also get glimpses into John and Claire's relationship. During a silent candlelit dinner shortly afterward, Claire admits to John about her indiscretion, telling more than any monologue could. All that's heard is the scraping of forks against plates.
The characters are unlike anything I've seen -- they're people. So many times, movies and especially television portray senior citizens as gratingly spunky. Or they're reduced to comedic buffoons. Ordinary people with a pile of emotions, Claire and Andreas aren't sure what the next step is. They do want to be happy, which consists of an entirely different set of conditions than what they've known throughout their adult lives. Bravo to Cox, who wrote the script, for not making John a monster, so that Claire's affair is automatically justified. Norris is so effective as John that he makes Andreas and Claire's love difficult to accept. We feel for him. He's a decent man. Sure, he may have become complacent, but he never expected this, especially now.
With so much presented to the audience, it's only expected that the material gets a little drawn out and repetitive, which it does. However, in bringing up tough questions and not offering easy answers, Cox displays a skill and Úlan isn't likely to be surpassed by anyone anytime soon.

Visit filmcritic.com on the Web at http://www.filmcritic.com
========== X-RAMR-ID: 29540 X-Language: en X-RT-ReviewID: 250890 X-RT-TitleID: 1109599 X-RT-SourceID: 178 X-RT-AuthorID: 3402 X-RT-RatingText: 4/5
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


bengt ♥ csv
A friendly data munger for your csv. Group, filter and export to file - all in the browser - for security concerns. Check him out on github or the demo
commit message generator
Refactored configuration
automate the internet
Connect random api:s with ifttt and zapier. Anything from iot-devices to social media to spotify. Really simple pub/sub UI:s with recipes containing triggers and actions.
random id
And in one line: cat /proc/sys/kernel/random/uuid
randomize your cooking
Use butler bot to randomize meals from a Trello board. Add him to your board and put the follwing in a card title.
every friday at [time], move [n] randomly-selected cards from list "Meals" to list "Cook this weekend"
ELI5: Why is it impossible to generate truly random numbers with a computer?
The issue stems from the fact that there is nothing random about your computer..
Read more in this awesome thread
randomness through hardware
/dev/random allows access to environmental noise collected from device drivers and other sources.
automating secretary duty @company weekly meeting
n people take turns taking notes at the weekly meeting @company. Assuming a consistent group of people over time and no care for holidays - whose turn is it week x?
If one does not feel like running the function each week - Max would be happy to help.
self-management
Automating certain behaviors by performing other behaviors. Skinner was a master at this.
Fred seemed to dispose of envelopes and junk mail in an especially efficient way/.../When he opened his mail in the morning, he usually positioned his chair and trash can so that the very slightest flick of his wrist did the job. This was no accident, and it was part of the reason he was able to reply to virtually every letter he ever received, even until the end.


Chapter 3 Example sessions
3.1 Level 1: One pumping well
3.1.1 Pumping test data
We have provided an example dataset “drawdowns” containing four different pumping tests with measured drawdown time-series in five different wells (production well and four observation wells). You can load the dataset by running:
Let’s have a short look to the dataset.
The four list elements represent four different pumping tests (in “W1”, “W2”, “W4” and “W5”. The resulting drawdowns of each pumping test are stored in a data frame of six columns. Column “time.in.seconds” contains the time in seconds since the start of a pumping test. The columns “W1” through “W5” contain the water table drawdowns measured in the corresponding wells “W1” to “W5”,in meters below the initial water table.
For example, the fourth pumping test, during which a discharge of Q = 313 m3/h was measured in Well W5, resulted in the following drawdowns:
## time.in.seconds W5 W1 W2 W3 W4
## 1 600 0.73 0.00 0.00 0.01 0.04
## 2 1200 0.74 0.00 0.00 0.01 0.04
## 3 1800 0.75 0.00 0.00 0.01 0.06
## 4 2400 0.77 0.01 0.00 0.01 0.06
## 5 3600 0.78 0.01 0.00 0.02 0.07
## 6 5400 0.80 0.01 0.01 0.03 0.09
## 7 7200 0.82 0.02 0.01 0.04 0.10
## 8 10800 0.83 0.03 0.02 0.05 0.11
## 9 15000 0.85 0.03 0.03 0.06 0.13
## 10 21600 0.87 0.04 0.04 0.08 0.15
## 11 31200 0.89 0.05 0.05 0.09 0.16
## 12 44400 0.92 0.06 0.06 0.11 0.18
## 13 63600 0.93 0.07 0.07 0.12 0.20
## 14 90600 0.95 0.08 0.08 0.14 0.21
## 15 129600 0.96 0.09 0.09 0.15 0.23
It seems as if the drawdowns reach a steady-state after a certain time. This can be judged better by a diagram that can be produced in R by using the xyplot function from the R-package “lattice”:
lattice::xyplot(W1 + W2 + W3 + W4 + W5 ~ time.in.seconds,
data = drawdowns[["W5"]],
type = c("b", "g"), # (b)oth, dots and lines, and a (g)rid
auto.key = list(columns = 5), # legend arranged in five columns
ylim=c(1,-0.1),
ylab= "Drawdown (m)", # label of y-Axis
xlab= "Time in seconds since start of pumping in W5 (s)") # label of y-Axis
3.1.2 Model parameterisation
In a first step a WTAQ input file needs to be defined. This can be realised with two different functions:
wtConfigure()
: definition of WTAQ configuration within RwtReadInputFile()
: importing of WTAQ configuration from existing WTAQ input text file into R
The WTAQ input file can be directly defined in R using the function wtConfigure()
and saved in the R object wtaqConfiguration
(for a full description of all the
parameters that are accepted by the configuration functions, see:
Parameter tables).
generalConfiguration <- wtConfigureGeneral(
### title of the project (max. length 70 characters)
title="Example well field, long-term pumping test of well 5"
)
aquiferConfiguration <- wtConfigureAquifer(
aqtype = "WATER TABLE", # aquifer type
bb = 10, # saturated aquifer thickness
hkr = 1E-03, # horizontal hydraulic conductivity
hkz = 3.5E-05, # vertical hydraulic conductivity
ss = 1E-05, # specific storage
sy = 0.05 # specific yield
)
drainageConfiguration <- wtConfigureDrainage(
idra = 0 # = instantaneous drainage in unsaturated zone
)
timesConfiguration <- wtConfigureTimes(
its = 1 # = user-specified time-steps
)
In the following we will configure one pumping well and two observation wells (for simplifying the tutorial we restrict ourselves to two instead of four observation wells four which drawdown time series are available).
Since WTAQ allows to define time-series of measured drawdowns for each well,
the corresponding functions wtConfigurePumpwell()
and wtConfigureObservationWell()
,
that are described in the following, also allow to specify these measured drawdown
values. For this example, we want to use the drawdowns of the fourth pumping test,
provided in the example dataset drawdowns
. We store it in a separate variable
drawdowns5
:
Now we prepare some data frames (a table-like structure in R, defined by rows
and columns, see ?data.frame
) representing three drawdown time series, which
are measured at :
the pumping well “PW” and
two different observation wells “OW1” and “OW4”.
By doing this we simplify the programmig code that is used later on:
# the times of observations are the same for all wells:
times <- drawdowns5$time.in.seconds
# observed drawdowns at the pumping well
observed.PW <- data.frame(t = times, dd = drawdowns5$W5)
# observed drawdowns at the observation wells
observed.OW1 <- data.frame(t = times, dd = drawdowns5$W1)
observed.OW4 <- data.frame(t = times, dd = drawdowns5$W4)
Let’s start with the configuration of the pumping well:
pumpwellConfiguration <- wtConfigurePumpwell(
### partially penetrating pumped well
ipws = 0,
### finite diameter well
ipwd = 1,
### pumping rate of production well in (here: m3/s)
qq = 0.0869,
### radius of pumped well-screen (here: meter)
rw = 1.5,
### top of filter screen below initial water table (here: meter)
zpd = 0.4,
### bottom of filter screen below initial water table (here: meter)
zpl = 7.8,
### well-bore skin parameter (dimensionless)
sw = 0,
### data.frame with times and measured drawdown data in pumping well
tspw = observed.PW
)
Now, let’s define our first observation well:
observationWell1 <- wtConfigureObservationWell(
### name of observation well
obname = "OW1",
### distance from pumping well (here: meters)
r = 309.5,
### partially penetrating observation well
iows = 0,
### delayed response
idpr = 1,
### top of filter screen below initial water table (here: meters)
z1 = 1.8,
### bottom of filter screen below initial water table (here: meters)
z2 = 7.5,
### inside radius of the observation well (here: meters)
rp = 1.5,
### data.frame with times and measured drawdown data in OW1
tsobs= observed.OW1
)
In the same way, we define a second observation well “OW4” (in a formally more compact way to save some space here):
observationWell4 <- wtConfigureObservationWell(obname = "OW4", r = 86.6,
iows = 0, idpr = 1, z1 = 1.8, z2 = 7.5, rp = 1.5, tsobs = observed.OW4)
Out of these parts of configuration we can build one complete configuration by
using the function wtConfigure()
. It returns a R list structure that represents
a model configuration containing all the necessary information that WTAQ
requires to perform a model run.
This information is saved in the R object wtaqConfiguration
and will be
used for the following chapters of this tutorial.
wtaqConfiguration <- wtConfigure(
general = generalConfiguration,
aquifer = aquiferConfiguration,
drainage = drainageConfiguration,
times = timesConfiguration,
solution = wtConfigureSolution(),
pumpwell = pumpwellConfiguration,
obswells = list(observationWell4,
observationWell1)
)
Alternatively it is possible to load WTAQ input text files diretly into R with the function wtReadInputFile()
from an already existing WTAQ input text file, e.g.:
inputFile <- system.file("extdata", "example1.inp", package = "kwb.wtaq")
wtaqConfiguration2 <- wtReadInputFile(inputFile)
However, in this tutorial we just focus on the example that is stored in the R
object wtaqConfiguration
.
For checking this model parameterisation it can be printed:
## General
## - Title: Example well field, long-term pumping test of well 5
## - Format: DIMENSIONAL
##
## Aquifer
## - Type: WATER TABLE
## - Thickness (bb) ............: 10.000000 (length)
## - Horiz. hydr. conduct. (hkr): 0.001000 (length/time)
## - Vert. hydr. conduct. (hkz): 0.000035 (length/time)
## - Specific storage (ss) .....: 0.000010 (1/length)
## - Specific yield (sy) .......: 0.050000
##
## Drainage
## - Type: Instantaneous drainage (idra = 0)
##
## Times
## - Type: User-specified times (its = 1)
##
## Solution
## - Type: de Hoog algorithm (isoln = 2)
## - Rel. err. for Newton-Raphson iter. (rerrnr) ...................: 0.000000
## - Rel. err. sought for accur. of the num. invers. (error) .......: 0.000100
## - Factor to determ. # terms in finite summations (ntms) .........: 30
## - # terms in summ. of Fourier series for inv. Lapl. transf. (nnn): 6
## - Method used to accelerate convergence of Fourier series .......: 3
##
## Pumped Well ("PW")
## - Type: Partially penetrating pumped well (ipws = 0)
## - Type of diameter: Finite diameter (ipwd = 1)
## - Pumping rate (qq) .......................................: 0.086900 (length^3/time)
## - Radius of screen (rw) ...................................: 1.500000 (length)
## - Inside radius where levels change during pumping (rc) ...: 1.500000 (length)
## - Top of aquifer/initial water table to screen top (zpd) ..: 0.400000 (length)
## - Top of aquifer/initial water table to screen bottom (zpl): 7.800000 (length)
## - Well-bore skin parameter (sw) ...........................: 0.000000
## - Predefined Times (t)/drawdown measurements (dd):
## t dd
## 1 600 0.73
## 2 1200 0.74
## 3 1800 0.75
## 4 2400 0.77
## 5 3600 0.78
## 6 5400 0.80
## 7 7200 0.82
## 8 10800 0.83
## 9 15000 0.85
## 10 21600 0.87
## 11 31200 0.89
## 12 44400 0.92
## 13 63600 0.93
## 14 90600 0.95
## 15 129600 0.96
##
## Observation Well "OW4"
## - Type: Partially penetrating observation well (iows = 0)
## - Delayed response: yes (idpr = 1)
## - Radial dist. from axis of pumped well to obs. well (r) .....: 86.600000 (length)
## - Top of aquifer/initial water table to screen top (z1) ......: 1.800000 (length)
## - Top of aquifer/initial water table to screen bottom (z2) ...: 7.500000 (length)
## - Inside radius of standpipe where levels change (rp) ........: 1.500000 (length)
## - Length of screened interval (xll) ..........................: 5.700000 (length)
## - Predefined Times (t)/drawdown measurements (dd):
## t dd
## 1 600 0.04
## 2 1200 0.04
## 3 1800 0.06
## 4 2400 0.06
## 5 3600 0.07
## 6 5400 0.09
## 7 7200 0.10
## 8 10800 0.11
## 9 15000 0.13
## 10 21600 0.15
## 11 31200 0.16
## 12 44400 0.18
## 13 63600 0.20
## 14 90600 0.21
## 15 129600 0.23
##
## Observation Well "OW1"
## - Type: Partially penetrating observation well (iows = 0)
## - Delayed response: yes (idpr = 1)
## - Radial dist. from axis of pumped well to obs. well (r) .....: 309.500000 (length)
## - Top of aquifer/initial water table to screen top (z1) ......: 1.800000 (length)
## - Top of aquifer/initial water table to screen bottom (z2) ...: 7.500000 (length)
## - Inside radius of standpipe where levels change (rp) ........: 1.500000 (length)
## - Length of screened interval (xll) ..........................: 5.700000 (length)
## - Predefined Times (t)/drawdown measurements (dd):
## t dd
## 1 600 0.00
## 2 1200 0.00
## 3 1800 0.00
## 4 2400 0.01
## 5 3600 0.01
## 6 5400 0.01
## 7 7200 0.02
## 8 10800 0.03
## 9 15000 0.03
## 10 21600 0.04
## 11 31200 0.05
## 12 44400 0.06
## 13 63600 0.07
## 14 90600 0.08
## 15 129600 0.09
and also graphically visualised with the function wtPlotConfiguration()
, e.g.:
3.1.3 Model run
For running WTAQ and saving the results in the R object result
we just have do
use the function wtRunConfiguration()
with our above defined model parameterisation
wtaqConfiguration
:
3.1.4 Analysing results
To print the results of the model run, that are stored in the object result
in the RStudio console we simply need to enter:
## WELL TIME MEASDD CALCDD RELERR
## 3 PW 600 0.73 3.808e+00 -421.60
## 4 PW 1200 0.74 4.731e+00 -539.40
## 5 PW 1800 0.75 5.033e+00 -571.00
## 6 PW 2400 0.77 5.189e+00 -573.90
## 7 PW 3600 0.78 5.402e+00 -592.50
## 8 PW 5400 0.80 5.640e+00 -604.90
## 9 PW 7200 0.82 5.825e+00 -610.30
## 10 PW 10800 0.83 6.103e+00 -635.30
## 11 PW 15000 0.85 6.338e+00 -645.60
## 12 PW 21600 0.87 6.602e+00 -658.90
## 13 PW 31200 0.89 6.869e+00 -671.80
## 14 PW 44400 0.92 7.123e+00 -674.30
## 15 PW 63600 0.93 7.380e+00 -693.60
## 16 PW 90600 0.95 7.631e+00 -703.20
## 17 PW 129600 0.96 7.883e+00 -721.10
## 20 OW4 600 0.04 2.162e-02 45.94
## 21 OW4 1200 0.04 4.856e-02 -21.41
## 22 OW4 1800 0.06 6.812e-02 -13.53
## 23 OW4 2400 0.06 8.315e-02 -38.59
## 24 OW4 3600 0.07 1.086e-01 -55.15
## 25 OW4 5400 0.09 1.453e-01 -61.41
## 26 OW4 7200 0.10 1.826e-01 -82.61
## 27 OW4 10800 0.11 2.579e-01 -134.50
## 28 OW4 15000 0.13 3.440e-01 -164.60
## 29 OW4 21600 0.15 4.703e-01 -213.50
## 30 OW4 31200 0.16 6.307e-01 -294.20
## 31 OW4 44400 0.18 8.115e-01 -350.90
## 32 OW4 63600 0.20 1.016e+00 -408.10
## 33 OW4 90600 0.21 1.232e+00 -486.60
## 34 OW4 129600 0.23 1.460e+00 -534.60
## 37 OW1 600 0.00 1.659e-05 NA
## 38 OW1 1200 0.00 4.502e-05 NA
## 39 OW1 1800 0.00 7.374e-05 NA
## 40 OW1 2400 0.01 1.039e-04 98.96
## 41 OW1 3600 0.01 1.747e-04 98.25
## 42 OW1 5400 0.01 3.169e-04 96.83
## 43 OW1 7200 0.02 5.106e-04 97.45
## 44 OW1 10800 0.03 1.081e-03 96.40
## 45 OW1 15000 0.03 2.114e-03 92.95
## 46 OW1 21600 0.04 4.682e-03 88.30
## 47 OW1 31200 0.05 1.075e-02 78.49
## 48 OW1 44400 0.06 2.373e-02 60.45
## 49 OW1 63600 0.07 5.076e-02 27.49
## 50 OW1 90600 0.08 9.924e-02 -24.05
## 51 OW1 129600 0.09 1.775e-01 -97.28
For plotting the results we can either use the function wtPlotResult()
with
the parameter plottype = "w"
to plot for each well measured (MEASDD) and
calculated (CALCDD) drawdowns in one plot:
## Removing column 'RELERR' from 'wtaqResult'.
or produce a plot that contains measured and calculated drawdowns for all wells
in two separate plots by setting the parameter plottype = "s"
:
3.1.5 Model calibration
For this tutorial calibration is realised by using an automatised one-dimensional optimisation approach for the following two model parameters, because these were identified to be the most sensitive ones:
The approach is valid because the calibration of the well-skin parameter (during
Step 2) has no impact on the observation well drawdowns (Step 1). However, it
needs to be stated that conditions could occur, where a better model fit could
be possible (especially if the mid-term drawdown data are not fitting well) in
case that both, vertical hkz
and horizontal hkr
hydraulic aquifer conductivity
are varied in tandem.
Within this tutorial we solve this one-dimensional optimisation problem by using:
the build-in R function
optimise()
andthe Root-Mean-Square-Error (RMSE) as the only performance criteria for evaluating the model fitness (i.e. comparision of calculated and measured drawdowns).
For solving this optimisation (or: calibration) problem we define the R function
calibrateModel()
which requires the following four input parameters:
configuration
: a valid WTAQ input parameterisation (here:wtaqConfiguration
)wellPattern
: a regular expression or the well(s) names to be used for the model fit evaluation (here:OW4
orPW
)parameterName
: name of the WTAQ parameter that should be calibrated (here:hkr
orsw
)parameterRange
: allowed value range for calibration parameter (e.g.c(0.0001, 0.1)
for parameterhkr
)
Firstly this function - and its three dependent helper functions modelFitness()
,
modelFitnessAggregated
and fitnessAdaptedModelConfiguration()
- need to be
loaded in R by running the following code:
## Warning: package 'hydroGOF' was built under R version 3.5.1
## Loading required package: zoo
## Warning: package 'zoo' was built under R version 3.5.1
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
# modelFitness(): called by function modelFitnessAggregated()
modelFitness <- function
(
wtaqResult,
wellPattern
)
{
subResult <- wtaqResult[grep(pattern = wellPattern, wtaqResult$WELL),]
fitness <- t(hydroGOF::gof(sim = subResult$MEASDD, obs = subResult$CALCDD, digits = 3))
colnames(fitness) <- sub(" %", "", colnames(fitness))
### data.frame with plenty of performance indicators: e.g. RMSE, NSE, R2
as.data.frame(fitness)
}
# modelFitnessAggregated: called by function fitnessAdaptedModelConfiguration()
modelFitnessAggregated <- function
(
wtaqResult,
wellPattern
)
{
fitness <- modelFitness(wtaqResult, wellPattern)
### Objective function for the performance criteria that is minimised, here:
fitness$RMSE
}
# fitnessAdaptedModelConfiguration: called by function calibrateModel()
fitnessAdaptedModelConfiguration <- function
(
parameterValue, parameterName, configuration, wellPattern
)
{
configuration <- wtSetParameter(configuration, parameterName, parameterValue)
wtaqResult <- wtRunConfiguration(configuration)
modelFitnessAggregated(wtaqResult, wellPattern)
}
#calibrateModel()
calibrateModel <- function (
### WTAQ parameterisation, e.g. as retrieved by wtConfigure()
configuration,
### regular expression or name of well(s) to be used for calibration: e.g. "OW4"
wellPattern,
### name of ONE WTAQ parameter to be calibrated: e.g. `hkr`, `sw`
parameterName,
### min/max range of possible calibration parameter values
parameterRange
)
{
optResults <- optimise(
f = fitnessAdaptedModelConfiguration,
interval = parameterRange,
parameterName = parameterName,
configuration = configuration,
wellPattern = wellPattern )
### Save calibrated WTAQ configuration:
wtaqConfigurationCalibrated <- wtSetParameter(
configuration = configuration,
parameterName = parameterName,
parameterValue = optResults$minimum)
### Save optimisation results in list
list(parameterName=parameterName,
wellPattern=wellPattern,
optimalParameterValue=optResults$minimum,
minimalPerformanceValue=optResults$objective,
wtaqConfig=wtaqConfigurationCalibrated
)
}
<IP_ADDRESS> Aquifer characteristics: horizontal hydraulic conductivity (Step 1)
# 1.Step: Calibrate aquifer characteristics 'hkr' for OW4-------------------------------
calibratedAquifer <- calibrateModel(
### reference wtaq configuration
configuration = wtaqConfiguration,
### calibrate hydraulic aquifer conductivity
parameterName = "hkr",
### 'hkr' is within 0.0001 - 0.1 m/s
parameterRange = c(0.0001, 0.1),
### only use drawdown time-series of OW4 for calibration
wellPattern = "OW4"
)
### Plot the drawdowns with calibrated aquifer characteristics:
wtPlotResult(wtaqResult = wtRunConfiguration(
configuration = calibratedAquifer$wtaqConfig),
main = sprintf("Optimal value of parameter '%s' for %s: %0.4f m/s",
calibratedAquifer$parameterName,
calibratedAquifer$wellPattern,
calibratedAquifer$optimalParameterValue),
plottype = "w")
## Removing column 'RELERR' from 'wtaqResult'.
After this step observed and measured drawdowns fit nearly perfectly for the calibrated observation well “OW4” only by setting the hkr to 0.0148366 (m/s) , but still the drawdown in the production well “PW” is underestimated (because it is still assumed that here are no “well losses”).
Thus the production well characteristics (i.e. the well-skin parameter sw
) need to be
calibrated in a next step.
<IP_ADDRESS> Well characteristics: well-bore skin parameter of production well (Step 2)
#2.Step: Calibrate well-bore skin parameter 'sw' for PW-------------------------------
calibratedAquiferAndWellSkin <- calibrateModel(
#### WTAQ configuration with calibrated aquifer (Step1)
configuration = calibratedAquifer$wtaqConfig,
### calibrate well-bore skin parameter
parameterName = "sw",
### 'sw' within 0 - 100 (dimensionless)
parameterRange = c(0, 100),
### only use drawdown time-series of PW for calibration
wellPattern = "PW"
)
### Plot the drawdowns with calibrated aquifer & well-bore skin characteristics:
wtPlotResult(wtaqResult = wtRunConfiguration(
configuration = calibratedAquiferAndWellSkin$wtaqConfig,
),
main = sprintf("Optimal value of parameter '%s' for %s: %2.4f (dimensionless)",
calibratedAquiferAndWellSkin$parameterName,
calibratedAquiferAndWellSkin$wellPattern,
calibratedAquiferAndWellSkin$optimalParameterValue),
plottype = "w")
## Removing column 'RELERR' from 'wtaqResult'.
By calibrating the well-skin parameter sw to 2.0150393 the drawdown in the production well “PW” now also fits nearly perfectly the observed drawdown values, without impacting the fit for the observation wells.
There might be cases where the calibration results by following the methodology defined above is not satisfying. This can be possibly solved by calibrating multiple parameters in parallel (e.g. horizontal hkr
and vertical hydraulic aquifer conductivity hkz
). For this a more complex algorithm (e.g. build-in R function optim()
), which is able to solve multi-dimenional optimisation problems, might be usefull. However, this goes beyond the scope of this tutorial.
3.2 Level 2: Multiple pumping wells
For performing this example session it is required to perform all steps of the Level 1: one pumping well example session first, because this example session requires some data of the Level 1: one pumping well example
One challenge of using WTAQ for multiple wells is that the drawdown simulation for each model run is limited to:
one active production well and
up to 25 observation wells
This means that the model parameterisation for the pumping (e.g. pumping rate) and observation wells (e.g. distance to pumping well) needs to be adapted for each model run manually by using the Level 1 function (see: Level 1: one pumping well example).
For avoiding such time consuming task additional Level 2 functions were developed and included in the kwb.wtaq package that simplify using WTAQ on the well-field scale. The usage of these functions is described in the following:
3.2.1 Model parameterisation
<IP_ADDRESS> Well field
In a first step the well field is defined, by creating a R object owWellfieldConf
that contains the following properties for each well, i.e.:
Location
x
,y
,Well diameter
r
,Depth of filter screen top
z1
and bottomz2
below initial groundwater levelWell-skin parameter
sw
For all production wells the well-skin parameter sw
is set to wellSkin
,
because this value achieved the best-model fit during calibration for W5
### Well-skin parameter from calibration of W5 for all wells of the well field
wellSkin <- calibratedAquiferAndWellSkin$optimalParameterValue
sprintf("Well-skin parameter value: %2.6f (dimensionless)", wellSkin)
## [1] "Well-skin parameter value: 2.015039 (dimensionless)"
# Example well field configuration with 5 wells
owWellfieldConf <- rbind(
owConfigureWell(
wellName = "W1", x = 807679.64, y = 2091015.29,
r = 1.5, z1 = 2, z2 = 4, sw = wellSkin),
owConfigureWell(
wellName = "W2", x = 807608.66, y = 2091018.51,
r = 1.7, z1 = 4.2, z2 = 7, sw = wellSkin),
owConfigureWell(
wellName = "W3", x = 807558.27, y = 2091090.30,
r = 1.5, z1 = 1.8, z2 = 8, sw = wellSkin),
owConfigureWell(
wellName = "W4", x = 807509.29, y = 2091161.80,
r = 1.5, z1 = 1.8, z2 = 7.5, sw = wellSkin),
owConfigureWell(
wellName = "W5", x = 807458.95, y = 2091232.26,
r = 1.5, z1 = 0.4, z2 = 7.8, sw = wellSkin))
rmdimportant
On the Level 2 function level it is now not necessary to define well distances
(this was required in the Level 1: one pumping well example.
The well distances will be set later automatically for each model run based on
both, the x
y
coordinates:
## Well distance matrix table:
## W1 W2 W3 W4 W5
## W1 71.1 142.7 224.7 309.5
## W2 71.1 87.7 174.4 261.0
## W3 142.7 87.7 86.7 173.3
## W4 224.7 174.4 86.7 86.6
## W5 309.5 261.0 173.3 86.6
and on the information which well is operating. For example column “W2” is used if the pumping Well is “W2”
<IP_ADDRESS> Basic model parameterisation
In a next step we define we use the Level 2 function owConfigure()
to
prepare the constant parts of the WTAQ configuration parameterisation (wellfield
,
aquifer
and drainage
) and store them in the object owConf
:
# Create constant components of WTAQ configuration
owConf <- owConfigure(wellfield = owWellfieldConf,
aquifer = calibratedAquiferAndWellSkin$wtaqConfig$aquifer,
drainage = wtConfigureDrainage(idra = 0)
)
For the parameter aquifer
we simply use the calibrated parameter setting, that we obtained after the Level 1 model calibration, which is stored in the R object:
## $aqtype
## [1] "WATER TABLE"
##
## $bb
## [1] 10
##
## $hkr
## [1] 0.01483664
##
## $hkz
## [1] 3.5e-05
##
## $ss
## [1] 1e-05
##
## $sy
## [1] 0.05
The well field configuration can be plotted with the function owPlotConfiguration()
(top view & side view). By setting the parameter referenceWell=1
the Well 1
is selected as reference well for plotting:
<IP_ADDRESS> Time-varying model parameteristion
The time-variant model parameterisation contains:
the pumping rates (
pumpingRates
) of each well (here: defined inowWellfieldConf
) andthe times for which the drawdowns should be calculated (
timesForDDcalculation
)
These are defined in the following code:
3.2.2 Model run
Now we have all parts for parameterising WTAQ and calulating the drawdowns easily on the well field scale (i.e. running WTAQ multiple times in the background).
For this we use the function owGetDrawdowns()
with the following parameters:
ddlist <- owGetDrawdowns(
owConf=owConf,
Q = pumpingRates,
times = timesForDDcalculation,
### required for using the function wtPlotResults()
to.matrix=FALSE
)
ddmatrix<- owGetDrawdowns(
owConf=owConf,
Q = pumpingRates,
times = timesForDDcalculation,
### saves results in "matrix" format: required for function owSuperposeDrawdowns()
to.matrix=TRUE
)
The switch to.matrix=TRUE
is required in case one would like to calculate the
total drawdown in each well including well interference with the function owSuperposeDrawdowns()
:
3.2.3 Analysing results
Quantifying the impact of well interference
Finally the modelling results can be analysed. For example it is possible to quantify the additional drawdown due to well interference, e.g. for “W1”:
myWell <- "W1"
DD_inProductionWell_withInterference <- drawdownsWithWellInterference[,myWell]
DD_inProductionWell_withoutInterference <- ddmatrix[[myWell]][,myWell]
diffDrawdown <- DD_inProductionWell_withInterference-DD_inProductionWell_withoutInterference
data.frame(time.in.seconds=drawdownsWithWellInterference[,1],
additionalDrawdown.due.to.wellInterference.in.meter=diffDrawdown)
## time.in.seconds additionalDrawdown.due.to.wellInterference.in.meter
## 1 1 0.000000000
## 2 5 0.000016160
## 3 10 0.000116362
## 4 30 0.001717690
## 5 60 0.007218800
## 6 600 0.101305000
## 7 1200 0.119617000
## 8 2400 0.140303000
## 9 3600 0.159315000
## 10 10000 0.242770000
## 11 50000 0.483100000
## 12 100000 0.607290000
## 13 300000 0.810100000
Plotting of well drawdowns (without well interference):
for (wellName in owWellfieldConf$wellName)
{
index <- which(owWellfieldConf$wellName==wellName)
wellQ <- pumpingRates[index]
if (wellQ > 0)
{
wtPlotResult(wtaqResult = ddlist[[wellName]],
plottype = "s",
ylab = "Drawdown (m)",
xlab = "Time in seconds since start of pumping (s)",
main = sprintf("Pumping well: %s (Q: %3.1f m3/h)",
wellName,
wellQ*3600))
}
}
Plotting of well drawdowns (with well interference):
plotWellInterference <- function(wellName, Q=NULL)
{
if (is.null(Q)) {
label <- sprintf("%s ",wellName)
} else {
label <- sprintf("%s (%3.1f m3/h) ",wellName, Q*3600)
}
drawdown <- data.frame(SCENARIO="no well interference",
TIME=ddmatrix[[wellName]][,"TIME"],
CALCDD=ddmatrix[[wellName]][,wellName])
drawdownWithInterference <- data.frame("SCENARIO"="with well interference",
TIME=drawdownsWithWellInterference[,"TIME"],
CALCDD=drawdownsWithWellInterference[,wellName])
res <- rbind(drawdown, drawdownWithInterference)
print(lattice::xyplot(CALCDD ~ TIME,
groups = SCENARIO,
ylim=rev(extendrange(res$CALCDD)),
ylab = "Drawdown (m)",
xlab = "Time in seconds since start of pumping (s)",
type="b",
auto.key = list(columns=2),
data=res,
main = label))
}
for (wellName in owWellfieldConf$wellName)
{
index <- which(owWellfieldConf$wellName==wellName)
wellQ <- pumpingRates[index]
plotWellInterference(wellName = wellName, Q = wellQ)
}


Your payment has been successful
Your payment reference number is
TEST123456V
What happens next
You'll receive an email receipt in the next hour.
You don't need to do anything else. Now that we've received your payment, we'll proceed with your application.
Payment summary
| Payment description: | Additional fee for Local Authority ceremony |
| Amount paid: | £80.00 |


|
|||||||
|
1. Introduction
2. Installing Karrigell 3. The Web server 4. Configuration options 5. Working with Apache, LightTPD or Xitami 6. Programming 7. Debugging 7.1 Debug mode 7.2 Error handling and debugging 8. Python scripts 9. CGI scripts 10. Karrigell Services 11. Python Inside HTML 12. HTML Inside Python 13. HTMLTags - generate HTML in Python 14. Including documents 15. Sessions 16. Authentication 17. Translation and Unicode 18. Summary of built-in names |
7. Debugging7.1 Debug modeWhen you are testing new versions of a program, there is often the case when you change a module which is imported by your scripts. For performance reasons, the standard Python interpreter uses the compiled versions of the modules which have been imported, and does not check if the source has been modifiedYou can set the Once the program works, you can set the debug mode to 0 7.2 Error handling and debuggingIf an error happens when calling an URL, a trace is displayed in the browser The information provided consists of :
Snapshot :
If you want to hide this information from users, you can set the option |


Last week, I went out to Columbia University on the upper west side to attend the Promoting Credibility, Reproducibility, and Integrity in Research (PCRI) Symposium. This "a one-day symposium to showcase a robust discussion of reproducibility and research integrity among leading experts, high-profile journal editors, funders and researchers. This program revealed the "inside story" of how issues are handled by institutions, journals and federal agencies and offered strategies for responding to challenges in these areas. Researchers in all stages of their career joined for a stimulating discussion. We are looking forward to continuing the discussion in a future event." (from the PCRI website).
Remi, Fernando, and I headed up to Columbia last week to . The bibliography
The program for the Symposium was stacked with exactly zero early-to-mid career folks. The panels were also
One of my favourite moments from the Symposium was hearing Victoria Stodden speak for the first time -- besides the fact she did a lot for bringing attention to the theories around reproducibility, she also did this:
I REALLY appreciate .@victoriastodden calling out librarians as knowing abt data mgmt & repro & contributing to research. #pcrisymposium
— Vicky Steeves (joinmastodon.org) (@VickySteeves) December 9, 2016
Librarians who work with data management and reproducibility aren't very much cited or discussed by other researchers -- Victoria Stoddent, a very well-known figure in the field, shouting us out .
If it takes you months to reproduce your own data & code, your publication can't be trusted. Period. #pcrisymposium
— Vicky Steeves (joinmastodon.org) (@VickySteeves) December 9, 2016


Make a Booking
Our works
Promotion
Bellow are our main promotion deals which will be avaiable all year around
We also run other deals for special occasions like school balls, wedding... which will be posted on our facebook book page.
For more details please email or give
us a call.


AWSFileStorage
User Login Page
Invalid username or password.
You have been logged out.
Username
:
Password
:
New user?
Register here


Warehouse Keeper Marty:
Do you have an item too heavy to carry around, but too valuable simply to abandon? Why not make use of our warehouse? We Dwarves have branches throughout the entire continent. When you deposit an item with us, you can retrieve it from anywhere!
In fact, we even have a branch inside the Ivory Tower. And our facilities are so secure that not even the King himself could touch your valuables!
Private Warehouse
Clan Warehouse
Learn skills.
Quest


timeROC: Time-Dependent ROC Curve and AUC for Censored Survival Data
Estimation of time-dependent ROC curve and area under time dependent ROC curve (AUC) in the presence of censored data, with or without competing risks. Confidence intervals of AUCs and tests for comparing AUCs of two rival markers measured on the same subjects can be computed, using the iid-representation of the AUC estimator. Plot functions for time-dependent ROC curves and AUC curves are provided. Time-dependent Positive Predictive Values (PPV) and Negative Predictive Values (NPV) can also be computed.
Downloads:
Reverse dependencies:
Linking:
Please use the canonical form
https://CRAN.R-project.org/package=timeROC
to link to this page.


{% extends 'base.html' %} {% load bootstrap3 %} {% bootstrap_css %} {% block title %}
I'm a Web Developer professional that works with MEAN, MERN, Ruby On Rails, Python-Django technology stacks. With experience in time series trend analysis and forecasting, prediction modelling and Big Data frameworks such as Spark


Texas Deep Net strives to educate students about artificial intelligence through a hands-on approach, allowing members to apply their knowledge towards research and entrepreneurial opportunities to solve real-world problems
General Requirements
Fall 2021 Member Application
Officer Application
SLACK INSTAGRAM LINKEDIN GITHUB


Home
Shop
About Us
Services
Contacts
Categories
Design
(3)
Gardening
(2)
General
(2)
Marketing
(4)
Painting
(2)
Styling
(3)
Recent projects
Tags
Design
Logo
Marketing
Painting
Repairing
Shopping
Smart
Home
Shop
About Us
Services
Contacts
Home
Shop
About Us
Services
Contacts
King Shop
Let's get it started today
Home
Shop
Showing all 12 results
Default sorting
Sort by popularity
Sort by average rating
Sort by newness
Sort by price: low to high
Sort by price: high to low
Business cards
£
4.99
–
£
7.55
Select options
Creative vcards
£
5.99
Add to cart
-19%
Customer care
£
10.99
£
8.99
Add to cart
Human Resources
£
7.99
Add to cart
Office Keys
£
5.99
Add to cart
Office manager
£
7.99
Add to cart
Office pencils
£
5.99
Add to cart
Office pens
£
3.75
Add to cart
-26%
Office printer
£
7.99
£
5.99
Add to cart
Office Specialist
£
5.55
Add to cart
Portable USB
£
8.99
Add to cart
Two blue pens
£
3.99
Add to cart


I AM A HAPPY CODER
I am a student in HDU.
I am working in H3C Technology.
I am a happy coder.
tomjson - A Java library can be used to convert Java Bean Objects into JSON string.
CleanBlog - A clean personal blog for you and me.
algorithm_data_structure - 数据结构与算法学习源代码.
web_bookstore - 网上书城
Feel free to email me to say hello.
luoxn28@163.com


VideoLang helps you learn a language by watching videos.Super‑fast language acquisition while watching your favourite video.


You can access this dialog window by clicking the symbol of Bob in the side-channel attack against the hybrid encryption protocol dialog.
This dialog offers detailed information about Bob.
Next to the portrait of Bob there is a window logging all important actions Bob executed during the side-channel attack.
Below you can define which keyword Bob uses to recognize if a message was indeed sent by Alice. Further information about this mechanism can be obtained here.
In the list box below you can find all encrypted session keys that Bob received during the side-channel attack and the respective decryption results.


Text messages cannot be longer than {{ SMS_CHAR_COUNT_LIMIT }} characters. Your message is {{ template.content_count }} characters.


class Solution: def getSmallestString(self, n: int, k: int) -> str: arr = ['a' for _ in range(n)] rem = k - n i = n-1 while rem > 0: if rem >= 25: arr[i] = 'z' rem -= 25 i -= 1 else: arr[i] = chr(97 + rem) rem = 0 return ''.join(arr)


{% comment %}
Copyright (c) 2015-present, Philippine-California Advanced Research Institutes-
The Village Base Station Project (PCARI-VBTS). All rights reserved.
This source code is licensed under the BSD-style license found in the
LICENSE file in the root directory of this source tree.
{% endcomment %}
VBTS Report Generator
Report Details
| Name |
{{ report.name }}
|
| Description |
{{ report.description }}
|
| Keyword |
{{ report.keyword }}
|
| Shortcode Number |
{{ report.number }}
|
| Status
|
{{ report.get_status_display }}
|
| Manager(s) |
{% for manager in report.managers.all %}
{% if not forloop.first %}, {% endif %}
{{ manager }}
{% endfor %}
|
Report Messages
| Date |
Message |
{% if reports %}
{% for report in reports.all %}
| {{ report.date}}
|
{{ report.message }}
|
{% endfor %}
{% else %}
| No report messages yet. |
|
{% endif %}


{% extends "app/base.html" %} {% block content %} The transaction was successful. Transaction ID: {{ response.transaction.id }} {% endblock %}


Import motions
Required comma or semicolon separated values with these column header names in the first row:
Identifier, Title, Text,
Reason, Submitter, Category,
Origin, Motion block
-
Identifier, reason, submitter, category, origin and motion block are optional and may be empty.
- Additional columns after the required ones may be present and won't affect the import.
Encoding of the file
{{ option.label | translate }}
Column separator
{{ option.label | translate }}
Text separator
{{ option.label | translate }}
Preview
playlist_add
{{ newCount }} Motion(s) will be imported.
warning
{{ nonImportableCount }} entries will be ommitted.
done
{{ doneCount }} Motions have been imported.
After verifiy the preview click on 'import' please (see top right).
Show all
Show errors only
Show correct entries
{{ getActionIcon(entry) }}
{{ getActionIcon(entry) }}
{{ getActionIcon(entry) }}
Identifier
warning
{{ entry.newEntry.identifier }}
Title
warning
{{ entry.newEntry.title }}
Motion text
warning
{{ getShortPreview(entry.newEntry.text) }}
Reason
{{ getShortPreview(entry.newEntry.reason) }}
Submitters
warning
{{ submitter.name }}
add
Category
warning
{{ entry.newEntry.csvCategory.name }}
add
Origin
{{ entry.newEntry.origin }}
Motion block
warning
{{ entry.newEntry.csvMotionblock.name }}
add


Content-type: text/html;charset=UTF-8 Set-cookie: session=7777
If your language has other features beyond those that can be defined elsewhere in this questionnaire, you can define those features here. For example, if your language has merged features (e.g. pernum instead of person and number, gendnum instead of gender and number), they can be defined below.
For each feature, you will define a type hierarchy, which consists of a root type you will name (e.g. pernum), and then a series of other values of the feature, each of which is the subtype of at least one of the other values, possibly the root.


There are 4 primary attributes to encode data visually:
Visualizations are used to tell
a directed story or to make a point.
Think one page scrollers or visualizations
embedded in news articles.
Tend to generally have a stronger focus on design and mood, as there is no cumbersome utilitarian interface to get in the way.
Visualizations that foster a free user-experience, letting them draw their own hypotheses and conclusions.
Usually some sort of sandbox or interface
with a lot of user defined control.
Stronger attention needs to be paid to the organization of user interface elements, to make them both visually unobstrusive and easy to learn.
Whether storing in a file on your computer or using an API, set up an HTML page that loads the data you need for your final project into Javascript using D3. Use console.log to display your data and we will look at it next class all together.
Don't worry about drawing anything based on the data, this exercise is solely for exploring the data in the console.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<script src="https://d3js.org/d3.v4.min.js"></script>
</head>
<body>
<script>
d3.csv("pokemonStats.csv", function(error, data) {
console.log(data);
});
</script>
</body>
</html>


LFE Style Guide
2 General Guidelines
2.1 Principles
There are some basic principles for team software development that every developer must keep in mind. Whenever the detailed guidelines are inadequate, confusing or contradictory, refer back to these principles for guidance:
Every developer's code must be easy for another developer to read, understand, and modify — even if the first developer isn't around to explain it. (This is the "hit by a truck" principle.)
Everybody's code should look the same. Ideally, there should be no way to look at lines of code and recognize it as "Fred's code" by its style. * Be precise. * Be concise. * Keep It Simple. * Use the smallest hammer for the job. * Use common sense. * Keep related code together. Minimize the amount of jumping around someone has to do to understand an area of code.
2.2 Priorities
When making decisions about how to write a given piece of code, aim for the following "-ilities" in this priority order:
- Usability by the developer/user/consumer/customer.
- Debuggability/Testability.
- Readability/Comprehensibility.
- Extensibility/Modifiability.
- Efficiency (of the LFE code at runtime)
Most of these are obvious.
Usability means that the system has to do what the end user requires; it has to handle such things as transaction volumes, uptime requirements; etc.
For the LFE efficiency point, given two options of equivalent complexity, pick the one that performs better. (This is often the same as the one that conses less, i.e. allocates less storage from the heap.)
Given two options where one is more complex than the other, pick the simpler option and revisit the decision only if profiling shows it to be a performance bottleneck.
However, avoid premature optimization. Don't add complexity to speed up something that runs rarely, since in the long run, it matters less whether such code is fast.
2.3 Architecture
To build code that is robust and maintainable, the following matter a great deal:
- how the code is divided into components;
- how these components communicate;
- how changes propagate as they evolve, and more importantly,
- how the programmers who develop these components communicate as these components evolve.
If your work affects other projects, might be reusable across projects, adds new components, has an impact on other projects, or otherwise isn't purely local, you create a document describing the new architecture or proposed changes in architecture. This document should then be shared with projects and/or communities in order to build community consensus around the proposed changes or, better yet, provide additional insight of the problem space in question and perhaps better alternative solutions that have fewer negative impacts on other projects..
If you don't know or don't care about these issues, ask someone who does. A great place to start is on the #erlang-lisp channel of Frenode or the Lisp Flavored Erlang mail list on Google Groups.
2.4 Using Libraries
Often, the smallest hammer is to use an existing library. Sometimes the least effort actually is to create one that doesn't exist yet.
In general, it is better to contribute to a library that is missing the features that you need or has broken functionaly that you need fixed. The obvious benefits of this include:
- Good will with the maintainers of the open source project.
- Less code for you or your project(s) or team(s) to maintain.
- Increaed contact and communication between different projects.
- Safeguarding against the NIH syndrome.
 Do they agree with the solution? Is the selected library viewed by all as a good project and dependency? Discuss the use of such library in the appropriate mailing-lists and IRC channels. Then have your code that integrates this library reviewed by people knowledgeable in the problem domain. Be ready to discuss why this particular solution makes sense as compared to other available libraries.
Some libraries are distributed under licenses not compatible with the software you're writing, and must not be considered available for use. Be aware of these issues, or consult with people who are.
2.5 Open-Sourcing Code
If you write a general-purpose library, or modify an existing open-source library, you are encouraged to publish the result separate from your main project and then have your project import it like any other open-source library.
Use your judgment to distinguish general-purpose versus business-specific code, and open-source the general-purpose parts.
Open-sourcing code has many advantages, including being able to leverage third parties for development, letting the development of features be user- directed, and keeping you honest with respect to code quality. Whatever code you write, you will have to maintain anyway, and make sure its quality is high enough to sustain use in production. There should therefore be no additional burden to open-sourcing, even of code that (at least initially) is not directly usable by third parties.
2.6 Development Process
Development process is outside the scope of this document. However, developers should remember at least these bits: get reviewed, write tests, eliminate warnings, run tests, avoid mass-changes (keep branches small).
All code changes should be reviewed. You should expect that your code will be reviewed by other hackers, and that you will be assigned other hackers' code to review. Part of the review criteria will be that code obeys the coding standards in this document.
You should write and check-in tests for new code that you write and old bugs you fix. There should be a unit test for every code path in each function, as well as tests for any previously failing case. Your work is not truly done until this activity is complete. For more details on this, see the Testing section of the Style Guide, the EUnit section of the User Guide, and the LFE TDD Tutorial.
Your code should compile without any errors or warning messages.
All code should be committed to an appropriate source control system, in a way that allows for complete reproducibility of build, test and execution of the code that is, has been, or may be deployed.
You should run the test suite for your project and all tests should pass before any code is committed.
All bug fixes, feature, changes, etc., should be done in small branches. A good rule of thumb is that a branch diff should not be greater than 500 lines (e.g.,
git diff|wc -l
). If it is, reviewers will be less likely to quickly volunteer a review, the changes will be harder to follow, and theh likelihood of negative impacts that might not get caught is higher. If you find that your branch is too large, hop on the mail list or IRC to seek advice on how best to split your brach into sensible, separate branches.
The following is pending BEAM AST support:
- You should incorporate code coverage into your testing process. Tests are not sufficient if they do not cover all new and updated code; code that for whatever reason cannot be included in coverage results should be clearly marked as such including the reason.


A "Nested Sets" tree implementation for hierarchical structures in a database table.
See
The NestedSetsTreePojo
and TemporalNestedSetsTreePojo
classes
in this package provide methods to access database tables as trees.
The NestedSetsTree
and TemporalNestedSetsTree
interfaces
describes the responsibilities of a domain object against the DAO.
There can be more than one tree in one database table. You can not move a tree
from one database table to another, but you can move trees (or sub-trees) within one table.
The DbSession
interfaces is to abstract the persistence layer from the DAO.
As it is not easy to define unique constraints for trees in database tables, there is an
interface UniqueTreeConstraints
that describes the responsibilities of such a check.
You can pass an implementation of that interface to the DAO for checking uniqueness.
Example is UniqueTreeConstraintsImpl
.
Unit tests, sample POJOs and a Hibernate DbSessionImpl
are in parallel
test-package (TODO should be in Maven src/test/java directory).
See JNestedSetsTree.html manual in this package for further details.
Glossary
DAO = data access object POJO = plain old Java object, domain object


The Killers announce additional show for Malahide Castle next summer
by Nick FitzgeraldTickets are available right now!
Due to phenomenal demand, The Killers have announced an additional show for Malahide Castle next summer for June 17, 2020.
Tickets are on sale right now at a price of €69.90 including booking fee. You can purchase them online through Ticketmaster.
Last week, it was revealed the band would play in Malahide on June 16, 2020. the extra date allows fans to grab tickets before they sell out fast.
The news comes as The Killers announced last Friday that their hotly anticipated sixth studio album, Imploding The Mirage, will be released in Spring 2020.
As part of their Imploding The Mirage Tour, fans of The Killers will now be graced with two dates one day after the other next year.
The lads will be joined at Malahide Castle by special guest Sam Fender.
In what has been an incredible year for the American rock band, their most recent appearance was headlining Glastonbury 2019 where they were joined by the Pet Shop Boys and Johnny Marr.
Since the release of their 2004 debut, Hot Fuss, with its now-classic breakthrough singles Mr Brightside and Somebody Told Me, Las Vegas’ The Killers have gone on to sell 28 million albums, win countless Grammy, Brit, Q, NME nominations and awards and headline stadia and festivals around the world.


WITNESS LIST S/C on Higher Education Committee April 24, 2006 - 1:30P Interim Charge #2 ON: Caldwell, Jane Director of Grants & Special Programs (Tx Higher Education Coordinating Board), Austin, TX Flack, Teri Deputy Commissioner (Texas Higher Education Coordinating Board), Austin, TX Paredes, Dr. Raymund Commissioner (Texas Higher Education Coordinating Board), Austin, TX State Auditor's Report ON: Gogue, G. Jay Chancellor (University of Houston) Hegarty, Kevin Finance professional-higher ed (UT Austin), Austin, TX Pettibon II, Joseph P. Interim Assistant Provost-Financial Aid (Texas A&M University), College Station, TX Redman, K. Sue Sr. Vice President Chief Financial Officer (Texas A&M University), College Station, TX Rose, Tony (State Auditor's Office), Austin, TX Smith, Carol (State Auditor's Office), Austin, TX Whitmore, Dr. Jon President (Texas Tech University), Lubbock, TX Public Testimony Registering, but not testifying: On: Bryant, Adelina Student (UT Student Government) Hall, Zack C. Student (University of Texas at Austin Student Government), Austin, TX Pifer, Caleb Student (UT Austin Student Government) State Auditor's Report On: Anderes, Dr. Tom V. President for Fiscal Affairs (Texas Tech University), Lubbock, TX Burt, Lawrence W. Director Financial Aid (UT Austin), Austin, TX


This package contains an EnhancedGamepad class which enhances the existing gamepad from the ftc sdk.
| Debouncer |
class Debouncer : Any
A class that helps with a mechanical switch activating once when a button is hit once |
| EnhancedGamepad |
class EnhancedGamepad : Any |
| Toggle |
class Toggle : Any |


CBI forms unit to check online child abuse cases
Online Child Sexual Abuse and Exploitation Prevention/Investigation Unit will function under the agency's Special Crime Zone in Delhi.
by Special CorrespondentThe Central Bureau of Investigation (CBI) has set up an Online Child Sexual Abuse and Exploitation (OCSAE) Prevention/Investigation Unit.
It will also probe such offences covered under various provisions of the IPC, the Protection of Children from Sexual Offences Act and the Information Technology Act, apart from other relevant laws.
The unit, which will function under the agency's Special Crime Zone in Delhi, will collect and disseminate information on online child sexual abuse and exploitation.
“Numerous references related to dissemination of CSAM [Child Sexual Abuse Material] are received from the Interpol and other national/international organisations. The incidence of online child sexual abuse and exploitation generally transcends international borders,” said the agency, adding that the unit's territorial jurisdiction would be throughout the country.


'You just don't know, in life and sport, what's going to happen next' - Macauley
The Ballyboden St Enda’s midfielder paid tribute to his late team-mate Dermot Manley after yesterday’s Leinster semi-final win over Garrycastle.
by Kevin O'BrienBALLYBODEN’S PROGRESSION TO the Leinster club SFC final was tinged with sadness as star man Michael Darragh Macauley reflected on a difficult 10 days for the club.
The Dublin champions saw off Garrycastle by 11 points in TEG Cusack Park on Sunday afternoon, but following the final whistle, Macauley’s thoughts immediately turned to his former team-mate Dermot ‘Digger’ Manley who passed away recently.
“What was on my mind more than anything today was the loss of Dermot Manley,” the Dublin midfielder told RTE Radio 1.
“We lost ‘Digger’ last week and nothing is going to be the same again. We’re looking at everything differently.
“You just don’t know, in life and in sport, what’s going to happen next.
“Dermot was an unbelievable human. He played with this team, was on championship-winning teams with this club.
“He was one of the best humans I ever met and if we had a few more like him, the world would be a better place.”
The last time the south side club progressed from Dublin they went on to lift provincial and All-Ireland titles. Macauley believes the current squad are as strong as the all-conquering outfit of 2015/16.
“Ballyboden will probably always put out a strong 15 and has done so for the last 10 years,” he said.
“What we haven’t had is a strong 20 or 25 to push lads in training. This is the probably the strongest we’ve had it, even since 2015-16. There’s a serious group of lads there.”
Excitement levels will ramp up ahead of Sunday week’s Leinster final against Carlow champions Éire Óg.
“Momentum builds, people get behind it, flags start going up in Rathfarnham, Knocklyon and people in the shops start talking about it.
“It gets that lovely buzz about the place,” Macauley added.


Send File
Receive File
ShareBox
File Sharing Application
Sender
Capture Photo
Select From Album
×
Scan QR Code
Or
×
Enter Sharing Key
Receive
Capture QR code
Sharing Key
Shake
×
Close
Shake Now


Motorcycling: Rookie Quartararo on pole for Valencia MotoGP
VALENCIA, Spain: French whizz kid Fabio Quartararo romped to his sixth pole position of the championship at the season-closing Valencia Grand Prix on Saturday (Nov 16), with world champion Marc Marquez right on his tail.
Under bright blue skies, Yamaha-SRT's 20-year-old Quartararo dominated the closing stage of qualifying on the tight 4km Ricardo Tormo circuit after choosing the more dangerous hard tyres for the cold conditions.
Ducati have won three times at Valencia and their Australian rider Jack Miller also made the front row to give the Italian team a shot at a surprise victory on Sunday.
No French rider has won a MotoGP race for 20 years, but the rookie Quartararo insisted his aim was only a seventh podium finish of the campaign on Sunday.
Trying to snap the French hoodoo, Quartararo could be forgiven for seeing an omen in the fact Regis Laconi's triumph in 1999 was at Valencia and was achieved on a Yamaha.
"The main goal tomorrow is to get a very strong first three laps, after that we'll see, the target is the podium," he said.
"For a first season to be 'Rookie of the year' with six poles and six podiums is great, especially if you look where we came from," Quartararo added.
Six-time top-class world champion Marquez managed second place on the grid despite a fall in practice on Saturday morning.
"It was a good lap in the end, we are happy with second place," said Marquez, who has won 11 of the 18 races so far this season.
"For the race on Sunday we will have to do it differently because Quartararo was very fast," added the Spaniard.
The emergence of the French rookie has spiced up the close of the 2019 season with the Yamaha man losing out on the last lap in cat-and-mouse struggles with Marquez twice.
The race will also serve as a swansong for retiring former three-time MotoGP world champion Jorge Lorenzo, 32, whose season has been littered with accidents.
"He is a real champion. The moment he feels he can't be in the top places he decided to stop," his teammate Marquez said.
Lorenzo's place in the Honda team may be taken by Marquez's younger brother Alex, champion of the Moto2 category this season.


--- layout: page permalink: /providers/ title: "供應商" description: "網路上有各式的服務供應者，從這裏了解我們所推薦的各式服務與小心避免使用的供應商。" ---
想進一步了解，請點擊本站所推薦的服務
{% include sections/fourteen-eyes.html %} {% include sections/key-disclosure-law.html %} {% include sections/warrant-canary.html %}


Asian markets rally on fresh trade hope, elections lift Hong Kong
HONG KONG, Nov 25 — Asian markets rose today on fresh optimism over the long-running China-US trade talks after Beijing offered an olive branch on the key issue of intellectual property, while Donald Trump hailed progress on the agreement.
Hong Kong stocks led the regional advance with pro-democracy parties on course for a landslide in local elections that could put pressure on the city’s government and Beijing to act after months of protests that have hobbled the financial hub’s economy and transport.
The week got off to a strong start after China said at the weekend it would hike penalties on violations of intellectual property rights while also look at reducing the thresholds for criminal punishments of those who steal IP.
The IP issue is a major sticking point for the United States in the discussions and agreement on it is seen as key to their success.
Trump on Friday told Fox News the deal was “potentially very close”.
Global markets have rallied in recent weeks on expectations the economic superpowers will sign a mini pact as the first part of a wider trade deal, though dealers are growing edgy at the lack of detail from either side.
There are also concerns about how tariffs will be wound back, with China insisting they are lifted as part of any agreement.
“Although long on promise, but short on detail, China’s move appears to be an attempt to mollify one of the US’s main reasons for initiating the trade war in the first place,” said OANDA senior market analyst Jeffrey Halley. “The hope being to get impetus back into the interim trade-talks.”
‘Sticking point’
Today, Tokyo ended 0.8 per cent higher, while Shanghai rallied 0.7 per cent and Seoul piled on one per cent. Singapore added 0.1 per cent, Sydney climbed 0.3 per cent and Mumbai jumped 0.9 per cent. Wellington and Bangkok also rose but Taipei, Manila and Jakarta went backwards.
“The markets are pretty much priced for a deal to go ahead, and that may be the case, but we may see that pushed out to 2020,” Eleanor Creagh, market strategist at Saxo Capital Markets, told Bloomberg TV.
“We can see China make concessions on intellectual property... also on the currency and agricultural purchases. But the key sticking point is really going to be the rolling back of tariffs.”
Hong Kong was the standout performer, surging 1.6 per cent as pro-democracy candidates headed for a huge win in community-level elections.
The results will send the Beijing-backed government a clear message of broad public support for the demands of a protest movement that has gripped the territory for months.
It will “be difficult for Beijing to ignore these results for fear of greater international condemnation in the court of public opinion”, said AxiTrader’s Stephen Innes. “The people have spoken, and now the ball is in Beijing’s court.”
Property firms, which have taken a battering as the sometimes violent demonstrations have dragged on, were among the best performers, while embattled transport network controller MTR Corp was also a big gainer.
Key figures around 0720 GMT
Tokyo – Nikkei 225: UP 0.8 per cent at 23,292.81 (close)
Hong Kong – Hang Seng: UP 1.6 per cent at 27,022.72
Shanghai – Composite: UP 0.7 per cent at 2,906.17 (close)
Euro/dollar: UP at US$1.1027 from US$1.1024 at 2145 GMT
Pound/dollar: UP at US$1.2854 from US$1.2834
Euro/pound: DOWN at 85.78 pence from 85.87 pence
Dollar/yen: UP at 108.85 yen from 108.60 yen
West Texas Intermediate: UP 21 cents at US$57.98 per barrel
Brent North Sea crude: UP 29 cents at US$63.68 per barrel
New York – Dow: UP 0.4 per cent at 27,875.62 (close)
London – FTSE 100: UP 1.2 per cent at 7,326.81 (close)
— AFP


--- layout: page title: Blog ---
I write about anything that interests me. This includes reflections on the books I read, aviation news, baseball, and more. Check out my Medium page for more!


{{leftCompare.name}}
Player Since: {{leftCompare.playerSince | ogDate}}
RANKING: {{leftCompare.rank}}
{{compareStats.wins}}
Wins
{{compareStats.opponentWins}}
Losses
{{leftCompare.avgPoints | realNumber}}
Avg PPG
{{leftCompare.winRate | winRate}}
Win Rate
{{rightCompare.name}}
Player Since: {{rightCompare.playerSince | ogDate}}
RANKING: {{rightCompare.rank}}
{{rightCompare.avgPoints | realNumber}}
{{rightCompare.winRate | winRate}}


--- layout: post title: Markdown test date: 2014-06-13 13:09:23.000000000 +02:00 categories: [] tags: [] status: draft type: post published: false meta: _edit_last: '1' author: login: admin email<EMAIL_ADDRESS>display_name: admin first_name: '' last_name: '' ---
A ScriptCs script pack for Rebus.
Wouldn't it just be nice if those lovely scripts of yours could talk to other scripts? You're up for a treat. With this script pack, it is possible to write scripts that can communicate via messaging to other scripts.
Get it on Nuget.
Prior to using this script pack you need to install ScriptCs. Then open a command prompt as administrator. Now create a folder for the scripted messaging project.
To enter the REPL, run scriptcs
. Send a message of type string to MyMessageQueue:
Require<RebusScriptBus>()
.ConfigureBus("MyMessageQueue")
.Send<string>("My first scripted message!")
Now open another command prompt or use the same, and enter the following to receive the message of type string from MyMessageQueue:
Require<RebusScriptBus>()
.ConfigureBus("MyMessageQueue")
.Receive<string>(x => Console.WriteLine(x))
.Start()
The command prompt should output the following:
> My first scripted message!
By default ScriptCs.Rebus uses MSMQ as transport layer, but it is possible to use RabbitMQ instead. This is done by configuring the bus like this:
Require<RebusScriptBus>()
.ConfigureRabbitBus("MyMessageQueue")
.Send<string>("Message from RabbitMQ")
This would use a local RabbitMQ instance and the default RabbitMQ port, ampq://localhost:5672
. To use another port or a remote server, you can supply a connectionstring like this:
Require<RebusScriptBus>()
.ConfigureRabbitBus("MyMessageQueue", "ampq://remoteserver")
.Send<string>("Message from RabbitMQ")
The examples from above apply to scripts. Put the send and receive code into two .csx
files, lets call them send.csx
and receive.csx
, and execute them by typing the following from a command prompt:
scriptcs send.csx
and
scriptcs receive.csx
In the \samples
folder there is some samples to get you started.
At this point you should be able to apply these more advanced usages to both the REPL and from scripts.
It is possible to use custom types in your messages. Consider the following class:
public class Message
{
public string Content { get; set; }
}
You enter this class definition in the REPL or create a message.csx
script file. If defined in a script file, load this class definition into your script by using #load
keyword,
#load "message.csx"
Now you can send and receive messages of this type by using the following syntax:
Require<RebusScriptBus>()
.ConfigureBus("MyMessageQueue")
.Send<Message>(new Message {Content = "Hello from custom type!"})
and
Require<RebusScriptBus>()
.ConfigureBus("MyMessageQueue")
.Receive<Message>(x => Console.WriteLine(x.Content))
.Start()
This should output > From MyMessageQueue > Hello from custom type
.
In some cases you might be expecting to handle different kinds of messages. This can be achieved by adding multiple receive commands fluently:
Require<RebusScriptBus>()
.ConfigureBus("MyMessageQueue")
.Receive<string>(x => Console.WriteLine(x))
.Receive<Message>(x => Console.WriteLine(x.Content))
.Start()
Applying multiple handlers of the same type, will give the possibility to handle message of the same type in different ways.
Working with messaging and message buses can often be a very complex task. It can therefore be of great help to supply the script author with some additional information about what's going on. Rebus has some very nice console logging features, which is made available in ScriptCs.Rebus by adding .UseLogging()
to your scripts:
Require<RebusScriptBus>()
.ConfigureBus("MyMessageQueue")
.UseLogging()
.Send
This will produce an output like this:
Rebus.Configuration.RebusConfigurer DEBUG (): Defaulting to 'throwing endpoint mapper' - i.e. the bus will throw an exception when you send a message that is not explicitly routed
Rebus.Configuration.RebusConfigurer DEBUG (): Defaulting to in-memory saga persister (should probably not be used for real)
Rebus.Configuration.RebusConfigurer DEBUG (): Defaulting to in-memory subscription storage (should probably not be used for real)
Rebus.Bus.RebusBus INFO (): Rebus bus 1 created
Rebus.Bus.RebusBus INFO (): Using external timeout manager with input queue 'rebus.timeout'
Rebus.Bus.RebusBus INFO (): Initializing bus with 1 workers
Rebus.Bus.Worker INFO (): Worker Rebus 1 worker 1 created and inner thread started
Rebus.Bus.Worker INFO (): Starting worker thread Rebus 1 worker 1
Rebus.Bus.RebusBus INFO (): Bus started
Sending message of type String...
Rebus.Logging.MessageLogger DEBUG (): Sending Foo to MyMessageQueue
... message sent.


First Look in Virtual Reality: Stereoscopy, Panoramas and Panoramic Videos
I got the Google Cardboard recently, and I’m playing with it. Google Cardboard is a very simple piece of gadget that turns your phone into a virtual reality headset. It was released in Google I/O 2014. If you have an Android phone, you can download the Cardboard application which has works very well with Google Cardboard.
One of the function provided by the Cardboard application is viewing Photo Sphere in a virtual reality setting. Photo Sphere is a kind of photo that is (360 x 180) degrees panoramic, that is, not just 360 degrees horizontally, but also you can look up and down. It is very cool.
Check out this panoramic view from Tokyo Tower by 360cities for something similar in concept.
Here is the cool thing: The Cardboard application pushes the Photo Sphere further by putting you in an immersive experience. The experience is as if you’re at the scene looking around in person. Yes, I know it’s not stereoscopic, but hey!
I know I know! It’s hard to visualize that. You can only really experience that when you acutally play with a virtual reality headset. In that case, I highly encourage you to get a virtual reality headset like Google Cardboard, or even build one yourself! =]
Panoramic Videos!
However, I am actually more excited not just with photos, but videos. Check these out:
Google Cardboard doesn’t work with these though. So I haven’t try viewing it in a Cardboard for now. I will hope to try it out.
Stereoscopic Panoramic Videos?!!
What if the panoramic videos are stereoscopic? WOW!
Though, I don’t think we’re there yet. This area seems to be still in its infancy. The closest thing I’ve seen is the Panocam3D, which is a hexagonal device with 2 cameras on each direction.
The idea to capture stereoscopic panoramic videos is explained here, though this may not be the ideal solution since we still only get 360 degrees and not (360 x 180) degrees.
Resources
I studied a little bit about stereoscopy, panoramas and panoramic videos. Here are some resources if you’re interested (and notes for myself).
Demonstration of panoramic images and videos:
- Dubai panoramic video by AirPano – They have a lot of other panoramic videos too.
- 360cities – Panoramic images of many cities in the world.
Devices that can capture (360 x 180) degrees panorama:
- Bublcam – A spherical device with multiple cameras on it. The above videos are from Bublcam. It looks a pixelated but still acceptable. Not available for sale yet.
- Geonaute – Another one that looks pretty good, though the demos seem to see the apex (the top area where the corners join) seems to be a bit badly stitched. Still very good.
- 360heros – Actually it’s a gadget to clamp together 6 GoPro cameras in all 6 directions (front back left right up and down). I would think getting the Bublcam and Geonaute may be better, but GoPro probably have better resolution.
Devices that can capture (360) degrees panorama:
- GoPano – A special lens attachable to iPhone that allows you to take panoramas and panoramic videos. It works by having a 360 degree lens and bend the light into the iPhone camera. Works for iPhone only. 360 degrees horizontally only.
- Kageto – A company manufacturing the Dot, Lucy, and Jo. They are successive versions of a special lens attachable to iPhone or Android to take panoramas and panoramic videos. Similar to GoPano, 360 degrees horizontally only.
- BubbleScope – Another attachable lens to iPhone for capturing panoramas and panoramic videos. Similar to GoPano, 360 degrees horizontally only.
Software Apps that takes panoramic pictures without using another external cam/device. Apparently, you cannot do panoramic videos from these (it’ll look like a mess):
- Photo Sphere – Take panoramic photos using built-in Android Camera app developed by Google.
- Photo Synth – Take panoramic photos using this app developed by Microsoft Research.
Readings about stereoscopy, panoramas, and panoramic videos;
- Principles of stereoscopic photography using an ordinary camera – How to shoot your own stereoscopic photo. Seems like a very old page but the ideas are very clearly explained.
- What’s up with stereographic 3D panoramic video – An article that talks about how to shoot stereoscopic panoramic videos, in theory. We don’t know if this is the best way though.
- Stereoscopy on Wikipedia – As usual, Wikipedia is a good place to look at.
- PhotoCreation – Apparently someone very enthusiastic in stereoscopic panoramic videos.


lib
/
com.github.thibaultbee.srtdroid.enums
/
SockOpt
/
MAXBW
MAXBW
MAXBW
Maximum bandwidth (bytes per second) that the connection can use


@@include('./includes/side-nav.html', { "active": "design-elements" })
Design Elements
@@include('./design-elements/grids/index.html')
@@include('./design-elements/fonts/index.html')
@@include('./design-elements/colors/index.html')
@@include('./design-elements/typography/index.html')
@@include('./design-elements/icons/index.html')
@@include('./design-elements/buttons/index.html')
@@include('./design-elements/forms/index.html')
@@include('./design-elements/tables/index.html')
@@include('./design-elements/lists/index.html')
@@include('./design-elements/alerts/index.html')