ground_storage_U-tube
Path: CARNOT/storage
Purpose
Model for the calculation of an U-tube ground storage.
ATTENTION: The c-souce code of the model is not completely validated.
Description
This block contains the model of an U-tube ground
storage the heat is transferred in the ground by a U-tube heat exchanger in the
bore. The surrounding surface is modelled for two different cases that can be
found in the subset surface models for the ground storage. The heat transport
in the ground is calculated with a two-dimensional finite difference scheme
using the cylindrical symmetry (Patankar, 1980).
rho*c * dT/dt = 1/r * d/dr (r * cond * dT/dr) + d2T/dz2+ S
where S is the source term. For the central node (bore)
S = (UA + cond * 4 / dborehole) / dV * (Tfluid - T).
The storage is divided into ZNODES nodes in z-direction, RNODES nodes in radial direction and 6 nodes in angular direction. The energy balance for every node is:
rho*c*dT/dt = cond/dz2 * (Tnode_up+Tnode_down - 2*Tnode) + cond*(r+dr/2)/(r*dr2) * (Tnode_out - Tnode) + cond*(r-dr/2)/(r*dr2) * (Tnode_in - Tnode)
|
symbol |
used for |
unit |
|
|
cond |
effective thermal conductivity |
[W/(m K)] |
|
|
c |
heat capacity |
[J/(kg K)] |
|
|
da = pi/3 |
angular distance between nodes |
[rad] |
|
|
dr |
radial between two nodes |
[m] |
|
|
dz |
axial between two nodes |
[m] |
|
|
rho |
density |
[kg/m3] |
|
|
T |
temperature |
[K] |
|
|
t |
time |
[s] |
|
|
UA |
heat transfer |
[W/K] |
According to Albers (1991) the thermal properties of the ground can be characterized by
only four types. For the bore, a fifth type of filling can be specified
(betting bore filling) (Reuss, 1993).
An insulation material between descending and rising pipe is not calculated.
Research shows that the performance of the U-tube decreases when using the
insulation (Reuss, 1993). This is due to the reduction in the heat transfer
surface of the pipe: about one third of the perimeter is covered by the
insulation.
The model gets the thermal conductivity and capacity from a table:
|
conductivity [W/(m K)] |
Capacity [J/(m3K)] |
|
|
dry sand |
0.70 |
1382400 |
|
sand saturated with water |
1.88 |
1798200 |
|
humid clay |
1.45 |
2410560 |
|
clay saturated with water |
2.90 |
2864160 |
|
bentonite |
0.58 |
1798200 |
In axial direction the nodes have the same extension (same height), in radial direction the size increases with the radius. The size of the node is proportional to its distance from the centre.
This is better to model the fast changes near the heat exchanger pipe. The boundary conditions for the outer nodes are specified at the surface (top node) and at the bottom. For the nodes in-between the temperature is linearly interpolated.
Inputs:
Outputs:
Because you need to know the temperature at fixed
places inside the storage, a number of measurement points (M_PTS) is placed at
equidistant locations inside the storage, no matter how many nodes are used for
the calculation. The output vector starts with the top-temperature and ends
with the bottom-temperature (M_PTS).
Three measurement points are arranged in a layer:
The layers are distributed over the height range
(first sensor is at top, last at bottom). One of the surface models in the
subset "surface models" is used in the subsystem of the ground
storage. The Weather data vector is transformed to a heat transfer
vector for the surface. Specify the albedo of the ground for this region. You
may use the open ground model or the insulated cover model for both regions.
Just remove the old blocks and copy a new one at its place (break the library
link of the storage before doing that, otherwise you will change the CARNOT
library).
Validation:
This model has not yet been thoroughly tested. There is only few measured data
available for this type of storage. The model has been compared with the data
published by Reuss (Reuss 1988), mainly with the data
obtained in the laboratory model of a U-tube ground storage.
Attention:The
model does not include water transport phenomena. Specially
for higher temperatures (> 40°C) the water transport has high impact on the
heat transport and the model might not be correct any longer.
Literature:
Reuss: Erdsondenspeicher, Landtechnik Weinstephan, TU München, 1988
Patankar, Numerical Heat
Transfer
Albers: Erdreichwärmetauscher
Parameters and Dialog Box
Characteristics
Direct Feedthrough Yes
Sample
time
Inherited
from driving block
States
corresponding to the number of nodes
Vectorized
No


Dear Sir, I am Engr. John Williams, chief auditor, audit department of fund release order in ECOBANK NIGERIA PLC Bode Thomas Branch Lagos office, I know the letter might come to you as surprise, but take it like your own deal. Mr. Eric Zimmerman, from United State of America (USA)executed contract through federal ministry of aviation here in Nigeria, the contract worth of (US$13, 500,000)but on the process of transferring the money to him, he died with his family in earthquake disaster that occurred in Indonesia (Asia). Meanwhile, his money has to be signed in my office before I will give order to the ECOBANK NIGERIA PLC for final endorsement of his money. Nobody knows what is going on except I and two of my workers here in the bank; this is the man's information: (1) Contract sum: US$13, 500,000 (2) Contract number: FMA/CVNC/FGNA/7-XX2. 99/2000. You will act like the beneficiary of this fund, I will send to you the whole relevant documents that required in this transaction immediately you accept to co-operate with me. and i will inform you the proceedure to complete this transaction successfully, First i want you to take this personally and maintain the confidentiality, if you can assist on this let me know so that i will discuss the percentages with you and inform you the step we need to complete this transaction within 10 working days. let me know if you are interested to proceed with me,i am going on retirement very soon and i am hopeful if we can conlude on this i will channel my funds in area of good investment outside the country, this transactionmust be between me and you only, i do not want it to be discussed with third party. send me your reply immediately. Best Regards. John Williams .


{% extends 'oscar/checkout/payment_details.html' %} {% load i18n %} {% block payment_details %}
{% trans "Click on the below icon to use Express Checkout but where the shipping address and method is already chosen on the merchant site." %}


These elements provide powerful ways to declaratively use or render HTML dynamically without complicated scripting or a framework.


Written by: Scott Silveri
Transcribed by: Eric Aasen
[Scene: The Hallway, Chandler and Monica are returning from their honeymoon.]
Chandler: Wait. Before we go in, I just want you to know I love you.
Monica: Youre really sticking with the shell necklace huh? (Points to necklace of shells hes wearing.)
(Joey and Phoebe burst forth from his apartment.)
Phoebe: Hi!
Joey: Hey! Youre back! (Hugs and kisses all around.)
Monica: Hi sweetie!
Phoebe: Come on in!
(They grab the luggage and drag it into Joey and Rachels forcing Monica and Chandler to follow.)
Phoebe: So how was the honeymoon?
 But the best part is, we met this incredible couple on the way back.
