The Go Ahead Boys and the Racing Motor-Boat
by Ross Kay
Chapter 1
Additional Information
- Year Published: 1916
- Language: English
- Country of Origin: United States of America
-
Source:
Kay, Ross. (1916).
. New York: Goldsmith.
-
Readability:
- Flesch–Kincaid Level: 5.2
- Word Count: 1,936
- Genre: Adventure
- Keywords: life experiences
- ✎ Cite This
Downloads
“Here we go!”
“We’re off!”
“Look quick, or we’ll be out of your sight.”
The long, low motor-boat glided smoothly out from the dock to which it had been made fast. Behind it the water boiled as if it had been stirred by some invisible furnace. The graceful lines of the boat, its manifest power and speed, formed a fitting complement to the bright sunshine and clear air which rested over the waters of the Hudson River.
On the dock, which the Black Growler was leaving so rapidly behind her, were assembled various members of the families represented by the four boys on board the motor-boat. Younger brothers and sisters, two uncles, several aunts, not to mention the various fathers and mothers united in a final word of farewell. Handkerchiefs were waved and the sounds of the last faint call came across the intervening waters.
The Black Growler was leaving Yonkers to be gone more than a month. The trip was one to which the Go Ahead boys had looked forward with steadily increasing interest.
In the first place the boat belonged to Fred Button, one of the quartet. Fred now was at the wheel and the expression of pride on his face as he occasionally glanced behind him at his companions was one that indicated something of the feeling in his heart. And indeed there was a substantial basis for Fred’s pride. Among the many boats on the river the Black Growler moved as if she belonged in a class of her own. People on board the cat boats or yachts, and even the passengers on a great passing steamer, all stood looking with manifest interest at the dark-colored little boat which was speeding over the waters almost like a thing alive.
Fred Button, the owner and present pilot of the swift motor-boat was the smallest, or at least the shortest, of the four boys. His age was the same as that of his companions, all of whom were about seventeen. His round body and rounder face were evidences that in time what Fred lacked in length he might provide in breadth. Among his companions he was a great favorite and frequently was called by one of the several nicknames which his comrades had bestowed upon him. Peewee or Pygmy, the latter sometimes shortened to Pyg, were names to which he answered almost as readily as to his Christian name.
His most intimate friend of the four was John Clemens, whose nickname, “String,” indicated what his physique was. He was six feet three inches in height, although his weight was not much more than that of the more diminutive Fred. “The long and the short of it” the two boys sometimes were called when they were seen together.
Grant was the one member of the Go Ahead boys who easily led in whatever he attempted. His standing in school was high and his time in the hundred yards dash stood now as a school record. His fund of general information was so large that some years before, in a joke he had been dubbed Socrates. That expressive name, however, had recently been shortened to Soc.
George Washington Sanders, one of the most popular boys in his school, frequently was referred to as Pop, by which designation his friends indirectly expressed their admiration for one who, even if he bore the name of the Father of his Country, was laughingly referred to as the Papa of the Land. This nickname in the course of time had been shortened to Pop.
 One of these had been spent at Mackinac Island where their adventures had been chiefly concerned with Smugglers’ Island. Together they had made a voyage to the West Indies where their experiences on a desert island have been already recorded. Together they had investigated the mysteries connected with an old house near George’s country home, a place shunned by the country folk because of its reputation of being haunted. Another delightful summer had been spent by the boys in a camp in the Canadian woods. All these experiences had only prepared the way for the days which now were confronting them.
[1] See “The Go Ahead Boys and The Treasure Cave.”
[2] “The Go Ahead Boys and the Mysterious Old House.”
[3] See “The Go Ahead Boys and the Island Camp.”
Every one was confident that the Black Growler would give a good account of herself in the motor-boat races which were to be held on the St. Lawrence River. The grandfather of Fred Button, who was the fortunate owner of an island in the majestic river, had invited the boys to spend a month with him in his cottage. Incidentally he had explained that their visit would be at the time when the boat races occurred, which he had no question they all would greatly enjoy. He was unaware that Mr. Button had already purchased a motor-boat of marvelous speed, although at the time he had no thought that it would be entered in any contest or races.
Yielding to Fred’s persuasions at last his father had somewhat reluctantly given his consent for the boat to be entered, as well as for Fred to invite the other three Go Ahead boys to spend the coming weeks together on the island.
All these thoughts were more or less in the minds of the Go Ahead boys when the Black Growler swiftly started on her long voyage.
“Are you going to keep her going like this all the time?” demanded John as the swift little boat steadily continued on her way.

“She had better slow up than blow up,” retorted John.
“No danger of that,” laughed Fred. “The first thing you know we’ll be in the canal.”
“I hope not,” laughed Grant. “It will be a great day when the Go Ahead boys learn how to use the English language. You don’t mean ‘in’ the canal, you mean ‘on’ the canal.”
“Perhaps he means what my grandfather used to call the ‘ragin’ canawl’,” suggested Grant.
“Maybe we’ll be both IN it and ON it,” laughed Fred. “If we should happen to strike a rock or bump into another boat it wouldn’t be very hard to understand what would follow.”
“That makes me think,” said Grant solemnly. “Are you sure that you know how to steer? If we were traveling on the Erie Canal as they used to go soon after it was opened—”
“When was that?” broke in George.
“1825. The Erie Canal extended from Albany to Lake Erie and was constructed chiefly because DeWitt Clinton worked for it with might and main from 1817 to 1825.”
“Good for you!” laughed George, “It’s pretty hard to trip up old Soc when it comes to figures.  How long is the Erie Canal?” he added slowly.
“Three hundred and fifty and one-half miles, though I find some authorities give it as three hundred and fifty-two miles,” laughed Grant.
“Splendid! Splendid!” retorted George solemnly. “I suppose you know all about all the other great canals too.”
“I have looked them up,” replied Grant simply. “I don’t believe in starting off on a trip like ours without finding out some of the facts connected with it.”
“Don’t ask me! Don’t ask me!” protested John quickly. “I haven’t been looking them up, so I don’t know.”
“I didn’t say I was going to ask you,” retorted Grant. “I told you I was going to inform you. I looked them up for the benefit of my benighted companions. Now there’s the Cape Cod Canal,” he added.  “I suppose we’ll have to have it,” he added solemnly, “so the sooner we get it out of the way the better. Tell us and have it over with.”
“The Cape Cod Canal,” said Grant as he looked sternly at John, “is eight miles long, it is twenty-five feet deep and one hundred feet wide.”
“My, now I am almost ready to go back home!” said George solemnly. “I cannot imagine finding out anything more important than that. Have you noticed these Palisades we have been passing? Did you ever see anything more beautiful than the river? Pretty soon we’ll come to the Highlands and to West Point and I want to say to you right now, Soc, that I would rather know about these things than I would to hear about a ditch that is one hundred feet wide and twenty-five feet deep and eight miles long. What’s the good of knowing that anyway?”
“I shall try to improve your mind before we come back home,” said Grant, shaking his head.
“You don’t expect to accomplish much in just a month, do you?” interposed George.
“Not much more than to get ready to prepare to begin to start to commence on the contract.”
“My, what a fluent talker my friend is!” said George. “He never is at a loss for a word. It doesn’t make any difference to him whether he knows what it means or not.”
“Never mind your old facts and figures,” spoke up Fred. “I want you to notice that big black yacht yonder. Isn’t she a beauty?”
“She is that,” replied Grant with enthusiasm. “I can almost make out her name,” he added as he looked through the field-glasses. “There it is C-a-l-e-Caledonia,” he added quickly.
“They have got quite a good many people on board,” suggested George as he noticed a group of boys and girls near the rail, who apparently were as deeply interested in the motor-boat as the Go Ahead boys were in the big, black yacht.
“Let’s have a race with her,” suggested George. “Start her up, Fred, and see if the yacht will try to keep up with us.”
Fred laughingly complied with the request, although neither of his companions had any suspicion of the many experiences they were to have with the passengers and crew of the Caledonia before either vessel returned to New York.


