Speech
Nicky Morgan sets out her vision for education at the University of Birmingham's annual Priestley Lecture.
Ladies, gentleman, let me start by giving a huge thank you to the University of Birmingham for giving me this opportunity to speak here today in honour of Sir Raymond Priestley and to the vice-chancellor for that kind introduction.
I will say a little more about Sir Raymond later, but I want to use this opportunity today to talk to you about my plan for education, and how I intend to use my time as Education Secretary to make our educational vision a reality.
That vision is clear. It’s a vision of an education system which is truly life transforming, which breaks down barriers and narrows inequalities, allowing every young person to achieve his or her full potential. Achieving that vision has been a lifelong passion for me. My experience in Parliament of representing one of the country’s leading universities has shown me just how important it is that we get it right for children right from the start of their education, so that they can succeed later on.
But while it is my passion, I want to argue today that it is the responsibility of us all. Education is too important - to both the individual pupil and to our nation as a whole - to be left solely to me in government, or teachers in schools, or students themselves.
It must be a partnership of many: of teachers and governors and parents and businesses and unions and government and many others. It must be nothing short of a national mission, and that’s what I want to call for today.
It’s fair to say that the last 4 years have been a period of significant change in our school system. From how schools are governed, teachers are trained, to the exams our young people sit, this government has implemented a far reaching programme of reform in the way we educate our children.
Unsurprisingly, not all of that change has been universally welcomed. In fact, one of the things I’ve learned since taking up this job is that education is a topic that almost everyone has an opinion on and they’re not afraid to share it, and if you don’t believe me I just suggest you take a look at my Twitter timeline!
Some have criticised the nature of the changes we’ve made, others the number, and others the pace.
But when it comes to the scale and speed of the reforms we have made, I make no apologies.
Because every day that we delayed, every moment of dithering, second guessing or hand wringing was another day when young people, young people in our schools today not 10 years down the line, were missing out on the opportunities they deserved. And that waste of talent should be enough to make us all angry:
These failures don’t just affect the young people who miss out on the chance of a good education, but it affects our whole country as well. You all know, and it would come as no surprise to others, that the growing economic power houses of the 21st century are those nations who have placed an absolute premium on getting their education system right. These countries recognise, as you do, that education is that vital national mission.
So I will make no apology for the changes that we have made, because simply put these were changes correcting a series of damaging and unsustainable injustices in the way we treated our young people.
But I acknowledge this - somewhere along the way, what got lost in the heated debates and the drive for change, was who these changes were for, and why we were making them.
So let me be clear here and now. As Education Secretary I’m committed to implementing these reforms, not because I’m an ideological warrior, determined to impose my world view on schools and young people.
The reason I support these reforms is for one simple reason, because they work. Because this ambition to focus on the basics and driving up standards matches the ambition of parents at school gates around the country.
And because these reforms mean that we have more ‘good’ or ‘outstanding’ schools than ever before, more young people entering secondary school able to read, write and add up, and more young people leaving education prepared for life in modern Britain.
And I want to make sure that the parent at the school gate knows not just what is changing in their school but the reason why we’re doing it.
Because when I talk to local parents in Loughborough, they’re not talking about whether the school is an academy or LA maintained, about whether whole class teaching works, or whether a teacher is better qualified by virtue of having PGCE or having spent 40 years working in industry.
What they care about is having the opportunity to send their children to a good local school, a school that will educate and nurture their child, a school that will help their child discover their own unique talents, a school that will keep them in the loop and let them know how they can help their children. And parents need to know that the changes we are making are about ensuring that schools do all of those things and more.
Too often education policy is portrayed as a war, between rival camps of true believers, when the reality couldn’t be further from the truth. And the best example of that? The thousands of teachers across the country who have quietly put our changes to the education system into action.
Because as I said in my speech here in Birmingham just last month, education is a partnership. It isn’t a battle or a war. It isn’t pitting different parts of the education system against each other. Nor is it about false dichotomies between subjects we value and subjects we don’t.
Earlier this month, I gave a speech supporting an initiative to get more young people to study science and maths , and almost immediately I was accused of implying that no arts student would ever get a job again. Needless to say this wasn’t something I said, nor would ever believe.
So my request is that we tone down the rhetoric and let’s have a reasoned debate based on what works. For those looking for an ideological sparring partner to do battle with, quite simply I’m not your woman.
That doesn’t mean I don’t have my beliefs. I do. But I take the view that we need to put the interests of young people at the centre of things and work back from there.
And my commitment is to playing my role in a partnership that delivers for our young people.
Central to that partnership has been the commitment and dedication of our teaching workforce who regularly go beyond the call of duty to secure the best outcomes for the young people they teach.
I want to make sure that we uphold our end of the bargain which is why I launched the teacher workload challenge , to ask teachers what it was that was forcing them to spend so many more hours working outside of the classroom than their counterparts abroad.
In the space of just a month we received more than 43,000 responses to the challenge, which if nothing else gives an indication of just how big the problem is. Over the coming weeks my department, and members of the profession will be analysing these results, with a firm pledge to outline concrete proposals for supporting schools to reduce their teachers workload. Because all of us want teachers to be focusing on what they do best, teaching, supporting and inspiring their students and our children.
But of course this partnership in education goes beyond the government and teachers. It’s a partnership with the whole community - such as with businesses who work with schools to ensure that young people leave with the employability skills to succeed in the world of work.
It’s also a partnership with our great seats of learning, our universities and I’m absolutely delighted to hear that the Birmingham University training school has seen over 4,000 parents registering their children for places ahead of its first year - a real testament to the power of collaboration in our education system and a trailblazing sign of leadership from this university.
But perhaps the most fundamental part of this partnership are the group who are most often overlooked - young people’s parents and carers. For most young people it will be their parents who have the greatest educational influence on their lives, and yet too often there is a false divide between what children learn in school and what they learn in the home.
It’s impossible to exaggerate the impact that parents have on young people’s education, but as the parents in this audience will know, being a mum or a dad doesn’t come with a guidebook and many parents find themselves asking what they should do to help their child learn, how they know that their child is progressing well at school and how involved they should become in their child’s education.
Some parents will want to get involved in the running of a school itself, by joining the governing body. To those dedicated individuals, the largest volunteer body in the country, I have nothing but my thanks to offer, parent governors in particular play a crucial role and their contribution should never be understated.
But other parents, simply want to understand more about how their child is doing and what they can do to help. That means more than just signing a home school agreement and receiving the odd termly newsletter; it means schools taking practical steps to reach out to parents. I’m the first to admit that before I took this job I found the system of assessment levels, now abolished, used to measure children’s progress baffling.
The best schools are already taking steps not just to communicate with parents, but to actively involve them in their children’s learning, and I want to see more schools doing the same, helping parents to take ownership of their children’s education. That might involve promoting Save the Children’s campaign to get parents to set aside 10 minutes a day for their children to read to them or something as simple as practicing their times tables.
Of course this partnership works both ways and schools should be able to place high expectations on their parents as well as pupils.  Teachers work hard to plan and structure lessons and courses and removing children from school means that they miss out on the structured learning that their peers enjoy.
For the same reason, I applaud headteachers like Elizabeth Churton of Hanson Academy in Bradford, who sent home 150 students on the first day of school for not wearing the correct uniform.
She is absolutely right to insist on maintaining high standards in her school and correct to say that such things set the standard and tone for school life. Hard as it may seem to some, headteachers like Mrs Churton need to know they have the support of us all - and that starts with the parents of the pupils entrusted to her care.
Key to our side of the partnership with parents is ensuring that parents know that our schools are addressing their real concerns. From speaking to parents, not just in Loughborough, but right across the country, I know that many have worried that some of our reforms seem too harsh, that the focus has been on too narrow a set of academic indicators, that young people are trapped on an exam treadmill.
Let me say again, I make no apology for the early focus of our reforms, our immediate priority in 2010 had to be getting the basics right for young people. But now that we’ve made those initial changes, the focus now is to help schools do more of that wider work necessary to prepare young people for life in modern Britain.
Central to that is ensuring that young people not only grow academically, but also build character, resilience and grit. That’s why one of my first acts as education secretary was to announce that my department would have a new focus on character education.
We want to ensure that young people leave school with the perseverance to strive to win, to persevere against the odds, to overcome the challenges that life throws at them and bounce back with vigour and confidence, something that the expeditions of Sir Raymond Priestley demonstrate in abundance.
We want pupils to revel in the achievement of victory, but honour the principles of fair play, to win with grace and to learn the lessons of defeat with acceptance and humility. And we want pupils to become honest citizens who contribute to their communities, neighborhoods and countries.
Much of this work has been inspired by the work of the Jubilee Centre at Birmingham University and its innovative research on character education and its work with schools to build best practice in this area.
Organisations like the Jubilee Centre have been pioneers in recognising that character can be taught. Not through formal lessons in character, but by integrating character building activities throughout the curriculum. These skills, traits and virtues can be strengthened by activities as simple as asking young people to stand up and present in front of their class or to learn about the perseverance and personal sacrifice of some of our most celebrated scientists or to take part in competitive sports.
By focusing on these character building activities, schools can ensure that pupils emerge from school more fully rounded and better equipped to meet the challenges of employment and future life.
Like the Jubilee Centre we passionately believe that we owe it to today’s young people to help them marry the highest standards of academic rigour with the character foundation needed to help them flourish.
One of the ways in which Sir Raymond helped to inculcate these skills was through the foundation of the Midland Youth Forum, to allow young people to debate the topical issues of the day.
Sadly for too long debating in schools has been the preserve of independent schools.
Let me read you for instance the top 10 schools in this year’s Oxford schools debating competition, one of the largest school debating competitions in the country:
That ladies and gentlemen is nothing short of a scandal. It simply cannot be the case that the only young people able to stand up and argue their corner are the 7% of pupils educated in private schools.
To correct this, we’ve already invested in the expansion of the charity Debate Mate which works to get young people in a whole range of schools debating and over the coming months we’ll be doing even more to put debating and public speaking skills at the heart of the curriculum.
Of course debating is just one area, and there are many more examples of how we as a government have promoted character building activities in schools. Whether it be through our major investment in sports through the sports premium, or through the creation of our world leading National Citizens Service, this government has consistently emphasised the importance of children leaving education as well rounded individuals.
And I also want parents to know that our schools are keeping their children safe in the classroom and teaching them how to stay safe outside of it. Whether it’s giving them the information that they need to recognise the difference between healthy and unhealthy relationships or how to stay safe online.
The media coverage surrounding the tragic death of Breck Bednar just this week will have confirmed many parents’ fears about the dangers the internet can pose to young people, and schools have a crucial role in helping not just young people stay safe, but in helping their parents understand what they can do to keep their children safe as well. I’ll have more to say on this in the coming weeks.
And of course the vast majority of parents want their children to be kept safe from the influence of extremist views or indoctrination. It was here in Birmingham that we saw what happens when a small minority attempt to take over schools and subvert the teaching of young people. Swift action has resulted in those people being removed from positions of influence within their schools and I’m pleased to say that under the leadership of Sir Mike Tomlinson we are making great strides towards restoring confidence in the governance of Birmingham’s schools.
But those events in Birmingham should also demonstrate why the expectations that we place on our schools can’t simply be academic. It’s why I firmly believe that all schools need to be teaching young people the fundamental British values, democracy, the rule of law, individual liberty and above all mutual respect and tolerance of other people, preparing them for life in modern Britain.
Because growing up in modern Britain is hard. The current generation won’t enjoy the same opportunities as the last. They are not guaranteed a job for life, with a large pension, generous allowances and the sense of security that brings. They will face huge challenges, both in work and in life, as our understanding of families changes and the society around them changes too. They will be subject to competition from all sorts of places, both here in Britain and from overseas too. We talk often of the global race - and I understand that can seem overwhelming - but it’s a reality which we do need to address.
Modern Britain is a country of opportunity but of real uncertainty too. Our job - the job of anyone interested and engaged in the education system today - is to ask how schools can best prepare young people to thrive and survive in this kind of country.
It’s to ask how they can provide them not only with the knowledge, but also the skills, experiences and values they need to be able to face the future with confidence.
That is what I want to make the focus of my time as Education Secretary.
Those waiting for u-turns will have to continue to do so with baited breath, because none of this means a renunciation of the first 4 years of this government’s reform, nor any slowing in the pace of change. But what it does mean is that now is the time to build on what we’ve done so far, to make the case for why we’ve done it, and above to do more to address the concerns of the mums and dads at the school gate, who like all of us here want the very best for their child.
Thank you.
Published: 27 November 2014


