So far we've seen how Variables can hold single values like strings, numbers, or booleans. Python also offers a variety of ‘collections’ that allow you to group bits and pieces of information that belong together and store them in a single variable. The two collection types you're most likely to find useful are:
A list in Python is no different from a list in real life: it can hold a summary of stuff to do, groceries to buy, a sheet of names and adressess. The main difference is that in real life we usually start counting from one, while lists in Python start from zero:
So, what would the code equivalent of our grocery list look like? Below we've defined it as a Python list
object. The list is defined between square brackets. Each item in the list is a piece of text (a string) surrounded by quotes, and is separated from its neighbors by commas. The list is assigned to a variable named groceries
, but we know that variables can have any name we like, so it could just as easily be named g
or stufftodo
.
groceries = ["milk", "eggs", "tabasco", "brussel sprouts", "bacon", "pistachios"]
A list can contain any kind of data: strings, numbers, and even other lists. The len() command returns the number of items in a list:
print(len(groceries)) >>> 6
You can reference items in a list directly using "index notation". Place a pair of square brackets after the variable name with a numerical index between them:
print(groceries[0]) >>> milk
groceries[2] = "habanero sauce" print(groceries) >>> ["milk", "eggs", "habanero sauce", "brussel sprouts", "bacon", "pistachios"]
Don’t forget that items in a list start at index zero. That’s why index "2" in the example above causes the third element to be replaced. You can also pull items from the end of the list by using negative index values to count backwards from the last item. The last element in a list is -1, the second-to-last is -2, and so on:
print("final item:", groceries[-1]) print("penultimate:", groceries[-2]) >>> final item: pistachios >>> penultimate: bacon
The contents of a list can be changed over time. New items can be added to it or old items deleted from it – just like you can add entries to a grocery list and cross them out once they've been picked up.
You can add a new item to the end of a list with the append() method:
groceries.append("tea") print(groceries) >>> ["milk", "eggs", "habanero sauce", "brussel sprouts", >>> "bacon", "pistachios", "tea"]
To remove the tea from the list, use the del statement with the proper index:
del groceries[6]
Items can be inserted partway through the list with the list.insert(i, item) command, where the i parameter is the position where you want the element to be. Rather than overwriting the item that's currently the i'th element, the old items will be shifted back to make room for the insertion.
Looping through a list is a bit like going to the market and working through your grocery list from top to bottom: the first item to collect is milk, next you'll need to fetch eggs, and so on.
Going through all the items in a list is one of the most essential things you do when working with data. You could retrieve the items in a list manually when there are only a few of them, but not when the list contains hundreds or even thousands of, for example, strings of text that you want to draw to the screen.
When you use a for-loop with a list, any indented commands below the for statement are executed for each item in the list. The item variable consecutively contains each item in the list. Once it reaches the last item in the list, the loop ends:
print("walk to the market") for item in groceries: print("buy some", item) print("done shopping!") >>> walk to the market >>> buy some milk >>> buy some eggs >>> buy some habanero sauce >>> buy some brussel sprouts >>> buy some bacon >>> buy some pistachios >>> done shopping!
There's a lot more you can do with lists, like sorting and reversing, retrieving a range of elements as a slice, or using functional-programming concepts like "map" and "filter" in a list comprehension. The Python tutorial on Datastructures will get you started with some of the more advanced features of the list object.
A dictionary (or "dict") is an extremely versatile kind of list that lets you access elements via indices (known as "keys") that you define yourself. Each key is unique and references an item stored in the dict. Unlike list indices, which are always integers, dictionary keys can be any datatype you want. String-based keys are a popular choice, but you could just as easily use numbers, booleans, or even tuples.
Dictionaries are created with curly braces instead of square brackets. You can assign and retrieve values from a dictionary using the same "index" syntax as for lists:
heading = {} heading["family"] = "Avenir Next" heading["size"] = 18 heading["fill"] = color(1,0,0) print(heading["size"]) print(heading["fill"]) >>> 18 >>> Color('#f00')
You can also initialize a dictionary in a single step by defining the keys and values inside the curly braces. Note that unlike other languages with similar syntax (e.g., javascript), keys must be enclosed in quotes or they will be interpreted as variable names rather than strings:
heading = { "family":"Avenir Next", "size":18, "fill":color(1,0,0) }
If this sounds like too much punctuation, consider using the dict() command which lets you specify keys through keyword arguments:
heading = dict(family="Avenir Next", size=18, fill=color(1,0,0))
While the elements in a list have an implicit order, there's no obvious way to decide what the "next" element in a dictionary should be. Instead you can think of the dictionary as a soup of key/value pairs. To get a list of all the keys that have been added to a dictionary, use its keys() method. Note that the order of the keys has no relation to the order in which you defined them:
print(list(heading.keys())) >>> ["family", "fill", "size"] # even though we defined it with family, size, fill
If it's important for the key order to be preserved, you can use an odict (a.k.a. an Ordered Dictionary) object instead.
To test whether a particular key has been defined in a dict, use an "if … in" statement.
if "fill" in heading: print("found fill!") if "italic" not in heading: print("italic not defined...") >>> found fill! >>> italic not defined...
It's important to be sure your dict has the expected keys since any attempt to read from an undefined key will crash your script with a KeyError exception:
print heading["italic"] >>> KeyError: 'italic'
Undefined keys are actually a rather common occurrance, so having a missing value cause a fatal error is a little harsh. Luckily Python offers a way to read keys "safely" by using the dict.get() method. Call get() with a pair of arguments: the key name and a "default" value to be returned if the dictionary doesn't contain that key:
print("fam:", heading.get("family", "Helvetica")) # key exists, default ignored print("wgt:", heading.get("weight", "normal")) # undefined, default used instead >>> fam: Avenir Next >>> wgt: normal
The standard dictionary object provided by the built-in dict type will suit your needs the vast majority of the time. There are three dictionary variants that may also come in handy:
Consult the Reference entries for these types to learn when they're useful and what caveats apply to each.


TODO-APP
PROJECTS
TODO LIST
Add Task
Add New Task
×
Task:
Description:
Due date:
Priority:
High
Medium
Low


Hierarch Kekropus:
When we Kamael were revealed to the world, it was agreed that that power would remain sealed.
Unless... should one of our own prove worthy to wield it, it would be permitted.
If you are that person, you will be able to unbind the seals and obtain the power you seek. I
can only show you the way, however; the rest depends on your strength and character. If you
succeed, I will wish to speak with you again about the destiny you have embraced. Would you
like to try to unbind the seals?
"Yes, I do."


--- layout: null order: 4 section-type: contact title: Contact --- ## Contact
Management and Symphony Booking
Rockit Artist Management |
Booking
Skyline Music |
Booking for Performing Arts Centers
Andrea Sabata |
Publicity
Michelle Roche Media Relations |


Loading Characters
My Characters
Create New Character
Create New Character
Create New Character
Create New Character
Create New Character
Select a character
Select a character
Character Information
Select a character slot to see all information about your character.

Confirm
Return


Reuters: Oil slips from two-month high on qualms about U.S.-China trade deal
Traders are also keeping a keen eye on the impact on oil production at OPEC countries Iran and Iraq amid ongoing protests.
Oil prices pulled back from their highest levels in nearly two months on Friday amid continued uncertainty over whether the United States and China will be able to reach a partial trade deal that would lift some pressure on the global economy.
That was more than enough to offset news of a likely extension of production cuts by major producers that drove prices higher in the previous session, Reuters said.
By 0544 GMT, Brent crude futures LCOc1 fell 42 cents, or 0.7%, to $63.55 a barrel. West Texas Intermediate crude CLc1 was at $58.14 a barrel, down 44 cents. or 0.8%.
China has invited top U.S. trade negotiators for a new round of face-to-face talks in Beijing amid continued efforts to strike at least a limited deal, the Wall Street Journal reported on Thursday citing unidentified sources.
Prices had touched their highest since late September on Thursday after Reuters reported that the Organization of the Petroleum Exporting Countries (OPEC) and Russia are likely to extend existing production cuts by another three months to mid-2020 when they meet on December 5.
Oil was also buoyed by comments from China's commerce ministry on Thursday that it will strive to reach an initial agreement with the United States to end the pair's long-running trade war, allaying fears that talks might be unraveling. However, the completion of a phase one deal could slide into next year.
News that last week saw the biggest drawdown in three months for U.S. crude stock stockpiles at Cushing, Oklahoma also underpinned prices earlier this week. Cushing is the delivery point for WTI futures.
Elsewhere, traders are also keeping a keen eye on the impact on oil production at OPEC countries Iran and Iraq amid ongoing protests.


View High Scores
Timer:
Welcome to Code Quizzer
Quiz yourself on HTML, CSS & Javascript. Gauge your progress. Challenge your friends!
Start


