Prison computer not suitable for Julian Assange to work on case, court told
The WikiLeaks founder is on remand at HMP Belmarsh, accused of leaking US government secrets.
Julian Assange is unable to work on his extradition case because he has been given an unsuitable computer in prison, a court has heard.
The 48-year-old WikiLeaks founder is accused of leaking US government secrets in one of the largest breaches of confidential information.
Appearing at Westminster Magistrates’ Court via video-link on Monday, Assange wore a grey prison-issue jumper and spoke only to confirm his identity.
Assange had his white hair slicked back and appeared to have stubble. He wore thin-rimmed glasses which he cleaned on his top before the judge entered.
During Monday’s five-minute hearing, attended by supporters including his father, John Shipton, Assange’s remand in HMP Belmarsh was extended.
Gareth Peirce, representing Assange, told the court that her client was unable to adequately prepare for his “very challenging case” as the computer he had been given was not suitable.
Ms Peirce said: “I will put it on the record, you will understand that we are working extremely hard on this very challenging case; however, the most important of the impediments that we are facing is Mr Assange’s ability to access what he needs to work on his own case.
“After months of battle he was provided with a computer but it is not the sort of computer needed to work on the case.”
District Judge Vanessa Baraitser said she had no jurisdiction over the prison conditions.
Ms Peirce replied that she wanted to “exert pressure as best we can” on Belmarsh to improve the computer facilities.
Speaking outside court, a member of Assange’s team told the PA news agency that the computer was unlikely to have internet access needed for research.
District Judge Baraitser remanded Assange in custody ahead of a substantive case management hearing on December 19.
He will appear again at Westminster Magistrates’ Court on December 13 to confirm his remand in prison again before he ultimately appears for full extradition proceedings in February.


ARLINGTON ROAD (director: Mark Pellington; screenwriter: Ehren Kruger; cinematographer: Bobby Bukowski; editor: Conrad Buff; cast: Jeff Bridges (Michael Faraday), Tim Robbins (Oliver Lang), Joan Cusack (Cheryl Lang), Hope Davis (Brooke Wolfe), Robert Gossett (FBI Agent Whit Carver), Mason Gamble (Brady Lang), Spencer Treat Clark (Grant Faraday), Stanley Anderson (Dr. Archer Scobee), 1999)
Reviewed by Dennis Schwartz
If there is one word that describes this conspiracy thriller, a take-off on the Oklahoma City Federal Building bombing, that word is preposterous. Ehren Kruger's slick script is about a recently, grieving widowed history college professor, Michael Faraday (Jeff Bridges), who is currently teaching a course at GW University on domestic terrorism. His FBI wife was killed on a fouled-up raid, similar to the one on Ruby Ridge. His new neighbor in this suburban Washington D.C. neighborhood, is a structural engineer, Oliver Lang (Tim Robbins), who arouses the suspicion of the professor when he catches him in a white-lie about what college he attended. The professor thinks he might be into bombing federal buildings, after he does some online searches tracing Lang's checkered biography.
This is a sloppily made film, imitative of the smoother made "The Parallax View." It lures you into thinking it has someplace to go, but after one coincidence too many and details that don't rationally add up, this film begins to soon feel like it has been weighed down with lead. There was never for one moment, after Faraday looks at the plans of a mall project at Lang's house and says that's not the mall, it's an office building, did I think that this was going to be a serious story. And that is one of the major problems with the film, it pretended to be serious yet it couldn't hold its end in the bargain and provide a story that made sense.
MTV-trained director Mark Pellington brings his brand of cheap thrills to the screen, foregoing reality for exploitation, as he tries to revisit a number of newpaper headlines in recent times about FBI mistakes and right-wing anarchists blowing up government buildings, while making a fast-paced film for popular consumption.
It was a loopy story, with a somewhat promising beginning but a terrible ending. It starts out when Faraday saves his neighbor's kid Brady who blew up his hand with firecrackers, by rushing him to the hospital, and that begins a friendship with the Langs built on mistrust. Faraday's girlfriend Brooke (Hope), a graduate assistant at the university joins him at Lang's house, where his wife Cheryl (Cusack) is supportive of her relationship with the professor. The Lang's seem like a benign, suburban couple, easily smiling and engaging in small talk. Faraday's 9-year-old boy, Grant, is a troubled youngster, unable to communicate with others, but becomes more outgoing when he becomes friendly with the 10-year-old Brady. They go away together to summer camp as scouts, an organization that Oliver has connections in, and will become later on, a part of the film's intrigue.
For most of the film, Faraday acts with moral indignation at the government's seeming cover-ups of the bombings, spouting his own conspiracy theories against a single individual involved in the bombing of a federal building in St. Louis, and acting hysterical every chance he gets. Brooke, as his whiny sweetheart, doesn't have much to do in the film but learn how to believe that her boyfriend and former teacher can be right about what he thinks. Tim Robbins and Joan Cusack play the smiling but sinister couple until it becomes nerve-wracking to watch them try and pull this nonsense pose off, any further.
The payoff comes in the film's last fifteen minutes, and it seems so artificial. The film is resolved in an incredulous fashion, as if it were trying to evoke a cry of sympathy (ala Oklahoma City) for a tragedy that seemed acted out for symbolic purposes rather than portraying real people made up of flesh and blood. The ending depends on the coincidence that a car crash will take place at an exact time and all other events would follow suit from there on. There is no possible way that scenario could work except in a move like this one. If you leave aside the unconvincing acting, the implausible story, its inane political views, then you might find this film somewhat entertaining and it may raise for you some pertinent questions about the FBI's handling of recent bombings. I just felt annoyed that the script tried to be too cute and I never warmed up to the way the film was indelicately handled.
REVIEWED ON 3/18/2000 GRADE: C
Dennis Schwartz: "Ozus' World Movie Reviews"
http://www.sover.net/~ozus
<EMAIL_ADDRESS>© ALL RIGHTS RESERVED DENNIS SCHWARTZ
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


Welcome to the Index page
This content is replacing the content of the layout:fragment="content"
placeholder in layout.html