[§245-53] Criminal penalties for illegal sale of export or foreign cigarettes. Any person who knowingly violates section 245-51 or 245-52 shall be guilty of a class C felony, and upon conviction thereof, shall be fined not more than $10,000, and may be imprisoned not less than one year and not more than five years, or both. [L 2000, c 201, pt of §1]


This is article heading
The article element specifies independent, self-contained content.
An article should make sense on its own, and it should be possible to read it independently from the rest of the web site.
The article element specifies independent, self-contained content.
An article should make sense on its own, and it should be possible to read it independently from the rest of the web site.
The section element defines section in a document.


Initialization
Commit
Branch
Merge
Pull
Push
Pull Request
Commit
Upload a file with a commit message to update the document.
Select tracked file
Document 1
Document 2
Document 3
Upload your file here
Comments for file commit
Submit


Before Change
time1 = time.time()
for ind, pdb_code in enumerate(ids):
print("Processing complex %d, %s" % (ind, str(pdb_code)))
pdb_subdir = os.path.join(pdbbind_dir, pdb_code)
if not os.path.exists(pdb_subdir):
print("%s is missing!" % pdb_subdir)
missing_pdbs.append(pdb_subdir)
continue
computed_feature = compute_pdbbind_features(featurizer, pdb_subdir,
pdb_code)
if feature_len is None:
feature_len = len(computed_feature)
if len(computed_feature) != feature_len:
print("Featurization failed for %s!" % pdb_code)
continue
y_inds.append(ind)
features.append(computed_feature)
time2 = time.time()
print("TIMING: PDBBind Featurization took %0.3f s" % (time2 - time1))
print("missing_pdbs")
After Change
features = []
y_inds = []
time1 = time.time()
p = Pool(multiprocessing.cpu_count())
args = []
for ind, pdb_code in enumerate(ids):
args.append((ind, pdb_code, pdbbind_dir, featurizer))
results = p.map(compute_single_pdbbind_feature, args)
feature_len = None
for result in results:
if result is None:
continue
if feature_len is None:
feature_len = len(result[1])
if len(result[1]) != feature_len:
continue
y_inds.append(result[0])
features.append(result[1])
time2 = time.time()
print("TIMING: PDBBind Featurization took %0.3f s" % (time2 - time1))
y = y[y_inds]
X = np.vstack(features)


|
My Project
|
Casting strategies that are specific to the Java language. More...
#include <cast.hh>
Public Member Functions | |
| virtual Datatype * | castStandard (Datatype *reqtype, Datatype *curtype, bool care_uint_int, bool care_ptr_uint) const |
| Does there need to be a visible cast between the given data-types. More... | |
| virtual bool | isZextCast (Datatype *outtype, Datatype *intype) const |
| Is zero-extending an input data-type, producing an output data-type, considered a cast. More... | |
| Public Member Functions inherited from CastStrategyC | |
| virtual int4 | localExtensionType (const Varnode *vn) const |
| Decide on integer promotion by examining just local properties of the given Varnode. More... | |
| virtual int4 | intPromotionType (const Varnode *vn) const |
| Calculate the integer promotion code of a given Varnode. More... | |
| virtual bool | checkIntPromotionForCompare (const PcodeOp *op, int4 slot) const |
| Check if integer promotion forces a cast for the given comparison op and slot. More... | |
| virtual bool | checkIntPromotionForExtension (const PcodeOp *op) const |
| Check if integer promotion forces a cast for the input to the given extension. More... | |
| virtual bool | isExtensionCastImplied (const PcodeOp *op, const PcodeOp *readOp) const |
| Is the given ZEXT/SEXT cast implied by the expression its in? More... | |
| virtual Datatype * | arithmeticOutputStandard (const PcodeOp *op) |
| What is the output data-type produced by the given integer arithmetic operation. More... | |
| virtual bool | isSubpieceCast (Datatype *outtype, Datatype *intype, uint4 offset) const |
| Is truncating an input data-type, producing an output data-type, considered a cast. More... | |
| virtual bool | isSubpieceCastEndian (Datatype *outtype, Datatype *intype, uint4 offset, bool isbigend) const |
| Is the given data-type truncation considered a cast, given endianess concerns. More... | |
| virtual bool | isSextCast (Datatype *outtype, Datatype *intype) const |
| Is sign-extending an input data-type, producing an output data-type, considered a cast. More... | |
| Public Member Functions inherited from CastStrategy | |
| CastStrategy (void) | |
| Constructor. | |
| void | setTypeFactory (TypeFactory *t) |
| Establish the data-type factory. More... | |
| virtual | ~CastStrategy (void) |
| Destructor. | |
Additional Inherited Members | |
| Public Types inherited from CastStrategy | |
| enum | IntPromotionCode { NO_PROMOTION = -1, UNKNOWN_PROMOTION = 0, UNSIGNED_EXTENSION = 1, SIGNED_EXTENSION = 2, EITHER_EXTENSION = 3 } |
| Types of integer promotion. More... | |
| Protected Attributes inherited from CastStrategy | |
| TypeFactory * | tlst |
| Type factory associated with the Architecture. | |
| int4 | promoteSize |
| Size of int data-type, (size that integers get promoted to) | |
Casting strategies that are specific to the Java language.
This is nearly identical to the strategy for C, but there is some change to account for the way object references are encoded as pointer data-types within the decompiler's data-type system.
|
virtual |
Does there need to be a visible cast between the given data-types.
The cast is from a current data-type to an expected data-type. NULL is returned if no cast is required, otherwise the data-type to cast to (usually the expected data-type) is returned.
| reqtype | is the expected data-type |
| curtype | is the current data-type |
| care_uint_int | is true if we care about a change in signedness |
| care_ptr_uint | is true if we care about conversions between pointers and unsigned values |
Reimplemented from CastStrategyC.
Is zero-extending an input data-type, producing an output data-type, considered a cast.
Data-types must be provided from the input and output of an INT_ZEXT operation.
| outtype | is the output data-type |
| intype | is the input data-type |
Reimplemented from CastStrategyC.


File
New
Open…
Open Recent
Recent File
Another Recent File
Save
Save As…

What is your quest?
What is the average airspeed of an unladen swallow?
What is your favorite color?
div with contenteditable="true"
div with contenteditable="true"
div with contenteditable="true"
What is your favorite color?
Yellow
Blue
Pink
Radioset Component
Cancel
OK
My name is Sir Launcelot of Camelot
To seek the Holy Grail
Blue
Sir Robin of Camelot
What is the capital of Assyria?
Sir Galahad of Camelot
Blue. No yel--
It is Arthur, King of the Britons
What do you mean? An African or European swallow?
RealArthurKingOfBritons
SirLauncelot
SirRobinTheNotSoBrave
SirNotAppearingInThisFilm
HolyHandGrenade
VorpalBunny
Blue
Chartreuse
Lilac
Pink
Red
Yellow


Also at Silt — Natural Sympathies' new album is sci-fi film soundtrack
Amber Goodwyn, a.k.a. Natural Sympathies, debuts a "bonkers project" at her Porous album release party on Nov. 15.
by Ashley MartinFor Natural Sympathies’ debut album, Porous, Regina synth-pop artist Amber Goodwyn commissioned eight local filmmakers to produce videos for each of her seven songs.
The videos are screening sequentially at Silt Studio on Friday night to kick off the album release party, which also includes a performance and glam-themed dance party.
The films will also be unveiled on YouTube, one a day, starting Friday.
“In the spring, I applied for funding and didn’t think I would get it, because it’s sort of like a bonkers project to make an experimental, episodic, feminist, sci-fi musical,” said Goodwyn.
But that’s exactly what she wrote in her Saskatchewan Arts Board application.
The films follow a loose narrative, about an extraterrestrial named Natural Sympathies whose space ship crashes on Earth. She learns about her new surroundings while journeying to fix and fuel her ship (an “amazing” gold and pink set piece created by visual artist Zoe Schneider).
“It’s an experimental narrative, so it was never intended to … follow classical film logic,” said Goodwyn. “Our aim is less to tell a classical story than it is to make visual poetry.”
The filmmakers each adopted a different style.
Adrienne (Sunny) Adams used paper animation; Elian Mikkola used digital and analog photography techniques; Ania Slusarczyk shot on black and white Super 8; Eric Hill and Evie Ruddy each made films in saturated colour.
Ian Campbell, Mike Rollo and Kyath Battie were the other filmmakers.
Natural Sympathies’ backup dancers are among the characters: The Mutual Affection are Avianna Hudym, Jenelle Jakobsen, Caitlin Mullan, Meghan Trenholm and Shayna Stock.
They will perform following the film screening, which starts Friday, Nov. 15, 9:30 p.m. at Silt Studio. Doors open at 8 p.m. The theme of the evening is “glam” (open to interpretation).
Admission is a suggested $10 to $20, with proceeds split equally among the artists. Tickets can also be bought in advance at siltstudio.com. Five spots are reserved for people who can’t afford entry; inquire at naturallysympathetic@gmail.com.