Greedy algorithm: In such an algorithm, optimal choice is made locally at each state hoping that it leads to a global optimal solution.
The problem has to exhibit the following two properties for it to be solved optimally using greedy approach:
• Greedy choice property
• Optimal substructure
Knapsack problem comes with a set of items. Each item has a weight and value attached to it. The solution involves finding the items whose collection leads to the maximum value while keeping within the maximum possible weight limit.
Fractional knapsack problem allows breaking the item to add a fraction of it so as to have the maximum total value possible. The algorithm involves sorting the items in decreasing order of and then adding them in a greedy fashion according to the sorted order. When adding the next item isn’t possible anymore due to the size of the knapsack, break the item and add a fraction of it.
Greedy Choice Property: If g1 is the first greedy choice, then it should be part of an optimal solution.
Let there be a total of n items.
The set of items be denoted by.
Weight of the items is denoted by
Values of the items are denoted by.
Let the optimal solution be called which includes the following items .
Let the solution created using greedy approach be denoted by and includes the items .
The item has the maximum ratio. Therefore, its inclusion will give better total value than any other item. So, it should be present in the optimal solution.
Objective of this step is to show that g1 is part of an optimal solution O.
Since this is fractional knapsack problem, it allows fraction of the items to be added, so, there are two cases:
• is an integer
• is a fraction
Case1: is an integer
• If the item is already present in the optimal solution O, then the greedy solution is optimal till now atleast.
• If the item is not present in the optimal solution O, then it should be added to the optimal solution, so remove some items from O worth the weight equal to. Then put the item in its place. This creates a new solution called.
Case2: is a fraction of an item
The weight to be included is.
• If part of item is already present in the optimal solution O, then the greedy solution is optimal till now atleast.
• If anything less than part of item is present in the optimal solution O, then it should be added to the optimal solution, so remove some items from O worth the weight equal to. Then put the part of item in its place. This creates a new solution called.
But the solution is already optimal solution. So this improvement couldn’t have created any better solution. However, the new solution should be atleast as good as because of the addition of. So the new solution is exactly as good as the solution as it can’t be better than an optimal solution. So is in itself an optimal solution. Thus, the greedy choice is part of an optimal solution.
Hence, it is proved that fractional knapsack problem has the greedy choice property.
Optimal substructure of 0-1 Knapsack Problem
• If a problem exhibits optimal substructure, the problem can be solved using dynamic programming.
• 0-1 knapsack problem exhibits the optimal- sub structure property. Thus, if thief selects a most valuable item i from n items, then the thief can select optimal set of most valuable items from the reaming (n-1) items such that the weight at most W-wi. Where, each item is associated with a value (v) or price and a weight (w) and W is the maximum capacity of the knapsack.
Therefore, we can solve the 0-1 knapsack problem using recursive structure.
Recursive definition for 0-1 knapsack problem:
• Consider that V[i,w] is the optimal value for items 1,2,3,...,i and the weight is at most w.
• Now, define a recursion structure such that an item i is selected , if an optimal value can be selected form the remaining items and their weight is at most w-wi. Otherwise, the item i does not selected and optimal values are selected form the reaming 1,2,…i-1 items up to the weight w.
This can be represented using a recursion as follows:
Where is the value of the item i.
Dynamic algorithm for 0-1-Knapsack problem:
• Consider n items of weights and values and a maximum capacity of knapsack(W).
• The following algorithm computes and stores the optimal solutions in the table whose entries are computed in a row-major order. At the end of the computation, V[n,w] contains the maximum value that can be picked into the knapsack.
0-1-KNAPSACK-DYNAMIC (W,n,v,w)
//Let V[0…n,0…W] is the new array to store solutions
1 for w=0 to W
2 V[0,w]= 0
3 for i=1 to n
4 V[i,0]=0
5 for w=1 to W
6 if
7 if
8
9 else
10
11 else
12
13 return V
The value V[n,W] is the required solution. The algorithm traces the table V to find the set of items that are part of the solution.
Time complexity:
The two nested for loops in the lines 3 and 4 runs (n+1).(W+1) times and computes the entries of the table V. Thus, obviously the running time of the above algorithm is.
Hence, the ru nning time of a 0-1 knapsack algorithm is .
Consider the following greedy-type algorithm to find an optimal solution to the given variant of the knapsack problem.
Assume that denotes the items with the and as their values and weight respectively. Suppose that the maximum knapsack weight is given as. Then,
Now consider the linear-time algorithm to find the optimal solution to the given variant of the knapsack problem.
Greedy-Type-Algorithm:
//Initialize the knapsack weight
1
// Initialize the content of knapsack with NULL
2
//for loop is used for iteration till less than equal to
3
//if conditional statement is used to check” is the sum of weight is less than
//or equal to the maximum knapsack weight”.
4
//if the above if condition is true then increase the weight
5
6
The above algorithm finds the optimal solution to the given variant of the knapsack problem. The proof of correctness of the algorithm generally consist two steps:
• The greedy choice property.
• The optimal substructure property.
The greedy choice property:
• Assume that the knapsack load is denoted as. Therefore, it can be shown that the one can assume without losing of generality.
• Actually, if , assume the smallest index of an item of be .
• Now, consider the packing.
• As, , then , therefore will be a legal packing.
• In the same way, which implies that. Therefore, will also be optimal.
The optimal substructure property:
• Now consider for the optimal packing which consists, the packing is optimal for the given item and .
• Actually, if is not optimal, which a user can enhance the original packingby enhancing.
The algorithm satisfies both greedy choice and optimal substructure properties.
Therefore, the algorithm is correct and finds the optimal solution to the present variant of knapsack problem.
Algorithm to find the shortest possible root using greedy approach
The optimal strategy of the given scenario should be a Greedy one.
Suppose there is k refilling locations beyond the start that are within m miles of the start. The greedy solution chooses the kth location as its first stop. No station beyond the kth works as a first stop.
Since Professor Gekko would run out of water first. The professor will try to cover the maximum distance before his water runs out.
At Grand Forks, the professor has all the possible routes in front of him.He now first eliminates the stops which are more than m miles away from him.
From the rest of the stops, he will choose the stop that traverses the maximum distance that is less than m.
Doing this for all the further stops, the Professor will be able to stop at minimum stops.
The algorithm for this is given below:
The algorithm below gives the minimum number of water stops that the professorcan go through.
MIN-WATER-STOP(N)
1 //Initialize the distance of current stops to 0
distance_current = 0;
2 //for loop to trace all the stops
For stops 1 to n
3 //condition to check whether the distance is more than 2 miles.
if (distance_current + distance_to_next_stop> 2 mile)
4 //Mark the current stop, means the stop should be there
mark_current_stop();
5 //Make increment in the number of stops
number_of_water_stops++;
6 //Make the distance_current equal to 0 so that in other iteration the distance
//remain 0
distance_current = 0
7 else
8 //add the distance of next stop in the current distance.
distance_current = distance_current + distance_to_next_stop;
9 //after calculating the stops, return the number of marked stops.
Return marked_stop
In the algorithm given above, the water stop is made by professor if the distance between the upcoming refill and last refill is more than 2 miles. If he can easily reach to next stop, there is no need to make any stop there.
So, this leads to the property of sub-optimality, this property makes m number of minimal stops.
Suppose that there exists another solution with requirement of m–1 stops. It is not possible to cover the distance when a stop is omitted because the water will not be there. It is because the distance will become more than 2 miles.
If the number of available stops is represented by n, the complexity of the algorithm can be calculated as below:
If n=1, then the loop would be running only one time making the time:
If n=2, then there would be 2 repetitions of the loop and the time taken would be:
…
…
For the n repetitions of the loop there would be n calculations and the time taken would be equal to
Thus the running time of the algorithm for n stops would be.
This greedy algorithm can be described to solve the finding unit intervals problem. At each stage, it finds an interval and a new optimal set to solve (smaller than earlier set), which contains the elements not covered in the interval.
The following algorithm describes who to find the smallest set of unit-length interval that covers all the points in the given set.
Algorithm:
1. Sort the points in the given set of points on real line X =.
2. The first interval is . Add the interval to a set UI, which is initially empty.
3. Remove all the points, which are not covered in the unit interval .
4. Repeat step 2 and 3 until the given set is not empty.
5. Return the set UI, which is the small set of unit-length closed intervals that covers all the points in the given set X.
Pseudo code:
GREEDY-FIND-UNIT-INTERVALS(X)
1. Sort the points in the set X such that
2. Let UI be the set and initially UI=
3. while X ≠ //repeat the loop until the set X is not empty
4. = smallest number in the set X // =first element in X
5. //add the unit interval to UI
6. for i=0 to X.length
7. if and
8. remove the point from the set X
9. return UI
Proof of correctness:
Since the given set is sorted, = x1, where x1 is the first element in the given set X. Then each time an interval is found. That is, each time at least one element(x1) is removed from the set and a new sub problem or a subset (i.e. =- x1 ) is produced. Therefore, each time the algorithm produces an optimal solution (a unit-length interval). When the set X is empty, the set UI contains the set of unit-length intervals that cover all the given points.
Optimal substructure is important for greedy algorithms. The above GREEDY-FIND-UNIT-INTERVALS algorithm have optimal substructure, because each time a unit interval is found from the subset, the final solution is the union of all the intervals found in the sub problems.
Consider n be the number of items, valuable load, and the weight of the item j in the knapsack fractional problem.
Use a linear-time quicksort- like median selection algorithm to calculate the median m on the ratio , for every .
Sorting these ratio into decreasing order and added the item into the knapsack greedy.
Initially start, with largest ratio and then added the items int the left blank space.
If there is any space left, then fractional of these items until to fit the knapsack.
Knapsack problem requires running time is O(n log n) due sorting the step.
Avoid the sorting step, using the quicksort-like median selection algorithm to solve the knapsack problem in the linear time.
Consider the set be the ratio of valuable load/ weight.
Suppose, input of the knapsack: A set of m of n ratios, with knapsack capacity W.
Assume expected output: A set of items, to show the optimum solution of knapsack.
There are some steps to solve the fractional knapsack problem into the O(n) time.
Step 1: Choose an element k from the set m, using quicksort-like median selection algorithm.
Step 2: Evaluate these cases one by one is as shown below according to the condition and set the fraction maximization knapsack value:
Case 1:
Case 2:
Step 3: When at most valuable load weight W1 and remaining the weight w.
if W 1 > W
then recursive the case 1, and after that return the computed solution.
else
while (Check there is blank space available in
knapsack and m2 still have some item(element))
then add some items from the m2
if (when knapsack is full)
return the items in case 1 and the item just added from the case 2.
else
now, add the optimum knapsack capacity .
recursion on the case 3 and then return the items in .
and the items returned from the recursive call.
Step 4: Repeat the above steps until found the optimum knapsack result.
To analyze this algorithm, recursive the fraction knapsack 0-1 problem. Firstly, apply the quicksort-like median algorithm to selection the median element. When there is a recursive call for any above given three cases. After that check, the half of the knapsack problem of the recursive size.
Thus, the problem solved in linear time by the recurrence whose solution is .
Consider A and B are two sets contain n positive elements each. Now use following MAX-CALCULATE () algorithm to maximize the payoff.
MAX-CALCULATE( )
1. Consider and are two arrays contain n elements.
//call sorting algorithm to sort n elements of both array either in increasing order or
//decreasing order
2. Call MERGE-SORT (A)
3. Call MERGE-SORT (B)
4.
5. for to n
//use pow() function to calculate power and then multiply it with payoff
6.
7. return
Explanation:
• In line 2 and 3, the above program sort both of the arrays in increasing order using merge sort.
• In line 4, program declares the variable payoff to calculate the amount and initialize it to 1.
• After that, the for loop calculates and multiply the value of and multiply it to payoff.
• In the line 7 program returns the calculated value.
Proof of Correctness:
• Consider any indices i and j and.
• Now consider the element of A and B at these indices. Since both of these arrays are sorted and .
• Also and all elements in array A are non-negative integers.
• So, raising the values of to , user will have
…… (1)
• Multiplying both side with in equation (1) , the value will become
…… (2)
• From equation (2), the value will produce the best result.
• Also the order of multiplication does not matter, so one can sort the above arrays in decreasing order too.
Time complexity:
• Program uses merge sort twice to sort the arrays and uses a single loop which goes from 0 to n.
• So, the complexity of the above program is as follow:
So, the complexity of above program is .
Example:
Consider the following two sets:
• Both the sets A and B contains 4 elements, therefore the value of n becomes 4.
• According to 2nd and 3rd line of MAX-CALCULATE() algorithm, call MERGE-SORT() procedure to sort elements of A and B set.
• The element of A and B set after sorting is as follow:
• Now, according to 5th line a for loop get started. Before the first iteration of for loop the value of payoff is 1.
• In first iteration,is calculated with the help of pow() function and then multiply resultant with payoff value. At the end of first iteration the value of payoff variable becomes 2.
• Similarly, after second iteration the value of payoff variable becomes 128.
• After third iteration the value of payoff variable becomes 995328.
• After fourth iteration the value of payoff variable becomes<PHONE_NUMBER>856. After the 4th iterations the for loop get terminates.
At the end, MAX-CALCULATE () procedure returns<PHONE_NUMBER>856 value to its calling program which is greater than any other arrangement.


2019
February
2018
April
March
2017
August
June
February
2016
September
June
April
February
2015
December
November
August
June
April
2014
November
October
September
August
July
May
March
February
January
2013
November
October
September
July
June
May
March
February
January
2012
November
October
September
July
April
March
February
January
2011
December
- December 30, 2011 » Galaxy Nexus 使用心得
- December 28, 2011 » Galaxy Nexus 不專業開箱文
- December 27, 2011 » Android HttpURLConnection 上傳檔案 (multipart/form-data)
- December 24, 2011 » Android C2DM (二)：流程
- December 24, 2011 » Android C2DM (一)：元件參數說明
- December 17, 2011 » Android Life Cycle （二）詳細講解
- December 15, 2011 » Googe App Engine (GAE) 設定 Domain
- December 13, 2011 » 如何用Telnet POST資料
- December 12, 2011 » Chrome 防範XSS機制
- December 8, 2011 » Hadoop DataNode 無法啟動
- December 8, 2011 » Android ListView cacheColorHint
November
October
July
May
April
March
February
January
2010
December
November
October
- October 28, 2010 » 主動式與被動式FTP 差別
- October 28, 2010 » android multiple language
- October 26, 2010 » Drawable (hdpi,ldpi,mdpi) 的分別
- October 15, 2010 » Spring MVC sample
- October 12, 2010 » Eclipse show line number
- October 10, 2010 » Eclipse Classic with Java Server Page (JSP)
- October 10, 2010 » thinkpad t410 非常不專業 開箱文【不是教學文】
- October 10, 2010 » MyISAM 與 InnoDB 的筆記
- October 9, 2010 » android 取得camera的照片
- October 9, 2010 » 我的好夥伴byebye【不是教學文】
- October 1, 2010 » android market 台灣可以上傳付費軟體了
September
August
July
June
May
April