Kindle Case Studies
KindleCo News
Autumn 2017 News: Children & Social Work Act - A Land Of Challenge And Opportunity
When the Government published 'Putting Children First' in July 2016 (the DfE's Policy paper on Children and Social Work) there was considerable doubt in the sector as to the Bill's likely success, and what changes it would bring as an Act.
Key to predicting with relative certainty the outcome, was taking a careful look at its antecedents in Policy terms over the past 3-5 years: the Children & Families, Devolution, Education & Adoption Acts, and a new LA remit for Public Health.
Armed with a small splash of wisdom born out of experience, it became clear to those of us with a track record of interpreting Public Policy announcements, that the Bill would indeed go through and at a relatively fast pace....
Royal Assent was granted just as Parliament closed in April ’17, for the General Election and most key elements from 'Putting Children First' made it onto the statute books. You can read my earlier predictions on this, by clicking through this News article.
But where are we now?
Read on for my quick fire overview. Enjoy!
Emotional Health & Mental Wellbeing: Vulnerable Children, Their Families And Professional Supporters - Reflective Spaces
When the Government's new guidance to promote Health & Wellbeing of Looked After Children was published back in 2015, it rightly promoted integrated agency working.
But what about the Health & Wellbeing of the adults involved in supporting vulnerable children, Looked After, or not?
There is an army out there of parents, carers, schools staff, public sector workers, and volunteers all engaging with vulnerable Children and Young People.
How can their wellbeing also be supported so they can process the emotional impact of this work and 'stay whole'?....
Understanding Your Stakeholders...
For a business development manager in the Health Outcomes sector, KindleCo recently produced a quick fire briefing note - to help bring a busy individual up to speed on their Stakeholder eco-system. "My job entails juggling multiple stakeholder interests with both the Public & Private sectors as partners…
Kindleco: Continuing To Support Developments At Innovative National Children's Charity
“As a national charity at the cutting edge of support for vulnerable children & families, The Mulberry Bush Organisation has to evolve in response to government led change" – Children & Families Act, the arrival of Health & Wellbeing Boards, the changing public sector landscape for Mental Health, ..."now is no exception", says John Diamond, CEO... read more...


You can use the View -> Sync Images plugin to synchronize two or more images, so that when an operation is performed on one image (e.g. change of colormap, contrast/bias, pan, regions, scale, wcs, zoom), it also is performed on the other image(s). First choose the images that should be kept in sync. The choose the operations that you want to sync. Click Sync Repeatedly to keep these images in sync. You can also sync once only by clicking Sync Once.
By default, synchronization is reciprocated: a change in any image causes the others to be synchronized. Synchronization can be configured one direction only by unchecking the reciprocate option. For advanced use, the JS9.SyncImages() and JS9.UnsyncImages() public API calls are available programmatically or from the command line.
This demo displays Chandra, Galex, Spitzer images of the colliding galaxies NGC 2207 and IC 2163, synchronized on regions and zoom operations. The region screen sizes differ because the image scales differ, but their wcs sizes are identical. Move a region around to see updated region stats for all three.


Zoombox is an easy to use Javascript class that allow you to overlay images and videos on the current page.
First, place the whole directory "Zoombox" at the root of your website :
1- Zoombox uses 2 different Javascript scripts that you will have to import in this exact same order (in
or just before
)

2- Link the CSS file to your page in the
<link href="/zoombox/zoombox.css" rel="stylesheet" type="text/css" media="screen" />
1- add rel="zoombox"onto your links in order to add the Zoombox effect
Lien
2- if you would like a group of pictures, you will have to mention a group name in brackets
image 1
image 2
image 3
3- You can also mention a length and a height to the Box, rel="zoombox 800 600", in case of a link which is not a picture
Images : jpg,png,gif,bmp
MP3
FLV (An FLV player has been added to the installation file)
Quicktime links: Mov or MP4
WMV links
Dailymotion videos : du type http://www.dailymotion.com/video/x1xhl1_jojodemarrages_creation
Vimeo links: http://www.vimeo.com/752791
Youtube links: http://fr.youtube.com/watch?v=8oejjWGFs6o
On any other links where the iframe system is being used.
Don�t hesitate to contact me if you have any other idea of additional links.
Can I modify the file ?
Yes, but you will have to inform me of the changes you�ve done


Pakyow found something wrong.
The error originated on line {line} of '{file}' and generated the following stack trace:
{msg}
{trace}


A First name is required
A Last Name is required
Doesn't look like a valid email.
What's your email address?
{{ errors.email }}
Password must be at least 3 characters.
{{ errors.password }}


Swiss banking software company Avaloq prepares for 2020 sale: sources
by Arno Schuetze, Oliver HirtFRANKFURT/ZURICH (Reuters) - Swiss banking software company Avaloq is starting preparations for a 2020 sale or initial public offering as its private equity shareholder Warburg Pincus seeks an exit, people close to the matter said.
The buyout group, which owns 45% of Avaloq, is expected to mandate advisers soon to handle the divestiture, the sources said, adding that an auction could launch in early 2020.
Avaloq founder Francisco Fernandez, management and employees also hold shares in the company.
Avaloq and Warburg Pincus declined to comment.
Avaloq Chief Executive Juerg Hunziger had said this year that the company was preparing for an IPO or sale within the next two to four years.
Avaloq, founded in 1985 as BZ Informatik, supplies software for financial institutions such as Barclays, BBVA, Deutsche Bank, HSBC, Rothschild, Societe Generale and Vontobel. Its software programmes manage $4.5 trillion in client money.
In the first half of 2019, Avaloq posted a 5% year-on-year increase in revenues as well as core earnings, to 288 million francs in sales and adjusted EBITDA of 38 million.
Larger and more profitable peer Temenos trades at 25 times its expected core earnings.


19 words (1 min) TCP Olivia Brode-Roger Wednesday Jan 30, 2019 Here I’m just playing around with D3, trying to get a basic TCP request animation to work. Send packet


This A/B test was performed to test different variations of an ad for a collectibles and video game retail store.
This A/B Test was performed to re-test different variations of an ad for a collectibles and video game retail store.
This project was designed to create a marketing plan for a new product for the mat alternative company, Beyond Meat.
This report aimed to assess Nintendo's current loyalty and retention strategies.


HL7 Belgium - FHIR Roadmap and implementation
Home
Table
Visualization
About
Lorem ipsum dolor sit ame.
Description
.


--- layout: page title: Contact Me description: Want to get in touch? No problem! background: form: true ---
Want to get in touch? You can contact me in my social media.


Hello world. I am typing this to see what a div is supposed to do. We are learning what a div is supposed to do and that a <div> is an object element.
My name is John and I am working on this element to see what each page does.
I saw my text at the top of the screen
This text spans several lines and has lots of extra whitespace.
The text was scattered in random areas
This text spans several lines and has lots of extra whitespace.
The text was ordinary just like anyother line


Page maintained by Ke-Sen Huang.
If you have additions or changes, send an e-mail.
Information here is provided with the permission of the ACM.
Note that when possible I link to the page containing the link to the actual PDF or PS of the preprint.
I prefer this as it gives some context to the paper and avoids possible copyright problems with direct linking.
Thus you may need to search on the page to find the actual document.
ACM Digital Library: Proceedings of the 2014 symposium on Interactive 3D graphics and games
ACM Digital Library (DOI) Link for the paper
Paper Abstract
Author Preprint
Paper Video
Paper Presentation
Paper Images
Paper Data
Demo Program or Source Code
Related Links
Changelog
Papers
- Efficient Virtual Shadow Maps for Many Lights
-
Ola Olsson,
Erik Sintorn,
Viktor Kampe,
Markus Billeter,
Ulf Assarsson
- k+-buffer: Fragment Synchronized k-buffer
-
Andreas A. Vasilakis,
Ioannis Fudos
- Splatting Lines: An Efficient Method for Illustrating 3D Surfaces and Volumes
-
Long Zhang,
Qian Sun,
Ying He
- Prefiltered Single-Scattering
-
Oliver Klehm,
Hans-Peter Seidel,
Elmar Eisemann
- Multi-Layer Alpha Blending
-
Marco Salvi,
Karthik Vaidyanathan
- Adaptive Depth Bias for Shadow Maps
-
Hang Dou,
Yajie Yan,
Ethan Kerzner,
Zeng Dai,
Chris Wyman
- Dynamic Radial View Based Culling for Continuous Self-Collision Detection
-
Sai-Keung Wong,
Wen-Chieh Lin,
Yu-Shuen Wang,
Chun-Hung Hung, Yi-Jheng Huang
- Deep Screen Space
-
Oliver Nalbach,
Tobias Ritschel,
Hans-Peter Seidel
- Sub-Pixel Shadow Mapping
-
Pascal Lecocq,
Jean-Eudes Marvie,
Gael Sourimant,
Pascal Gautron
- A GPU accelerated algorithm for 3D Delaunay triangulation
-
Thanh-Tung Cao,
Ashwin Nanjappa,
Mingcen Gao,
Tiow-Seng Tan
- Objective Image Quality Assessment of Texture Compression
-
Wesley Griffin,
Marc Olano
- Fast Rotation Search for Real-Time Interactive Point Cloud Registration
-
Tat-Jun Chin,
Alvaro Parra Bustos,
Michael Brown,
David Suter
- Fracture Animation Based on High-Dimensional Voronoi Diagrams
-
Sara Schvartzman,
Miguel Otaduy
- Stochastic Activity Authoring with Direct User Control
-
Aline Normoyle,
Maxim Likhachev,
Alla Safonova
- A Hybrid Image-CAD Based System for Modeling Realistic Hairstyles
-
Xuan Yu,
Zhan Yu,
Xiaogang Chen,
Jingyi Yu
- Per-Triangle Shadow Volumes Using a View-Sample Cluster Hierarchy
-
Erik Sintorn,
Viktor Kampe,
Ola Olsson,
Ulf Assarsson
- FORKS: Interactive compliant mechanisms with parallel state computation
-
Sheldon Andrews,
Marek Teichmann,
Paul G. Kry
- Sound Localization and Multi-Modal Steering for Autonomous Virtual Agents
-
Yu Wang,
Mubbasir Kapadia,
Pengfei Huang,
Ladislav Kavan,
Norman Badler
- Real-Time Low-Frequency Signal Modulated Texture Compression using Intensity Dilation
-
Pavel Krajcevski,
Dinesh Manocha
kesen.huang@gmail.com


MULTIPLICITY A film review by Steve Rhodes Copyright 1996 Steve Rhodes
RATING (0 TO ****): ** 1/2
Are the triple demands of work, family, and home too much for you lately? Ever find time for yourself? How often do you get to practice your golf game?
Director Harold Ramis (GROUNDHOG DAY) has just the tonic for you - more time through the miracles of cloning. One of you not enough? How about three more to help you out? Be warned, however, there are a few pitfalls to this wonder cure to your chronic exhaustion.
In MULTIPLICITY, construction supervisor Doug Kinney (Michael Keaton) is suffering from massive overload just like you. He laments that, "my whole life's an emergency." Ted (John De Lancie) and his coworkers are workaholics whose mottoes include, "if you don't come in on Saturday, don't bother coming in on Sunday."
No problem, says Dr. Leeds (Harris Yulin), all Doug needs is a clone. In fact the good doctor already has one which allows him to travel while the clone works. Although Doug is worried that his clone will be half human and half insect as in THE FLY, number two is a perfect duplicate with the same memory as Doug. As it turns out, two is tougher and harder working than Doug which is fine with number one.
His wife, Laura (Andie MacDowell from FOUR WEDDINGS AND A FUNERAL), says she wants to go back to work, but Doug will have to help out. She doesn't know about the cloning. Doug is overwhelmed by the domestic chores so gets a number three to take care of the kids and the house. Since number three turns out to have more of Doug's gentler and domestic side, this looks pretty ideal. As number one puts it, "I've been working since I was twelve; it's break time."
Eventually, number two gets tired too and clones himself to get number four. Four is, well, not exactly perfect. As three puts it, "we made a copy of number two. You know, sometimes the copy isn't as sharp as the original." That's an understatement.
With this great setup and with Michael Keaton's comedic skills, it would be hard to make a bad movie. MULTIPLICITY, while far from a great comedy, did provide this critic with a lot of laughs and made for a thoroughly enjoyable time at the movies. Yes, there are several periods devoid of humor, and some of the physical comedy is a bit too outlandish. Nevertheless, this is one funny movie.
The script by the committee of Lowell Ganz, Mary Hale, Babaloo Mandel, Chris Miller, and Harold Ramis comes up more with situations that are funny than with witty dialog. The housing development Doug is working on, for example, is proclaimed in the billboard to be Vista de Nada.
There are some gems in the script.  In a small line I like, Doug's young son's football coach tells Doug how clueless his players are, "I've got kids who couldn't identify their parents in a line-up."
The acting by Michael Keaton is excellent albeit not as good as some of his performances. In a secondary role, Andie MacDowell holds her own. Her acting gets better and better as the movie unfolds. I admire the talent of both these performers and since they have almost all of the lines in the show, I got to see a lot of them. Left unanswered by the credits is who played numbers two, three, and four.
MULTIPLICITY runs a fast 1:55. It is rated PG-13. There is no sex, nudity, violence, and the language is pretty mild.  The film would be fine for most kids ten and over. I recommend the show and give it ** 1/2.
**** = One of the top few films of this or any year. A must see film. *** = Excellent show. Look for it. ** = Average movie. Kind of enjoyable. * = Poor show.  Totally unbearable.
REVIEW WRITTEN ON: August 15, 1996
Opinions expressed are mine and not meant to reflect my employer's.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


The ShowMoreButton widget offers that capability and you can see it in action here (fetching 200 records at
time).
There are a few things worth noting in the JavaScript code:
-
Line 7. We use a querystring parameter to tell the REST endpoint to retrieve 200 records at time.
The syntax will vary depending on the REST API you use.
-
Line 9. We increment the timeout to 20 seconds, compared to the default 10. Just to be
safe.
-
Line 10. We set the incrementalLoad parameter to true.
This means that every time we call .loadData() the results will be added to the ones already fetched.
-
Line 14. The ShowMoreButton widget is initialized only after the DOM is ready.
That's required because we need to be sure the relevant HTML element is available.
-
Line 15. In order to associate a button to our widget instance,
we pass the button parameter to the widget's constructor.
-
Line 16. The disabledClass parameter define the name of a CSS class
that will be associated to the button while it's disabled (either because we have an XHR call running or
we have no more records).
-
Line 18. The url parameter is a string template, containing one or more placeholders.
Our REST endpoint requires an offset parameter inside the querystring.
This parameter must change at run time.
The value of this parameter is returned by the server, each time we fetch data, and is stored inside the
JSON.
(function(){
"use strict";
const BASE_URL = "https://heroes.stage.waylon.cloud/v1/search/character";
const master = new luga.data.JsonDataSet({
uuid: "masterDs",
url: BASE_URL + "?offset=0&limit=200",
path: "result",
timeout: 20000,
incrementalLoad: true
});
luga.dom.ready(function(){
new luga.data.widgets.ShowMoreButton({
button: document.getElementById("moreButton"),
disabledClass: "disabled",
dataSet: master,
url: BASE_URL + "?offset={lastOffset}&limit=200"
});
master.loadData();
});
}());
Warning!
Your button mist be located outside the region.
Whatever is inside a region get generated again every time the dataSet changes its state or fetch more
records.
The button instead needs to be there all time, without loosing its association with the widget instance

