--- layout: post title: "Karma from bash on Windows" description: "Note to future self: how I got Karma running from bash in Windows." date: 2013-09-13 07:02 UTC tags: [Miscellaneous, Languages] --- {% include JB/setup %}
{{ page.description }}
Yesterday, I spent quite a bit of time getting Karma to run from bash on my Windows 7 (x64) laptop. Since, a month from now, I'll have absolutely no recollection of how I achieved this, I'm writing it down here for the benefit of my future self, as well as any other people who may find this valuable.
My first problem was that 'karma' wasn't a recognized command. Although I'd used Chocolatey to install node.js, used npm to install Karma, and 'karma' was a recognized command from PowerShell, bash didn't recognize it. While I don't yet know if the following is the 100 % correct solution, I managed to make bash recognize karma by adding my karma directory to my bash path:
PATH=$PATH:~/appdata/roaming/npm/node_modules/karma/bin
This works in the session itself, but will be forgotten by bash unless you add it to ~/.bash_profile. BTW, that file doesn't exist by default in a new Git Bash installation on Windows, so you'll have to add it yourself.
My next problem was that, while karma could be found, I got the error message that it couldn't find Chrome, and that I should set the CHROME_BIN environment variable. After much experimentation, I managed to make it work by setting:
CHROME_BIN=/c/Program\ Files\ \(x86\)/Google/Chrome/Application/chrome.exe export CHROME_BIN
That looks really simple, so why did I waste so much time shaving that yak? Well, setting the environment variable was one thing, but it didn't work before I also figured out to export
it.
Once again, I added these lines to my .bash_profile file. Now I can run Karma from bash on Windows.


Hello everybody... I love to learn new things. Playing with Python gives me great pleasure.
I wish to be a geek with great coding knowledge so that I can solve any kind of problem :). I hope, I would be able to fulfil all these wishes one day...


