Projektion length vs Rotation Angle
Method of the strain-analysis with the projection method (Panozzo, 1984).
The lengths of the projections of polygon borders on a reference
line are calculated for the increments of a rotation around 180°. They
are plotted versus the rotation angle.
This relation is defined by a sinus-graph (Fig. 1). The ratio ΣP(α)max / ΣP(α)min (P = Projection). is the ellipticity of the resulting strain ellipse. The angle which belongs to ΣP(α)max is the plunge (Θ) of the ellipse towards the reference line.


Coding Quiz Challenge
Try to answer the following code-related questions within the time limit. Keep in mind that incorrect answers will penalize your score and time by ten seconds.
Try to answer the following code-related questions within the time limit. Keep in mind that incorrect answers will penalize your score and time by ten seconds.


The User Profile window shows details about the transcriber that have been downloaded from the FreeREG server when they logged on to the server. For the most part, the details shown are not very interesting, but they do serve to show the kind of information being kept by the server. Of particaular interest would be the number of files that the transcriber has uploaded and the total number of records in those files that are in the database.


/**
* Copyright 2016 Google Inc. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
/* eslint-env browser */
/**
*
WindowUtils can be used in a *webpage only* i.e. must have access to a
* window object.

*
*
Accessible via: window.goog.WindowUtils

*
*
The main uses for these utils are:

*

*
Managing service workers by loading pages in an iframe to reduce scope

*
Helpers to unregister service workers and remove caches

*
Run mocha tests in a service worker. If you use this, it's expected you'll
* also make use of the SWUtils inside the service worker.

*

*/
class WindowUtils {
constructor() {
// The test counter ensures a unique scope between each test.
// testTime is used to ensure a unique scope between runs of
// the test suite - useful if manual testing parts of the
// suite in different tabs at the same time.
this._testCounter = 0;
this._testTime = new Date().getTime();
}
/**
* Helper method to determine when a specific state is achieved within
* a service worker (i.e. it becomes installed or activated).
*
* @private
*
* @param {ServiceWorkerRegistration} registration registration to watch
* for state changes
* @param {String} desiredState Name of the desired state to wait for
* @return {Promise} Resolves when the desired state is reached
*/
_onStateChangePromise(registration, desiredState) {
return new Promise((resolve, reject) => {
if (registration.installing === null) {
throw new Error('Service worker is not installing. Did you call ' +
'cleanState() to unregister this service?');
}
var serviceWorker = registration.installing;
// We unregister all service workers after each test - this should
// always trigger an install state change
var stateChangeListener = function() {
if (this.state === desiredState) {
serviceWorker.removeEventListener('statechange', stateChangeListener);
resolve();
return;
}
if (this.state === 'redundant') {
serviceWorker.removeEventListener('statechange', stateChangeListener);
// Must call reject rather than throw error here due to this
// being inside the scope of the callback function stateChangeListener
reject(new Error('Installing servier worker became redundant'));
return;
}
};
serviceWorker.addEventListener('statechange', stateChangeListener);
});
}
/**
*
When a service worker is installed / activated using WindowUtils
* it'lls be registered with a unqiue scope and an iframe will be
* created matching that scope (allowing it to be controlled by that
* service worker only).

*
*
This method will get you the current iframe (if in the middle of a test)
* or create a new iframe.

*
* @return {Promise.<HTMLElement>} Resolves to the current iframe being
* used for tests.
*/
getIframe() {
return new Promise(resolve => {
var existingIframe = document.querySelector('.js-test-iframe');
if (existingIframe) {
return resolve(existingIframe);
}
// This will be used as a unique service worker scope
this._testCounter++;
var newIframe = document.createElement('iframe');
newIframe.classList.add('js-test-iframe');
newIframe.addEventListener('load', () => {
resolve(newIframe);
});
newIframe.src = `/test/iframe/${this._testTime}${this._testCounter}`;
document.body.appendChild(newIframe);
});
}
/**
* Loop through all registrations for the current origin and unregister them.
* @return {Promise} Resolves once all promises are unregistered
*/
unregisterAllRegistrations() {
return navigator.serviceWorker.getRegistrations()
.then(registrations => {
return Promise.all(registrations.map(registration => {
return registration.unregister();
}));
});
}
/**
* Loop over all caches for the current origin and delete them
* @return {Promise} Resolves once all caches are deleted
*/
clearAllCaches() {
return window.caches.keys()
.then(cacheNames => {
return Promise.all(cacheNames.map(cacheName => {
return window.caches.delete(cacheName);
}));
});
}
/**
*
This method registers a service worker to a unique scope and
* creates an iframe it can control and waits until the service workers
* install step has completed.

*
*
This is useful for scenarios where you only care
* about testing events that have occured in the install event (i.e.
* pre-caching assets).

* @param {String} swUrl The url to a service worker file to register
* @return {Promise.<HTMLElement>} Resolves once the service worker is
* installed and returns the iframe it controls.
*/
installSW(swUrl) {
return new Promise((resolve, reject) => {
var iframe;
this.getIframe()
.then(newIframe => {
var options = null;
if (newIframe) {
iframe = newIframe;
options = {scope: newIframe.contentWindow.location.pathname};
}
return navigator.serviceWorker.register(swUrl, options);
})
.then(registration => {
return this._onStateChangePromise(registration, 'installed');
})
.then(() => resolve(iframe))
.catch(err => reject(err));
});
}
/**
*
Similar to installSW. This method registers a service worker to a unique scope and
* creates an iframe it can control and waits until the service workers
* activate step has completed.

*
*
Useful when you want to test fetch events that can't happen until the
* service worker has activated.

* @param {String} swUrl The url to a service worker file to register
* @return {Promise.<HTMLElement>} Resolves once the service worker is
* activated and returns the iframe it controls.
*/
activateSW(swUrl) {
return new Promise((resolve, reject) => {
var iframe;
this.getIframe()
.then(newIframe => {
var options = null;
if (newIframe) {
options = {scope: newIframe.contentWindow.location.pathname};
iframe = newIframe;
}
return navigator.serviceWorker.register(swUrl, options);
})
.then(registration => {
return this._onStateChangePromise(registration, 'activated');
})
.then(() => resolve(iframe))
.catch(err => reject(err));
});
}
/**
*
Helper method that checks a cache with a specific name exists before
* retrieving all the cached responses inside of it.

*
This is limited to text at the moment.

* @param {String} cacheName The name of the cache to get the contents from.
* @return {Promise.<Object>} Resolves to an object where the keys
* are URLs for the cache responses and the value is the text from the response.
* The promise rejects if the cache doesn't exist.
*/
getAllCachedAssets(cacheName) {
var cache = null;
return window.caches.has(cacheName)
.then(hasCache => {
if (!hasCache) {
throw new Error('Cache doesn\'t exist.');
}
return window.caches.open(cacheName);
})
.then(openedCache => {
cache = openedCache;
return cache.keys();
})
.then(cachedRequests => {
return Promise.all(cachedRequests.map(cachedRequest => {
return cache.match(cachedRequest)
.then(response => {
return {
request: cachedRequest,
response: response
};
});
}));
})
.then(cacheRequestResponsePairs => {
// This method extracts the response streams and pairs
// them with a url.
var output = {};
cacheRequestResponsePairs.forEach(cacheRequestResponsePair => {
output[cacheRequestResponsePair.request.url] =
cacheRequestResponsePair.response;
});
return output;
});
}
/**
* Helper to unregister all service workers and clean all caches.
* @return {Promise} Resolves once service workers are unregistered and caches
* are deleted.
*/
cleanState() {
return Promise.all([
this.unregisterAllRegistrations(),
this.clearAllCaches()
])
.then(() => {
var iframeList = document.querySelectorAll('.js-test-iframe');
for (var i = 0; i < iframeList.length; i++) {
iframeList[i].parentElement.removeChild(iframeList[i]);
}
});
}
/**
* A TestResult object will contain the following information about the
* test it represents.
* @typedef {Object} TestResult
* @property {String} parentTitle - Title of the parent test suite
* @property {String} state - Will be 'passed' or 'failed'
* @property {String} title - Title of the test
* @property {String} errMessage - Optional parameter if the test has failed
*/
/**
* TestResults is a simple javascript object containing all results
* from the mocha test runner
* @typedef {Object} TestResults
* @property {Array.<TestResult>} passed - Array of passed tests
* @property {Array.<TestResult>} failed - Array of failed tests
*/
/**
* Method to send a message to a service worker to begin mocha tests.
* It's expected that the service worker will import sw-utils in the service
* worker to make this work seamlessly.
* @param {String} swPath The path to a service worker
* @return {Promise.<TestResults>} Promise resolves when the tests
* in the service worker have completed.
*/
runSWMochaTests(swPath) {
const sendMessage = (swController, testName, timeout) => {
return new Promise(function(resolve, reject) {
var messageChannel = new MessageChannel();
messageChannel.port1.onmessage = function(event) {
resolve(event.data);
};
swController.postMessage(testName,
[messageChannel.port2]);
if (timeout) {
setTimeout(() => reject(new Error('Message Timeout')), timeout);
}
});
};
return window.goog.WindowUtils.activateSW(swPath)
.then(iframe => {
return iframe.contentWindow.navigator.serviceWorker.ready
.then(registration => {
return registration.active;
})
.then(sw => {
return sendMessage(sw, 'ready-check', 400)
.then(msgResponse => {
if (!msgResponse.ready) {
return Promise.reject();
}
return sw;
})
.catch(() => {
throw new Error('Service worker failed to respond to the ready ' +
'check. Have you imported browser/sw-utils.js in the SW?');
});
})
.then(sw => {
return sendMessage(sw, 'start-tests');
})
.then(msgResponse => {
if (!msgResponse.testResults) {
throw new Error('Unexpected test result: ' + msgResponse);
}
// Print test failues
return msgResponse.testResults;
});
});
}
}
window.goog = window.goog || {};
window.goog.WindowUtils = window.goog.WindowUtils || new WindowUtils();


This application allows you to coordinate signing of transactions between multiple parties.
1. Create your transaction
2. Enter Account ID's of Expected Signers
3. Share unique URL
| Initiator | Tag | Status | Created |
|---|---|---|---|
| {{tx.initiator}} | {{tx.tx_tag}} | {{tx.signed == 0 ? 'Signature Pending' : 'Signing Complete'}} | {{tx.created_at}} |


Import/Export:
Character Level:
Body:
Levels:
Heart:
Levels:
Stamina:
Levels:
Strength:
Levels:
Skill:
Levels:
Dexterity:
Levels:
Magic:
Levels:
Spirit:
Levels:
Samurai Skill Points:
Ninja Skill Points:
Magic Skill Points:
Point spent on Sword skills:
Starting Weapon 1:
Starting Weapon 2:
Starting Guardian Spirit:


Yakiniku Nikuman Shijo Omi
"One minute on foot from Hankyu Omiya Station! Our restaurant is one where you will find the original seasonings will make our grilled
meats almost habit-forming in their deliciousness! Enjoy grilled meats with our sweet, rich Black Sauce, our miso-based, spicy Red
Sauce, or our Salt Mix, made with rock salt. We particularly recommend a dish we call Hoso. It's a masterpiece, where juicy, savory
tastes burst forth with every bite."


{# A base wrapper individual orgs can modify #} {% load mailing %}
|
{% block content %}
{% endblock content %}
|
|
| |
|
All messages must comply with the Connect Terms of Service |
|
|
This email was sent to: {{ email }}.
{% if recipient %}
If you'd like to change your notification preferences, click here.
{% endif %}
|


Moultrie Technical College |
|
| Navigation:: Home | Information Technology | Web Design | Cosmetology | Calendar | CompTIA | |
| E-mail us at: | |
Welcome to the Moultrie Tech - Worth County- campus bookstore. Located on this page, you will find all the literature needed for the Moultrie Tech classes given at the Moultrie Tech - Worth Campus. If, for some reason, the literature that you need is not available on this page, please try the other Moultrie Tech campuses' bookstores. Literature needed for each quarter of classes will vary by teacher, and if any questions are to come to mind, feel free to ask. Web Design Literature New Perspectives: Blended HTML, XHTML, and CSS Introductory $73.49 New Perspectives: JavaScript $63.49 New Perspectives on Adobe Dreamweaver CS4 $84.49 Adobe Photoshop CS4: Complete Concepts and Techniques $66.49 Info Tech Literature Cosmetology | |
| 1210 North Monroe Street Sylvester, GA 31791. |


element, with the class
attribute set to sidebar-nav
and the id
attribute set to side-menu

element, with the class
attribute set to accordian
and the id
attribute set to toc

with the class set
to accordion-group
and the id attribute
set to a unique id string.

with the class set
to accordion-heading accordion-toggle

element. The first is for
the text. The second is for the +/- icon. The
second must have its href set to #subnav-[accordion-group-id]
For example:

  Welcome

with the class set
to accordion-body
and another unique id attribute.


{% extends "tutorial.html" %} {% block pagebreadcrumb %}{{ tut.title }}{% endblock %} {% block html5badge %} {% endblock %} {% block iscompatible %} return !! (window.RTCPeerConnection || window.webkitDeprecatedPeerConnection || window.webkitRTCPeerConnection); {% endblock %} {% block head %} {% endblock %} {% block onload %} // TODO {% endblock %} {% block content %}
Sending data between two browsers for communication, gaming, or file transfer can be a rather involved process. It requires setting up and paying for a server to relay data, and perhaps scaling this to multiple data centers. In this scenario, there is potential for high latency and it's difficult to keep data private.
These problems can be alleviated by using WebRTC's RTCDataChannel
API to transfer data directly from one peer to another. This article covers the basics of how to set up and use data channels, as well as the common use cases on the web today.
To make the most of this article, you need some knowledge of the
RTCPeerConnection
API, and an understanding of how STUN, TURN, and signaling work. For more information, see Getting Started With WebRTC.
We have WebSocket, AJAX and Server Sent Events. Why do we need another communication channel? WebSocket is bidirectional, but all these technologies are designed for communication to or from a server.
RTCDataChannel
takes a different approach:
RTCPeerConnection
API, which enables peer-to-peer connectivity. This can result in lower latency—no intermediary server and fewer 'hops'.RTCDataChannel
uses Stream Control Transmission Protocol (SCTP), allowing configurable delivery semantics—out-of-order delivery and retransmit configuration.RTCDataChannel
is available now with SCTP support on desktop and Android in Google Chrome, Opera, and Firefox.
For more information about how WebRTC works with servers for signaling and networking, see WebRTC in the real world: STUN, TURN, and signaling.
The RTCDataChannel
API supports a flexible set of data types. The API is designed to mimic WebSocket exactly, and RTCDataChannel
supports strings as well as some of the binary types in JavaScript, such as Blob, ArrayBuffer, and ArrayBufferView. These types can be helpful when working with file transfer and multiplayer gaming.
RTCDataChannel
can work in unreliable and unordered mode (analogous to User Datagram Protocol or UDP), reliable and ordered mode (analogous to Transmission Control Protocol or TCP), and partial reliable modes:
Performance for the first two modes is about the same when there are no packet losses. However, in reliable and ordered mode, a lost packet causes other packets to get blocked behind it, and the lost packet might be stale by the time that it is retransmitted and arrives. It is, of course, possible to use multiple data channels within the same app, each with their own reliable or unreliable semantics.
Here's a helpful table from High Performance Browser Networking by Ilya Grigorik:
| TCP | UDP | SCTP | |
| Reliability | Reliable | Unreliable | Configurable |
| Delivery | Ordered | Unordered | Configurable |
| Transmission | Byte-oriented | Message-oriented | Message-oriented |
| Flow control | Yes | No | Yes |
| Congestion control | Yes | No | Yes |
Next, you learn how to configure RTCDataChannel
to use reliable and ordered or unreliable and unordered mode.
There are several simple demos of RTCDataChannel
online:
In these examples, the browser makes a peer connection to itself, then creates a data channel and sends a message through the peer connection. It is then creating a data channel and sending the message along the peer connection. Finally, your message appears in the box on the other side of the page!
The code to get started with this is short:
const peerConnection = new RTCPeerConnection(); // Establish your peer connection using your signaling channel here const dataChannel = peerConnection.createDataChannel("myLabel", dataChannelOptions); dataChannel.onerror = (error) => { console.log("Data Channel Error:", error); }; dataChannel.onmessage = (event) => { console.log("Got Data Channel Message:", event.data); }; dataChannel.onopen = () => { dataChannel.send("Hello World!"); }; dataChannel.onclose = () => { console.log("The Data Channel is Closed"); };
The dataChannel
object is created from an already-established peer connection. It can be created before or after signaling happens. You then pass in a label to distinguish this channel from others and a set of optional configuration settings:
const dataChannelOptions = { ordered: false, // do not guarantee order maxPacketLifeTime: 3000, // in milliseconds };
It is also possible to add a maxRetransmits
option (the number of times to try before failing), but you can only specify maxRetransmits or maxPacketLifeTime, not both. For UDP semantics, set maxRetransmits
to 0
and ordered
to false
. For more information, see these IETF RFCs: Stream Control Transmission Protocol and Stream Control Transmission Protocol Partial Reliability Extension.
ordered
: if the data channel should guarantee order or notmaxPacketLifeTime
: the maximum time to try and retransmit a failed messagemaxRetransmits
: the maximum number of times to try and retransmit a failed messageprotocol
: allows a subprotocol to be used, which provides meta information toward the appnegotiated
: if set to true, removes the automatic setting up of a data channel on the other peer, providing your own way to create a data channel with the same ID on the other sideid
: allows you to provide your own ID for the channel that can only be used in combination with negotiated
set to true
)The only options that most people need to use are the first three: ordered
, maxPacketLifeTime
, and maxRetransmits
. With SCTP (now used by all browsers that support WebRTC) reliable and ordered is true by default. It makes sense to use unreliable and unordered if you want full control from the app layer, but in most cases, partial reliability is helpful.
Note that, as with WebSocket, RTCDataChannel
fires events when a connection is established, closed, or errors, and when it receives a message from the other peer.
Encryption is mandatory for all WebRTC components. With RTCDataChannel
, all data is secured with Datagram Transport Layer Security (DTLS). DTLS is a derivative of SSL, meaning your data will be as secure as using any standard SSL-based connection. DTLS is standardized and built into all browsers that support WebRTC. For more information, see Wireshark wiki.
Handling large amounts of data can be a pain point in JavaScript. As the developers of Sharefest pointed out, this required thinking about data in a new way. If you are transferring a file that is larger than the amount of memory you have available, you have to think about new ways to save this information. This is where technologies, such as the FileSystem API, come into play, as you see next.
Creating a web app that can share files in the browser is now possible with RTCDataChannel
. Building on top of RTCDataChannel
means that the transferred file data is encrypted and does not touch an app provider's servers. This functionality, combined with the possibility of connecting to multiple clients for faster sharing, makes WebRTC file sharing a strong candidate for the web.
Several steps are required to make a successful transfer:
RTCPeerConnection
.RTCDataChannel
.There are several points to consider when trying to send files over RTCDataChannel
:
chunkID
metadata so the peer can recognize them. Note that, in this case, you also need to save the chunks first to offline storage (for example, using the FileSystem API) and save it to the user's disk only when you have the file in its entirety.Once the file is fully transferred to the other side, it can be downloaded using an anchor tag:
function saveFile(blob) { const link = document.createElement('a'); link.href = window.URL.createObjectURL(blob); link.download = 'File Name'; link.click(); };
These file-sharing apps on PubShare and GitHub use this technique. They are both open source and provide a good foundation for a file-sharing app based on RTCDataChannel
.
RTCDataChannel
opens the doors to new ways to build apps for file sharing, multiplayer gaming, and content delivery.
You can now provide more-engaging apps by using high-performance, low-latency connections through RTCDataChannel
. Frameworks, such as PeerJS and the PubNub WebRTC SDK, make RTCDataChannel
easier to implement and the API now has wide support across platforms.
The advent of RTCDataChannel
can change the way that you think about data transfer in the browser.


ExternalAccessoriesModule Class
Item Index
Methods
Properties
Constants
Methods
showPicker
-
[params]
Displays an alert that allows the user to pair the device with a Bluetooth accessory.
Parameters:
-
[params]
Object optionalAn object with the following properties:
-
[filterCallback]
Function optionalAn optional callback function that can be used to filter the accessories shown by the picker. This function will receive a string parameter, the name of the accessory, and expected to return
true
orfalse
indicating whether or not the accessory should be shown by the picker.
-
Returns:
Properties
connectedAccessories
Array of Accessories
read-only
An array of Accessory objects representing the accessories currently connected to the iOS device.
Constants
PICKER_ERROR_ALREADY_CONNECTED
Number
One of the possible values of the errorCode properties of the
pickerFinished event.
The specified accessory was already connected.
PICKER_ERROR_CANCELLED
Number
One of the possible values of the errorCode properties of the
pickerFinished event.
The user canceled the picker alert.
PICKER_ERROR_NOT_FOUND
Number
One of the possible values of the errorCode properties of the
pickerFinished event.
The specified accessory could not be found, perhaps because it was turned off prior to connection.
PICKER_ERROR_UNKNOWN
Number
One of the possible values of the errorCode properties of the
pickerFinished event.
Selecting an accessory failed for an unknown reason.
Events
accessoryConnected
Fired whenever a new accessory connects to the iOS device.
Event Payload:
-
accessory
AccessoryThe object representing the accessory that was connected.
-
selected
Booleantrue
if the accessory was connected due to the user having selected it from the picker started by the showPicker function.
accessoryDisconnected
Fired whenever an accessory disconnects from the iOS device.
Event Payload:
-
accessory
AccessoryThe object representing the accessory that was disconnected.
pickerFinished
Fired whenever the picker opened using the showPicker function completed.
Event Payload:
-
data
TiBufferThe data received.
-
errorCode
NumberThe error code; only present if an error occurred. Possible values are captured by the PICKER_ERROR_* constants.
-
errorDomain
StringThe error domain; only present if an error occurred.
-
errorDescription
StringThe error description; only peresent if an error occurred.


There are also important technological centers such as the Metropolitan Institute of Technology (ITM), Jaime Isaza Cadavid's Politecnico, and Antioquia Institute of Technology.
During the last decade, the administration of the city has emphasized public education, building schools and libraries in poor quarters. Private schools and colleges have a long tradition in the city, many run by the Catholic Church, private organizations, and foreign institutions. Among them are Gimnasio Internacional de Medellín, The Columbus School (the only SACS-approved school in the city), Theodoro Hertzl School, St. Ignatius Loyola College, Colegio Calasanz, Colegio Colombo Britanico, El Corazonista School, Marymount School, Montemayor Sagrado Corazon, Montessori School, Colegio Fontán, Gimnasio Los Pinares, Gimnasio Los Alcázares, San Jose de la Salle, Instituto Jorge Robledo, the Salesian Technical School Pedro Justo Berrío, Colegio Cumbres, Colegio San Marcos, Liceo Salazar y Herrera, and 'El Sufragio' Salesian School.
Many non-governmental organizations and official organizations support the development of children and youth from poor communities. Ciudad Don Bosco cares for street children.[68] The pacification of the city brought organizations to the poorest quarters to work with youth involved in urban violence, in order to improve their opportunities. Medellín universities, public and private, also played a role, along with official institutions both local and national.


Application developer also uses the type 'Registered' and 'Temporary' rather than using 'R' and 'T' in the application. Because of the mismatch in column value in the column and the application, application will not run.
As the occurrences of CUSTOMER_TYPE column in the application is high the DBA has to change data type of column FROM CHAR to VARCHAR and update the column value from 'R' to 'Registered' and 'T' to 'Temporary' to get the application working.
To solve the above problem DB2 9.7 offers SET DATA TYPE Option. Now the DBA can change the data type of a column in the table using SET DATA TYPE option in the ALTER TABLE command. DBA performs below steps to accommodate this requirement.
After running the SQL scripts on the right pane,
Result tab 4 shows a datatype of column nameTYPE
change from CHAR to VARCHAR in the
base table CUSTOMER.


DOM Manipulation Exercises
Task 2 a
Add text
Task 2 b
Red
Green
Task 2 c
Click to google
Click to google
With jQuery
Task 4 a
Click to add p
Task 4 b
Red
Green
Task 4 c
Add
The number is


Fast, lightweight HTTP Server
spray comes with a small, embedded and super-fast HTTP server (called spray-can) that is a great alternative to servlet containers. spray-can is fully asynchronous and can handle thousands of concurrent connections. It also supports request and response streaming, HTTP pipelining and SSL. And: there is an HTTP client to go with it ... More
Elegant DSL for API Construction
spray's routing DSL gives you a powerful and very flexible way of describing your REST API or web site behavior. It promotes RESTful style as well as a clean separation of the various application layers. Writing DRY and architecturally sound API code has never been easier ... More
Support for Servlet 3.0 Containers
We realize that (even though you often might want to ;^) it's not always possible for application developers to fully leave behind existing infrastructure. That's why spray comes with out-of-the-box support for all Servlet 3.0 compatible servlet containers (Jetty, Tomcat, Glassfish, etc.) ... More


Wikipedia 15
The most-edited articles each year on English Wikipedia for the first 15 years. Learn more.
2004
- George W. Bush 5,527 edits
- John Kerry 4,183 edits
- 2004 Indian Ocean earthquake and tsunami 3,188 edits
- Deaths in 2004 2,326 edits
- Sexual slang 2,101 edits
- 2,004 United States presidential election controversy and irregularities 2076 edits
- Jews 1,999 edits
- Adolf Hitler 1,800 edits
- Wiki 1,771 edits
- Jesus 1,712 edits
2005
- George W. Bush 20,894 edits
- Hurricane Katrina 8,808 edits
- Wikipedia 7,860 edits
- Adolf Hitler 6,659 edits
- Jesus 6,519 edits
- Terri Schiavo case 6,137 edits
- 2005 Atlantic hurricane season 6,035 edits
- Pope Benedict XVI 5,947 edits
- United States 5,705 edits
- Michael Jackson 4,997 edits
2006
- 2006 Lebanon War 15,067 edits
- Deaths in 2006 13,948 edits
- Wii 12,735 edits
- Wikipedia 12,472 edits
- United States 9,440 edits
- RuneScape 9,333 edits
- List of WWE personnel 9,293 edits
- 2006 FIFA World Cup 9,248 edits
- PlayStation 3 8,628 edits
- World War II 8,116 edits
2007
- Deaths in 2007 18,089 edits
- List of WWE personnel 9,825 edits
- Virginia Tech shooting 9,116 edits
- 2007 9,048 edits
- Harry Potter and the Deathly Hallows 7,653 edits
- 2007 in music 6,979 edits
- List of Ben 10 aliens 6,371 edits
- Blackout (Britney Spears album) 5,934 edits
- Heroes (TV series) 5,743 edits
- Thomas & Friends video releases 5,738 edits
2008
- Deaths in 2008 18,969 edits
- Sarah Palin 10,429 edits
- 2008 9,155 edits
- List of United States political families 8,698 edits
- Barack Obama 8,193 edits
- Russo-Georgian War 7,982 edits
- Catholic Church 7,598 edits
- List of WWE personnel 7,296 edits
- FC Singen 04 6,043 edits
- The Dark Knight (film) 5,625 edits
2009
- Deaths in 2009 20,678 edits
- Gaza War (2008-09) 10,490 edits
- 2009 flu pandemic 7,460 edits
- 2009 7,008 edits
- Chevrolet Vega 5,991 edits
- 2009 in music 5,595 edits
- Total Drama Action 5,353 edits
- List of programs broadcast by ABS-CBN 5,315 edits
- I Am... World Tour 5,011 edits
- Miss Universe 2009 4,939 edits
2010
- Deaths in 2010 20,789 edits
- Miss Universe 2010 6,109 edits
- Gaza flotilla raid 5,881 edits
- Deepwater Horizon oil spill 5,128 edits
- Toy Story 3 4,860 edits
- 2010 Atlantic hurricane season 4,816 edits
- Tea Party movement 4,524 edits
- 2010 Haiti earthquake 4,395 edits
- Big Time Rush 4,278 edits
- 2010 in film 4,236 edits
2011
- Deaths in 2011 16,283 edits
- Libyan Civil War (2011) 9,311 edits
- Egyptian Revolution of 2011 6,470 edits
- 2011 Tōhoku earthquake and tsunami 5,339 edits
- Fukushima Daiichi nuclear disaster 5,245 edits
- Occupy Wall Street 5,236 edits
- Arab Spring 5,112 edits
- List of 1000 Ways to Die episodes 4,535 edits
- The Undertaker 4,327 edits
- American Idol (season 10) 4,276 edits
2012
- Deaths in 2012 17,263 edits
- Syrian Civil War 7,760 edits
- Gangnam Style 5,028 edits
- American Idol (season 11) 5,011 edits
- 2012 in film 4865 edits
- Shooting of Trayvon Martin 4,619 edits
- 2012 Atlantic hurricane season 4,295 edits
- Republican Party presidential primaries, 2012 4,292 edits
- Just Dance 4 4,290 edits
- Sandy Hook Elementary School shooting 4,157 edits
2013
- Deaths in 2013 22,470 edits
- 2013 Pacific typhoon season 6,077 edits
- Boston Marathon bombing 6,005 edits
- List of works by Eugène Guillaume 5,707 edits
- Edward Snowden 4,522 edits
- Just Dance 2014 4,410 edits
- American Idol (season 12) 3,917 edits
- Dancing with the Stars (U.S. season 16) 3,876 edits
- ATP World Tour records 3,521 edits
- Pope Francis 3,515 edits
2014
- Deaths in 2014 19,957 edits
- Malaysia Airlines Flight 370 10,055 edits
- Japanese dissidence during the Shōwa period 8,234 edits
- Ebola virus epidemic in West Africa 7,733 edits
- Islamic State of Iraq and the Levant 7,410 edits
- 2014 Israel-Gaza conflict 6,454 edits
- Shooting of Michael Brown 5,998 edits
- Malaysia Airlines Flight 17 5,081 edits
- 2014 Pacific typhoon season 5,035 edits
- List of works by Eugène Guillaume 4,224 edits
2015
- Deaths in 2015 18,271 edits
- Geospatial summary of the High Peaks/Summits of the Juneau Icefield 7,290 edits
- 2015 Pacific typhoon season 6,147 edits
- 2015 in sports 6,085 edits
- Charlie Hebdo shooting 4,892 edits
- Miss World 2015 4,806 edits
- ATP World Tour records 4,758 edits
- November 2015 Paris attacks 4,576 edits
- Asia's Next Top Model (cycle 3) 4,328 edits
- List of the works of Bastien and Henry Prigent 4,317 edits


Graphical User Interface Usage¶
1. Startup¶
Launch matlab from the qMRLab folder. Then load the default setup by typing:
startup
Then open the GUI by typing:
qMRLab
2. Interface¶
When you first launch qMRLab, you will be presented with a blank interface. The interface consists of three columns, or panels. On the left, you have the Menu panel, in the center you have the Main panel, and on the right, in a separate floating window, you have the Options panel.
2.2 Main Panel¶
The Main panel is where the simulation or fit results are displayed. The view for this panel changes correspondingly to the task selected in the Menu panel.
2.3 Options Panel¶
This is where you can set up all the parameters that are related to the simulation, the fitting and the protocol. The Options panel is displayed in a separate window than the Menu panel or Main panel. This is because each qMR acquisition method has its own particular options, and this window needs to be changed correspondingly. It can also be closed at any time, if it is not currently needed, to provide for a simpler interface. The Options panel consists of three sub-panels: ‘Protocol’, ‘Fitting’, and ‘Options’. At the bottom of all these sub-panels you will find buttons to Reset the changes you made, Save the current settings as a .mat file, Load a .mat file of settings, or go back to the Default settings. Refer to section 5. Options Panel for more information.
2.3.1 Protocol¶
Here you define the acquisition protocol that you wish to use for simulation, or in the case of data fitting, the protocol you used to acquire the data. See 5.1 Protocol for more information.
2.3.2 Fitting¶
This is where you set up your fitting options. The fit parameters table lists all the variables that are available for fitting in the current method, a tick box to select which variables are to be held fixed, a starting value and lower/upper bounds. Depending on the method, additional options may be available. See 5.2. Fitting for more information.
2.3.3 Options¶
This is where you set up all the options related to the simulations. Depending on the qMR method, different sets of options are available (e.g. the fitting procedure, assumptions of the model, etc). More info in 5.3. Options.
3. Data Fitting¶
qMRLab provides a convenient interface to fit your data and visualize the parameters maps. To ensure that the results are successful, you’ll need to define the appropriate protocol, as it was used for data acquisition, and to format your qMR data in the way qMRLab expects it to be.
3.1 Data format¶
Currently supported file types are .mat and .nii files. Your files should respect the following:
- For .mat files, the name of the file can be anything, but the array it contains should be named appropriately. The list of input names is case sensitive and is specified at the top of the Data dialog box. For example, for a qMT SPGR experiment, MTdata (for the actual MT data array) or R1map / B1map / B0map / Mask respectively for a R1 / B1 / B0 or Mask file.
- Each model will expect a different format of inputs, but in general, for single slice (2D) imaging, the main data is a 3D array with size [nx, ny, ndata], where nx/ny is the number of voxels in the x/y direction, and ndata is the number of data points for each voxel. For volume imaging (3D), data is a 4D array with size [nx, ny, nz, ndata], where nx/ny/ndata are as above, and nz is the number of voxels (or slices) in the z direction (e.g. in this example MTdata would have several datapoints per voxel).
- Other files (e.g. in this example R1map / B1map / B0map / Mask) are formatted as [nx, ny, nz].
For a more detailed description of the format required for each input, type this in the maltab window:
help Modelname
where Modelname is name of the available models (e.g. in this example help SPGR). Alternatively, in the Options panel, you can press on the Help button
3.2 Fitting Procedure¶
3.2.1 Single voxel¶
This is useful when you want to preview the fit of a single voxel (note this option is only available on voxelwise computations)
- Select the acquisition method of your data using the ‘Method’ drop-down menu in the Menu panel.
- In the Menu panel, in the ‘Fit qMR data’ panel, enter your study ID in the ‘Study ID’ box (optional).
- Load your data by clicking the browse button beside the ‘Data:’ line, or enter the full file path to it in the textbox.
- You can view any of these maps by clicking its View button.
- Define or load the appropriate protocol in the Options panel (see 5.1 Protocol for details).
- Define your fitting options in the Options panel (see 5.2. Fitting for details).
- You can preview the fitted curve for a selected voxel by using the View Data Fit button. Make sure a dataset is loaded by clikcing View beside the data file field
- Click Select button in the ‘Cursor’ section to activate voxel selection mode, select a voxel to preview and click View Data Fit. You can now see the fitted curve and the parameters computed for that voxel.
3.2.2 Whole dataset¶
Follow steps 1-6 above, then
- In the Menu panel, click on Fit data to start the fitting process.
- Once the fitting is done, a temporary file will be saved in the ‘FitResults’ subfolder of the current working directory. You can save the current fit results elsewhere by clicking Save Results in the ‘qMR data fit’ section of the Menu panel.
- Use the controls in the ‘Fit Results’ section to visualize the results (ssee 3.3 Viewing the fit results for details).
3.3 Viewing the fit results¶
Once you have finished fitting your qMR data, or when you load previously saved fit results by clicking Load Results in the ‘qMR data fit’ section of the Menu panel, the maps will be displayed in the ‘Fit Results’ section. Use controls on the left side of the figure to navigate the maps:
- Source: select the parameter map to display
- View: select the side from which to view the data (available only on 3D maps)
- Slice: navigate through the z direction of the current view (available only on 3D maps)
- Color Map: choose the color scheme to use from a set of pre-defined Malab colormaps
- Range: Control the colormap min/max values. Clicking ‘Auto’ will set the min/max values using the min/max of the currently displayed image. Top textbox/slider allows you to manually set the Min value, while bottom textbox/slider are for the Max value
- Open viewer: open the current data in an external viewer to display simultaneous axial/sagittal/coronal views.
- Save figure: save the current figure
- Histogram: open a new window with an histogram of the voxels in the currently selected slice (note that zooming in on a particular section while still produce an histogram of the full slice)
- View data fit: display raw data + fitted curve of the currently selected voxel (use ‘Cursor’ button to activate voxel selection mode).
- Pan: change the cursor mode to ‘Pan’. Click and hold inside the figure to move around. Double click inside the figure to reset view. Clicking again the Pan button will turn off pan mode.
- Zoom: change the cursor mode to ‘Zoom’. Click and hold inside the figure to draw a region to zoom in on. Double click inside the figure to reset view. Clicking again the Zoom button will turn off zoom mode.
- Select: change the cursor mode to ‘Data Cursor’. Click on a voxel to display info (X/Y is the position of the voxel, index is the value of the map at this point, RGB is the mapped color code).
4. Simulation¶
4.1. Single Voxel Curve¶
The Single Voxel Curve simulation interface allows you to simulate qMR data for the defined parameters and protocol. Once the simulation is done, you can also rapidly test the effect of changing fitting options without having to run the simulation again. It is the fastest way to evaluate various acquisition protocols and the performance of the model and fitting options. A plot of the fitted curve over the actual data will be displayed, and the resulting fitted parameters are compared to the input parameters.
- Select the acquisition method of your qMR data using the ‘Method’ drop-down menu in the Menu panel.
- In the Menu panel, click on Single Voxel Curve to display the interface in the Main panel.
- Using the Options panel, define or load the protocol you wish to use (see section 5.1).
- Using the Options panel, define or load your initial fitting options (see section 5.2).
- Using the Options panel, define or load your simulation parameters (see section 5.3).
- In the Menu panel, click on the big Simulate data button. A progress bar will appear to show the progression of the simulation. Clicking Cancel in the progress bar window will stop the current simulation.
- Once the simulation is done, the results are displayed in the Main panel.
- If you want to see the effect of changing fitting options, use the Options panel to make your changes. Then, in the Main panel inside the ‘Simulation Fit Results’ panel, click on Update Fit. Clicking this button without changing fitting options will also generate a new noisy data distribution and recalculate the fitted curve.
- Once the fitting is done, a temporary file (SimCurveTempResults) will be saved in the ‘SimResults’ subfolder of the current active method (e.g. qMTLab/SPGR/SimResults/). You can save the current simulation results by clicking Save Results in the ‘qMR Data Simulator fit’ section of the Menu panel. You can later load it using the Load Results button.
4.2. Sensitivity Analysis¶
The Sensitivity Analysis simulation allows you to systematically vary one parameter, over a defined range and number of points, while keeping the others fixed. For each simulated data point, noise is added with a given SNR, and the fit is run multiple times while adding gaussian noise. This allows you to evaluate the variance of the fit at each point. When the simulation is done, a plot shows any variable input parameters as the independent variable, as well as the mean values and variance of any fitted parameters.
- Select the acquisition method of your data using the ‘Method’ drop-down menu in the Menu panel.
- In the Menu panel, click on Sensitivity Analysis to display the interface in the Main panel.
- Using the Options panel, define or load the protocol you wish to use (see section 5.1).
- Using the Options panel, define or load your fitting options (see section 5.2).
- Using the Options panel, define or load your simulation parameters (see section 5.3). The parameters defined here are used as the fixed parameters values as one parameter at a time is systematically varied during the simulation process.
- In the Main panel, use the ‘Parameters variation’ table to define your analysis settings. Select the parameters that are to be varied by setting a mark in the appropriate checkbox, set the minimum and maximum values for this parameter under the column ‘Min’ and ‘Max’, and the size of the incrementing step under ‘Step’. Set the number of times you want to add noise and fit for each data point by entering an integer value in the ‘# of runs’ box. These settings can be saved, retrieved or reset to their initial settings using the ‘Save’, ‘Load’ and ‘Reset’ buttons respectively.
- In the Menu panel, click on the big Simulate data button. A progress bar will appear to show the progression of the simulation. Clicking Cancel in the progress bar window will stop the current simulation.
- Once the simulation is done, the results are displayed in the ‘Plot Results’ section in the Main panel. Using the ‘x axis’ and ‘y axis’ dropdown menu, you can change the independent/dependant parameters respectively. The parameters that have been varied will be available under the ‘x axis’ menu, while all the model parameters will be available under the ‘y axis’ menu.
- A temporary file (SimVaryTempResults) will be saved in the ‘SimResults’ subfolder of the current active method (e.g. qMTLab/SPGR/SimResults/). You can save the current simulation results by clicking Save Results in the ‘qMT Data Simulator fit’ section of the Menu panel. You can later load it using the Load Results button.
4.3. Multi Voxel Distribution¶
The Multi Voxel Distribution is a tool to simulate any number of voxels, where any combination of parameters are allowed to be varied simultaneously. You can choose how many voxels to simulate and which parameters are to be normally distributed, with its mean value and variance. The results can be displayed in a number of ways such as distribution histograms, scatter plots of input vs fitted parameters, error histograms, etc.
- Select the acquisition method of your qMR data using the ‘Method’ drop-down menu in the Menu panel.
- In the Menu panel, click on Multi Voxel Distribution to display the interface in the Main panel.
- Using the Options panel, define or load the protocol you wish to use (see section 5.1).
- Using the Options panel, define or load your fitting options (see section 5.2).
- Using the Options panel, define or load your simulation parameters (see section 5.3). The parameters defined here are used as the fixed parameters values for parameters that are not selected to be varied.
- In the Main panel, use the ‘Parameters distribution’ table to define your distribution settings. Select the parameters that are to be varied by setting a mark in the appropriate checkbox, set the mean and standard deviation values for this parameter under the column ‘Mean’ and ‘Std’ respectively. Set the number of voxels you want to simulate by entering an integer value in the ‘# of voxels’ box. These settings can be saved, retrieved or reset to their initial settings using the Save, Load and Reset buttons respectively.
- Click on Get Parameters in the ‘Parameters distribution’ section to generate a set of normally distributed parameters using the current settings. You can look at the distribution in the ‘Plot Results’ section, by choosing ‘Input parameters’ under the ‘Plot type’ dropdown menu. Select the parameters you want to look at with the ‘x axis’ dropdown menu. You can generate a new set of random values by clicking on the Get Parameters button again.
- In the Menu panel, click on the big Simulate data button. A progress bar will appear to show the progression of the simulation. Clicking Cancel in the progress bar window will stop the current simulation.
- Once the simulation is done, the results are displayed in the ‘Plot Results’ section in the Main panel. Using the ‘Plot type’ dropdown menu, choose what plot you want to view. Plot types are defined below.
- A temporary file (SimRndTempResults) will be saved in the ‘SimResults’ subfolder of the current active method (e.g. qMTLab/SPGR/SimResults/). You can save the current simulation results by clicking ‘Save Results’ in the ‘qMT Data Simulator fit’ section of the Menu panel. You can later load it using the ‘Load Results’ button.
Plot types¶
Different plot types are available to analyze your simulation results. Depending on the plot type, available selections under ‘x axis’ and ‘y axis’ dropdown menus will change accordingly.
- Input parameters: Histogram of initial input parameters distribution.
- Fit results: Histogram of fitted parameters distribution.
- Input vs. Fit: Scatter plot of input parameter value vs fitted value.
- Error: Histogram of the error distribution. Error is defined as: Fit-Input
- Pct error: Histogram of the percentage error distribution. Percentage error is defined as: 100×(Fit-Input)/Input
- MPE: Bar graph of the mean percentage error, defined as: 100/n ∑((Fit-Input)/Input), where n is the number of simulated voxels.
- RMSE: Bar graph of the root mean squared error, defined as: √(1/n∑(Fit-Input)^2), where n is the number of simulated voxels.
- NRMSE: Bar graph of the normalized root mean squared error, defined as RMSE/(max(Input)-min(Input)) , where max(Input) is the maximum value in the input parameter distribution, and min(Input) is the minimum value.
5. Options Panel¶
Each qMR acquisition method has its own particular options for simulation, protocol and fitting. These options can be modified by using the Options panel. The Options panel consists of three sub-panels of options: ‘Protocol’, ‘Fitting’ and ‘Options’. At the bottom of all these sub-panels you will find buttons to Reset the changes you made, Save the current settings as a .mat file, Load a .mat file of settings, or go back to the Default settings. The Help button will open the help for the particular model.
5.1 Protocol¶
The ‘Protocol’ panel is where you define all options relating to the acquisition sequence. These options are specific for each method. For all methods, you will find (at the top of the protocol panel) input text fields corresponding to the independent variables. You can also load a previously saved text (.txt) file with the required options and format by using the Load button. Press the Help button in this panel to see the format expected by each of the models or by checking example protocol files in:
qMRLab/Data/{ModelName}_Demo/*.txt
5.2. Fitting¶
The ‘Fitting’ panel is where you determine the upper, lower and starting points of your parameters. You can also select which parameters should be kept fixed for the fitting.
5.3. Options¶
The ‘Options’ panel is where you specify the properties of the model and the fitting. For example, the assumptions/type of model (e.g. for SPGR, the SledPikeRP or Yarnykh model), type of images (magnitude or magnitude/phase for Inversion Recovery), etc.
6. Tutorial¶
Video to come soon…


Element Settings
Management Interface Settings
Management Interface
Manage the management interface settings
Management Interface
A management interface is expressed as an URL that identifies an endpoint to manage an element.
For example, the REST API endpoint of an element is a management interface.
Name
The name of this management interface
Protocol
The network protocol of this management interface
Hostname
The IP address or hostname of this management interface
Port
The network port of this management interface
Path
Optional path segment of this management interface URL
Save settings
Remove
Cancel


{% load i18n %}
{% trans "You should receive a verification email in a few minutes, please click the activation link to start your subscription." %}
{% trans "You're already signed up for our newsletter." %}


{% extends "base.html" %} {% block content %}
Sorry, but the requested page could not be found.
« Back to home page


title = "Welcome To TexasRL" url = "/" layout = "default" description = "A community solely by the players, for the players. Feel free to look around and participate in our monthly tournaments or see when our future local events will take place." is_hidden = 0 [blogPosts] pageNumber = "{{ :page }}" postsPerPage = 10 noPostsMessage = "No posts found" sortOrder = "updated_at desc" categoryPage = 404 postPage = "blog/post" [mailSignup Newsletter] list = "0ce7d07095" [embedTimeline] widget-id =<PHONE_NUMBER>58096128 tweet-limit = 5 aria-polite = "polite" chrome = "nofooter transparent" width = 520 height = 600 theme = "light" dnt = 0 lang = "en" ==
{% component 'blogPosts' %}


The chipKIT™ MPIDE System
chipKIT™ is an Arduino™ compatible hardware/software system that uses
the Microhip PIC32 microcontroller rather than the Atmel AVR microcontroller. The
chipKIT hardware has been designed to be functionally compatible with the Arduino
boards. Many existing Arduino shields will work with the chipKIT boards.
The chipKIT IDE, the Multi-Platform IDE (MPIDE) is functionally compatible with
the Arduino IDE. In fact, the MPIDE is built from a copy of the same source code
as the Arduino IDE and still supports the standard Arduino boards.
The PIC32 microcontroller uses a MIPS M4K processor core. The M4K is a 32-bit RISC
architecture that provides a very high performance microcontroller computing
platform.
The PIC32 supports the following features:
- MIPS M4K RISC processor core
- Up to 80 MHz operation
- Up to 512K program flash and 128K data RAM memory
- Five 16-bit timers
- Five Output Compare/PWM outputs
- Five Input Capture units
- Five external interrupts
- Up to five SPI ports
- Up to six UART ports
- Up to four I2 ports
- Optional 10/100 Ethernet MAC
- Optional USB 2.0 Full Speed OTG Controller
- Optional, up to two, CAN controllers
Digilent produces several boards in the chipKIT line. These include the
microcontroller boards themselves, plus several I/O boards called shields.
The Digilent chipKIT line contains the following boards (with the
microcontroller that is on that board given in parentheses):
Additionally, Digilent has the Cerebot line of microcontroller boards which will
soon be rebranded as chipKIT boards. These boards provide the ability to work with
the Arduino/chipKIT compatible MPIDE development environment. They also provide
the ability to easily use the powerful, professional development tools from
Microchip, such as the MPLAB IDE.
The Cerebot line includes the following boards:
The Cerebot boards are also designed to make use of the extensive line of Pmod
peripheral modules available from Digilent. The Pmods provide numerous I/O devices
and interface modules.
|


Tic-tac-toe is played all over the world. There are a lot of versions of the game with different rules, but the essence of the game remains. Anyway, it's always good to refresh our memory about the rules.
Tic-tac-toe is a two-player game with a 3x3 grid. One of the players is X
, another player is O
. X
starts first, then O
takes the next turn, and so on. The players mark X
or O
on a 3x3 field. The first player that puts three X's
or O's
on a straight line (including diagonals) wins the game.
In this project, you will create a Tic-tac-toe game with a graphical user interface (GUI) using the Swing framework. The program will allow you to play both against another player or a computer. You can also configure the game so that the computer can play against itself.
Your first task is to create the main window of the program and the field for the game. Swing has a special class that represents an empty window — JFrame
. To improve a basic window, extend this class and write your own window logic. Here is an example of the code with JFrame
:
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle("Tic Tac Toe");
setResizable(false);
setSize(450, 450);
setVisible(true);
In addition to the window, create a field with nine cells that represent three rows and three columns. We can use another class that extends the JButton
class for our cells. For testing purposes, give a name to each of the cells using the setName
method. We will use the algebraic chess notation. Name bottom left cell as ButtonA1
and the top right as ButtonC3
. Also, at the first stage, indicate the coordinates of these cells from A1
to C3
. After starting the program, it should look like an illustration.
To create a field, we can use a separate Board class extending JPanel
. You can use GridLayout (3, 3)
as the Layout
. After that, you need to create nine cells and add them to this class. Add the Board class to the main window with the TicTacToe
class.
Example 1: The playing field


Repository Information
Information
General Information about the Repository.
Types
Types and sub-types available in the Repository.
Details
select a type from the tree.
General Information about the Repository.
Types and sub-types available in the Repository.
select a type from the tree.
Utilities for you.


RTW :: Games
Research Project at Federal University of São Carlos
Third Game
{% if code == 1 %} {% block code1 %}This game has been finished.
You scored {{ score }} points!
{% endblock code1 %} {% else %} {% if code == 2 %} {% block code2 %}Guess the theme of the round!
|
Next guess
|
Previous guesses |
Hints |
This game does not exist.
{% endblock code4 %} {% else %} {% block code7 %}You can't play this game.
{% endblock code7 %} {% endif %} {% endif %} {% endif %}


You are about to go through an experience which would change your mindset forever. But first up... a little about the game! In this migrant trail, your taking up the role of an escaping migrant. You will be faced with a few choices which would lead to how the game carries on.
[[Start -> Start your migrant journey!]]
 Many people you know have been murdered and you are trying to escape whilst keeping a low profile. You need to leave immediately. What is your profession( each profession leads to a different story)?
[[You are a medical student who works at a make shift clinic -> Medical Student]]
[[You are currently in between jobs which makes you a little skilled -> Undecided]]As the minutes pass the situation gets more and more intense. There are bombs dropping everywhere and the terrorists are stealing around from everyone's house. You need an escape route to find your way out without getting killed...
[[Pay a smuggler to help you escape through the sea. -> Sea escape]]
[[You decide to escape through the land -> Land escape]]
[[Help out the people around you to escape (Since you are a medical student you are given a bonus option!!) -> Saviour]]As the minutes pass the situation gets more and more intense. There are bombs dropping everywhere and the terrorists are stealing around from everyone's house. You need an escape route to find your way out without getting killed...
[[Pay a smuggler to help you escape through the sea. -> Sea escape]]
[[You decide to escape through the land -> Land escape]]
[[Look for useful items around you to ensure your journey is good (Since your profession is makeshift you are given a bonus option!!) -> Scavenger]]You have decided to smuggle yourself out of your city. You make your way towards the sea and reach the boat to find out that it looks mostly filled to the brim. After a long wait you finally get to have a seat on the ground as there was not enough seats in the seating area. You make your way through the ocean while facing many challenges. There are storms on the way which makes everyone on the boat really cold. Since the boat had to leave in a hurry there was not enough food available for everyone to eat and the whole boat stunk because of how packed everyone was.
Finally after what feels like forever you were able to make it back to the shores of USA. Since you are not documented you have the following options to make sure you do not get caught...
[[You pay the smuggler even more money to make you fake documents -> Illegal]]
[[You make your way to the nearest embassy of your country and seek shelter -> Legal]]Travel through land has always been hard for everyone. There is always lack of food, water, shelter, and everyone always ends up getting tired. You were lucky enough to have been able to hitch hike your way through most of the journey. But unfortunately you are really exhausted and have no clue where to go.
Finally after what feels like forever you were able to make it back to the shores of USA. Since you are not documented you have the following options to make sure you do not get caught...
[[You came across a smuggler who would make you fake documents -> Illegal]]
[[You make your way to the nearest embassy of your country and seek shelter -> Legal]]You chose the option to make sure the people around you are safe. You were successfully able to make your way to the make shift clinic to get a few supplies to help the injured people around you.  He offers to help you out and takes you along with his family.
[[Winner!!]] You chose the option to make sure that you and the people around you are safe and stocked with a few necessities. You were successfully able to make your way through the city to get a few supplies to help the injured people around you.  He offers to help you out and takes you along with his family.
[[Winner!!]]Unfortunately, the choice that you have chosen has led the authorities to be very suspicious of you and ask around about you.
Would you like to play another round?
[[Starting ]]You chose the correct options which has led you to safe gound!!
[[Winner!!]]Congradulations!! You were sucessfully able to make it and you saved many people on the way!!
Would you like to play again?
[[Starting ]]


Some administrative tasks can be simplified by using common_schema/QueryScript. I'm collecting a bunch of these for documentation. Here's one for example:
The DBA/developer has the task of retaining only top 3 most populated countries per continent. That is, she has to DELETE 4th, 5th, 6th, ... most populated counties in each continent.
Is it possible to work out with a single query? Yes. But the query is not pretty. In fact, it is quite complicated, and either involves unintuitive subqueries, or unintuitive hacks. A normal DBA would not want to write, neither maintain this kind of query, unless top-notch-geek, which is fine.
Since this is a one time job, we just need to get it done. And common_schema/QueryScript provide with the intuitive solution: if we read our demand aloud, we realize we want to delete 4th, 5th, 6th, ... populated countries for each continent.
I present a solution made available by QueryScript, and discuss the ways in which the code overcomes limitations, or simplifies complexity:
var $num_countries_to_delete; foreach($continent, $num_countries: SELECT continent, COUNT(*) FROM world.Country GROUP BY continent) { if ($num_countries > 3) { set $num_countries_to_delete := $num_countries - 3; DELETE FROM world.Country WHERE Continent = $continent ORDER BY Population ASC LIMIT :$num_countries_to_delete; } }
Discussion
The first thing that should be apparent from the above is that this is a programmatic solution. Queries are declarative, which is why complex ones sometimes look incomprehensible. The above is more straightforward.
The next thing to realize, which is a disclosure issue of some sorts, is that the above code is fine for a one time, or maintenance execution; but you wouldn't want to be normally issuing this type of code against your database 10,000 times a second.
Now let's break down the code to fragments:
Discussion: variables
The $num_countries_to_delete is a script variable. It is local. It is reset to NULL upon declaration and destroyed when its visibility ends. But the real power comes later, when it is expanded. This is discussed last.
Discussion: iteration
How would you iterate the continents using a stored routine? I personally think the syntax for server side cursors is overwhelmingly verbose. Declare a cursor, declare a continue handler, declare variables to grab values, open the cursor, start a loop, iteratively fetch the cursor (assign row values onto variables), oh, check up on the continue handler (programmatically exit the loop if it fails), close the cursor.
The foreach() loop statement was developed to simplify all the above. Hey: just name your query, and the list of variables which should be assigned to, and do your thing in the following statement.
Discussion: conditional branching
The standard SQL CASE statement, and the additional IF() statement are fine, and I use them a lot. But they are fine for SELECT queries, and only allow you to get data. At best, you may invoke a function based on some condition, which can actually modify data.
With QueryScript it's as with your normal programming language: you can DELETE if some condition holds true, INSERT or SELECT or ALTER or whatever if false.
In the above code there isn't too much news. The same can be done with stored routines. However the if statement can also accept a query as a condition. One can ask: if (DELETE FROM ... WHERE...). The condition holds true only is the operation was successful (rows actually DELETEd, or INSERTed, or UPDATEed). This makes for a very tight integration between script and SQL.
Discussion: variables and variable expansion
Script variables behave just as normal MySQL user defined variables (in fact, current internal implementation of script variables is by user defined variables). Which means the set statement works for them just as normal.
And here is where things become not-normal:
Say we want to delete all but the 3 most populated countries in Europe. Wouldn't we like to issue a DELETE FROM Country WHERE Continent = 'Europe' ORDER BY Population DESC LIMIT 3, 999999999? (The<PHONE_NUMBER> to resemble "infinite", in poor man's solution)
But MySQL's DELETE does not accept both limit & offset in the LIMIT clause. Just the limit part. Which is why we're working the other way round: we find out the number of records we wish to purge and delete bottom up. But wait, here's another problem:
In MySQL, the LIMIT clause must accept a constant. You can just DELETE FROM .... LIMIT @x. This makes for a syntax error. Bummer!
If we don't know ahead the number of records we wish to purge, how can we work both dynamically and correctly?
Enter variable expansion. In the statement:
DELETE FROM world.Country WHERE Continent = $continent ORDER BY Population ASC LIMIT :$num_countries_to_delete;
The $num_countries_to_delete variable is expanded, via ":". The :$num_countries_to_delete token is replaced in-place with the value contained by $num_countries_to_delete. MySQL never gets a variable in the LIMIT clause: by the time the query reaches MySQL, theres a constant in place, and none is the wiser. But as far as we're concerned, we get a dynamic way of producing values to the LIMIT clause.
LIMIT is not the only clause which expects constants. How about KILL? How about DDLs, such as CREATE TABLE? With variable expansion you can dynamically inject values onto such clauses, statements and commands, and get your self a dynamic script.
Conclusion
This small code sample exposes much of QueryScript's power. Throughout the months of development, I happened to use QueryScript code over and over on production, to realize how it can sometimes simplify very complex tasks into a mere 2-liner code. A code that any of my fellow programmers can understand, as well, without having to be SQL experts. And such which is executed within the server; no need for external languages, connectors, dependencies, packages etc.
comments powered by Disqus


Note: This location is different than was used at last year's face-to-face hosted by Apple.
The joint PWG/Open Printing meetings will be held on April 24-27, hosted by Apple at their facilities in Cupertino, CA:
10500 N. De Anza Blvd.
Cupertino, CA 95014
[map]
A light breakfast and lunch will be served each day.
All sessions will be held in the "Beatles" conference room in De Anza 3. It is located just past the vistor's desk in the lobby.
There is no registration fee for this meeting.
Please respond to the PWG April 2012 face-to-face meeting survey whether you are planning to attend the meeting in person, by phone, or not at all. This will help us plan for services and make any necessary reservations.
Call-in toll-free number (US/Canada): +1<PHONE_NUMBER>
Call-in toll number (US/Canada): +1<PHONE_NUMBER>
Call-in toll number (US/Canada): +1<PHONE_NUMBER>
Attendee access code: (by request only)
To join the online meeting:
Note:All times are local to the venue.
This is a joint meeting with members from the Printer Working Group and Linux Foundation Open Printing working groups participating.
Discussions at PWG face-to-face meetings are covered by the PWG Policy on Intellectual Property and Confidentiality - basically everything we discuss is non-confidential and can be included in an open standard.
| Date | Times | Description |
|---|---|---|
| April 24 | 8:30 AM to 9:00 AM | Breakfast |
| 9:00 AM to 10:15 AM | PWG Plenary (Slides) | |
| 10:15 AM to 10:30 AM | Break | |
| 10:30 AM to 12:00 PM | Open Printing Plenary (Slides) | |
| 12:00 PM to 1:00 PM | Lunch | |
| 1:00 PM to 2:00 PM | CUPS Plenary (Slides) | |
| 2:00 PM to 2:15 PM | Break | |
| 2:15 PM to 3:15 PM | Common Mobile Print Client (Slides) | |
| 3:15 PM to 3:30 PM | Break | |
| 3:30 PM to 5:00 PM | POSIX Print Clients | |
| April 25 | 8:30 AM to 9:00 AM | Breakfast |
| 9:00 AM to 12:00 PM | Printing and Color Management (Print Paths · Ghostscript · printerd) | |
| 12:00 PM to 1:00 PM | Lunch | |
| 1:00 PM to 5:00 PM | IPP Everywhere (Slides · IPP Everywhere · MSN2) | |
| April 26 | 8:30 AM to 9:00 AM | Breakfast |
| 9:00 AM to 12:00 PM | Semantic Model (Slides · Transform Service) | |
| 12:00 PM to 1:00 PM | Lunch | |
| 1:00 PM to 3:15 PM | CWMP BOF (Slides) | |
| 3:15 PM to 3:30 PM | Break | |
| 3:30 PM to 5:00 PM | Workgroup for Imaging Management Solutions (WIMS) (Slides) | |
| April 27 | 8:30 AM to 9:00 AM | Breakfast |
| 9:00 AM to 12:00 PM | Cloud Imaging (Slides · Cloud Print Model and Requirements · Cloud Diagram · Cloud Printing Spreadsheet · Job Ticket Mapping) | |
| 12:00 PM to 1:00 PM | Lunch | |
| 1:00 PM to 2:00 PM | Future of Open Printing (Slides · Printing Interfaces) | |
| 2:00 PM to 2:15 PM | Break | |
| 2:15 PM to 5:00 PM | Imaging Device Security (IDS) (Slides · Common Log Format · IDS Model · Attributes Spec · Attributes Table · NAP SOH Binding Spec · TNC Binding Spec) |
There are several good hotels in the vicinity: Hotels near Apple
The following hotels are within walking distance of the main campus:
Cypress Hotel
10050 South DeAnza Boulevard
Cupertino, CA 950124
(408) 253-8900
http://www.thecypresshotel.com/
Cupertino Inn
10889 North DeAnza Blvd
Cupertino, CA 95014
(408) 996-7700
http://www.cupertinoinn.com/


Java How to Program 7th Edition includes all of the core pedagogic material from
Java How to Program, 6/e updated to the forthcoming Java Standard Edition 6 Java SE6; (code named "Mustang"). Check out the complete Table of Contents. Here's some of the book's key features:
- Updated the entire book to the new Java Standard Edition 6 ("Mustang").
- Attention to key software engineering community concepts, such as Web 2.0, SOA, web services,open source software, design patterns, mashups, refactoring and many more.
- Carefully coordinated with our new Java, Web 2.0, Ajax, and Programming Projects Resource Centers.
- New Ajax-enabled, event-driven web applications development with JavaServer Faces
- The servlets and JSP chapters have been dropped in favor of the new JavaServer Faces (JSF) treatment.
- New tools-based approach for web applications development.
- New web services chapter.
- New SwingWorker class for multithreaded user interfaces.
- New Java desktop integration( JDIC) features, such as splash screens and interactions with the system tray.
- New GroupLayout layout manager.
- New JDBC chapter introduces JDBC 4 and uses the MySQL and Java DB databases.
- New JTable sorting and filtering capabilities.
- New Java2D gradient capabilities.
- Strong treatment of generics and generic collections.
- New application using Google Maps web services.
- Java Blueprints technology.
- New StringBuilder class.
- New Resource Centers for Eclipse, NetBeans, Java Studio Creator 2, JBuilder and other popular environments.
- New coverage of annotations, and much more.


Event Location:
Troy University Riverfront Campus
1510 3rd Ave
Phenix City, Alabama
Abstract:
"SQL Operations Studio (preview) offers a modern, keyboard-focused T-SQL coding experience that makes your everyday tasks easier with built-in features, such as multiple tab windows, a rich T-SQL editor, IntelliSense, keyword completion, code snippets, code navigation, and source control integration (Git). Run on-demand T-SQL queries, view and save results as text, JSON, or Excel. Edit data, organize your favorite database connections, and browse database objects in a familiar object browsing experience." And, it runs on a Mac (and Linux, and Windows, too). Similar to Visual Studio Code, SQL Operations Studio (still in pre-release form) lets you connect to and manipulate your databases without spinning up Visual Studio (or SSMS). We'll walk through how to get the bits and install them, then connect to and query a database (in Azure) - we might not even use a mouse! If time permits, we'll take a look at Code Snippets - a built-in capability to make your T-SQL coding super-productive!
Speaker(s): Eric Flamm,
Abstract:
Does your database development process match your agile front-end counterparts? Is SQLServer Data Tools the right tool for an agile deployment methodology? Join me in a fresh approach that will build deployments designed to be agile from the beginning, and also support the capability for zero down time deployments by supporting multiple states of the application, so database deployments can be made in advance, without breaking the application or requiring an outage. We will touch on how about 35 different types of DDL changes can be prepared to support transition periods, so deployments can run against a live system with no disruptions to also support the next release of your application. This approach is a new mindset, but with a few months of planning can be leveraged to turn a deployment from a feared event to showing off your true enterprise level DevOps skills. Some demonstrations will show how ReadyRoll can be used to build migrations that support transition periods.
Speaker(s): Jeff Reinhard,
Abstract:
The deployment process is frustrating; an object is missing, an object is deployed in the wrong order or an incorrect version. Deploying to multiple environments like Dev, QA, UAT, and Prod is a challenge whether on-premise or in the cloud. Source controlling database objects is paramount. Team development is required. Database code will only be deployed when changed. Proper security deployment will be repeatable per environment. Together, let us discover how using Database Project will help us with consistent releases. Deployments can cause you trouble but we will share a reliable deployment and version control process. Let’s see how Database Project can help us accomplish this goal.
Speaker(s): Thomas Norman,
Abstract:
Do you want to make your deployments risk free? Do you want to deliver business values to your customers faster? Do you want to increase the efficiency of your Team? Are your application and database deployment separate processes? Do you encounter issues while deploying your database changes? Do you want to automate your testing process? Is your database slowing you down? If the answer to any of the above questions is a Yes, then this presentation is for YOU. Come join me in this 60 min session to understand the problems with traditional database development, why organizations are moving towards achieving Continuous Integration and Database DevOps, the problems it tries to solve and learn about the toolsets which will assist you in this journey towards painless database deployments.
Speaker(s): Samir Behara,
Abstract:
PowerShell has allowed DBAs to manage huge numbers of SQL servers, all automatically. Now BI practitioners can reap the same benefits of scale and automation. Scenarios that are normally extremely time consuming can be done quickly, all with a few lines of PowerShell. This session will be filled with demos based on real-life scenarios and use-cases. We will demonstrate how to scale and automate your BI solutions, with a minimum of effort. In particular, we will be covering PowerShell cmdlets their integrations with SSRS, SSIS, SSAS, and Power BI. By the end of the session, you'll be able to accomplish in minutes what would normally take hours or days. You’ll know ways to quickly migrate and deploy hundreds of reports to multiple servers; or instantly identify and process stale SSAS dimensions. Additionally, you will also solve some pesky ETL tasks: deploying large-scale SSIS solutions, updating parameters for existing packages and streamlining data imports for Power BI Report Server
Speaker(s): Aaron Nelson,
Abstract:
This sessions introduces to the participants a slice in the life of a DBA managing and supporting a very large environment. It covers the differences between mid and large environment, key aspects to focus on and tips tricks to manage a very large environment. The session will provide some insight about CMS and PBM to the participants. Few techniques that can be implemented using CMS will be explored, along with some automation ideas. The audience would leave the session with a different mindset when they think of a very large environment. The presentation style being drafted will ensure that the participants stay engaged from start till the finish, as many interesting real life examples will be shared with the audience.
Speaker(s): Senthil Raghavan,
Abstract:
With the introduction of SQL 2016, Query Store has become a unique tool in the DBA toolkit for its almost surgical like performance adjustment capability for systems. This session will show how to use this feature in adjusting the performance of your SQL Servers in a much more granular way than the impact of using other performance tools that are available to the DBA - comparing and contrasting the Query Store with the traditional methods along the way. It will also show you how to monitor the impact of your changes, and the changes in the environment, from using Query Store. Finally the session will cover the basic architecture of query store, the reporting environment, and the DMVs that support query store.
Speaker(s): Steven Cush,
Abstract:
One of the most exciting new features of SQL Server 2016 is the integration of the R statistical programming language into the platform with the brand-new SQL Server R Services. In this introductory session we'll briefly introduce the R language and then look at how to install and administer SQL Server R Services. We'll start to demonstrate the power of R by showing you how to create and run simple R scripts from within T-SQL. We'll then discuss some of the powerful open source packages that are available to aid your data analyses. Finally, we'll go through some examples of how to use R to integrate data analytical methods in real-world situations, and wow your customers with the power of statistics!
Speaker(s): Chris Hyde,
Abstract:
PowerShell is a tool used by many people in DevOps and Infrastructure. Should the DBA get on board with using PowerShell? The answer is yes - as a DBA, PowerShell can have a significant impact on tasks that would be long and tedious with just T-SQL alone. Today there are specific modules that can be incorporated into PowerShell to help in automating every-day DBA tasks. Beyond that, PowerShell can be used to do things like automate deployments and audit permissions. In this session we will explore real-world examples and demonstrate how PowerShell can be leveraged by the DBA to not only improve efficiency but also streamline processes across an enterprise environment.
Speaker(s): Amy Herold,
Abstract:
There are many ways of detecting and capturing changes to the data in your business system in order to populate your data warehouse. In this session we will compare and contrast several methods for loading slowly-changing dimensions in your ETL solutions, including SSIS design patterns, T-SQL code, change data capture (CDC) and temporal tables. Attendees will gain a full understanding of the pros and cons of each of these solutions and become confident in choosing and implementing them in their own ETL solutions.
Speaker(s): Chris Hyde,
Abstract:
Finding any IT industry publication that does not frequently reference Hadoop and Big Data is nearly impossible. Even so, to many SQL Server professionals it remains a mystery. 'Introducing Hadoop to SQL Server Pros' bridges the gap between knowledge of SQL Server and Hadoop. The first half of the session describes how Hadoop works by comparing it to what you already know about SQL Server. The second half is a series of demonstrations of Hadoop functionality. If you've ever wondered how Hadoop works and how it may effect you as a data professional, this is the session to attend.
Speaker(s): Jon Boulineau,
Abstract:
Are you new to Power BI? Do you want to learn what all the buzz is about and how to use it from a purely novice standpoint? Do you need to ramp up quickly to be able to build some great visualizations? This session is the session that you need! We will walk you through the basic architecture and nuances of Power BI all the while taking a fun adventure to building your first Power BI report. The attendee will leave the class ready to start using Power BI in the real world.
Speaker(s): Ed Watson,
Abstract:
T-SQL windowing functions can simplify many complex queries. They are the best thing that has happened to the T-SQL language in years, but many database professionals and developers haven’t heard about them. They were initially introduced with SQL Server 2005. In 2012, Microsoft added several new functions that let you do things like pull values from different rows without a performance penalty. Attend this session to learn how T-SQL windowing functions apply to many real world examples.
Speaker(s): Kathi Kellenberger,
Abstract:
2016 SSIS packages can access data anywhere throughout the network, but normally run on the server they are deployed on. And if something terrible happens to that server, the manual setup of the SSISDB can be time consuming. With 2017, SSIS packages can be deployed once and run on several servers, even simultaneously. At this meetup, Paul LaGrone will teach you how to set up 2017 SSIS Scale Out packages so that your SSIS packages can now be in a Highly Available and Disaster Recovery environment.
Speaker(s): Paul LaGrone,
Abstract:
This interactive session will cover the lessons learned from the practical experience of a SAS provider as they went from 1 ½ 9s to 6 9s of availability concurrently expanding data volume from 500 GB to 5 PB while maintaining customer responsiveness . The session with cover all aspects of the processes used, design and evolution of the architecture, implementation strategies and processes used, monitoring, and the politics behind the availability.
Speaker(s): Steven Cush,
Abstract:
LUNCH
Speaker(s): Tim Radney,
Abstract:
Database source control can be challenging and tricky to implement. This session will be a discussion on setting up a good foundation to implement source control. During this session we will go over getting buy-in for source control, managing database changes, and avoiding common pitfalls.
Speaker(s): Elizabeth Noble,
Abstract:
In this session you will be learn what Cosmos DB is and why it is the hottest thing in Azure. What does massively scalable, mullti-model, globally distributed, well-defined consistency models look like? Most important, who is going to be using it and why?
Speaker(s): Mike Lawell,
Abstract:
You have probably heard the buzz about Azure Machine Learning, aka Azure ML, over the past few years. It is a surprisingly easy to use predictive analytic tool that you can learn for free. Attend this session to learn how to get started with Azure ML.
Speaker(s): Kathi Kellenberger,
This is a list of speakers from the XML Guidebook records. The details and URLs were valid at the time of the event.
LinkedIn: https://www.linkedin.com/in/jonboulineau
Contact: http://jonboulineau.me
Jon Boulineau works as a Data Architect and Data Engineer in Nashville, TN.
Contact: http://blogs.msdn.com/b/sql_pfe_blog/
For the past nine years, I have been a Technical Solution Professional with Microsoft. As a TSP I conduct full training workshops, conduct demo sessions, and perform architectural reviews on all supported builds of SQL Server. I mainly support the Southeast focusing on Florida, but I can be anywhere in the world. My core areas are Performance Tuning and Optimization, Azure, AlwaysOn, Reporting Services (SSRS), custom monitoring, building custom dashboards, and more.
LinkedIn: http://www.linkedin.com/in/kathikellenberger
Contact: http://auntkathisql.com
Kathi Kellenberger is the editor of Simple Talk at Redgate and a Data Platform MVP. She has worked with SQL Server for over 20 years and has authored, co-authored, or tech edited over a dozen technical books. Kathi is the co-leader of the PASS Women in Technology Virtual Group and a volunteer at LaunchCode. When Kathi isn’t working, she enjoys spending time with family and friends, cycling, singing, and climbing the stairs of tall buildings. Be sure to check out her courses on Pluralsight.
LinkedIn: https://www.linkedin.com/in/chris-hyde-3803706
Chris Hyde is a Microsoft Data Platform MVP and Microsoft Certified Trainer based in Albuquerque, New Mexico. He works as an independent SQL Server BI and DBA consultant, and is the leader of the Albuquerque PASS local user group. He is also part of the Friends of Redgate program and was a member of the Idera ACE class of 2018. He loves loud music and cricket, but usually not at the same time.
LinkedIn: http://www.linkedin.com/in/thedba
Senthil, is an Atlanta based professional with rich experience in managing very large database environments. Currently managing a 15-member team for a legal process outsourcing organization that serves high profile clients with aggressive SLA’s. Senthil has previously served in the banking, payments, telecom and product warranty industries. Senthil is a hands-on individual in the SQL Server area and has broad experience in managing geographically distributed teams. His team is responsible for managing PostGres, MongoDB and MySQL servers besides SQL Servers.
LinkedIn: http://linkedin.com/in/tradney
Contact: http://www.timradney.com
Tim is a Data Platform MVP and has a whole collection of Microsoft and other industry certifications. His experience includes HA/DR, virtualization, SSIS, SSRS, and performance tuning, among everything else SQL Server-related. Tim is very active and passionate in the SQL Community. He runs the Columbus GA SQL Users Group, has been a PASS Regional Mentor for a number of years, was named a PASS Outstanding Volunteer in 2012, and is a frequent speaker at user groups, SQL Saturdays and PASS Summits. Tim is one of the top ranked in karma on ask.sqlservercentral.com, answers questions as @tradney on Twitter, and blogs at http://timradney.com and SQLskills blog at http://www.SQLskills.com/blogs/tim.
Paul is currently in his fourth year as the ETL Manager for a local CRM software firm. Paul's database work dates back to early database platforms like Dbase III and has worked with every version of SQL Server since SQL 7.0 was introduced. His certifications include MCSE, MCDBA, and MCT. Along with holding a DBA job for the City of Fort Worth, Texas, he also taught T-SQL Intro and Advanced classes to several departments and the North Texas GIS community. In 2006, he founded and ran the Greater Fort Worth SQL Server group for three years, which still continues today. While moving data and other SSIS tasks are Paul's responsibility now, he has also been a Production DBA, worked heavily in the GIS database co
Contact: http://blogs.msdn.com/b/sql_pfe_blog/
For the past nine years, I have been a Technical Solution Professional with Microsoft. As a TSP I conduct full training workshops, conduct demo sessions, and perform architectural reviews on all supported builds of SQL Server. I mainly support the Southeast focusing on Florida, but I can be anywhere in the world. My core areas are Performance Tuning and Optimization, Azure, AlwaysOn, Reporting Services (SSRS), custom monitoring, building custom dashboards, and more.
LinkedIn: https://www.linkedin.com/in/chris-hyde-3803706
Chris Hyde is a Microsoft Data Platform MVP and Microsoft Certified Trainer based in Albuquerque, New Mexico. He works as an independent SQL Server BI and DBA consultant, and is the leader of the Albuquerque PASS local user group. He is also part of the Friends of Redgate program and was a member of the Idera ACE class of 2018. He loves loud music and cricket, but usually not at the same time.
LinkedIn: https://www.linkedin.com/in/jeffreinhard
I have 25 years of database development experience, mostly with SQL Server, with companies such as Ernst amp; Young, Internet Security Systems/IBM, AirWatch, WebMD, CheckFree and others. My recent focus has been on AlwaysOn availability groups and database DevOps.
LinkedIn: https://www.linkedin.com/in/mikelawell
Contact: http://sqlserverassociates.com/Blog
Mike Lawell is an 19 year veteran of SQL Server, working with all versions since 6.5. He specializes in performance tuning and high availability as an independent consultant. He is a Linchpin People Teammate, he also consults with SolidQ, Intellinet and Microsoft Consulting Services. He is also a certified Scuba instructor with a long bucket list of dive sites. He resides in Atlanta, GA and you can catch him at many of the SQLSaturdays in the SE region of the United States.
LinkedIn: http://www.linkedin.com/in/armordba
Contact: https://armordba.com/
Tom Norman is a Database Architect at KPA with a strong fervor to protect data. He works daily to review and improve data protection methodologies while reviewing governing laws affecting finance, healthcare, and personal data. His areas of expertise include encryption, auditing, data identification, and database object deployment. He is the current leader of the PASS Virtualization Group and Vice President of the TRIPASS user group. You can read his blog at https://armordba.com/ and reach him on twitter at @armordba. Tom speaks at a number of SQLSaturday events and SQL Server user groups.
LinkedIn: http://www.linkedin.com/in/kathikellenberger
Contact: http://auntkathisql.com
Kathi Kellenberger is the editor of Simple Talk at Redgate and a Data Platform MVP. She has worked with SQL Server for over 20 years and has authored, co-authored, or tech edited over a dozen technical books. Kathi is the co-leader of the PASS Women in Technology Virtual Group and a volunteer at LaunchCode. When Kathi isn’t working, she enjoys spending time with family and friends, cycling, singing, and climbing the stairs of tall buildings. Be sure to check out her courses on Pluralsight.
LinkedIn: https://www.linkedin.com/in/elizabeth-a-noble
Elizabeth Noble is a Director of Database Development in the metro Atlanta area. When she was introduced to her first database over 10 years ago, it was love at first sight. Her passion is to help others improve the quality and speed of deploying database changes through automation. When she is not trying to automate all of the things, she can be found spending time with her dogs, playing disc golf, or taking a walk at the gym.
LinkedIn: http://www.linkedin.com/in/watsoned
Contact: http://sqlgator.com
Ed Watson is a Principal Data Platform Consultant for Improving Enterprises, a full-stack Microsoft consulting firm in Atlanta. Ed is a Microsoft Data Platform MVP since 2014 and like most children, Ed was born at an early age. Today, Ed specializes in the Business Intelligence stack and enjoys specializing in Power BI immensely. He currently lives in Atlanta and is active with the Atlanta MDF and Atlanta BI user groups and is an organizer for SQL Saturday Atlanta, Atlanta BI, and Pensacola.
Steven is a software professional with almost 20 years in the field. He has worked in all areas of the data profession from in both OLTP and OLAP disciplines, as well as having been a developer. He is currently working at a privately held CRM provider leading their data efforts.
LinkedIn: http://linkedin.com/in/ericmflamm
Contact: http://blog.flammconsulting.com
Eric Flamm is the principal consultant with Flamm Consulting, which provides Business Intelligence and Data Engineering consulting services to a range of small and medium-sized businesses. His clients have included Pactiv Corp (formerly Tenneco Packaging), Colography Group, Principia Partners, and Tillster, Inc (formerly Snapfinger.com), along with a range of smaller clients and projects. Eric graduated from Stanford and the Booth School at U of Chicago. Eric has volunteered with SQL Saturday Atlanta since the first event (SQL Saturday #13 in 2009). He has presented to SQL Saturdays in Atlanta, Chicago, and Columbus (GA), Azure Data Fest (Atlanta), the Atlanta Power BI chapter, and the Kennesaw (GA) Amazon Web Services Meetup group.
LinkedIn: https://www.linkedin.com/in/sqlvariant
Contact: http://sqlvariant.com/
Aaron Nelson is an author, public speaker, blogger, and leader in the community. He has over 15 years of experience in architecture, Business Intelligence, development, and performance tuning of SQL Server. Aaron has received many certifications and is a six time winner of the Microsoft MVP Award. Aaron leads the PowerShell Virtual Group of PASS (SQLPS.io), is a board member of PowerShell.org, and is a volunteer at his PASS Local Group, AtlantaMDF.
LinkedIn: http://www.linkedin.com/in/aherold
Contact: http://www.sqlkitten.com/
Amy Herold is currently a Premier Field Engineer with Microsoft, specializing in APS. Prior to this, she was a Sr. Database Administrator, focusing on PowerShell and automation. She is also currently the Director of Programs for the North Texas SQL Server User Group (NTSSUG). She frequently speaks at SQL Saturday and user group events across the United States and has also participated in numerous Women in Technology sessions as a panelist. Amy currently blogs at sqlkitten.com.
Steven is a software professional with almost 20 years in the field. He has worked in all areas of the data profession from in both OLTP and OLAP disciplines, as well as having been a developer. He is currently working at a privately held CRM provider leading their data efforts.
LinkedIn: https://www.linkedin.com/in/samir-behara-78953870
Contact: https://dotnetvibes.com/
Samir Behara is a Solution Architect with EBSCO Industries and builds software solutions using cutting edge technologies. He is a Microsoft Data Platform MVP with over 13 years of IT experience working on large-scale enterprise applications involving complex business functions, web integration, and data management in various domains like Insurance, Manufacturing and Publishing. Samir is a frequent speaker at conferences such as PASS Summit, IT/Dec Connections, CodeStock, SQL Saturdays and CodeCamps. He is the Co-Chapter Lead of the Steel City SQL Server UserGroup, Birmingham, AL. He is the author of www.dotnetvibes.com
The following is a list of sponsors that helped fund the event.


--- layout: page title: Lean Prover Zulip Chat Archive permalink: archive/113488general/37092ModernLaTeX.html ---
I don't think it can be used as a preprocessor (that's an interesting question actually)
I created a new topic so we don't pollute what serious people have to say
Good thinking!
I will not stay long however. My brother is picking me up to go see my new nibbling
That's even further away from Type theory
Yeah! That's all the way in Montreal! What's the maximum allowed distance from Type Theory in here?
{% endraw %}


1 write to Serializer
System.Management.Automation (1)
engine\serialization.cs (1)
5045
Serializer
= serializer;
2 references to Serializer
System.Management.Automation (2)
engine\serialization.cs (2)
2425
if (entry.
Serializer
== null)
2435
entry.
Serializer
(serializer, streamName, property, source, entry);


${rdfs:label}
${rdfs:comment}
Classes
Properties
Individuals
SPARQL-DL
Treeview:
Navigation Bar:
Treeview
Navbar
Description of
${rdfs:label}
${rdfs:comment}
Terms
:
${term}
Disjoint With
:
${owl:disjointWith}
Relations
${?p}
:
${?t}
Instances
${?i}
ObjectProperties
DatatypeProperties
Description of
${rdfs:label}
${rdfs:comment}
Terms
:
${term}
Domain
:
${rdfs:domain}
Range
:
${rdfs:range}
Description of
${rdfs:label}
owl:Class
${rdf:type}
${rdfs:comment}
${?p}
:
${?t}
Query
Results
Querying, Please Stand By
Syntax
Type(?a, ?b)
PropertyValue(?a, ?b, ?c)
Class(?a)
ObjectProperty(?a)
DatatypeProperty(?a)
Examples: see
jOWL SPARQL-DL Test Suite page


Toggle navigation
logo
New Comment
4 minutes ago
3 New Followers
12 minutes ago
Message Sent
4 minutes ago
New Task
4 minutes ago
Server Rebooted
4 minutes ago
See All Notifications
View Profile
Edit Profile
Sign-out
Juan Dela Cruz
Home
Requests
Appointments
Transactions
History
Home
126
Requests
26
Appointments
12
Transactions
16
History
Services
Pet Sitting
Grooming
Training
Veterenary Services