Local and International Scalability in DH
In my last post I wrote about the unconference session on Multilingualism in DH that took place during DHSI. This week Martin Grandjean published some really interesting, though as he calls them “unhappy”, results regarding rates of acceptance according to language in DH2014. His findings show that even though the call for papers for DH2014 was published in 23 languages, submissions were done in only 6 languages other than English. Even more shocking is that acceptance rate was about 50% lower for non-English language proposals than it was for English language ones.
The questions related to this that I launched after the unconference session were whether exchanges among different linguistic DH communities are taking place? And whether we are speaking distinct DH dialects depending on audience and sources? Grandjean’s conclusions, meant to be provocative, touch some of the issues I intuited before and I’d like to comment on them. One of his conclusions reads:
5. Ce n’est pas un problème de langue, mais de réseau de cooptation.
Dans certains colloques, il apparaît de manière évidente que le choix des keynote speakers et d’une partie des panelistes découle plus du réseau personnel des membres du comité que de choix scientifiques. En l’occurrence, la composition très anglophone du comité expliquerait pourquoi les chercheurs retenus le sont aussi en grande partie, puisque faisant partie d’un cercle plus ou moins large autour des décideurs.
DH2014, as the biggest and most important international conference in the field, carries a larger responsibility to be inclusive of practitioners around the world; while smaller, local or linguistically focused ones, though open to other communities, usually concentrate on promoting the field in their language and their context. Two very different objectives to have in a conference. Still, it would seem that the pattern is not exclusive to DH2014. Multilingual representation in the recent 2EHD in Mexico City, as can be seen in the chart below, is not that different to Grandjean’s results. {.wp-image-499 .alignleft width=”298” height=”240”}Even when the call for papers was available in 6 languages and GO::DH contributed to the organization, only 16% of the presentation were done in a language other than Spanish—up from only 4% in the first EHD [1]. Furthermore, only English and Portuguese were represented. This parallelism suggests precisely that though efforts are made to attract a stronger multilingual presence to DH conferences in widely distinct contexts and scales, it hardly happens; at least not to the extent that one would wish. Happily, from the 2EHD data, it also appears to be increasing. We could then actually say that different conversations around the global DH’s don’t cross, but do touch briefly at times.
This leads me to the second issue. For Grandjean:
6. Quand on est bon, on choisit l’anglais.
Si le chercheur sait ou croit savoir que sa communication est de bonne qualité, il pourrait souhaiter la rendre accessible au plus grand nombre, raison pour laquelle les papiers soumis en anglais (par des non-anglophones) seraient en moyenne de meilleure tenue que les autres. Par ailleurs, le fait d’être capable de communiquer en anglais est, pour un chercheur non-anglophone, un indicateur de ses compétences et de son “internationalisme”.
This is partly what I referred to when I talked about audiences and sources. What I think the similarity in results suggests is that we definitely have different conversations in distinct DH contexts, and that language choice is dependent on that. At least from the surface it seems like a good thing, that the field can be scalable in that way: projects have a certain relevance in a given context and a different kind of relevance in another. I’m going to venture and say it is pretty safe to assume that DH2014 presentations in English by non-native speakers have been (or will be) presented in their original language in other local conferences.
The implication of this is that in its original language a particular project or research has its outlets. In that sense, yes, the purpose of taking projects to DH2014 is to internationalize them, to let others outside of their particular local contexts know about them. Indeed, this is proof that most of us have adopted English as the lingua franca in DH, but it seems to me that it can also be suggestive of how language specific conversations are taking place elsewhere. Ultimately, it is indicative of the importance of local conferences to foster certain conversations, and the relevance of international ones to promote other ones.
This still poses another problem, is the audience attending these “translated” presentations diverse or are they the same who have listened to/read them in “the original”? If non-English speakers are putting the effort to internationalize their work, it is because they (we) care about having a diverse audience and different conversations about their projects, much more than having the call for papers available in tens of languages (which, though immensely valuable, should not be an end in itself). Again, the unresolved issue is the matter of sources, conversation exchanges, and scholarship diversity.
Great efforts put towards multilingualism in DH, like the GO::DH “I whisper_______” pins coming to DH2014 are aimed at inviting everybody to come and speak in their own language at international conferences, and foster collegiality and helpfulness among colleagues. There is, still another way of contributing to this, going and listening to the diverse, though small, non-English presentations (there will be someone who can whisper in English too, I’m sure) and generate exchanges and conversations. In my opinion it will be this kind of scalability of the field in different contexts, that will help remedy the “unhappy” results found by Grandjean regarding acceptance rates and multilingual representativity.
[1] More 2EHD metrics are coming soon at the RedHD blog.


Pro Finance
Cover Management Solution
Home
Admin
Covers
Covers
Admin
Load Premiums
Cover Code
Cover Name
Cover Type
Cover FSP
{% if Cover %}
{{ Cover.strCoverCode }}
{{ Cover.strCoverName }}
{{ Cover.strCoverType }}
{{ Cover.strFSPNumber }}
{% endif %}
Row Number
1
2
3
4
5
6
Col Number
1
2
3
4
5
6
Member Type
Principal
Spouse
Children
School
Still Born
Mother
Father
Grand Father
Grand Mother
Uncle
Aunt
Cousin
Brother
Sister
Year Low
0
1
6
13
18
26
36
50
66
76
86
Year High
5
60
12
21
25
75
85
12
25
35
65
85
Above
Still Born
Premium
Payout
Add Cover Row
Remove All Premiums
Remove Premium Row
×
Close
Remove Premium Row
Specify Row Col Combination to remove that Specific Row


WITNESS LIST Appropriations-S/C on General Government Committee February 20, 2003-8:30A Budget Against: Bresnen, Steve (Bingo Interest Group) On: Atkins, Billy (Texas Lottery Commission) Bass, James (Department of Transportation) Behrens, Michael W. (Department of Transportation) Cox, Jr., James A. (Texas Lottery Commission) Grief, Gary (Texas Lottery Commission) Hamilton, Billy (Comptroller of Public Accounts) Johnson, John W. (Texas Transportation Commission, Department of Transportation) Klussmann, Wallace (Office of Rural Community Affairs) Pewitt, Bill (Texas Charitable Bingo Association) Strayhorn, Carole Keeton (Comptroller of Public Accounts) Tessen, Robt. J. "Sam" (Office of Rural Community Affairs) Tristan, Mac (Texas Automobile Theft Prevention Authority) Welch, Ken (Comptroller of Public Accounts)


{{ "" | safeHTML }} {{ if site.Data.homepage.hero_area.enable }} {{ with site.Data.homepage.hero_area }} Zillion Flavours ... Indian food outlets in Hong Kong. Authentic tastes created with fresh herbs and spices from the land of spices - Kerala, India. {{ end }} {{ end }}


{{define "title"}} Internal Error {{end}} {{define "body"}} {{if .ShowDetails}}
HTTP status code: {{.Error.Code}}
Error type: {{.Error.Type}}
Message: {{.Error.Message}}
Error:
{{.Error.Error}}{{else}} An internal error occured. The developer has been notified. Hopefully it'll be fixed soon. You can also try checking the current issues list. {{end}} {{end}}