0
0
0
days
0
0
hours
0
0
minutes
0
0
seconds
Coming Soon
Submit
follow us on
Twitter
Find us on
Facebook


Guan Eng: Federal govt will continue with more social welfare programmes
BUTTERWORTH, Nov 24 — The federal government will remain highly committed to the people and have more programmes for the welfare of the people, said Finance Minister Lim Guan Eng.
He said the government needed more time and was now working on reviving the economy, after which programmes will be implemented for the benefit of the people.
“We hope that when the (economic) situation improves, we can launch programmes for the benefit of the people. They are needed but we must be sure we have a strong financial capability,” he told reporters after attending a social welfare programme in Taman Pandan, Butterworth here today.
Lim said all the promises made by the Pakatan Harapan have to be kept, but it needed time before that could happen.
“The previous government took five years to keep their word, so if you want to compare, then I hope you give the federal government the same time. Now, we can see a lot of difference, changes, but they are in stages,” he said.
He added that the people can see the difference between the previous government and the current one, where under the previous government, only their cronies benefited and not the ordinary folks.
“If previously the ordinary person did not get anything, while only the cronies benefited, now the people can see the difference between a government of the people and a government which is based on cronyism, we hope to ensure that the people benefit, not the cronies,” he said.
Lim added that the government was always working on its efforts to help sectors which need aid. — Bernama


Sue+Ellen+Francisco
Sarah's Stems of Hope
Home
Sarah's Journey
Multiple Sclerosis Resources
Connect
DONATE
widget @
surfing-waves.com
Tweets by MSUK6
Sarah's Stems of Hope
042-93-66436
32 Dublin Street
Dublin City
<EMAIL_ADDRESS>Connect With Us


Before Change
// add weight of 0 for least used mem block
read_weights = T.stack(read_weights, 0)
read_weights = T.cat([read_weights, read_weights.new(b, 1, 1)], 2)
read_weights = var(read_weights)
// add least used mem to read positions
read_positions = T.stack(read_positions, 0)
read_positions = var(read_positions)
After Change
distances = F.softmax(distances)
read_weights.append(distances)
read_positions.append(T.clamp(positions, 0, self.mem_size-1))
// add weight of 0 for least used mem block
read_weights = T.stack(read_weights, 0)
new_block = read_weights.data.new(b, 1, 1)


| Methods | Explanation | Implementation |
|---|---|---|
| all? | Passes each element of the collection to the given block. The method returns true if the block never returns false or nil. If the block is not given, Ruby adds an implicit block of { |obj| obj } which will cause all? to return true when none of the collection members are false or nil. | %w[ant bear cat].all? { |word| word.length >= 3 } #=> true
%w[ant bear cat].all? { |word| word.length >= 4 } #=> false [nil, true, 99].all? #=> false |
| grep | Returns an array of every element in enum for which Pattern === element. If the optional block is supplied, each matching element is passed to it, and the block’s result is stored in the output array. | (1..100).grep 38..44 #=> [38, 39, 40, 41, 42, 43, 44] c = IO.constants c.grep(/SEEK/) #=> [:SEEK_SET, :SEEK_CUR, :SEEK_END] res = c.grep(/SEEK/) { |v| IO.const_get(v) } res #=> [0, 1, 2] |
| each_with_index | Calls block with two arguments, the item and its index, for each item in enum. Given arguments are passed through to each(). If no block is given, an enumerator is returned instead. | hash = Hash.new %w(cat dog wombat).each_with_index { |item, index| hash[item] = index } hash #=> {"cat"=>0, "dog"=>1, "wombat"=>2} |
| take_while | Passes elements to the block until the block returns nil or false, then stops iterating and returns an array of all prior elements. If no block is given, an enumerator is returned instead. | a = [1, 2, 3, 4, 5, 0] a.take_while { |i| i < 3 } #=> [1, 2] |
| each_slice | Iterates the given block for each slice of |
(1..10).each_slice(3) { |a| p a } # outputs below [1, 2, 3] [4, 5, 6] [7, 8, 9] [10] |
| map & collect | Returns a new array with the results of running block once for every element in enum. If no block is given, an enumerator is returned instead. | (1..4).map { |i| i*i } #=> [1, 4, 9, 16] (1..4).collect { "cat" } #=> ["cat", "cat", "cat", "cat"] |


% navigation = [ ('presence_weekday.html', 'Presence by weekday'), ('mean_time_weekday.html', 'Presence mean time'), ('presence_start_end.html', 'Presence start-end') ]%>
--


API endpoint to detect and recognize the face of the person in the image
Text analysis and find the sentiment of the customer raising the incident
Identify the intent from the given text. general repository of intents related to Cisco Order Management
{{selectedObject.sample_input}}


| | Geographic coverage | Source |
| Central government | | |
| HM Forces | UK | Ministry of Defence: DASA |
| National Health Service | England | Health and Social Care Information Centre(IC) |
| | Wales | NHS Wales Informatics Service |
| | Scotland | Scottish Government |
| | Northern Ireland | Department of Finance and Personnel |
| Academies | England | School Workforce Census and list of all open academies (Department for Education) |
| Other central government | Great Britain | Quarterly Public Sector and Employment Survey (ONS); Community Rehabilitation Companies and Police Strength |
| | Northern Ireland | Department of Finance and Personnel |
| Local government | | |
| Local authorities | England and Wales | Quarterly Public Sector and Employment Survey (ONS) |
| | Scotland | Joint Staffing Watch (Scottish Government) |
| | Northern Ireland | Department of Finance and Personnel |
| Police (including civilians) | England and Wales | Home Office |
| | Scotland | Quarterly Public Sector and Employment Survey (ONS) |
| | Northern Ireland | Department of Finance and Personnel |
| Public corporations | | |
| | Great Britain | Quarterly Public Sector Employment Survey (ONS) |
| | Northern Ireland | Department of Finance and Personnel |