WITNESS LIST Finance Committee February 10, 1999-9:00A Adv. Comm. on State Emergency Commu On: Goerke, James D. (Advisory Commission on State Emergency Communications (ACSEC)), Austin Harris, Ron (ACSEC), Plano Spence, Carey F. (ACSEC), Austin Registering, but not testifying: On: Ellis, Michael (Poison Control Coordinating Committee), Galveston Hakkila, Dawn (ACSEC), Austin Ray, Jim (ACSEC), Austin Watson, William A. (South Texas Poison Control Center - UTHSC), San Antonio Williams, Lena C. (ACSEC), Dallas Aircraft Pooling Board On: Daniels, Jerry (Aircraft Pooling Board), Austin Registering, but not testifying: On: Clayton, Bill (Aircraft Pooling Board), Austin Ramsey, Don (Aircraft Pooling Board), Austin Attorney General's Office On: Baldwin, Howard G. (Office of the Attorney General's (OAG)), Austin Cornyn, John (OAG), Austin Kramptiz, Tom (Texas CASA), Austin Registering, but not testifying: On: Piper, Jane (Texas CASA), Austin Taylor, Andy (OAG), Austin Bond Review Board On: Hernandez, Jose A. (Texas Bond Review Board), Austin Registering, but not testifying: On: Roberts, Wayne (Office of the Governor), Austin Commission on the Arts On: Batiste, John Paul (Texas Commission on the Arts), Austin Ware, Connie (Texas Commission on the Arts), Marshall Registering, but not testifying: On: Chauveaux, Tony L. (Texas Commission on the Arts), Beaumont Hernandez, Ricardo (Texas Commission on the Arts), Austin McElwain, Gaye Greever (Texas Commission on the Arts), Austin Snell, Fred (Texas Commission on the Arts), Austin Workman, Mike (Texas Music Industry Council), Austin Comptroller of Public Accounts On: Hamilton, Billy (Comptroller's Office), Austin Rylander, Carole Keeton (Comptroller's Office), Austin Registering, but not testifying: On: Chapa, Robert (Comptroller's Office), Austin Curtis, Shari (Comptroller's Office), Austin Ellis, Dovie (Comptroller's Office), Austin Hudson, Steve (Comptroller's Office), Austin Welch, Kenneth (Comptroller's Office), Austin Ethics Commission On: Harrison, Tom (Ethics Commission), Austin Registering, but not testifying: On: Calem, William (Ethics Commission), Austin Madden, III, Wales H. (Ethics Commission), Amarillo Sturns, Louis (Ethics Commission), Arlington Fire Fighters' Pension Commission On: Campbell, Helen (State Firemen's and Fire Marshals' Association), Austin Rice, Joe (Fire Fighters' Pension Commission), Canyon Sandefer, Morris E. (Fire Fighters' Pension Commission), Austin Registering, but not testifying: On: Higgins, Mike (Texas State Association of Fire Fighters), Austin General Services Commission On: Crump, Jr., H.E. (General Services Commission (GSC)), Austin Flores, D.V. "Sonny" (GSC), Houston Matthews, Jerry (Texas Energy Coordination Council), Austin Moses, Fred (GSC), Plano Shull, Gene (GSC), Tyler Treadway, Tom (GSC), Austin Registering, but not testifying: On: Albright, Larissa (GSC), Austin Harvey, Tobin K. (GSC), Austin Hill, Cynthia J. (GSC), Austin Mullen, Carl (GSC), Austin Ponder, Judy (GSC), Austin Wiliams, Jerry D. (GSC), Austin Governor's Office On: Nedelkoff, Richard (Office of the Governor), Austin Reisman, David (Office of the Governor), Austin Tucker, Jerry (Office of the Governor), Austin Registering, but not testifying: On: Curry, Ronald E. (Texas Council on Workforce and Economic Competitiveness), Austin Johnson, Claire (Texas Council on Workforce and Economic Competitiveness), Abilene Meadows, Vickers B. (Office of the Governor), Austin Workman, Mike (Texas Music Industry Council), Austin Public Finance Authority On: Edwards, Kimberly K. (Public Finance Authority), Austin Kerr, John C. (Public Finance Authority), San Antonio


| Param | Type | Details |
|---|---|---|
| ng-model | expression | assignable expression to bind to |
| program-id | string | Name of the program id |
| Method | Return Value | Description |
|---|---|---|
| Initialize() | null | Initialize the directive |
| InitScope | null | Initialize the directive scope |
| EventListener($scope, $element, $attrs, $ctrl) | null | Allows to attach the javascript event. $scope - directive scope $element - directive element $attrs - directive attrs $ctrl - directive controller This function use to attach the event or create the instance for third-party resource. |
| DefaultInitDirective | null | Build the default behaviors |
| PointedToRecord(pRecord, event, rowScope) | null | This function allows to manipluate the record on pointed the record |
| SelectedToRecord | null | This function allows to manipluate the record on selected the record |
| ClearSelectedRecord | null | Clear the selected record, by default in the demo, mouse click on the <table> <tr> record will select that record. |
| ClearAllNRefresh | null | Clear all records and then go to the first page via call the GotoFirstPageRecord() |
| ClearNRefreshCurrentPage | null | Clear and refresh the current page records This function used in the in the pagination button |
| GotoFirstPageRecord | null | Display the first page records This function used in the in the pagination button |
| GotoPreviousPageRecord | null | Display the previous page records This function used in the in the pagination button |
| GotoNextPageRecord | null | Display the next page records, will try to send get records request if records not exists in the storage This function used in the in the pagination button |
| GotoLastPageRecord | null | Display the last page records This function used in the in the pagination button |
| CustomGetDataResult(httpResponseObj, httpResponseObj.status, $scope, $element, $attrs, $ctrl | null | httpResponseObj - promise httpResponseObj.status - http status code $scope - directive scope $element - directive element $attrs - directive attrs $ctrl - directive controller This will auto call after the response return in SubmitData() |
| LockAllControls | null | Lock all the form controls, includes the elements of input, button, textarea, select. This will auto call on the postLink() This will auto call on form submit |
| UnLockAllControls | null | Lock all the form controls, includes the elements of input, button, textarea, select. This will auto call after GetTableStructure() if the form is not view mode and delete mode, unlock the form when table structure obtained. This will auto call on failure of submit validation ValidateBuffer() This will auto call after data submitted SubmitData() |


Fisherman’s body washed ashore
He fell into the sea while anchoring a vessel on Thursday
by Special CorrespondentRAMANATHAPURAM
R. Rostan, a 23-year-old fisherman, who went missing after falling into the sea while anchoring a fishing vessel at Pamban, drowned and his body was washed ashore near Kurusadai island in Gulf of Mannar on Friday.
Rostan of Rochmanagar near Pamban was anchoring the fishing vessel after returning to the shore on Thursday afternoon when he fell into the sea. Other fishermen saw him falling into the sea from a distance, but before they could reach the spot, he went missing, they said.
As the water current was strong at that time, Rostan could not be rescued or traced immediately. Local fishermen, joined by the personnel of Indian Coast Guard and INS Parundu, Indian Naval Air Station, launched sea and aerial search operations, but could not trace him.
They resumed the search operation on Friday, when country boat fishermen found the body of Rostan washed ashore near Kurusadai island. After a post-mortem, the body was handed over to his family members in the evening, local fishermen said.
Traditional Fishermen Federation Coordinator S. Chinnathambi said Rostan’s family lost the breadwinner and urged the government to pay compensation to it.


I know that I recently posted a hiatus notice - and yes, it was belated, because I have been distracted by other things. But I'm trying to recreate my development environment now to see if I can get started again. (The problem I was having was with the VM I had been using; I've since switched software and moved to my desktop, and it is working well so far.) So I've deleted the notice and am going to get started on (at least) monthly updates.
A few new features I want to include, and pitfalls that I know I need to deal with:
I have several next steps to take; I am trying to decide what order to tackle them in. For instance, I definitely want to refine the dropdown menus, make them pop up in exactly the right place. This is a common and somewhat annoying CSS issue, judging from the research I've done.
Secondly, and more importantly, I want to create different levels of access. Basic users - the most common role - would simply be able to view information and request information that is not already there. Admins would be able to alter user information - delete inactive user logins and track when people have logged into the app. And I don't have a name for the third role yet - I'm thinking Researcher - but it will be a role that can add, edit and delete products and commodities themselves. When we started this project we saw examples of a company going to an outside researcher to find out exactly what was in an item. I want a role to enable that.I cannot currently work on this with the tools that I have now. I no longer have access to a web server that I can use to make sure that the various site features work, or to hold the database that I would need to retrieve and test data.


Toggle navigation
IMAGE
My Favorite
My Carts
Search
Homepage
Hello,xxx
Help center
My Orders
Function Zune
Sort
< 1day
< 10day
< 1 mon
Others
Car
Bags
Clothes
Mans
Children`s
Old
Female
Girl
Women
Shoes
Women
Man
Children
Electronic gadget
Camera
Smart Phone
Ipad
ThinkingPad
None
Rows per page:
2
3
4
5
6
7
8
9
10
15
20
30
40
50
100
200
300
400
500
1000
Order by:
Descendent
Remember parameters
Save
Advanced Set
My Order List
The Princess Dress
Beijing Duck
People Public 100
Diff Shoes
Delicious Drink
Camera
Weapon
Sword
The Tickets
Linux
«
1
2
...
3
4
»
Commodity Info
The Princess Dress
Xl
:Size
Blue
:Color
Princess Dress
:Type
Number:
1
Price:
1000
Total Price:
100
State Info
Seller State
Have Sent Coms
Buyer State
Have cashed
Dealer State
being done
Carriage State
Carriage Info
Refund
Please choose the reason of refund
The attitude of Seller
Carriage Time
Too Slow
The Color of Comms
Other Reason
No reason
Refund
Refund State
Refund Success
Comment
Leave a Review
Cancel
Save


Ruby Hashes vs JavaScript Objects - 11/15/2015
Differences in the Data Structures
Hashes in Ruby and objects in JavaScript are very similar. In fact, I found it helpful to think of them synonymously when starting JavaScript, having a background in Ruby, to figure out how objects work. However, they aren't quite the same, and from what I can tell, the main differences are found in syntax.
Hashes
Ruby hashes are data structures. They store information in pairs with a key and a value. Using the key when accessing information in a hash, we can access the value associated with it. In this way, a key can be thought of in similar terms to a variable assigned to a value. Keys and values can be any type of object, whether they be integers, strings, variables, and symbols. While "hash rockets" (=>) can be used in hashes when calling a value from a key, colon notation is more common. It should be noted that the keys with colons after them are symbols in Ruby. Here's an example below:
my_info = {
name: "Sabrina"
age: 22
hometown: "Denver"
}
Objects
Javascript objects are also data structures. In fact, they also look quite similar in terms of syntax, storing information in name/value pairs. Here's an example, using the same data I used above, just in JavaScript rather than Ruby.
var my_info = {
name: "Sabrina",
age: 22,
hometown: "Denver"
};
As you can see above, there are a few differences. First, you have to declare the object as a variable using "var". If you do not do this, JavaScript won't be able to read the object. Also, there is more puncuation involved. For instance, good practicees for JavaScript dictate that commas should appear after each value (some Ruby style guides recommend you do this wish hashes as well, but I have not used them before). Also, there needs to be a semi-colon after the closing curly brace, just so JavaScript recognizes this as the end of the code block. Also, since there is no hash rocket alternative in JavaScript, the names with colons in JavaScript are not symbols. Also, names, unlike keys, can only be strings or variables. Values, just like values in hashes, can be integers, strings, and symbols.
Calling information from these structures
The other main difference in these structures stems from how you access the values stored within. In Ruby, if I wanted to call the value contained in the key name, it would look like this:
my_info[:name]
#this would return
"Sabrina"
If I wanted to access the value from the my_info object in JavaScript, the notation would look like this:
my_info.name
#this would return
"Sabrina"


DefineTerrainTile()
语法
DefineTerrainTile(#Terrain, TileX, TileY, HeightMap$, FlipX, FlipY)概要
Defines the content of a tile in the terrain grid.
参数
#Terrain The terrain to use. TileX The tile x index, relative to the center tile of the terrain. The center tile starts to 0,0. The value can be negative. TileY The tile y index, relative to the center tile of the terrain. The center tile starts to 0,0. The value can be negative. HeightMap$ The name of the height map image to apply to this tile. FlipX If sets to #True, the image will be flipped on horizontally. If sets to #False, no horizontal flip will be performed. FlipY If sets to #True, the image will be flipped on vertically. If sets to #False, no vertical flip will be performed.
返回值
无.
参阅
CreateTerrain()
已支持操作系统
所有


Home
Dashboard
Patient Record
Patient Record
iamarefugee
Patient History
Medications
Date
Medicine
Dosage
Visit Notes
10 Apr 2016
Insulin
5ml
note
4 Apr 2016
Statin
Once a day
note


QUESTION: {{{prompt}}}
NOTE: The solutions are expressed in RegEx pattern. Udacity uses these patterns to check the given answer
{{{this}}}


50x Error
The server is aware that it has encountered an error below
500 Internal Server Error
A generic error message, given when no more specific message is suitable.
502 Bad Gateway
The server was acting as a gateway or proxy and received an invalid response from the upstream server.
503 Service Unavailable
The server is currently unavailable (because it is overloaded or down for maintenance). Generally, this is a temporary state.
504 Gateway Timeout
The server was acting as a gateway or proxy and did not receive a timely response from the upstream server.


public class acr35
extends CordovaPlugin
| Modifier and Type | Field and Description |
|---|---|
private byte[] |
apdu
APDU command for reading a card's UID
|
private boolean |
firstReset
Is this plugin being initialised?
|
private boolean |
firstRun |
private AudioManager |
mAudioManager |
private Context |
mContext |
private AudioJackReader |
mReader |
private int |
timeout
Timeout for APDU response (in seconds)
|
private Transmitter |
transmitter |
| Constructor and Description |
|---|
acr35() |
| Modifier and Type | Method and Description |
|---|---|
private java.lang.String |
bytesToHex(byte[] buffer)
Converts raw data into a hexidecimal string
|
boolean |
execute(java.lang.String action,
JSONArray args,
CallbackContext callbackContext)
This method acts as the bridge between Cordova and native Android code.
|
private boolean |
maxVolume()
Checks if the device media volume is set to 100%
|
private void |
read(CallbackContext callbackContext,
int cardType)
Sets the ACR35 reader to continuously poll for the presence of a card.
|
private Transmitter transmitter
private AudioManager mAudioManager
private AudioJackReader mReader
private Context mContext
private boolean firstRun
private boolean firstReset
private final byte[] apdu
private final int timeout
private java.lang.String bytesToHex(byte[] buffer)
buffer:
- raw data in the form of a byte arrayprivate boolean maxVolume()
private void read(CallbackContext callbackContext, int cardType)
callbackContext:
- the callback context provided by CordovacardType:
- the integer representing card typepublic boolean execute(java.lang.String action, JSONArray args, CallbackContext callbackContext) throws JSONException
action:
- the command sent by the Cordova applicationargs:
- the command arguments sent by the Cordova applicationcallbackContext:
- the callback context provided by CordovaJSONException


Home
About Me
Education
Comment
MY EDUCATION
Drag the image into the box
To know more, select a site below to browse:
UTeM
Sk Kerandang
Smk Tengku Mahmud
SK KERANDANG BESUT, TERENGGANU (2007-2010)
SMK TENGKU MAHMUD, BESUT, TERENGGANU (2011-2015)
UNIVERSITI TEKNIKAL MALAYSIA MELAKA (2016-2019)
UNIVERSITI TEKNIKAL MALAYSIA MELAKA (2019-2021)


8. Contributions
There are a number of people who have helped with this project. If I’ve forgotten you please remind me so I can add you to
this list. Let me know if you’d like to tune your name or add link to your home page here as well.
Thanks much to them all.
- Kevin Galligan was the impetus and the author of a good bit of the Android compatible code. He wrote the Android level support
classes and did a ton of beta-testing of it. He’s also provided the initial Android examples. See http://www.kagii.com/.
- JC Romanda has been an excellent addition to the user base providing feedback, discovering and reporting bugs, providing patches
for new features, testing new features before the release, and thinking a lot about how ORMLite can be extended and improved.
- Nelson Erb was our self-appointed documentation and testing volunteer for a year. He did a great job summarizing sections of
this document so we could create a better ’Getting Started’ section. He also fleshed out a bunch of unit tests to improve coverage.
- Craig Andrews and Pedro Velasco has been very quick with feedback, bug reports, feature requests and other help.
- Jim Gloor was one of the Java gurus at a previous company. His great object instincts and the JDBC code samples helped start this
project.
- Robert Adamsky was a colleague of mine at a company where he laid out our entire DAO and hibernate class hierarchy. The
DAO
interface and the BaseDaoImpl
where in some part modeled after his code.
- Thanks much to the following folks for their bug reports, unit test submissions, memory analysis, code samples, feature
requests, improvements, and general feedback:
51mon,
Adam Brown,
AlexPal,
Ali Aksakarya,
Andre,
Andrea Sprega,
Andreas,
Andrew Sleeman,
Andrew8er,
Andrey,
Anthony Whitlock,
Bart,
Ben Mosher,
Candlejack,
Carlos Fonseca,
Casey,
Chad Schultz,
Chase,
Chris Banes,
Chris Nevill,
Christian Ruppert,
Dale Asberry,
Daniel Colchete,
Daniel Jette,
Diederik,
Eric Fung,
Evan Grim,
Farrukh Najmi,
Filipe Leandro,
Flo,
Guillermo Campelo,
HeDYn,
Howard Liberty,
Ian Dees,
Javier Hinmel,
Jaxelrod,
Jaykob,
Jean-Maxime Pelletier,
Jeremy Mcjunkin,
Jeremy Stone,
Jeroen Rakhorst,
Joao Bosco,
John Kristian,
Johny Jugianto,
Jomble,
Jonathan Caryl,
Joseph Jones,
Josh Guilfoyle,
Kaan,
Kyle Lampert,
Larry Hamel,
Lder,
Livelazily,
Lstrzelecki,
Luke Meyer,
ManosProm,
Mariak Kalman,
Mark Rogers,
Markus Wiederkehr,
Mathias Lin,
Micael Dahlgren,
Michael,
Michael Weimann,
Ming Lin,
Miroslav Nadhajsky,
Mohammad Moghimi,
Nathan Jones,
Natinusala,
Nick Campion,
Nonameplum,
Outofrange,
Patras Vlad,
Pavel Arnost,
Patrick,
Pedro Velasco,
Rahan,
Ramps,
Richard Kooijman,
Roger Keays,
Roland Oldenburg,
Roman Zimmer,
Sebastian Roth,
Skylar,
Slava Tysianchuk,
Spacetime,
Stephen Couchman,
Stew,
Stewert,
Timo,
Tom Tantisalidchai,
Tony,
Tonyxiao,
Tsharp,
VincentFTS,
Vladimir,
Wayne Stidolph,
Wener,
Yossi Wasserman,
Birbird,
Coder sam,
Glenviewjeff,
Igromanru,
Jon,
Mjomble,
Nybblr,
Shikajiro,
Steffen,
Zachawilson
.
Thanks much to them all.
This document was generated by Gray Watson on February 19, 2018 using texi2html 1.82.


About Me
I am a senior at Bowdoin College in Maine studying Mathematics and Russian with a minor in Computer Science. I hope to become a web/software developer in the near future.
I am a senior at Bowdoin College in Maine studying Mathematics and Russian with a minor in Computer Science. I hope to become a web/software developer in the near future.
I have been learning computer science for just over a year. I know how to code in Java, C++, Objective-C, R, MATLAB, Assembly Language on the ARM processor and PDP-8, and now HTML, CSS, and JavaScript, as you can see by how awesome my website is. Some of my projects include using nature inspired algorithms to solve the travelling salseman problem and writing and designing an iPad snake game in Objective-C.
Address: Bowdoin College, 226 Smith Union, Brunswick, ME 04011 Phone:(617)717-9633 Email: alexandernfeinberg@gmail.com


Home
2 User Manual > 2.3 Execution > 2.3.5 Join Rules
prev
next
In @x:Act, it is necessary to define the value that results
from a sequence of expressions or commands. The rules for this are called join rules.
-
When a sequence of expression is empty then the result is the value null.
-
When a sequence of expressions has exactly one expression then the value is the value of that expression.
-
When an sequence of expressions has two expressions, and both have type string,
the result is the concatenation of those strings (see ++).
-
When a sequence of expressions has two expressions and one expression has value null,
then the result is the value of the other expression.
-
When a sequence of expressions has three of more expressions, then the first two expressions are
joined producing a sequence that is one element shorter.
That resulting shorter sequence is then joined.
Join rules are also used for @x:while and @x:for loops.
Here the result will be the join of all the body executions.


Buff Effect¶
The AI called “buff-effect” is an ai which lets your spawned pet apply potion effects to their owner in a configurable interval.
Requirements¶
This ai is a pathfinder based ai, which is only active when the pet is spawned and walking beside the player.
Configuring in your config.yml¶
config.yml
type: 'buff-effect'
tag: 'my-buff-effect'
cooldown: 5
effect:
potion-type: 'SPEED'
duration: 5
amplifier: 0
ambient: true
particles: true
particle:
name: 'reddust'
amount: 20
offx: 0
offy: 255
offz: 0
sound:
name: 'NOTE_PLING'
volume: 10
pitch: 2.0
Properties¶
- Type: Unique identifier of the ai.
- Tag: Optional tag to identify a specific ai configuration.
- Cooldown: Cooldown until a pet applies the defined potion effect again
- Effect: Potion effect configuration.
- Effect.potion-type: Type of the potion effect
- Effect.duration: Duration of the potion effect in seconds
- Effect.amplifier: Amplifier of the strength of the effect
- Effect.ambient: Visible ambient effects
- Effect.particle: Visible particles
- Particle: Particle effect
- Sound: Sound effect


This is a matching game. When you hover over a face down card, The card number will be read back. When you click on a card, you will be read back the card value. When you click two cards in a row, you will be given "set completed" or "not a match" message. When you finish matching, you will be met with a congratulatory statement with two options, Replay or Continue.
This is a spelling game. You will be presented with a word. When you hover over this word, it will be repeated back to you. Underneath the word is a button. When you hover over this button, you are met with the message, "Click to enter input". When you type your answer and press enter, you will be presented with either "Incorrect" or "Correct". If you are incorrect, you will be met with an "Incorrect" message and prompted to continue imputing until it is correct. When you are correct,you will be met with a "correct" message and be given a new word to spell. After you have spelled 5 words correctly, you are met with a congratulatory statement with two options, Replay or Continue.
This is a math game. You will be presented with an equation adding 2 numbers that are lower than 10. Underneath will be a button when hovered over reads the message, "Click to enter input". When your mouse hovers over the equation, it will be read out to you. When you type your answer and press enter, you will be presented with either "Incorrect" or "Correct". If you are incorrect, you will be met with an "Incorrect" message and prompted to continue imputing until it is correct. When you are correct,you will be met with a "correct" message and be given a new equation. After you have answered 5 equations correctly, you are met with a congratulatory statement with two options, Replay or Continue.


Council and GAA still working together on Castlebar centre plans
MAYO County Council and the GAA are continuing to work together on plans for a facility at Lough Lannagh in Castlebar.
Council officials were questioned at a meeting this afternoon (Monday) on whether or not the ongoing controversy surrounding Mayo GAA will impact on the multi-million euro centre of excellence project.
Chief executive Peter Hynes said as of right now the council is still working with the GAA. It was not clear it would have any negative impact on it.
He was responding to a query from Ballina-based Councillor Mark Duffy who said the saga was in the media every day.
The ambitious project, which is a collaborative partnership between Mayo County Council with Mayo GAA, will see a 27-acre site developed at Lough Lannagh for sport, tourism and recreation.


Do you know that saying "measure twice, cut once"? Well
there should be an addition to that "if there are marks on the
object then use a different color to mark the length". So
working on the additional alternator that we added there is a
bolt that is too long for all the adjustment to be made, simple
enough to just cut the eye bolt. Mark the bolt, take the
next 30 minutes to hacksaw it, put it back on and find out it is
too short. Ok just get a new eye bolt and try again, well
this eye bolt is a "high strength ball joint rod end" and there
are a special order for the local businesses. Ok the next
option is to find McMaster Carr phone number, order a new one
and hope it gets in prior to leaving the anchorage, the next
day. It did and the uncut/full length and working fine.
Another valuable lesson learned on the "What If" :).
We stopped at Cumberland Island which is the southern most
island in Georgia and is a state park and has a wild horse
population. We sailed overnight from Beaufort SC and came
into the anchorage in the early morning, 7:30am and promptly
went to sleep for the next few hours. Well Dean and Kris
did because they had been up for the sailing part but Derek was
all rested and ready for a new day. By noon we were all
ready to go ashore and walk the park, the dogs included.
The horses were seen from the boat, and on shore we saw the
horses as well. They look like any other horse - well a
horse is a horse of course of course.
We then went down the ICW to the Kingsley Plantation, a state
park in Florida, we finally made it to Florida and the sun was
shinning and the temperature was warm :). The plantation
was educational to walk around and learn about the activities of
the plantation. Bob off Baloo has some eagle eyes and as
we motored down the ICW would point out Bald Eagles and Manatee,
we could spot the dolphins but the Manatees were hard to spot.
The next stop was only 30 miles down the ICW but we wanted to
have an easy trip into St. Augustine so this stop was in
preparation for the next day. But not to let a good thing
go unused Anne on Baloo made a turkey dinner and Kris made
mashed potatoes, biscuits, and an pineapple upside down cake.
The group did not go hungry and then we were in good shape to
play UNO attack, not sure who won but we sure had a good time
playing.
Yesterday we made the short hop into St. Augustine, FL and
anchored in the river. There will be laundry, shopping, a
trip to West Marine for parts for the water maker, a trip to the
Volvo ship store for oil filters and a general wandering around
town to look at the Spanish influenced architecture. Right
off our anchor is Fort "Castillo de San
Marcos" which is the oldest masonry fort in the US, and they
fire cannons and muskets through out the day as they give
tours of the fort.
Update 11/17/11, into Florida and the sun :)
The special bolt


{% extends 'base.html'%} {% block content %} Settings for {{filename}} Email: Speaker Options: Multiple Speakers One Speaker Per Channel Number of Speakers Language: US English British English Australian English Spanish US Spanish Italian French Candian French Brazilian Portuguese German Modern Standard Arabic Russian Korean Indian English Indian Hindi Mandarin Chinese Pay ${{cost}} & Begin Transcription! {% endblock %}


sc_core::sc_trace_file Class Reference
#include <sysc/tracing/sc_trace.h>
List of all members.
Detailed Description
Definition at line 83 of file sc_trace.h.
Constructor & Destructor Documentation
| sc_core::sc_trace_file::sc_trace_file |
( |
|
) |
|
| virtual sc_core::sc_trace_file::~sc_trace_file |
( |
|
) |
[inline, protected, virtual] |
Member Function Documentation
| virtual void sc_core::sc_trace_file::cycle |
( |
bool |
delta_cycle |
) |
[protected, pure virtual] |
| virtual void sc_core::sc_trace_file::delta_cycles |
( |
bool |
flag |
) |
[virtual] |
| const sc_dt::uint64& sc_core::sc_trace_file::event_trigger_stamp |
( |
const sc_event & |
event |
) |
const [protected] |
| virtual void sc_core::sc_trace_file::set_time_unit |
( |
double |
v, |
|
|
sc_time_unit |
tu | |
|
) |
| | [pure virtual] |
| virtual void sc_core::sc_trace_file::space |
( |
int |
n |
) |
[virtual] |
| virtual void sc_core::sc_trace_file::trace |
( |
const unsigned int & |
object, |
|
|
const std::string & |
name, |
|
|
const char ** |
enum_literals | |
|
) |
| | [pure virtual] |
| virtual void sc_core::sc_trace_file::write_comment |
( |
const std::string & |
comment |
) |
[pure virtual] |
Friends And Related Function Documentation
The documentation for this class was generated from the following file:


{{ define "title"}} {{ .Site.Title}} {{end}} {{ define "header"}} {{ partial "header" .}} {{end}} {{ define "main"}}
KubeEdge is an open source system for extending native containerized application orchestration capabilities to hosts at Edge.It is built upon kubernetes and provides fundamental infrastructure support for network, app. deployment and metadata synchronization between cloud and edge.
Kubeedge is licensed under Apache 2.0. and free for personal or commercial use absolutely. We welcome contributors!
The Kubeedge project is dedicated to making an open platform, which is built upon kubernetes and provides fundamental infrastructure support for network, app. deployment and metadata synchronization between cloud and edge.
Eclipse Mosquitto is an open source (EPL/EDL licensed) message broker that implements the MQTT protocol versions 3.1 and 3.1.1. Mosquitto is lightweight and is suitable for use on all devices from low power single board computers to full servers.
Building and deploying new applications is faster with containers. Docker containers wrap up software and its dependencies into a standardized unit for software development that includes everything it needs to run: code, runtime, system tools and libraries. This guarantees that your application will always run the same and makes collaboration as simple as sharing a container image.
Significantly decrease the volumes of data that must be moved, reducing transmission costs, shrinking latency between the data and the decision, improving quality of service.
Offer container runtime based application management capability, you can deployment application from your image and shield system difference. Same code can be run on a device or in cloud, and you can code in any language you know and use existing business logic without any change.
KubeEdge is built upon kubernetes and provides fundamental infrastructure support for network, application anagement and metadata synchronization between cloud and edge. Edge side decision, data analysis result, device status can be easily upload to cloud side for further analysis, data statistic, data visualization.
You can easily get and deploy complicate machine learning, image recognition, event processing and other high level applications to your edge side. Get them from the community, create modules and make them available to the community.


Please Register
Error! You incorrectly entered one or more of the required criteria. Please try again or contact your systems administrator.
Error! You incorrectly entered one or more of the required criteria. Please try again or contact your systems administrator.


Saavari Admin
Login
Contact
About
Please Enter SAVAPI API URL here to connect the Web Appplication
Connect to API
Username
Password
Login
Remember me
Cancel
Forgot
password?


Top 5 Fall Hikes
These are our five favourite fall hikes with the most colorful leaves and beautiful views!
These are our five favourite fall hikes with the most colorful leaves and beautiful views!
Make sure you check the weather and current conditions for this hike - even in the summer there is usually snow! Read this post to make sure you're fully geared up to hike up to this beautiful lake that feels like it's on top of the world.
The best spot to check out BC's golden larches - and the closest! Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean euismod bibendum laoreet.
Our essential guide to your layering system - the fall edition!  Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean euismod bibendum laoreet.
Here is your ultimate hiking gear checklist, including the Ten Essentials and our favorite hiking snacks!
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean euismod bibendum laoreet. Proin gravida dolor sit amet lacus accumsan et viverra justo commodo.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean euismod bibendum laoreet. Proin gravida dolor sit amet lacus accumsan et viverra justo commodo.


Upcoming Events
List out events here
Add Event


b:radioBox The radioBox tag renders an HTML "input" elements of the type "radio". This component is designed for situations where you want to display a mutually exclusive list of options to the user as a set of radio buttons.
string Add single f:selectItem for each string value
enum Add f:selectItems for enum value
object Add f:selectItems for object value and corresponding converter
template Add object as values and add templace facet
Change it and see JSF example.
Adds f:ajax as child to component.
Change it and see JSF example.
Override toString() of Foo.java to handle rendered values.
#{radioBoxShowcase.tooltip}
{{title}}
({{originalAirDate}})
No. {{numberInSeries}} of Stargate - Kommando SG-1, Season 1


These guidelines provide detailed examples for using Ninf-G. In addition to the instructions on Ninf-G given in Chapters 2 to 9, also see the sample programs.
Ninf-G software helps the development and execution of parallel task application working on a computational Grid consisting of multiple clusters. Ninf-G was developed to utilize various Grid middleware like the Globus Toolkit. In order to exercise this tutorial, the required software has to be properly installed and ready for use in all the machines (clusters). Required software includes a batch scheduler (for clusters), the Globus Toolkit (optional), SSH (optional) and Ninf-G. An outline of the batch scheduler, the Globus Toolkit and Ninf-G is given below.
These functions are important for the management and use of large-scale clusters, and in fact most large-scale clusters have introduced batch systems and require users to always use the batch system. Portable Batch System (PBS) and Sun Grid Engine (SGE) are widely used as batch systems.
Globus Toolkit is software package that provides UNIX commands and API of C and Java to implement some of the functions necessary for the development and execution of Grid software and applications. Currently, Globus Toolkit Version 4 is released and Ninf-G Version 5 supports Globus Toolkit Version 4.
In general in Pre-WS GRAM, Globus Gatekeeper runs on the entrance host of each cluster and sets a jobmanager, which activates jobs on the computation hosts with help of a batch system such as PBS or SGE, as a default jobmanager. In other words, unless a jobmanager is explicitly specified, jobs are activated on the computation hosts through the batch system. The computation hosts are utilized through Globus Gatekeeper on the entrance host and the jobmanager, since Globus Gatekeeper is not running on the computation hosts.
Ninf-G is the supporting software for the development and execution of programs with the Grid Remote Procedure Call (GridRPC) on Grid. Here we explain the Ninf-G Version 5 (Ninf-G5). Ninf-G provides simple, yet powerful, client-server-based frameworks for programming on the Grid. Ninf-G has been designed so that it provides 1) high performance in a large-scale computational Grid, 2) rich functionalities which are required to compensate for the heterogeneity and unreliability of a Grid environment, and 3) an API which supports easy development and execution of Grid applications. For the details of Ninf-G, see Chapt. 2 "How to use Ninf-G" of this document and "Ninf-G Users Manual" (in the package, or Web page).
Ninf-G allows you to carry out the following tasks.
Simply speaking, Ninf-G does not provide the following functions. The following are the functions that should be set, if necessary, in the programs using Ninf-G.
In Chapter 3 and the following chapters, the procedure for actual use of Ninf-G is described based on the sample programs. Firstly, we rewrite a sequential C program of non Ninf-G type to a program that uses Ninf-G, and gradually sophisticate the utilization of Ninf-G.
In this and the following chapters, use the sample programs to check the procedure.
We define the technical terms that will be used in this and the following chapters and explain the terms necessary for using Ninf-G.
The user is the one that creates Ninf-G based programs.
RPC function means in Ninf-G a function that actually carries out numerical computation. It is executed on a computational server and requires computational resources (CPU time and memory) on the server for the execution. The user should create an RPC function and can use the functions that other users made (share the RPC functions). (Users should set a function that requires the computational resources as an RPC function.)
It is a program or a process that calls RPC functions and controls the entire computation. The Ninf-G client program should be created by users.
Ninf-G Executable is a program to perform numerical computation as an RPC function. It is activated when a function handle is created from the Ninf-G client. When activated, it waits for start request for the execution (computation) of the RPC function.
There are two types of Ninf-G Executable: One that can define only one RPC function and does not retain the function call state i.e. does not retain the result of the previous function call, and the other that can define more than one RPC function (method) and retain the result of the previous function call. The latter is called the Ninf-G remote object.
A machine on which users execute the Ninf-G client program
A machine on which users execute the Ninf-G server program
It is grpc_function_handle_t
type data prepared
or created by the Ninf-G client to call the RPC function.
It is an abstraction of the connection (communication path)
between the Ninf-G remote object and the Ninf-G client.
A computational server name needs to be given for creating a function handle. A function handle has one-to-one correspondence with the Ninf-G Executable process activated on the computational server.
It is grpc_object_handle_t_np
type data prepared
or created by the Ninf-G client to make the Ninf-G remote object
and call a method function.
It is an abstraction of the connection (communication path) between
the Ninf-G remote object and the Ninf-G client.
A computational server name needs to be given for creating an object handle. An object handle has one-to-one correspondence with the Ninf-G Executable process activated on the computational server.
IDL is an abbreviation of Interface Description Language and defines, in an IDL file, the input/output type and order for the RPC function call
In Ninf-G IDL, object files (ending with .o) and others can be specified to make a link for the actual computational processing procedure and execution of the function described in IDL.
The Ninf-G server program and NRF file are created based on this user-created IDL file.
NRF file is a file containing information of a Ninf-G Executable, such as path and arguments of the Ninf-G Executable.
NRF file is created when the IDL file is compiled and the Ninf-G Executable is created on the server machine. Ninf-G Client retrieves information of Ninf-G Executable from the NRF file when its attribute is specified in Client Configuration file.In the following command line explanation, there are lines starting with "%" or "$". The symbols mean a command prompt on various shells. If the line starts with "%", the command is executed on csh (C shell) or tcsh. If the line starts with "$", the command is executed on sh (Bourne shell) or bash.
In this document, the following operating environment is assumed.
The above machine names are just tentative and do not exist. Replace them with the actual machine names users use to edit and execute the samples.
The sample programs are listed below.
The directory of each sample program is presented on the right side of the symbol ":".
Users should prepare the following files to use Ninf-G and the sample programs include them.
Before the execution of the sample programs, make the following modification.
Change "example.org" in the file to the host name of the server actually used.
You need to set user environments for Ninf-G prior to the execution of Ninf-G applications. In addition, if you use the Globus Toolkit, you need to set user environments for the Globus Toolkit. The configuration of Globus Toolkit and Ninf-G is necessary on every login, although you do not have to set manually every time if you write the procedure in advance in the file, such as .cshrc, .login, .profile or .bashrc that the shell loads on each login.
If the Invoke Server GT4py (WS GRAM) or GT2c (Pre-WS GRAM) is used, Globus Toolkit must be available.
For the user environment of Globus Toolkit, see Globus Toolkit manual. Configuration of Globus Toolkit Version 4, for example, should be set in the following steps.
$ GLOBUS_LOCATION=[directory where Globus Toolkit is installed]
$ export GLOBUS_LOCATION
$ . $GLOBUS_LOCATION/etc/globus-user-env.sh
(Configuration for csh or tcsh)
% setenv GLOBUS_LOCATION [directory where Globus Toolkit is installed]
% source $GLOBUS_LOCATION/etc/globus-user-env.csh
User configuration of Ninf-G should be set in the following steps.
$ NG_DIR=[directory where Ninf-G is installed]
$ export NG_DIR
$ . $NG_DIR/etc/ninfg-user-env.sh
(Configuration for csh or tcsh)
% setenv NG_DIR [directory where Ninf-G is installed]
% source $NG_DIR/etc/ninfg-user-env.csh
Before running Ninf-G Client, preparation is required on the client machine.
If the Invoke Server GT4py or GT2c is used, Globus proxy certificate is required.
% grid-proxy-init
'Enter passphrase'
The command grid-proxy-init
is not necessary for all
the executions of the client programs.
The command does not have to be executed again until
the created proxy certificate will be expired.
You can confirm the status of your proxy certificate by
grid-proxy-info
command.
You should test the Globus GRAM. If the remote WS GRAM or Pre-WS GRAM server (for example, server01.example.org) is available, the following test should be succeeded.
(for WS GRAM server)
% globusrun-ws -submit -F https://server01.example.org:8443/ -s -c /bin/hostname
(for Pre-WS GRAM server)
% globus-job-run server01.example.org /bin/hostname
If the command is successful, the command outputs the hostname of the server.
If Invoke Server SSH is used, remote shell execution without password or passphrase must be possible.
For example, SSH Agent is used for this case.
(for sh or bash)
$ eval `ssh-agent`
$ ssh-add
'Enter passphrase'
(for csh or tcsh)
% eval `ssh-agent -c`
% ssh-add
'Enter passphrase'
The ssh-agent command does not have to be executed again during the agent is alive and the user does not logout.
If a SSH daemon in the remote server (for example, server01.example.org) is available, the following test should be succeeded.
% ssh server01.example.org /bin/hostname
If the test is successful, the command outputs the hostname of the server without entering password.
The sample program which does not utilize Ninf-G is available in the "serial" directory.
This sample program is a sequential program to compute the circle ratio using the Monte Carlo method. In the Monte Carlo method, a dot is randomly placed within a square whose side length is 1. Check if the distance between the origin and the dot is shorter than 1. The circle ratio can be obtained by repeating these steps a number of times.
The circle ratio is derived from the following equation:
Circle ratio = the number of dots whose distance from the origin is shorter than 1 / total number of dots x 4
In this method, the computation precision of the circle ratio varies with the number of dots. The number of dots should be increased to improve the precision.
Placing dots within the square requires some computational capacity, and more capacity is needed to achieve a higher precision result. Ninf-G uses RPC to improve the utilization of the computational capacity.
In the simple execution of the programs created by not utilizing Ninf-G, pi_serial.c, only one CPU can be used as computation power or resource. However Ninf-G allows simultaneous/parallel use of multiple computational servers and can produce more dots in the same computation time. Consequently, a more precise result could be obtained.
A function suitable for RPC is one that can start computation
only with the information provided as input,
just like pi_trial()
function used in this program.
Execute the program in the following steps.
% cd serial
% make
The execution file "pi_serial" is created.
% ./pi_serial 100000
The computed circle ratio is displayed as a result. Here 100000 is the number of dots and you may enter an arbitrary number.
The first example uses a synchronous call.
A server program is invoked by a client program. The client and the server run on different machines.
| Sample program | : | 1server |
| Server machine | : | server01.example.org (Step 5.1) |
| Client machine | : | client.example.org (Step 5.2) |
Change to the sample program directory before proceeding.
% cd 1server
Login on the server machine and go to the directory 1server. Follow the below steps.
% ng_gen pi.idl
% make -f pi.mak
(The above steps, i.e. server setup (1) and (2), are given in Makefile.
So the execution of the 'make stub
' command will also follow the same
procedure.)
The NRF file "pi.server01.example.org.nrf" that contains the server machine name is created simultaneously. This file is used by Ninf-G client.
% ng_cc -o pi_client_1server pi_client_1server.c
(The above steps, i.e. client setup (1), are given in Makefile.
So the execution of the 'make pi_client_1server
' command will
also follow the same procedure.)
The file "pi.server01.example.org.nrf" in the directory on server01.example.org, where Ninf-G Executable is compiled, must be copied to the client machine client.example.org.
% scp server01.example.org:/path/to/pi.server01.example.org.nrf .
(In this case the command scp
is used for copying.
It is a program included in SSH
(Secure SHell: Remote operation command with coded communication path).
Here scp
copies the remote file into
the current directory. )
Edit client.conf file.
(Use the text editor like vi
and emacs
command)
#
.
% ./pi_client_1server 10000 server01.example.org
pi_client_1server receives the number of dots and the server host name in the arguments.
It should be noted that a single activation of a job requires more than several seconds if the Globus Toolkit is used. Most of the time is caused by the overhead of the Globus Toolkit such as authentication and authorization by GSI and process invocation via the Globus jobmanager. Job activation corresponds to the creation of a function handle for Ninf-G, and therefore the creation of a function handle takes more than several seconds.
This means, even if the actual RPC calculation time is less than 1 second, the execution of the client program takes more than several seconds. But the overhead can be negligible for large-scale applications.
Also, this waiting time varies depending on the batch system and queuing system of jobs. In some scheduling of the batch system, the activation of jobs may not start immediately and may have to wait until other jobs end.
1server/pi_client_1server executed in this chapter is a program modified from the one explained in Chapter 4.
The Ninf-G server program for calculating PI is
defined in the IDL file, pi.idl.
To be more precise, the program is modified so that
the pi_trial()
function can be used as
an RPC function and executed through Ninf-G.
Also in the modification, the pi_trial()
function is called
from an IDL file and the RPC function pi_trial()
defined in the IDL is called from the Ninf-G client program.
A procedure for calling the defined RPC function
pi_trial()
is also added in the Ninf-G client program.
The added procedure calls the following GridRPC API functions.
grpc_initialize()
, grpc_finalize()
grpc_function_handle_init()
,
grpc_function_handle_destruct()
grpc_call()
This GridRPC APIs enable RPC model computation with Ninf-G.
With these steps, it is confirmed that the Ninf-G client program activated on client.example.org requests server01.example.org to execute PI library function.
The client machine and the server machine can be located at geographically separated locations. As seen here, the computation of using remote computation resources over the network can be performed with Ninf-G.
Next, the operation of Ninf-G is tested with the API of asynchronous call.
Two server programs are invoked by a client program. The client and the server run on different machines. Parallel computation is realized by distributing the job to the two computational servers.
| Sample program | : | 2servers |
| Server machine 1 | : | server01.example.org (Step 6.1) |
| Server machine 2 | : | server02.example.org (Step 6.1) |
| Client machine | : | client.example.org (Step 6.2) |
Move to the sample program directory before proceeding.
% cd 2servers
Login each server machine and follow the steps in 5.1. (Since Makefile contains the rule, the execution of the make command will create the server program.)
Modify pi_client_1server.c, used for test in Chapter 5, for executing asynchronous computation. (Modified source file is pi_client_2servers.c.)
Login the client machine and make an operation.
% ng_cc -o pi_client_2servers pi_client_2servers.c
The files "pi.server01.example.org.nrf" and "pi.server02.example.org.nrf" in the directory on server01.example.org and server02.example.org, where Ninf-G Executable is compiled, must be copied to the client machine client.example.org.
% scp server01.example.org:/path/to/pi.server01.example.org.nrf . % scp server02.example.org:/path/to/pi.server02.example.org.nrf .
Edit client.conf file.
#
for both servers.
% ./pi_client_2servers 10000 server01.example.org server02.example.org
pi_client_2servers receives the number of dots and the server host name in the arguments.
With these steps, it is confirmed that the usage of the API for asynchronous GridRPC call on the Ninf-G client program.
The API for synchronous GridRPC call used in the previous Chapter is a blocking call and the API will not return until the server completes the computation and the client receives the results from the server. Therefore, the Ninf-G client can do nothing until the API will return.
The asynchronous GridRPC call is a non-blocking call and
it does not wait for the end of computation by the server.
Therefore, the Ninf-G client is able to call other functions
immediately after calling grpc_call_async()
with
regardless of the status of the computation by the server.
For example, you can call grpc_call_async()
for
another server after calling grpc_call_async()
.
It is required to call waiting functions such as
grpc_wait()
or its variants
(e.g. grpc_wait_all()
) for waiting the end of
the computation and receive the result from the server.
Asynchronous GridRPC call is usually used for the implementation of task-parallel applications, i.e. calling multiple asynchronous GridRPC calls simultaneously on different servers enables to implement task-parallel applications.
In this program, the computational servers share the dots, whose total number is specified in the command line argument, and carry out the computation in parallel.
Therefore the computation time of this program with two servers is smaller than that with a single server. If the number of the dots is of the order of 10,000, the computation ends immediately and the effect of parallelization is not clear. However if the computation takes a long time such as one day, multiple server computation reduces the computation time significantly. The more computational servers we have, the smaller the computation time is.
A cluster system usually has multiple computational servers (computational nodes). The jobs submitted to the job submission node of the cluster system are allocated to each computational node and executed in the system.
To use more than one computational node from Ninf-G, a function handle needs to be created for each of the nodes.
The creation of one function handle takes at least several seconds, and that of more than one function handle takes time proportional to the number of the handles to be created. Also, a Globus Toolkit jobmanager process is activated in the entrance host every time the request for creating a function handle is submitted. So the entrance host will be overloaded if more than several tens or more than several hundreds of function handles are created in the simple way, i.e. by making the handle one by one. To prevent the overload, Ninf-G has a function to create more than one function handle simultaneously when it receives a single request for the creation of the handles. With this function of Ninf-G, the creation time is saved and a large number of (several tens to several hundreds of) function handles can be created.
A test on using this function is conducted in this chapter.
| Sample program | : | array |
| Server machine | : | server01.example.org (Step 7.1) |
| Client machine | : | client.example.org (Step 7.2) |
Move to the sample program directory before proceeding.
% cd array
Login the server machine (cluster management node) and make operations following the steps in 5.1.
pi_client_2servers.c, used as the sample in Chapter 6,
is modified with API grpc_function_handle_array_init_np()
to create more than one function handle simultaneously.
(The source file obtained by the modification is pi_client_array.c.)
grpc_function_handle_init()
is changed to a single call for
grpc_function_handle_array_init_np()
.
% ng_cc -o pi_client_array pi_client_array.c
The file "pi.server01.example.org.nrf" in the directory on server01.example.org, where Ninf-G Executable is compiled, should be copied to the client machine client.example.org.
% scp server01.example.org:/path/to/pi.server01.example.org.nrf .
Edit client.conf file.
#
.
% ./pi_client_array 10000 server01.example.org 4
pi_client_array receives arguments of the number of dots, server hostname, and the number of handles.
"4" at the end of the command line represents the number of function handles to be created. Here the number is set to 4, although it is not necessarily 4. If the cluster system you use is shared with other users, pay attention to the number of the created handles and be sure to use the system insofar as it is allowed.
This program uses "Simultaneous creation function of function handles" to suppress the overhead in the creation of function handles and keep the number of the jobmanagers activated in the entrance host as small as possible. This function is needed for the usage of a large size cluster system with tens to hundreds processors.
Ninf-G Executable is state-less. Namely, even when the RPC function is called repeatedly with the same function handle, the state in the previous call is not retained in Ninf-G Executable. So, data needs to be sent for each computation even in the repeated computations with the same data.
Ninf-G provides Ninf-G Executable, as a remote object, capable of retaining states. More than one function (method) can be defined in the remote object, and the object provides a function for Ninf-G client to call these methods.
For use of the remote object capability, object handles,
not function handles, should be created.
Object handles are the grpc_object_handle_t_np
type data
and abstraction of the connection (communication path)
between Ninf-G remote object and Ninf-G client.
Once an object handle is created,
the corresponding remote object retains the state
until the object handle is discarded.
It can also call various methods to change the state
for the object handle.
For example when the input data of RPC is extremely large and the same input data is used in the call for every RPC, the remote object capability can be effectively utilized. Once an initialization method sending the large input data is called just one time after each handle is created, and saved in Ninf-G Executable, the large input data need not to be transferred again in the subsequent calls for RPC and the system performance is improved.
The following is another example of the implementation of methods in Ninf-G class.
Arguments are given. The given arguments are stored in the data holding area.
The data in the holding area is used to execute Computation 1. The result is stored in the data holding area and not returned.
The result in the data holding area is used to execute Computation 2. The final result of Computation 2 is returned to the client.
| Sample program | : | object |
| Server machine | : | server01.example.org (Step 8.1) |
| Client machine | : | client.example.org (Step 8.2) |
Move to the sample program directory before proceeding.
% cd object
The IDL file pi.idl used in Chapters 5-7 is changed to an object. (The source file obtained in the modification is pi_object.idl) Edit pi_object.idl.
% ng_gen pi_object.idl
% make -f pi_object.mak
pi_client_2servers.c, used as an example in Chapter 6, is modified to a form that executes computation using Ninf-G remote object capability. (The source file obtained in the modification is pi_client_object.c)
% ng_cc -o pi_client_object pi_client_object.c
The file "pi.server01.example.org.nrf" in the directory on server01.example.org, where Ninf-G Executable is compiled, should be copied to the client machine client.example.org.
% scp server01.example.org:/path/to/pi_object.server01.example.org.nrf .
Edit client.conf file.
#
.
% ./pi_client_object 10000 server01.example.org
pi_client_object receives arguments of the number of dots and server hostname.
Parallel programs written in MPI can be set as RPC functions in Ninf-G. This feature allows the programming to perform fine-grained parallel processing with MPI on a server machine that are called in remote procedure call, in addition to the master-worker type parallel task programming mentioned in the above.
| Sample program | : | mpi |
| Server machine | : | server01.example.org (Step 9.1) |
| Client machine | : | client.example.org (Step 9.2) |
Move to the sample program directory before proceeding.
% cd mpi
The IDL file pi.idl used in Chapters 5-7 is modified to a form that uses MPI. (The modified source file is pi_mpi.idl)
Edit pi_mpi.idl.
A code for exchanging the given arguments and computation results through MPI communication is added to carry out computation at each rank of MPI.
% ng_gen pi_mpi.idl
% make -f pi_mpi.mak
pi_client_1server.c used as an example in Chapters 5 is modified to a form that uses MPI for executing computation. (The source file obtained in the modification is pi_client_mpi.c)
grpc_call_async()
.
% ng_cc -o pi_client_mpi pi_client_mpi.c
The file "pi.server01.example.org.nrf" in the directory on server01.example.org, where Ninf-G Executable is compiled, should be copied to the client machine client.example.org.
% scp server01.example.org:/path/to/pi_mpi.server01.example.org.nrf .
Edit client.conf file.
#
.
If the Invoke Server SSH is used, detailed MPI configuration must be specified by the user, although it is configured by a system administrator for the Globus Toolkit WS GRAM and Pre-WS GRAM. For example, MPI command path, a command argument specifying the machine file must be specified by client configuration file.
A sample Client Configuration file (mpi/client.conf) is for Invoke Server SSH and MPI configuration. See 4.4.3 Invoke Server SSH section on Ninf-G Users Manual for details.
% ./pi_client_mpi 10000 server01.example.org
pi_client_mpi receives arguments of the number of dots and server hostname. The number of CPU used here is set in mpi_runNoOfCPUs in the section SERVER of the configuration file as described in (4). There are several other ways in Ninf-G to set the number of CPU for MPI. For details see the Ninf-G Users Manual.
MPI is famous as a parallel programming model in existing parallel systems. It has the advantage that existing MPI programs can be executed on a Grid in their original forms with Grid-compatible MPI implementation such as MPICH-G2. On the other hand, it is difficult to ensure co-allocation in a Grid, i.e. to undertake simultaneous activation of all MPI processes at the start of the program execution, although MPI requires the co-allocation. Some functions such as process spawning may help the co-allocation to a certain extent, although in principle the processors and the number of processes MPI uses are determined statically and the dynamical property of the Grid is not entirely compatible with MPI. It is one of the most attractive features of Grids to carry out a large size application in a large-scale environment for a long time, while it is important to pay attention to what should be done in case of system failures, e.g. hardware failure of computation hosts. However with MPI, all program executions are terminated if an error occurs in a single process. In this sense, MPI is not completely fault-tolerant.
GridRPC is a programming model that can circumvent the above problem. GridRPC does not always require the co-allocation, and resources can be rather easily added/released dynamically by the dynamical creation/destruction of function handles. Also, an error in a computational host has no influence on the computation executed in other hosts, and therefore one can easily deal with failures by terminating the troubled computation or by sending the request again.
MPI is a popular programming model for parallel computation. Under the current circumstances, however, even the programs that are not suited for MPI are often written with MPI. The most suitable programming model should be selected according to the characteristics of the implemented application. To implement an application that executes more than one independent computation with distributed resources on Grid, GridRPC should be used. (At least MPI should not be used.) Both advantages of GridRPC and MPI can be utilized for the implementation of a large-scale application by combining them to use MPI for computation with frequent detailed communication and Ninf-G for computation with infrequent communication.
Past questions and cautions are listed below.
Q. Creating a function handle with
grpc_function_handle_init()
API requires the server's name.
Can I omit the domain name in the server's name,
or do I have to use the domain name?
A. The domain name is necessary.
When creating a function handle and client configuration file, you have to use FQDN (Fully Qualified Domain Name) to set the server's name and cannot use "localhost". If the server's name is not properly specified with FQDN, Ninf-G API is terminated with an error.
For example when you use a server of the domain name server.example.org, you cannot specify the server's name simply as "server" but have to use "server.example.org".
Q. I made and executed an Ninf-G based client program, but it hasn't executed properly. It seems the execution of Ninf-G API failed. What is the cause?
A. Ninf-G has a customizable function for log output.
By making log-related settings in the client configuration file and the server configuration file, you get the output of the information on the error in the execution of Ninf-G API as well as on debugging. The output can be set to a file.
With this log function you can check the execution status of Ninf-G API and trace the cause of the failure in the execution of API.
For details of log function settings, see Ninf-G Users Manual in the package or Web page.
(Log output setting for client: Section 4.3.5)
(Log output setting for server: Section 3.3.2, 4.3.10)
(Log output setting for External Module: Section 4.3.5)
The log output messages will appear in the following order.
"Date and time:Client/Server:Host name:Log level: ID of each data structure:Name of Ninf-G internal function:Log message"
Every Ninf-G API returns the value of grpc_error_t
that presents success or failure of the execution.
User's programs should be written to include a function
for checking these values.
If the computation function executed with Ninf-G Executable results in Segmentation fault, the coreDumpSize attribute of the section <SERVER> in the client configuration file might be enabled.
"Request to Invoke Server XXX(0) failed"
mean?Q. The function/object handle creation is terminated with an error. What is the cause? In the error log, the following log message appeared.
"QueryFeatures: Request to Invoke Server XXX(0) failed"
A. The Invoke Server XXX may exit immediately after the invocation for some reason. To investigate this problem, set the client configuration file invoke_server_log attribute on <CLIENT> section and run the Ninf-G Client again.
The error reason might appear in the Invoke Server log file.
For example, Invoke Server GT2c will exit immediately if the
grid-proxy-init
was not performed in advance.
"Unexpected job_done"
mean?grpc_call() or grpc_call_async() terminated with an error. What is the cause? In the error log, the following log message appeared.
...:Error: ... : Invoke Server XXX(0) Job failed.
...:Error: ... : Unexpected job_done was occurred.
A. The error message "Unexpected job_done"
indicates an error in Invoke Server XXX.
To investigate this problem, set the invoke_server_log attribute
on <CLIENT> section and run the Ninf-G Client again.
Q. The function/object handle creation terminated with an error. What is the cause? In the error log, the following log message appeared.
...:Error: ... : Can't get information for hostname="..." classname="..." from the Information Services.
A. The Information Service couldn't find the Ninf-G Executable information. Setting loglevel to Warning may output more detailed information. information_service_log attribute on <CLIENT> section might be also effective.
Check the following items.
Q. When I used Ninf-G, a file "gram_job_mgr_[numerics].log" was created in the server's home directory. What is this file?
A. This file is a log file from GRAM, a job execution module of Globus Toolkit Ninf-G uses.
GRAM activates jobmanager process in the same timing of job execution. The jobmanager process detects the completion and executes forced termination by monitoring the job.
The jobmanager eliminates the log file if the job ends normally, but does not if any error occurs or the job execution is canceled. In the latter case, the log file of GRAM remains in the home directory.
If Ninf-G client is terminated by e.g. ^C key
after grpc_function_handle_init()
API creates
a function handle and before
grpc_function_handle_destruct()
destructs the handle,
the job corresponding to the handle is cancelled.
A file gram_job_mgr-[numerics].log remains in the home directory of the server as a result of such abnormal terminations.
You may delete the file if you do not need to find the cause of the job termination.
Q. I would like to create a Ninf-G based program, I don't know how to write. Is a sample program available?
A. Ninf-G based sample programs are available in the Ninf-G package.
Ninf-G can be downloaded from the web page:
http://ninf.apgrid.org/packages/welcome.shtml
Download Ninf-G package from the web page.
The package contains sample programs.
| samples/pi | : | Monte Carlo computation for obtaining circle ratio |
| samples/add | : | Addition of arrays |
| samples/pi_wait_any | : | Computation with the use of asynchronous GridRPC API. |
| samples/pi_mpi | : | Computation with the use of MPI |
| diag | : | Exhaustive test to check if Ninf-G can be used with no problem. |
Q. After making a function handle, I would like to use it for more than a few days. What should I be aware of?
A. If you use Invoke Server GT4py or GT2c,
pay attention to the valid term of the Globus temporary certificate.
The command grid-proxy-init
generates
the temporary certificate with the valid term
set to 12 hours unless given specifically.
There are two ways to use function handles for more than 12 hours.
-valid
option of grid-proxy-init
command.
Q. It is difficult to debug Ninf-G Executable because it is activated remotely. Is there any convenient method of debugging?
A. Ninf-G has a debugging function for Ninf-G Executable.
Set debug_busyLoop, debug, and coreDumpSize in the section <SERVER> of the client configuration file. For details see the Users Manual.
The log output function is enabled also in the debugging operation. Both client and Ninf-G Executable can output a log and can check every change in the operation status of Ninf-G API.
Q. The following message appeared in the log output in Ninf-G client. Is there any problem?
"... heartbeat timeout warning (60 seconds) occurred ..."
A. It does not always mean a problem.
Heartbeat is a Ninf-G function to detect if the Ninf-G Executable process is running with no problems, if the system is not freezing, and if the network has any problems.
Ninf-G Executable sends the heartbeat periodically to the client. If the network or Ninf-G Executable freezes, the heartbeat cannot be transferred from Ninf-G Executable to the client.
If the heartbeat does not reach the Ninf-G client within a certain period of time, the client considers that the Ninf-G Executable (function handle) has a problem and cannot be used, and puts out an error. Then the function handle cannot be used any more. The RPC in execution returns with an error.
For the sake of this function, the Ninf-G client can detect failure without freezing, and the users can make a trouble-resistant, fault-tolerant program.
Suppose Ninf-G Executable transmits the heartbeat every 60 seconds. The warning of the heartbeat appears if the Ninf-G client does not receive the heartbeat for 60 seconds. So, the warning appears even when a slight delay of Ninf-G Executable processing causes the delay in periodic heartbeat transmission. It is therefore not certain that this warning status should be determined as a failure.
In the default setting, the interval of the periodic heartbeat transmission is 60 seconds and the failure judgment is made after the client does not received the heartbeat for 60 seconds x 5 =300 seconds. (For details see the Users Manual.)
If the following message is displayed after the heartbeat warning, it means the recovery of the heartbeat transmission.
"... heartbeat revived again ..."
Q. I want to use Ninf-G. Is a shared memory function available in Ninf-G? Is it possible to share the variables in Ninf-G Executable?
A. Ninf-G does not have a shared memory function. A variable sharing function for Ninf-G Executable is also not available.
Q. Can I set the compiler and linker?
A. Yes you can. Compiler, Linker and others are available in IDL file syntax.
Q. I made a function handle but the job is not executed
immediately and grpc_call()
API
and grpc_call_async()
API stop.
How could this happen?
A. It can happen.
For example, if the cluster that the job goes to already has many users and other user's jobs are preferentially executed, your job has to wait until the other jobs end. So the execution of jobs does not always starts immediately.
If you want to place a limit on the execution time for your job, set the job_startTimeout attribute in the section <SERVER> of the client configuration file.
Q. What is the workDirectory attribute that can be set in the client configuration file?
A. workDirectory is used to specify the directory in which the Ninf-G Executable process operates.
In default Ninf-G Executable operates in the directory in which the Ninf-G Executable program is installed. Use workDirectory to change this directory.
If a relative file name is specified in an RPC function or computational function to open a file, the file is searched starting from the workDirectory and opened.
In case of a Segmentation fault due to a computational function failure, a core file, which is a memory image at abnormal termination, is sometimes created. This core file also goes to the directory specified in the workDirectory.
The absence of the specified workDirectory causes an error. So you need to be careful.
You may need to be careful if the job submission node and the job execution computational node are different in the cluster system. Due to the restriction of Globus Toolkit, an error occurs if the workDirectory exists in the computational node but not in the job submission node.
Q. Character strings are put out from
printf()
or fprintf()
in IDL files or computational functions,
but the output result is not sent to the client.
There is a setting "redirect_outerr true" in the section
<SERVER> in the client configuration file.
Why isn't it sent?
A. Ninf-G uses the stdout/stderr transfer function provided by each Invoke Server (for example, Globus Toolkit GASS for Invoke Server GT2c) to send stdout and stderr of the computational functions.
Output is sometimes not transferred when the job is cancelled. In case of Ninf-G, jobs are cancelled for safety if an error such as abnormal disconnection occurs in the connection to the corresponding handle.
Output is also not transferred if Ninf-G client
is terminated by e.g. exit()
before
the execution of grpc_function_handle_destruct()
.
Q. Login to the job submission node (e.g. server01.example.org), which is a designated host for the creation of function handles, is not permitted in my cluster system, and I cannot compile Ninf-G Executable in server01.example.org. So the NRF file for server01.example.org is not created. How can I make the file?
A. NRF file is a text file and users can rewrite the content.
For example, you can obtain a NRF file for server01.example.org in the following way.
First, compile the IDL file for RPC on a host (ex. client.example.org) other than server01.example.org. Then a NRF file for client.example.org is created.
Then, modify the obtained NRF file with a text editor. Modify all the lines in the NRF file that contain the host name. (Change client.example.org to server01.example.org.)
The file name of the NRF file also contains the host name, although it has no influence on the client execution. To prevent confusion, change the file name to server01.example.org.
There is another way to create NRF files. If the compilation host and the target host share the same environment, (including executable path of the Ninf-G Executable directory), with the following steps you can create NRF files. This is because the Ninf-G tries to get the local hostname by NG_HOSTNAME environment variable, firstly.
% ng_gen target.idl
% env NG_HOSTNAME=server01.example.org make -f target.mak
The NRF file created in the above steps should be specified in the Ninf-G client configuration file.
Users are fully responsible for the modification of the NRF files.


------------- Second Best ------------- (UK/USA 1994)
German title: "Probezeit"
Directed by Chris Menges; With William Hurt, Chris Cleary Miles, Keith Allen, Jane Horrocks, Nathan Yapp, Alan Cumming
**** out of **** (A MASTERPIECE)
A wonderful little movie that is really interested in its characters and in its theme.
The scene of "Second Best" is laid in Wales. James (Chris Cleary Miles) is a 10-year-old boy who must live in a home because his father (Keith Allen) is in prison and his mother committed suicide.  He can't forget what happened in the past, and he dreams of living a happy life with his beloved father. In the home he feels sadly and lonely. One day, a social worker (Alan Cumming) tells him of a person who wants to adopt him. This person is Graham Holt (William Hurt). Graham manages a post office and shop in a village. He is a single and hasn't any real friends.  Graham feels that he has been a disappointment to his parents. There has never been real love between his parents and him. Graham's monotonous life would get a new sense if he could adopt James. But Graham has not only to convince the institutions, but must also win the love of James. James and Graham have to open theirselves. They must get to know each other and learn to understand and trust the other person. James and Graham aid each other to cope with their problems. But will their relationship really have a future?
"Second Best" is based on a novel by David Cook who also wrote the screenplay. The film was directed by Chris Menges who had made his directing debut with the very good anti-Apartheid drama "A World Apart" (1987/88). And maybe, "Second Best" is even a greater picture.
This precise, richly detailed, sensitively and convincingly directed study about a special adoption treats its theme with great seriousness. The breathtakingly intense film shows the necessity of human contact and communication. William Hurt delivers an outstanding performance as Graham Holt. And Chris Cleary Miles is remarkably convincing in the role of the boy. The supporting cast is also fine (especially Jane Horrocks as Debbie, a social worker who is charged to examine Graham's living circumstances).
"Second Best" is an underestimated masterpiece. It's a pity that films like this one are made so seldom.
I eagerly await Menges' next directorial work, "The Lost Son", which will star Daniel Auteuil.
(C) Karl Rackwitz (Germany, 1998)
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


---
layout: post
title: Big Hole
description: Storyboard depicting Big Hole Battle, for the US Army Cavalry Museum
date: '2019-02-06 10:31:26 +0100'
categories:
- Storyboards
- Sketches
---
August 9–10, 1877. Big Hole Battle. Col. John Gibbon attempts to attack the Nez Percé camp by surprise. Note the howitzer machine gun, later to be dismantled by the crew under attack. Storyboard for the US Army Cavalry Museum, Fort Riley, Kansas.


{{$root := .}} Go to group: [no group selected] {{range .Groups}} {{.Comment}} {{end}} New Group: {{if .Current.GroupID}} Delete group Save


Master in education, researcher in the area of learning mediated by games and intergenerationality in UMA / UFT. Game Designer and producer, specialist in software production by UFLA / MG. Coordinator of technological and educational innovation projects, working in game design clubs, applications, robotics, audiovisual and virtual reality based on creative education. Co-organizer of Global Game Jam 2019, in Palmas, Tocantins. Researcher at the Educational Technologies Group of the IFTO, Paraíso campus, and the Laboratory of Didactic and Technological Resources of the Pedagogy course at UFT, Creative Learning group in Tocantins. Idealizer, Director, Producer and Animator in Studio Gedja3D. IT Analyst at Seduc-TO. BlenderPro 2013 organizer at UFT.