Build Robust & Production Quality Applications - Lesson 4: Parameter Naming Conventions
15 Mar 2015Parameter Naming Conventions
Visit Rails Guides' Parameter Naming Conventions Use that as the starting point to construct the params that hit the server.
As you've seen in the previous sections, values from forms can be at the top level of the params hash or nested in another hash. For example, in a standard create action for a Person model, params[:person] would usually be a hash of all the attributes for the person to create. The params hash can also contain arrays, arrays of hashes and so on.
Fundamentally HTML forms don't know about any sort of structured data, all they generate is name-value pairs, where pairs are just plain strings. The arrays and hashes you see in your application are the result of some parameter naming conventions that Rails uses.
Basic Structures
The two basic structures are arrays and hashes. Hashes mirror the syntax used for accessing the value in params. For example, if a form contains:
<input id="person_name" name="person[name]" type="text" value="Henry"/>
the params hash will contain
{'person' => {'name' => 'Henry'}}
and params[:person][:name] will retrieve the submitted value in the controller.
Hashes can be nested as many levels as required, for example:
<input id="person_address_city" name="person[address][city]" type="text" value="New York"/>
will result in the params hash being
{'person' => {'address' => {'city' => 'New York'}}}
Normally Rails ignores duplicate parameter names. If the parameter name contains an empty set of square brackets [] then they will be accumulated in an array. If you wanted users to be able to input multiple phone numbers, you could place this in the form:
<input name="person[phone_number][]" type="text"/>
<input name="person[phone_number][]" type="text"/>
<input name="person[phone_number][]" type="text"/>
This would result in params[:person][:phone_number] being an array containing the inputted phone numbers.
Combining Them
We can mix and match these two concepts. One element of a hash might be an array as in the previous example, or you can have an array of hashes. For example, a form might let you create any number of addresses by repeating the following form fragment
<input name="addresses[][line1]" type="text"/>
<input name="addresses[][line2]" type="text"/>
<input name="addresses[][city]" type="text"/>
This would result in params[:addresses] being an array of hashes with keys line1, line2 and city. Rails decides to start accumulating values in a new hash whenever it encounters an input name that already exists in the current hash.
There's a restriction, however, while hashes can be nested arbitrarily, only one level of "arrayness" is allowed. Arrays can usually be replaced by hashes; for example, instead of having an array of model objects, one can have a hash of model objects keyed by their id, an array index or some other parameter.


@ebay/skin/image-placeholder
Image placeholder should be used when an image is not present. By default this is 300x300px, but can be resized to it a container.
This asset can be found either in dist/svg/icons/image-placeholder.svg or in the
icons bundle
{% highlight html %}
{% endhighlight %}
Variable widths with borders
{% highlight html %}
{% endhighlight %}


Preparation time
less than 30 mins
Cooking time
30 mins to 1 hour
Serves
Serves 4
Dietary
Enjoy floating islands, Hairy Bikers style, served with mango salsa and a touch of zesty lime.
Roughly chop one half of the mango and blend to a purée with the lime juice in a food processor.
Finely dice the remaining mango half and place into a mixing bowl. Add the chopped mint, lime zest and vanilla seeds and mix well. Pour over the mango purée and mix again.
For the poached meringue, in a small pan, dissolve the sugar in the water and liquid glucose, then gradually bring to the boil. As soon as the mixture is boiling, reduce the heat to low.
Pass a clean pastry brush around the insides of the pan to remove any sugar crystals that have formed.
Heat the sugar mixture to 115C/239F using a sugar thermometer (this is called the softball stage and should take 10-15 minutes). (Caution: do not overheat the sugar mixture and do not leave it unattended.)
Meanwhile, whisk the egg whites in a clean, grease-free bowl until soft peaks form when the whisk is removed.
Increase the speed of the beaters and, with the motor constantly running, pour a thin stream of the hot sugar mixture into the whisked egg whites, whisking as you pour. Once all of the sugar mixture has been added to the egg whites, continue to whisk the meringue mixture for 10-15 minutes, until it is thick, glossy and cold.
Bring the milk and the vanilla pod to the boil in a saucepan, then reduce the heat to a gentle simmer.
Make a quenelle of meringue mixture by creating a ball of meringue using two dessert spoons to smooth it into shape.
Lower the quenelle of meringue into the simmering milk and poach gently for 2-3 minutes. Turn over and poach the other side for a further 1-2 minutes, then remove the poached meringue from the milk using a slotted spoon and set aside. Keep warm. Repeat the process with the remaining meringue mixture, cooking the quenelles in batches.
To serve, divide the mango salsa among four dessert dishes. Float the poached merigues on top. Garnish with a jalebi sweet, if using.


music pain patients functional mobility analgesic effect study Pain {border-style px;} #ffffff;} analgesia music-induced depression effects auditory TUG University scores chronic control using central cognitive emotional fibromyalgia task Music NSAID Table analgesia. important pleasant analysis background mechanisms showed studies used PU, Psychol. catastrophizing condition high pain. px; reduce scale shown {font-family Mitchell Neurosci. TCA correlation depressive emotions font-size highly increase listening min multiple order reduced regression related reported symptoms test < Department Mexico PI, affective analgesia, anxiety bars dopamine double; gait influence listened motor music. musical pain, perception performed present processing regarded self-chosen significantly songs type Benzodiazepine Brain Brattico Center Clin. PCS Patients Research Roy Therefore, Tracey age border-color border-width controlled does error evidence improvement like means measure measured modulation music, music: obtained patients. reduces relationship represent significant solid; study, suggesting variables washout {font-style {font-weight (Jones (b) *** Aarhus, Age Autonoma Bernatzky Catastrophizing Denmark Emotional FM, Figure Finally, Hypothyroidism Institute Jose Levothyroxine Peretz Queretaro, Rev. Salimpoor Sciences, Universidad Wiech analyses bold chosen complex component condition. correlated correlations courier; criteria disorder effect, em; ensure entrainment general generalized improve increased involved known linear meaning mobility, mobility. participants physical produce pt;} reduction relation relaxation relaxing relaxing, reward role secondary sensory sounds therapy time use wanted ΔPU


CN Rail confirms job cuts as weakening economy cuts into freight volumes
MONTREAL - Canadian National Railway Co. is confirming job cuts as it deals with a weakening North American economy that has eroded demand for railroad transportation.
The company said it is "adjusting its resources to demand" but wouldn't say how many people will be affected.
It said some employees will be placed on furlough and there will be reductions in both management and union job numbers.
In October, Canada's largest railroad operator cut its adjusted earnings per share outlook percentage for 2019 to the high single digits, down from predictions of low double-digit growth.
Freight volumes came in below expectations in the third quarter and manufacturing has also fallen off, it said.
The railroad also said it was affected by a slowdown in the British Columbia forestry sector, where high log prices and dwindling timber supply have prompted shutdowns or curtailments in more than two dozen mills, and due to the weather-delayed grain crop on the Prairies.
"As explained during CN's Q3 results, the company is adjusting its resources to demand," said spokesman Alexandre Boule in a statement.
"This includes the difficult decision of adjusting its workforce to demand levels by placing some employees on furlough and reducing both management and union job numbers due to a weakening of many sectors of the economy. These adjustments have already started to take place across the network."
This report by The Canadian Press was first published Nov. 15, 2019.