Contents
classdef BinaryDevice < Zaber.Device
% BINARYDEVICE Implements the Zaber.Device interface for the Binary protocol. % % device = Zaber.BINARYDEVICE.initialize(protocol, address); % protocol - An instance of Zaber.BinaryProtocol. % address - The numeric address of the device on a daisy chain. % Legal values are 1-99. % device - Output: An initialized instance of this class. % % This class represents a single Zaber device on a possible daisy chain % of multiple devices. An instance of this class can be used to % communicate with the device, and its peripherals if it has any. The % generic methods and properties defined by the base class can be used % for interaction with basic features. More advanced usage requires % use of protocol-specific commands; the request method is useful for % that as it will automatically ensure your message is addressed to the % device represented by the class instance. % % See also Zaber.Device, Zaber.Protocol.detect, Zaber.BinaryProtocol % Author: Zaber Technologies Software Team<EMAIL_ADDRESS>Public instance properties
properties (SetAccess = protected) % MESSAGEIDSENABLED Set to true if the device is using message IDs. MessageIdsEnabled end
Public instance methods
methods function reply = request(obj, aCommand, aData) % REQUEST Convenience method to transact with a device. % reply = device.REQUEST(command, data); % % command - Command to send the device. This is a byte. % data - Integer argument for the command. % reply - Response from the device, as a BinaryMessage. % Note that if there are overlapping requests this % will actually be the next response received on the % port, which could potentially be from another % device or another command. % % This method ignores timeouts and will block until a message % is received. % % See also Zaber.BinaryProtocol.request, Zaber.BinaryProtocol.send, % Zaber.BinaryProtocol.receive, Zaber.BinaryErrorType message = Zaber.BinaryMessage(obj.DeviceNo, aCommand, aData); obj.Protocol.send(message); while (~obj.Protocol.canreceive()) pause(0.01); end reply = obj.Protocol.receive(obj.MessageIdsEnabled); end function value = get(obj, aSetting) % GET Read a setting from the device. % value = device.get(setting) % % setting - Numeric identifier for the setting to read. See the % Zaber Binary protocol manual for legal values: % http://www.zaber.com/wiki/Manuals/Binary_Protocol_Manual#Return_Setting_-_Cmd_53 % or use the Zaber.BinaryCommandType enumeration. % value - Current value of the setting, as a 32-bit integer. % % In the event of a communication error, an error will be thrown. % If the device returns an error result, a warning will occur and % the method will return the empty array. % % See also set, Zaber.BinaryCommandType, Zaber.BinaryErrorType value = []; reply = obj.request(Zaber.BinaryCommandType.Return_Setting, aSetting); if (~isa(reply, 'Zaber.BinaryMessage')) error('Zaber:BinaryDevice:get:communicationError', ... 'Device %d failed to respond to request to read setting %d.', ... obj.DeviceNo, aSetting); elseif (reply.IsError) warning('Zaber:BinaryDevice:get:readError', ... 'Attempt to read setting %d from device %d resulted in error %d (%s).', ... aSetting, obj.DeviceNo, reply.Data, ... char(Zaber.BinaryErrorType(reply.Data))); elseif (reply.Command ~= aSetting) error('Zaber:BinaryDevice:get:badSetting', ... 'Device %d responded with wrong setting number when reading setting %d.', ... obj.DeviceNo, aSetting); else value = reply.Data; end end function result = set(obj, aSetting, aValue) % SET Write a value to a device setting. % result = device.set(setting, value) % % setting - Numeric identifier for the setting to write. For legal % values, see the Zaber binary protocol manual: % http://www.zaber.com/wiki/Manuals/Binary_Protocol_Manual % or use the Zaber.BinaryCommandType enumeration. % value - New value of the setting, as a 32-bit integer. % result - True if the write succeeded, or the reply message if % the device returned an error response. % % Errors will be thrown if there is a communication error. If the % setting does not exist, if the setting is read-only, or if the % value provided is out of range for the setting then a warning % will occur and the device's response message will be returned. % % See also get, Zaber.BinaryCommandType, Zaber.BinaryErrorType result = false; reply = obj.Protocol.request(... Zaber.BinaryMessage(obj.DeviceNo, int32(aSetting), aValue)); if (~isa(reply, 'Zaber.BinaryMessage')) error('Zaber:BinaryDevice:set:commandFailed', ... 'Device %d failed to respond to request to write setting %d.', ... obj.DeviceNo, aSetting); elseif (reply.IsError) warning('Zaber:BinaryDevice:set:writeError', ... 'Attempt to read setting %d from device %d resulted in error %d (%s).', ... aSetting, obj.DeviceNo, reply.Data, ... char(Zaber.BinaryErrorType(reply.Data))); else result = true; end end function range = getrange(obj) % GETRANGE Determine the movement limits of the device. % range = device.GETRANGE(); % % range - A 1x2 matrix with the first entry being the lower bound % on legal device position and the second entry being the % upper bound. Empty array if the concept doesn't apply. % For a multi-axis controller the result will be an Nx2 % array where N is the number of axes. For rotary devices % the result is the range for one full rotation. Note % that the range returned may not reflect physical limits % if the device has been configured to use less than its % full range of travel. % % Reads device settings to determine the device's current idea of % its range of movement. Returns the empty array if the concept % does not apply to the device type. % % See also getposition, moveabsolute, getnumindices, Units minPos = 0; if (obj.FirmwareVersion >= 6.0) minPos = obj.get(Zaber.BinaryCommandType.Set_Minimum_Position); end if (obj.MotionType == Zaber.MotionType.Rotary) if (obj.FirmwareVersion >= 6.22) maxPos = obj.get(Zaber.BinaryCommandType.Set_Cycle_Distance); else maxPos = obj.get(Zaber.BinaryCommandType.Set_Maximum_Position); end circle = obj.Units.positiontonative(360.0); maxPos = min(circle, maxPos); else maxPos = obj.get(Zaber.BinaryCommandType.Set_Maximum_Position); end range = [minPos maxPos]; end function error = waitforidle(obj, aPingInterval) % WAITFORIDLE Block until the device stops moving. % error = device.WAITFORIDLE(); % error = device.WAITFORIDLE(interval); % % interval - Optional; number of seconds to wait between checks % of the device's state. Defaults to 0.1 seconds. % error - Return value, normally empty. If the device % entered an error state while this method was % checking for idleness, this method will return the % error message. % % This method will ping the device repeatedly until the device % either becomes idle or produces an error response. % % Note this command is of little utility when using the Binary % protocol because most of the command helpers block until they get % a response. It's included for API completeness and to aid protocol % independence. This method returns immediately if there is a % device error, the device is stalled or the device is parked. interval = 0.1; if (nargin > 1) interval = aPingInterval; end moving = true; if (~obj.IsAxis) moving = false; end while (moving) reply = obj.request(... Zaber.BinaryCommandType.Return_Status, 0); if (~isa(reply, 'Zaber.BinaryMessage')) error = reply; moving = false; elseif (reply.IsError || ... (reply.Data == Zaber.BinaryStatusType.Idle) || ... (reply.Data == Zaber.BinaryStatusType.Stalled_or_Displaced) || ... (reply.Data == Zaber.BinaryStatusType.Parked)) error = reply.Data; moving = false; else pause(interval); end end end function error = home(obj) % HOME Move the device to its home position. % error = device.HOME(); % % error - Error code from the device, if the command fails. See % the list of error codes in the Zaber Binary protocol % manual: % http://www.zaber.com/wiki/Manuals/Binary_Protocol_Manual#Error_Codes % or use the Zaber.BinaryErrorType enumeration. % % This command will block until the move completes or an error % occurs - potentially a long time. % % See also moveabsolute, moverelative, moveatvelocity, moveindexed, % getposition, stop, waitforidle, Zaber.BinaryErrorType error = []; response = obj.request(Zaber.BinaryCommandType.Home, 0); if (response.IsError) error = response.Data; end end function error = moveabsolute(obj, aPosition) % MOVEABSOLUTE Move the state to an absolute position. % error = device.moveabsolute(position); % % position - Position to move to, in native device units. % error - Error code from the device, if the command fails. See % the list of error codes in the Zaber Binary protocol % manual: % http://www.zaber.com/wiki/Manuals/Binary_Protocol_Manual#Error_Codes % or use the Zaber.BinaryErrorType enumeration. % % This command will block until the move completes or an error % occurs - potentially a long time. % If the move completes successfully, the empty array is returned. % % See also home, stop, waitforidle, getposition, moverelative, % moveatvelocity, moveindexed, Units, Zaber.BinaryErrorType error = []; response = obj.request(... Zaber.BinaryCommandType.Move_Absolute, int32(aPosition)); if (response.IsError) error = response.Data; end end function error = moverelative(obj, aDelta) % MOVERELATIVE Move the device by a relative amount. % error = device.MOVERELATIVE(delta); % % delta - Distance to move by, in native device units. % error - Error code from the device, if the command fails. See % the list of error codes in the Zaber Binary protocol % manual: % http://www.zaber.com/wiki/Manuals/Binary_Protocol_Manual#Error_Codes % or use the Zaber.BinaryErrorType enumeration. % % This method blocks until the move completes. % % See also home, stop, waitforidle, getposition, moveabsolute, % moveatvelocity, moveindexed, Units, Zaber.BinaryErrorType error = []; response = obj.request(... Zaber.BinaryCommandType.Move_Relative, int32(aDelta)); if (response.IsError) error = response.Data; end end function error = moveatvelocity(obj, aVelocity) % MOVEATVELOCITY Move the device at a specified velocity. % error = device.MOVEATVELOCITY(velocity); % % velocity - Speed to move at, in native device units. % error - Error code from the device, if the command fails. See % the list of error codes in the Zaber Binary protocol % manual: % http://www.zaber.com/wiki/Manuals/Binary_Protocol_Manual#Error_Codes % or use the Zaber.BinaryErrorType enumeration. % % This method blocks until the move completes. % % See also home, stop, waitforidle, getposition, moverelative, % moveabsolute, moveindexed, Units, Zaber.BinaryErrorType error = []; response = obj.request(... Zaber.BinaryCommandType.Move_at_Constant_Speed, int32(aVelocity)); if (response.IsError) error = response.Data; end end function error = stop(obj) % STOP Stop the device if it is moving. % error = device.STOP(); % % error - Error code from the device, if the command fails. See % the list of error codes in the Zaber Binary protocol % manual: % http://www.zaber.com/wiki/Manuals/Binary_Protocol_Manual#Error_Codes % or use the Zaber.BinaryErrorType enumeration. % % See also home, waitforidle, getposition, moveabsolute, % moverelative, moveatvelocity, moveindexed, Units, % Zaber.BinaryErrorType error = []; response = obj.request(Zaber.BinaryCommandType.Stop, 0); if (response.IsError) error = response.Data; end end function pos = getposition(obj) % GETPOSITION Get the current device position in native units. % pos = device.GETPOSITION(); % % If there is a communication error or the device is not an axis, % the empty array will be returned. % % See also range, stop, Units, moveabsolute, moverelative, % moveatvelocity, moveindexed, waitforidle pos = []; response = obj.request(... Zaber.BinaryCommandType.Return_Current_Position, 0); if (~response.IsError) pos = response.Data; end end function num = getnumindices(obj) % GETNUMINDICES Determine how many indexed positions the device has. % num = getvice.GETNUMINDICES(); % % Return value is the maximum position that can be passed to % MOVEINDEXED. Returns zero on devices that do not support the % MOVEINDEXED command. % % See also range, moveindexed, getposition num = 0; range = obj.getrange(); indexSize = obj.get(Zaber.BinaryCommandType.Set_Index_Distance); if (~isempty(range) && ~isempty(indexSize)) num = range(2) / indexSize; end end function error = moveindexed(obj, aIndex) % MOVEINDEXED Move to an indexed position. % error = device.MOVEINDEXED(index); % % index - The index of the position to move to. Minimum value is 1, % and maximum value is the number returned by % GETNUMINDICES. Will be rejected on devices that don't % support indexed moves. % error - Error code from the device, if the command fails. See % the list of error codes in the Zaber Binary protocol % manual: % http://www.zaber.com/wiki/Manuals/Binary_Protocol_Manual#Error_Codes % or use the Zaber.BinaryErrorType enumeration. % % This command is intended for use with indexed-position devices % such as the Filter Wheel. Although the other movement commands % will often work with such devices, this method provides an easier % way to reach a useful position. % % This command will block until the movement completes. % % See also home, stop, waitforidle, moveabsolute, moverelative, % moveatvelocity, Zaber.BinaryErrorType error = []; response = obj.request(... Zaber.BinaryCommandType.Move_Index, int32(aIndex)); if (response.IsError) error = response.Data; end end end
Public static methods
methods (Static) function instance = initialize(aProtocol, aDeviceNumber, aDeviceId) % INITIALIZE Construct a representation for a single device. % device = Zaber.BinaryDevice.INITIALIZE(protocol, address, id) % % protocol - A BinaryProtocol instance. % address - The daisy chain address of a device to represent. % id - The numeric device type ID of the device. % Optional. If not provided it will be queried for. % obj - An initialized BinaryDevice instance. % % Given the daisy chain address and device type ID for a device % that has been found using the given protocol, queries the device % for its properties and constructs a new Zaber.Device subclass % instance to represent that device. % % See also Zaber.BinaryProtocol, Zaber.Device, % Zaber.AsciiDevice.initialize if (~isa(aProtocol, 'Zaber.BinaryProtocol')) error('Zaber:BinaryDevice:initialize:badProtocol', ... 'Protocol must be binary to use this method.'); end if (nargin > 2) deviceId = aDeviceId; else reply = aProtocol.request(... Zaber.BinaryMessage(aDeviceNumber, ... Zaber.BinaryCommandType.Return_Device_ID, 0)); if (~isempty(reply) && ~reply.IsError) deviceId = reply.Data; else error('Zaber:BinaryDevice:initialize:idError', ... 'Failed to get the type ID for device %d.', ... aDeviceNumber); end end instance = Zaber.BinaryDevice(aProtocol, aDeviceNumber, deviceId); % Get the firmware version. reply = aProtocol.request(... Zaber.BinaryMessage(instance.DeviceNo, ... Zaber.BinaryCommandType.Return_Firmware_Version, 0)); if (~reply.IsError) instance.FirmwareVersion = double(reply.Data) / 100.0; end % Determine if message ID mode is enabled. if (instance.FirmwareVersion < 6.0) data = instance.get(Zaber.BinaryCommandType.Set_Device_Mode); if (isnumeric(data)) instance.MessageIdsEnabled = (0 ~= bitand(data, 64)); else error('Zaber:BinaryDevice:initialize:messageIdCheckFailed', ... 'Failed to determine message ID mode on device %d.', ... aDeviceNumber); end else data = instance.get(Zaber.BinaryCommandType.Set_Message_ID_Mode); if (isnumeric(data)) instance.MessageIdsEnabled = (data == 1); else error('Zaber:BinaryDevice:initialize:messageIdCheckFailed', ... 'Failed to determine message ID mode on device %d.', ... aDeviceNumber); end end % Get the peripheral ID. reply = instance.Protocol.request(... Zaber.BinaryMessage(instance.DeviceNo, ... Zaber.BinaryCommandType.Return_Setting, ... Zaber.BinaryCommandType.Set_Peripheral_ID)); if (isa(reply, 'Zaber.BinaryMessage') && ... ~reply.IsError && (reply.Command == Zaber.BinaryCommandType.Set_Peripheral_ID)) instance.PeripheralId = reply.Data; end % Find database records for this device and peripheral. db = Zaber.DeviceDatabase.instance(); deviceRecord = db.finddevice(instance.DeviceId); periRecord = db.findperipheral(deviceRecord, instance.PeripheralId); instance.Name = db.getdevicename(deviceRecord, periRecord); % Get unit conversion properties from the database. if (~isempty(periRecord)) [instance.MotionType, instance.Units] = ... db.determinemotiontype(deviceRecord, periRecord); % Get the current resolution. instance.Units.Resolution = instance.get(... Zaber.BinaryCommandType.Set_Microstep_Resolution); end instance.IsAxis = (instance.MotionType ~= Zaber.MotionType.None); instance.IO = Zaber.BinaryIoPort.detect(instance); end end
Protected instance methods
methods (Access = protected) function obj = BinaryDevice(aProtocol, aDeviceNumber, aDeviceId) % BINARYDEVICE Initializes properties to their default values. % device = Zaber.BINARYDEVICE(protocol, address, id) % % protocol - A BinaryProtocol instance. % address - The daisy chain address of a device to represent. % id - The numeric device type ID of the device. % obj - An initialized BinaryDevice instance. % % The device ID argument is the type number of the device. If not % detected through code, you can look these IDs up on Zaber's % website at: http://www.zaber.com/support/?tab=ID%20Mapping % % This constructor does not fill in the properties of the % device. Use the static initialize method to do that. % % See also initialize, Device obj = obj@Zaber.Device(aProtocol, aDeviceNumber, aDeviceId); obj.MessageIdsEnabled = false; end end
end