<button id="moreButton" type="button" class="btn btn-primary disabled">Show 200 more</button>


Monday, June 24, 2019
Friday, June 28, 2019
Saturday, July 6, 2019
Wednesday, July 10, 2019
Wednesday, July 31, 2019
The overall goal of the ICSME 2019 doctoral symposium is to help the next generation of ICSME researchers form connections and gain advice on their proposed areas of research. To support this goal the doctoral symposium will have three tracks: early predoctoral (pre-proposal), late predoctoral (post-proposal), and post-doctoral. Each track will work towards the goal as appropriate for its career preparation stage. The three tracks will meet together for the day to enable multi-level peer mentoring as more senior students and junior researchers reflect on their experiences during their PhD studies.
This track is open to all students who are or are considering pursuing a doctoral degree in the general area of software maintenance and evolution but have not yet completed the dissertation proposal phase (or equivalent) of their program. Students should have already participated in at least one independent study/research project as part of their research group. This track aims to expose early career students to the ICSME research community and research process and to help them progress toward their dissertation proposal.
This track is open to PhD students currently pursuing a doctoral degree in the general area of software maintenance and evolution, who have completed the dissertation proposal phase (or equivalent) of their program. This track aims to bring together students who (a) are pursuing a specific research question, (b) have a concrete research plan for completing their studies, and (c) have obtained some initial results motivating their methodology and plan. Students will gain feedback from a broader community outside their institution and network with peers in the ICSME research community.
This track is open to researchers who have recently completed their PhD dissertation in the general area of software maintenance and evolution. This track provides an opportunity for participants to present their research agenda to a general audience and gain feedback in preparation for job interviews. Participants will develop a research vision that builds on their dissertation and learn to present it to a general audience who is familiar with the research area, but not their specific project or focus.
All submissions that meet the submission criteria (see below) and fit the scope of the conference will be evaluated by the doctoral symposium chairs on the basis of their relevance to the ICSME community, their originality, and their technical soundness. Submissions that are not in compliance with the required submission format or that are out of the scope of the conference will be rejected without being reviewed. Submitted papers must comply with IEEE plagiarism policy and procedures.
Accepted post-proposal and post-doctoral papers will be published in the IEEE Xplore Digital Library. Please review the ICSME 2019 Publication Requirements for more details. Participants from all tracks will present at the symposium, which is closed to the public ICSME community to encourage valuable open discussion and feedback. Presentations will be limited in time to leave sufficient time for feedback. Each participant will also prepare and present a poster during the symposium (for feedback). During the main conference, the author will present the poster again at a public poster session. More presentation details will follow after notification of acceptance.
Submissions must be formatted according to the ICSME 2019 Formatting Instructions. Papers should provide all details (name, affiliation, contact details) of the PhD student. Page limits vary by track, as described below. All submissions must be in PDF and must be submitted online by the deadline via the ICSME 2019 Doctoral Symposium EasyChair conference management system.


The choice patterns details described below are extracted from :
A ChoiceFormat
allows you to attach a format to a range of numbers.
It is generally used in a MessageFormat
for handling plurals.
The choice is specified with an ascending list of doubles, where each item
specifies a half-open interval up to the next item:
If there is no match, then either the first or last index is used, depending on whether the number (X) is too low or too high. If the limit array is not in ascending order, the results of formatting will be incorrect. ChoiceFormat also acceptsX matches j if and only if limit[j] <= X < limit[j+1]
\u221E
as equivalent to infinity(INF).
Note:
ChoiceFormat
differs from the other Format
classes in that you create a ChoiceFormat
object with a
constructor (not with a getInstance
style factory
method). The factory methods aren't necessary because ChoiceFormat
doesn't require any complex setup for a given locale. In fact,
ChoiceFormat
doesn't implement any locale specific behavior.
When creating a ChoiceFormat
, you must specify an array of formats
and an array of limits. The length of these arrays must be the same.
For example,
nextDouble
can be used to get the next higher double, to
make the half-open interval.)
Here is a simple example that shows formatting and parsing:
Here is a more complex example, with a pattern format:double[] limits = {1,2,3,4,5,6,7}; String[] monthNames = {"Sun","Mon","Tue","Wed","Thur","Fri","Sat"}; ChoiceFormat form = new ChoiceFormat(limits, monthNames); ParsePosition status = new ParsePosition(0); for (double i = 0.0; i <= 8.0; ++i) { status.setIndex(0); System.out.println(i + " -> " + form.format(i) + " -> " + form.parse(form.format(i),status)); }
double[] filelimits = {0,1,2}; String[] filepart = {"are no files","is one file","are {2} files"}; ChoiceFormat fileform = new ChoiceFormat(filelimits, filepart); Format[] testFormats = {fileform, null, NumberFormat.getInstance()}; MessageFormat pattform = new MessageFormat("There {0} on {1}"); pattform.setFormats(testFormats); Object[] testArgs = {null, "ADisk", null}; for (int i = 0; i < 4; ++i) { testArgs[0] = new Integer(i); testArgs[2] = testArgs[0]; System.out.println(pattform.format(testArgs)); }
Specifying a pattern for ChoiceFormat objects is fairly straightforward. For example:
And the output result would be like the following:ChoiceFormat fmt = new ChoiceFormat( "-1#is negative| 0#is zero or fraction | 1#is one |1.0<is 1+ |2#is two |2<is more than 2."); System.out.println("Formatter Pattern : " + fmt.toPattern()); System.out.println("Format with -INF : " + fmt.format(Double.NEGATIVE_INFINITY)); System.out.println("Format with -1.0 : " + fmt.format(-1.0)); System.out.println("Format with 0 : " + fmt.format(0)); System.out.println("Format with 0.9 : " + fmt.format(0.9)); System.out.println("Format with 1.0 : " + fmt.format(1)); System.out.println("Format with 1.5 : " + fmt.format(1.5)); System.out.println("Format with 2 : " + fmt.format(2)); System.out.println("Format with 2.1 : " + fmt.format(2.1)); System.out.println("Format with NaN : " + fmt.format(Double.NaN)); System.out.println("Format with +INF : " + fmt.format(Double.POSITIVE_INFINITY));
Format with -INF : is negative Format with -1.0 : is negative Format with 0 : is zero or fraction Format with 0.9 : is zero or fraction Format with 1.0 : is one Format with 1.5 : is 1+ Format with 2 : is two Format with 2.1 : is more than 2. Format with NaN : is negative Format with +INF : is more than 2.