ValidTargetsFinder Class
Gets a list of valid targets filtered by provided criteria.
Constructor
ValidTargetsFinder
-
game
-
settings
Parameters:
-
game
Game -
settings
Object-
x
Number- The x map tile coord to use as the origin of the attack.
-
y
Number- The y map tile coord to use as the origin of the attack.
-
[limitToFov=false]
FovROT optional- If set only targets within the given
FovROT
will be valid.
- If set only targets within the given
-
[limitToNonDiagonalAdjacent=false]
Bool optional- If true diagonally adjacent targets are not valid (only used if
range = 1
).
- If true diagonally adjacent targets are not valid (only used if
-
[range=1]
Number optional- Max distance in tiles target can be from origin.
-
[validTypes=[]]
Array optional- Array of valid target object types. Checked using
target instanceof type
.
- Array of valid target object types. Checked using
-
[includeTiles=false]
Bool optional- If true tile objects are can be valid targets.
-
[exclude=false]
Object | Array optional- Object or Array of objects to exclude from results.
-
[prepareValidTargets=true]
Bool optional- If true valid targets are wraped in an object with x, y, range, value properties.
-
[filter=false]
Function optional- Function to filter objects when checking if they are valid.
function(obj){ return true }
. Targets must still be a valid type.
- Function to filter objects when checking if they are valid.
-
Item Index
Methods
Methods
checkValidTarget
-
target
Checks if an object is a valid target for this action.
Parameters:
-
target
Object- The target to be checked.
Returns:
true
if valid.
checkValidType
-
target
Checks if a target object is an instance of a type in this.validTypes
.
Parameters:
-
target
Object- The target to be checked.
Returns:
true
if valid.
getValidTargets
()
Array
Gets all valid targets.
Returns:
getValidTargetsAtPosition
-
x
-
y
Get valid target objects on a tile coord.
Parameters:
-
x
Number- Map tile coord to get valid target objects from.
-
y
Number- Map tile coord to get valid target objects from.
Returns:
mixed objects
getValidTargetTiles
()
Array
Get tile coords a valid target may be on. Only checking range and fov, not objects on the tile.
Returns:
of Tile objects
prepareTargetObject
-
target
-
[x=target.x]
-
[y=target.y]
-
[range]
Wraps a target object in a container object with x, y, range
Parameters:
-
target
Object -
[x=target.x]
Number optional -
[y=target.y]
Number optional -
[range]
Number optionalrange from
this.x
,this.y
to x,y
Returns:
result.value target object
Properties
exclude
Object | Array
Object or Array of objects to exclude from results.
filter
Function
Function to filter objects when checking if they are valid. function(obj){ return true }
.
Targets must still be an instance of this.validTypes.
includeTiles
Boolean
If true tile objects are can be valid targets.
limitToNonDiagonalAdjacent
Boolean
Limit results to non-diagonal adjacent tiles
prepareValidTargets
Boolean
If true valid targets are wraped in an object with x, y, range, value properties.
range
Number
Max distance in tiles target can be from origin.
validTypes
Array
Array of valid target object types. Checked using target instanceof type
.
If set to an empty array or a value evaluating to false, all types are considered valid.
x
Number
The x map tile coord to use as the origin of this target finder.
y
Number
The y map tile coord to use as the origin of this target finder.


Often you want to check the correctness of the values entered by the user on the fly.
This is called "form validation", and Jenkins performs this on the server side.
You write a form validation logic as a method on your Descriptor
class, and it'll look something like this:
public FormValidation doCheckThreads(@QueryParameter String value) throws IOException, ServletException { try { Integer.parseInt(value); return FormValidation.ok(); } catch (NumberFormatException e) { return FormValidation.error("Not a number"); } }
The name of the method follows the convention "doCheckXyz" where "xyz" is the name of the field you put in your view. The method gets invoked in response to the onchange
event on HTML DOM. So the above check method should have a corresponding view like this:
<f:entry title="Number of Threads" field="threads"> <f:textbox /> </f:entry>
The parameter name "value" is also significant. The 'throws' clause isn't.
This naming convention is how Jenkins wires up your form validation method. The return type also must be FormValidation, which offers various static factory methods to create an instance. Form validation can be of 3 different kinds: OK
, WARNING
or ERROR
. Validation message can either be represented in plaintext or use HTML markup. Several validations of different kinds can be reported wrapping then into one using aggregate
factory method.
Getting values of other fields
Sometimes your validation method needs values of other input fields to perform a check. You do this by defining them as additional parameters:
public FormValidation doCheckThreads(@QueryParameter String value, @QueryParameter String cpu) { try { int t = Integer.parseInt(value); int c = Integer.parseInt(value); if (t*c>10) return FormValidation.warning("That's asking for too much"); else return FormValidation.ok(); } catch (NumberFormatException e) { return FormValidation.error("Not a number"); } }
<f:entry title="Number of Threads" field="threads"> <f:textbox /> </f:entry> <f:entry title="Number of CPUs" field="cpu"> <f:textbox /> </f:entry>
The parameter names are used to match up the Java method parameters to the form values. (So you could have used the parameter names "threads" instead of "value" — "value" is a reserved keyword that designates the "this input control")
When multiple parameters are defined like this, the validation kicks in whenever one of the dependent value changes (modulo JENKINS-19124).
TODO: talk about @RelativePath
Accessing context
Sometimes you want to access the context. For example, you might want to access the current FreeStyleProject object while validating a field of a Builder. You do this by putting AncestorInPath
annotation.
public FormValidation doCheckThreads(@QueryParameter String value, @AncestorInPath AbstractProject project) { ... }


Build the Community
Your Fans Will Love
Huddle re-imagines the way we build communitues. You have
a voice, but so does your audience. Create connections with
your users as you engage in genuine discussion.


I know thee who thou art; the Holy One of God.


#include <Hook.hpp>
Public Member Functions | |
| Hook (const real_t vertex[2], const phy::TransformationMatrix &tMatrix) | |
| Constructor. | |
| const phy::TransformationMatrix & | tMatrix () const |
| Get transformation matrix. | |
| const math::Vector< 2 > & | tVertex () const |
| Get transformed vertex. | |
| void | update () |
| Update hook position. | |
| const math::const_VectorPtr< 2 > & | vertex () const |
| Get vertex. | |
| virtual | ~Hook () |
| Destructor. | |
Private Attributes | |
| const phy::TransformationMatrix & | m_tMatrix |
| math::Vector< 2 > | m_tVertex |
| const math::const_VectorPtr< 2 > | m_vertex |
Hook may be attached to one of existing vertices. Hook simply multiplies this vertex by given transformation matrix on each update. Result is written to separate memory location which may be reached via tVertex() function.
| gpx::phy2d::Hook::Hook | ( | const real_t | vertex[2], | |
| const phy::TransformationMatrix & | tMatrix | |||
| ) |
Constructor.
| vertex | vertex. | |
| tMatrix | transformation matrix. |
| gpx::phy2d::Hook::~Hook | ( | ) | [virtual] |
Destructor.
| const phy::TransformationMatrix & gpx::phy2d::Hook::tMatrix | ( | ) | const [inline] |
Get transformation matrix.
| const math::const_VectorPtr< 2 > & gpx::phy2d::Hook::vertex | ( | ) | const [inline] |
Get vertex.
| const math::Vector< 2 > & gpx::phy2d::Hook::tVertex | ( | ) | const [inline] |
Get transformed vertex.
| void gpx::phy2d::Hook::update | ( | ) |
Update hook position.


"GREEK" Found only in the New Testament, where a distinction is observed between “Greek” and “Grecian” (q.v.). The former is (1) a Greek by race (Acts 16:1-3; 18:17; Romans 1:14), or (2) a Gentile as opposed to a Jew (Romans 2:9, 10).  The word “Grecians” in Acts 11:20 should be “Greeks,” denoting the heathen Greeks of that city, as rendered in the Revised Version according to the reading of the best manuscripts (“Hellenes”).
"GREEK" Found only in the New Testament, where a distinction is observed between “Greek” and “Grecian” (q.v.). The former is (1) a Greek by race (Acts 16:1-3; 18:17; Romans 1:14), or (2) a Gentile as opposed to a Jew (Romans 2:9, 10).
The word “Grecians” in Acts 11:20 should be “Greeks,” denoting the heathen Greeks of that city, as rendered in the Revised Version according to the reading of the best manuscripts (“Hellenes”).


Documentation for APPFS Exercise 7¶
This program will calculate the longest shortest path of a graph from the vertex 1 and it will use either the library-given method or the self-written method as specified
-
ex7.
noLibrary
(graphfile)¶ Calculates the longest shortest path using self-written Djisktra’s algorithm and dictionary data objects. With respect to this program, this function is invoked in the run() function.
- Args:
- graphfile: the graph to traverse
-
ex7.
run
(mode, graphfile)¶ Executes the program on the given input arguments
- Args:
- mode: indicate which method to execute program with graphfile: the graph to traverse
Returns: print statement indicating the furthest vertex from Vertex 1 and its respective distance
Raises: ValueError and AssertionError
-
ex7.
update_distances
(graph, distances, s, unvisited)¶ Per iteration of evaluating the distances of paths from a single node, this function updates the data object keeping track of such distances. With respect to this program, this function is invoked in the noLibrary() function.
- Args:
- graph: a dictionary data object containing information of the graph’s vertices and edges distances: a dictionary data object containing the current vertex distances from Vertex 1 and its preceeding vertix for the path from Vertex 1 s: an index for the current vertex being traversed unvisited: a list of the vertices of graph that have not yet been traversed
- Returns:
- distances: an updated data object next_s: the next vertex to traverse
-
ex7.
yesLibrary
(graphfile)¶ Calculates the longest shortest path using the python package NetworkX. With respect to this program, this function is invoked in the run() function.
- Args:
- graphfile: the graph to traverse


Show me your skills ninja, enter that shorcut or click button
Install
<ninja-keys>
is distributed on npm, so you can
install it locally or use it via npm CDNs like unpkg.com.
Local Installation
npm i ninja-keys
CDN
npm CDNs like unpkg.com can directly serve files that have been published to npm. This works great for standard JavaScript modules that the browser can load natively.
For this element to work from unpkg.com specifically, you need to
include the ?module
query parameter, which tells
unpkg.com to rewrite "bare" module specificers to full
URLs.
HTML
<script type="module" src="https://unpkg.com/ninja-keys?module"></script>
JavaScript
import {NinjaKeys} from 'https://unpkg.com/ninja-keys?module';


Founded in 2018 by Patrick Kooky and his wife Melinda Kooky, our mission is to bring you the highest quality fish flavored cookies. Since our start we have already produced dozens of surprising recipes that has shaken the baking community. Our featured Salmon Cookies has been reknown for its eat-a-bility as a dessert and meal. With its high protein content, it will satisfy every craving you had!
At Pat's Salmon Company, we believe in creating gourmet cookies with only the finest ingredients. We have partnered with local farmers and fisheries that obtain fresh yet sustainable ingredients just for you. When you take a bite of our Salmon Cookies, you know you are really tasting the Pacific Northwest.


| Total net profit | -5.52 | Gross profit | 40.19 | Gross loss | -45.71 |
| Profit factor | 0.88 | Expected payoff | -0.12 | ||
| Absolute drawdown | -10.02 | Maximal drawdown (%) | 23.45 (174.61%) | ||
| Total trades | 45 | Profit trades (% of total) | 24 (53.33%) | Loss trades (% of total) | 21 (46.67%) |
| Long positions (won %) | 22 (45.45%) | Short positions (won %) | 23 (60.87%) | ||
| Largest | profit trade | 4.82 | loss trade | -4.5 | |
| Average | profit trade | 1.67 | loss trade | -2.18 | |
| Minimum | profit trade | 0.18 | loss trade | -0.49 | |
| Maximum | take profit in pips | 92.9 | stop loss in pips | -45.5 | |
| Average | take profit in pips | 22.5 | stop loss in pips | -26.0 | |
| Minimum | take profit in pips | 0.9 | stop loss in pips | -4.9 | |
| Maximum | Reward-Risk | 3.1 | Duration in minutes | 3346 | |
| Average | Reward-Risk | 1.0 | Duration in minutes | 288.8 | |
| Minimum | Reward-Risk | 0.0 | Duration in minutes | 1 | |
| Maximum | consecutive wins (profit in money) | 7.0 (11.64) | consecutive losses (loss in money) | 6.0 (-15.11) | |
| Average | consecutive wins | 2.0 | consecutive losses | 2.0 |
| Total net profit | -10.81 | Gross profit | 18.82 | Gross loss | -29.63 |
| Profit factor | 0.64 | Expected payoff | -0.49 | ||
| Absolute drawdown | -10.81 | Maximal drawdown (%) | 21.54 (200.75%) | ||
| Total trades | 22 | Profit trades (% of total) | 10 (45.45%) | Loss trades (% of total) | 12 (54.55%) |
| Largest | profit trade | 4.16 | loss trade | -4.5 | |
| Average | profit trade | 1.88 | loss trade | -2.47 | |
| Minimum | profit trade | 0.18 | loss trade | -1.44 | |
| Maximum | take profit in pips | 72.8 | stop loss in pips | -45.5 | |
| Average | take profit in pips | 23.3 | stop loss in pips | -27.9 | |
| Minimum | take profit in pips | 0.9 | stop loss in pips | -14.6 | |
| Maximum | Reward-Risk | 3.0 | Duration in minutes | 1281.0 | |
| Average | Reward-Risk | 0.9 | Duration in minutes | 303.2 | |
| Minimum | Reward-Risk | 0.0 | Duration in minutes | 1.0 | |
| Maximum | consecutive wins (profit in money) | 4.0 (10.73) | consecutive losses (loss in money) | 6.0 (-15.11) | |
| Average | consecutive wins | 2.0 | consecutive losses | 2.0 |
| Total net profit | 5.29 | Gross profit | 21.37 | Gross loss | -16.08 |
| Profit factor | 1.33 | Expected payoff | 0.23 | ||
| Absolute drawdown | -2.37 | Maximal drawdown (%) | 6.3 (120.69%) | ||
| Total trades | 23 | Profit trades (% of total) | 14 (60.87%) | Loss trades (% of total) | 9 (39.13%) |
| Largest | profit trade | 4.82 | loss trade | -2.85 | |
| Average | profit trade | 1.53 | loss trade | -1.79 | |
| Minimum | profit trade | 0.37 | loss trade | -0.49 | |
| Maximum | take profit in pips | 92.9 | stop loss in pips | -34.1 | |
| Average | take profit in pips | 21.7 | stop loss in pips | -24.1 | |
| Minimum | take profit in pips | 3.7 | stop loss in pips | -4.9 | |
| Maximum | Reward-Risk | 3.1 | Duration in minutes | 3346.0 | |
| Average | Reward-Risk | 1.0 | Duration in minutes | 275.0 | |
| Minimum | Reward-Risk | Duration in minutes | 2.0 | ||
| Maximum | consecutive wins (profit in money) | 4.0 (5.07) | consecutive losses (loss in money) | 3.0 (-2.5) | |
| Average | consecutive wins | 2.0 | consecutive losses | 1.0 |


--- layout: post title: Apache Olingo OData Client for JavaScript beta release date: 2014-09-16 15:01:42.000000000 +08:00 categories: - JavaScript - OData V4 tags: [] status: publish type: post published: true author: Sven Kobler-Morris ---
The Apache Olingo OData Client for JavaScript (ODataJS) is a library written in JavaScript that enables browser based front end applications to easily use the OData protocol for communication with application servers.
It is currently available in version 4.0.0-beta-01 and supports the OData protocol in version 4.
The ODataJS library is the successor of the datajs library and can be used in combination with datajs to allow communication with new OData V4 services and older OData services from the same web page.
Like the OData Java Client and Server Library the ODataJS library is also developed and maintained within the project Apache Olingo™.
Feel free to visit the ODataJS procject page for further information about usage, download and contribution.


Mercury is a drivetrain featuring a 6-wheel drive system. The entire chassis is constructed almost entirely of custom machined 1/4" aluminum, making use of a parallel plate structure as well as side-tapped plates to hold the chassis together. Two motors geared 20:1 on each side drive a center hex axle connected to the colson wheel in the center of the drivetrain pods, which is belted to the omni wheels in the front and the back.


The sentiment analysis presented below was created for our Big Data course at the University of Colorado. Using a handful of concepts taught to us throughout our academic careers and specifically within our Big Data course, we designed a graphical user interface that collects and analyzes tweet words and emojis. The analysis gauges the sentiment surrounding specific words occurring in many tweets across the United States. We streamed our tweets from the Twitter API and used Google's Geolocation to determine the location of the tweets. Spend some time messing around with it yourself and feel free to leave us a comment with feedback below!
| Tweet | State | City | |
|---|---|---|---|
| {{ x.text }} | {{ x.state }} | {{ x.city }} | {{ x.sentiment }} |
| {{ x.text }} | {{ x.state }} | {{ x.city }} | {{ x.sentiment }} |
| {{ x.text }} | {{ x.state }} | {{ x.city }} | {{ x.sentiment }} |
| Tweet | State | City | |
|---|---|---|---|
| {{ x.text }} | {{ x.state }} | {{ x.city }} | {{ x.sentiment }} |
| {{ x.text }} | {{ x.state }} | {{ x.city }} | {{ x.sentiment }} |
| {{ x.text }} | {{ x.state }} | {{ x.city }} | {{ x.sentiment }} |
Total Tweets:{{count}}
Current Count: {{stateCount}}
Current Count: {{latestItems}}
Wow you actually care about our process, woohooo! Keep Reading! The challenge was simple: Real time sentiment analysis in addition to historical sentiment analysis based on key words. Simple enough, right?! Ehhh we found that when it comes to big data, we really need to think about what we’re doing... Click me to read more.
We started off with a model that goes as follows: A tweet collector module reads from a stream, writes to a local JSON file, and then uploads to our mongolabs database everyday. Oh how naïve we were. We quickly moved to the stream writing directly to the database, hindsight is 20-20 I guess.
We have data! Although we don’t need everything in the tweet, we only need a few attributes, and we need to add sentiment to it. Map-Reduce to the rescue! Or not…  It forced us to run batch jobs every so often to update our live data set. So we needed a way to make our application real-time, fast, and robust.
Kafka to the rescue, for real this time. This allowed us to cut out multiple reads and writes to the database. As new tweets came in, our consumers would clean the data and persist both a raw copy and a clean copy.
Okay, it looks like our backend data is working well! Or not… We were using kafka correctly, but we were not able to utilize the power that comes with it: clustering, replication, and fault tolerance. We were running the kafka instance on one node, with zero clustering.
Okay amazon SQS to the rescue FOR REAL this time. This was perfect. It would do the same thing as our kafka instance, but it would automatically cluster, replicate, and be fault tolerant. We feel confident about this.
Next was the front end. We decided to create a node.js server in order to create a database API that our frontend angular application could interact with. This was great at first, until we were requesting 100,000 tweets. Everything broke.
We decided that we would create API calls that would only load the tweets from the state that the user has clicked on. In addition it will only load 2000 tweets at a time. We used AJAX calls to achieve this.
We have this real time data, but we’re not showing it on the frontend. Nothing a little javascript magic can’t handle.
So that’s where the app is at now. Although we still have a lot we want to do.
1) Implement SOLR to improve search.
2) Make the front-end much prettier.
3) Get a better sentiment analysis.
4) Zoomable map.
Thanks for reading!
Josh is a junior. When coding he likes digging deep into the hardware of things.
Andrew is a junior. When he isn't coding you can find him jammin' out on his dobro.