Ammo
Body Armour
Health
Weapons
!
Click to enlarge
Click to enlarge
Click to enlarge
Click to enlarge
Click to enlarge
Click to enlarge


What is CSSA?
CSSA is a student-led association
Founders
Card title
Info here
Card title
Info here
Card title
Info here
Card title
Info here
Card title
Info here
Card title
Info here
We will be hosting a variety of events:
Task Challenges
Bug Smasher
Machine Learning/Data Science
Machine Learning/Data Science


Search
Preparing search index...


Create options
Create the GPU resource of the sampler
Renderer instance
The descriptor used to create the texture
Destroy this Object
The texture bytes per row
The texture data
The texture depth
The texture format
The texture height
The texture name
The GPU texture resource
The GPU texture view resource
The texture width
Indicates if this texture is renderable
Update the texture name
The new texture name
Generated using TypeDoc


Vim documentation: os_vms
main help file*os_vms.txt* For Vim version 7.2. Last change: 2008 Aug 19 VIM REFERENCE MANUAL *VMS* *vms* This file contains the particularities for the VMS version of Vim. You can reach this information file by typing :help VMS in Vim command prompt. 1. Getting started |vms-started| 2. Download files |vms-download| 3. Compiling |vms-compiling| 4. Problems |vms-problems| 5. Deploy |vms-deploy| 6. Practical usage |vms-usage| 7. GUI mode questions |vms-gui| 8. Useful notes |vms-notes| 9. VMS related changes |vms-changes| 10. Authors |vms-authors|
1. Getting started *vms-started* Vim (Vi IMproved) is a vi-compatible text editor that runs on nearly every operating system known to humanity. Now use Vim on OpenVMS too, in character or X/Motif environment. It is fully featured and absolutely compatible with Vim on other operating systems.
2. Download files *vms-download* You can download the Vim source code by ftp from the official Vim site: ftp://ftp.vim.org/pub/vim/ Or use one of the mirrors: ftp://ftp.vim.org/pub/vim/MIRRORS You will need both the Unix and Extra archives to build vim.exe for VMS. For using Vim's full power you will need the runtime files as well. You can download precompiled executables from: http://www.polarhome.com/vim/ ftp://ftp.polarhome.com/pub/vim/ To use the precompiled binary version, you need one of these archives: vim-XX-exe-ia64-gui.zip IA64 GUI/Motif executables vim-XX-exe-ia64-gtk.zip IA64 GUI/GTK executables vim-XX-exe-ia64-term.zip IA64 console executables vim-XX-exe-axp-gui.zip Alpha GUI/Motif executables vim-XX-exe-axp-gtk.zip Alpha GUI/GTK executables vim-XX-exe-axp-term.zip Alpha console executables vim-XX-exe-vax-gui.zip VAX GUI executables vim-XX-exe-vax-term.zip VAX console executables and of course (optional) vim-XX-runtime.zip runtime files The binary archives contain: vim.exe, ctags.exe, xxd.exe files. For GTK executables you will need GTKLIB that is available for Alpha and IA64 platform.
3. Compiling *vms-compiling* See the file [.SRC]INSTALLVMS.TXT.
4. Problems *vms-problems* The code has been tested under Open VMS 6.2 - 8.2 on Alpha, VAX and IA64 platforms with the DEC C compiler. It should work without bigger problems. If your system does not have some include libraries you can tune up in OS_VMS_CONF.H file. If you decided to build Vim with +perl, +python, etc. options, first you need to download OpenVMS distributions of Perl and Python. Build and deploy the libraries and change adequate lines in MAKE_VMS.MMS file. There should not be a problem from Vim side. Also GTK, XPM library paths should be configured in MAKE_VMS.MMS Note: Under VAX it should work with the DEC C compiler without problems. The VAX C compiler is not fully ANSI C compatible in pre-processor directives semantics, therefore you have to use a converter program what will do the lion part of the job. For detailed instructions read file INSTALLvms.txt MMS_VIM.EXE is build together with VIM.EXE, but for XD.EXE you should change to subdirectory and build it separately. CTAGS is not part of the Vim source distribution anymore, however the OpenVMS specific source might contain CTAGS source files as described above. You can find more information about CTAGS on VMS at http://www.polarhome.com/ctags/ Advanced users may try some acrobatics in FEATURE.H file also. It is possible to compile with +xfontset +xim options too, but then you have to set up GUI fonts etc. correctly. See :help xim from Vim command prompt. You may want to use GUI with GTK icons, then you have to download and install GTK for OpenVMS or at least runtime shareable images - LIBGTK from polarhome.com For more advanced questions, please send your problem to Vim on VMS mailing list<EMAIL_ADDRESS>More about the vim-vms list can be found at: http://www.polarhome.com/mailman/listinfo/vim-vms
5. Deploy *vms-deploy* Vim uses a special directory structure to hold the document and runtime files: vim (or wherever) |- tmp |- vim57 |----- doc |----- syntax |- vim62 |----- doc |----- syntax |- vim64 |----- doc |----- syntax vimrc (system rc files) gvimrc Use: define/nolog VIM device:[path.vim] define/nolog VIMRUNTIME device:[path.vim.vim60] define/nolog TMP device:[path.tmp] to get vim.exe to find its document, filetype, and syntax files, and to specify a directory where temporary files will be located. Copy the "runtime" subdirectory of the vim distribution to vimruntime. Logicals $VIMRUNTIME and $TMP are optional. If $VIMRUNTIME is not set, Vim will guess and try to set up automatically. Read more about it at :help runtime If $TMP is not set, you will not be able to use some functions as CTAGS, XXD, printing etc. that use temporary directory for normal operation. The $TMP directory should be readable and writable by the user(s). The easiest way to set up $TMP is to define a logical: define/nolog TMP SYS$SCRATCH or as: define/nolog TMP SYS$LOGIN
6. Practical usage *vms-usage* Usually, you want to run just one version of Vim on your system, therefore it is enough to dedicate one directory for Vim. Copy the whole Vim runtime directory structure to the deployment position. Add the following lines to your LOGIN.COM (in SYS$LOGIN directory). Set up the logical $VIM as: $ define VIM device:<path> Set up some symbols: $ ! vi starts Vim in chr. mode. $ vi*m :== mcr VIM:VIM.EXE $ !gvi starts Vim in GUI mode. $ gv*im :== spawn/nowait mcr VIM:VIM.EXE -g Please, check the notes for customization and configuration of symbols. You may want to create .vimrc and .gvimrc files in your home directory (SYS$LOGIN) to overwrite default settings. The easiest way is just rename example files. You may leave the menu file (MENU.VIM) and files vimrc and gvimrc in the original $VIM directory. It will be default setup for all users, and for users it is enough just to have their own additions or resetting in their home directory in files .vimrc and .gvimrc. It should work without problems. Note: Remember, system rc files (default for all users) don't have a leading ".". So, system rc files are: $VIM:vimrc $VIM:gvimrc $VIM:menu.vim and user customized rc files are: sys$login:.vimrc sys$login:.gvimrc You can check that everything is on the right place with the :version command. Example LOGIN.COM: $ define/nolog VIM RF10:[UTIL.VIM] $ vi*m :== mcr VIM:VIM.EXE $ gv*im:== spawn/nowait/input=NLA0 mcr VIM:VIM.EXE -g -GEOMETRY 80x40 $ set disp/create/node=<IP_ADDRESS>/trans=tcpip Note: This set-up should be enough, if you are working on standalone server or clustered environment, but if you want to use Vim as internode editor in DECNET environment, it will satisfy as well. You just have to define the "whole" path: $ define VIM "<server_name>[""user password""]::device:<path>" $ vi*m :== "mcr VIM:VIM.EXE" as for example: $ define VIM "PLUTO::RF10:[UTIL.VIM]" $ define VIM "PLUTO""ZAY mypass""::RF10:[UTIL.VIM]" ! if passwd required You can also use the $VIMRUNTIME logical to point to the proper version of Vim if you have installed more versions at the same time. If $VIMRUNTIME is not defined Vim will borrow its value from the $VIM logical. You can find more information about the $VIMRUNTIME logical by typing :help runtime as a Vim command. System administrators might want to set up a system wide Vim installation, then add to the SYS$STARTUP:SYLOGICALS.COM $ define/nolog/sys VIM device:<path> $ define/nolog/sys TMP SYS$SCRATCH and to the SYS$STARTUP:SYLOGIN.COM $ vi*m :== mcr VIM:VIM.EXE $ gv*im:== spawn/nowait/input=NLA0 mcr VIM:VIM.EXE -g -GEOMETRY 80x40 It will set up a normal Vim work environment for every user on the system. IMPORTANT: Vim on OpenVMS (and on other case insensitive system) command line parameters are assumed to be lowercase. In order to indicate that a command line parameter is uppercase "/" sign must be used. Examples: vim -R filename ! means: -r List swap files and exit vim -/r filename ! means: -R Readonly mode (like "view") vim -u <vimrc> ! means: -u Use <vimrc> instead of any .vimrc vim -/u <gvimrc> ! means: -U Use <gvimrc> instead of any .gvimrc
7. GUI mode questions *vms-gui* OpenVMS is a real mainframe OS, therefore even if it has a GUI console, most of the users do not use a native X/Window environment during normal operation. It is not possible to start Vim in GUI mode "just like that". But anyhow it is not too complicated either. First of all: you will need an executable that is built with the GUI enabled. Second: you need to have installed DECW/Motif on your VMS server, otherwise you will get errors that some shareable libraries are missing. Third: If you choose to run Vim with extra features such as GUI/GTK then you need a GTK installation too or at least a GTK runtime environment (LIBGTK can be downloaded from http://www.polarhome.com/vim/. 1) If you are working on the VMS X/Motif console: Start Vim with the command: $ mc device:<path>VIM.EXE -g or type :gui as a command to the Vim command prompt. For more info :help gui 2) If you are working on some other X/Window environment like Unix or a remote X VMS console. Set up display to your host with: $ set disp/create/node=<your IP address>/trans=<transport-name> and start Vim as in point 1. You can find more help in VMS documentation or type: help set disp in VMS prompt. Examples: $ set disp/create/node=<IP_ADDRESS> ! default trans is DECnet $ set disp/create/node=<IP_ADDRESS>/trans=tcpip ! TCP/IP network $ set disp/create/node=<IP_ADDRESS>/trans=local ! display on the same node Note: you should define just one of these. For more information type $help set disp in VMS prompt. 3) Another elegant solution is XDM if you have installed on OpenVMS box. It is possible to work from XDM client as from GUI console. 4) If you are working on MS-Windows or some other non X/Window environment you need to set up one X server and run Vim as in point 2. For MS-Windows there are available free X servers as MIX , Omni X etc., as well as excellent commercial products as eXcursion or ReflectionX with built-in DEC support. Please note, that executables without GUI are slightly faster during startup then with enabled GUI in character mode. Therefore, if you do not use GUI features, it is worth to choose non GUI executables.
8. Useful notes *vms-notes* 8.1 Backspace/delete 8.2 Filters 8.3 VMS file version numbers 8.4 Directory conversion 8.5 Remote host invocation 8.6 Terminal problems 8.7 Hex-editing and other external tools 8.8 Sourcing vimrc and gvimrc 8.9 Printing from Vim 8.10 Setting up the symbols 8.11 diff and other GNU programs 8.12 diff-mode 8.13 Allow '$' in C keywords 8.14 VIMTUTOR for beginners 8.15 Slow start in console mode issue 8.16 Common VIM directory - different architectures 8.1 Backspace/delete There are backspace/delete key inconsistencies with VMS. :fixdel doesn't do the trick, but the solution is: :inoremap ^? ^H " for terminal mode :inoremap <Del> ^H " for gui mode Read more in ch: 8.6 (Terminal problems). (Bruce Hunsaker<EMAIL_ADDRESS>Vim 5.3) 8.2 Filters Vim supports filters, i.e., if you have a sort program that can handle input/output redirection like Unix (<infile >outfile), you could use :map \s 0!'aqsort<CR> (Charles E. Campbell, Jr<EMAIL_ADDRESS>Vim 5.4) 8.3 VMS file version numbers Vim is saving files into a new file with the next higher file version number, try these settings. :set nobackup " does not create *.*_ backup files :set nowritebackup " does not have any purpose on VMS. It's the " default. Recovery is working perfect as well from the default swap file. Read more with :help swapfile (Claude Marinier<EMAIL_ADDRESS>Vim 5.5, Zoltan Arpadffy Vim 5.6) 8.4 Directory conversion Vim will internally convert any unix-style paths and even mixed unix/VMS paths into VMS style paths. Some typical conversions resemble: /abc/def/ghi -> abc:[def]ghi. /abc/def/ghi.j -> abc:[def]ghi.j /abc/def/ghi.j;2 -> abc:[def]ghi.j;2 /abc/def/ghi/jkl/mno -> abc:[def.ghi.jkl]mno. abc:[def.ghi]jkl/mno -> abc:[def.ghi.jkl]mno. ./ -> current directory ../ -> relative parent directory [.def.ghi] -> relative child directory ./def/ghi -> relative child directory Note: You may use <,> brackets as well (device:<path>file.ext;version) as rf10:<user.zay.work>test.c;1 (David Elins<EMAIL_ADDRESS>Jerome Lauret<EMAIL_ADDRESS>Vim 5.6 ) 8.5 Remote host invocation It is possible to use Vim as an internode editor. 1. Edit some file from remote node: vi "<server>""username passwd""::<device>:<path><filename>;<version>" example: vi "pluto""zay passwd""::RF10:<USER.ZAY.WORK>TEST.C;1" Note: syntax is very important, otherwise VMS will recognize more parameters instead of one (resulting with: file not found) 2. Set up Vim as your internode editor. If Vim is not installed on your host, just set up your IP address, the full Vim path including the server name and run the command procedure below: $ if (p1 .eqs. "") .OR. (p2 .eqs. "") then goto usage $ set disp/create/node=<your_IP_here>/trans=tcpip $ define "VIM "<vim_server>""''p1' ''p2'""::<device>:<vim_path>" $ vi*m :== "mcr VIM:VIM.EXE" $ gv*im :== "spawn/nowait mcr VIM:VIM.EXE -g" $ goto end $ usage: $ write sys$output " Please enter username and password as a parameter." $ write sys$output " Example: @SETVIM.COM username passwd" $ end: Note: Never use it in a clustered environment (you do not need it), loading could be very-very slow, but even faster then a local Emacs. :-) (Zoltan Arpadffy, Vim 5.6) 8.6 Terminal problems If your terminal name is not known to Vim and it is trying to find the default one you will get the following message during start-up: Terminal entry not found in termcap 'unknown-terminal' not known. Available built-in terminals are: builtin_gui builtin_riscos builtin_amiga builtin_beos-ansi builtin_ansi builtin_vt320 builtin_vt52 builtin_pcansi builtin_win32 builtin_xterm builtin_iris-ansi builtin_debug builtin_dumb defaulting to 'vt320' The solution is to define default terminal name: $ ! unknown terminal name. Let us use vt320 or ansi instead. $ ! Note: it's case sensitive $ define term "vt320" Terminals from VT100 to VT320 (as V300, VT220, VT200 ) do not need any extra keyboard mappings. They should work perfect as they are, including arrows, Ins, Del buttons etc., except Backspace in GUI mode. To solve it, add to .gvimrc: inoremap <Del> <BS> Vim will also recognize that they are fast terminals. If you have some annoying line jumping on the screen between windows add to your .vimrc file: set ttyfast " set fast terminal Note: if you're using Vim on remote host or through very slow connection, it's recommended to avoid fast terminal option with: set nottyfast " set terminal to slow mode (Zoltan Arpadffy, Vim 5.6) 8.7 Hex-editing and other external tools A very important difference between OpenVMS and other systems is that VMS uses special commands to execute executables: RUN <path>filename MCR <path>filename <parameters> OpenVMS users always have to be aware that the Vim command :! "just" drop them to DCL prompt. This feature is possible to use without any problem with all DCL commands, but if we want to execute some program as XXD, CTAGS, JTAGS etc. we're running into trouble if we follow the Vim documentation (see: help xxd). Solution: Execute with the MC command and add the full path to the executable. Example: Instead of :%!xxd command use: :%!mc vim:xxd ... or in general: :!mc <path>filename <parameters> Note: You can use XXD and CTAGS from GUI menu. To customize ctags it is possible to define the logical $CTAGS with standard parameters as: define/nolog CTAGS "--totals -o sys$login:tags" For additional information, please read :help tagsearch and CTAGS documentation at http://ctags.sourceforge.net/ctags.html. (Zoltan Arpadffy, Vim 5.6-70) 8.8 Sourcing vimrc and gvimrc If you want to use your .vimrc and .gvimrc from other platforms (e.g. Windows) you can get in trouble if you ftp that file(s): VMS has different end-of-line indication. The symptom is that Vim is not sourcing your .vimrc/.gvimrc, even if you say: :so sys$login:.vimrc One trick is to compress (e.g. zip) the files on the other platform and uncompress it on VMS; if you have the same symptom, try to create the files with copy-paste (for this you need both op. systems reachable from one machine, e.g. an Xterm on Windows or telnet to Windows from VMS). (Sandor Kopanyi<EMAIL_ADDRESS>Vim 6.0a) 8.9 Printing from Vim To be able to print from Vim (running in GUI mode) under VMS you have to set up $TMP logical which should point to some temporary directory and logical SYS$PRINT to your default print queue. Example: $define SYS$PRINT HP5ANSI You can print out whole buffer or just the marked area. More info under :help hardcopy (Zoltan Arpadffy, Vim 6.0c) 8.10 Setting up the symbols When I use GVIM this way and press CTRL-Y in the parent terminal, gvim exits. I now use a different symbol that seems to work OK and fixes the problem. I suggest this instead: $ GV*IM:==SPAWN/NOWAIT/INPUT=NLA0: MCR VIM:VIM.EXE -G -GEOMETRY 80X40 The /INPUT=NLA0: separates the standard input of the gvim process from the parent terminal, to block signals from the parent window. Without the -GEOMETRY, the GVIM window size will be minimal and the menu will be confused after a window-resize. (Carlo Mekenkamp, Coen Engelbarts, Vim 6.0ac) 8.11 diff and other GNU programs From 6.0 diff functionality has been implemented, but OpenVMS does not use GNU/Unix like diff therefore built in diff does not work. There is a simple solution to solve this anomaly. Install a Unix like diff and Vim will work perfect in diff mode too. You just have to redefine your diff program as: define /nolog diff <GNU_PATH>diff.exe Another, more sophisticated solution is described below (8.12 diff-mode) There are some other programs as patch, make etc that may cause same problems. At www.polarhome.com is possible to download an GNU package for Alpha and VAX boxes that is meant to solve GNU problems on OpenVMS. ( Zoltan Arpadffy, Vim 6.1) 8.12 diff-mode Vim 6.0 and higher supports vim diff-mode (See |new-diff-mode|, |diff-mode| and |08.7|). This uses the external program 'diff' and expects a Unix-like output format from diff. The standard VMS diff has a different output format. To use vim on VMS in diff-mode, you need to: 1 Install a Unix-like diff program, e.g. GNU diff 2 Tell vim to use the Unix-like diff for diff-mode. You can download GNU diff from the VIM-VMS website, it is one of the GNU tools in http://www.polarhome.com/vim/files/gnu_tools.zip. I suggest to unpack it in a separate directory "GNU" and create a logical GNU: that points to that directory, e.g: DEFINE GNU <DISK>:[<DIRECTORY>.BIN.GNU] You may also want to define a symbol GDIFF, to use the GNU diff from the DCL prompt: GDIFF :== $GNU:DIFF.EXE Now you need to tell vim to use the new diff program. Take the example settings from |diff-diffexpr| and change the call to the external diff program to the new diff on VMS. Add this to your .vimrc file: " Set up vimdiff options if v:version >= 600 " Use GNU diff on VMS set diffexpr=MyDiff() function MyDiff() let opt = "" if &diffopt =~ "icase" let opt = opt . "-i " endif if &diffopt =~ "iwhite" let opt = opt . "-b " endif silent execute "!mc GNU:diff.exe -a " . opt . v:fname_in . " " . v:fname_new . \ " > " . v:fname_out endfunction endif You can now use vim in diff-mode, e.g. to compare two files in read-only mode: $ VIM -D/R <FILE1> <FILE2> You can also define new symbols for vimdiff, e.g.: $ VIMDIFF :== 'VIM' -D/R $ GVIMDIFF :== 'GVIM' -D/R You can now compare files in 4 ways: 1. VMS diff: $ DIFF <FILE1> <FILE2> 2. GNU diff: $ GDIFF <FILE1> <FILE2> 3. VIM diff: $ VIMDIFF <FILE1> <FILE2> 4. GVIM diff: $ GVIMDIFF <FILE1> <FILE2> ( Coen Engelbarts, Vim 6.1) 8.13 Allow '$' in C keywords DEC C uses many identifiers with '$' in them. This is not allowed in ANSI C, and vim recognises the '$' as the end of the identifier. You can change this with the YXXYiskeyword|command. Add this command to your .vimrc file: autocmd FileType c,cpp,cs set iskeyword+=$ You can also create the file(s) $VIM/FTPLUGIN/C.VIM (and/or CPP.VIM and CS.VIM) and add this command: set iskeyword+=$ Now word-based commands, e.g. the '*'-search-command and the CTRL-] tag-lookup, work on the whole identifier. (Ctags on VMS also supports '$' in C keywords since ctags version 5.1.) ( Coen Engelbarts, Vim 6.1) 8.14 VIMTUTOR for beginners It exits VIMTUTOR.COM DCL script that can help Vim beginners to learn/make first steps with Vim on OpenVMS. Depending of binary distribution you may start it with: @vim:vimtutor (Thomas.R.Wyant III, Vim 6.1) 8.14 Slow start in console mode issue As GUI/GTK Vim works equally well in console mode, many administartors deploy those executables system wide. Unfortunately, on a remote slow connections GUI/GTK executables behave rather slow when user wants to run Vim just in the console mode - because of X environment detection timeout. Luckily, there is a simple solution for that. Administrators need to deploy both GUI/GTK build and just console build executables, like below: |- vim72 |----- doc |----- syntax vimrc (system rc files) gvimrc gvim.exe (the remaned GUI or GTK built vim.exe) vim.exe (the console only executable) Define system symbols like below in for ex in LOGIN.COM or SYLOGIN.COM: $ define/nolog VIM RF10:[UTIL.VIM72] ! where you VIM directory is $ vi*m :== mcr VIM:VIM.EXE $ gvi*m :== mcr VIM:GVIM.EXE $ ! or you can try to spawn with $ gv*im :== spawn/nowait/input=NLA0 mcr VIM:GVIM.EXE -g -GEOMETRY 80x40 Like this, users that do not have X environment and want to use Vim just in console mode can avoid performance problems. (Zoltan Arpadffy, Vim 7.2) 8.15 Common VIM directory - different architectures In a cluster that contains nodes with different architectures like below: $show cluster View of Cluster from system ID 11655 node: TOR 18-AUG-2008 11:58:31 +---------------------------------+ +-----------------------+--------- +--------+--------------+--------- +---------------------------------+ It is convinient to have a common VIM directory but execute different executables. There are more solutions for this problem: solution 1. all executables in the same directory with different names This is easily done with the following script that can be added to the login.com or sylogin.com: $ if f$getsyi("NODE_HWTYPE") .eqs. "VAX" $ then $ say "VAX platform" $ vi*m:== mcr vim:VIM.EXE_VAX $ endif $ if f$getsyi("NODE_HWTYPE") .eqs. "ALPH" $ then $ say "ALPHA platform" $ vi*m :== mcr vim:VIM.EXE_AXP $ endif $ if f$getsyi("ARCH_NAME") .eqs. "IA64" $ then $ say "IA64 platform" $ vi*m :== mcr vim:VIM.EXE_IA64 $ endif solution 2. different directories: $ if f$getsyi("NODE_HWTYPE") .eqs. "VAX" $ then $ say "VAX platform" $ define/nolog VIM RF10:[UTIL.VAX_EXE] ! VAX executables $ endif $ if f$getsyi("NODE_HWTYPE") .eqs. "ALPH" $ then $ say "ALPHA platform" $ define/nolog VIM RF10:[UTIL.AXP_EXE] ! AXP executables $ endif $ if f$getsyi("ARCH_NAME") .eqs. "IA64" $ then $ say "IA64 platform" $ define/nolog VIM RF10:[UTIL.IA64_EXE] ! IA64 executables $ endif $! VIMRUNTIME must be defined in order to find runtime files $ define/nolog VIMRUNTIME RF10:[UTIL.VIM72] A good examle for this approach is the [GNU]gnu_tools.com script from GNU_TOOLS.ZIP package downloadable from http://www.polarhome.com/vim/ (Zoltan Arpadffy, Vim 7.2)
9. VMS related changes *vms-changes* Recent changes - The following plugins are included into VMS runtime: genutils 2.4, multiselect 2.2, multvals 3.1, selectbuf 4.3, bufexplorer 7.1.7, taglist 4.5 - minor changes in vimrc (just in VMS runtime) - make_vms.mms - HUGE model is the default - [TESTDIR]make_vms.mms include as many tests possible - modify test30 and test54 for VMS - enable FLOAT feature in VMS port - os_vms.txt updated Version 7.2 (2008 Aug 9) - VCF files write corrected - CTAGS 5.7 included - corrected make_vms.mms (on VAX gave syntax error) Version 7.1 (2007 Jun 15) - create TAGS file from menu Version 7 (2006 May 8) - Improved low level char input (affects just console mode) - Fixed plugin bug - CTAGS 5.6 included Version 6.4 (2005 Oct 15) - GTKLIB and Vim build on IA64 - colors in terminal mode - syntax highlighting in terminal mode - write problem fixed (extra CR) - ESC and ESC sequence recognition in terminal mode - make file changed to support new MMS version - env variable expansion in path corrected - printing problems corrected - help text added for case insensitive arguments Version 6.3 (2004 May 10) - Improved vms_read function - CTAGS v5.5.4 included - Documentation corrected and updated Version 6.2 (2003 May 7) - Corrected VMS system call results - Low level character input is rewritten - Correction in tag and quickfix handling - First GTK build - Make file changes - GTK feature added - Define for OLD_VMS - OpenVMS version 6.2 or older - Documentation updated with GTK features - CTAGS v5.5 included - VMS VIM tutor created Version 6.1 (2002 Mar 25) - TCL init_tcl() problem fixed - CTAGS v5.4 included - GNU tools binaries for OpenVMS - Make file changes - PERL, PYTHON and TCL support improved - InstallVMS.txt has a detailed description HOWTO build - VMS/Unix file handling rewritten - Minor casting and bug fixes Version 6.0 (2001 Sep 28) - Unix and VMS code has been merged - separated "really" VMS related code - included all possible Unix functionality - simplified or deleted the configuration files - makefile MAKE_VMS.MMS reviewed - menu changes (fixed printing, CTAGS and XXD usage) - fixed variable RMS record format handling anomaly - corrected syntax, ftplugin etc files load - changed expand_wildcards and expandpath functions to work more general - created OS_VMS_FILTER.COM - DECC->VAXC pre-processor directive convert script. - Improved code's VAXC and new DECC compilers compatibility - changed quickfix parameters: - errormessage format to suite DECC - search, make and other commands to suite VMS system - updated and renamed MMS make files for Vim and CTAGS. - CTAGS has been removed from source distribution of Vim but it will remain in OpenVMS binary distributions. - simplified build/configuration procedure - created INSTALLvms.txt - detailed compiling instructions under VMS. - updated test scripts. Version 5.8 (2001 Jun 1) - OS_VMS.TXT updated with new features. - other minor fixes. - documentation updated - this version had been tested much more than any other OpenVMS version earlier Version 5.7 (2000 Jun 24) - New CTAGS v5.0 in distribution - Documentation updated Version 5.6 (2000 Jan 17) - VMS filename related changes: - version handling (open everything, save to new version) - correct file extension matching for syntax (version problem) - handle <,> characters and passwords in directory definition - handle internode/remote invocation and editing with passwords - OpenVMS files will be treated case insensitive from now - corrected response of expand("%:.") etc path related functions (in one word: VMS directory handling internally) - version command - corrected (+,-) information data - added compiler and OS version - added user and host information - resolving $VIM and $VIMRUNTIME logicals - VMS port is in MAX_FEAT (maximum features) club with Unix, Win32 and OS/2. - enabled farsi, rightleft etc. features - undo level raised up to 1000 - Updated OS_VMS.MMS file. - maximum features ON is default - Vim is compilable with +perl, +python and +tcl features. - improved MMK compatibility - Created MAKEFILE_VMS.MMS, makefile for testing Vim during development. - Defined DEC terminal VT320 - compatibility for VT3*0, VT2*0 and VT1*0 - ANSI terminals backwards, but not VT340 and newer with colour capability. - VT320 is default terminal for OpenVMS - these new terminals are also fast ttys (default for OpenVMS). - allowed dec_mouse ttym - Updated files vimrc and gvimrc with VMS specific suggestions. - OS_VMS.TXT updated with new features. Version 5.5 (1999 Dec 3) - Popup menu line crash corrected. - Handle full file names with version numbers. - Directory handling (CD command etc.) - Corrected file name conversion VMS to Unix and v.v. - Correct response of expand wildcards - Recovery is working from this version under VMS as well. - Improved terminal and signal handing. - Improved OS_VMS.TXT Version 5.4 (1999 Sep 9) - Cut and paste mismatch corrected. - Motif directories during open and save are corrected. Version 5.3 (1998 Oct 12) - Minor changes in the code - Standard distribution with +GUI option Version 5.1 (1998 Apr 21) - Syntax and DEC C changes in the code - Fixing problems with the /doc subdirectory - Improve OS_VMS.MMS Version 4.5 (1996 Dec 16) - First VMS port by Henk Elbers<EMAIL_ADDRESS>10. Authors *vms-authors* OpenVMS documentation and executables are maintained by: Zoltan Arpadffy<EMAIL_ADDRESS>OpenVMS Vim page: http://www.polarhome.com/vim/ This document uses parts and remarks from earlier authors and contributors of OS_VMS.TXT: Charles E. Campbell, Jr<EMAIL_ADDRESS>Bruce Hunsaker<EMAIL_ADDRESS>Sandor Kopanyi<EMAIL_ADDRESS>top - main help file


Primary Platoon Friends catagory request. - Better Battlelog Forums #1889
Sitemap
21. July 2012 22:23
Topicstarter
GameFreakBoy
Could you make a category that puts online friends that are in your primary platoon in their own folder. So you would have X Friends Offline, X Friends online, and X PP Friends Online.


{include file="order/export/_form" /}
{include file="order/export/table"/}
{include file="layout/page"}
{include file="common/meta" /} {block name='css'} {/block}


Testing VSCode IDE
npx ionic serve -c
This new project is for BGG
that are going to primarily use a Tabbed UI
let me add something at 11.46pm so that it works
Take a look at the src/pages/
directory to add or change tabs,
update any existing page or create new pages.


Preparation time
less than 30 mins
Cooking time
10 to 30 mins
Serves
Serves 4
For the kipper fishcakes, place the kippers and milk into a saucepan and bring to the boil. Remove from the heat and set aside to cool. Once cool, drain and flake the fish, removing as many bones as possible, and set aside. (Discard the milk.)
Mash the cooked potatoes in a large bowl until smooth, then add the parsley, egg yolk and kippers. Season, to taste, with salt and freshly ground black pepper. Stir until well combined.
Shape the mixture into four equal-sized patties, then chill in the fridge for two hours.
Sprinkle the flour onto a plate. Beat the eggs in a bowl. Sprinkle the Japanese panko breadcrumbs onto a separate plate. Once the fishcakes have chilled, dredge each in the flour, then dip in the egg and finally roll in the breadcrumbs.
Heat the olive oil in a frying pan over a medium heat and fry the fishcakes for three minutes on each side, or until golden-brown on each side. Keep warm in the oven.
For the tartare sauce, blend the egg yolks, white wine vinegar, Dijon mustard and salt in a food processor. While the motor is running, gradually pour the oil into the food processor in a steady stream until the mixture thickens. Stir in the cornichons, capers, parsley, chives and lemon juice. Season, to taste, with salt and freshly ground black pepper.
For the watercress salad, place the watercress in a bowl, add the oil and season, to taste, with salt and freshly ground black pepper. Mix together until well combined.
To serve, spoon the tartare sauce into a four small bowls and place one onto each of four serving plates, along with a kipper fishcake. Divide the watercress salad among the plates and garnish with the lemon wedges.


ABOUT ME
The LaSwap Viz project is my way of teaching myself some advanced visualization.
LaSwap is a consortium of 4 sixth forms. The way it works is that students have a 'roll' school but can take courses from across the consortium.
This chord diagram shows how the interconnectivity of roll and teaching between the schools
2:1 BSc Applied Mathematics (Warwick 2000)
MSc with Distinction - Management Science and Operational Research (Warwick 2001)
This is simple tab 1's content. Pretty neat, huh? Lorem ipsum dolor sit amet, consectetur adipiscing elit. Et non ex maxima parte de tota iudicabis? Item de contrariis, a quibus ad genera formasque generum.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Et non ex maxima parte de tota iudicabis? Item de contrariis, a quibus ad genera formasque generum venerunt. Sit enim idem caecus, debilis. Duo Reges: constructio interrete.
Sit enim idem caecus, debilis. Duo Reges: constructio interrete.
One of our best shooting model, working for this company since the beginning.
One of our best shooting model, working for this company since the beginning.
One of our best shooting model, working for this company since the beginning.


Start party
Options
Show notifications:
Disable scrobbling:
History length:
Show last played track in friends list:
Author:
Filip Chalupa
Facebook:
Last.fm party
Log out


|
|
|
|
|
|
|
Destination: Agility
|
|
|
HPE DEV is always trying to find ways to help developers and IT Ops staff improve their processes, simplify operations, and make their businesses more agile. In this month’s newsletter, you’ll find articles and tutorials focused on new DevOps methodologies and how to put them to work for you.
 These two community members are automation enthusiasts who have substantial expertise in the area of HPE Composable Infrastructure. Get to know them better in this post and video.
|
|
|
|
Read more
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
News from the Community
|
|
|
|
You can view the latest news and updates from our community on the
HPE DEV blog. Click on the links below to read our most recent posts.
|
|
|
|
|
|
|
|
Is continuous deployment of modern web applications in Microsoft Azure really so difficult?
|
|
|
|
In this tutorial, you’ll learn how easy it is to enable a continuous deployment delivery pipeline in Microsoft Azure using the built-in Azure app service pipeline provider, Kudu.
|
|
|
|
Read more
|
|
|
|
|
|
|
|
|
|
Contributors enhance Grommet during Hacktoberfest
|
|
|
|
Hacktoberfest, an October celebration that encourages developers to contribute to open source software, is proving highly beneficial to the Grommet project. In the first sixteen days, coders submitted 54 commits to the Grommet code base. As a result, 93% of the Grommet storybook examples are React hook-friendly and more than a dozen Grommet components had been refactored to use hooks. Learn why we’re so excited by reading this post.
|
|
|
|
Read more
|
|
|
|
|
|
|
|
|
|
DevOps and its impact on project management
|
|
|
|
DevOps is more than a set of software development practices that shorten the development and release cycle. It’s a way of doing business based on a firm foundation of trust and cooperation that boosts an organization’s agility. Even so, some resist converting. Learn why in this post.
|
|
|
|
Read more
|
|
|
|
|
|
|
|
|
|
HPE SimpliVity PowerShell module
|
|
|
|
This PowerShell module utilizes the HPE SimpliVity REST API to manage and automate a HPE SimpliVity federation interactively from the command line or via custom scripts. With the latest update of the HPE SimpliVity PowerShell module (V1.1.4), you can create charts from metric information gathered about clusters, hosts, and virtual machine objects. You can also create charts showing HPE SimpliVity host capacity information. Check out this newly updated blog post to learn more.
|
|
|
|
Read more
|
|
|
|
|
|
|
|
|
|
The Redfish® Event Service
|
|
|
|
The Simple Network Management Protocol (SNMP) uses an approach to report asynchronous events that can sometimes saturate the network in case of a storm of unsolicited events. A modern alternative, like the Redfish Event Subscription service, filters the events at the source for a more streamlined approach. Read this newly updated post to learn how you can implement the Redfish Event Subscription service in HPE iLO 5.
|
|
|
|
Read more
|
|
|
|
|
|
|
|
|
|
Storage management with Redfish
|
|
|
|
Ever wondered how to use the Redfish API to deliver simple and secure management of the storage subsystems of your HPE ProLiant and Synergy servers? Both human readable and machine capable, Redfish leverages common Internet and web services standards to expose information directly to the modern tool chain. Read this post to learn more on how to use Redfish in an HPE server environment as well as how to create logical drives using the iLO RESTful API.
|
|
|
|
Read more
|
|
|
|
|
|
|
|
|
|
More enterprises are using containers; here’s why.
|
|
|
|
Container adoption is growing rapidly in the enterprise, since containers are more portable and offer greater flexibility than virtual machines. They also are ideal for microservices, which increase agility because developers can more easily make changes to applications. Learn more about the advantages of using containers in this post.
|
|
|
|
Read more
|
|
|
|
|
|
|
|
|
|
Reducing infrastructure complexity: There has to be a better way
|
|
|
|
Customers need a single unified management interface to help address the complexities of managing all aspects of their hybrid IT environments. Read this post to learn how HPE OneView takes a software-defined, programmatic approach to infrastructure management through efficient workflow automation, a modern dashboard, and a comprehensive partner ecosystem.
|
|
|
|
Read more
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Sir Hackington’s Corner
(HPE DEV Events)
|
|
|
Looking to catch up with HPE DEV community members? You will find HPE DEV at these events.
CodeWars in Taipei
– November 2, 2019
Microsoft Ignite, Orlando, FL
– November 4-8, 2019
DevOps D-Day Conference, Marseille, France
– November 13-14, 2019
KubeCon | CloudNativeCon, San Diego, CA
– November 18-21, 2019
|
|
|
|
|
|
Mingle with Microsoft experts at Microsoft Ignite
|
|
|
|
Edge and hybrid cloud solutions will be front and center at the Microsoft Ignite conference this month in Orlando. Those attending the event will have the opportunity to learn from 50+ HPE Microsoft experts; attend 60+ booth theater sessions delivered by HPE, Microsoft, and partner experts; and explore solution demos. Read more about what HPE will show in booth #2549 in this post.
|
|
|
|
Read more
|
|
|
|
|
|
|
|
HPE DEV heads to KubeCon + CloudNativeCon, San Diego
|
|
|
|
HPE DEV is excited to be at KubeCon + CloudNativeCon in booth P28 this month to educate attendees on what HPE offers in the areas of containers and Kubernetes (k8s). There’s something brewing around the KubeDirector open source project that you’ll not want to miss.  Got an idea on how to make our portal more useable? Drop us a line, and we’ll see about getting it added. Have some code or a technical blog you want to share? Chances are good someone else in our community is eager to see it as well. And chances are equally good, there’s some knowledge on our site from one of your peers that’s just right for your latest project.
Come join our growing ranks and see for yourself. The strength of our developer community is driven by you.
|
|
Sign up to contribute!
|
|
|
|
|
|
|
|
You can also join the conversation on our Slack Channel and learn from your peers and contribute your insights right away.
|
|
|
|
Join the Slack channel
|
|
|
|
|
|
|
|
Connect with us on social media to stay informed about our newest blog posts.
|
|
|
|
Follow us on Twitter @hpe_DevCom
|
|
|
|
|
|
|
|
|
|
|
|
|
Become part of the Community
|
|
|
|
Hewlett Packard Enterprise is the only company with the innovation and leadership in the enterprise and open source communities to help developers and customers exceed. Help us build, communicate and collaborate together
|
|
|
|


Akdong Musician is made up of subling duo Lee Suhyun and Lee Chanhyuk. They made their debut in 2012 on Kpop Star 2 competition series. They have been nominated for over 25 awards in the span of 3 years.
audiotrack
Song Sample: Green Window
Apink is a girl group made up of Park Cho-rong, Yoon Bo-mi, Jeong Eun-ji, Son Na-eun, Kim Nam-joo and Oh Ha-young. They made their debut in 2011 with the single "I Don't Know". Their popularity has spread through Southeast Asia with over 10 albums under their belt and performances in Japan.
audiotrack
Song Sample: U You
Big Bang made their debut in 2006 and are still currently active and known as one of the most popular boy bands in the Kpop scene. Their songs have held top spots for record-breaking weeks at a time. Their global popularity has newspapers naming them "The Biggest Band in Asia (Washington Post)" and "The Biggest Boy Band in the World (Hollywood Reporter)".
audiotrack
Song Sample: Fantastic Baby
EXO is another boy band graced by intense
audiotrack
Song Sample: Overdose
Making their debut in 2007, Girls' Generation is a nine-peice girl group having popularity in South Korea, China, and Japan. Their skyrocket to fame was started by their hit single "Gee" and they proceeded to have hits to keep them at the top of the music charts such as "Tell Me Your Wish" and "Run Devil Run". They continue to be one of South Korea's most iconic kpop group to this day.
audiotrack
Song Sample: Lion Heart
Although very new to the Kpop scene, that fact hasn't stopped Red Velvet from making waves. Making their debut in 2014, they have already won multiple awards for Best New Artist, and 26 awards won in total. Their name combines the intent behind their music and songs. The "Red" represents their bold look and attitude and "Velvet" represents their cool and classiness.
audiotrack
Song Sample: Russian Roulette


LeBron James
Widely considered to be one of the greatest basketball players in NBA history
A look at all the milestones and key moments in LeBron James' NBA career:
- June 26, 2003 - The Cleveland Cavaliers select James with the first pick in the 2003 NBA Draft.
- April 21, 2004 - James wins the Rookie of the Year Award after posting averages of 20.9 points, 5.9 assists and 5.5 rebounds per game.
- Feb. 20, 2005 - James plays in his first NBA All-Star Game after being selected among the Eastern Conference starters. He finished with 13 points, 8 rebounds and 6 assists.
- May 18, 2005 - After finishing with averages of 31.4 points and 7.0 rebounds per games, James is selected to the All-NBA first team for the first time in his career.
- June 2, 2007 - James leads Cleveland to its first NBA Finals. The Spurs sweep the Cavaliers in four games.
- May 6, 2009 - James wins his first NBA MVP Award after averaging 30.0 points, 7.9 rebounds and 7.2 assists per game.
- July 8, 2010 - James announces he will join the Miami Heat in a televised event on ESPN called “The Decision.”
- May 11, 2012 - James wins his third NBA MVP Award with averages of 27.1 points, 7.9 rebounds and 6.2 assists per game.
- June 21, 2012 - The Heat win their second NBA title and first for James by defeating the Oklahoma City Thunder in five games.
- May 6, 2013 - James wins his fourth NBA MVP Award after tallying 26.8 points, 8.0 rebounds and 7.3 assists per game.
- June 20, 2013 - James wins his second NBA championship as the Heat beat the Spurs in a seven-game series.
- July 11, 2014 - James announces his return to the Cleveland Cavaliers in free agency.
- June 19, 2016 - After leading Cleveland back from 3-1 hole, James gives the Cavaliers their first NBA title by outlasting the Golden State Warriors in seven games.
- July 1, 2018 - James agrees to a free-agent contract with the Los Angeles Lakers.
I may go so far as saying LeBron James may be the greatest player to ever play the game. Because he is so potent offensively that not only can he score at will, but he keeps everybody involved.
-- Scottie Pippen


My Fair Lady isn’t a love story or a princess myth. It is a story of transformation, though perhaps not the one we expect.
—Alexis Gargagliano, in Lincoln Center Theater Review
Indeed. For years, I’d been left the impression of My Fair Lady being a fairy tale—charming, vibrant, witty, yet too miraculous to be real, too elegant to be affecting—until I walked into the Vivian Beaumont Theater, where I was showered with immense joy and pain.
Lerner & Loewe’s comedy isn’t merely about how individual lives could be reshaped by phonetics in unexpected ways, and it extends beyond a reflection on gender roles and social classes in Edwardian England. At the heart of My Fair Lady are the elations and tears of the ones wishing to rewrite their fates, and the inherent intellectual strength and emotional weakness of human beings. While laughing and clapping, we might suddenly discover the bittersweet lesson behind the amusing story, the moment we start suspecting if the front curtain is just a mirror.
A considerable fraction of the fascination of My Fair Lady originates from the straight play it is based on—George Bernard Shaw’s Pygmalion. But the creativities of Alan Jay Lerner and Frederick Loewe aren’t secondary—musicalizing Pygmalion without diluting its linguistic charm and dramatic tension would be a delicate task. Lerner and Loewe did it respectfully—the storyline, characters, and spoken dialogue of their musical are mostly inherited from the play. Consequently, the depth and sharpness of the Shavian classic are very well preserved.
However great the book is, any musical would pale without its score. “‘What is too silly to be said may be sung’—well, yes; but what is too subtle to be said, or too deeply felt, or too revealing or too mysterious—these things can also be sung and only be sung.” The remark by Kenneth Clark in his Civilisation can’t be better illustrated by My Fair Lady—when the dialogue takes a breath, music cuts in, amplifying the exhilaration, believes, wishes, prejudice, disdain, or confusion of the roles, then gives the floor back to words. Verbal wits and sensual pleasures constructively interfere, performing a duet that is delightfully serious and seriously delightful.
Meanwhile, music possesses a unique descriptive power. Songs form characters, often nearly define them—the whistling cockneys at Covent Garden, the grumbling servants at 27A Wimpole Street, the aristocratic gathering at Ascot, the mindlessly-in-love Freddy, and—the most vivid of all—Alfred P. Doolittle, the dancing and orating epicurean who can barely afford liquors but not morals. The hero and heroine, however, can’t be delineated even by five songs each. One has to go through every single line to decode the impetus of their fates.
The invincible Galatea
She wasn’t noble, but had no fear. She sought from the crowd for witness to protect herself against the mistaken charge. She insisted on checking the “detective’s” notebook to ensure she’s free of accusation. She promised to call the police if being mistreated in the “boarding school.” She greeted a scorning gentleman with the spirit of a true citizen: “I’ve a right to be here if I like, same as you.”
She was poor, but never fell. She never drinks despite her bibulous family. She won’t be tempted by gold and diamonds. She struggled for her lodging, whereas still dreamed of warmth and love. As she constantly reminds herself and the world: “I’m a good girl, I am!”
It would be a huge mistake to think the pre-metamorphosis Eliza merely as a boisterous flowergirl desperate for every tuppence. Although in a less graceful condition, she lived with dignity, discipline, and hope. But nothing could match her knocking on the door of 27A Wimpole Street to negotiate the details of that mocking offer of speech training—she managed to filter out the condescendence, and seize the opportunity to learn and reform. She wouldn’t be easily hurt, but never supplicated. She reasoned that English lessons shouldn’t cost more than French lessons, and yet proposed a tuition that surprised the celebrated phoneticist, considering her limited income.
An experiment was launched, but yields unanticipated results: After four months, at the Ascot races, she already acquired a glorious pronunciation, yet didn’t know what to talk. Six weeks later, at the Embassy Ball, she could speak and behave like the most charming princess. The linguistic experiment per se should be called a success. Nevertheless, Eliza is transformed into not a lady but a perfect doll, who can only be manipulated and rely on the kindness of others.
Earlier on that cold spring night, she sat on a dustcart, picked up cabbage leaves as fans, and sang the sweetest melody in London:
All I want is a room somewhere;
Far away from the cold night air.
With one enormous chair;
Oh, wouldn’t be loverly?
. . .
Someone’s head restin’ on my knee;
Warm and tender as he can be,
Who takes good care of me;
Oh, wouldn’t it be loverly?
Six months later, she sits in a luxurious armchair next to a fireplace, without feeling a bit of warmth. She converses with duchesses, dances with princes, yet not receiving any care. She hurls the slippers at her Professor and escapes from her private school. At Covent Garden, besides the old columns and folks, she hums her Loverly tune, weeping. She now belongs to nowhere—too genteel to be a flowergirl, yet too weak to be a lady.
It’s not the end of the transformation. It’s only the beginning, the first step in a new world.
She leaves her egocentric and manipulative tutor. She dries her tears and moves on—this time, with an elegant speech and an indomitable heart, which has endured the pains as she learns to tell “Spain” from “Spine,” domination from care, limerence from love, and etiquette from respect. She doesn’t mind evolving into a more cultured Ms. Doolittle, and meanwhile will remain that loverly Eliza.
That’s the making of the fairest lady.
The vulnerable Pygmalion
He lives in his profession. He invents his own universal alphabets and arranges his home like a phonetic laboratory. He can pronounce 130 different vowels and place a person by their accent within six miles in England or two miles in London. To him, an articulate speech is a divine gift from the God:
Think what you’re dealing with. The majesty and grandeur of the English language. It’s the greatest possession we have. The noblest sentiments that ever flowed in the hearts of men are contained in its extraordinary, imaginative and musical mixtures of sounds.
He sincerely believes so.
The world of Henry Higgins is simple and orderly—he uses the laws of linguistics or science in general as the measure of everything. In his mind, humans are classified according to their speeches, and the attractiveness of a person is determined by either their intellectual capacity or the uniqueness of their dialect. He despises anyone who “incarnates insult to English language” regardless of their gender, look, status, or occupation. He has equally low esteem for the uneducated populace and the pretentious, empty-headed nobles. He detests all characters against rationality, independence, and serenity.  Of course, they aren’t.
His contentious beliefs are challenged by Eliza. He can’t understand why the grand success of his experiment leads to her emotional breakdown. Moreover, he observes a strange feeling that has never existed before:
I was serenely independent and content before we met;
Surely I could always be that way again—and yet
I’ve grown accustomed to her looks;
Accustomed to her voice;
Accustomed to her face.
At Mrs. Higgins’ place, he is defeated by the new Lady Eliza. He encounters his own coldness and arrogance. He is told how hurtful his words and deeds can be, and that he plays nothing but a replaceable role to any living creature. Yet he has no choice but to confess—acknowledging the truth complies with his values more than pretending to be deaf.
The 2018 Lincoln Center Theater production ends in an air of melancholy—Eliza enters with her voice played on a gramophone, delivers her famous last line, and exits downstage, slowly disappearing from Higgins’ sight. Note that aisles haven’t been used as exits in interior scenes throughout the show, which, in my opinion, implies Eliza’s last presence is imaginary. In reality, as she promised, she never sees him again. He bids farewell to her—a rare counterpart of him, who truly appreciates his enthusiasm, shares his perseverance, and perceives his frailty. He will start a new chapter of his life, this time, learning to be a human.
Being transformed, who are we?
Higgins’ lady training program isn’t purely fictitious—in reality, we call it education, the systematic procedure through which young people may change their fates. Many are undergoing a metamorphosis no easier than that of Eliza, especially those pursuing higher education at a prestigious university in a foreign country.
I’m now a few years older than Eliza, yet still struggling to accurately pronounce the fifteen distinct vowels in American English: the near-close near-front unrounded /ɪ/, the near-close near-back rounded /ʊ/, etc. I’m rebuilding my vocabulary, using the handbooks intended for teenagers or those without a decent education. I’m assimilating a different set of attitudes and methods in scientific research. I’m resetting my knowledge, especially that on social sciences and humanities. I’m acquiring the basic skills of writing and communication. I’m overhauling my manners and values. There are nights I couldn’t put my books down, either too concentrated or too occupied. There are also “The Rain in Spain” moments, when “at once my heart took flight.” I’m surrounded by enlightening mentorships, as well as aimless zeal. I’ve be constantly encouraged, yet occasionally mocked.
We’re exploring a world we’ve never been to. We’re being transformed into someone we aren’t familiar with. We’re approaching thousands of new excitements, yet distanced from many simple joys. We’re gaining knowledge and achievements, but they don’t naturally bring care or love.
We can spend a night dancing or weeping. But when the morning is smearing up the sky, we’d go back to our phonetic charts, or any endeavor we choose to undertake.
Most importantly, however “ladylike” we’ll become in the coming years, never let the spirit of that vigorous, fearless flowergirl be taken away from us—that’s what launched the transformation, and what essentially powers it. Some day in the future, when hesitating or lost, we shall recall the courage inside us the moment we knocked on the door of our 27A Wimpole Street and said:
“I washed my face and hands before I come. If you were a gentleman, you would ask me to sit down.”


Write an extension in C++ (2)
This is a modified version of the tutorial to provide more robust handling of asynchronous callbacks. The mechanism illustrated below is inspired by real production code.
Modified Javascript File
These modifications are transparent to users of your extension as they don't change the API.
/**
* Javascript API file for extension
*/
var echoListener = null;
var _callbacks = {};
var _next_reply_id = 0;
var getNextReplyId = function() {
return _next_reply_id++;
};
extension.setMessageListener(function(json) {
var message = JSON.parse(json);
var reply_id = message.reply_id;
var msg = message.msg;
var callback = _callbacks[reply_id];
if (typeof(callback) === 'function') {
callback(msg);
delete msg.reply_id;
delete _callbacks[reply_id];
} else {
console.log('Invalid reply_id: ' + reply_id);
}
});
exports.echoAsync = function (msg, callback) {
var reply_id = getNextReplyId();
_callbacks[reply_id] = callback;
var resp = {"msg": msg};
resp.reply_id = reply_id;
extension.postMessage(JSON.stringify(resp));
};
exports.echoSync = function (msg) {
return extension.internal.sendSyncMessage(msg);
};
As you can see, we associate a unique ID to each callback and record it in a _callbacks
object. The ID is passed with the message to the C++ part of the extension in a JSON string. The C++ part is includes the same ID in its response, so the event listener can call the right callback.
As the callbacks should only fire once, they are removed from the _callbacks
object as soon as they return.
Modified C++ Instance class
We just modify the implementation (.cc file):
// Copyright (c) 2014 Intel Corporation. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "extension/echo_instance.h"
#include "common/picojson.h"
EchoInstance::EchoInstance() {
}
EchoInstance::~EchoInstance() {
}
void EchoInstance::HandleMessage(const char* message) {
picojson::value v;
std::string err;
picojson::parse(v, message, message + strlen(message), &err);
if (!err.empty()) {
std::cout << "Ignoring message.\n";
return;
}
std::string msg = v.get("msg").to_str();
double reply_id = v.get("reply_id").get<double>();
std::string resp = PrepareMessage(msg);
picojson::object o;
o["msg"] = picojson::value(resp);
o["reply_id"] = picojson::value(reply_id);
picojson::value rv(o);
PostMessage(rv.serialize().c_str());
}
void EchoInstance::HandleSyncMessage(const char* message) {
std::string resp = PrepareMessage(message);
SendSyncReply(resp.c_str());
}
std::string EchoInstance::PrepareMessage(std::string msg) const {
return "You said: " + msg;
}
Here the picojson
library is used to decode and encode the JSON messages: picojson
is already in the common/
directory, included earlier in the tutorial.


Apache SensSoft is a line of products that provides all the components needed for tracking, analyzing and visualizing user event data. Apache UserALE provides comprehensive user event tracking for web pages, but it is specially engineered for tools–applications users will use in their work. Apache Distill is an analytics framework for handling and analyzing UserALE data. Apache TAP provides you with a customizable array of interactive visual analytic libraries (D3) to extract insights from your usage data, and a single point of access for end users of the SensSoft system. Each component is available on their own through our Apache repositories. However, we have bundled these components into an easy-to-deploy, pre-configured Docker container so that you can begin to collect data as soon as possible.
The Apache SensSoft System includes a complete backend deployment of UserALE, Distill, and Tap. The different components are connected as seen below and ready to work together out of the box. UserALE clients will still need to be included in the target applications to push logs into the system.


Mobile Operating Systems
Android-based Operating Systems
Even though the source code of the following operating systems is provided, installing Google Apps may compromise your setup.
{% include legacy/cardv2.html
title="CalyxOS"
image="/assets/img/legacy_svg/3rd-party/calyxos.svg"
description='CalyxOS is a custom ROM based on the Android Open Source Project, with support for Google Pixel devices and the Xiaomi Mi A2. It aims to be secure and private by default, including a number of good choices for default applications. It also supports verified boot.'
badges="info:AOSP"
website="https://calyxos.org"
gitlab="https://gitlab.com/calyxos"
%}
{% include legacy/cardv2.html
title="GrapheneOS"
image="/assets/img/legacy_svg/3rd-party/grapheneos.svg"
image-dark="/assets/img/legacy_svg/3rd-party/grapheneos-dark.svg"
description='GrapheneOS (formerly known as CopperheadOS) is a free and open-source security- and privacy-focused mobile operating system built on top of the Android Open Source Project. It specifically targets devices offering strong hardware security, currently only supporting Google Pixel phones.'
badges="info:AOSP"
website="https://grapheneos.org/"
github="https://github.com/GrapheneOS/"
%}
{% include legacy/cardv2.html
title="LineageOS (Official Builds)"
image="/assets/img/legacy_svg/3rd-party/lineageos.svg"
description='LineageOS is a custom ROM based on the Android Open Source Project with official support for a wide variety of devices. The project is the successor to the popular CyanogenMod project, focusing on system control and customization, device longevity, and privacy. For security reasons, we do not recommend third-party builds of LineageOS for unsupported devices.'
badges="info:AOSP"
website="https://www.lineageos.org/"
privacy-policy="https://www.lineageos.org/legal/"
github="https://github.com/LineageOS"
%}
Worth Mentioning
-
MicroG
{% include badge.html
color="info"
text="Add-on Package"
%}
- A project that aims to reimplement the proprietary Google Play Services in the Android operating system with a FLOSS replacement. The microG project also maintains a fork of LineageOS with microG and F-Droid preinstalled at Lineage for microG.


Syntax:
funcall function &rest args => result*
Arguments and Values:
function---a function designator.
args---arguments to the function.
results---the values returned by the function.
Description:
funcall applies function to args. If function is a symbol, it is coerced to a function as if by finding its functional value in the global environment.
Examples:
(funcall #'+ 1 2 3) => 6 (funcall 'car '(1 2 3)) => 1 (funcall 'position 1 '(1 2 3 2 1) :start 1) => 4 (cons 1 2) => (1 . 2) (flet ((cons (x y) `(kons ,x ,y))) (let ((cons (symbol-function '+))) (funcall #'cons (funcall 'cons 1 2) (funcall cons 1 2)))) => (KONS (1 . 2) 3)
Affected By: None.
Exceptional Situations:
An error of type undefined-function should be signaled if function is a symbol that does not have a global definition as a function or that has a global definition as a macro or a special operator.
See Also:
apply, function, Section 3.1 (Evaluation)
Notes:
(funcall function arg1 arg2 ...) == (apply function arg1 arg2 ... nil) == (apply function (list arg1 arg2 ...))
The difference between funcall and an ordinary function call is that in the former case the function is obtained by ordinary evaluation of a form, and in the latter case it is obtained by the special interpretation of the function position that normally occurs.


The sky-tile
directive creates a collapsible container and is the bulding block for pages and forms in a SKY UX application. The sky-tile-section
directive is used to create padded sections inside a sky-tile
element. Additionally, the sky-tile-summary
directive may be placed inside the sky-tile
directive to add summary information to the tile. Any sky-tile
components used within a sky-tile-dashboard
must be included as entry components in the application module.


Exports
Exports give other projects/modules extended functionality.
Output
Add imports and outputs to your Autocode configuration and click the button below to generate code for your project.
Generate Code
Outputs
Outputs are generated by Generators and Engines.
Commands


--- layout: post title: Lets Learn about Mozilla Products on Womens Day date: 2016-03-07 20:12:57.000000000 +05:30 type: post published: true status: publish categories: - Contest tags: [] meta: publicize_google_plus_url: https://plus.google.com/103476208945781530797/posts/7JXH13AS49z _rest_api_published: '1' _rest_api_client_id: "-1" _publicize_job_id: '20528859904' _publicize_done_external: a:1:{s:7:"twitter";a:1:{i:8227736;s:55:"https://twitter.com/mozillaTN/status/706935716140306432";}} _publicize_done_13365731: '1' _wpas_done_8227736: '1' publicize_twitter_user: mozillaTN _publicize_done_13365738: '1' _wpas_done_10262153: '1' author: mozillatn ---
The New Social Media team our MozillaTN has came up with interesting idea to share more information about Mozilla Products and Open source Products.
On March 8th, yes on Women's day they will sharing question about various Mozilla Products.
They will be posting question in both Facebook and also to Twitter.
You can simply reply to the post they make, at the end of the week the results will be announced. We will be finding the top 3 Women Contributors who have awesome knowledge about Mozilla Products. So keep eye on Facebook and twitter profiles between 10.00 AM and 10.00 PM on 8th March


Fliehkraft: Pop-up makerspace in a residential project for people migrating to Germany from the middle east.
We occupied an unused room, deployed a pop-up makerspace, started building 3D printers and the camp staff and the residents were so curious and they decided that they liked the project so much that we were given a small project room and were invited to stay and continue collaborating together with residents for about a year.
Project Details
My intention was to connect the Berlin hacker and maker scene to the camp and open a space where people of all ages who were interested in electronics, computers, 3d printing, making, DIY and also alternative culture could come and chat and collaborate or just print something out. The best action I did at the camp right at the start was simply setting up a freifunk node / wireless access point and putting up some posters giving the residents of the camp free wifi.
In the words of my project partner and dear friend Thomas (who was working on site at the time as a social worker and has a background in Economics). DE: "Wir brauchen mehr Räume, an denen sich Menschen selbst basis ökonomisch bilden. Flüchtlingsunterkünfte können solche Räume sein." EN: "We need more spaces where people can educate themselves economically. Refugee shelters can be such spaces."
Image Gallery


Indonesian kids given pet chicks to wean them off smartphones
BANDUNG, Indonesia: Officials in one Indonesian city have hatched a plan to wean children off smartphones - by giving them their own fluffy chicks to raise.
Around 2,000 four-day-old chicks will be handed out to pupils at elementary and junior high schools in Bandung in the coming weeks in an attempt to distract the kids from their gadgets.
Students must feed their new pets before and after school and can keep them at home or on school premises if they don't have space in their backyard.
Authorities in the city, around 150km southeast of the capital Jakarta, have dubbed the unusual project "chickenisation".
At a ribbon-cutting held Thursday, a dozen chicks in cages were distributed with a sign that read: "Please take good care of me".
"There is an aspect of discipline here," said Bandung's mayor Oded Muhammad Danial.
But the project isn't just about curbing schoolkids' phone habits, he said - it is also part of a national plan to broaden pupils' education launched by President Joko Widodo.
Danial first announced the chick project last month but said the city needed time to sort out logistics with local chicken farms.
Mother Yayah Ratnasari was sold on the chicks-not-smartphones plan, and even expressed hopes it might encourage her son to become a poultry farmer.
"It's more beneficial for them to take care of chicks than play with smartphones," she said.
But her teenage son Rabil was less enthused.
"It's more interesting playing with a smartphone," he said.


A TIME TO KILL A film review by Rebecca Wan Copyright 1996 The Flying Inkpot
Directed by: Joel Schumacher Cast: Sandra Bullock (Ellen Roark), Samuel L. Jackson (Carl Lee Hailey), Matthew McConaughey (Jake Brigance), Brenda Fricker (Ethel Twitty), Kevin Spacey (Rufus Buckley), Charles Dutton (Sheriff Ozzie Walls), Patrick McGoohan (Judge Omar Noose), Donald Sutherland (Lucien Wilbanks), Oliver Platt (Harry Rex Vonner), Ashley Judd (Carla), Kiefer Sutherland (Freddie Cobb), Devin Lloyd (Willy), Terry Loughlin (Sisco), M. Emmet Walsh (Defense Psychologist) Written by: Akiva Goldsman, John Grisham(novel) Theatres: Golden Village Theatres.
A WASTE OF TIME
Will a black man ever receive a fair trial from an all-white jury in a Southern US state? Will Sandra Bullock ever run out of hair to flick out of her eyes, and can John Grisham write a book that doesn't have the word "CONSPIRACY" flashing metaphysically across every one of its pages?
These, and other similarly urgent issues, are some of the things that will fascinate in A TIME TO KILL, the latest book-turned-movie from John "It's just you the reader and me the hero against the FBI, the entire American judicial system, and the Darn Way Things Just Are" Grisham.
 Arrested and waiting for trial, they are then assailed and shot point blank by the girl's father, Carl Lee Hailey, played by a glowering Samuel Johnson. Enter the (by now) much talked about Matthew McWhatisname, Mr Esquire Magazine cum Guess Jeans Good Looks, as the young, white GoodHearted lawyer friend who takes on Hailey's defence, Jake Brigance.
Throw in Kevin Spacey as the dead confident prosecutor with a shakey Southern accent (if Sandra Bullock puts in the only believable performance of the whole cast, it must surely be because she doesn't have to Sound Southern), Donald Sutherland as Brigance's mostly drunk now but previously brilliant mentor, a mean, twisted Keifer Sutherland as the rapist's brother who's main purpose in the story is to Make Sure There's Trouble, and a burly, amoral Oliver Platt as Brigance's oily, wise-cracking sidekick for good measure, and you pretty much have the whole story. For extra insurance, the film's makers have thrown in the darkly beautiful Sandra Bullock in the role of, in her own words, "brilliant law student," who rushes down for the summer to help Brigance with his case.
Finally there's Ashley Judd, Brigance's young wife, whose main job seems to be walking around the Brigance's new house in tank tops and sweating a lot, and his achingly cute blonde daughter. Both comprise a nice White parallel to the Black Hailey's own loving family, and form the empathic comaparison between the successful Brigance and the misfortunate Hailey. One of Brigance's main concerns is that if he were Hailey, he would have done exactly what he did.
If I seem preoccupied with identifying "character types" and Plot Structures, it's only because that's how the movie seemed to work the whole time. While most of the characters were nicely etched out and the script is generally well-written, I got the feeling that the movie was more interested in presenting issues to its audience than actually working them out. For example, there are the scarey KKK scenes that bring out the powerful weirdness and danger of racism, but that don't seem to amount to anything in the conclusion, the will-they-won't-they thing between Bullock and McConnaughy that abruptly concludes without one iota of resolution, and the this-case-is-breaking-up-my-family schtick that Brigance has to go through that culminates in a scene that I can only describe as surreal.
In the end, although there are a lot of things going on in A TIME TO KILL, nothing really happens. The film is hardly a courtroom thriller, because McConaughey spends more time arguing with his wife, drinking tequila with Bullock, and taking long meadow walks with Sutherland than actually preparing for, or even doing anything, in court. His final courtroom summation is feeble and maudlin, and cannot convince an audience well-versed in the verbal maneuvering of David Kelley drama series (Picket Fences and L.A. Law), or even previous courtroom movies that turn on racial or social issues like TO KILL A MOCKINGBIRD or MURDER IN THE FIRST.
Conclusion: although somewhat interesting, I didn't think this movie was worth $7.
The Flying Inkpot Rating System: * Wait for the TV2 broadcast. ** A little creaky, but still better than staying at home with Gotcha! *** Pretty good, bring a friend. **** Amazing, potent stuff. ***** Perfection. See it twice.
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