Subconcious Self HandicappingBane Srdjevic10/26/2014 |
For the sake of space, let's not handle the minutiae in this blog post: let's look at the big picture. The truth of Stereotype Threat is that everyone who has ever lived has felt it one way or another, but though it might be for different reasons and from different sources, people will usually react to it. Even choosing to ignore it is a reaction to it.
To me, it's the fear of being something that you think people who don't know you think you ought to be. It's the fear of doing something and having people say, "Oh, that happened just because he/she is [insert nonsense here]" in response to it. Even writing this I'm feeling a it a little bit. As a white male I often feel like I don't have the right to talk about social pressure or prejudice, and when conversations turn in that direction while I'm talking with a diverse group of people I tend to take a back seat and not do as much of the talking. I worry I'll come off sounding insensitive or entitled if I give an opinion, and those worries are in turn unfair to the people around me who probably would treat what I have to say the same as they would treat anoyne else's opinion.
But that seems to be the main outcome of Stereotype Threat: isolation, separation, or disconnection. You start making friends with people who are similar to you so that you don't feel that threat around them, or you keep your opinions to yourself in a room where everyone else is sharing them, or you simply behave separate from yourself in order to avoid falling into a stereotype. In that way, Stereotype Threat in fact scares people away from behaving as they would simply and robs them of a natural part of their identity through fear just because one of their group designations has that stereotype.
So if the outcome of Stereotype Threat is isolation, separation, or disconnection, wouldn't overcoming Stereotype Threat involved some kind of collaboration, inclusion, or coagulation? Becoming more involved, and not shrinking away? The trouble is that this means facing your fears, and that's a tough order to fill sometimes when you're working on your own. That's why in some cases, a person feeling Stereotype Threat needs to be made to be especially involved in whatever situation instigated the threat. But that also means people will need to understand when someone might feel Stereotype Threat.
The trouble with that is that unfortunately not everyone has been able to live every single kind of lifetime there is. We can only know as much as we've experienced and as much as we've been taught, because anything else is assumption. Teaching comes through listening and talking with people about their specific instances of Stereotype Threat so you can get closer to understanding the root of that specific kind, and once you understand it you can see the road signs coming and handle it when it gets to you, because simply diverting it is in fact a negative response to Stereotype Threat. Diversion has a very close relationship with isolation, separation, and disconnection.
That means the goal is to learn, and learning comes from talking, an it comes from reading a few of these blog posts. Only by willfully facing Stereotype Threat head on can you over come it, because Stereotype Threat is a fear like any other terror and that's the only way to get rid of it.


Hey there, I'm Zoe, and I'm zo glad you're here!
I've always found humans to be fascinating in all their weird and delightful ways. In my younger and more vulnerable years, I gravitated towards theater arts to explore other perspectives and thrived in the creative problem-solving of improv.
Little did I know I would be practicing these skills I learned every day as a Designer and Developer. My diverse skills and background allow me to connect the dots between the relationships of human behavior, design, and technology. The opportunities and challenges that UX presents only encourages me to learn and improve my skillset every day.
Designer | Developer | Proud Oddball


config
cd.csrfToken
Set the cookie and header name to what the Drupal Services module expects.
config();


For my project (using winapi) I have to be able to manipulate bitmaps and images.
Is there a way or a library that I could use to paint 1 bitmap over another? Also I need one color to be ignored when painting 1 bitmap over another, like a transparent color.
When using winapi I can only display bitmaps, how would I read other types of images and convert them to bitmap images?
And I'd like to rotate the bitmap images. Any idea how to do that?
All of this is trivial with a graphic lib. If this is for a game or something, you should consider leaving WinAPI and getting a lib like SFML which not only does all of this effortlessly, but also is cross-platform, and actually performs better (faster drawing).
Though if you want to stick with WinAPI... there are two libraries that are available (that I know of). Unfortunately, I only really have experience with one of them:
WinGDI is the basic interface for graphical output in Windows programs.  Unfortunately, it's not much more than bare-bones. AFAIK it doesn't have a way to load anything other than .bmp out of the box and doing something like image rotation has to be done by hand. This is the only form of direct graphics output on Windows that I have a decent amount of first-hand experience with... and having that experience all I can say is: don't bother... it's usually not worth using.
GDI+ is a more modern, more "C++ friendly" version of WinGDI... and it adds a lot of new functionality and should be able to do most if not all of what you want. Unfortunately I know very little about it so I can't really direct you any more than to say "look up some GDI+ tutorials"
I've used sfml before and know it can do this. This is just a part of one of my project, nothing that important. And I tried bitblt but it doesn't have the performance I need. Donno about git+, maybe I check it out. Thanks anyway
You can use Windows Imaging Component to load just about any image format, and Direct2D for "modern" 2D graphics rendering. The latter is either part of or backed by DirectX to achieve hardware acceleration, so it's really the best 2D API on Windows(besides DirectX itself or OpenGL).
Both are COM API's so there might be a bit of a learning curve if you've never used COM before.


--- layout: default ---
These are the places I'm currently pulling from tech blogs.
I will be adding more to this page when I have it available.


List
Kurikulum
Form
Tambah
Prodi
Cari
Manajemn Bisnis
#
Kurikulum
Tahun
Status
1
Kurikulum 2018
2020
Aktif
Aktifkan
Your attention is required
×
Are you sure ?
Once deleted, you will not be able to recover this imaginary file!


notify-send
Uses the current desktop environment's notification system to create a notification.
More information: home page
- Show a notification with the title "Test" and the content "This is a test":
notify-send "Test" "This is a test"
- Show a notification with a custom icon:
notify-send -i icon.png "Test" "This is a test"
- Show a notification for 5 seconds:
notify-send -t 5000 "Test" "This is a test"
- Show a notification with an app's icon and name:
notify-send "Test" --icon=google-chrome --app-name="Google Chrome"


Home
Chefs
Recipes
Ask Chefs
Our Top Picks
Submit Your Recipes
Name:
Email Address:
My Recipe.....
Upload
Upload a Video!!!
Upload an Image!!!


{{option.value}}
{{option.value}}
Monthly
Once
Bank transfer
Bank transfer
Pay by square
Your e-mail:
Wrong e-mail
Please agree with terms and conditions
{{widget.settings[deviceType].cta.text}}
IBAN
Var. symbol
Amount
IBAN
Var. symbol
Amount
{{widget.settings[deviceType].payment_settings.third_step.cta.description}}


Application Auto Scaling ScalingPolicy TargetTrackingScalingPolicyConfiguration
Use
the TargetTrackingScalingPolicyConfiguration
property
to
configure
a target tracking scaling
policy.
Use it to
adjust
upward or downward in response to actual workloads, so that
capacity
utilization remains at or near your target utilization.
TargetTrackingScalingPolicyConfiguration
is a property of the AWS::ApplicationAutoScaling::ScalingPolicy resource. For more
information, see PutScalingPolicy in the Application Auto Scaling API Reference.
Syntax
To declare this entity in your AWS CloudFormation template, use the following syntax:
JSON
{ "
CustomizedMetricSpecification
" :CustomizedMetricSpecification
, "PredefinedMetricSpecification
" :PredefinedMetricSpecification
, "ScaleInCooldown
" :Integer
, "ScaleOutCooldown
" :Integer
, "TargetValue
" :Double
}
YAML
CustomizedMetricSpecification
:CustomizedMetricSpecification
PredefinedMetricSpecification
:PredefinedMetricSpecification
ScaleInCooldown
:Integer
ScaleOutCooldown
:Integer
TargetValue
:Double
Properties
For more information about each property, including constraints and valid values, see TargetTrackingScalingPolicyConfiguration in the Application Auto Scaling API Reference.
CustomizedMetricSpecification
-
This property is reserved for future use.
Required: No
Type: Application Auto Scaling ScalingPolicy CustomizedMetricSpecification
Update requires: No interruption
PredefinedMetricSpecification
-
A predefined metric.
Required: No
Type: Application Auto Scaling ScalingPolicy PredefinedMetricSpecification
Update requires: No interruption
ScaleInCooldown
-
The amount of time, in seconds, after a scale in activity completes before another scale in activity can start.
Required: No
Type: Integer
Update requires: No interruption
ScaleOutCooldown
-
The amount of time, in seconds, after a scale out activity completes before another scale out activity can start.
Required: No
Type: Integer
Update requires: No interruption
TargetValue
-
The target value for the metric.
Required: Yes
Type: Double
Update requires: No interruption


gh pr merge
Merge GitHub pull requests.
More information: home page
- Merge the pull request associated with the current branch interactively:
gh pr merge
- Merge the specified pull request, interactively:
gh pr merge pr_number
- Merge the pull request, removing the branch on both the local and the remote:
gh pr merge --delete-branch
- Merge the current pull request with the specified merge strategy:
gh pr merge --merge|squash|rebase
- Merge the current pull request with the specified merge strategy and commit message:
gh pr merge --merge|squash|rebase --subject commit_message
- Squash the current pull request into one commit with the message body and merge:
gh pr merge --squash --body="commit_message_body"
- Display help:
gh pr merge --help


There is any repository with the name "{{searchInput.value}}". Please, try again with a different name!
The GitHub API rate limit has been reached. If you are not using an API key, you can add one to the enviroment file and continue using the application. Otherwise, wait around a minute and try again. Reload the page before process!
Go ahead and start searching for the most popular repositories in GitHub.


