Motivation
We want in this section to describe the default merge functions used by the m
component
factory when no such merge function is supplied by the user, and the Combine
component
combinator. As a matter of fact, the following content will focus on m
, as Combine(settings,
componentTree)
is just m({}, settings, componentTree
, i.e. the result of partially applying
m
with no combinator/merge specifications.
DOM merge
The DOM
merge function relating to m :: CombineSpecs -> Settings -> [ContainerComponent, Array<ChildComponent>])
has the following signature : DOMDefaultMerge :: Nullable<ParentDOMSink>, Array<DOMSink>, Settings
, where :
ParentDOMSink
encapsulates the DOM produced byContainerComponent
Array<DOMSink>
encapsulates the DOM produced by the childrenArray<ChildComponent>
Settings
follows the usual inheritance rules of settings through the component tree
If the user does not supply a merge function through the CombineSpecs
parameter, the default one is used. The default merge function by default append the DOM trees produced by the children at the end of the parent DOM tree. This behaviour can however be altered if the parent component explicitly makes use of named slots. We proceed with describing those two cases.
NOTE: We will sometimes refer to the container component as the parent component.
Regular DOM merge
Let’s consider m({}, {}, [ContainerComponent, [SiblingComponent1, SiblingComponent2]
with the following DOMs being produced :
- ContainerComponent

 This is some content included in the container component's DOM

- SiblingComponent1

 first sibling component's DOM

- SiblingComponent2

 second sibling component's DOM

The merged result will be similar to :

 This is some content included in the container component's DOM

 first sibling component's DOM

 second sibling component's DOM

NOTE : for the edge case when the container component does not have a selector for the children to be included within (for instance if it is a text node), a dummy div
selector is created, whose first children is the text node, and next children are the children DOM trees. For more details look at the tests.
Slotted DOM merge
The slotted DOM merge is a powerful, albeit complex functionality which allows to build the parent DOM from the children DOM according to a redistribution logic specified by a slot mechanism similar to the one used for Web Components.
Let’s assume :
- container component DOM

<<slot name="element-name">NEED NAME</slot>>
<slot name="description">NEED DESCRIPTION</slot>

Attributes

<slot name="attributes">
None
</slot>

That parent DOM has several features:
- it uses
<slot>
and its name attribute to make three named slots:<slot name="element-name">
<slot name="description">
<slot name="attributes">
- the named slots are wrapped within regular HTML elements.
Let’s consider now the slot contents :
- child with slot
element-name
slot
- child with slot
description
A placeholder inside a web
component that users can fill with their own markup,
with the effect of composing different DOM trees
together.
- child with slot
attributes

name

The name of the slot.

The merged DOM should hence be :

<
slot

A placeholder inside a web
component that users can fill with their own markup,
with the effect of composing different DOM trees
together.

Attributes

name

The name of the slot.

In short, the general case is that the container defines some slots by name, and replace those slots by the corresponding DOM content found in the children DOM’s slots. In this example, all slots are filled, as they can all be found in the children DOMs.
When a slot cannot be filled in by a corresponding children DOM (the children DOM simply does not define content for that slot), the slotted content of the container is used as default. The following describes that behaviour, with the same container component, but this time children components which will not define content for the attributes
slot.
- child with slot
element-name
template
- child with slot
description
A mechanism for holding client-
side content that is not to be rendered when a page is
loaded but may subsequently be instantiated during
runtime using JavaScript.
In that case, the merged DOM should be :

<
template

A mechanism for holding client-
side content that is not to be rendered when a page is
loaded but may subsequently be instantiated during
runtime using JavaScript.

Attributes

<slot name="attributes">
None
</slot>

Rules
- named slots are slot to which a string is associated to, including the empty string. In
particular,
slot=''
is a valid named slot - there can be several children defining content for one given slot. For example, this is a valid proposition :
<fancy-tabs>
<button slot="title">Title</button>
<button slot="title" selected>Title 2</button>
<button slot="title">Title 3</button>

content panel 1

content panel 2

content panel 3

</fancy-tabs>

<fancy-tabs>

Title

content panel 1

Title 2

content panel 2

Title 3

content panel 3

</fancy-tabs>
where the fancy-tabs
parent component is defined as :

<slot id="tabsSlot" name="title"></slot>

<slot id="panelsSlot"></slot>

In such a case, the children DOM’s are appended one after the other. The corresponding merge DOM would then be :

<slot id="tabsSlot" name="title">
<button slot="title">Title</button>
<button slot="title" selected>Title 2</button>
<button slot="title">Title 3</button>
</slot>

<slot id="panelsSlot">

content panel 1

content panel 2

content panel 3

</slot>

- an
unnamed
slot at parent level can be used to enclose the children DOMs which are not assigned a slot
See same previous example as a demo of this (<slot id="panelsSlot">
). Note that using this feature disable the standard DOM merge mechanism described previously.
- If there is no unnamed slot used at parent level, children DOM contents which are not assigned to
any named slot are merged into the parent’s DOM using the mechanism described in the
Regular DOM merge
section.- ! This means in particular that slotted children DOM contents will be lost if the parent does not have the matching slots !! I decided against enforcing a contract requesting children slots to have a match at the parent site, as there might be cases when one wants to switch content on and off, based precisely on this behaviour (that said, avoid it if there are more readable alternative).
If there’s more than one unnamed or named slots, the corresponding children content will be replicated in all corresponding slots.this is a difference with the web component slot mechanism where if there’s more than one default slot, the first is used.
children DOM content can never have three or more slots with the same name
children DOM content can have two slots with the same name if and only if the first occurrence is at vNode’s root level. The first slot will be marking the location of the content to distribute to the parent container when the vNode is seen as a child, the second slot will mark the location of the content to include when the vNode is seen as a parent container. This is a special case which was made necessary when implementing tree visualization : a node in a tree data structure is both a child and a parent!
{el, sel, data : {slot : MY_SLOT}, children: [{el, sel, children: [], data : {slot : MY_SLOT}}]}
is a validvNode
{el, sel, data :{}, children : [{el, sel, data : {slot : MY_SLOT}, children: [{el, sel, children: [], data : {slot : MY_SLOT}}]}]}
is not a validvNode
vTree transcription
- In a
vNode
context,<slot name="attributes">
None
</slot>
would correspond to{children : [none], sel:'div', data : {slot : 'attributes'}}
, wherenone
is thevNode
corresponding to
None

. - a vNode featuring an unnamed slot is for instance
{..., data : {slot : undefined}, ...}
or{..., data : {}, ...}
- this
{..., data : {slot : ''}}
is a valid named slot
Edge cases
cf. tests.
There are a number of edge cases, occurring from the complexity of slotted merge. We sum them up here as a reminder :
- named slot whose associated name is an empty string (to avoid, unless you have a very good reason)
- named slots for children content, but no matching slot on parent container
- parent container is a text vNode (to avoid as well, unless a good reason)


--- layout: post title: Google+ gets update for iPhone and a new iPad version | iPhone Atlas - CNET Reviews categories: [] tags: - g - geek - google status: publish type: post published: true meta: _original_post_id: '' _original_import_author: John Duprey author: ---
It's about time they got an iPad app!


Particle swarm optimisation
Particle swarm optimisation (commonly abbreviated as PSO) is an optimisation technique inspired by the idea of bee swarms searching for nectar. PSO can be seen as multi-agent hill-climbing, where agents communicate their position and adapt their orientation on the basis of a mix of their own position and the positions of others.
Presented by Lecturer.
|
Slides T.B.P.
|
Screencast Not available.
|
Assignment Not this year.
|
Literature
Key
- “Particle swarm optimization; an overview” Poli et al. (2007) [scholar, lib]
Support
- Wiki's page on PSO.
- “Particle swarm optimization (Enc. of Machine Learning)” J. Kennedy et al. (2011) [scholar, lib]
- “Particle swarm optimization” Venter et al. (AIAA journal) (2003) [scholar, lib]
- “Particle swarm optimization; developments, applications and resources” Eberhart et al. (2001) [scholar, lib]
- “Empirical study of particle swarm optimization” Eberhart et al. (1999) [scholar, lib]
Demo
-
Netlogo offers a simple PSO demo in its sample library which is included in Netlogo's installation.


| 014:027 Khan | : |
Allah will keep firm those who believe, with the word that stands firm in this world (i.e. they will keep on worshipping Allah Alone and none else), and in the Hereafter. And Allah will cause to go astray those who are Zalimun (polytheists and wrong-doers, etc.), and Allah does what He wills. |
| 014:027 Maulana | : |
Allah confirms those who believe with the sure word in this world's life and in the Hereafter; and Allah leaves the wrongdoers in error; and Allah does what He pleases. |
| 014:027 Pickthal | : |
Allah confirmeth those who believe by a firm saying in the life of the world and in the Hereafter, and Allah sendeth wrong-doers astray. And Allah doeth what He will. |
| 014:027 Rashad | : |
GOD strengthens those who believe with the proven word, in this life and in the Hereafter. And GOD sends the transgressors astray. Everything is in accordance with GOD's will. |
| 014:027 Sarwar | : |
God strengthens the faith of the believers by the true Words in this world and in the life to come. He causes the unjust to go astray and does whatever He pleases. |
| 014:027 Shakir | : |
Allah confirms those who believe with the sure word in this world's life and in the hereafter, and Allah causes the unjust to go astray, and Allah does what He pleases. |
| 014:027 Sherali | : |
ALLAH strengthens the believers with the word that is firmly established, both in the present life and in the Hereafter; and ALLAH lets the wrongdoers go astray. And ALLAH does what HE wills. |
| 014:027 Yusufali | : |
Allah will establish in strength those who believe, with the word that stands firm, in this world and in the Hereafter; but Allah will leave, to stray, those who do wrong: Allah doeth what He willeth. |
Concepts/Themes Covered: أركان الإسلام > التوحيد > الكافرون > صفات الكفار Pillars of Islam> Islamic> The Disbelievers> The Characteristics of the Disbelievers أركان الإسلام > التوحيد > المكذبون الظالمون > صفاتهم Pillars of Islam> Islamic> The Oppressive Liars> Their Characteristics الإيمان > الغيب > النار > أصحاب النار Faith> The Unseen World> Hell-Fire>Hell Fellows الإيمان > المؤمنون > حياتهم في الدنيا والآخرة Faith> The Believers> Their Life in the World and the hereafter الإيمان > المؤمنون > ما أعده الله لهم Faith> The Believers> What has Allah Prepared for them الإيمان > المؤمنون > وعده إياهم Faith> The Believers> His Promise to them العمل > العمل الصالح > الاستقامة في العمل Action(Work)> The Good Deeds>Honesty at Work الإنسان والعلاقات الأخلاقية > الأخلاق الحميدة > الاستقامة Man and The Moral Relations> Good Morals>Honesty
This tool uses eight English parallel translations for the Holy Quran imported from Mr. Clay Smith. You can also visit Qurany Concepts for browsing the Quran themes or topics. If you want to search the Holy Quran for keywords, please visit Qurany Keywords.


Home
Contact
Tutorial: how to create a static website using HTML & CSS
This is a h2 title
This is a h3 title
This is a h4 title
This is the first paragraph!
This is the second paragraph!
This is the third paragraph!
Some text in bla bla bla...


ofSerial
ofSerial provides a cross platform system for interfacing with the serial port. You can choose the port and baud rate, and then read and send data. Please note that the port must be set manually in the code, so you should be clear what port your device is on. For example, Arduino users should check the arduino app to see what port their device is on. Alternatively the ofSerial class can attempt to communicate with the first available device it finds.
ofSerial methods
available()
int ofSerial::available()
The available method is useful when you want to know how many bytes are available in the serial port. For instance, if you only want to read when there are 8 bytes waiting for you, you would do:
if(device.available() > 8) {
device.readBytes(buffer, 8);
}
This is useful when you know how long a complete message from a device is going to be.
drain()
void ofSerial::drain()
drain is only available on OSX and Linux and is very similar to flush(), but blocks until all the data has been written to or read from the serial port.
enumerateDevices()
void ofSerial::enumerateDevices()
Prints out the available serial devices: On mac and linux it might list something like this:
device 0 - cu.modem
device 1 - cu.USA19H181P1.1
and on a pc, like:
device 0 - COM2
device 1 - COM4
flush(...)
void ofSerial::flush(bool flushIn=true, bool flushOut=true)
Clears data from one or both of the serial buffers. Any data in the cleared buffers is discarded. flushIn = true clears the incoming data buffer and fluhOut = true clear the outcoming data buffer.
getDeviceList()
ofSerialDeviceInfo ofSerial::getDeviceList()
This returns a vector of ofSerialDeviceInfo instances with the devicePath, deviceName, deviceID set.
listDevices()
void ofSerial::listDevices()
This lists out all the available serial devices to the console or standard output. On OSX and Linus this will return all the devices listed in /dev tty and cu, so you might want to compare it against a list of devices that you're expecting if you want to use it to dynamically connect to a device.
readByte()
int ofSerial::readByte()
Reads and returns a single byte from the requested device.
ofSerial mySerial;
mySerial.setup(0, 9600);
int myByte = 0;
myByte = mySerial.readByte();
if ( myByte == OF_SERIAL_NO_DATA )
printf("no data was read");
else if ( myByte == OF_SERIAL_ERROR )
printf("an error occurred");
else
printf("myByte is %d", myByte);
readBytes(...)
int ofSerial::readBytes(unsigned char * buffer, int length)
Tries to read 'length' bytes from the connected serial device. In some cases it may read less than 'length' bytes, so for reliable reading of >1 bytes of data the return value must be checked against the number of bytes requested, and if fewer bytes than requested were read then the call must be tried again.
This function should only be called when Serial.available() is reporting >0 bytes available.
An example of how to reliably read 8 bytes:
// we want to read 8 bytes
int bytesRequired = 8;
unsigned char bytes[bytesRequired];
int bytesRemaining = bytesRequired;
// loop until we've read everything
while ( bytesRemaining > 0 )
{
// check for data
if ( serial.available() > 0 )
{
// try to read - note offset into the bytes[] array, this is so
// that we don't overwrite the bytes we already have
int bytesArrayOffset = bytesRequired - bytesRemaining;
int result = serial.readBytes( &bytes[bytesArrayOffset],
bytesRemaining );
// check for error code
if ( result == OF_SERIAL_ERROR )
{
// something bad happened
ofLog( OF_LOG_ERROR, "unrecoverable error reading from serial" );
// bail out
break;
}
else if ( result == OF_SERIAL_NO_DATA )
{
// nothing was read, try again
}
else
{
// we read some data!
bytes_remaining -= result;
}
}
}
readBytes(...)
int ofSerial::readBytes(unsigned char *buffer, int length)
This reads bytes from the serial buffer into the buffer pointer passed in:
unsigned char* buf = new unsigned char[4];
device.readBytes(buf, 4);
// do something with buf
delete [] buf; // clean up
You can also use an array like so:
unsigned char buf[4];
device.readBytes(&buf[0], 4);
Be aware that the type of your buffer can only be unsigned char. If you're trying to receieve ints or signed chars over a serial connection you'll need to do some bit manipulation to correctly interpret that values.
setVerbose(...)
void ofSerial::setVerbose(bool bLoudmouth)
Enable or disable ofSerial messages and errors being sent to the console.
setup()
bool ofSerial::setup()
Attempts to setup the first available device at a baud rate of 9600.
ofSerial mySerial;
if( mySerial.setup() ){
printf("serial is setup!
");
}
setup(...)
bool ofSerial::setup(string portName, int baudrate)
Opens the serial port, with the given name and baud rate. On mac and linux, it might look like:
ofSerial mySerial;
mySerial.setup("/dev/cu.USA19H181P1.1", 9600);
and on a pc, like:
ofSerial mySerial;
mySerial.setup("COM4", 9600);
setup(...)
bool ofSerial::setup(int deviceNumber, int baudrate)
Opens the serial port based on the order in which is listed and sets the baud rate. The code bellow would open the first serial device found by the system:
ofSerial mySerial;
mySerial.setup(0, 9600);
writeByte(...)
bool ofSerial::writeByte(unsigned char singleByte)
Writes a single byte to the connected serial device. Check the return value to be sure the data was written.
ofSerial mySerial;
mySerial.setup(0, 9600);
unsigned char myByte = 225;
bool byteWasWritten = mySerial.writeByte(myByte);
if ( !byteWasWritten )
printf("byte was not written to serial port");
writeBytes(...)
int ofSerial::writeBytes(unsigned char * buffer, int length)
Writes a string of bytes to the connected serial device. As with readBytes() the return code should be checked and the call to writeBytes() repeated with the remaining data until all bytes have been written.
ofSerial mySerial;
mySerial.setup(0, 9600);
int numSent = mySerial.writeBytes("Hello World");
// numSent is how many bytes written; for example if numSent
// is 3 then "Hel" has been written and the call should be retried
// with "lo World" to complete the write.
writeBytes(...)
int ofSerial::writeBytes(unsigned char *buffer, int length)
This writes bytes into the serial buffer from the buffer pointer passed in:
unsigned char buf[3] = {'o', 'f', '!'};
device.writeBytes(&buf[0], 3);


{% comment %} This represents a course within a bundle and is used on the bundle landing page to show a course within the bundle. {% endcomment %}


Tae Soo Kim
KAIST
Seungsu Kim
Yoonseo Choi
Juho Kim
Page not found :(
The requested page could not be found.


models may have lots of behavior that isn’t related, so it probably doesn’t belong in the model layer -> usually a result of pushing behavior from the controller to the model
create a concerns folder that lives in the models folder
possibly namespace the module in a class folder if only used for a specific model
change the autoload config path to include the concerns folder
include module in the model
123456789101112131415161718
#namespace in class if only going to use it in that classclassUsermoduleAuthenticationextendActiveSupport::Concern#this gets scoped to the context of the class when includedincludeddohas_secure_passwordend#this makes these class methods instead of instance methodsmoduleClassMethodsdefauthenticate(username,password)#codeendendendend
in rails 4, the concerns folder will be created by default
“This approach to breaking up domain logic into concerns is similar in some ways to the DCI notion of Roles”
Service Objects
we are in the habit of pushing behavior from the controller to the model, but often the behavior in the controller is nicely isolated. Sometimes we need a new kind of object commonly referred to as a service object.
the service object gets it’s own folder in the app folder and looks like this
this puts all the action related behavior in one place and keeps the model focused on validations, accessibility, etc.
likely works best when we have a complex controller action that interacts with a complex model
testing:
create a services level dir and and easily test the class directly similarly to how one would test the models
It is common to create apps that heavily depend on user generated content. David is an attempt to build the prototypical user generated content app. One that we will be able to reuse in the future.
The structure on creating such an app was challenging for me to conceptualize. I would anticipate that we will use David most of the time for image submissions only, but juggling multiple MIME type submission is the real challenge and therefore would be the greatest benefit to solve. Given this, how should this application be structured? Should the individual types (images, videos, text, audio, etc) inherit from a centralized submission class? Should that centralized class be a module that is included in each of the individual classes? Where would one build out the features for a custom app?
After discussing with Kyle for a while, he decided that it was probably safest to build an add-on to CarrierWave that would accomplish this for us. This would leave the uploaders available for customization, while keeping the classes more pristine.
so I jumped right into trying to call SDK methods without understanding how the SDK was initialized.
the documentation is pretty clear, but I had just been able to call on the SDK in previous projects, so I didn’t understand what was different. Carrot-facebook had taken care of this under the hood.
I don’t have a firm handle on event listeners, but this is a good lesson to get my feet wet.
 I loaded a library to the vendor folder, but it wasn’t loading. I tried specifying the route even though I know that the asset pipeline picks up everything in the vendor folder.
ended up being the .min extension. Once I explicitly specified the extension (.min.js), it found it.
kaminari -> uses several partials to render the different options, need to override partials to customize the behavior. Because of this technique, Kaminari might be a wee bit slower than will_paginate. ActiveAdmin uses Kaminari.
it appears that the most dependable implementation is with flash. See 4 different ways and ZeroClipboard(https://github.com/jonrohan/ZeroClipboard/blob/master/docs/instructions.md) which I eventually settled on. There is a nice step-by-step tutorial by David Walsh.
put the flash file in the public folder rather than the asset path since it will remain untouched rather than serve dynamic content.
completed
one central controller with meta programmed methods to redirect to the proper path using service
models that inherit from a specific media type
override file column on submissions model -> just made it optional for text, can I make that only the case for text?
do for images and video what I did for text
create a whitelist of acceptable uploads per type / identify the type by the extension?
Facebook
create credentials table with type, uid, access token, and user_id from Omniauth
pull photos with javascript like in oakley
authenticate with button and pull up a gallery of FB photos
select which one you want and store the URL
instagram gallery of photos
-testing
- once photos selected, they need to be saved to DB under UrlSubmission
- reassigning the token for FB auth
Goals
understand how version works
testing js with jasmine
gallery (what’s been submitted and saved to DB)
highest rated (rating system)
/most recent (reverse time)
/pagination
see friend’s photos (hold off)
copy url from submission show page functionality
https://github.com/jonrohan/ZeroClipboard
rating system
limit frequency
time gate
winner selection lib (maybe in the end, randomly, highest rated?)
Deficiencies
no photo resizing thus far
lacks integration/JS/Ajax. limited unit tests.
distinguish types by white labeling extensions per type, just one white labeling group right now for all types
eval$(rbenvinit-)exportPOW_DOMAINS=dev,test#because I loaded pow with brew and not manually it was a different path...exportPATH="/usr/local/opt/rbenv/shims:$PATH"exportPOW_TIMEOUT=900exportPOW_WORKERS=1
added a EventTimeValidator to lib. this needed to be updated in the app config file as well so that the autoload path would pick up the changes in the lib dir.
rspec tests on valdidations
12
expect(event).to_notbe_validexpect(event.errors[:end_date]).toeq["must be after start date"]
A method stub is an implementation that returns a pre-determined value. Method stubs can be declared on test doubles or real objects using the same syntax.
Use any_instance.stub on a class to tell any instance of that class to return a value (or values) in response to a given message. If no instance receives the message, nothing happens.
12345678
describe"any_instance.stub"doit"returns the specified value on any instance of the class"doObject.any_instance.stub(:foo).and_return(:return_value)o=Object.newo.foo.shouldeq(:return_value)endend
Construct your xip.io domain by appending your application’s name to your LAN IP address followed by .xip.io. For example, if your development computer’s LAN IP address is <IP_ADDRESS>, you can visit myapp.dev from another computer on your local network using the URL http://myapp.<IP_ADDRESS>.xip.io/. via
Sweepers and caching actions
caches_action :index is all that is needed to cache an action via
cache_sweeper :event_sweeper is added to the Events controller to trigger the sweeper…
Cache sweeping is a mechanism which allows you to get around having a ton of expire_{page,action,fragment} calls in your code. It does this by moving all the work required to expire cached content into an ActionController::Caching::Sweeper subclass. This class is an observer and looks for changes to an object via callbacks, and when a change occurs it expires the caches associated with that object in an around or after filter.
also need to turn on config.cache_store = :dalli_store, ENV['MEMCACHE_SERVERS']
In the context of ActiveAdmin
We weren’t expiring the events index page, but were rather expiring the ActiveAdmin page instead. This solved the problem, but more specifically specifying the controller.
it ended up because I had installed rbenv with homebrew which meant it was in the opts directory. What a pain.
the rbenv install went pretty smoothly save for that. Used [this as a guide](http://www.bounga.org/ruby/2012/02/06/pow-using-rbenv/.
PSQL
the install went much smoother this time. I used this ref when I ran into problems.
this helped on my old air… the app installed without a hitch, but I was missing the creating of the databases.
when the psql app wasn’t active
♕ psql
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket “/var/pgsql_socket/.s.PGSQL.5432”?
after turning it on, I got this
♕ psql
psql: FATAL: database “Ajonas” does not exist
the PATH clearly isn’t right, but by adding rake db:create:all I got the app to bootup.
Bundler and Octopress reinstall
bundler wasn’t recognized because of the different ruby version. Installed the new version and gem install bundler as [advised](http://stackoverflow.com/questions/7483515/rake-aborted-no-such-file-to-load-bundler-setup-rails-3-1.
update 11/7/13
- heroku pgbackups:capture to capture the DB (make sure to specify app if you have multiple heroku apps)
- heroku pgbackups will list the backups that have been made.
Anchor in a path helper
pass it in as an option redirect_to post_path(comment.post, :anchor => "comment-#{comment.id}") -> from
Regex
remember there is no whitespacing in regex
background_\w|clicked_space not background_\w | clicked_space
Background images in mobile
need to make sure to explicity define the background image and background size for mobile
<% content_for :not_authorizeddo%> alert('You are not authorized to do that!')<% end %>#You can then use content_for :not_authorized anywhere in your templates.<%= content_for :not_authorized if current_user.nil? %>#This is equivalent to:<%=yield:not_authorizedifcurrent_user.nil?%>
Creating or updating many records at a time in rails
123456789
#creating new records["array""of""strings"].each_with_indexdo|t,i|Tile.create(:title,t)end#updating existing records["array""of""strings"].each_with_indexdo|t,i|Tile.find(i+1).update_attribute(:title,t)end
You can look for the number of instances in the DOM and update it accordingly if there are the right number. I used this when I was updating the DOM and to see if the page had 3 classes indicating that three friends had been nominated.
Need collection to lose the id requirement
12
if$('div.friend-nomination').length==3console?.log?'this has three'
Heroku console
heroku run rails console --remote <name of branch> or heroku run console -r <name of branch> for short
had a problem with getting the @media print file to recognize the sass styling that I was writing.


dojox.layout.ContentPane
As dojox ContentPane is derived from dijit ContentPane, make sure that the dijit test passes before running this test
Test relies on a php page as backend, so you need php installed on your server
Initial value
Initial value
Initial value
Initial value


Event Location:
Microsoft Offices Midtown Manhattan
1290 Avenue of the Americas
New York City, New York
Abstract:
HDInsight is the name of Microsoft’s distribution of Apache Hadoop, the essential and defining technology of the Big Data world. But why in the world would Microsoft embrace an open source technology, written in Java, and customarily run on clusters of Linux servers? Two words: Business Intelligence. HDInsight (and Hadoop in general) become far more enterprise-friendly when combined with Microsoft BI technologies like PowerPivot, Analysis Services and Power View. And then there’s SQL Server Parallel Data Warehouse, which actually blends the BI and Big Data worlds together in one product. In this session, Microsoft BI expert and ZDNet Big Data blogger Andrew Brust will introduce you to HDInsight and its developer tools, demonstrate relevant BI tools and show how they work together. He’ll also show how developers with relational database skills can make the jump into this exciting and opportunity-filled area.
Speaker(s): Andrew Brust,
Abstract:
In the last three releases, SQL Server development was enriched with new T-SQL features, such as CTE (common table extension), array of Ranking functions (ROW_NUMBER, RANK, DANGERANK, TILE), MERGE statement, OUTPUT clause, EXCEPT and INTERSECT just to name a few. For various reasons some DBA/Developers do not utilize these new features. In this session, the audience will see demonstrations of the different practical use cases where these features can make T-SQL coding more efficient. This 100% code-based demo session highlights efficiency to utilize the latest T-SQL functions over conventional methods with the same functionality. The session will cover in depth live scenarios where these features have proven performance efficiency, code re
Speaker(s): Alex Grinberg,
Abstract:
Each application and system is different, but all have a similar quality: there will be times where the systems are used more, and other times where they may appear to be sleeping. Good examples are monthly, quarterly, and yearly for financial systems and the holiday season for retail. The last thing you want to have in these time frames is your CxO standing at your desk wondering why things are slow or possibly down. Ensuring that your SQL Servers are optimally configured for those heavy usage periods cannot be done with a wing and a prayer – you need an actionable, realistic plan. This session will discuss how to guarantee that your SQL Server instances and the configurations they use are as scalable and reliable as possible.
Speaker(s): Ben DeBow,
Abstract:
Learn how to make your next SQL Server deployment or tech refresh the basis of a consolidated, elastic, self-managed SQL Server utility. This session will help you understand how to build a highly available SQL Server farm to maximize flexibility and agility while avoiding the traps that force you to SQL Server Enterprise Edition.Are you currently dealing with…• Standards that force the most expensive software stack? • High licensing and yearly subscription costs associated with vendor lock-in?• Multiple deployment models that increase project complexity and dependencies while reducing your flexibility and agility? Wouldn’t you like to...• Reduce the cost of both SQL Server licensing and infrastructure?• Have a single operational model that solves all deployment requirements?• Deploy the edition of SQL server that best solves the business problem without being forced to Enterprise Edition?
Speaker(s): Carl Berglund,
Abstract:
As every DBA knows, the one question you want to be able to answer affirmatively is “Can you recover that data?” Monitoring is critical, but monitoring methods can be imperfect. Traditional methods are difficult to set up and maintain across your entire environment, resulting in incomplete monitoring and missed alerts, so that it’s difficult to be sure of your answer to that all important question. This presentation will: • Show you how to implement a better way to monitor your database environment that is more efficient, easier to maintain, and guarantees that you never miss an alert. • Share the methodology, framework, and key syntax, so that you are certain the databases you are responsible for are always up, always backed up, and never run out of disk/file space. So that your answer to that all important question is always YES!
Speaker(s): John Abrams,
Abstract:
For many organizations, having a second data center or co-location center doesn’t make sense, financially or logistically. Typically, this would limit options for building out a disaster recovery (DR) solution. However, now with Windows Azure virtual machines and SQL Server AlwaysOn Availability Groups, you can connect your on-premise solution to a real-time secondary replica, providing read scalability and a solid DR solution. This session will demonstrate how to extend an Availability Group into Windows Azure, discussing the pros and cons as well as the cost of the solution. You will walk away with a solid understanding of AlwaysOn functionality within Windows Azure VMs, the costs and benefits of building a DR solution within Windows Azure, and how Azure-based backup and recovery can work.
Speaker(s): Joseph D'Antoni,
Abstract:
With the release of SQL Server 2012, the new SQL Server Data Tools serves as your primary development environment for building applications on top of SQL Server. SSDT plugs in to Visual Studio with tooling designed specifically for the application developer. With SSDT, developers no long need to constantly switch between VS and SSMS. In this session, Lenni demonstrates how SSDT is used to develop for (and deploy to) on-premise and Windows Azure SQL Database. You will learn how to use code navigation, IntelliSense, and refactoring with your database model, and how to design databases offline and under source control right from VS. Don’t miss out on this demo-centric information-packed session on the new generation of database tools for developers!
Speaker(s): Leonard Lobel,
Abstract:
Data modelers and designers need to understand the logical, physical, and technical differences in designing for Windows Azure SQL Databases (WASDs) and traditional on-premise SQL Server databases. In this session, we'll review the concepts that still work in both and the features that need to be tailored to each target environment. You’ll see demonstrations of the database design processes and gain best practices for model-driven development for each environment, including tool support. The session will feature a demonstration of a complete life cycle roundtrip – data model to database and back to data model – and tips and tricks for creating and maintaining WASD database designs. We’ll finish up with 10 tips for designing databases for both WASD and SQL Server.
Speaker(s): Karen Lopez,
Abstract:
Let’s face it. You can effectively do many IT jobs related to SQL Server without knowing the internals of how SQL Server works. Many great developers, DBAs, and designers get their day-to-day work completed on time and with reasonable quality while never really knowing what’s happening behind the scenes. But if you want to take your skills to the next level, it’s critical to know SQL Server’s internal processes and architecture. This session will answer questions like: - What’s different about 32- and 64-bit systems? - What are the various areas of memory inside of SQL Server? - How are queries handled behind the scenes? - What does SQL Server do with procedural code, like functions, procedures, and triggers? - What happens during checkpoints? Lazywrites? - How are IOs handled with regards to transaction logs and database? - What happens when transaction logs and databases grow or shrinks?
Speaker(s): Kevin Kline,
Abstract:
Are your SQL Servers Healthy? Are all the SQL Servers you manage, healthy running optimally and has the high availability that is expected? How do you know for sure? Have you checked on the health of your SQL Servers lately? What is a HealthCheck, and how do we perform one?  Well Pearl Knows. Robert Pearl talks about the importance of regular health checks of your SQL Server(s). We will talk about the need to create a baseline and provide some time-tested ways to determine if your SQL Servers are healthy and prove it to your managers, clients and heaven forbid, your IT auditors. Using various tools and scripts, you will come out of this session feeling much better :-) Session Level: Beginner Robert Pearl Speaker photo Robert Pearl, President of Pearl Knowledge Solutions, Inc., SQL MVP/SME, solutions-oriented Senior DBA with 12+ years of experience. He's a SQLCommunity/SQLSaturday evangelist/promoter and maintains his regular b
Speaker(s): Robert Pearl,
Abstract:
A practical way to derive business value from big data is to micro-target customers, but where do you begin? In this session, we examine real data from one of the nation's largest cable TV providers and combine it with data from the 2010 census and other data sources. Then we walk through a demonstration of how to use Hadoop and the Microsoft BI stack with this integrated data to develop powerful analytics quickly and easily. We demystify the process of working with big data by showing you first how to gather and load the data into Hadoop, and then how to extract a subset of that data and apply data visualization to reveal insightful patterns that you can use to connect more effectively with customers. Co-presented with Joey D'Antoni
Speaker(s): Stacia Varga,
Abstract:
One of the primary skill sets most database professionals are initially required to “master” is the art of proper indexing in our databases. We learn early on that an effective indexing configuration will go further in making our databases perform efficiently than probably any other single tuning technique. What’s not so commonly discussed though are the varying approaches one may wish to utilize when indexing your SQL Server enterprise data warehouse. This session will hopefully cause you to take a good look at your current indexing to see if indeed it could be operating even more efficiently.
Speaker(s): Troy Gallant,
Abstract:
This session will discuss new features and improvements in SQL Server 2014 which is the next release of SQL Server. Topics will include In- Memory database engine, Always-On Improvements, Business Intelligence improvements and Cloud Enhancements.
Speaker(s): Ashish Sharma,
Abstract:
Sure, your SQL Server is up and running. Is it healthy? Is it performing the best that it can? Where are your performance bottlenecks? In an emergency, can you objectively demonstrate where a performance problem lies? This dynamic dialog session will present a solid process for checking your environment's overall health and performance levels as well as solutions for common problems. Some of the items focused on include dynamic management views (DMVs), Windows Perfmon, and disk performance tools such as IOMeter and SQLIO.
Speaker(s): David Klee,
Abstract:
In this session, we will start by covering an overview of server and database auditing capabilities of SQL Server 2012. The session will largely focus on the specifics of using the SQL Server Audit feature, and we will step through a demonstration on configuring, maintaining and troubleshooting SQL Server Audit for server and database events.
Speaker(s): Timothy McAliley,
Abstract:
Many corporations are composed of small divisions located in countries throughout the world. While you might be the lead DBA for your corporation, there are several other employees who have the keys to the kingdom. This presentation will review techniques on how to prevent and/or audit data and schema changes. Coverage: 1 – Granting correct user access is vital. 2 – DML triggers to keep a DATA audit trail. 3 – DDL triggers to keep a SCHEMA audit trail. 4 – Preventing unwanted DATA modifications. 5 – Preventing unwanted SCHEMA changes. 6 – Preventing table TRUNCATIONS. 7 – LOGIN triggers to control who, what, and when. 8 – Change data capture (CDC) an alternative to triggers.
Speaker(s): John Miner,
Abstract:
Did you love "Bill Nye, the Science Guy" when you were a kid? Or maybe you were a MacGyver fan? Did you take apart your Mom's toaster or your Dad's alarm clock just to see how it ticked? Ever wonder how that database you built or support works behind the scenes? SQL Server Databaseology 201 is the science concerned with the study of SQL Server databases and their structures. This session will explore some of the deep inner workings of a SQL Server databases. The attendee will walk away with a deeper understanding of how SQL Server databases work which would allow them to build better and faster databases.
Speaker(s): John Morehouse,
Abstract:
ETL (Extract, Transform Load) processes are fundamentally important in any data warehouse environment, and there are many different ways in which to develop the components. In this session I will share the 10 basic principles I follow when developing ETL processes, and also show how the different choices can affect performance. Following these simple guidelines have resulted in many successful projects and happy customers. I'm sure it will work for you too!!
Speaker(s): Martin Schoombee,
Abstract:
We all have to deal with applying some sort of update to Windows, SQL Server, and/or hardware. Keeping things up to date is crucial for supportability, not to mention other things like security, performance, and stability. Since patching often involves downtime, you need to be careful not only what you apply to avoid problems, but also find ways to minimize the impact to the business and end users. This session will cover topics such as how to approach patching including what changes you should and should not consume, features that may help you automate or script patching, and developing your own long term patch management strategy.
Speaker(s): Allan Hirt,
Abstract:
Explore some of the mistakes and misconceptions DBAs tend to have about SSIS. Also look at the performance and scalability of ETL vs ELT with real world examples and sample code.
Speaker(s): Paul Rizza,
Abstract:
This session focuses on error handling in SQL Server Integration Services 2012. Different techniques and strategies will be introduced for error handling in control flow, data flow, and script tasks as well as how to dynamically handle errors.
Speaker(s): David Dye,
Abstract:
Business Intelligence Markup Language is a game-changer. It provides a powerful mechanism to automatically create SSIS packages. The output of a Biml file is the same package you'd create using the UI, but Biml is exponentially faster and easily reusable. Come learn 1) basics of Biml 2) automating SSIS development and 3) creating packages dynamically from metadata.
Speaker(s): Samuel Vanga,
Abstract:
How SQL Server performs I/O How is SQL Server really accessing the data and log files on the disk? What's done asynchronous and what's synchronous and what impact does that have on our queries and DML statements. Which impact have features like database mirroring and replication, what's different when SQL Server is starting up. Which I/O Subsystems (including SSD) are best for which type of data and what's the impact if you choose a different one. Which files can be placed on the same volume and which should not.
Speaker(s): Thomas Grohser,
Abstract:
The presenter will consider different architectures to move data across environments during the software development life-cycle. Whether you start from scratch working with XP, or you have to establish processes in already existing organization working in waterfall, whether the data to move is 1 MB or terabytes, the presenter will present ways to handle the tasks and outline the cons and pros of each approach.
Speaker(s): Virginia Mushkatbat,
Abstract:
As a SQL Server DBA I see my role having 2 main focuses. First is to protect the data and second is to ensure performance is maximized. More often than not companies forget about data security when they focus on performance tuning. In this presentation I will mention a few cases where encryption could have saved a lot of hassle. I will then demo a method that can be used to "index" commonly searched on encrypted values (ex: SSNs, Credit Card, etc) helping reduce the impact on the performance of a query.
Speaker(s): Chris Bell,
Abstract:
This session will investigate the benefits of package and logging management framework templates. Then we will move on to adding data connectors to your template packages and building these connectors into package configurations that use a common table to store all your connections and how this will save you time and effort. Then finally we will explore some of the useful things you can do with package configured variables
Speaker(s): Daniel Bowlin,
Abstract:
We all know that backups are important. But are we building a backup strategy that can recover in a manner that meets business needs? All too often, we plan a backup strategy without a recovery strategy. In this session, veteran DBA Mike Hillwig will start with understanding the recovery strategy and work toward implementing the right backups to meet that recovery strategy. He'll also set the record straight around some very common myths around database recovery and backups.
Speaker(s): Mike Hillwig,
Abstract:
SQL Server databases have indexes to help applications and reports run with the best performance. But, did you know that too many indexes or the wrong ones can actually hurt performance? Do you know what a clustered index is? What a non-clustered index is? How SQL Server actually uses indexes to help return the correct data? Attend this session to learn the basics about indexes and the answers to your indexing questions.
Speaker(s): Kathi Kellenberger,
Abstract:
SSRS 2012: Having just completed a PRACTICAL dashboard to answer JUST this exact question, we shall be looking at how to create a reporting tool that will provide YOUR management with all their answers. We shall be focusing on the plethora of information that may be reaped from Dynamic Managment Views (DMV) and see how KPI's may be incorporated into the mix.
Speaker(s): Steve Simon,
Abstract:
New version of the popular PowerShell+SQL Server presentation (presented in over 6 SQLSaturdays User Group events). PowerShell is a command-line scripting language primarily designed for system administration development. Unlike VBScript or DOS batch files, PowerShell is built upon the .NET Platform which makes it customizable and extensible. This introductory session will show the new PowerShell 3.0 language scripts and how it can be used for SQL Server administration (using SMO WMI providers) and development (ADO.Net OLEDB providers).
Speaker(s): SB Chatterjee,
Abstract:
We are going to examine a variety of oopsies MANY developers fall prey too - some obvious, some pretty subtle and some down right sneaky! Lots of code examples with the bad AND good code presented. I GUARANTEE that you will find things here that will either prevent you from getting bad data, throwing unwanted errors or vastly improving your database application's performance. I have given this talk over FORTY times now and it is always very highly rated!
Speaker(s): Kevin Boles,
Abstract:
Great database performance starts with great database design. During the database design process it is important to select your datatypes wisely. The wrong choices will often lead to wasted space, increased response times, and less stability. Additionally you run the risk of having your design not scale as well as it should. Leave this session armed with the knowledge you need to help your databases perform at their peak efficiency.
Speaker(s): Thomas LaRock,
Abstract:
When choosing the appropriate SQL Server HA/DR solutions, it is important to understand the SQL Server Transaction Log as it affects any solution you choose. In this session, we will look at transaction log basics, how logging and recovery works and how it affects all of the HA/DR solutions available in SQL Server. You'll be surprised to know that the transaction log is the most important part of your database.
Speaker(s): Edwin Sarmiento,
Abstract:
This code filled session examines several additions to recent versions of SQL Server. These tools allow you to perform minimally invasive surgery on your code and gain performance! Learn how the APPLY operator works; iterate through incoming data just once with the MERGE statement; “slice and dice” your data with the Windowing (ranking) functions; re-write your multi-statement table-valued functions to inline functions to help the optimizer and speed up your queries; learn how to create a grouped delimited list – without loops!
Speaker(s): Wayne Sheffield,
Abstract:
In recent years Data Careers have expanded beyond the conventional role of a DBA. This is due to the ever expanding amount of data, a larger variety of tools and the need for business to use data to drive their own performance goals. This session will provide an overview of Data Careers, a discussion of personal traits and life stages that may align with different Data Careers. The new Career areas such as Data Science, Analytics and Data Journalism will be reviewed. In addition, the attendees will be provided with a template that will enable them to make more strategic career-related decisions.
Speaker(s): Melissa Demsak,
Abstract:
Do you have users complaining that applications are running "too slow"?  This is a fun, fast-paced walkthrough of the most effective strategies for query tuning. We'll investigate the most common causes of sub-optimal queries (and some quite unusual ones) while building a foundation for solving any optimization problem that the application throws your way!
Speaker(s): Edward Pollack,
Abstract:
If you have not experienced building BI solutions with Excel 2010, be amazed at what you can do in Excel 2013. In this session we will use PowerPivot, Power View, Quick Explorer, and other great features in Excel to build an Excel 2013 BI solution. Microsoft has went "all-in" with Excel as their primary BI client. If you want to get a first hand look at using it more fully, you will be amazed. I know I was.
Speaker(s): Steve Hughes,
Abstract:
Merge Replication allows you to replicate data bi-directionally. It is designed for occasionally connected data islands which need to aggreate data centrally, and vice versa. This session covers merge replication internals, conflicts, resolvers including the business logic and stored procedure resolver, dynamic and static filtering and how to handle identity ranges.
Speaker(s): Hilary Cotter,
Abstract:
Learn all you wanted to know about index design but were afraid to ask. This session focuses on physical index structures as well as how the server chooses indexes. Note: Join optimization is a separate session
Speaker(s): Jeffrey Garbus,
Abstract:
This is a lecture and demonstration on how to deploy highly available SQL Server instances in the Amazon EC2 cloud presented by Microsoft Cluster MVP David Bermingham. Starting with preparing the EC2 environment including configuring the VPC, routing and security, Bermingham then continues on and shows you how to configure both AlwaysOn Availability Groups as well as AlwaysOn Failover Clusters for cross availability zone failover.
Speaker(s): David Bermingham,
Abstract:
With SQL Server 2012 released and going strong, we’re all wanting the latest and greatest, high performing, SQL Engine sitting on our servers. How we do that is another question. How do you get a weekend of downtime? Do you like convincing the business you need it? I don’t and that is why we’re going to look at methods to upgrade or migrate SQL Server 2005, SQL Server 2008 and SQL Server 2008 R2 up to SQL Server 2012 with as little downtime as possible - minutes. In this session, we’ll see how mirroring, log shipping and even replication, can make us look like DBA Rock stars at upgrade time.
Speaker(s): Ted Krueger,
Abstract:
In this presentation, I'll compare the new Tabular Model in SSAS 2012 with the more "traditional" multidimensional OLAP in SSAS. I'll show which of the 2 approaches works better in specific scenarios, and why you'd want to use one method over the other for certain applications. If you are trying to decide which approach to use, or if you are an experienced OLAP developer who wants to know the pros and cons of moving to the Tabular Model, this presenation is for you!
Speaker(s): Kevin Goff,
Abstract:
The AlwaysOn Availability Groups feature is a high-availability and disaster-recovery solution that provides an enterprise-level alternative to database mirroring.
Speaker(s): George Walters,
Abstract:
A database is a very resource intensive by its very nature and one of the most resource intensive applications you will ever virtualize. If best practices are not followed, the database will never perform as needed. This presentation will teach the DBA best practices for Virtualizing SQL Server databases with a heavy emphasis on VMware. Topics include Design, Storage, Processor, Memory Network considerations
Speaker(s): Michael Corey,
Abstract:
We've heard all the awesome Cloud deployment stories, but DBAs can use the Cloud too! Looking for a way to test your backups? Need to find an offsite location as a part of a DR plan? What about defining your backup retention scheme? You can handle these common administration problems by utilizing Cloud services in combination with PowerShell automation. In this session, we'll review the basic Cloud architecture of both Azure and Amazon, as well as some specifics as to the components of the solution.
Speaker(s): Matt Velic,
Abstract:
This session will provide an introduction to Transact-SQL using a stored procedure to solve a Sudoku puzzle as an example. Language elements covered will include use of variables, conditional logic, looping, and recursion.
Speaker(s): Kevin Feit,
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/profile/view?id=81593638
Contact: https://www.sqlshack.com/author/edward-pollack/
Ed Pollack has over 20 years of experience in database and systems administration, which has developed his passion for performance optimization, database design, and making things go faster. He has spoken at many SQLSaturdays, 24 Hours of PASS, and PASS Summit. This led him to organize SQLSaturday Albany, which has become an annual event for New York’s Capital Region. Sharing these experiences with the community is a top priority, and encouraging everyone to take the leap into public speaking and engaging others, a passion. In his free time, Ed enjoys video games, traveling, cooking exceptionally spicy foods, and hanging out with his amazing wife and sons.
David is a Sergeant with the Cape Coral Police Department and currently works as a database administrator and developer in the Administrative Services Division. He began his career with the police department in 1990 in the patrol division and worked various assignments until being promoted to Sergeant in 1998. Based on his education and experience David was assigned to his current position in 2002 and is responsible for database administration, software integration, and development for public sa
Contact: http://sqlrus.com
John Morehouse is currently a Database Architect/Engineer with Farm Credit Services of America in Omaha, Nebraska. He is one of the leaders of the Omaha SQL/BI User group and and a frequent speaker at SQLSaturday's as well as other conferences. In his spare time, you can find John running after one of his two sons or working on his 113 year old house.
LinkedIn: http://www.linkedin.com/in/karenlopez
Contact: http://datamodel.com
Karen Lopez is a Sr. Project Manager and Architect for InfoAdvisors. A frequent speaker at conferences and local user groups, she has 20+ years of experience in project and data management on large, multi-project programs. Karen is a chronic volunteer, a Data Platform MVP, and an active advocate for science, technology, engineering, and mathematics (STEM) education and data quality. Karen’s presentations are known for their lively and interactive approach to learning. Her motto: “Love Your Data!”
LinkedIn: http://www.linkedin.com/in/kekline/
Contact: http://blogs.sentryone.com/author/kevinkline
Kevin Kline is a database and industry expert serving as Principal Program Manager at SentryOne, the industry leading SQL Server database tools vendor. A Microsoft SQL Server MVP since 2003, he is a founder and former president of PASS. Kevin is an author of many books, blogger, columnist, and popular international speaker. Kevin’s best known book is the best-selling SQL in a Nutshell and contributes monthly to Database Trends Applications magazine. He tweets at @kekline and blogs at http://Blogs.SQLSentry.com/Author/KevinKline.
LinkedIn: http://www.linkedin.com/pub/samuel-vanga/60/385/551
Contact: http://SamuelVanga.com
Sam Vanga helps business people solve their data problems and enables them make data-driven-decisions. His specialties include data integration, data warehouse and database development, and BI design. Sam blogs at http://SamuelVanga.com.
LinkedIn: http://www.linkedin.com/in/martinschoombee
Contact: http://www.martinschoombee.com
Martin is an independent Business Intelligence Analytics consultant, helping customers make sense of their data for more than 15 years.
Contact: http://mask-me.net
Virginia Mushkatblat is currently a founder of Hush-Hush, a data masking company. She wrote her first computer program at the age of 14 and has been in technology ever since, progressively rising through the ranks and trying on different hats including database architecture, development, security and operations. She has worked for Startups and Fortune 100 companies in finance, entertainment, e-commerce, internet advertisement, manufacturing, and communications industries and dealt with both heavily transactional and BI applications.She holds B.S. and Masters Degrees in Engineering and in Computer Science, originated a couple of patents, and currently teaches databases and multimedia to graduating seniors in CSUN, her Alma Mater.
Contact: http://www.zdnet.com/blog/big-data
Andrew J. Brust is the Senior Director, Market Strategy and Intelligence at Datameer and writes a blog for ZDNet called quot;Big on Dataquot; (bit.ly/bigondata). Andrew is co-author of quot;Programming Microsoft SQL Server 2012quot; (Microsoft Press); an advisor to the NY Technology Council; serves as Microsoft Regional Director and MVP; is conference co-chair of Visual Studio Live!; and writes Visual Studio Magazine#39;s quot;Redmond Reviewquot; column.
LinkedIn: https://www.linkedin.com/profile/view?id=176471amp;trk=nav_responsive_tab_profile
Contact: http://mssqlperformance.blogspot.com/
Jeff has been consulting on and performing technical training for MS SQL Server since 1989, Version 4, on OS/2. Since then, he has worked extensively with each release of the product, specializing in performance and tuning, from concept through legacy system, on systems of all sizes, from small start-up company applications to multi-terabyte data warehouses. In addition to hands-on consulting, he speaks at SQLSaturdays several times/year, has a youtube channel with free training, and has written 20 books on database management systems. His latest book is "Transact SQL the Definitive Guide."
Contact: http://www.troygallant.com
Troy has been a SQL Server professional for over 18 years, filling various roles as analyst, developer, and for the last decade, DBA. As a regular speaker at SQLSaturdays up and down the east coast, he’s taught on a multitude of topics from disaster recovery to performance tuning to professional development. Currently residing in Jacksonville once again, he just got back from two years as Sr. DBA for the EDW of a major international insurance company in New York City.
LinkedIn: http://www.linkedin.com/in/stephenrsimon/
Contact: http://www.sqlservercentral.com/blogs/simon_says/
Steve Simon is a Database Solutions Architect with Business Knowledge Services Inc. He has been involved with database design and analysis for over 35 years. Steve has presented papers at numerous PASS Summits and PASS SQL Rallies. He is also regular presenter on the SQLSaturday circuit and he is a contributor on SQLShack.com
Hilary Cotteris a 20 year IT veteran who has answered over 20,000 questions on the forums. Some of them correctly. He specializes in HA technologies, especially replication, performance tuning, full-text search, and SQL Server Service Broker. Hilary is also an author, or contributor on a number of books on SQL Server.
Contact: http://www.aspect-consulting.com/
John Abrams, COO and Co-Founder of Aspect Consulting, Inc. John is senior Data Architect/DBA with 20+ years’ experience working with clients and their data. John’s primary focus is on database administration, performance tuning, data warehouse and data load processing design and architecture, as well as application design and architecture.
LinkedIn: http://www.linkedin.com/profile/view?id=3997984amp;trk=hb_tab_pro_top
Contact: http://joeydantoni.com
Joseph D'Antoni is a Senior Consultant and Microsoft Data Platform MVP with over 20 years of experience working in both Fortune 500 and smaller firms. He is a Principal Consultant for Denny Cherry Associates and lives in Malvern, PA. He is a frequent speaker at major tech events like Microsoft Ignite, PASS Summit, and Enterprise Data World. He blogs about all topics technology at joeydantoni.com. He believes that no single platform is the answer to all technology problems. Joseph holds a BS in Computer Information Systems from Louisiana Tech University and an MBA from North Carolina State University, and is the co-author of the Microsoft book "Introducing SQL Server 2016”.
LinkedIn: https://www.linkedin.com/profile/view?id=33119347amp;trk=hp-identity-name
Contact: http://www.danielbowlin.com/
I am a data integration developer at Time Warner Cable. I have been working with SQL Server technologies since the late 90s. About 6 years ago I specialized in the SQL Server BI stack. Lately I have been almost exclusively working in SSIS.
LinkedIn: http://www.linkedin.com/pub/timothy-mcaliley/10/530/787/
I am currently a Microsoft Cloud Solutions Architect in the Washington, DC area. Previously, I was a Microsoft Technology Solutions Professional (TSP), a Microsoft Account Technology Strategist and a SQL Server Premier Field Engineer. Prior to Microsoft, I was a Technical Trainer and DBA in the Enterprise Security Group at Symantec . I have been in IT for over 20 years. My particular interests are IT operations, IT auditing, IT audit frameworks, IT service management (ITSM), ITIL, information security, project management, and database/application tier high availability solutions. I also co-run the Northern Virginia SQL Server User Group ( @novasl) and also co-run the Azure Datafest events.
LinkedIn: http://www.linkedin.com/in/dataonwheels
Contact: http://www.dataonwheels.com
Steve Hughes is the Director of Consulting at Pragmatic Works. In his current role, Steve manages the consultant team at Pragmatic Works and directs implementation of our cloud practices for customers. He focuses on team development and company growth with this role. In his previous role as a Principal Consultant Lead, he focused designing solutions for customers on Microsoft technologies including SQL Server, Power BI, and Azure. He has been working with technology for over 20 years with much of that time spent on creating business intelligence solutions and helping customers implement leading BI and cloud solutions. He is passionate about using data effectively and helping customers understand that data is valuable and profitable.
Contact: http://bassplayerdoc.wordpress.com
Edwin Sarmiento is a SQL Server MVP from Ottawa,Canada specializing in high availability,disaster recovery system infrastructures running on the Microsoft server technology stack.He is very passionate about technology but has interests in music,professional organizational development,leadership management matters when not working with databases.He lives up to his primary mission statement -“To help people and organizations grow and develop their full potential as God has planned for them."
Contact: http://weblogs.asp.net/sbchatterjee/default.aspx
Architect/Tech-lead in Hartford CT with over 20 years IT experience. Worked at companies like Aetna, IBM, Microsoft, UNICEF, United Technologies and State of Connecticut. Holds graduate degrees in Computer Science, Business Administration and Economics. Awarded the Microsoft MVP Award for SharePoint products 2008 thru 2013. He is active in the SharePoint StackExchange and other forums. Twitter: @sbc111 Acting Director - CT.NET Dev Group (CTDOTNET) CT Dev Startups Group (CTDEVSTARTUP).
LinkedIn: http://www.linkedin.com/in/mattvelic
Contact: http://mattvelic.com
Matt Velic is a database developer for Sanametrix in Washington, DC. When not jet setting between projects at work, you can find him at a board game, a video game, or playing a guitar.
LinkedIn: http://www.linkedin.com/in/mikehillwig
Contact: http://www.mikehillwig.com
Veteran DBA Mike Hillwig is a native Pittsburgher and resident of the Boston Suburbs. He’s a DBA Manager for a financial software company that’s owned by one of the world’s largest bank. Mike has been working with SQL Server since version 7 and has a background in infrastructure and network. Today, he manages a team of DBAs around the globe.
LinkedIn: https://www.linkedin.com/pub/kevin-feit/8/992/837
Kevin Feit is a Solution Principal with Slalom Consulting specializing in data warehousing and ETL development. He has been working with SQL Server since 1990 and is a Microsoft Certified Professional.
LinkedIn: http://www.linkedin.com/in/davidaklee
Contact: http://davidklee.net
David Klee is a Microsoft Data Platform MVP and VMware vExpert with a lifelong passion for technology. David spends his days focusing on the convergence of data and infrastructure as the Founder of Heraflux Technologies. His areas of expertise include cloud, virtualization, performance, and business continuity. David speaks at a number of national and regional technology related events, including PASS Summit, VMware VMworld, SQLBits, SQLSaturday events, and many SQL Server User Groups.
LinkedIn: http://www.linkedin.com/pub/christopher-bell/19/a08/93/
Contact: https://www.wateroxconsulting.com/
Chris Bell offers a unique view of how we live and work with data, both now and as we head into the future. Having braved many roles, lifecycles, and battles in the IT world, he has honed his DBA (Database Administration or Do 'Bout Anything) skills in Information Systems and development, focusing on SQL Server. Currently, he serves as the lead DBA at The Motley Fool. You can keep up with Chris' thoughts and technical community activities at WaterOxConsulting.com.
LinkedIn: http://www.linkedin.com/in/lennilobel
Contact: http://lennilobel.wordpress.com
Leonard Lobel (Microsoft MVP, Data Platform) is CTO and co-founder of Sleek Technologies, Inc., a New York-based development shop with an early adopter philosophy toward new technologies. He is also a principal consultant at Tallan, Inc., a Microsoft National Systems Integrator and Gold Competency Partner. Programming since 1979, Lenni specializes in Microsoft-based solutions, with experience that spans a variety of business domains, including publishing, financial, wholesale/retail, health care, and e-commerce. Lenni has served as chief architect and lead developer for various organizations, ranging from small shops to high-profile clients. He is also a consultant, trainer, and frequent speaker at local usergroup meetings, VSLive, SQL PASS, and other industry conferences. Lenni has also authored several MS Press books and Pluralsight courses on SQL Server programming.
LinkedIn: http://www.linkedin.com/in/staciavarga
Contact: http://blog.datainspirations.com
Stacia Varga is a Microsoft Data Platform MVP and SSAS Maestro with a Bachelor’s Degree in Social Sciences. A consultant, educator, author, and principal of Data Inspirations, her career spans more than 30 years, with a focus on improving business practices through technology. Since 2000, Stacia has provided consulting and education services for Microsoft's Business Intelligence technologies. As Stacia Misner, she also authored several books covering the Microsoft BI stack.
LinkedIn: https://www.linkedin.com/in/alex-grinberg-36773a6/
I have more than 20 years of IT experience. My primary focus is with the latest Microsoft technologies including .NET (VB and C#), SSRS and SSIS. I provide services in tuning, optimization, analysis and development for the creation of new applications, converting legacy technologies (SQL Server, VB.NET and C# ) and site training. I have worked for CSC, VerticalNet, IDP, LSAC , and TMNAS (to name a few) and I am currently employed with Cox Automotive. I am Apress author book "XML and JSON Recipes for SQL Server", also wrote number of articles for Simple-Talk and SQLServerCentral.com
Contact: http://blogs.lessthandot.com/index.php/All/?disp=authdirauthor=68
Ted Krueger has been working in development and database administration for over a decade. Ted currently works for a respected consulting company, Magenic Technologies as a valued Database Professional resource. He is a PASS Region Mentor, Friends of Red Gate member, SQL Server MVP and community mentor. Ted blogs and is also one of the founders of LessThanDot Technical Community
Contact: http://www.sqlha.com/blog/
Ben DeBow is a MDCBA, MCSE and MCITP focused on SQL Server consolidations, data architecture and performance tuning for organizations both large and small. Ben specializes in solving diverse and complex data and infrastructure challenges for large, global environments. Ben is a longtime member of the SQL community, volunteering the last 8 years as a SQLPass committee member, trainer and SQLPass presenter. Besides his work as a consultant, Ben is a cyclist, avid traveler and photographer.
LinkedIn: https://www.linkedin.com/pub/allan-hirt/1/b72/673
Contact: http://www.sqlha.com/blog
SQLHA, LLC founder, consultant, trainer, author, and business continuity, infrastructure, and virtualization expert Allan Hirt has been working with SQL Server since 1992 when it was still a Sybase product. He has also been clustering in Windows Server since the late 1990s when it was known as Wolfpack. Currently a dual Microsoft MVP (Data Platform; Cloud and Datacenter Management) as well as a VMware vExpert, Allan works with all sizes of customers, no matter if they are on premises or in the public cloud. He also delivers training and speaks at events over the world.
LinkedIn: https://www.linkedin.com/in/thomasgrohser/
Thomas Grohser has spent most of the past 26+ years exploring the deeper inner workings of SQL Server and its features while working for entertainment, pharmaceutical, and financial services industries. His primary focus is to architect, plan, build, and operate reliable, highly available, secure, and scalable infrastructures for SQL Server. Over the years he has managed thousands of SQL Server instances, processing trillions of rows, taking up petabytes of storage. Thomas has been a Microsoft Data Platform MVP for 9 years and has spoken regularly at conferences, SQLSaturdays, and user groups for 12 years.
Contact: http://www.dh2i.com
Carl Berglund is a senior technical business development leader with over 20 years of experience helping customers implement complex enterprise infrastructures. Prior to DH2i Berglund held senior business development roles at HP and PolyServe, where he was involved in dozens of SQL Server consolidation, virtualization, and optimization projects. As a virtualization evangelist, Carl helps customers reduce spend on overall SQL Server lifecycle costs while reducing risk.
LinkedIn: https://www.linkedin.com/profile/public-profile-settings?trk=prof-edit-edit-public_profile
Contact: http://clusteringformeremortals.com/
David Bermingham is recognized within the community as a high availability expert and has been honored by his peers by being elected to be a MVP in Clustering since 2010 and most recently has been recognized as a Cloud and Datacenter MVP. David’s work as technical evangelist at SIOS has him focused on evangelizing Microsoft high availability and disaster recovery solutions for both on premise and cloud deployments. He lives in New Jersey with his wife and three kids where he a school board member, scout leader and musical director of an 8-piece jazz band, M-Town.
LinkedIn: http://www.linkedin.com/in/thesqlguru
Kevin Boles is a SQL Server expert, working exclusively with the product since v6.5. With over 25 years of database experience and over 45,000 man hours of SQL Server engine experience, he holds many related certifications, is an MCT and was a SQL Server MVP from 2007 to 2012. Kevin has been a very successful independent consultant for over 20 years. His passion is the relational engine, especially designing, building, analyzing and tuning high-performance database applications.
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: http://www.linkedin.com/in/sqldiva/
Melissa Demsak is passionate about Data, Business and People. She’s currently a Manager of SQL Architecture at large real estate holding company. Melissa was the leader of the NJSQL User Group ‘06-‘12, PASS Summit Program Committee ’07-’10 and a PASS Regional Mentor. She’s currently on the Program Committee for the PASS BA Conference in April and leads the PASS Business Analytics Virtual Chapter.
LinkedIn: https://www.linkedin.com/in/michael-corey/
Contact: http://michaelcorey.com/
Michael is a Director Cloud Computing Evangelist for Spectrum Enterprise Navisite. In 2017, was recognized as #42 of the top 100 most influential people in the “cloud industry”. Michael's a recognized Microsoft Data Platform MVP formerly (Microsoft SQL Server MVP), recognized Oracle ACE, a recognized VMware vExpert and has worked with relational databases for over 30 years starting with Oracle Version 3. Michael is a Past President of the Independent Oracle Users Group (IOUG), A Founder of the Professional Association of SQL Server and current President of the IOUG VMware Special Interest Group. Michael is the original Oracle Press author, frequent blogger http://michaelcorey.com/, a regular columnist for the Big Data Quarterly
LinkedIn: http://www.linkedin.com
Contact: http://www.sqlservercentral.com/blogs/pearlknows/
Robert Pearl is a 5-year SQL Server MVP and creator of the award-winning database and monitoring alert system, SQLCentric. Author of the HealthySQL - Comprehensive Guide to Healthy SQL Server Performance. He’s the founder of Pearl Knowledge Solutions. As a SQL Server community evangelist, he covers local SQL Server events in the New York City area and maintains the Pearl Knows blog. Voted TOP BLOGGER in 2011.
Contact: http://www.KevinSGoff.net
Kevin S. Goff (http://www.kevinsgoff.net) is a Microsoft SQL Server MVP Database architect/developer/speaker/author Regular columnist for CoDe Magazine on .NET, SQL Server, and Business Intelligence topics Frequent speaker at community events in the Mid-Atlantic region. Host of BDBI Radio (http://www.bdbiradio.com), a weekly webcast on SQL/BI topics
LinkedIn: http://www.linkedin.com/in/sqlrockstar/
Contact: http://thomaslarock.com
Thomas LaRock is a Head Geek at SolarWinds and a Microsoft Certified Master, Data Platform MVP, VMware vExpert, and a Microsoft Certified Trainer. He has over 15 years’ experience in the IT industry in roles including programmer, developer, analyst, and database administrator.
LinkedIn: http://www.linkedin.com/pub/john-miner/a/85a/889
Contact: http://www.craftydba.com
John has over twenty years of IT experience including a Masters degree in Computer Science from the University of Rhode Island with concentrations in database technologies and programming languages. He also has Microsoft Certificates for Database Administration (MCDBA) and System Admistration (MCSA). John is currently a Senior SQL Server Developer / Administrator in charge of best practices by the IT team at Sensata Technologies.
LinkedIn: http://www.linkedin.com/in/prizza/
Contact: http://blogs.msdn.com/b/paulrizza/
Paul Rizza is a Senior Consultant at Microsoft Consulting Services (MCS), Lead on the MCS SQL Hiring Team, and has over 25 years’ experience consulting, teaching and developing on SQL Server platforms. Paul’s expertise includes ETLs, Dimensional modeling, architecting highly available SQL environments and performance tuning. Paul has an Undergraduate degree from UMBC and a Master’s degree both in Computer Science with a concentration in Database Theory from Johns Hopkins University.
LinkedIn: http://www.linkedin.com/in/WayneSheffield
Contact: http://blog.waynesheffield.com/wayne
Wayne Sheffield, a Microsoft Certified Master in SQL Server and Microsoft Most Valuable Professional, started working with xBase databases in the late 80’s. With over 25 years in IT, he has worked with SQL Server (since 6.5 in the late 90’s) in various dev/admin roles, with an emphasis in performance tuning. He is the author of several articles at www.sqlservercentral.com, a co-author of “SQL Server T-SQL Recipes”, and enjoys sharing his knowledge by presenting at SQL events worldwide and blogging at http://blog.waynesheffield.com/wayne
LinkedIn: https://www.linkedin.com/in/georgewalters
Contact: https://georgewalters.wordpress.com/
Currently a partner technical strategist, George has been solving customer needs and issues. He can translate customer pain into potential solutions. A seasoned Microsoft SQL and Azure expert, with over 20 years of experience with Microsoft SQL Server, Sybase, Oracle, and other relational databases. Specialties: Partner strategy, PreSales Engineering, Cloud Architecture, Enterprise Scalability, SQL Server performance, Business Intelligence, High Availability, Scale. I volunteer and present relevant topics at SQLSaturday and internal Microsoft events
The following is a list of sponsors that helped fund the event.


Friend Finder
Answer a few questions and we'll find you friends!
Go to Survey!
API Friends List
|
GitHub Repo


My Team
Engineer, aka the workerbee
test
ID: test
Email:
test.com
GitHub:
test.com
Intern, aka the FNG
test
ID: test
Email:
test.com
School: smart people university
Manager, aka Bossman
test
ID: test
Email:
test.com
Office Number: 1234


The cycle method is relatively simple to understand but when used in conjunction with several other methods, it becomes very powerful. The method can be called on both arrays and hashes and will simply loop through the items indefinitely and execute the pre block associated. For example:
days = %w{Monday Tuesday Wednesday Thursday Friday Saturday Sunday} days.cycle{|x| p x} => Monday Tuesday Wednesday Thursday Friday Saturday Sunday Monday Tuesday ...
This loop will continue forever (or until ctrl C is hit) unless we implement a break statement within the pre block:
days = %w{Monday Tuesday Wednesday Thursday Friday Saturday Sunday} days.cycle{|x| p x break if x = "Saturday" } => Monday Tuesday Wednesday Thursday Friday Saturday
The same would apply for a hash, but the output would be the key/value pair in the form of an array (key as element 0, value as element 1).
The beauty of cycle comes in to play when the method is used to create a new object like so:
days = %w{Monday Tuesday Wednesday Thursday Friday Saturday Sunday} days_of_week = days.cycle
Now we have a cycle object that we can apply a few different methods to. The first two we will look at are `next` and `rewind`. These methods help us step through our cycle object. If next is called on the object, it will return the next item in the cycle.
days_of_week.next => Monday days_of_week.next => Tuesday
As we continue to call next, the output will continue to change as we cycle through the items in the cycle object. If we get to the last item and call next, it will start again at the beginning of the cycle. If we find ourselves in the middle of a cycle and want to return to the beginning, `rewind` can be called on the cycle object:
days_of_week.next => Monday days_of_week.next => Tuesday days_of_week.rewind days_of_week.next => Monday
The final method we will look at that combines with the cycle method is zip. Zip can be used to combine two arrays to create several new arrays that contain the elements from each array that are in the same position. In our case, we will use it to combine our cycle object with an array. The cycle object will continue to spit out values until it has matched up with all of the items in our array:
moons = ["New", "Waning Crescent", "Third Quarter", "Waning Gibbous", "Full", "Waxing Gibbous", "First Quarter", "Waxing Crescent", "New"] days_of_week.zip(moons) {|day_moon| p day_moon} => ["Monday", "New"] ["Tuesday", "Waning Crescent"] ["Wednesday", "Third Quarter"] ["Thursday", "Waning Gibbous"] ["Friday", "Full"] ["Saturday", "Waxing Gibbous"] ["Sunday", "First Quarter"] ["Monday", "Waxing Crescent"] ["Tuesday", "New"]
Now if our moon phases actually worked like that...we may have some problems.


| | |
- builtins.object
-
- PriorityQueue
class PriorityQueue(builtins.object) |
| |
A collection of priority-item pairs.
Items are accessed and removed from highest to lowest priority.
Priorities can be represented by any data type with the `<` operator.
A **smaller** value means a **higher** priority, e.g.
priority 1 is higher than priority 2,
priority 'A' is higher than priority 'B'. |
| |
Methods defined here:
- __init__(self, pairs=None)
- Initialise the queue with a list of priority-item pairs.
If no pairs are given, the queue starts empty.
- dequeue(self)
- Remove and return the item with the highest priority.
Assume the heap is not empty.
- enqueue(self, item, priority)
- Add the item with the given priority to the queue.
Return nothing.
- front(self)
- Return the item at the front of the queue, with highest priority.
Assume the queue is not empty.
- is_empty(self)
- Return True if the queue is empty, otherwise False.
- set_priority(self, item, priority)
- Change the item's priority to the new value. Return nothing.
Do nothing if the item isn't in the queue.
Assume items are unique.
- size(self)
- Return the number of items in the queue.
Data descriptors defined here:
- __dict__
- dictionary for instance variables (if defined)
- __weakref__
- list of weak references to the object (if defined)
| |


Actions, resources, and condition keys for Amazon Rekognition
Amazon Rekognition (service prefix:
rekognition
) provides the following service-specific resources, actions, and condition context
keys for use in IAM permission policies.
References:
-
Learn how to configure this service .
-
View a list of the API operations available for this service .
-
Learn how to secure this service and its resources by using IAM permission policies.
Topics
Actions defined by Amazon Rekognition
You can specify the following actions in the
Action
element of an IAM policy statement. Use policies to grant permissions to perform
an operation in AWS. When you use an action in a policy, you usually allow or
deny access to the API operation or CLI command with the same name. However,
in some cases, a single action controls access to more than one operation. Alternatively,
some operations require several different actions.
The
Resource types
column indicates whether each action supports resource-level permissions. If
there is no value for this column, you must specify all resources ("*") in the
Resource
element of your policy statement. If the column includes a resource type, then
you can specify an ARN of that type in a statement with that action. Required
resources are indicated in the table with an asterisk (*). If you specify a resource-level
permission ARN in a statement using this action, then it must be of this type.
Some actions support multiple resource types. If the resource type is optional (not
indicated as required), then you can choose to use one but not the other.
For details about the columns in the following table, see The actions table .
| Actions | Description | Access level | Resource types (*required) | Condition keys | Dependent actions |
|---|---|---|---|---|---|
| CompareFaces | Compares a face in source input image with each face detected in the target input image. | Read | |||
| CreateCollection | Creates a collection in an AWS region. You can then add faces to the collection using the IndexFaces API. | Write | |||
| CreateProject | Creates a new Amazon Rekognition Custom Labels project. | Write | |||
| CreateProjectVersion | Creates a new version of a model and begins training. | Write | |||
| CreateStreamProcessor | Creates an Amazon Rekognition stream processor that you can use to detect and recognize faces in a streaming video. | Write | |||
| DeleteCollection | Deletes the specified collection. Note that this operation removes all faces in the collection. | Write | |||
| DeleteFaces | Deletes faces from a collection. | Write | |||
| DeleteProject | Deletes a project. | Write | |||
| DeleteProjectVersion | Deletes a model. | Write | |||
| DeleteStreamProcessor | Deletes the stream processor identified by Name. | Write | |||
| DescribeCollection | Describes the specified collection. | Read | |||
| DescribeProjectVersions | Lists and describes the model versions in an Amazon Rekognition Custom Labels project. | Read | |||
| DescribeProjects | Lists and gets information about your Amazon Rekognition Custom Labels projects. | Read | |||
| DescribeStreamProcessor | Provides information about a stream processor created by CreateStreamProcessor. | Read | |||
| DetectCustomLabels | Detects custom labels in a supplied image by using an Amazon Rekognition Custom Labels model version. | Read | |||
| DetectFaces | Detects human faces within an image (JPEG or PNG) provided as input. | Read | |||
| DetectLabels | Detects instances of real-world labels within an image (JPEG or PNG) provided as input. | Read | |||
| DetectModerationLabels | Detects moderation labels within input image. | Read | |||
| DetectProtectiveEquipment | Detects Protective Equipment in the input image. | Read | |||
| DetectText | Detects text in the input image and converts it into machine-readable text. | Read | |||
| GetCelebrityInfo | Gets the name and additional information about a celebrity based on his or her Rekognition ID. | Read | |||
| GetCelebrityRecognition | Gets the celebrity recognition results for a Rekognition Video analysis started by StartCelebrityRecognition. | Read | |||
| GetContentModeration | Gets the content moderation analysis results for a Rekognition Video analysis started by StartContentModeration. | Read | |||
| GetFaceDetection | Gets face detection results for a Rekognition Video analysis started by StartFaceDetection. | Read | |||
| GetFaceSearch | Gets the face search results for Rekognition Video face search started by StartFaceSearch. | Read | |||
| GetLabelDetection | Gets the label detection results of a Rekognition Video analysis started by StartLabelDetection. | Read | |||
| GetPersonTracking | Gets information about people detected within a video. | Read | |||
| GetSegmentDetection | Gets segment detection results for a Rekognition Video analysis started by StartSegmentDetection. | Read | |||
| GetTextDetection | Gets text detection results for a Rekognition Video analysis started by StartTextDetection. | Read | |||
| IndexFaces | Detects faces in the input image and adds them to the specified collection. | Write | |||
| ListCollections | Returns a list of collection IDs in your account. | Read | |||
| ListFaces | Returns metadata for faces in the specified collection. | Read | |||
| ListStreamProcessors | Gets a list of stream processors that you have created with CreateStreamProcessor. | List | |||
| RecognizeCelebrities | Returns an array of celebrities recognized in the input image. | Read | |||
| SearchFaces | For a given input face ID, searches the specified collection for matching faces. | Read | |||
| SearchFacesByImage | For a given input image, first detects the largest face in the image, and then searches the specified collection for matching faces. | Read | |||
| StartCelebrityRecognition | Starts asynchronous recognition of celebrities in a video. | Write | |||
| StartContentModeration | Starts asynchronous detection of explicit or suggestive adult content in a video. | Write | |||
| StartFaceDetection | Starts asynchronous detection of faces in a video. | Write | |||
| StartFaceSearch | Starts the asynchronous search for faces in a collection that match the faces of persons detected in a video. | Write | |||
| StartLabelDetection | Starts asynchronous detection of labels in a video. | Write | |||
| StartPersonTracking | Starts the asynchronous tracking of persons in a video. | Write | |||
| StartProjectVersion | Starts the deployment of a model version. | Write | |||
| StartSegmentDetection | Starts asynchronous detection of segments in a video. | Write | |||
| StartStreamProcessor | Starts processing a stream processor. | Write | |||
| StartTextDetection | Starts asynchronous detection of text in a video. | Write | |||
| StopProjectVersion | Stops a deployed model version. | Write | |||
| StopStreamProcessor | Stops a running stream processor that was created by CreateStreamProcessor. | Write |
Resource types defined by Amazon Rekognition
The following resource types are defined by this service and can be used in the
Resource
element of IAM permission policy statements. Each action in the
Actions table
identifies the resource types that can be specified with that action. A resource
type can also define which condition keys you can include in a policy. These
keys are displayed in the last column of the table. For details about the columns
in the following table, see
The resource types table
.
| Resource types | ARN | Condition keys |
|---|---|---|
| collection |
arn:$
{
Partition}:rekognition:$
{
Region}:$
{
Account}:collection/$
{
CollectionId}
|
|
| streamprocessor |
arn:$
{
Partition}:rekognition:$
{
Region}:$
{
Account}:streamprocessor/$
{
StreamprocessorId}
|
|
| project |
arn:$
{
Partition}:rekognition:$
{
Region}:$
{
Account}:project/$
{
ProjectName}/$
{
CreationTimestamp}
|
|
| projectversion |
arn:$
{
Partition}:rekognition:$
{
Region}:$
{
Account}:project/$
{
ProjectName}/version/$
{
VersionName}/$
{
CreationTimestamp}
|
Condition keys for Amazon Rekognition
Rekognition has no service-specific context keys that can be used in the
Condition
element of policy statements. For the list of the global context keys that are
available to all services, see
Available keys for conditions
.


Man that title is a mouthful. The concept is simple, but putting it to words takes a bit of work (I think - let me know if you can put it more succinctly!).
The idea is lifted wholesale from this /r/math post, which is a cool concept (albiet poorly written). I’ve tried to make it a little more digestable in this comment (careful, spoilers!), which I’ve copied below (without spoilers).
You are the head of a casting agency, and need to select an actor for an upcoming commercial. A line of auditioners are outside your office, and you’ve decided that you do not care which person is chosen. You’re a fair person, so you would like a method to randomly choose an actor such that each actor has equal probability of being chosen. However, since your office doesn’t have windows, you’re only able to see the person at the front of the line (so you cannot tell the length of the line). In addition, your office only fits two people including yourself, and once someone leaves the line or your office they won’t return. Can you find a method that works?
Since I started sitting in on an Advanced Programming course here at Auburn, I’ve gotten into these programming puzzles, particularly where the solution is at the intersection of programming and mathematics. That’s essentially what this is after all:
- You expect a stream of input (let’s say unique strings split into lines, and no more than 10000 of them).
- You only have enough memory to store one line of input at a time, and an integer. (Why? Because.)
- You want to print a random line out of the input, with uniform distribution. That is, the first line of input has the same probability of being printed as the last line, as the middle line, as the 23rd line, etc.
Now, if we were able to store the whole stream of input, there’s no problem. Quick python solution:
foo = ['a', 'b', 'c', 'd', 'e'] # captured earlier from input
import random
print random.choice(foo)
Maybe that’s a case of import antigravity, but solutions in any other languages should be similarly simple.
However, the above solution requires storing the entire stream of input, and we are forbidden from doing so. Basically, as we’re fed each line, we have to either store it (and remove all knowledge of any previously stored line), or ignore it forever. How could we possibly know whether we’re going to choose the 1st guy, or the 2nd guy, or the nth guy, without seeing them all?
It’s a great puzzle. See if you can figure it out. The solution is below.
The hint (or maybe red herring?) above was this sentence: “How could we possibly know whether we’re going to choose the 1st guy, or the 2nd guy, or the nth guy, without seeing them all?” Because you can’t, obviously. You require that you choose a particular line with probability 1/len(foo). So you need to know the length of foo before you finally make your decision.
But since you can’t go back to previous strings in the input, you gotta get creative. And here’s where the math comes in. Here’s my solution:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|
Try it out - it looks like it works. But why? I should prove it.
The proof is simple - let’s assume the length of the input is $n$ lines, and we should show the probability of printing the $i^{th}$ line is $\frac{1}{n}$. Then…
P(printing $i$) = P(storing $i$) x P(not storing $i+1$) x … x P(not storing $n$)
Mathematically, this translates to:
$$ P(\text{printing }i) = \frac{1}{i} \times \left(1-\frac{1}{i+1}\right) \times \dots \left(1-\frac{1}{n}\right) $$
$$ = \frac{1}{i} \times \frac{i}{i+1} \times \dots \times \frac{n-1}{n} = \frac{1}{n}$$
So cool.
-SXC


| d | ||
| disaggregator | ||
| disaggregator.evaluation_metrics | ||
| disaggregator.fhmm | ||
| disaggregator.generate | ||
| disaggregator.GreenButtonDatasetAdapter | ||
| disaggregator.OakParkDatasetAdapter | ||
| disaggregator.PecanStreetDatasetAdapter | ||
| disaggregator.utils | ||
| disaggregator.weather | ||
| e | ||
| evaluation_metrics (Unix) | Contains methods for evaluating the performance of various machine learning algorithms used in disaggregation. | |
| f | ||
| fhmm (Unix) | Contains methods for training and fitting Factorials HMMs. | |
| g | ||
| generate (Unix) | Contains methods for generating fake data. | |
| GreenButtonDatasetAdapter (Unix) | Contains methods for importing data following the green button spec. | |
| o | ||
| OakParkDatasetAdapter (Unix) | Contains methods for importing data from Oak Park dataset. | |
| p | ||
| PecanStreetDatasetAdapter (Unix) | Contains methods for importing data from the pecan street dataset. | |
| u | ||
| utils (Unix) | Contains utility methods for modifying and converting between appliance classes. | |
| w | ||
| weather (Unix) | Contains utilities for obtaining weather data and performing temperature normalization. Also includes utilities for converting temperatures to heating/cooling degree days. |