Hi there!
I'm building a web-application for static analysis of Python code and I need your help.
So if you're a Python programmer and if code quality matters to you, I'd love to hear your feedback on the product that I'm planning to build. Just read through the description below and click on the icons to indicate if you need a feature or not, or do nothing if you're not sure. Sometimes, I'll also ask you for some OK?
Features
Please state if the following features are important to you: = I need this feature! ; = I don't need this feature ; / = I'm indifferent
Pricing
Please state if the following features are important to you: = I need this feature! ; = I don't need this feature ; / = I'm indifferent
this is a scale:


The overall goal of this assignment is to implement a Rails application using model, view, and controller classes.
The functional goal is to provide web page access to recipe information served by http://food2fork.com/api
through JSON and images. Documentation for the API can be found at http://food2fork.com/about/api.
You are tasked with creating a Rails app that will display a recipe index page based on a search keyword entered.
http://food2fork.com/api
and accept the resultsYou should already have the Recipe
class from an earlier assignment. (Remember, that unlike in that assignment - you will not need to require
HTTParty gem in your code, since loading HTTParty gem should be the Bundler's job.)
You are also tasked with deploying your solution to Heroku - to be accessed by friends, family, other students, co-workers, and prospective employers.
Create a new Rails application using the rails
command called recipefinder
.
Download and extract the starter set of boostrap files into the recipefinder directory.
bundle
command to resolve new gems|-- Gemfile
|-- README.md
|-- .rspec (important hidden file)
`-- spec
|-- recipes_app_spec.rb
`-- spec_helper.rb
Install the following gems used by the rspec unit tests. You may have some of these already installed. The last gem is used for headless web page testing.
$ gem install rspec
$ gem install rspec-its
$ gem install capybara
$ gem install poltergeist
Make sure phantomJS is installed and in your bin PATH on your system ($ phantomjs --version). This binary is used by the poltergeist
gem to implement a headless unit test for the Web interface. You can interact with your Rails app directly using a browser without this library. It is only needed by the rspec tests to provide you feedback for example criteria the grader will be looking for later when submitted. PhantomJS installation was covered in Module 1. In case you need more information, the download URLs are below. Linux users will need to use version 1.9.8 or build from source. All other platforms can easily use 2.0.0.
Run the rspec test(s) to receive feedback. They must be run from their location at the root of your rails application. All tests will (obviously) fail until you complete the specified solution.
Finished in 1.69 seconds (files took 0.41211 seconds to load)
8 examples, 8 failures
Failed examples:
rspec ./spec/recipes_app_spec.rb:6 # Recipes App displays
'Kahlúa-Spiked' when request parameter 'search' is mocha
rspec ./spec/recipes_app_spec.rb:11 # Recipes App utilizes
the FOOD2FORK_SERVER_AND_PORT environment variable
rspec ./spec/recipes_app_spec.rb:16 # Recipes App utilizes
the FOOD2FORK_KEY environment variable
rspec ./spec/recipes_app_spec.rb:24 # Recipes App visit root
displays chocolate (default)
rspec ./spec/recipes_app_spec.rb:28 # Recipes App visit root
displays 'Powered By Food2Fork.com'
rspec ./spec/recipes_app_spec.rb:32 # Recipes App visit root
displays table element that has a row with 3 columns
rspec ./spec/recipes_app_spec.rb:36 # Recipes App visit root
column 1 should have the thumbnail inside img tag inside a link tag
rspec ./spec/recipes_app_spec.rb:40 # Recipes App visit root
title should be inside a second column inside a link tagink tag
Implement your Rails app solution and use the rspec tests to help verify your completed Rails app solution.
(Optional) Post your Rails app solution to Heroku.
Submit your Rails app solution for grading.
Create a new Rails app called recipefinder
. Use the Gemfile provided in the boostrap files. Do not change the Gemfile from what is provided or your submitted solution may not be able to be processed by the grader (i.e., do not add any additional gems or change gem versions).
Generate RecipesController
(recipes_controller.rb) that will have an index
action
The RecipesController
index action should
search
was passed in.search
term as the keyword if supplied, and use a default value of chocolate
if not suppliedCreate a model, Recipe
(recipe.rb) that will contain a for
class method.
The Recipe
for
class method should
key
(your developer key) to each outgoing URL request to http://food2fork.com/api
using HTTParty default_params
.You will use the http://food2fork.com/api
host and port# (default=:80) during development and Heroku deployment. However, your assignment will be graded off-line and should get its host and port# from the FOOD2FORK_SERVER_AND_PORT
environment variable. Your assignment must use the defined value if present and default to the real value otherwise.
class Recipe
...
key_value = ENV['FOOD2FORK_KEY']
hostport = ENV['FOOD2FORK_SERVER_AND_PORT'] || 'www.food2fork.com'
base_uri "http://#{hostport}/api"
...
Foods2Fork requires attribution when using their API. Place the following somewhere in your application layout file (application.html.erb
) to be displayed alongside the recipes.

Powered By Food2Fork.com

Create your view that should

)

) should have 3 columns (
) where
You are not required to create an HTML form for the search term. You may specify the search keyword using just the URL with the following syntax in the browser.
http://localhost:3000/recipes/index?search=swiss
Add href
tags to your image and title. You should be able to click on either the title or the thumbnail and go straight to the actual recipe (out there on the web). Look at image_tag
Rails helper for help with defining an img
tag (http://api.rubyonrails.org/classes/ActionView/Helpers/AssetTagHelper.html#method-i-image_tag) and use this helper as the first argument to link_to
helper.
Inside the image_tag
specify width
and height
of 100 for your images.
Sanitize recipe titles displayed. Rails automatically escapes HTML in your strings (to avoid XSS attacks http://en.wikipedia.org/wiki/Cross-site_scripting). Because of this, some of your titles will look wrong. For example, try searching for mocha
and look at your titles. To get around this issue, Rails has a sanitize
(or raw
) helper (http://api.rubyonrails.org/classes/ActionView/Helpers/SanitizeHelper.html#method-i-sanitize) that will help you display HTML characters properly
Make the RecipesController
index
action the default (root) page for your application. Instead of having to go to http://localhost:3000/recipes/index
to get to your recipes, you want this page to be the default (root). You should therefore be able to go to http://localhost:3000/?search=apple%20pie
for example and see your results.
(optional -- ungraded) Deploy your app to Heroku at recipefinderX.herokuapp.com where X
is any available number from 1 to 10000000. In order to do this you will have to define the FOOD2FORK_KEY with your key to use the food2fork api on Heroku. Instructions for doing that can be found at the following link:
https://devcenter.heroku.com/articles/config-vars#example.
Some unit tests have been provided in the bootstrap files and provide examples of some tests the grader will be evaluating for when you submit your solution. They can be run from any location but be sure to copy the hidden .rspec
file if you move them.
$ rspec
...
Recipes App
displays 'Kahlúa-Spiked' when request parameter 'search' is mocha
utilizes the FOOD2FORK_SERVER_AND_PORT environment variable
utilizes the FOOD2FORK_KEY environment variable
visit root
displays chocolate (default)
displays 'Powered By Food2Fork.com'
displays table element that has a row with 3 columns
column 1 should have the thumbnail inside img tag inside a link tag
title should be inside a second column inside a link tag
Finished in 2.73 seconds (files took 0.54954 seconds to load)
8 examples, 0 failures
The tests assume your server is running on localhost:3000. Please adjust the source code in recipes_app_spec.rb
if that is not the case with your development environment.
ruby Capybara.app_host = "http://localhost:3000"
Submit an .zip archive (other archive forms not currently supported) with your solution root directory as the top-level (e.g., your Gemfile and sibling files must be in the root of the archive and not in a sub-folder. The grader will replace the spec files with fresh copies and will perform a test with different query terms.
|-- app
| |-- assets
| |-- controllers
| |-- helpers
| |-- mailers
| |-- models
| `-- views
|-- bin
|-- config
|-- config.ru
|-- db
|-- Gemfile
|-- Gemfile.lock
|-- lib
|-- log
|-- public
|-- Rakefile
|-- README.rdoc
|-- test
`-- vendor


Jonathan Murray (Adamalthus) is Executive Vice President and Chief Technology Officer at Digital Prism Advisors. His unique blend of large enterprise sales, operating and business strategy and policy experience combined with a deep expertise in modern software architecture and engineering makes him the ideal partner for clients needing to understand and address the complex factors at play in today’s data driven digital transformation.
Jonathan was most recently engaged as interim CTO and Head of Technology at The New York Times. Prior to this he was Executive Vice President & Chief Technology Officer at Warner Music Group (WMG) where he was responsible for the company’s global technology strategy. In this role he drove the transformation of WMG’s technology capabilities, the implementation of a new cloud computing based software delivery factory and new organizational and process models. This experience provided Jonathan with a unique perspective on the disruption of traditional organization structures, jobs and business models being wrought by a new generation of technologies, digital tools and platforms.
Jonathan created the concept of a ‘Composable Enterprise’, which provides a radical blueprint for enabling highly adaptive and agile business models enabled by modern software architectures and platforms. He believes that ‘Time-to-Value’ should be the key success metric for all enterprise technology organizations and that a comprehensive transformation of enterprise software platforms, processes and organization structures will be required to accomplish this. His agenda-defining presentation at the 2013 Cloud Foundry summit is widely seen as a road-map for next generation of enterprise IT.
Jonathan is a published research fellow with the Berkeley Roundtable on the International Economy at the University of California, Berkeley and an advisor to the Bacharach Leadership Group out of Cornell University’s Institute of Labor Relations. He is an advisor to the CEO and executive leadership team of Komatsu Corporation as a member of their Innovation and Technology Advisory Board.
Jonathan is a regular speaker on cloud computing technology and policy issues and an advisor to several technology investment funds, the World Bank, European Commission, the OECD and The Conference Board. In 2012 was recognized as one of the leading cloud-computing visionaries and in 2014 Jonathan was elected to The Economist’s ‘Agenda Digital 50’.
Previously, Jonathan spent sixteen years in various executive roles with Microsoft including Vice President of the company’s Public Sector Technology Office and Vice President of Global Account Sales where he was responsible for leading Microsoft’s engagement with its top enterprise customers. Prior to joining Microsoft Jonathan held a number of systems architecture and design roles with ARCO International Oil and Gas. He has an extensive background in software engineering, architecture and systems design and a formal education in geology and earth sciences.
Jonathan blogs occasionally at adamalthus.com and can be found on Twitter as @Adamalthus. Jonathan lives in Washington, DC. with his partner Desiree van Welsum, an economist and senior IT policy advisor at the World Bank.


MySQL
Driver short name
MySQL
Build dependencies
MySQL library
This driver implements read and write access for spatial data in MySQL tables.
When opening a database, its name should be specified in the form "MYSQL:dbname[,options]" where the options can include comma separated items like "user=*userid*", "password=*password*", "host=*host*" and "port=*port*".
As well, a "tables=*table*;*table*..." option can be added to restrict access to a specific list of tables in the database. This option is primarily useful when a database has a lot of tables, and scanning all their schemas would take a significant amount of time.
Currently all regular user tables are assumed to be layers from an OGR point of view, with the table names as the layer names. Named views are not currently supported.
If a single integer field is a primary key, it will be used as the FID otherwise the FID will be assigned sequentially, and fetches by FID will be extremely slow.
By default, SQL statements are passed directly to the MySQL database engine. It's also possible to request the driver to handle SQL commands with OGR SQL engine, by passing "OGRSQL" string to the ExecuteSQL() method, as name of the SQL dialect.
Driver capabilities
Supports Create()
This driver supports the GDALDriver::Create()
operation
Supports Georeferencing
This driver supports georeferencing
Caveats
In the case of a layer defined by a SQL statement, fields either named "OGC_FID" or those that are defined as NOT NULL, are a PRIMARY KEY, and are an integer-like field will be assumed to be the FID.
Geometry fields are read from MySQL using WKB format. Versions older than 5.0.16 of MySQL are known to have issues with some WKB generation and may not work properly.
The OGR_FID column, which can be overridden with the MYSQL_FID layer creation option, is implemented as a INT UNIQUE NOT NULL AUTO_INCREMENT field. This appears to implicitly create an index on the field.
The geometry column, which defaults to SHAPE and can be overridden with the
GEOMETRY_NAME
layer creation option, is created as a NOT NULL column in unlessSPATIAL_INDEX
is disabled. By default a spatial index is created at the point the table is created.SRS information is stored using the OGC Simple Features for SQL layout, with geometry_columns and spatial_ref_sys metadata tables being created in the specified database if they do not already exist. The spatial_ref_sys table is not pre-populated with SRS and EPSG values like PostGIS. If no EPSG code is found for a given table, the MAX(SRID) value will be used. With MySQL 8.0 or later, the ST_SPATIAL_REFERENCE_SYSTEMS table provided by the database is used instead of spatial_ref_sys.
Connection timeouts to the server can be specified with the MYSQL_TIMEOUT environment variable. For example, SET MYSQL_TIMEOUT=3600. It is possible this variable only has an impact when the OS of the MySQL server is Windows.
The MySQL driver opens a connection to the database using CLIENT_INTERACTIVE mode. You can adjust this setting (interactive_timeout) in your mysql.ini or mysql.cnf file of your server to your liking.
We are using WKT to insert geometries into the database. If you are inserting big geometries, you will need to be aware of the max_allowed_packet parameter in the MySQL configuration. By default it is set to 1M, but this will not be large enough for really big geometries. If you get an error message like: Got a packet bigger than 'max_allowed_packet' bytes, you will need to increase this parameter.
Creation Issues
The MySQL driver does not support creation of new datasets (a database within MySQL), but it does allow creation of new layers within an existing database.
By default, the MySQL driver will attempt to preserve the precision of OGR features when creating and reading MySQL layers. For integer fields with a specified width, it will use DECIMAL as the MySQL field type with a specified precision of 0. For real fields, it will use DOUBLE with the specified width and precision. For string fields with a specified width, VARCHAR will be used.
The MySQL driver makes no allowances for character encodings at this time.
The MySQL driver is not transactional at this time.
Layer Creation Options
OVERWRITE=[YES/NO]: This may be "YES" to force an existing layer of the desired name to be destroyed before creating the requested layer.
LAUNDER=[YES/NO]: Defaults to
YES
. This may be "YES" to force new fields created on this layer to have their field names "laundered" into a form more compatible with MySQL. This converts to lower case and converts some special characters like "-" and "#" to "_". If "NO" exact names are preserved.PRECISION=[TRUE/FALSE]: Defaults to
TRUE
. This may be "TRUE" to attempt to preserve field widths and precisions for the creation and reading of MySQL layers.GEOMETRY_NAME=value: Defaults to
SHAPE
. This option specifies the name of the geometry column.FID=value: Defaults to
OGR_FID
. This option specifies the name of the FID column. Note: option was called MYSQL_FID in releases before GDAL 2FID64=[TRUE/FALSE]: Defaults to
FALSE
. This may be "TRUE" to create a FID column that can support 64 bit identifiers.SPATIAL_INDEX=[YES/NO]: May be "NO" to stop automatic creation of a spatial index on the geometry column, allowing NULL geometries and possibly faster loading.
ENGINE=value: Optionally specify database engine to use. In MySQL 4.x this must be set to MyISAM for spatial tables.
The following example datasource name opens the database schema westholland with password psv9570 for userid root on the port 3306. No hostname is provided, so localhost is assumed. The tables= directive means that only the bedrijven table is scanned and presented as a layer for use.
MYSQL:westholland,user=root,password=psv9570,port=3306,tables=bedrijven
The following example uses ogr2ogr to create copy the world_borders layer from a shapefile into a MySQL table. It overwrites a table with the existing name borders2, sets a layer creation option to specify the geometry column name to SHAPE2.
ogr2ogr -f MySQL MySQL:test,user=root world_borders.shp -nln borders2 -update -overwrite -lco GEOMETRY_NAME=SHAPE2
The following example uses ogrinfo to return some summary information about the borders2 layer in the test database.
ogrinfo MySQL:test,user=root borders2 -so
Layer name: borders2
Geometry: Polygon
Feature Count: 3784
Extent: (-180.000000, -90.000000) - (180.000000, 83.623596)
Layer SRS WKT:
GEOGCS["GCS_WGS_1984",
DATUM["WGS_1984",
SPHEROID["WGS_84",6378137,298.257223563]],
PRIMEM["Greenwich",0],
UNIT["Degree",0.017453292519943295]]
FID Column = OGR_FID
Geometry Column = SHAPE2
cat: Real (0.0)
fips_cntry: String (80.0)
cntry_name: String (80.0)
area: Real (15.2)
pop_cntry: Real (15.2)