| Struts 2 > Home > Tutorials > Step by Step > Understanding Results |
After the Action processes the request, a result is selected to provide the response. A result may simply forward to a HTML page, or a JavaServer page, a FreeMaker or Velocity template, or the result might construct a PDF or some other complex report. There may be multiple results available to an action mapping. To indicate which one to select, the Action class returns a name corresponding to the appropriate result.
<action name="helloName2" class="tutorial.HelloName2"> <result name="success">HelloName2-success.jsp</result> <result name="error">HelloName-error.jsp</result> </action>
So far, our results have used the default type, Dispatcher. The Dispatcher forwards to another web resource. Other kinds of views can be used by specifying a different result type.
The struts-default package defines result types for the Result classes provided with the framework. If your package uses a custom result type, you can add it to your package.
<xwork> <include name="struts-default.xml"/> <package name="default" extends="struts-default"> <result-types> <result-type name="Image" class="tutorial.ImageResult" /> </result-types> <action name="Image" class="tutorial.Image"> <result name="success" type="Image"/> </action> </package> </xwork>
It's not unusual for mappings to share a need for the same result. For example, if your application is secure, then many mappings might need to return "login" if the security check fails. Rather than define a common result in every action mapping, the framework lets you define global results.
<package name="default" extends="struts-default"> <global-results> <result name="login" type="redirect-action">login</result> <result name="unauthorized">Unauthorized.jsp</result> </global-results> <!-- other package declarations --> </package>
| Global Absolutes Because global results are searched after local results, you can override any global result mapping by creating a local result mapping. Results can indicate resources using relative or absolute URIs. Because you may not know the context in which a result is being invoked, it's best to use absolute paths for global results. |
The framework offers a variety of result types. An Action can select the appropriate result by name, without actually knowing what result type will be rendered. If a result is needed by multiple action mappings, it can be defined once as a global result.
| Next | Onward to Understanding Interceptors |
|---|---|
| Prev | Return to Coding Actions |


--- title: Home description: ---
GAP is my personal planner, blog & etc.
The source code is hosted on GitHub.


Boiler Room ***1/2
Rated on a 4-star scale Screening venue: Odeon (Manchester City Centre) Released in the UK by Entertainment Distribution on May 5, 2000; certificate 15; 119 minutes; country of origin USA; aspect ratio 1.85:1
Directed by Ben Younger; produced by Jennifer Todd, Suzanne Todd. Written by Ben Younger. Photographed by Enrique Chediak; edited by Chris Peppe.
CAST..... Giovanni Ribisi..... Seth Vin Diesel..... Chris Nicky Katt..... Greg Nia Long..... Abby Ron Rifkin..... Seth's father Scott Caan..... Richie Jamie Kennedy..... Adam Taylor Nichols..... Harry Reynard Ben Affleck.....  "Boiler Room" is often a comedy, because it lets us spend time with some of the most risible people alive -- stockbrokers. It's also a very serious thriller, because the protagonist gets seduced by their money-grubbing lifestyle and ends up in over his head.
His name is Seth (Giovanni Ribisi), a 19-year old New Yorker who dropped out of college and supports himself by running an illegal casino out of his apartment. When his father, a federal court judge, discovers this, he hits the roof, and tells him to get a proper job. Seth can't handle dad's disgust. He determines to find an occupation that requires him to wear a suit.
Then one of his friends sets him up at the firm of J.T. Marlin -- a telemarketing 'chop shop' that sells people stock for companies that don't exist, then charges them huge commission rates to dump it on the open market. This is more dishonest than the casino, but hey, it looks respectable enough. And it pays better. That's made clear in a pep talk by the recruiter, Jim (Ben Affleck), who seems to have used Alec Baldwin's chilling monologue in "Glengarry Glen Ross" as a self-help tape.  Anybody who says money is the root of all evil doesn't have any."
The guys know Oliver Stone's "Wall Street" off by heart, too. They proudly recite the villain's speeches; oblivious to the message, and getting a kick out of the lingo. When they're all on the phone, screaming stock pitches to potential victims, the obsession and aggression in the office is palpable, and so very evil and illegal that we know something disastrous is bound to happen.
Since we are so engaged by Seth, we watch this with more tension than disgust. He is a well-written hero for the piece because he's an essentially good kid; we can sympathise with his desire to make money, and though he does dishonest things, he doesn't realise it, because he hasn't evaluated the situation in that way. The climate in J.T. Marlin teaches him to consider only money, and if there's nothing wrong with the pay check, what could be wrong at all? Seth has to be suckered in before he can realise what a sham this is, and "Boiler Room" is fascinating because it lets us see the whole process unfold.
All of the movie's dialogue is impressive. Brokers' conversations sound like a cross between financial jargon and military planning. And Seth's scenes with his father (Ron Rifkin) and the film's love interest (Nia Long) are staged like clichés but played with humour, emotion, presence and personality. The characters talk about their backgrounds, hopes and needs in convincing ways. "Boiler Room" works as a morality play by presenting us with people whose moral compasses it's actually possible to care about.
COPYRIGHT(c) 2000 Ian Waldron-Mantgani Please visit, and encourage others to visit, the UK Critic's website, which is located at http://members.aol.com/ukcritic
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


(
)
Value:
off
on
Mode
Off
On
Timer
Start:
End:
Mode
Off
On
Timer
Start
Next
value:
__.__
°C
__.__
%
Temperature
Humidity
value:
W
mA
V
Wh
mode:
current
voltage
value:
color:
white:
brightness:
.
Scenes
IDE


WELCOME TO WCDINALDS
Create
Home
Create
Update
Delete
Let's Make BoorgorMons
Gotta Eat 'Em All
Are they edible?
Yes
No
Create BM
Clear Fields
Current BMs:


€80,000 funding approved for seven Mayo Social Enterprises
THE Minister for Rural and Community Development, has announced the allocation of €81,590 through his department’s Dormant Accounts Fund to support seven social enterprise projects in Mayo.
The Small Capital Grants Scheme, which has been introduced this year by Minister Ring, supports a key policy commitment in the National Social Enterprise Policy for Ireland, which the government published in July, to grow and strengthen social enterprises.
The following social enterprises in Mayo have received support:
| RECIPIENT | PURPOSE | AMOUNT |
| Ballycastle Community Hall | Hall insulation to ensure continued use by the communities for recreational and social activities and to bring it in line with Government policy to improve energy ratings. This is the only building in the village that has the capacity of holding over 100 people. This will in turn help to increase our traded income. | €15,000 |
| Mulranny Industrial Development Trust | Final stage of re-development work on an industrial unit refurbished to modern and energy efficient standards. It is hoped to promote the unit to the private sector (storage for courier companies) and also for use as a digital hub. | €15,000 |
| Robeen Rascals Community Childcare | Development of car park facility, new outdoor walls, repair to outside play area. | €4,500 |
| Carrowbeg Enterprises, Western Care Association | Refurbishment and upgrade of kitchen and toilet areas their centre | €15,000 |
| Carrakennedy Community playschool | Repairs to roof of playschool building | €15,000 |
| Westport Social Services | Purchase of new dishwasher, microwave and cooker and replacement of crockery. | €2,090 |
| Mayo Academy of Performing Arts | Chairs/Tables/ Acoustic wall panels, teaching whiteboards, Printer, Scanner, laptops, Kitchen units, Storeroom shelving, floor paint, reception desk and chair | €15,000 |
Announcing the funding today, Minister Ring said: “Social Enterprises are providing valuable services and supports in communities across Ireland.
"To assist them in their work, I announced the Small Capital Grants Scheme in October.
"We received an overwhelming response to this call for funding from social enterprises in Mayo and across the country.
“These grants of between €2,000 and €15,000 which are being awarded will help these enterprises to achieve their social, environmental and economic objectives.
“This funding is being provided from the Dormant Accounts Fund, which is managed by my department.
"Examples of items being supported through the Small Capital Grants scheme include the purchase of new kitchen equipment, computers, training material, and minor refurbishments.
“Unfortunately it was not possible to fund more of the social enterprises that applied this year, given the budget available, but I will review the possibility of making further allocations in 2020.
"I also intend to make an announcement very shortly on funding for Training and Mentoring for Social Enterprises.”


- I am not breaking my computer.
- Short of dumping water on it, the only way you'll break your computer is by deleting files in obscure parts of your hard drive.
- I do not need to know what the acronym stands for.
- If you've used a computer in the last 20 years you probably know that a JPG is a kind of digital photo, as in cat_photo.jpg. You probably didn't learn that by first learning "JPG" stands for
Joint Photographic Experts Group.
- I will not be ashamed to use Google.
- Even the most experienced web designer or programmer has to look something up on Google every 10 minutes.
- I am not expected to remember all this.
- See #3.
- I will remember that, at the end of the day, the most important thing is whether or not it works.
- It's good to know the rules before you break them. However, if you find yourself tearing your hair out because you can't find a way to make something work within the rules, and no-one will know the difference anyway, it's usually OK to cheat a little.


SlothPI - The math sloth
SlothPI
Excercises
Clock (Excercise 1)
Complex Numbers (Excercise 2)
Binary/Hex Converter (Excercise 3)
Factorial (Excercise 4)
Sloth-Quiz (Excercise 5)
Age Converter (Excercise 6)
Canvas
Who made what (in ILIAS)?
About Sloths
General
Habitat
Food
About
Quiz with SlothPI
Home
Excercises
Sloth-Quiz (Excercise 5)
How many toes do I have?
What is my life expectation as a Sloth?
5 years
10 years
15 years
20 years
What kind of math can I do?
Complex Numbers
Factorial
Binary Conversion
Hexadecimal Conversion
Age Conversion
What can I not do?