[1]
had this past recommendations and low-light features particularly the pics are too dark.
[2]
Image quality so far i 've only be great i get a Sony memory stick the pics are too dark.


Web Databases
XML database - Wikipedia
XML - W3C
XML Tutorial - w3schools
XPath and XQuery
W3C XPath 1.0
W3C XPath 2.0
XPath Tutorial
A Light but Formal Introduction to XQuery
W3C XQuery
XQuery Tutorial
DTD and XML Schema
DTD - Wikipedia
DTD Tutorial
DTD Introduction
XML Schema - Wikipedia
XML Schema Tutorial
W3C XML Schema
Namespaces in XML: Best Practices, Risky Business
XMLSpy 2008 Tutorial from Altova
.
Native XML Databases
OrientStore - OrientX
eXist XML DB
Tamino
XML to Relational Databases
XParent paper
CPI paper
Mapping DTDs to Databases
Mapping W3C Schemas to Object Schemas to Relational Schemas
,
INode paper


Malia’s next music video to be filmed solely with Samsung mobile cameras
by Mihai M.In a bid to promote some of its latest Galaxy products and ecosystem, Samsung Brazil is teaming up with Jazz singer Malia who will film her next music video using only Samsung products instead of professional cameras and equipment.
The music video will be created using the Galaxy Tab S6 and Galaxy Note 10+, but other devices like the Galaxy Watch Active 2, the Galaxy Buds, and the AKG N700NC headphones will also be a part of the production process.
In essence, the camera setup will consist of a 16MP ultrawide sensor and two 12MP wide and telephoto shooters (Galaxy Note 10+), as well as a 13MP wide and 5MP ultrawide sensor (Galaxy Tab S6). Evidently, it’s not all about megapixels, and underlying technologies such as Super Steady recording on the Galaxy Note 10+ will play a role as well.
Borrowing a page from Apple’s book but pushing things further
While the subject matter is different, it does seem like Samsung doesn’t want to be outshined by Apple and its latest ‘Shot on iPhone’ ad campaign. However, it could be argued that Samsung is pushing things one step further, as Apple’s ads are just that: ads shot on iPhones by professional filmmakers, whereas Samsung Brazil and Malia will create a full-fledged music video using only Galaxy products.
Samsung Brazil didn’t reveal exactly when we can expect the music video to be released, but it could be done by the end of the year. It will be very interesting to see how this creation will compare to Apple’s ads, even if the approach is relatively different.
Last week we also reported on Samsung Indonesia’s Galaxy Movie Studio educational platform meant to teach aspiring filmmakers how to hone their craft and create quality content using smartphones instead of professional equipment. This seems to be a common theme nowadays, and it might become even more prevalent next year as Samsung seemingly intends on pushing the Galaxy S11 series’ camera configuration to new heights with 8K video recording and more.
Galaxy Note 10+
- Model: SM-N975F
- Dimensions: 162.3 x 77,2 x 7.9mm
- Display: 6.8"(172.7mm) Super AMOLED
- CPU: Exynos 9825
- Camera: 12 Ultra Wide: 16MP F2.2 (123°) & Wide-angle: 12MP 2PD AF F1.5/F2.4 OIS (77°) & Telephoto: 12MP F2.1 OIS (45°) & DepthVision Camera: VGA
Galaxy Tab S6 (LTE)
- Model: SM-T865
- Dimensions: 244.5 x 159.5 ×5.7mm
- Display: 10.5" (266.7) Super AMOLED
- CPU: Qualcomm Snapdragon 855
- Camera: 13 MP, CMOS & 5MP, CMOS
Galaxy Watch Active 2 (LTE) (44mm)
- Model: SM-R825
- Dimensions: 44 x 44 x 10.9mm
- Display: 1.4"(34mm) Super AMOLED
- CPU: Exynos 9110
- Camera:


Spike Framework have selectors
feature which can handle multiple the same id
and generate automatic jQuery selectors
for views.
Selectors are created for current context of controller
, component
or modal
module.
Then you can declare the same id
attributes in different templates of those modules without
taking care of any conflicts.
'import $this as app.controller.Home'; app.controller.register("Home", { init: function(params) { $this.selector.login() //returns jQuery selector for id="login" } });
Spike will create dynamic id
attributes values for example
id="login"
will looks like id="login-f5df4g-5g6g6-g456h"
Developer have to understand, that selector
object
contains set of functions which ones returns jQuery selector
Also developer don't have to care about efficient selecting, because selecting via id
attribute is the fastest way in general, and Spike also cache
selectors per every
controller lifecycle
.
jQuery click
event:'import $this as app.controller.Home'; app.controller.register("Home", { init: function(params) { $this.selector.login().click(function(){ app.log('button clicked'); }); } });
All functions provided by jQuery
are available.
setting HTML
or value
usage:'import $this as app.controller.Home'; app.controller.register("Home", { init: function(params) { $this.selector.login().html('Button name'); $this.selector.emailInput().val('myemail@test.com'); } });
Spike also allows to select by names but names are not changing
'import $this as app.controller.Home'; app.controller.register("Home", { init: function(params) { $this.selector.names.username().val('user123'); $this.selector.names.password().val('1111'); } });Controller example view:


With E-Mandi, you get to order or sell vegetables at the comfort of your home! This is on a whole new level for farmers to get the best prices for their vegetables and for retailers to cater to a wide array of customers.
Newly improved, and full of great utility functions, E-Mandi is set to lead the way in online vegetable sales! It provides hazzle-free and smooth experience to the user as the latest technologies have been used for the website.
E-Mandi is designed to be utilised by a number of users, keeping in mind even the most basic users so that they don't feel blotted out! The working and functions are implemented in such a way so that they don't require any additional instructions.
BIM2016002
ITM2016009
IIT2016135


{% include head.html %}
Visit our
Etsy store
for modules, kits, compoments and more!
{{content}}
{% include footer.html %}


| ID | Formula | FW | DSSTox_CID | DSSTox_RID | DSSTox_GSID | DSSTox_FileID_Sort | TS_ChemName | TS_ChemName_Synonyms | TS_CASRN | CASRN_ChemName_Relationship | TS_Description | ChemNote | STRUCTURE_Shown | STRUCTURE_Formula | STRUCTURE_MW | STRUCTURE_ChemType | STRUCTURE_DefinedOrganicForm | STRUCTURE_IUPAC | STRUCTURE_SMILES | STRUCTURE_SMILES_Desalt | Substance_modify_yyyymmdd | |
| 22694-96-8 | 12283 | C6H11NO | 113.1576 | 27133 | 82140 | 47133 | 6821 | 2,4,5-Trimethyl-3-oxazoline | 22694-96-8 | primary | mixture of Z,E isomers | mixture of (2R,S)- (5R,S)- isomers; structure shown without stereochem | representative isomer in mixture | C6H11NO | 113.1576 | defined organic | parent | 2,4,5-trimethyl-2,5-dihydro-1,3-oxazole | CC1OC(C)N=C1C | CC1OC(C)N=C1C | 20100502 |


|
GPGPU-Sim
|
Go to the source code of this file.
Functions | |
| static void | print_simulation_time () |
| void * | gpgpu_sim_thread_sequential (void *) |
| void * | gpgpu_sim_thread_concurrent (void *) |
| void | synchronize () |
| void | exit_simulation () |
| gpgpu_sim * | gpgpu_ptx_sim_init_perf () |
| void | start_sim_thread (int api) |
| int | gpgpu_opencl_ptx_sim_main_perf (kernel_info_t *grid) |
| int | gpgpu_opencl_ptx_sim_main_func (kernel_info_t *grid) |
| Functional simulation of OpenCL. More... | |
Variables | |
| struct gpgpu_ptx_sim_arg * | grid_params |
| sem_t | g_sim_signal_start |
| sem_t | g_sim_signal_finish |
| sem_t | g_sim_signal_exit |
| time_t | g_simulation_starttime |
| pthread_t | g_simulation_thread |
| gpgpu_sim_config | g_the_gpu_config |
| gpgpu_sim * | g_the_gpu |
| stream_manager * | g_stream_manager |
| static int | sg_argc = 3 |
| static const char * | sg_argv [] = {"", "-config","gpgpusim.config"} |
| pthread_mutex_t | g_sim_lock = PTHREAD_MUTEX_INITIALIZER |
| bool | g_sim_active = false |
| bool | g_sim_done = true |
| bool | g_cuda_launch_blocking |
| void exit_simulation | ( | ) |
Definition at line 174 of file gpgpusim_entrypoint.cc.
| int gpgpu_opencl_ptx_sim_main_func | ( | kernel_info_t * | grid | ) |
Functional simulation of OpenCL.
This function call the CUDA PTX functional simulator
Definition at line 261 of file gpgpusim_entrypoint.cc.
| int gpgpu_opencl_ptx_sim_main_perf | ( | kernel_info_t * | grid | ) |
Definition at line 249 of file gpgpusim_entrypoint.cc.
| gpgpu_sim* gpgpu_ptx_sim_init_perf | ( | ) |
Definition at line 186 of file gpgpusim_entrypoint.cc.
| void* gpgpu_sim_thread_concurrent | ( | void * | ) |
Definition at line 95 of file gpgpusim_entrypoint.cc.
| void* gpgpu_sim_thread_sequential | ( | void * | ) |
Definition at line 67 of file gpgpusim_entrypoint.cc.
|
static |
Definition at line 230 of file gpgpusim_entrypoint.cc.
| void start_sim_thread | ( | int | api | ) |
Definition at line 218 of file gpgpusim_entrypoint.cc.
| void synchronize | ( | ) |
Definition at line 157 of file gpgpusim_entrypoint.cc.
| bool g_cuda_launch_blocking |
Definition at line 1666 of file cuda-sim.cc.
| bool g_sim_active = false |
Definition at line 92 of file gpgpusim_entrypoint.cc.
| bool g_sim_done = true |
Definition at line 93 of file gpgpusim_entrypoint.cc.
| pthread_mutex_t g_sim_lock = PTHREAD_MUTEX_INITIALIZER |
Definition at line 91 of file gpgpusim_entrypoint.cc.
| sem_t g_sim_signal_exit |
Definition at line 50 of file gpgpusim_entrypoint.cc.
| sem_t g_sim_signal_finish |
Definition at line 49 of file gpgpusim_entrypoint.cc.
| sem_t g_sim_signal_start |
Definition at line 48 of file gpgpusim_entrypoint.cc.
| time_t g_simulation_starttime |
Definition at line 51 of file gpgpusim_entrypoint.cc.
| pthread_t g_simulation_thread |
Definition at line 52 of file gpgpusim_entrypoint.cc.
| stream_manager* g_stream_manager |
Definition at line 56 of file gpgpusim_entrypoint.cc.
| gpgpu_sim* g_the_gpu |
Definition at line 55 of file gpgpusim_entrypoint.cc.
| gpgpu_sim_config g_the_gpu_config |
Definition at line 54 of file gpgpusim_entrypoint.cc.
| struct gpgpu_ptx_sim_arg* grid_params |
Definition at line 46 of file gpgpusim_entrypoint.cc.
|
static |
Definition at line 60 of file gpgpusim_entrypoint.cc.
|
static |
Definition at line 61 of file gpgpusim_entrypoint.cc.


functions = copy.copy(self.functions)
for name in self._unused_function_names:
functions.pop(name)
features = {}
h = x
for name, funcs in functions.items():
features = {}
h = x
for name, funcs in self.functions.items():
if len(feature_names) == 0:
break
for func in funcs:
h = func(h)
if name in feature_names:
features[name] = h
feature_names.remove(name)
if self._return_tuple:
features = tuple(
[features[name] for name in features.keys()])


This is a local reconstruction of LPI’s LPIC-1 content. Topic 1: The Linux Community and a Career in Open Source 1.1 Linux Evolution and Popular Operating Systems Description: Knowledge of Linux development and major distributions. Key Knowledge Areas: Distributions Embedded Systems Linux in the Cloud The following is a partial list of the used files, terms and utilities: - Debian, Ubuntu (LTS) - CentOS, openSUSE, Red Hat, SUSE - Linux Mint, Scientific Linux - Raspberry Pi, Raspbian - Android 1.
This is a local reconstruction of LPI’s LPIC-2 content. Topic 200: Capacity Planning 200.1 Measure and Troubleshoot Resource Usage Description: Candidates should be able to measure hardware resource and network bandwidth, identify and troubleshoot resource problems. Key Knowledge Areas: - Measure CPU usage - Measure memory usage - Measure disk I/O - Measure network I/O - Measure firewalling and routing throughput - Map client bandwidth usage - Match / correlate system symptoms with likely problems - Estimate throughput and identify bottlenecks in a system including networking The following is a partial list of the used files, terms and utilities: - iostat - netstat - w - top - sar - processes blocked on I/O - blocks out - vmstat - pstree, ps - Isof - uptime - swap - blocks in 200.
This is a local reconstruction of LPI’s LPIC-2 content. Topic 207: Domain Name Server 207.1 Basic DNS server configuration Description: Candidates should be able to configure BIND to function as a caching-only DNS server. This objective includes the ability to manage a running server and configuring logging. Key Knowledge Areas: - BIND 9.x configuration files, terms and utilities - Defining the location of the BIND zone files in BIND configuration files - Reloading modified configuration and zone files - Awareness of dnsmasq, djbdns and PowerDNS as alternate name servers The following is a partial list of the used files, terms and utilities: - /etc/named.
Topic 390: OpenLDAP Configuration 390.1 OpenLDAP Replication Description: Candidates should be familiar with the server replication available with OpenLDAP. Key Knowledge Areas: - Replication concepts - Configure OpenLDAP replication - Analyze replication log files - Understand replica hubs - LDAP referrals - LDAP sync replication The following is a partial list of the used files, terms and utilities: - master / slave server - multi-master replication - consumer - replica hub - one-shot mode - referral - syncrepl - pull-based / push-based synchronization - refreshOnly and refreshAndPersist - replog 390.
Topic 325: Cryptography 325.1 X.509 Certificates and Public Key Infrastructures Description: Candidates should understand X.509 certificates and public key infrastructures. They should know how to configure and use OpenSSL to implement certification authorities and issue SSL certificates for various purposes. Key Knowledge Areas: - Understand X.509 certificates, X.509 certificate lifecycle, X.509 certificate fields and X.509v3 certificate extensions - Understand trust chains and public key infrastructures - Generate and manage public and private keys - Create, operate and secure a certification authority - Request, sign and manage server and client certificates - Revoke certificates and certification authorities The following is a partial list of the used files, terms and utilities: - openssl, including relevant subcommands - OpenSSL configuration - PEM, DER, PKCS - CSR - CRL - OCSP 325.
Topic 330: Virtualization 330.1 Virtualization Concepts and Theory Description: Candidates should know and understand the general concepts, theory and terminology of Virtualization. This includes Xen, KVM and libvirt terminology. Key Knowledge Areas: - Terminology - Pros and Cons of Virtualization - Variations of Virtual Machine Monitors - Migration of Physical to Virtual Machines - Migration of Virtual Machines between Host systems - Cloud Computing The following is a partial list of the used files, terms and utilities: - Hypervisor - Hardware Virtual Machine (HVM) - Paravirtualization (PV) - Container Virtualization - Emulation and Simulation - CPU flags - /proc/cpuinfo - Migration (P2V, V2V) - IaaS, PaaS, SaaS 330.


# -*- mode: html -*- { layout => 'sidebar', scripts => [ "/stc/common.js", "/stc/newgame.js"], title => 'New Game', content => read_then_close(*DATA) } __DATA__
Use an existing game as a template for this game (fill in the the same settings and the same players). You can still edit the prefilled form data before creating the game.
The id of the game should be unique, and only contain the letters A-Z and a-z and the digits 0-9.
The options are described in more detail in the manual.
Original Original [2017 vp] Side 1 Side 2 Loon Lakes v1.6 Fjords v2.1
Private games are created with a predetermined set of players. Public games can be joined by any player on the site.
You can specify the players either using a username or an email address (must be registered on the site). One player per row, at least two players required. You can't change who is playing after creating the game.
Please do not add players to games if they aren't expecting it.
The game will start automatically once this many players have joined.
Only players in this rating range can join the game. Leave one or both fields empty if you don't want any restrictions. Players who are still unranked are considered to have a rating of 0; they can join games with a maximum rating but not games with a minimum rating.
The method used for dropping slow players. Per-move timers limit the amount of time that can be used for each single move. The chess clock allows each player to spend a certain amount of time on all of their moves in the game.
Players will be dropped from the game after this period of inactivity. The game admin can reinstate a dropped player, but will lose admin privileges for the game if dropped out themselves.
A clock that determines when to drop players from a game for taking too much time. The initial time determines the time each player starts with on their clock. The time per round is the amount of time added on the clock at start of rounds 1-6. The grace period is the point after the previous move at which the clock starts ticking.
Players who at any point in the game exceed their time allotment will be dropped from the game, and can't be brought back even by the game admin.
Any special information related to this game, that will be shown in the list of open games. Use this to for example find players of a certain experience level or living in a certain timezone.
Please correct the items marked in red before creating the game.


sync.Cond.L (field) 4 uses sync (current package) cond.go#L25: L Locker cond.go#L33: return &Cond{L: l} cond.go#L55: c.L.Unlock() cond.go#L57: c.L.Lock()
The pages are generated with Golds v0.2.7-preview. (GOOS=darwin GOARCH=amd64)


WARNING
Content Under Development
See
release page for
latest official PDF version.
**Chapter 8: Sampling Lights Directly**
The problem with sampling almost uniformly over directions is that lights are not sampled any more
than unimportant directions. We could use shadow rays and separate out direct lighting. But instead,
I’ll just send more rays to the light. We can then use that later to send more rays in whatever
direction we want.
It’s really easy to pick a random direction toward the light; just pick a random point on the light
and send a ray in that direction. But we also need to know the _pdf(direction)_. What is that? For a
light of area $A$, if we sample uniformly on that light, the _pdf_ on the surface of the light is
$1/A$. But what is it on the area of the unit sphere that defines directions? Fortunately, there is
a simple correspondence, as outlined in the diagram:
![Figure 8-1][fig08-1]
If we look at a small area $dA$ on the light, the probability of sampling it is $p_q(q) \cdot dA$.
On the sphere, the probability of sampling the small area $dw$ on the sphere is $p(direction) \cdot
dw$. There is a geometric relationship between $dw$ and $dA$:
$$ dw = \frac{dA \cdot cos(alpha)}{distance(p,q)^2} $$
Since the probability of sampling dw and dA must be the same, we have
$$ \frac{p(direction) \cdot cos(alpha)}{distance(p,q)^2} \cdot dA
= p_q(q) \cdot dA
= \frac{dA}{A}
$$
So
$$ p(direction) = \frac{distance(p,q)^2}{cos(alpha) \cdot A} $$
If we hack our color function to sample the light in a very hard-coded fashion just to check that
math and get the concept, we can add it (see the highlighted region):
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C++
vec3 color(const ray& r, hitable *world, int depth) {
hit_record rec;
if (world->hit(r, 0,001, MAXFLOAT, rec)) {
ray scattered;
vec3 attenuation;
vec3 emitted = rec.mat_ptr->emitted(rec.u, rec.v, rec.p);
float pdf;
vec3 albedo;
if (depth < 50 && rec.mat_ptr->scatter(r, rec, albedo, scattered, pdf)) {
vec3 on_light = vec3(213 + drand48()*(343-213),
554,
227 + drand48()*(332-227));
vec3 to_light = on_light - rec.p;
float distance_squared = to_light.squared_length();
to_light.make_unit_vector();
if (dot(to_light, rec.normal) < 0)
return emitted;
float light_area = (343-213)*(332-227);
float light_cosine = fabs(to_light.y());
if (light_cosine < 0.000001)
return emitted;
pdf = distance_squared / (light_cosine * light_area);
scattered = ray(rec.p, to_light, r.time());
return emitted
+ albedo * rec.mat_ptr->scattering_pdf(r, rec, scattered)
* color(scattered, world, depth+1) / pdf;
}
else
return emitted;
}
else
return vec3(0,0,0);
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
With 10 samples per pixel this yields:
![Image 8-1][img08-1]
This is about what we would expect from something that samples only the light sources, so this
appears to work. The noisy pops around the light on the ceiling are because the light is two-sided
and there is a small space between light and ceiling. We probably want to have the light just emit
down. We can do that by letting the emitted member function of hitable take extra information:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C++
virtual vec3 emitted(const ray& r_in, const hit_record& rec, float u, float v,
const vec3& p) const {
if (dot(rec.normal, r_in.direction()) < 0.0)
return emit->value(u, v, p);
else
return vec3(0,0,0);
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
We also need to flip the light so its normals point in the -y direction and we get:
![Image 8-2][img08-2]
[fig08-1]: ../assets/fig08-1.jpg
[img08-1]: ../assets/img08-1.jpg
[img08-2]: ../assets/img08-2.jpg


I'm humbled to have had this amazing opportunity to work with one of the leading companies in the tech field - Microsoft.
The 4 month Garage internship was a high-paced program with a greatly unique experience of both a start-up and large company experience. In the Spring 2018 term, my team and I learned a great amount soft, technical, and design skills.
From countless presentations, live demos, and coffee 1:1's with Microsoft industry professionals, we've learned to push our careers forward through learning to be clear and concise with our ideas. Making features for the product is might as well be dependant on being able to communicate and prove why the features and product itself will be useful.
On the technical side, we've learned about advanced subjects such as architecture, graphics optimizations, and the Azure cloud storage. There were more times than not that there were tasks that at first I didn’t know how to do. A new features brought fresh new technical issues and mysteries to uncover with the HoloLens, but each were overcome with systematic, strategic attacks at cracking the problem.
On a last note, I wanted to say that after working with Microsoft, I learned what design really was. We build things for people and ourselves that must be scalable, bug-free, and ultimately useful. From working side-by-side with a UX designer, I can say that one of the biggest highlights of the internship was to finally hear a phrase like ‘I would love this in my office’ after countless hours of tinkering and tweaking. This to me is the essence of why we build: to innovate, to inspire, and to empower.


Less is better. Models in the upper right corner of this plot combine frequent instantiations (usage) with a high number of subsequent mappings, i.e.
further resource models mapped to the model. The size of the circle corresponds to the average execution time of a single mapping.
Models with frequent instantiations, a lot of mappings and a high average mapping time are the most costly - and potential candidates for refactorings,
e.g. by breaking up the model into smaller models representing the various aspects of the original model.
Mapping durations of selected model
Less is better. This frequency table shows the distribution of the mapping times, grouped in intervals. Usually, the mapping times should be relatively low and
quite constant, i.e. only appear in 1-6 neighboring intervals. If you experience long mapping time occurrences (on the far right), investigating the issues leading to these
exceptional mapping times is highly recommended.


Authors: J. D. Mathews
Source: FERMAT, Volume 01, Communication 3, Jan_Feb, 2014
Abstract: It started before Maxwell, Marconi helped it along, and Einstein gave fundamental insights. Then, what we came to call radar, was used by Appleton to directly detect the ionosphere (Kennelly-Heaviside Layer) in 1925. Further early geophysical uses of radar included the development of ionospheric sounders and the study of radar meteors. World War II led to significant advances in radar techniques including powerful RF transmitter tubes and display devices such as oscilloscopes. After WWII surplus military radar equipment and the new engineering techniques led to radio and radar astronomy with the development of the Jodrell Bank Experimental Station. With this rich and rapidly developing engineering and scientific environment we come to Arecibo Observatory (AO) at its 50th anniversary. The reasons William E. (Bill) Gordon developed the 305 m Arecibo dish are briefly reviewed. It is particularly appropriate to review the intellectual history that led to the 305 m dish and to summarize some of the innovative radar-based geophysical research that has resulted. In understanding how AO came to be and the many resulting developments that are embodied in the hundreds of PhDs and thousands of journal papers that have resulted, we look to the future of AO.
Index Terms:
View PDF
From Appleton to Arecibo and Beyond.


| Type | Who | Read? | Write? | |
|---|---|---|---|---|
| {{s.getTypeDisplay()}} | {{s.display || s.id}} | {{s.canRead ? 'Yes' : 'No'}} | {{s.canWrite ? 'Yes' : 'No'}} | |
| User | Somebody, Joe | Yes | Yes |
Add permissions from this IG to resources referenced by the IG. This does not overwrite or remove permissions that already exist on the resources, it adds permissions from the IG that don't already exist.
Add permissions from a different resource to this resource. This does not overwrite or remove permissions that already exist on this resource, it adds permissions from the specified resource that don't already exist on this resource.
| Name | Read | Write |
|---|---|---|
| Everyone | ||
| {{g.name}} |
| ID | Name | Read | Write | |
|---|---|---|---|---|
| {{u.id}} - {{getAuthIdSource(u.authId)}} | {{u.name}} | {{getUserEmail(u)}} |


{% autoescape off %}
{% if reports.length == 0 %}
Hmm... No reports found. Please try again later. If the issue persists, please let us know at
<EMAIL_ADDRESS>{% endif %}
{% for report in reports %}
{{ report.short_html }}
{% endfor %}
Noticed a discrepancy or have a gift of feedback for us? Please email us at<EMAIL_ADDRESS>Thanks,
The ETAbot Team
{% if report.velocity_report.images_for_email.length > 0 %}
PS Note: individual velocities do not necessarily represent individual's productivity or value. That is because measured velocity depends on bandwidth allocation, overhead, and other factors. Story points represent scope/effort, but not value.
However individual velocities are useful for predicting when an individual may finish a task because it accounts for the bandwidth allocation, overhead, and other factors.
{% endif %}


For 15 years from September 2004, I was the quintessential Software Guy. I started off at Wipro Technologies, Hyderabad, India, as a J2EE Web Developer, building classical B2B websites using the Struts Framework. In July 2009, I joined Pegasystems as part of their fledgling R&D unit in India. Over the next 10 years I worked up various roles at Pega from being a Front End Engineer in their first UI Team to architecting their Mobile web solutions as Technical Lead to building the Scrum teams for their first Full Stack Cloud Native MERN solutions as Engineering Manager and finally running Pega's Omni Channel Customer Service Communication Platform as the Senior Product Manager. My later years at Pega were especially thrilling as I got to work on the integration of the various startups Pega acquired and thoroughly enjoyed the exposure to the fast paced and adaptive culture of these gems and their founding teams.
On my 15th work-versary in September 2019 I decided it was time to take that longish break from work to spend time and travel with the loves of my life - my 3 dogs. The next one year was a bitter sweet rollercoaster of road trips, COVID-19, lockdowns, unlocks and the second wave! Amongst all this, as I thought through the next chapter of my life, I decided it must be something to do with dogs and startups. Thus, in January 2021, TailTrails started taking shape with the objective of offering products and services that address the fundamentals of care giving for pets and doesn't bother about floroscent green dog beds. As I work my ay the solid foundations of my company, I also intend to freelance for other startups and offer the value of my past in their present and fuel the success of their future.
In all my Software Engineering roles I have always been thrilled to walk up to the white board, flesh out a piece of architecture and then code it down. Hence most of my memorable Engineering moments have architecture and code at their center. Here go a few:
How often do our designations actually reflect our roles? And how often do our roles restrict the responsibilities we fulfill in our jobs? I believe this graph portrays much better my experiences than a mere listing of my 10 designations over the 17 years
I have always enjoyed knowing the people I have worked with. About their lives, their likes, their families, about what keeps them ticking and what got them here (in life i.e.). I hope you do the same. So, here's a bit about me, personally.
I was born and brought up in the small beautiful hilly town named Ranchi that's the capital of the state of Jharkhand in India. After finishing school, I did my Bachelor of Science in Computer Applications from St. Xavier's College, Ranchi , the alma mater for my whole family. And then began the most enthralling chapter of my life as part of the WASE Program (now WILP) at Wipro, where I completed my M.S. in Software Engineering from BITS, Pilani. The rest, as I say, is History!
Now I live in the (very disputed) Biryani Capital of India - Hyderabad - with my wife and our 3 dogs - Auro, Abbie and Genie. When not perched on my work chair, I am positioned in our kitchen. I'm the undisputed Chef De Cuisine of the house! At other times I can be found either behind a book or behind my car's steering wheel. We are a very road-faring family always on the lookout for dog friendly experiences. Our hope is to find more of them in India and TailTrails is our endeavor to make it happen.


{% comment %} Copyright 2012 Julie Smith. All Rights Reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. This is the Django template for the main page where the user chooses backup options. {% endcomment %}


Hello World in Java on Linux
Beta version of instructions (last updated 9/9/2017 to include PMD
and the -cos226
and -coursera
wrapper scripts).
This document instructs you on how to setup a Java programming environment under Linux. It also provides a step-by-step guide for creating, compiling, and executing your first Java program using either DrJava or the command line. We assume some familiarity with the command line. All of the software is freely available on the web.
|
|
You will use the Java Platform, Standard Edition Development Kit (JDK 8).
- Log in to the user account in which you will be programming. Your account must have Administrator privileges and you must be connected to the Internet.
- Launch your shell.
We'll assume that the command prompt looks like the following (though yours will likely differ):
The[username:~/]
~/
is shorthand for your home directory. -
Install the
Java Platform, Standard Edition Development Kit (JDK 8),
either from
Oracle
or
OpenJDK.
Most Linux distributions provide their own mechanism for
installing software. For example, here are the commands on Ubuntu for Oracle JDK 8:
If you use another Linux distribution, use that distribution's package manager (see the first Q+A under Troubleshooting).[username:~/] sudo add-apt-repository ppa:webupd8team/java [username:~/] sudo apt-get update [username:~/] sudo apt-get install oracle-java8-installer [username:~/] sudo apt-get install oracle-java8-set-default
-
To confirm that the Java compiler is installed,
type the command in boldface below and check that the results match:
It's important that you see the number[username:~/] javac -version javac 1.8.0_144
1.8
(or later) for the Java version number, but the rest is not critical. -
To confirm that the Java interpreter is installed, type
the command in boldface below and check that the results match:
Again, it's important that you see the number[username:~/] java -version java version "1.8.0_144" Java(TM) SE Runtime Environment (build 1.8.0_144-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)
1.8
(or later) for the Java version number, but the rest is not critical.
|
|
These steps install and configures our textbook libraries, DrJava, Findbugs, PMD, an Checkstyle.
If you do not want DrJava, Findbugs, PMD, or Checkstyle, simply skip the corresponding step.
- Create a directory
/usr/local/algs4
.
Navigate to the subdirectory[username:~/] cd /usr/local [username:/usr/local] sudo mkdir algs4 [username:/usr/local] sudo chmod 755 algs4
/usr/local/algs4
.[username:/usr/local] cd algs4 [username:/usr/local/algs4] pwd /usr/local/algs4
- Download the textbook libraries from
algs4.jar
and the Java wrapper scripts from
javac-algs4,
javac-cos226,
javac-coursera,
java-algs4,
java-cos226, and
java-coursera.
The command[username:/usr/local/algs4] sudo curl -O "https://algs4.cs.princeton.edu/code/algs4.jar" [username:/usr/local/algs4] sudo curl -O "https://algs4.cs.princeton.edu/linux/{javac,java}-{algs4,cos226,coursera}" [username:/usr/local/algs4] sudo chmod 755 {javac,java}-{algs4,cos226,coursera} [username:/usr/local/algs4] sudo mv {javac,java}-{algs4,cos226,coursera} /usr/local/bin
curl
downloads files from the web; if your system doesn't havecurl
, trywget
instead. - Download
DrJava
from
drjava.jar,
the wrapper script from
drjava,
and the configuration file from
.drjava.
[username:/usr/local/algs4] sudo curl -O "https://algs4.cs.princeton.edu/linux/{drjava.jar,drjava,.drjava}" [username:/usr/local/algs4] sudo chmod 755 drjava [username:/usr/local/algs4] sudo mv drjava /usr/local/bin [username:/usr/local/algs4] sudo mv .drjava ~
-
Download
Findbugs 3.0.1
from findbugs.zip;
our Findbugs configuration file
from findbugs.xml;
and the Findbugs wrapper scripts from
findbugs-algs4,
findbugs-cos226, and
findbugs-coursera.
[username:/usr/local/algs4/] sudo curl -O "https://algs4.cs.princeton.edu/linux/findbugs.{zip,xml}" [username:/usr/local/algs4/] sudo curl -O "https://algs4.cs.princeton.edu/linux/findbugs-{algs4,cos226,coursera}" [username:/usr/local/algs4/] sudo unzip findbugs.zip [username:/usr/local/algs4/] sudo chmod 755 findbugs-{algs4,cos226,coursera} [username:/usr/local/algs4/] sudo mv findbugs-{algs4,cos226,coursera} /usr/local/bin
-
Download
PMD 5.8.1
from pmd.zip;
our PMD configuration file from pmd.xml
and the PMD wrapper scripts
pmd-algs4,
pmd-cos226, and
pmd-coursera.
[username:/usr/local/algs4/] sudo curl -O "https://algs4.cs.princeton.edu/linux/pmd.{zip,xml}" [username:/usr/local/algs4/] sudo curl -O "https://algs4.cs.princeton.edu/linux/pmd-{algs4,cos226,coursera}" [username:/usr/local/algs4/] sudo unzip pmd.zip [username:/usr/local/algs4/] sudo chmod 755 pmd-{algs4,cos226,coursera} [username:/usr/local/algs4/] sudo mv pmd-{algs4,cos226,coursera} /usr/local/bin
-
Download Checkstyle 8.2
from checkstyle.zip;
our Checkstyle configuration files from
checkstyle-algs4.xml,
checkstyle-cos226.xml, and
checkstyle-coursera.xml;
and the Checkstyle wrapper scripts from
checkstyle-algs4,
checkstyle-cos226, and
checkstyle-coursera.
[username:/usr/local/algs4/] sudo curl -O "https://algs4.cs.princeton.edu/linux/checkstyle.zip" [username:/usr/local/algs4/] sudo curl -O "https://algs4.cs.princeton.edu/linux/checkstyle-suppressions.xml" [username:/usr/local/algs4/] sudo curl -O "https://algs4.cs.princeton.edu/linux/checkstyle-{algs4,cos226,coursera}.xml" [username:/usr/local/algs4/] sudo curl -O "https://algs4.cs.princeton.edu/linux/checkstyle-{algs4,cos226,coursera}" [username:/usr/local/algs4/] sudo unzip checkstyle.zip [username:/usr/local/algs4/] sudo chmod 755 checkstyle-{algs4,cos226,coursera} [username:/usr/local/algs4/] sudo mv checkstyle-{algs4,cos226,coursera} /usr/local/bin
-
For these wrapper scripts to work, it is important that
/usr/local/bin
is in yourPATH
environment variable. This is very likely the case. If not, see the Troubleshooting section below.
|
|
Now you are ready to write your first Java program.
You will develop your Java programs in an application called DrJava.
DrJava features many specialized programming tools including syntax highlighting,
bracket matching, auto indenting, and line numbering.
-
If you use a file manager such as Konqueror or Nautilus, you
can launch DrJava by double-clicking the
drjava.jar
file. Otherwise, launch DrJava from the command line by typing:[username:~/] drjava
- If you copied the
.drjava
file to your home directory, these customizations should already be included:- Display line numbers by selecting Edit -> Preferences -> Display Options -> Show All Line Numbers.
- Set the indentation level to 4 by selecting Edit -> Preferences -> Miscellaneous -> Indent Level -> 4.
-
Set the Java classpath by selecting
Edit -> Preferences -> Resources -> Extra Classpath -> Add
and add the following entry:
/usr/local/algs4/algs4.jar
-
In the main DrJava window, type the Java program
HelloWorld.java exactly as it appears below. If you omit even a semicolon,
the program won't work.
As you type, DrJava does the indenting for you.public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World"); } }
-
Finally, click the Save button to save the file in a directory of your choice.
Name the file
HelloWorld.java
. The file name is case sensitive and must exactly match the name of the class in the Java program.
|
|
It is now time to convert your Java program into a form more amenable for
execution on a computer. To do this, click the Compile button.
If all goes well, you should see the following message in the Compiler Output
pane at the bottom:
Compilation completed.
If DrJava complains in some way, you mistyped something. Check your program carefully, using the error messages in the Compiler Output pane as a guide.
|
|
Now it is time to run your program. This is the fun part.
-
Type the following in the Interactions pane at the bottom.
By convention, we highlight the text you type in bold.
If all goes well, you should see the following message:> java HelloWorld
Welcome to DrJava. Working directory is /Users/username/algs4/hello > java HelloWorld Hello, World
- You may need to repeat this edit–compile–execute cycle a few times before it works.
|
|
You will use the javac
command to convert your Java program into a form more
amenable for execution on a computer.
-
From the shell, navigate to the directory containing
HelloWorld.java
, say~/hello
, by typing thecd
(change directory) commands below:[username:~/] cd hello [username:~/hello/]
-
Compile
HelloWorld.java
by typing thejavac
command below:
Assuming the file[username:~/hello/] javac HelloWorld.java [username:~/hello/]
HelloWorld.java
is in the current working directory, you should see no error messages. -
To make our textbook libraries accessible to Java,
use the command
javac-algs4
instead. For example, to compile TestAlgs4.java, which uses our standard drawing library, the auto-installer issues the the following command:
At this time,machine:~/Desktop <username>$ javac-algs4 TestAlgs4.java
javac-cos226
andjavac-coursera
are equivalent tojavac-algs4
.
|
|
You will use the java
command to execute your program.
-
From the shell, type the
java
command below.
You should see the output of the program.[username:~/hello/] java HelloWorld Hello, World
-
To make our textbook libraries accessible to Java,
use the command
java-algs4
instead. For example, type the following two commands to test standard drawing and standard audio:
At this time,[username:~/hello] java-algs4 edu.princeton.cs.algs4.StdDraw [ displays a graphics window with some geometric shapes and text ] [username:~/hello] java-algs4 edu.princeton.cs.algs4.StdAudio [ plays an A major scale ]
java-cos226
andjava-coursera
are equivalent tojava-algs4
.
|
|
You can use
Findbugs,
PMD,
and
Checkstyle
and
to check the style of your programs and identify common bug patterns.
-
To run Findbugs, type the following command in the Terminal:
The argument must be a list of[username:~/hello] findbugs-algs4 *.class Running findbugs on HelloWorld.class:
.class
files. Here is a list of bug descriptions. -
To run PMD 5.8.1, type the following command in the Terminal:
The argument must be a directory containing[username:~/hello] pmd-algs4 .
.java
files. Here is a list of bug patterns. -
To run Checkstyle, type the following command in the Terminal:
The argument must be a list of[username:~/hello] checkstyle-algs4 *.java Running checkstyle on HelloWorld.java: Starting audit... Audit done.
.java
files. Here is a list of available checks. - COS 226 students should use the following versions of these commands, to match the corresponding
versions in the autograder:
[username:~/hello] findbugs-cos226 HelloWorld.class Running findbugs on HelloWorld.class: [username:~/hello] pmd-cos226 . [username:~/hello] checkstyle-cos226 HelloWorld.java Running checkstyle on HelloWorld.java: Starting audit... Audit done.
- Coursera students should use the following versions of these commands, to match the corresponding
versions in the autograder:
[username:~/hello] findbugs-coursera HelloWorld.class Running findbugs on HelloWorld.class: [username:~/hello] pmd-coursera . [username:~/hello] checkstyle-coursera HelloWorld.java Running checkstyle on HelloWorld.java: Starting audit... Audit done.
|
|
My distribution of Linux is { Gentoo, Debian, Ubuntu, Fedora, Red Hat, SuSE, Mandriva, or Slackware }. How should I modify the instructions? We haven't tested out these instructions on all flavors of Linux, but the instructions should be identical except for installing Java. We recommend using your distribution's package manager (such as portage, apt, emerge, or yum) to install Java. Here are some instructions for installing OpenJDK.
Can I use a different version of Java? Yes. Any version of Java 8 (either Oracle or OpenJDK) or later should work fine.
I had to manually enter the location of tools.jar in DrJava, but it doesn't seem to have any effect. Any suggestions? This setting doesn't take effect until you restart DrJava.
Can I use a different IDE? Yes, feel free to use another IDE (such as Eclipse) but you will have to configure the IDE properties yourself (such as the classpath).
How do I determine which shell I'm running? Type the following command:
You shell will likey be
[username:~/] echo $SHELL bash
bash
, tcsh
, sh
,
ksh
or zsh
.
How can I check that /usr/local/bin is in my PATH? From the shell, type the following command:
You should see an entry /usr/local/bin, with entries separated by colon (:) characters.
[username:~/] echo $PATH
How can I add /usr/local/bin to my PATH?
It depends significantly on your Linux distribution, shell, and user configuration.
In the bash shell, this generally means adding the following
line to either your .bash_profile
, .profile
, or .bashrc
file.
For other common shells, this could mean updating your
.cshrc
, .tcshrc
, or .zcshrc
files.
You may need to logout and log back in for it to take effect.
# Add ~/algs4/bin to the PATH export PATH=$PATH:$HOME/algs4/bin
When I compile or execute a program from the shell that uses one of the
textbook libraries, I get an error. How can I fix this?
First, make sure that you are using the javac-algs4
and java-algs4
wrapper scripts.
Next, verify that you have the file /usr/local/algs4/algs4.jar
.