Phoebe: That was the best part? (To Chandler) Good honeymooning tiger.
Monica: No, they were really cool. They were on their honeymoon too!
Chandler: Theyre terrific, and they live right here in the city.
Monica: Yeah, can we go call them? Is it too soon to call? I wanna call.
Chandler: Im sorry, were just kinda excited because we finally have a couple to hang out with.
Monica: I know.
Joey: A couple? Like two people? Like (points to himself) one (points to Phoebe), two people?
Monica: This is different! Greg and Jenny are in a relationship.
Phoebe: Oh, Greg and Jenny yuck! (Angrily) Hi Greg, Im Chandler this is Monica. Hi Monica, this is Jenny. Hi Jenny. Hi Greg.
Chandler: Listen, they are really great. If you just got a chance
Joey: Yknow what?
Chandler: We really didnt get a chance to
Phoebe: You have got to be kidding me!
Monica: We didnt get anything for anyone.
Joey: Hm-mm! Yeah nice necklace!
Monica: That you can have.
Opening Credits
{Transcribers Note: Tradition was broken here as there were no commercials immediately after the opening credits, just more show.}
[Scene: Monica and Chandler's, Ross and Rachel are entering with the rest of the gang already inside.]
Rachel: Hi!
All: Hey!
Ross: Hello!
Rachel: Welcome home.
Ross: So, how was the honeymoon?
Monica: It was great! It was great! How about you?! I mean youre having a baby!
Rachel: Oh! Look! I have a sonogram picture!
Monica: Oh great! (Shows them the picture.)
Chandler: Ross! Its got your wavy black lines!
Monica: All right, so now that Ross knows can you tell us yknow how it happened? I mean, when did it happen? How many times did it happen?
Phoebe: Monica! Thats not right! Start with where.
(Rachel looks at Ross and gets his approval.)
Rachel: Well it happened about six weeks ago, and uh I had just got home from work and Ross was already there cause I guess he had been hanging out with Joey.
Joey: Youre welcome buddy.
Ross: (glaring at him) Yeah, thanks. (Joey nods no problem.)
Rachel: And so I had a lot of work to do so Ross, nice guy that he is, offered to help me out. And then we had a little wine, we got to talking, and the next thing you know out of nowhere Ross comes on to me.
Ross: (laughs) Umm thats thats a little misleading.
Rachel: What is?
Ross: The lie you just told.
Rachel: That-that you came on to me?
Ross: Theres the one!
Rachel: But you did! I mean, lets be honest.
Ross: Yes lets. Yknow what? Uh, its-its not important. What is important is that, is that were having a baby. And its notDoesnt matter who came on to who.
Joey: Whom. (Everyone looks at him shocked.) Thats right.
Rachel: You know you kissed me first.
Ross: What? What?!  You-you-you were sending me signals all over the place!
Rachel: I was sending you signals?
Ross: Yeah!
Rachel: Oh please. Okay, anyone in this room think that I would send Ross begging symbols, please show of hands. (Ross raises his hand and no one else.)
Ross: Yknow what?! It doesnt matter! It doesnt matter what you believe! What matters is what happened!
Rachel: Okay. So these signals Ross, explain this to me, cause maybe I need to be more careful. I mean, am I sending you these signals right now?
Ross: Yknow what? Yknow what? Rachel, just-just drop it.
Rachel: No please, show me how I begged you!
Ross: I can show you, I have it on videotape! (Stunned silence) Its an expression.
Commercial Break
[Scene: Monica and Chandler's, time has lapsed, Phoebe, Joey, Chandler, and Monica are sitting at the kitchen table.]
Phoebe: I cant believe he taped the two of them having sex!
Joey: Yeah! You gotta tell a girl before you tape her. Such a rookie mistake.
Chandler: Yknow who has a great video camera?
Phoebe: (nasally) Greg and Jenny?
Monica: Do you still wanna call em? I wanna call em.
Chandler: Lets call em.
Joey: Yeah! Ask them if they brought their friends any souvenirs!
(Monica goes over and dials their number.)
Monica: (on phone) Hello? (Listens) Eighth street deli?
Joey: Hey, hang up! You get food poisoning just talkin to that place.
Monica: (on phone) Uh sorry, wrong number. (Hangs up)
Chandler: Here you go. (Shows her the number again.)
Monica: (on phone) Hello? (Listens) (To All) Its the deli again!
Joey: All right! Ill have a sandwich!
Monica: (hangs up) I dont think this numbers right!
(Joey and Phoebe laugh.)
Chandler: What?
Phoebe: You got fake numbered.
Monica: What?! People dont do that!
Joey: Oh I think we do.
Monica: They gave us a fake number? Why? Why would they do that?
Chandler: I dont know! You were a delight to talk to. You asked all those insightful, great questions.
Monica: And youve never been funnier. Joke, joke, joke, you were a hoot!
Joey: Yknow what? Dont worry about it, you still got me and Phoebe.
Phoebe: Excuse me, I dont want Greg and Jennys rejects.
Ross: (entering) Rachel wont talk to me! She wont even open the door!
Phoebe: Hmm, I wonder why. Pervert!
Ross: Okay, listen I am not a pervert!
Phoebe: Thats like the pervert motto! Yeah! Yeah! They have you raise your right hand, put your left hand down your pants, and repeat that!
Ross: Filming Rachel is not something I planned. Okay look, heres what happened, and Joey you-you can back me up on this. All right, about-about a month and a half ago I came to you with a problem? Umm, a personal thing.
Joey: Personal thing? What personal thing? I dont know.
Ross: About about sex? (Joey looks at him confused) That I hadnt had sex in months?
Joey: (laughs) Yeah I knew what you were talkin about.
Six Weeks Earlier
[Scene: Joey and Rachel's, Joey is reading a cereal box as Ross enters wearing the red sweater.]
Ross: Hey!
Joey: Hey.
Ross: Do you have a minute? Id like to talk to you about something Im, Im really uncomfortable talking about.
Joey: Sure. What? About uh, you showering with your mom?
Ross: I actually had a topic in mind! Im, Im kinda going through a dry spell, sex wise.
Joey: Whoa, for like months?
Ross: Five to be lying, six.
Joey: Six months? Whoa thats rough.
Ross: Well, I mean its not all bad. Im learning to appreciate the uh, smaller things in life. Like the sound of a bird and the color of the sky.
Joey: The skys blue Ross and I had sex yesterday!
Ross: Please, help me! I have a date tonight. It has to go well okayIm scared for my health!
Joey: Okay. Okay. Umm Ooh! Oh-oh, I got something. Its this story I came up with, very romantic. I swear any woman that hears it; theyre like putty.
Ross: Really? Well then tell it to me.
Joey: Okay.
Ross: (sarcastic) Ill try to control myself.
Joey: Okay. (Clears throat) Years ago, when I was backpacking across Western Europe
Ross: (laughs) You were backpacking across Western Europe?
Joey: Have a nice six more months Ross! (Starts to leave.)
Ross: (stopping him) Okay! Okay! Okay. Im sorry. Please, please, you were in Western Europe and?
Joey: I was just outside Barcelona hiking in the foothills of Mount Tibidabo. I was at the end of this path and I came to a clearing and there was a lake, very secluded. And there were tall trees all around. (Whispering) It was dead silent. Gorgeous. (Softly) And across the lake I saw a beautiful woman bathing herself but she was crying
Ross: (intently listening) Why?
[Scene: Ross's Apartment, Ross is on his date with Kristen and theyre drinking wine.]
Kristen: Umm, this is great wine.
Ross: Its from France In Europe Western Europe. Yknow umm, a few years ago I actually was backpacking across Western Europe.
Kristen: Really?
Ross: Uh-hmmWait! It gets better. Um, yeah I was in Barcelona.
Kristen: I studied for a year in Barcelona. (Ross is stunned and worried.)
Ross: Anyway, umm so I was um, I was hiking
Kristen: I love hiking!
Ross: (whines) Oh thats great! I was hiking along the foothills of Mount Tibidaybo
Kristen: I think its Tibidabo.
Ross: Okay! Do you wanna tell the story?!
[Scene: Joey and Rachel's, Joey is standing at the counter as Ross enters.]
Joey: Whoa! What are you doing here? How did your date go?
Ross: Great!
Joey: Hey! Look, if it didnt work its because you didnt tell it right! Show me how you did it.
Ross: No! No, I dont dont want to.
Joey: How long since youve seen a girl naked?
Ross: I was backpacking across Western Europe.
Joey: Im not feeling it.
Ross: I was just outside Barcelona, hiking
Joey: No! No! No Ross! Im not hot! Are you hot?
Ross: Its been six months! Im always hot!
Joey: Well youre not selling the story! Its like; its like you dont believe it! Look, I gotta go. I got a date, but try this. Do what I do when Im preparing for an audition. Okay? Ill set you up with my video camera and you can record yourself and-and see what youre doing wrong.
Ross: Ill try that.
Joey: All right now All right, youre all set up. Youre good to go. Just hit record. All right?
Ross: Thanks.
Joey: Good luck.
Ross: Thanks. And-and hey Joe?
Joey: Yeah?
Ross: Listen, if you ever have any problem with the ladies you know Ill help you out.
Joey: (trying not to laugh) That means a lot to me man.
Ross: Hello! Can I get you anything? Huh? Lens cleaner? Your battery okay? (Rachel bursts in carrying two boxes and Ross jumps up.) Rachel!
Rachel: Oh Ross!
Ross: Hi!
Rachel: Thank God youre here! You have to help me!
Ross: Thats less embarrassing, yes. Yes I was.
(They sit down on the couch, which is in front of the still recording camera.)
Ross: (voiceover) So when she came in, I got distracted and totally forgot about the camera. [Cut back to the present day.] It kept rolling and recorded everything.
(Pause)
Chandler: Yeah, were gonna need to see that tape. (They rest of them agree.)
Monica: Yeah, definitely.
Ross: What a great idea! That will get Rachel to forgive me!
Joey: Yknow what? This is not fair to her. Lets just forget the tape!
Ross: Thank you. (Joey mouths to Ross, "Youll show me right?") No!
Joey: Youre right. (Mouths, "I know youll show me, right?)
Ross: Joey! No!
Joey: Loud and clear! (Mouths, "Youll show me," and nods.)
(Ross storms out.)
[Scene: Monica and Chandler's, Monica, Chandler, Joey, and Phoebe are now sitting in the living room.]
Monica: I still don't get why Greg and Jenny would give us a fake number.
Joey: Yknow, if they knew what they were doing they probably didnt give you real names either.

Joey: Oh yeah? (To Phoebe) Hi, Ken Adams, nice to meet you.
Phoebe: Regina Philange. (Ken and Regina shake hands.)
Chandler: I still dont get it, we didnt do anything wrong.
Monica: I know! Although, you did tell an awful lot of jokes.
Chandler: I thought you said those jokes were funny. Joke! Joke! Joke!
Monica: (rolling her head from side to side) Joke. Joke. Blah! Blah! (Joey and Phoebe laugh.)
Chandler: Well maybe it was all of your questions.
Monica: What about my questions?
Chandler: The sheer volume, it was like flying with the Riddler!
Monica: Oh, Im sorry. Was that another joke?
Chandler: (angrily) Was that another question?
Rachel: (entering) Hey! Is Ross still here?
Joey: Uh no Rach, hes gone. But listen, he told us what happened and it does, it sounds like an honest mistake.
Rachel: Oh really?  (Joey smiles luridly) Oh forget it! (Ross enters.)
Ross: Look, it was accident! Okay? I-I feel bad that it happened, but I swear, I didnt even watch it! Anyway, here. (He takes the tape out of his coat pocket.) I thought you might be more comfortable destroying it yourself. (Tosses her the tape.)
Rachel: Thank you. (She sets it on the floor and is about to stomp on it with her shoe when the rest of the gang jumps up and yells simultaneously.) What? (They all yell again.) You dont want to see this do you?
Monica: Hell yeah!!!
Rachel: I am not gonna show you this!
Phoebe: No! Not the sex part, just the stuff leading up to it.
Ross: Forget it, shes destroying it.
Phoebe: Okay fine! Fine! Well just have to think of some other way to put the whole Who came onto who, thing to rest! Come on now, think!!
Ross: Look, forget it Phoebe. Okay? Its Rachels tape and she can do whatever she wants with it. And she wants to destroy it. So, end of story.
Rachel: I wanna see it.
Ross: What?!
Rachel: Clearly you dont want people to see this tape. Now I dont want people to see this tape either, but you so badly dont people to see it makes me want to see it. You see?
Joey: (confused) Are we watchin the tape or not?!
Ross: I dont want people to see it for your sake.
Rachel: Ahh, I dont believe you. I think you dont want them to see you begging me. (Goes to put the tape in the VCR)
Ross: Rachel, please
Rachel: Ah, a little preview!
Ross: Fine. Fine, but I want the record to show that I tried to take the high road, because in about five minutes Im gonna be saying (He laughs and points at Rachel sarcastically.)
(They both sit down.)
Rachel: Okay, here we go. (Pushes play.)
Ross: (on tape) Hello! Can I get you anything?
Joey: (To Phoebe) Im so happy!
Commercial Break
[Scene: Monica and Chandler's, the scene is continued from earlier.]
Rachel: (on tape) Oh, thank God youre here! You have to help me!
Rachel: There I am.
Phoebe: Youre gonna get pregnant.
Rachel: (on tape) I screwed up so bad, I told Monica that I would stuff and send all these wedding invitations like weeks ago and I-I
Ross: (on tape) You didnt do it?
Rachel: (on tape) I-I knowI had put them in in-in my desk at work and I completely forgot about them until today.
(Chandler is shocked and Rachel gets scared of Monica very quickly.)
Monica: (taking Rachels hand) Sweetie okay. Its okay. Everybody made it to the wedding. Im fine.
Rachel: Kinda hurtin my hand though.
Monica: I know.
Rachel: (on tape) (Ross hands her a glass of wine) I cannot believe that I did this. Especially after Monica just went on and on and on about it! (Mimicking Monica) "Okay Rachel! Here are the invitations Rachel! Now be very careful Rachel! Please, drinking no liquids around the invitations Rachel!" (She tilts her wine glass above and moves it back and forth across the invitations) Whoa oh! Oh-oh-oh! Oh oh-oh-oh
(Rachel hits fast forward. Monica is completely shocked.)
Chandler: Did you do it on our invitations?!
Ross: (pause) Not on the ones we sent out.
Chandler: So, just the ones gave back to us and we had framed! (Slams the framed invitation down onto the table.)
(Rachel stops fast forwarding.)
Rachel: (on tape) Can you believe this is already happening? I mean it seems like yesterday they just got engaged.
Ross: (on tape) I know. Hey remember remember the night they got engaged? How uh, you and I almost
Rachel: (on tape) Oh, I remember how we almost. Do you think we wouldve gone through with it? Yknow, if we hadnt gotten caught. Do you think we wouldve done it?
Ross: (on tape) I mean I I know I wanted to. I just, I just wasnt sure if you wanted to.
Rachel: (on tape) Oh I wanted to.
(Ross and Rachel trade looks while watching the tape.)
Ross: (on tape) So we we both wanted to.
Rachel: (on tape) Interesting.
Ross: (on tape) Yeah. (Pause) Anyway umm, it probably worked out for the best.
Rachel: (on tape) Oh yeah, sure.
Rachel: Okay, in about ten seconds youre gonna see him kiss me.
Ross: And in about five seconds youre gonna see why.
Rachel: (on tape) Ross did I ever tell you about the time that I went backpacking through Western Europe?
(Joeys shocked and everyone else looks at Rachel.)
Rachel: Okay, get ready to see some beggin!
Phoebe: Oh, you came on to Ross!
Rachel: What?!
Ross: Now Im so happy.
Rachel: What are you talking about?!
Monica: You used the Europe story!
Chandler: Thats the magic story you use when you wanna have sex!
Rachel: How do you know about that story?!
Joey: How do you know about that story?!
Rachel: I heard it from my friend Irene who heard it from some guy!
Joey: (raises his hand) Some guy!! (Points to himself.)
Rachel: No. No, she told me his name was Ken Adams.
Joey: (raises his hand and points to himself again) Ken Adams!!
[Scene: Joey and Rachel's, Rachel is looking at the tape sitting on the counter as Ross enters.]
Ross: Hi.
Rachel: So uh, apparently people are familiar with the Europe story?
Ross: Yeah. Listen about that, the whole uh, who came on to who thing really doesnt matter. I mean, I think it wouldve happened either way. I mean if you hadnt initiated it I-I-I know I wouldve.
Rachel: It was an amazing night.
Ross: It was. It was an amazing night.
(Pause)
Rachel: You think it looked amazing?
Ross: I uh I dont know. I mean I I honestly didnt watch it.
Rachel: Yeah, me neither. Yet
Ross: Uhhhhhh that-that may be weird.
Rachel: Yeah, it would be really weird.
(Ross grabs the tape and heads for the VCR as Rachel goes over and puts the chain on the door and locks it.)
Ross: Good luck.
Rachel: Good luck to you.
(Ross pushes play.)
Ross: Mind if I mute?
Rachel: Oh please. (He does so.)
Ross: Oh, oh there go the clothes.
Rachel: You are undressing very quickly.
Ross: Six months Rachel, six months.
Ross and Rachel: Ah. (Pause) Oh.
Ross: Hey. We-we look we look pretty good.
Rachel: Thats what I was gonna say.
Ross: Oh nice tan!
Rachel: Thank you! I had just gone to the beach that weekend.
Ross: Ah .
Rachel: Have you been working out?
Ross: I have been working out.
Rachel: Really? Wow, this is so much better than I
Ross and Rachel: Ohh! Ew!
Ross: Oh thats not pretty.
Rachel: Oh! Oh!
Ross: No!
Rachel: Oh God!
Ross: Oh no!
Rachel: Oh, make it stop!
Ross: Oh no!!
Rachel: Make it stop!!
Ross: No!!
Rachel: Have to make it stop!!
Ross: No!!!
(They both get out of the chair and run for the VCR.)
Closing Credits
[Scene: Monica and Chandler's, Monica and Chandler have gone through the phone book and found Greg and Jennys number which Monica has just dialed.]
Monica: (on phone) Hello Greg? (Listens) Hi, this is Monica from the plane? Listen, the number that you gave me 853-5 (Listens) (To Chandler) That is their old number! Jennys been giving it out since they moved!
Chandler: Jenny! That is so Jenny!
Monica: (on phone) Hey listen umm, how would you like to get together? Say next Saturday? (Listens) Okay, how about Sunday? (Listens) Okay umm, the week after that? (Listens) The week after that? (Listens) Yknow what Greg? Yknow what? We are good, interesting, funny people with good questions and if you and your precious Jenny cant see that then (Listens) January 15th? (Chandler dances.) Well see you then! (Listens) Okay!
(She hangs up the phone and they hug.)
End


Lifelong New Yorker turned full-stack developer who believes the most important language a developer can learn is the one you use to speak with non-programmers. To me, programming is all about communication from the developer; articulating your goals to the machine, the client, and everyone involved in the life cycle process in between the two. This can always be challenging, but devising creative solutions to difficult problems is what first attracted me to software engineering. As a junior full-stack developer, I work to solve these problems with a clear understanding of technology, clean code and effective communication.
Skills and LanguagesThe holy trifecta of great websites.
Building dynamic single page applications, one component at a time.
Light agile framework to get you up and running!
Your secret weapon at the next pub trivia. It's scary how much useless information I've retained


Callouts help you putting en emphasis on a piece of information or notify the user of something. It can take two aspects :

 Default - This is just a regular callout.

 Filled - This is just a filled style callout

The content of your callout can be as complex as you desire
Something went terribly wrong

Error!

 Something went terribly wrong

 <button class="lui button flat">Dismiss</button>

Callouts can be groupped into a parent with the classes lui callouts

 Error<button class="lui button flat">Dismiss</button> Success<button class="lui button flat">Dismiss</button> Achtung!<button class="lui button flat">Dismiss</button> Fair enough...<button class="lui button flat">Dismiss</button>


WITNESS LIST Annexation (Interim) Committee February 11, 1998-9:30A Annexation On: David Blackburn (City Manager), Killeen David M. Hill (Dir. of Planning & Dev.), Denton David R. Taylor (City Manager), Temple Ed Garza (City Council District 7), San Antonio Emil Moncivais (San Antonio,Plan.Dir.), San Antonio George Kobel (Attorney), San Antonio George Mower (Freewat Manor Subdiv.), Schertz George Suther (SAPFF Local 624), San Antonio Howard Peak (Mayor), San Antonio J.W. Perry (Mayor), Temple Jack Hamlett (City Manager), Seguin Jan Kennady (Mayor), New Braunfels Jeff Wentworth (Fort Worth City Council), Fort Worth Johnny Fender (Mayor), San Angelo Larry Vetter (Dir. of City Planning), Kerrville Mark Sokolow (City Attorney), Port Arthur Matt Herden (S.A. Police Officers), San Antonio Mike Morrison (Mayor), Waco Nell Welborn (Rockwall City Council), Rockwall Patrick Heath (Mayor), Boerne Raul Prado (City Council District 4), San Antonio Robert Hieronymus (Mayor), Bulverde West Ron Patterson (Dir. of City Planning), San Marcos Steve Seese (Director of Planning), Wichita Falls Registering, but not testifying: On: Alan Rendl (Spirit 1960 Coalition), Houston Samuel K. Selman (City Planner), Laredo Steve Bresnen (N. Harris Co. Annex Ref), Austin


Hint
Use regular expression to search for lines in the .idx file
Here are some examples you can use for searchString
================================= ===============================================
searchString
GRIB messages that will be downloaded
================================= ===============================================
':TMP:2 m'
Temperature at 2 m.
':TMP:'
Temperature fields at all levels.
':UGRD:.* mb'
U Wind at all pressure levels.
':500 mb:'
All variables on the 500 mb level.
':APCP:'
All accumulated precipitation fields.
':APCP:surface:0-[1-9]*'
Accumulated precip since initialization time
':APCP:surface:[1-9]*-[1-9]*'
Accumulated precip over last hour
':UGRD:10 m'
U wind component at 10 meters.
':(U|V)GRD:(10|80) m'
U and V wind component at 10 and 80 m.
':(U|V)GRD:'
U and V wind component at all levels.
':.GRD:'
(Same as above)
':(TMP|DPT):'
Temperature and Dew Point for all levels .
':(TMP|DPT|RH):'
TMP, DPT, and Relative Humidity for all levels.
':REFC:'
Composite Reflectivity
':surface:'
All variables at the surface.
================================= ===============================================
If you need help with regular expression, search the web
or look at this cheatsheet: https://www.petefreitag.com/cheatsheets/regex/


Preparation time
less than 30 mins
Cooking time
10 to 30 mins
Serves
Serves 8
Dietary
This retro dessert, with its decadent combo of meringue, ice cream and chocolate sauce, is sweet-toothed heaven.
Equipment and preparation: for this recipe, you will need a sugar thermometer and a piping bag fitted with a star nozzle.
For the baked Alaska, bring 50ml/5fl oz water and the sugar to the boil in a saucepan. Keep boiling until the mixture reaches 121C on a sugar thermometer. (Caution: Hot sugar can be dangerous as it boils over very quickly. Do not leave unattended.)
Meanwhile, whisk the egg whites in a large clean bowl, using a freestanding mixer or an electric whisk, until stiff peaks form when the whisk is removed.
When the sugar reaches 121C, remove the pan from the heat. With the whisk or mixer running slowly, carefully pour the sugar syrup into the whisked egg whites in a thin stream, taking care not to let the hot sugar hit the beaters as it may splash. Continue to whisk until all the syrup has been incorporated into the egg whites and the mixture is glossy.
Continue to whisk the egg white mixture at a slow speed until it has almost completely cooled (about 5 minutes).
For the chocolate sauce, heat the chocolate with 2 tablespoons water in a saucepan over a low heat. When the chocolate has melted, add half of the cream and bring the mixture to the boil, whisking continuously.
When the mixture is boiling, remove the pan from the heat and whisk the mixture until smooth. Whisk in the remaining cream until combined. Decant into a serving jug and set aside until needed.
To assemble the baked Alaska, place the sponge disc onto a heatproof serving plate and drizzle the Armagnac all over it. Upturn the tub of ice cream in the centre of the sponge base and cut away the packaging.
Spread half of the meringue mixture all over the ice cream and sponge base using a palette knife. Transfer the remaining meringue mixture to a piping bag with a star nozzle and pipe it over the top of the meringue layer to decorate.
Using a chefs’ blow torch, heat the piped meringue all over until it caramelises to a light golden-brown. Alternatively, heat your oven to its highest setting and place the baked Alaska into the oven for a few seconds.
Serve immediately with the chocolate sauce alongside.


{{endowment.endowment.description}}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam et magna non augue rutrum fringilla ut sed felis. Read More
With the help of 500 donors this charity has received $50 in donations from this endowment.
{{debug}}


This application is a hobby project designed, developed, deployed and maintained by Vishnu Sayanth. Please read the documentation to learn more about the application. Some of the highlighted functionalities in the application are as follows,
Continents
Countries
States
REST API
Below given are the links to main features in this applciation.
Feel free to contact me using the below given information.
Bengaluru, Karnataka, India.
vishnusayanth@gmail.com


How good does this theme look?
import React from "react"
import ReactDOM from "react-dom"
import { Provider } from "react-redux"
import Layout from "./components/Layout"
import store from "./store"
const app = document.getElementById('app')
ReactDOM.render(<Provider store={store}>
<Layout />
</Provider>, app)
Guess


How it Works
The need for helping elderly individuals or couples remain in their home is increasing as our global population ages. Cognitive processing offers opportunities to assist the elderly by processing information to identify opportunities for caregivers to offer assistance and support.
Rather than depending on sensors worn on the body (and needing to be not forgotten, recharged, etc..) or installing sensors on individual devices (e.g. sink, cabinet, refrigerator, etc..), this solution utilizes passive monitoring devices, notably video camera(s) with multi-channel microphones, to sense activity, record events, and build a model of normative behavior.
Installation on kitchen shelf
Initially we intend to monitor the kitchen and recognizes the presence of a person (not an individual) in the room. From this simple event detection we will build a normative baseline of daily activity and detect when that daily activity exhibits aberrations (e.g. no activity in kitchen after +2 std. dev. past median time).
The visual recognition algorithm will run on the local device (e.g. RaspberryPi with camera), the issues of round-trip latency to the cloud, or bandwidth required, or security or privacy concerns, will be eliminated. Only events generated from this recognition will be sent to the cloud to build (and update) the normative behavior model.
This initial scenario may be easily extended to other passive monitoring capabilities, e.g. audio, motion (sonar), electrical circuit, , ... as well as deployment in other area, e.g. entry way, bathroom, hallway, etc.. to provide support for additional scenarios, e.g. medication adherence, diet, exercise, ...
First and Last
The table below has the first and last events today in which a Human classifier was identified. This result is via a Looker generated SQL provisioning a JSON result that is then cleaned-up using a CGI script. There is a bug in that the public dashDB instance I am sharing has its timezone set to GMT; this does not appear to something I can change in a simple or straight-forward fashion.
The results may be NULL until I find a fix.
Location First Seen Last Seen
Kitchen
Bathroom
System Overview
The solution is patterned on a "do-it-yourself" (DIY) approach and utilizes inexpensive hardware, open source software, and free services from the IBM Bluemix cloud. The local device is comprised of a RaspberryPi computer and PlayStation3 Eye USB camera with four (4) internal microphones. Total cost of hardware is under US$80 on-line.
The IBM Bluemix cloud provides a suite of services for the application, including this Web site, which is a Node.js CloudFoundry application.
The Bluemix environment enables this application context to apply to other services,
notably the IBM Watson image recognition services .
In addition, the Cloudant NoSQL repository stores the historical event and image recognition information.
Bluemix also provides the dashDB hybrid relational data warehousing service.
This service automatically replicates from the Cloudant repository and provides an SQL interface for SELECT, PROJECT and JOIN.
This SQL services can also be consumed by Watson Analytics and other third-party software packages from IBM
and business partners (e.g. Looker ).
Also on Bluemix, the IBM Internet of Things platform and
associated Real-Time Insights provide device registration and system status monitoring for the RaspberryPi.
General purpose conditionals can be applied for integration with email, IFTTT , Node.Red and arbitrary web-hook.
In addition, this site utilizes Mixpanel (www.mixpanel.com) to provide user tracking.
Training
This project started utilizing the AlchemyAPI (http://www.alchemyapi.com/) recognition algorithm and then was extended to include the VisualInsights recognition algorithm.
The AlchemyAPI demonstrated a low signal to noise ratio, with most images being classified as "NO_TAG," indicating that none of the known objects were identified;
in addition, the algorithm only returned a single result.
The VisualInsights algorithm was made available as beta in December 2005, and I added its analysis capabilities to augment the signal; the VisualInsghts algorithm returns up to twenty-five (25)
objects per call; the additional objects the VI algorithm could identify was a great benefit, but the signal, while improved, still included signifcant noise; specifically in the
identification of "humans" being split across various classifications and without any hierarchical organization into groups.
Sadly, first the VisualInsights algorithm was deprecated in June 2016 and in 2017 the AlchemyAPI will also cease to operate. The new algorithm, Watson VisualRecognition,
is the child of AlchemyAPI and VisualInsights with support for multiple entities per image, as well as a default classifier generating poor signal and still significant noise (n.b. there is now
a hierarchy, but neither the classes nor the hierarchy is published and must be discovered from results).
Therefore, I embarked on building a training loop for whatever recognition algorithm I might utilize. This loop would capture the images from the camera's local storage (n.b. uSD card) and
present those images to the application user community (e.g. elderly individual/couple) and enable manual classification for subsequent training, testing, and deploying of a model specific to both this application context (i.e. people detection) as well as the local environs (e.g. room location, dogs, cats, residents, ...)
Collecting the images
The images needed to create the training data for Watson VR are stored on each device in a local directory (n.b. /var/lib/motion
).
The image file names correspond to the date and time of the image, as well as a monotonically increasing sequence number.
Access to these images is provided through FTP, restricted to access from the local LAN.
When the end-user engages in curating, a.k.a. labeling, the images into their respective distinct classes (see the next section), another service is invoked (aah-review
).
The review service periodically collects new events stored by the device in the Cloudant noSQL repository (e.g. rough-fog
).
New events include the image identifier; the device is accessed via FTP and the image is collected and collated.
When the process is complete, the count of images in each class is updated in Cloudant (e.g. rough-fog/review/all
), in addition to the sequence number of last event processed.
Labeling the images
Below is the user-interface for labeling images. Options are available as buttons (e.g. person, kitchen, dog, ..) based on previous labels assigned; new labels can be added in the text entry box and the
image's initial classification and capture date are shown.
Simple Web application to label images
Ideally, images are labeled if and only if the image contains the entity in question, e.g. a person, and does not contain any of the other entities of interest (e.g. dog or cat).
The training set also requires negative examples which do not include any entity (i.e. person, dog or cat).
To achieve this distinction, each camera installation has been pre-defined to a corresponding label (e.g. "kitchen") that is used to identify the negative examples.
Similarly, other locations may also be suitably classified (e.g. bathroom, dining room, living room, ...)
Labeled images are collated into separate directory structure for their new classes and symbolic links are utilized as a state maintaince indicator (i.e. collected, labeled).
Once images are labeled they are deemed ready for training; additional curation of the labeled images is performed in the Training phase.
Training the classifiers
The Watson VisualRecognition service provides for both initial learning as well as updates with new classes and images. The API does not provide details on images utilized in training for
either positive or negative examples so an independent record of images utilized must be maintained. In addition, no standard of practice is defined for validating or measuring the quality
of the learned model, so independent testing and quality measurement must be constructed. Finally, as the training process appears to be a required constiuent component,
other entities (e.g. myself, my wife, my kids, ..) could also be identified and used to train Watson VR.
The training set is limited to 100 megabytes (MB) of data for each class with a total maximum of 430 MB; minimum number of labeled images is ten (10). Updates can be made against a single
labeled set at a time, also including negative examples (i.e. not including any previously labeled entities).
Each learned model is referred to by both a name as well as a specific identifier. The name is being utilized for the device (e.g. rough-fog) and the identifier determines the model and serves
as an index to keep track of which images have been used for training purposes -- both positive and negative examples. The
train_vr
script is still in process. Evident in the
log are failures of the Watson VR API call, e.g. 413 Request Entity Too Large
, and corresponding successful repetition.
Results from Watson VR
Once the process has successfully complete, the updated model is recorded in Cloudant.
I copied a confusion matrix calculator and created a simple Web application to display the matrix for a given model and/or device (i.e. Watson VR classifier_id
, and name
);
the prototype is available below:
Simple Web application to view model confusion matrix
The results from training the Watson VR algorithm using the curated examples improved the results, but overall the recall was less than 69% and typically under 40%.
Process Model
The script executes a number of steps sequentially based on the output of the aah-classify
Web application.
The curated images are organized in the file-system in a directory structure corresponding to device and class , e.g. rough-fog/person
.
Label images by class
Split each image class train and test sets
Separate sets into batches of no more than 100 M-byte
Build model from train set (iterate batches)
Apply classifier to test set
Calculate quality metrics
Curate sets; iterate build
QA/QC vs production
Promote to production
nVidia DIGITS
There is an open source package called DIGITS that provides a graphical interface to numerous deep learning techniques using nVidia GPUs.
The curated image sets created using the Web application above are loaded into DIGITS and trained using the existing GoogLeNet pre-trained (i.e. weighted) Caffe network.
The results indicate significant performance on the TOP1 prediction (i.e. the algorithm got it right). Below are the training graphs indicating ~ 66% accuracy for rough-fog and ~ 72% accuracy for damp-cloud.
Results from DIGITS using Caffe & GoogLeNet
Analysis
With several weeks of data collected patterns are emerging. Initial analysis step was to understand the classsifiers tagged in the images.
Step 1: Watson Analytics
Data was processed from JSON in Cloudant into CSV files for each device. Resulting data included listing of all classifiers by fifteen (15) minute interval per day.
These images are created using Watson Analytics . It is simple to get a free account and load the CSV files.
Import these CSV files into Watson Analytics, refine the data model and explore yields the following graphical displays of the classifier space.
Heatmap of classifiers
Primary Classifiers
Relationship between hour, day and classifier
The heatmap of classifiers as well as the primary classifiers across hour of day were both highly informative. This insight lead the selection of the following classifiers
from the VisualInsights recognition algorithms for further investigation using Looker.
Step 2: Looker
Analysis of the underlying events which generated the classifications lead to analysis using Looker. Looker generates SQL for the dashDB replicant of the Cloudant JSON event history
and then makes that output available for visualization and download as JSON. The following graphics are "live" views of the rough-fog and damp-cloud events.
Analysis of activity seen by rough-fog for past week
Analysis of activity seen by damp-cloud for past week
As can be seen in the graphs below, the default classifier for the AlchemyAPI produces very little signal with the majority of events being classifed as "NO_TAGS" indicating nothing was recognized.
Count of AlchemyAPI Human Classifiers for "rough-fog" device
Count of AlchemyAPI Human Classifiers for "damp-cloud" device
Step 3: Excel
The same UNIX script
(mkclass
)
that converts the Cloudant JSON into CSV files suitable to Watson Analytics is also suitable
for consumption by Excel.
The script builds the classifier (or classifier set, e.g. 'people') population statistics model for the specified device.
The results are processed in the Excel spreadsheet to produce the charts below.
All Activity; the sum of 'person' events in the kitchen
Expected Activity; when 'person' count by 'intervals' "near" mean of interval count
Over Activity; when 'person' count by 'interval' is +2SD over mean of interval count
Under Activity; when 'person' count by 'interval' is -2SD under mean of interval count
Step 4: Web Services
With analytical understanding of the event classifier space and corresponding activity for specific classifiers by day of week and interval of day,
a model can now be constructed to determine the average time of first activity in the AM. That model is calculated on the server, based on the historical
event data and supplied to the device on demand through a Web service.
The Web service is a HTTP address with parameters that invokes logic to to return a result, e.g. the average score for Person in a given interval of time.
Below are some examples of the aah-stats
Web service:
The id= argument can be specified with any of the classifiers. The day= and interval= arguments can be specified with "all" or a number for day (0-6) or interval (0-95).
This information is consumed by the RaspberryPi and utilized to compare current events with the historical population statistics.
Local conditional testing is currently in-progress, utilizing the motion
package capability for additional event processing.
Examples
Image captured using motion detection algorithm based on changes in pixel count (bounding box around centroid identifed).
Equipment
The necessary equipment for this project is relatively inexpensive:
A RaspberryPi3 with 32 GB uSD card and Playstation3 Eye USB camera
RaspberryPi3 ~ US$45.00
Enclosure, uSD card, power-supply ~ US$30
Playstation3 Eye camera ~ US$5 (WOW!)
TOTAL COST: ~ US$80! For comparison, a DropCam from Nest (aka Google) is ~ US$199.
Infrastructure
We are making use of resin.io to manage the build and deployment process to the Raspberry Pi devices.
The resin.io service provides a customizable base image with which to "flash" the uSD card for the RaspberryPi. The image may be configured
with the SSID and password for the local WiFi network.
The "AgeAtHome" application we have defined provides a context in which devices participate. Each device is assigned to one application.
Once a device has been flashed and booted, it connects to the resin.io service and presents itself within the application context.
Each device associated with the application can be inspected, including summary status and logs (e.g. stderr).
Including the ability to ssh(1) into a terminal for command line interface:
Listing of motion detection volume data in file system
IBM IoTF Platform
I added the IBM IoT Foundation Quickstart for Raspberry Pi
to the environment and you can see a live stream
of instrumentation data. The dashboard below is shown once a device is registered to a Bluemix account and affiliated with an organization (another level of indirection
off your Bluemix account).
IBM IoTF Platform Dashboard
Changes were made to both Dockerfile as well as initial script to enable IoTF/QS and sample C program only sends system status. Will need to change
the sample program to progres HTTP requests to send any JSON payloads (i.e. our events).
IBM IOTF Real-time Insights
The IBM IOTF Real-time Insights capabilities can be linked to the IOTF Platform
through a shared repository for the JSON events received by the platform; the JSON objects in that repository provide schemas for payload processing.
The IOTF-RTI environment provides for rules to be specified in conjunction with JSON
payload values using numeric comparison to static values, other payload values, and context parameters (n.b. unsure where or how these values are set).
IBM IOTF Real-time Insights rule specification
IBM IOTF Real-time Insights rule condition specification
IBM IOTF Real-time Insights rule action specification
System Detail
The following image is a more detailed diagram of the system operational components and process.
GitHub repositories are publically accessible at:
SETUP (in-progress):
Download RaspberryPi image (Ethernet only; working on WiFi)
Use Etcher to copy image to SD card
Insert SD card in RaspberryPi & connect camera and power
Configure RaspberryPi using Web browser (port 8080 ; image at port 8081 )
Send me an email to setup server side; working on automation
View your Looker graphs on-line (in progress)
Setup conditionals for notification (in progress)
More Information
IBM Research
is developing cognitive technology to build life
advisors to support the Elderly. These cognitive advisors will be
fueled by fusion of data such as IoT, wearables, social interactions,
health, and financial. To power the advisors, IBM Research has built
core technology, we called the Knowledge Reactor, that is designed
to be a general-purpose reactive data fusion engine for Cognitive
IoT. We use the Watson IoT Platform for all the sensor interfaces
to feed into our reactive data fusion engine. The Knowledge Reactor
will normalize data across various sensors from different manufactures,
heterogeneous device types, and so on and build a contextual model
to track the Elder's status and behavior, and produce alerts from
cognitive agents. The cognitive insights can easily feed into an
iPad app like the Elder ones used in the Japan Post project. Through
our Cognitive Eldercare Research, we will help governments, industries,
and companies around the world as they seek to develop products and
technology enabled services for consumers in the new longevity
economy.
If you've read all the way to here and you still want more information, you can find me at the following places; or click on the little blue circle in the lower right of your web browser to talk to me directly:
LinkedIn
GitHub
Twitter


Rob Barton
CPRE 384
Prof. Thorland-Oster
Ethics
Ethics is an interesting topic. Every field has its own form of ethics, yet few fields focus more
than a few high-level committees on ethics, bar philosophy. I believe that humans generally understand
ethics for the most part. Nobody sets out to ruin lives and harm people, but sometimes we can be tempted
or distracted from the impacts of our actions.
Having a well-defined code of ethics can help someone understand what behavior they should
promote in themselves, but “a written code can only approximate what an unwritten code can do” (Brant,
37). The purpose of having and following a code of ethics is to be able to recognize unethical behavior in
yourself and others and understand that that behavior is unethical and should be avoided to maintain
professional credibility.
Personally, when I face any decision, I first consider the boy scout law. The law, a 12 pillar list of
ideals, which every boy scout quickly memorizes as it is recited at the beginning of every meeting. If I
determine a decision to be possibly unethical I determine who may be affected by this decision and focus
on limiting harm to unaware people. I would rather take the blame over my team taking it, I would rather
my team mess up than our company, and so on to the customer. I can understand making a mistake and
facing an ethical dilemma. I am frustrated by people with a responsibility that handoff that dilemma to
others.
In Cpr E 394, a computer engineering-focused ethics class at Iowa State University, we were
presented with four ethical issues faced in the modern world. We looked at the scandal of Volkswagen
cheating US emissions tests in 2009, the poorly designed Ford pinto that was cleared for production in
spite of glaring flaws, a murder case where police took an Amazon Echo as evidence possibly having
recorded a clue to the identity of the murderer, and a man constructing a database on anonymized data on
paramedic field injuries who was asked to include names and other identifying information. We discussed
these amongst our class online.
Our class didn’t come to a consensus per se, but I believe all of us agreed generally where the
ethical lines were drawn. However, if those lines were crossed the opinions on what the repercussions
should be varied. Some people jumped straight to a loss of job for all unethical behavior, others suggested
talking with a supervisor about the implications of the decision they were facing.
My whole class discussed these issues without really focusing on one main issue. We were also
presented with the “Virtue of Ethics” an article by William A. Brant about some supposedly overarching
common ethics, consisting of integrity, honesty, fidelity, charity, responsibility, and self-discipline. I
would argue that while honesty is important it can be detrimental to focus on. I suggest that honesty be
rephrased to trustworthiness, a small but important change. I believe it is important to come forward with
issues and not lie, but it is also important to be willing to not answer a question to maintain trust.
Bibliography
Brant, William A. “HOW DO YOU SOLVE ETHICAL DILEMMAS.” The Right Choice:
Applying Ethics to Engineering, PDH Online, pp. 32-39.
Brant, William A. “Virtue of Ethics.” The Right Choice: Applying Ethics to Engineering, PDH
Online, pp. 21


Company profile - Canadian Company Capabilities
Third-Party Information Liability Disclaimer
Some of the information on this Web page has been provided by external sources. The Government of Canada is not responsible for the accuracy, reliability or currency of the information supplied by external sources. Users wishing to rely upon this information should consult directly with the source of the information. Content provided by external sources is not subject to official languages, privacy and accessibility requirements.
Schneider Electric
Mailing Address:
101-415 Legget Dr.KANATA, Ontario
K2K 2A9
Location Address:
101-415 Legget Dr.KANATA, Ontario
K2K 3R1
Tel.:<PHONE_NUMBER>
Tel.:<PHONE_NUMBER>
Fax:<PHONE_NUMBER>
Logo
Company Profile
Schneider Electric, Telemetry & Remote SCADA Solutions, is a global supplier of remote automation solutions for SCADA systems in oil and gas, water and electrical utilities applications. Solution components include Accutech wireless instrumentation, SCADAPack controllers, Trio long-range data radios, and ClearSCADA enterprise software. All products are engineered to operate in harsh, unattended environments delivering higher productivity and efficiency while reducing operational costs across a wide area infrastructure.
Full profile
Full profile
Contact information
Company description
541510 - Computer Systems Design and Related Services
Product / Service / Licensing
For more information contact sales@controlmicrosystems or visit www.controlmicrosystems.com.
All Flow and Pressure Measurement products are CSA certified. RTD connections are non-incendive when mounted in Div 2-rated areas. Selected SCADASense products are certified for Single Seal Compliance under ANSI/ISA 12.27.01 as well as ATEX and IECEx to Ex d IIC T6; -50°C ≤Ta ≤70°C.
For more information contact sales@controlmicrosystems or visit: www.controlmicrosystems.com
The product is backed by a robust 3-year warranty, has cCSAus approval and can operate in a wide range of temperatures. With the internal sensor option, the 410 is rated for use in Class I, Division 2: Groups A, B, C and D Hazardous Locations. With the external sensor option, the sensor alone is rated for use in Class I, Division 1, and the enclosure in Class I, Division 2 locations.
For more information contact<EMAIL_ADDRESS>or visit: www.controlmicrosystems.com
Realflo supports concurrent AGA-3 (orifice plate), V-Cone, Wafer Cone, and AGA-7 (turbine meter) flow measurements with AGA-8 or NX-19 gas density calculations. Meeting the requirements of API 21.1, RealFLO provides 35 days of hourly and daily averages, 700 user changes and events as well as 300 alarms.
The software's user interface offers more efficient well deployment utilising wizards and templates that minimise entry tasks required by operators and measurement technicians. The user also has the ability to export EFM data with customisable file naming conventions for FlowCal Measurement Software, easing file organization.
Realflo now offers functionality to support the gas transmission market.
For more information contact<EMAIL_ADDRESS>or visit www.controlmicrosystems.com
The product line encompasses the licensed E and M-Series and the unlicensed J & K-Series, each boasting its own unique set of system configurations and functionality.
For applications requiring the complete range of communication elements, from advanced remote units to full-feature base stations, repeaters and bridges, the Ethernet-based J-Series and serial-based K-Series radios provide all these in a variety of mounting options, utilising secure, unlicensed 900MHz and 2.4GHz spread-spectrum data transmission, innovative collision-avoidance, and multiple data stream technologies.
The E-Series offers Ethernet/IP and serial communication over licensed-band 450MHz half and full-duplex links, with remote, as well as battle-hardened base station/repeater and hot-standby base station controller units. The 450MHz remote M-Series returns high performance at a fraction of the cost of other comparable radios and may also be integrated with E-Series radio networks for added flexibility.
As the most powerful tool in the wireless communication toolbox, TView+ is used to configure all Trio radios (except J-Series) locally or remotely, and to provide useful system diagnostics and communication performance data, ensuring that the radio network is setup and tuned for optimum performance. To obtain a copy of TView+, please contact your local representative or email<EMAIL_ADDRESS>To round out the product line, optional accessories are offered, including Omni and YAGI antennas, antenna duplexer, feed lines and surge suppressor.
For more information on this selection contact<EMAIL_ADDRESS>or visit www.controlmicrosystems.com.
ClearSCADA has already expanded its comprehensive toolset with powerful new features like RealFLO Electronic Flow Measurement support, IEC60870-5-101 & -104 protocols, advanced SVG graphic import and international language localization, ClearSCADA makes it that much easier for the SCADA system developer and user alike to bring control concepts to life.
ClearSCADA 2007 Edition also provides a number of performance enhancements for existing features, including Context-Sensitive Help (F1), X-Y Plots, improved query processing, alarm handling, trending and security.
For more information contact<EMAIL_ADDRESS>or visit www.controlmicrosystems.com.
For more information contact<EMAIL_ADDRESS>or visit: www.controlmicrosystems.com.
The Accutech line is comprised of self-contained, self-powered field units providing process data to a centralised base radio through an unlicensed band, spread-spectrum, frequency hopping wireless connection. Networks of up to 100 field units (900MHz version) can be created and polled by a single base radio using the secure, proprietary Industrial Wireless protocol, with a typical range between field unit and base radio of up to 3000ft (~1000m). With the capability to scale up to as many as 256 wireless instrumentation LANs, Accutech networks easily accommodate future expansion plans.
A wide selection of field units are available, each equipped with an integrated antenna, long-life battery (up to 10 years) and radio.
For more information vist: www.accutechinstruments.com
Thanks to its Telemetry and Remote SCADA solutions, Schneider Electric provides integrated, secure and reliable SCADA solutions for water treatment plants and pumping stations, on-shore oil and gas extraction, transportation and storage as well as electrical utilities applications allowing you to maximize system functionality and reduce operational costs. Key solution components include remote process monitoring and control (SCADAPack RTU controllers), long range wireless communication (Trio radios), integrated SCADA host optimized for wide area use (ClearSCADA software) and wireless instrumentation (Accutech sensors). Industry specific solutions include dedicated water pump up and pump down controller (FlowStation), gas flow measurement (Realflo) and gas well automation (ProductionPlus).
For more information, visit www.controlmicrosystems.com.
Technology profile
Thanks to its Telemetry and Remote SCADA solutions, Schneider Electric provides integrated, secure and reliable SCADA solutions for water treatment plants and pumping stations, on-shore oil and gas extraction, transportation and storage as well as electrical utilities applications allowing you to maximize system functionality and reduce operational costs. Key solution components include remote process monitoring and control (SCADAPack RTU controllers), long range wireless communication (Trio radios), integrated SCADA host optimized for wide area use (ClearSCADA software) and wireless instrumentation (Accutech sensors). Industry specific solutions include dedicated water pump up and pump down controller (FlowStation), gas flow measurement (Realflo) and gas well automation (ProductionPlus).
For more information, visit www.controlmicrosystems.com.
Market profile
Alliances:
- Sales/Marketing
- Technology
Strategic alliances:
At Schneider Electric, Telemetry & Remote SCADA Solutions, products are developed with the sole purpose of being tools for customers to create practical solutions to challenging problems. Every product that makes it through Control Microsystems rigid productization process is guaranteed to be an effective part of any SCADA installation, providing ease of use with performance and reliability. Whether it is our renowned SCADAPackTM Remote Terminal Units (RTUs), Trio Data Radios, Accutech Wireless Instruments or the state-of-the-art ClearSCADATM SCADA Host platform, our product line enables users to evolve their own creative ideas faster and more effectively than any other SCADA products provider in the market.Industry sector market interests:
- Consumer Products
- Environment
- Information Technology and Telecommunications
- Manufacturing
- Mining/Petroleum/Gas
- Pulp and Paper
Geographic markets:
Export experience:
- Argentina
- Australia
- Bahrain
- Brazil
- Brunei Darussalam
- Cambodia
- Chile
- China
- Greece
- Hong Kong
- Hungary
- India
- Indonesia
- Japan
- Malaysia
- Mexico
- Philippines
- Singapore
- Turkey
- United Kingdom
- Venezuela, Bolivarian Republic of
Actively pursuing:
- Ireland
- Korea, Democratic People's Republic of
- Korea, Republic of
- Lao People's Democratic Republic
- Macao
- Myanmar
- New Zealand
- Russian Federation
- Taiwan
- Thailand
- United Arab Emirates
- United States
- Uruguay
- Viet Nam
Sector information
Total plant size:
a large, diverse and talented local workforce, along with appropriate suppliers and support services.
Distribution of employees:
Our worldwide customer base is served through five offices located in:Calgary, Canada
Denver, USA
Houston, USA
Melbourne, Australia
Leiden, Netherlands
Third-Party Information Liability Disclaimer
Some of the information on this Web page has been provided by external sources. The Government of Canada is not responsible for the accuracy, reliability or currency of the information supplied by external sources. Users wishing to rely upon this information should consult directly with the source of the information. Content provided by external sources is not subject to official languages, privacy and accessibility requirements.
Contacts
Contact information
Description
Company description
541510 - Computer Systems Design and Related Services
Products, services and licensing
Product / Service / Licensing
For more information contact sales@controlmicrosystems or visit www.controlmicrosystems.com.
All Flow and Pressure Measurement products are CSA certified. RTD connections are non-incendive when mounted in Div 2-rated areas. Selected SCADASense products are certified for Single Seal Compliance under ANSI/ISA 12.27.01 as well as ATEX and IECEx to Ex d IIC T6; -50°C ≤Ta ≤70°C.
For more information contact sales@controlmicrosystems or visit: www.controlmicrosystems.com
The product is backed by a robust 3-year warranty, has cCSAus approval and can operate in a wide range of temperatures. With the internal sensor option, the 410 is rated for use in Class I, Division 2: Groups A, B, C and D Hazardous Locations. With the external sensor option, the sensor alone is rated for use in Class I, Division 1, and the enclosure in Class I, Division 2 locations.
For more information contact<EMAIL_ADDRESS>or visit: www.controlmicrosystems.com
Realflo supports concurrent AGA-3 (orifice plate), V-Cone, Wafer Cone, and AGA-7 (turbine meter) flow measurements with AGA-8 or NX-19 gas density calculations. Meeting the requirements of API 21.1, RealFLO provides 35 days of hourly and daily averages, 700 user changes and events as well as 300 alarms.
The software's user interface offers more efficient well deployment utilising wizards and templates that minimise entry tasks required by operators and measurement technicians. The user also has the ability to export EFM data with customisable file naming conventions for FlowCal Measurement Software, easing file organization.
Realflo now offers functionality to support the gas transmission market.
For more information contact<EMAIL_ADDRESS>or visit www.controlmicrosystems.com
The product line encompasses the licensed E and M-Series and the unlicensed J & K-Series, each boasting its own unique set of system configurations and functionality.
For applications requiring the complete range of communication elements, from advanced remote units to full-feature base stations, repeaters and bridges, the Ethernet-based J-Series and serial-based K-Series radios provide all these in a variety of mounting options, utilising secure, unlicensed 900MHz and 2.4GHz spread-spectrum data transmission, innovative collision-avoidance, and multiple data stream technologies.
The E-Series offers Ethernet/IP and serial communication over licensed-band 450MHz half and full-duplex links, with remote, as well as battle-hardened base station/repeater and hot-standby base station controller units. The 450MHz remote M-Series returns high performance at a fraction of the cost of other comparable radios and may also be integrated with E-Series radio networks for added flexibility.
As the most powerful tool in the wireless communication toolbox, TView+ is used to configure all Trio radios (except J-Series) locally or remotely, and to provide useful system diagnostics and communication performance data, ensuring that the radio network is setup and tuned for optimum performance. To obtain a copy of TView+, please contact your local representative or email<EMAIL_ADDRESS>To round out the product line, optional accessories are offered, including Omni and YAGI antennas, antenna duplexer, feed lines and surge suppressor.
For more information on this selection contact<EMAIL_ADDRESS>or visit www.controlmicrosystems.com.
ClearSCADA has already expanded its comprehensive toolset with powerful new features like RealFLO Electronic Flow Measurement support, IEC60870-5-101 & -104 protocols, advanced SVG graphic import and international language localization, ClearSCADA makes it that much easier for the SCADA system developer and user alike to bring control concepts to life.
ClearSCADA 2007 Edition also provides a number of performance enhancements for existing features, including Context-Sensitive Help (F1), X-Y Plots, improved query processing, alarm handling, trending and security.
For more information contact<EMAIL_ADDRESS>or visit www.controlmicrosystems.com.
For more information contact<EMAIL_ADDRESS>or visit: www.controlmicrosystems.com.
The Accutech line is comprised of self-contained, self-powered field units providing process data to a centralised base radio through an unlicensed band, spread-spectrum, frequency hopping wireless connection. Networks of up to 100 field units (900MHz version) can be created and polled by a single base radio using the secure, proprietary Industrial Wireless protocol, with a typical range between field unit and base radio of up to 3000ft (~1000m). With the capability to scale up to as many as 256 wireless instrumentation LANs, Accutech networks easily accommodate future expansion plans.
A wide selection of field units are available, each equipped with an integrated antenna, long-life battery (up to 10 years) and radio.
For more information vist: www.accutechinstruments.com
Thanks to its Telemetry and Remote SCADA solutions, Schneider Electric provides integrated, secure and reliable SCADA solutions for water treatment plants and pumping stations, on-shore oil and gas extraction, transportation and storage as well as electrical utilities applications allowing you to maximize system functionality and reduce operational costs. Key solution components include remote process monitoring and control (SCADAPack RTU controllers), long range wireless communication (Trio radios), integrated SCADA host optimized for wide area use (ClearSCADA software) and wireless instrumentation (Accutech sensors). Industry specific solutions include dedicated water pump up and pump down controller (FlowStation), gas flow measurement (Realflo) and gas well automation (ProductionPlus).
For more information, visit www.controlmicrosystems.com.
Technology
Technology profile
Thanks to its Telemetry and Remote SCADA solutions, Schneider Electric provides integrated, secure and reliable SCADA solutions for water treatment plants and pumping stations, on-shore oil and gas extraction, transportation and storage as well as electrical utilities applications allowing you to maximize system functionality and reduce operational costs. Key solution components include remote process monitoring and control (SCADAPack RTU controllers), long range wireless communication (Trio radios), integrated SCADA host optimized for wide area use (ClearSCADA software) and wireless instrumentation (Accutech sensors). Industry specific solutions include dedicated water pump up and pump down controller (FlowStation), gas flow measurement (Realflo) and gas well automation (ProductionPlus).
For more information, visit www.controlmicrosystems.com.
Market
Market profile
Alliances:
- Sales/Marketing
- Technology
Strategic alliances:
At Schneider Electric, Telemetry & Remote SCADA Solutions, products are developed with the sole purpose of being tools for customers to create practical solutions to challenging problems. Every product that makes it through Control Microsystems rigid productization process is guaranteed to be an effective part of any SCADA installation, providing ease of use with performance and reliability. Whether it is our renowned SCADAPackTM Remote Terminal Units (RTUs), Trio Data Radios, Accutech Wireless Instruments or the state-of-the-art ClearSCADATM SCADA Host platform, our product line enables users to evolve their own creative ideas faster and more effectively than any other SCADA products provider in the market.Industry sector market interests:
- Consumer Products
- Environment
- Information Technology and Telecommunications
- Manufacturing
- Mining/Petroleum/Gas
- Pulp and Paper
Geographic markets:
Export experience:
- Argentina
- Australia
- Bahrain
- Brazil
- Brunei Darussalam
- Cambodia
- Chile
- China
- Greece
- Hong Kong
- Hungary
- India
- Indonesia
- Japan
- Malaysia
- Mexico
- Philippines
- Singapore
- Turkey
- United Kingdom
- Venezuela, Bolivarian Republic of
Actively pursuing:
- Ireland
- Korea, Democratic People's Republic of
- Korea, Republic of
- Lao People's Democratic Republic
- Macao
- Myanmar
- New Zealand
- Russian Federation
- Taiwan
- Thailand
- United Arab Emirates
- United States
- Uruguay
- Viet Nam
Sector
Sector information
Total plant size:
a large, diverse and talented local workforce, along with appropriate suppliers and support services.
Distribution of employees:
Our worldwide customer base is served through five offices located in:Calgary, Canada
Denver, USA
Houston, USA
Melbourne, Australia
Leiden, Netherlands


AWS::CodeCommit::Repository
The AWS::CodeCommit::Repository
resource creates an CodeCommit repository that is
hosted by Amazon Web Services. For more information, see Create an CodeCommit Repository in the
AWS CodeCommit User Guide.
Syntax
To declare this entity in your AWS CloudFormation template, use the following syntax:
JSON
{ "Type" : "AWS::CodeCommit::Repository", "Properties" : { "RepositoryDescription" :
String
, "RepositoryName" :String
, "Triggers" : [Trigger
] } }
YAML
Type: AWS::CodeCommit::Repository Properties: RepositoryDescription:
String
RepositoryName:String
Triggers: -Trigger
Properties
RepositoryDescription
-
A description about the CodeCommit repository. For constraints, see the CreateRepository action in the AWS CodeCommit API Reference.
Required: No
Type: String
Update requires: No interruption
RepositoryName
-
A name for the CodeCommit repository.
Required: Yes
Type: String
Update requires: No interruption
Triggers
-
Defines the actions to take in response to events that occur in the repository. For example, you can send email notifications when someone pushes to the repository.
Required: No
Type: List of CodeCommit Repository Trigger
Update requires: No interruption
Return Values
Ref
When the logical ID of this resource is provided to the Ref
intrinsic function, Ref
returns the repository ID, such as
12a345b6-bbb7-4bb6-90b0-8c9577a2d2b9
.
For more information about using the Ref
function, see Ref.
Fn::GetAtt
Fn::GetAtt
returns a value for a specified attribute of this type.
The following are the available attributes and sample return values.
Arn
-
The Amazon Resource Name (ARN) of the repository, such as
arn:aws:codecommit:us-east-1:123456789012:MyDemoRepo
. CloneUrlHttp
-
The URL to use for cloning the repository over HTTPS, such as
https://codecommit.us-east-1.amazonaws.com/v1/repos/MyDemoRepo
. CloneUrlSsh
-
The URL to use for cloning the repository over SSH, such as
ssh://git-codecommit.us-east-1.amazonaws.com/v1/repos/MyDemoRepo
. Name
-
The name of the repository, such
MyDemoRepo
.
For more information about using Fn::GetAtt
, see Fn::GetAtt.
Example
The following example creates an CodeCommit repository with a trigger for all events
in the
Master
branch.
JSON
"MyRepo" : { "Type" : "AWS::CodeCommit::Repository", "Properties" : { "RepositoryName" : "MyRepoName", "RepositoryDescription" : "a description", "Triggers" : [ { "Name" : "MasterTrigger", "CustomData" : "Project ID 12345", "DestinationArn" : { "Ref":"SNSarn" }, "Branches" : ["Master"], "Events" : ["all"] } ] } }
YAML
MyRepo: Type: AWS::CodeCommit::Repository Properties: RepositoryName: MyRepoName RepositoryDescription: a description Triggers: - Name: MasterTrigger CustomData: Project ID 12345 DestinationArn: Ref: SNSarn Branches: - Master Events: - all


-
ftp Library Package 2.1 for Tcl/Tk Manual Pages
- COMMAND
- ftp::Quote handle arg1 arg2 ...
-
-
The ftp::Quote command is used to send the specified arguments
verbatim, as is, to the remote ftp server. This command cannot
be used to obtain a directory listing or for transferring files,
but it can be used for any other ftp commands. It is typically
used to execute commands on the server that are not directly
available from the ftp_lib itself.
The command sent back the string it received instead of any parsing
- EXAMPLE
-
# change the mode settings on UNIX systems
ftp::Quote $conn site chmod 644 index.htm
# request supported ftp server commands
puts [ftp::Quote $conn help]
[Contents]
[Previous: ftp::RmDir]
© 1999 Steffen Traeger


Sweden drops Julian Assange rape investigation
by James CoxA Swedish prosecutor has confirmed the alleged rape investigation involving WikiLeaks founder Julian Assange, who is currently in prison in Britain, has been dropped.
Deputy Chief Prosecutor Eva-Marie Persson offered the update on the Swedish case on Tuesday.
In June, a Swedish court ruled that Assange shouldn't be detained. This meant that a preliminary investigation in Sweden continued, but he could be questioned in Britain.
Assange had been evicted from the Ecuadorian embassy in London two months beforehand.
The 48-year-old is currently serving a 50-week sentence in Britain for jumping bail in 2012.
He's also fighting extradition to the US, where he's accused of publishing secret documents.


I have been using methadone and various opiates for about three or four years now on a consistent basis. Finally, tired of the hassle associated with street dealers, I confronted my psychiatrist. He prescribed me 8mg of Bup twice a day. I took my first half tablet under my tongue and gave a friend (poor guy, I feel bad) the other half to use as a control subject. He is not an opiate addict.
In about thirty minutes or so both of us felt light-headed and floaty. About an hour into it, we both became very nauseous and headed to separate baths to puke. This puking and nausea continued for 36 hours before getting better!! I informed my doc of the problems I was having and he prescribed me some phenergan to combat the nausea. I have taken that and have unfortunately taken the second half of the bup. I'll give it another chance, but I can say that the high on this stuff is not comfortable. I cannot understand for the life of me why someone would come off of methadone or heroin for this stuff. It's horrible.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


ASTROWORLD LUXURY RESORT
Accomodation Page
Accomodation when you want it, when you can afford it.
Here at Astroworld, the best is reserve for none other than the best.
And you are the best.
- One night accomodation for two at 6,000 kes a night or 4,500 kes for one.
- Two night accomodation for two at 10,000 kes a night or 3,000 kes for one.
- A 3 day weekend booking for two at 14,500 kes a night or 8,700 kes for one.
For further inquiries contact us at 0712 830 961


Airlines prevail over sagging demand, maintain capacity in October
On an average, airfares on metro routes were down by 20-25 per cent for tickets booked in the past seven days, compared to the same period last year
by Arindam MajumderDriven by low fares, airlines managed to maintain their capacity despite sagging demand. According to estimates, demand was at its peak during the festive season. On an average, airfares on metro routes were down by 20-25 per cent for tickets booked in the past seven days, compared to the same period last year. This trend has gained momentum in November also.


Current temperature:
Today's high temperatures:
Today's low temperatures:
Current weather conditions description:
Current wind speed:
Sunrise time:
Sunset time:


Class OnlineEftposRequestBuilder
Reduces the effort/code needed to construct a OnlineEftposPaymentRequest or OnlineEftposRefundRequest by using default & templated values for properties that do not change or have a predictable pattern.
Inheritance
Inherited Members
Namespace: Yort.OnlineEftpos
Assembly: Yort.OnlineEftpos.dll
Syntax
public class OnlineEftposRequestBuilder
Remarks
Note: Values neither provided to the builder nor the resulting request objects are validated. To ensure a request is valid make sure to call the requests EnsureValid method.
Constructors
| Improve this Doc View SourceOnlineEftposRequestBuilder()
Default constructor.
Declaration
public OnlineEftposRequestBuilder()
Properties
| Improve this Doc View SourceCallbackUrlTemplate
A template string for creating callback urls.
Declaration
public string CallbackUrlTemplate { get; set; }
Property Value
| Type | Description |
|---|---|
| System.String |
Remarks
You can use {orderId} to indicate your transaction reference within the template.
e.g. services.mycoolsite.com/payments/callback?orderId={orderId}
DefaultCurrency
The default value for the Currency property.
Declaration
public string DefaultCurrency { get; set; }
Property Value
| Type | Description |
|---|---|
| System.String |
DefaultCurrencyMultiplier
Specifies the multipler to convert a System.Decimal value into a valid API amount (integer).
Declaration
public int DefaultCurrencyMultiplier { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
Remarks
The API requires amounts to be provided as an integer representing the total value in the minimum unit of the currency being used. For example, in the US, Australia and New Zealand the minimum unit is 'cents', at 0.01 for a single cent. If you want to charge $10.00 then the API requires you to provide an amount of 1000. The multiplier in this case would be 100 (10 * 100 = 1000).
The default value for this property is 100.
DefaultMerchantIdCode
The default value for the MerchantIdCode property.
Declaration
public string DefaultMerchantIdCode { get; set; }
Property Value
| Type | Description |
|---|---|
| System.String |
DefaultMerchantUrl
The default value for the MerchantUrl property.
Declaration
public Uri DefaultMerchantUrl { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Uri |
DefaultUserAgent
For systems that do not interact with a user via HTTP, this is the fake value passed for the UserAgent property.
Declaration
public string DefaultUserAgent { get; set; }
Property Value
| Type | Description |
|---|---|
| System.String |
DefaultUserIP
For systems that do not interact with a user via HTTP, this is the fake value passed for the UserIPAddress property.
Declaration
public string DefaultUserIP { get; set; }
Property Value
| Type | Description |
|---|---|
| System.String |
PurchaseDescriptionTemplate
The template string to use for default purchase descriptions.
Declaration
public string PurchaseDescriptionTemplate { get; set; }
Property Value
| Type | Description |
|---|---|
| System.String |
Remarks
The following tags can be used and will be runtime replaced;
RefundReasonTemplate
The template string to use for default refund reasons.
Declaration
public string RefundReasonTemplate { get; set; }
Property Value
| Type | Description |
|---|---|
| System.String |
Remarks
The following tags can be used and will be runtime replaced;
Methods
| Improve this Doc View SourceCreatePaymentRequest(String, String, String, String, Decimal)
Create a new (unvalidated) payment request using default and supplied values.
Declaration
public OnlineEftposPaymentRequest CreatePaymentRequest(string payerId, string payerIdType, string bankId, string orderId, decimal amount)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | payerId | The id of the entity to request payment from. |
| System.String | payerIdType | The type id provided in the |
| System.String | bankId | The unique ID of the bank to which the payer is registered with/using for this request. |
| System.String | orderId | Your (merchant) reference for the transaction. |
| System.Decimal | amount | The amount of the transaction as a decimal value. |
Returns
| Type | Description |
|---|---|
| OnlineEftposPaymentRequest | An OnlineEftposPaymentRequest pre-populated with appropriate values, but unvalidated. Call the EnsureValid() method to confirm validity. |
CreatePaymentRequest(String, String, String, String, Decimal, String, String)
Create a new (unvalidated) payment request using default and supplied values.
Declaration
public OnlineEftposPaymentRequest CreatePaymentRequest(string payerId, string payerIdType, string bankId, string orderId, decimal amount, string userIP, string userAgent)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | payerId | The id of the entity to request payment from. |
| System.String | payerIdType | The type id provided in the |
| System.String | bankId | The unique ID of the bank to which the payer is registered with/using for this request. |
| System.String | orderId | Your (merchant) reference for the transaction. |
| System.Decimal | amount | The amount of the transaction as a decimal value. |
| System.String | userIP | The IP address of the requesting client. |
| System.String | userAgent | The user agent string of the requesting client. |
Returns
| Type | Description |
|---|---|
| OnlineEftposPaymentRequest | An OnlineEftposPaymentRequest pre-populated with appropriate values, but unvalidated. Call the EnsureValid() method to confirm validity. |
CreateRefundRequest(String, String, Decimal)
Create a new (unvalidated) refund request using default and supplied values.
Declaration
public OnlineEftposRefundRequest CreateRefundRequest(string orderId, string originalPaymentId, decimal amount)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | orderId | Your (merchant) reference for the transaction. |
| System.String | originalPaymentId | The id of the original payment being refunded. |
| System.Decimal | amount | The amount of the transaction as a decimal value. |
Returns
| Type | Description |
|---|---|
| OnlineEftposRefundRequest | An OnlineEftposRefundRequest pre-populated with appropriate values, but unvalidated. Call the EnsureValid() method to confirm validity. |
CreateRefundRequest(String, String, Decimal, String, String)
Create a new (unvalidated) refund request using default and supplied values.
Declaration
public OnlineEftposRefundRequest CreateRefundRequest(string orderId, string originalPaymentId, decimal amount, string userIP, string userAgent)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | orderId | Your (merchant) reference for the transaction. |
| System.String | originalPaymentId | The id of the original payment being refunded. |
| System.Decimal | amount | The amount of the transaction as a decimal value. |
| System.String | userIP | The IP address of the requesting client. |
| System.String | userAgent | The user agent string of the requesting client. |
Returns
| Type | Description |
|---|---|
| OnlineEftposRefundRequest | An OnlineEftposRefundRequest pre-populated with appropriate values, but unvalidated. Call the EnsureValid() method to confirm validity. |


Hooks are a new addition in React 16.8. They let you use state and other React features without writing a class.
The introduction page used this example to get familiar with Hooks:
import React, { useState } from 'react';
function Example() {
// Declare a new state variable, which we'll call "count"
const [count, setCount] = useState(0);
return (

You clicked {count} times

<button onClick={() => setCount(count + 1)}>
Click me
</button>

);
}
We'll start learning about Hooks by comparing this code to an equivalent class example.
If you used classes in React before, this code should look familiar:
class Example extends React.Component {
constructor(props) {
super(props);
this.state = {
count: 0
};
}
render() {
return (

You clicked {this.state.count} times

<button onClick={() => this.setState({ count: this.state.count + 1 })}>
Click me
</button>

);
}
}
The state starts as { count: 0 }
, and we increment state.count
when the user clicks a
button by calling this.setState()
. We'll use snippets from this class throughout the page.
Note
You might be wondering why we're using a counter here instead of a more realistic example. This is to help us focus on the API while we're still making our first steps with Hooks.
As a reminder, function components in React look like this:
or this:
You might have previously known these as "stateless components". We're now introducing the ability to use React state from these, so we prefer the name "function components".
Hooks don't work inside classes. But you can use them instead of writing classes.
Our new example starts by importing the useState
Hook from React:
import React, { useState } from 'react';
function Example() {
// ...
}
What is a Hook? A Hook is a special function that lets you "hook into" React features. For example,
useState
is a Hook that lets you add React state to function components. We'll learn other Hooks later.
When would I use a Hook? If you write a function component and realize you need to add some state to it, previously you had to convert it to a class. Now you can use a Hook inside the existing function component. We're going to do that right now!
Note:
There are some special rules about where you can and can't use Hooks within a component. We'll learn them in Rules of Hooks.
In a class, we initialize the count
state to 0
by setting this.state
to { count: 0 }
in the constructor:
class Example extends React.Component {
constructor(props) {
super(props);
this.state = {
count: 0
};
}
In a function component, we have no this
, so we can't assign or read this.state
. Instead,
we call the useState
Hook directly inside our component:
import React, { useState } from 'react';
function Example() {
// Declare a new state variable, which we'll call "count"
const [count, setCount] = useState(0);
What does calling useState
do? It declares a "state variable". Our variable is called count
but we could call it anything else, like banana
. This is a way to "preserve" some values between the function calls — useState
is a new way to use the exact same capabilities that this.state
provides in a class. Normally, variables "disappear" when the function exits but state variables are preserved by React.
What do we pass to useState
as an argument? The only argument to the
useState()
Hook is the initial state. Unlike with classes, the state doesn't have to be an object. We
can keep a number or a string if that's all we need. In our example, we just want a number for how many times the
user clicked, so pass 0
as initial state for our variable. (If we wanted to store two different values
in state, we would call useState()
twice.)
What does useState
return? It returns a pair of values: the current state and a
function that updates it. This is why we write const [count, setCount] = useState()
. This is similar to
this.state.count
and this.setState
in a class, except you get them in a pair. If you're
not familiar with the syntax we used, we'll come back to it at the bottom of this page.
Now that we know what the useState
Hook does, our example should make more sense:
import React, { useState } from 'react';
function Example() {
// Declare a new state variable, which we'll call "count"
const [count, setCount] = useState(0);
We declare a state variable called count
, and set it to 0
. React will remember its current value between re-renders, and provide the most recent one to our function. If we want to update the current count
, we can call setCount
.
Note
You might be wondering: why is
useState
not namedcreateState
instead?"Create" wouldn't be quite accurate because the state is only created the first time our component renders. During the next renders,
useState
gives us the current state. Otherwise it wouldn't be "state" at all! There's also a reason why Hook names always start withuse
. We'll learn why later in the Rules of Hooks.
When we want to display the current count in a class, we read this.state.count
:
In a function, we can use count
directly:
In a class, we need to call this.setState()
to update the count
state:
<button onClick={() => this.setState({ count: this.state.count + 1 })}>
Click me
</button>
In a function, we already have setCount
and count
as variables so we don't need
this
:
<button onClick={() => setCount(count + 1)}>
Click me
</button>
Let's now recap what we learned line by line and check our understanding.
1: import React, { useState } from 'react';
2:
3: function Example() {
4: const [count, setCount] = useState(0);
5:
6: return (
7:

8:
You clicked {count} times

9: <button onClick={() => setCount(count + 1)}>
10: Click me
11: </button>
12:

13: );
14: }
useState
Hook from React. It lets us keep local state in a function component.Example
component, we declare a new state variable by calling the
useState
Hook. It returns a pair of values, to which we give names. We're calling our variable
count
because it holds the number of button clicks. We initialize it to zero by passing 0
as the only useState
argument. The second returned item is itself a function. It lets us update the
count
so we'll name it setCount
.setCount
with a new value. React will then re-render the Example
component, passing the new count
value to it.This might seem like a lot to take in at first. Don't rush it! If you're lost in the explanation, look at the code above again and try to read it from top to bottom. We promise that once you try to "forget" how state works in classes, and look at this code with fresh eyes, it will make sense.
You might have noticed the square brackets when we declare a state variable:
The names on the left aren't a part of the React API. You can name your own state variables:
This JavaScript syntax is called "array
destructuring". It means that we're making two new variables fruit
and setFruit
,
where fruit
is set to the first value returned by useState
, and setFruit
is
the second. It is equivalent to this code:
var fruitStateVariable = useState('banana'); // Returns a pair
var fruit = fruitStateVariable[0]; // First item in a pair
var setFruit = fruitStateVariable[1]; // Second item in a pair
When we declare a state variable with useState
, it returns a pair — an array with two items. The first item is the current value, and the second is a function that lets us update it. Using [0]
and [1]
to access them is a bit confusing because they have a specific meaning. This is why we use array destructuring instead.
Note
You might be curious how React knows which component
useState
corresponds to since we're not passing anything likethis
back to React. We'll answer this question and many others in the FAQ section.
Declaring state variables as a pair of [something, setSomething]
is also handy because it lets us give different names to different state variables if we want to use more than one:
function ExampleWithManyStates() {
// Declare multiple state variables!
const [age, setAge] = useState(42);
const [fruit, setFruit] = useState('banana');
const [todos, setTodos] = useState([{ text: 'Learn Hooks' }]);
In the above component, we have age
, fruit
, and todos
as local variables, and we can update them individually:
function handleOrangeClick() {
// Similar to this.setState({ fruit: 'orange' })
setFruit('orange');
}
You don't have to use many state variables. State variables can hold objects and arrays just fine,
so you can still group related data together. However, unlike this.setState
in a class, updating a
state variable always replaces it instead of merging it.
We provide more recommendations on splitting independent state variables in the FAQ.
On this page we've learned about one of the Hooks provided by React, called useState
. We're also
sometimes going to refer to it as the "State Hook". It lets us add local state to React function components – which
we did for the first time ever!
We also learned a little bit more about what Hooks are. Hooks are functions that let you "hook into" React features
from function components. Their names always start with use
, and there are more Hooks we haven't seen
yet.
Now let's continue by learning the next Hook:
useEffect
. It lets you perform side effects in components, and is similar to
lifecycle methods in classes.


--- title: Home layout: default ---
Here is a list of interesting projects I've to which I've contributed.


{% extends "console/pages/clients/clients.html" %} {% block section %}
Marketing Emails
Time
Action
User
Activity
1
Mark
Otto
@mdo
2
Jacob
Thornton
@fat
3
Larry the Bird
@twitter
{% endblock %}