--- layout: page title: Enrollment subtitle: Join our team ---
If you are a student at University of Porto, you are elegible to enroll in our team, even if you don't have any previous knowledge of information security. The most important thing is the desire to learn.
We'll provide you with the necessary resources, and also a nice group of people to take care of your doubts. However, be prepared, as it will require hard work and autonomy to be successful.
If you're still here and you're sure you want to embrace this project, take this as your first challenge:
Ckluc2NyZXZlLXRlIG5vIG5vc3NvIHNlcnZpZG9yISAKU2Vyw6EgbmVjZXNzw6FyaW8gY29uZmly bWFyIHF1ZSDDqXMgZXN0dWRhbnRlIGRhIFVuaXZlcnNpZGFkZSBkbyBQb3J0byB1c2FuZG8gbyB0 ZXUgZW1haWwgaW5zdGl0dWNpb25hbC4KCkVzdGUgY29udml0ZSBzw7MgdGUgZMOhIGFjZXNzbyB0 ZW1wb3LDoXJpbyBhbyBzZXJ2aWRvci4gRW5xdWFudG8gbsOjbyB0ZSBhdXRlbnRpY2FyZXMsIG7D o28gdGVyw6FzIGFjZXNzbyBwZXJtYW5lbnRlLgpTZSBmb3JlcyByZW1vdmlkbyBkYSBwbGF0YWZv cm1hIGR1cmFudGUgbyBwcm9jZXNzbyBkZSBhdXRlbnRpY2HDp8OjbywgcG9kZXMgc2VtcHJlIHZv bHRhciBhIGVudHJhciBhdHJhdsOpcyBkbyBsaW5rOgoKaHR0cHM6Ly9kaXNjb3JkLmdnL2tWNkJx ZnY3OGoKCg==
Good luck and see you soon 🚩


Google Code offered in: English - Español - 日本語 - 한국어 - Português - Pусский - 中文(简体) - 中文(繁體)
At some point, most GWT applications will need to interact with a backend server. GWT provides a couple of different ways to communicate with a server via HTTP. You can use the GWT RPC framework to transparently make calls to Java servlets and let GWT take care of low-level details like object serialization. Alternatively, you can use GWT's HTTP client classes to build and send custom HTTP requests.
Everything that happens within your web server is referred to as server-side processing. When your application running in the user's browser needs to interact with your server (for example, to load or save data), it makes an HTTP request across the network using a remote procedure call (RPC). While processing an RPC, your server is executing server-side code.
GWT provides an RPC mechanism based on Java Servlets to provide access to server side resources. This mechanism includes generation of efficent client and server side code to serialize objects across the network using deferred binding.
Tip: Although GWT translates Java into JavaScript for client-side code, GWT does not meddle with your ability to run Java bytecode on your server whatsoever. Server-side code doesn't need to be translatable, so you're free to use any Java library you find useful.
GWT does not limit you to this one RPC mechanism or server side development environment. You are free to integrate with other RPC mechanisms, such as JSON using the GWT supplied RequestBuilder class, JSNI methods or a third party library.
A fundamental difference between AJAX applications and traditional HTML web applications is that AJAX applications do not need to fetch new HTML pages while they execute. Because AJAX pages actually run more like applications within the browser, there is no need to request new HTML from the server to make user interface updates. However, like all client/server applications, AJAX applications usually do need to fetch data from the server as they execute. The mechanism for interacting with a server across a network is called making a remote procedure call (RPC), also sometimes referred to as a server call. GWT RPC makes it easy for the client and server to pass Java objects back and forth over HTTP. When used properly, RPCs give you the opportunity to move all of your UI logic to the client, resulting in greatly improved performance, reduced bandwidth, reduced web server load, and a pleasantly fluid user experience.
The server-side code that gets invoked from the client is often referred to as a service, so the act of making a remote procedure call is sometimes referred to as invoking a service. To be clear, though, the term service in this context is not the same as the more general "web service" concept. In particular, GWT services are not related to the Simple Object Access Protocol (SOAP).
This section outlines the moving parts required to invoke a service. Each service has a small family of helper interfaces and classes. Some of these classes, such as the service proxy, are automatically generated behind the scenes and you generally will never realize they exist. The pattern for helper classes is identical for every service that you implement, so it is a good idea to spend a few moments to familiarize yourself with the terminology and purpose of each layer in server call processing. If you are familiar with traditional remote procedure call (RPC) mechanisms, you will recognize most of this terminology already.
In order to define your RPC interface, you need to:
To begin developing a new service interface, create a client-side Java interface that extends the RemoteService tag interface.
package com.example.foo.client; import com.google.gwt.user.client.rpc.RemoteService; public interface MyService extends RemoteService { public String myMethod(String s); }
This synchronous interface is the definitive version of your service's specification. Any implementation of this service on the server-side must extend RemoteServiceServlet and implement this service interface.
package com.example.foo.server; import com.google.gwt.user.server.rpc.RemoteServiceServlet; import com.example.client.MyService; public class MyServiceImpl extends RemoteServiceServlet implements MyService { public String myMethod(String s) { // Do something interesting with 's' here on the server. return s; } }
Tip: It is not possible to call this version of the RPC directly from the client. You must create an asynchronous interface to all your services as shown below.
Before you can actually attempt to make a remote call from the client, you must create another client interface, an asynchronous one, based on your original service interface. Continuing with the example above, create a new interface in the client subpackage:
package com.example.foo.client; interface MyServiceAsync { public void myMethod(String s, AsyncCallback<String> callback); }
The nature of asynchronous method calls requires the caller to pass in a callback object that can be notified when an asynchronous call completes, since by definition the caller cannot be blocked until the call completes. For the same reason, asynchronous methods do not have return types; they generally return void. Should you wish to have more control over the state of a pending request, return Request instead. After an asynchronous call is made, all communication back to the caller is via the passed-in callback object.
Note the use of the suffix Async and argument referencing the AsyncCallback class in the examples above. The relationship between a service interface and its asynchronous counterpart must follow certain naming standards. The GWT compiler depends on these naming standards in order to generate the proper code to implement RPC.
See AsyncCallback for additional details on how to implement an asynchronous callback.
Every service ultimately needs to perform some processing to order to respond to client requests. Such server-side processing occurs in the service implementation, which is based on the well-known servlet architecture. A service implementation must extend RemoteServiceServlet and must implement the associated service interface. Note that the service implementation does not implement the asynchronous version of the service interface.
Every service implementation is ultimately a servlet, but rather than extending HttpServlet, it extends RemoteServiceServlet instead. RemoteServiceServlet automatically handles serialization of the data being passed between the client and the server and invoking the intended method in your service implementation.
GWT development mode includes an embedded version of Jetty which acts as a development-time servlet container for testing. This allows you to debug both server-side code and client-side code when your run your application in development mode using a Java debugger. To automatically load your service implementation, configure your servlet in your web.xml.
For example, suppose you have a module com.example.foo.Foo, and you define an RPC interface com.example.foo.client.MyService, annotated with @RemoteServiceRelativePath("myService"). You then implement a servlet for the interface you created for com.example.foo.client.MyService with the class com.example.foo.server.MyServiceImpl which extends RemoteServiceServlet. Finally, you add the following lines to your web.xml:
<!-- Example servlet loaded into servlet container --> <servlet> <servlet-name>myServiceImpl</servlet-name> <servlet-class> com.example.foo.server.MyServiceImpl </servlet-class> </servlet> <servlet-mapping> <servlet-name>myServiceImpl</servlet-name> <url-pattern>/com.example.foo.Foo/myService</url-pattern> </servlet-mapping>
Take a look at the value in url-pattern. The first part must match the name of your GWT module. If your module has a rename-to attribute, you would use the renamed value instead; either way it must match the actual subdirectory within your war directory where your GWT module lives (the module base URL). The second part must match the value you specified in the RemoteServiceRelativePath annotation you annotated com.example.foo.client.MyService with.
When testing out both the client and server side code in development mode, make sure to place a copy of the gwt-servlet.jar into your war/WEB-INF/lib directory, and make sure your Java output directory is set to war/WEB-INF/classes. Otherwise the embedded Jetty server will not be able to load your servlet properly.
Here are some commonly seen errors trying to get RPC running:
If development mode works correctly, and you've compiled your application with the GWT compiler and tested that production mode works correctly, you should be able to deploy the contents of your war directory into any servlet container that is appropriate for your application. See the example deployment in this guide for an example of how to deploy to a servlet container.
The process of making an RPC from the client always involves the same steps:
Suppose you want to call a method on a service interface defined as follows:
// The RemoteServiceRelativePath annotation automatically calls setServiceEntryPoint() @RemoteServiceRelativePath("email") public interface MyEmailService extends RemoteService { void emptyMyInbox(String username, String password); }
Its corresponding asynchronous interface will look like this:
public interface MyEmailServiceAsync { void emptyMyInbox(String username, String password, AsyncCallback<Void> callback); }
The client-side call will look like this:
public void menuCommandEmptyInbox() { // (1) Create the client proxy. Note that although you are creating the // service interface proper, you cast the result to the asynchronous // version of the interface. The cast is always safe because the // generated proxy implements the asynchronous interface automatically. // MyEmailServiceAsync emailService = (MyEmailServiceAsync) GWT.create(MyEmailService.class); // (2) Create an asynchronous callback to handle the result. // AsyncCallback callback = new AsyncCallback() { public void onSuccess(Void result) { // do some UI stuff to show success } public void onFailure(Throwable caught) { // do some UI stuff to show failure } }; // (3) Make the call. Control flow will continue immediately and later // 'callback' will be invoked when the RPC completes. // emailService.emptyMyInbox(fUsername, fPassword, callback); }
It is safe to cache the instantiated service proxy to avoid creating it for subsequent calls. For example, you can instantiate the service proxy in the module's onModuleLoad() method and save the resulting instance as a class member.
public class Foo implements EntryPoint { private MyEmailServiceAsync myEmailService = (MyEmailServiceAsync) GWT.create(MyEmailService.class); public void onModuleLoad() { // ... other initialization } /** * Make a GWT-RPC call to the server. The myEmailService class member * was initalized when the module started up. */ void sendEmail (String message) { myEmailService.sendEmail(message, new AsyncCallback<String>() { public void onFailure(Throwable caught) { Window.alert("RPC to sendEmail() failed."); } public void onSuccess(String result) { label.setText(result); } }); } }
GWT supports the concept of serialization, which means allowing the contents of a data object to be moved out of one piece of running code and either transmitted to another application or stored outside the appliation for later use. GWT RPC method parameters and return types must be transmitted across a network between client and server applications and therefore they must be serializable.
Serializable types must conform to certain restrictions. GWT tries really hard to make serialization as painless as possible. While the rules regarding serialization are subtle, in practice the behavior becomes intuitive very quickly.
Tip: Although the terminology is very similar, GWT's concept of "serializable" is slightly different than serialization based on the standard Java interface Serializable. All references to serialization are referring to the GWT concept. For some background, see the FAQ topic Does the GWT RPC system support the use of java.io.Serializable?
A type is serializable and can be used in a service interface if one of the following is true:
The class java.lang.Object
is not serializable, therefore you cannot expect that a collection of Object types will be serialized across the wire.
As of GWT 1.5, most use cases can utilize Java generics to replace the use of Object instances.
A user-defined class is serializable if all of the following apply:
The transient keyword is honored, so values in transient fields are not exchanged during RPCs. Fields that are declared final are also not exchanged during RPCs, so they should generally be marked transient as well.
GWT RPC supports polymorphic parameters and return types. To make the best use of polymorphism, however, you should still try to be as specific as your design allows when defining service interfaces. Increased specificity allows the compiler to do a better job of removing unnecessary code when it optimizes your application for size reduction.
Collection classes such as java.util.Set and java.util.List are tricky because they operate in terms of Object instances. To make collections serializable, you should specify the particular type of objects they are expected to contain through normal type parameters (for example, Map<Foo,Bar> rather than just Map). If you use raw collections or maps you will get bloated code.
Server-side persistence APIs, such as Java Data Objects (JDO) and the Java Persistence API allow server-side code to store Java objects in a persistent data store. When objects are attached to the data store, changes to the object field values are reflected in the data store and remain available even after the object is destroyed or the Java VM is restarted.
A number of persistence APIs are commonly implemented by passing the class source code or bytecode through a tool known as an "enhancer." Enhancers may add additional static or instance fields to the class definition in order to implement the persistence features. Note that these enhancements are relevant on the server-side only; GWT does not provide persistence for client code. However, the use of server-side enhancement causes class definitions to differ between the client and server, since the enhancer is run only on the server. Due to these differences, previous versions of GWT were unable to perform RPC on enhanced classes.
As of GWT version 2.0, some common forms of persistence are now handled by the GWT RPC mechanism. GWT considers a class to be enhanced if any of the following are true:
javax.jdo.annotations.PersistenceCapable
annotation with detachable=true
.javax.persistence.Entity
annotation. rpc.enhancedClasses
configuration property in a .gwt.xml
module file that is part of the application.The GWT RPC mechanism for enhanced classes makes several assumptions regarding the persistence implementation:
RemoteService
.When transmitting an enhanced object from server to client, the normal GWT RPC mechanism is used for the non-enhanced fields. Non-transient, non-static fields that exist on the server but not the client are serialized on the server using Java serialization, and the field names and values are combined into a single encoded value which is passed to the client. The client stores this encoded value, but does not make use of it except when transmitting the object back to the server.
When an enhanced object is transmitted from client to server, the encoded value (if present) is sent to the server, where it is decoded into its separate field names and values. For each field 'xxxYyy', if a setter method named 'setXxxYyy' exists (note capitalization of the first letter following 'set'), it is called with the field value as its argument. Otherwise, the field is set directly.
Making RPCs opens up the possibility of a variety of errors. Networks fail, servers crash, and problems occur while processing a server call. GWT lets you handle these conditions in terms of Java exceptions. RPC-related exceptions fall into two categories: checked exceptions and unchecked exceptions.
Keep in mind that any custom exceptions that you want to define, like any other piece of client-side code, must only be composed of types supported by GWT's emulated JRE library.
Service interface methods support throws declarations to indicate which exceptions may be thrown back to the client from a service implementation. Callers should implement AsyncCallback.onFailure(Throwable) to check for any exceptions specified in the service interface.
An RPC may not reach the service implementation at all. This can happen for many reasons: the network may be disconnected, a DNS server might not be available, the HTTP server might not be listening, and so on. In this case, an InvocationException is passed to your implementation of AsyncCallback.onFailure(Throwable). The class is called InvocationException because the problem was with the invocation attempt itself rather than with the service implementation.
An RPC can also fail with an invocation exception if the call does reach the server, but an undeclared exception occurs during normal processing of the call. There are many reasons such a situation could arise: a necessary server resource, such as a database, might be unavailable, a NullPointerException could be thrown due to a bug in the service implementation, and so on. In these cases, a InvocationException is thrown in application code.
Another type of failure can be caused by an incompatibility between the client and the server. This most commonly occurs when a change to a service implementation is deployed to a server but out-of-date clients are still active. For more details please see IncompatibleRemoteServiceException.
When the client code receives an IncompatibleRemoteServiceException, it should ultimately attempt to refresh the browser in order to pick up the latest client.
There are various ways to approach services within your application architecture. Understand first of all that GWT RPC services are not intended to replace J2EE servers, nor are they intended to provide a public web service (e.g. SOAP) layer for your application. GWT RPCs, fundamentally, are simply a method of "getting from the client to the server." In other words, you use RPCs to accomplish tasks that are part of your application but that cannot be done on the client computer.
Architecturally, you can make use of RPC two alternative ways. The difference is a matter of taste and of the architectural needs of your application.
The first and most straightforward way to think of service definitions is to treat them as your application's entire back end. From this perspective, client-side code is your "front end" and all service code that runs on the server is "back end." If you take this approach, your service implementations would tend to be more general-purpose APIs that are not tightly coupled to one specific application. Your service definitions would likely directly access databases through JDBC or Hibernate or even files in the server's file system. For many applications, this view is appropriate, and it can be very efficient because it reduces the number of tiers.
In more complex, multi-tiered architectures, your GWT service definitions could simply be lightweight gateways that call through to back-end server environments such as J2EE servers. From this perspective, your services can be viewed as the "server half" of your application's user interface. Instead of being general-purpose, services are created for the specific needs of your user interface. Your services become the "front end" to the "back end" classes that are written by stitching together calls to a more general-purpose back-end layer of services, implemented, for example, as a cluster of J2EE servers. This kind of architecture is appropriate if you require your back-end services to run on a physically separate computer from your HTTP server.
The GWT development mode embedded web server is only intended for debugging your web app. Once your web app is ready for deployment, it is time to deploy to a production server. If your web app consists only of static content, pretty much any web server will do. However, most GWT web apps will use RPC and Java servlets. For these kinds of applications, you will need to select a servlet container (also called a web container or web engine) to run the backend. GWT does not provide a servlet container to use in production, but there are many different products available. The following lists just a few commercial and non-commercial offerings:
In the examples below, we'll show how to deploy your server-side components to a production server using Apache HTTPD and Apache Tomcat as a web engine. Although there are many different implementations of web servers and servlet containers, the Servlet API Specifications define a standard structure for project directories which most web engines follow, and as of 1.6, GWT's native output format follows this specification.
Tip: For the latest servlet specification documentation see the Java Community Process website. It will describe the general workings of the servlet and the conventions used in configuring your servlets for deployment.
Before you get started, make sure your application works correctly in development mode.
The simplest way to deploy your application is to use a single server for both your static content and your servlet classes. If you created your project with webAppCreator, you can simply run ant war in your project directory. The Ant build.xml file should do the following things automatically:
Now just copy your .war file into Tomcat's /webapps folder. If you have default configuration settings it should automatically unzip the .war file.
If Tomcat is in its default configuration to run on port 8080, you should be able to run your application by entering the url http://<hostname>:8080/MyApp/MyApp.html into your web browser.
If you encounter any problems, take look in the Tomcat log file, which can be found in the logs directory of your Tomcat installation. If your web pages display but the RPC calls don't seem to be going through, try turning on access logging on Tomcat. You may find that the URL used by the client side has not been registered by Tomcat, or that there is a misconfiguration between the URL path set in the setServiceEntryPoint(URL) call when declaring your RPC service and the <url-pattern> URL mapping the the web.xml file.
The above example is a good way to test your application from client to server, but may not be the best production setup. For one, the Jakarta/Tomcat server is not the fastest web server for static files. Also, you may already have a web infrastructure setup for serving static content that you would like to leverage. The following example will show you how to split the web engine deployment from from the static content.
If you look at the war directory of a built web application, you'll notice two kinds of files:
Once you've built your web application, copy the contents of the war directory except for WEB-INF/ directory into your apache configuration's document root. We will call that directory /var/www/doc/MyApp and the resulting URL is http://www.example.com/MyApp/MyApp.html. (An easier method might be to just copy the entire war contents and then delete WEB-INF/ out of the destination.)
To setup your Tomcat server, just deploy the entire war, including both kinds of content. The reason for including static content is that servlets may need to use ServletContext.getResource() to access static content programmatically. This is always true for GWT RPC servlets, which need to load a generated serialization policy file.
Let's assume that the Tomcat server is on a different host. In this case, there is going to be a problem. Browsers' Single Origin Policy (SOP) will prevent connections to ports or machines that differ from the original URL. The strategy we are going to use to satisfy the SOP is to configure Apache to proxy a URL to another URL.
Specific directions for configuring Apache and Tomcat for such a proxy setup are at the Apache website. The general idea is to setup Apache to redirect ONLY requests to your sevlets. That way Apache will serve all the static content, and your Tomcat server will only be used for service calls. For this example, assume that:
The idea is to have Apache proxy requests to the servlet to the other server such that:
http://www.example.com/MyApp/myapp/myService --> http://servlet.example.com:8080/MyApp/myapp/myService
The following Apache configuration sets up such a rule using a Proxy:
ProxyPass /MyApp/myapp/myService http://servlet.example.com:8080/MyApp/myapp/myService ProxyPassReverse /MyApp/myapp/myService http://servlet.example.com:8080/MyApp/myapp/myService
To verify this is working, use a web browser to hit both http://www.example.com/MyApp/myapp/myService and http://servlet.example.com:8080/MyApp/myapp/myService. You should get the same result in both cases (typically a 405: HTTP method GET is not supported by this URL, which is good). If you get something different hitting the second URL, you may have a configuration issue.
<Proxy *> Order deny,allow Allow from all </Proxy>
It should be mentioned that these are just two examples of deployment scenarios. There are many ways to configure your application for deployment:
Tip: You can also use a real production server while debugging in development mode. This can be useful if you are adding GWT to an existing application, or if your server-side requirements have become more than the embedded web server can handle. See this article on how to use an external server in development mode.
If your GWT application needs to communicate with a server, but you can't use Java servlets on the backend — or if you simply prefer not to use RPC — you can still perform HTTP requests manually. GWT contains a number of HTTP client classes that simplify making custom HTTP requests to your server and optionally processing a JSON- or XML-formatted response.
GWT contains a set of HTTP client classes that allow your application to make generic HTTP requests.
Making HTTP requests in GWT works much like it does in any language or framework, but there are a couple of important differences you should be aware of.
First, because of the single-threaded execution model of most web browsers, long synchronous operations such as server calls can cause a JavaScript application's interface (and sometimes the browser itself) to become unresponsive. To prevent network or server communication problems from making the browser "hang", GWT allows only asynchronous server calls. When sending an HTTP request, the client code must register a callback method that will handle the response (or the error, if the call fails). For more information about the exclusion of synchronous server connections, you may want to check out this FAQ article.
Second, because GWT applications run as JavaScript within a web page, they are subject to the browser's same origin policy (SOP). SOP prevents client-side JavaScript code from interacting with untrusted (and potentially harmful) resources loaded from other websites. In particular, SOP makes it difficult (although not impossible) to send HTTP requests to servers other than the one that served the HTML host page into which your GWT module is laoded.
To use the HTTP types in your application, you'll need to first inherit the GWT HTTP module by adding the following <inherits> tag to your module XML file:
<inherits name="com.google.gwt.http.HTTP" />
RequestBuilder is the core class you'll need for constructing and sending HTTP requests. Its constructor has parameters for specifying the HTTP method of the request (GET, POST, etc.) and the URL (the URL utility class is handy for escaping invalid characters). Once you have a RequestBuilder object, you can use its methods to set the username, password, and timeout interval. You can also set any number of headers in the HTTP request.
Once the HTTP request is ready, call the server using the sendRequest(String, RequestCallback) method. The RequestCallback argument you pass will handle the response or the error that results. When a request completes normally, your onResponseReceived(Request, Response) method is invoked. Details of the response (for example, status code, HTTP headers, and response text) can be retrieved from the Response argument. Note that the onResponseReceived(Request, Response) method is called even if the HTTP status code is something other than 200 (success). If the call does not complete normally, the onError(Request, Throwable) method gets called, with the second parameter describing the type error that occurred.
As noted before, all HTTP calls in GWT are asynchronous, so the code following the call to sendRequest(String, RequestCallback) will be executed immediately, not after the server responds to the HTTP request. You can use the Request object that is returned from sendRequest(String, RequestCallback) to monitor the status of the call, and cancel it if necessary.
Here's a brief example of making an HTTP request to a server:
import com.google.gwt.http.client.*; ... String url = "http://www.myserver.com/getData?type=3"; RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, URL.encode(url)); try { Request request = builder.sendRequest(null, new RequestCallback() { public void onError(Request request, Throwable exception) { // Couldn't connect to server (could be timeout, SOP violation, etc.) } public void onResponseReceived(Request request, Response response) { if (200 == response.getStatusCode()) { // Process the response in response.getText() } else { // Handle the error. Can get the status text from response.getStatusText() } } }); } catch (RequestException e) { // Couldn't connect to server }
Once you receive the response from the server using Response.getText(), it's up to you to process it. If your response is encoded in XML or JSON, you can use the XML library and the JSON library or overlay types, respectively, to process it.
Using the AsyncCallback interface is new to many developers. Code is not necessarily executed sequentially, and it forces developers to handle situations where a server call is in progress but has not completed. Despite these seeming drawbacks, the designers of GWT felt it was an essential part of creating usable interfaces in AJAX for several reasons:
Browser mechanics aside, asynchronous RPC gives your application the ability to achieve true parallelism in your application, even without multi-threading. For example, suppose your application displays a large table containing many widgets. Constructing and laying out all those widgets can be time consuming. At the same time, you need to fetch data from the server to display inside the table. This is a perfect reason to use asynchronous calls. Initiate an asynchronous call to request the data immediately before you begin constructing your table and its widgets. While the server is fetching the required data, the browser is executing your user interface code. When the client finally receives the data from the server, the table has been constructed and laid out, and the data is ready to be displayed.
To give you an idea of how effective this technique can be, suppose that building the table takes one second and fetching the data takes one second. If you make the server call synchronously, the whole process will require at least two seconds.
But if you fetch the data asynchronously, the whole process still takes just one second, even though you are doing two seconds' worth of work.
Tip: Most browsers restrict the number of outgoing network connections to two at a time, restricting the amount of parallelism you can expect from multiple simultaneous RPCs.
The hardest thing to get used to about asynchronous calls is that the calls are non-blocking, however, Java inner classes go a long way toward making this manageable. Consider the following implementation of an asynchronous call adapted from the Dynamic Table sample application. It uses a slightly different syntax to define the required interface for the AsyncCallback object that is the last parameter to the getPeople RPC call:
// This code is called before the RPC starts // if (startRow == lastStartRow) { ... } // Invoke the RPC call, implementing the callback methods inline: // calService.getPeople(startRow, maxRows, new AsyncCallback<Person[]>() { // When the RPC returns, this code will be called if the RPC fails public void onFailure(Throwable caught) { statusLabel.setText("Query failed: " + caught.getMessage()); acceptor.failed(caught); } // When the RPC returns, this code is called if the RPC succeeds public void onSuccess(Person[] result) { lastStartRow = startRow; lastMaxRows = maxRows; lastPeople = result; pushResults(acceptor, startRow, result); statusLabel.setText("Query reutrned " + result.length + " rows."); } }); // The above method call will not block, but return immediately. // The following code will execute while the RPC is in progress, // before either of onFailure() or onSuccess() are executed. // statusLabel.setText("Query in progress..."); ...
The important issue to understand is that that the code that follows the RPC call invocation will be executed while the actual round trip to the server is still in progress. Although the code inside the onSuccess() method is defined inline with the call, it will not be executed until both the calling code returns back to the JavaScript main loop, and the result message from the server returns.
Caution: This library should be considered experimental, but is available as a technology preview for early adopters. Please understand the limitations before using it.
GWT 2.0 provides a new implementation of the GWT RPC subsystem. This new RPC code base (sometimes known as "direct-eval RPC" or "deRPC") is intended to improve the performance characteristics of the GWT RPC system and to provide a more malleable code base for adding new features.


Player1 Dice Roll:
Player1 Current Roll:
Player1 Total:
Player2 Dice Roll:
Player2 Current Roll:
Player2 Total:


Contextualise is an effective tool particularly suited for organising information-heavy projects and activities consisting of unstructured and widely diverse data and information resources.
Personal knowledge management · Commonplace books · Investigative journalism · Semantic content management · Research projects · World building and storytelling
— SHOWCASE —
{% endif %}


Sunday, Feb 9 8:29
Alice
Can I order the steak and egg omelette?
Alice
We're out of steak unfortunately, we do have chicken left though
Alice
That will be fine
Sunday, Feb 11 11:58
Alice
Can I hand you my phone so you can use the speech to text functionality?
Typed Message
Hello, my name is Sidney
What can I help you with?
Alice
Can you help me find cat food?
Sunday, Feb 11 3:17
Typed Message
Of course!!
Alice
Thank you so much!
Typed Message
Hey Alice!
.
.
.


Assessing your apprentice
Apprenticeship standards are developed by groups of employers, known as ‘trailblazers’, to make sure they’re occupation-focused. Each standard sets out key knowledge, skills and behaviours (KSBs) that employers have identified they need.
Your apprentice will be assessed to demonstrate what they’ve learnt, and that they can perform all aspects of the occupation. This ‘end-point assessment’ is conducted by an organisation that is independent from the training provider. They’ll make sure all apprentices following the same standard are assessed consistently.
Each standard includes an end-point assessment plan, which describes how the apprentice should be tested against appropriate criteria, using suitable methods. For example, your apprentice may need to complete:
- a practical assessment
- an interview
- a project
- written and/or multiple-choice tests
- a presentation
Finding an end-point assessment organisation
Only organisations on the register of end-point assessment organisations are eligible to conduct the assessment. You must select an organisation from the register and agree a price for them to carry it out.
Although the training provider will be involved in arranging the end-point assessment, the assessment itself must be independent. The training provider must work with the end-point assessment organisation on your behalf and have a written agreement in place to pay them for conducting the assessment.
It’s worth getting in touch with the end-point assessment organisation early on in the apprenticeship to check what the assessment involves. This will give your apprentice plenty of time to prepare - for example, they may need to gather evidence to show how they’ve been working towards the core knowledge, skills and behaviours.
The cost of an end-point assessment
The cost of the end-point assessment is included in the overall price agreed with the training provider for the apprenticeship. This cost will not usually exceed 20% of the funding band maximum. Check our funding guidance to learn about apprenticeship costs and government funding.
Certification
When your apprentice successfully completes their apprenticeship, they’ll be awarded a certificate. The end-point assessment organisation will request this certificate on your behalf.


Warehouse Chief Natools:
What? Shadow Fox? High-level agent? I don't know what you're talking about.
(Only characters that have completed Shadow Fox - 2 Quest are permitted to undertake this quest.)