SPUUpdaterDelegate
Objective-C
@protocol SPUUpdaterDelegate <NSObject>
Swift
protocol SPUUpdaterDelegate : NSObjectProtocol
Provides delegation methods to control the behavior of an SPUUpdater
object.
-
Returns whether to allow Sparkle to check for updates.
For example, this may be used to prevent Sparkle from interrupting a setup assistant. Alternatively, you may want to consider starting the updater after eg: the setup assistant finishes.
Note in Swift, this method returns Void and is marked with the throws keyword. If this method doesn’t throw an error, the updater may perform an update check. Otherwise if an error is thrown (we recommend using an NSError), then the updater may not perform an update check.
Declaration
Objective-C
- (BOOL)updater:(nonnull SPUUpdater *)updater mayPerformUpdateCheck:(SPUUpdateCheck)updateCheck error:(NSError *_Nullable *_Nullable)error;
Swift
optional func updater(_ updater: SPUUpdater, mayPerform updateCheck: SPUUpdateCheck) throws
Parameters
updater
The updater instance.
updateCheck
The type of update check that will be performed if the updater is allowed to check for updates.
error
The populated error object if the updater may not perform a new update check. The
NSLocalizedDescriptionKey
user info key should be populated indicating a description of the error.Return Value
YES
if the updater is allowed to check for updates, otherwiseNO
-
Returns the set of Sparkle channels the updater is allowed to find new updates from.
An appcast item can specify a channel the update is posted to. Without specifying a channel, the appcast item is posted to the default channel. For instance:
<item> <sparkle:version>2.0 Beta 1</sparkle:version> <sparkle:channel>beta</sparkle:channel> </item>
This example posts an update to the
beta
channel, so only updaters that are allowed to use thebeta
channel can find this update.If the
<sparkle:channel>
element is not present, the update item is posted to the default channel and can be found by any updater.You can pick any name you’d like for the channel. The valid characters for channel names are letters, numbers, dashes, underscores, and periods.
Note to use this feature, all app versions that your users may update from in your feed must use a version of Sparkle that supports this feature. This feature was added in Sparkle 2.
Declaration
Objective-C
- (nonnull NSSet<NSString *> *)allowedChannelsForUpdater: (nonnull SPUUpdater *)updater;
Swift
optional func allowedChannels(for updater: SPUUpdater) -> Set<String>
Return Value
The set of channel names the updater is allowed to find new updates in. An empty set is the default behavior, which means the updater will only look for updates in the default channel.
-
Returns a custom appcast URL used for checking for new updates.
Override this to dynamically specify the feed URL.
Declaration
Objective-C
- (nullable NSString *)feedURLStringForUpdater:(nonnull SPUUpdater *)updater;
Swift
optional func feedURLString(for updater: SPUUpdater) -> String?
Parameters
updater
The updater instance.
Return Value
An appcast feed URL to check for new updates in, or
nil
for the default behavior and if you don’t want to be delegated this task. -
Returns additional parameters to append to the appcast URL’s query string.
This is potentially based on whether or not Sparkle will also be sending along the system profile.
Declaration
Objective-C
- (nonnull NSArray<NSDictionary<NSString *, NSString *> *> *) feedParametersForUpdater:(nonnull SPUUpdater *)updater sendingSystemProfile:(BOOL)sendingProfile;
Swift
optional func feedParameters(for updater: SPUUpdater, sendingSystemProfile sendingProfile: Bool) -> [[String : String]]
Parameters
updater
The updater instance.
sendingProfile
Whether the system profile will also be sent.
Return Value
An array of dictionaries with keys:
key
,value
,displayKey
,displayValue
, the latter two being specifically for display to the user. -
Returns whether Sparkle should prompt the user about checking for new updates automatically.
Use this to override the default behavior.
Declaration
Objective-C
- (BOOL)updaterShouldPromptForPermissionToCheckForUpdates: (nonnull SPUUpdater *)updater;
Swift
optional func updaterShouldPromptForPermissionToCheck(forUpdates updater: SPUUpdater) -> Bool
Parameters
updater
The updater instance.
Return Value
YES
if the updater should prompt for permission to check for new updates automatically, otherwiseNO
-
Returns an allowed list of system profile keys to be appended to the appcast URL’s query string.
By default all keys will be included. This method allows overriding which keys should only be allowed.
Declaration
Objective-C
- (nullable NSArray<NSString *> *)allowedSystemProfileKeysForUpdater: (nonnull SPUUpdater *)updater;
Swift
optional func allowedSystemProfileKeys(for updater: SPUUpdater) -> [String]?
Parameters
updater
The updater instance.
Return Value
An array of system profile keys to include in the appcast URL’s query string. Elements must be one of the
SUSystemProfiler*Key
constants. Returnnil
for the default behavior and if you don’t want to be delegated this task. -
Called after Sparkle has downloaded the appcast from the remote server.
Implement this if you want to do some special handling with the appcast once it finishes loading.
Declaration
Objective-C
- (void)updater:(nonnull SPUUpdater *)updater didFinishLoadingAppcast:(nonnull SUAppcast *)appcast;
Swift
optional func updater(_ updater: SPUUpdater, didFinishLoading appcast: SUAppcast)
Parameters
updater
The updater instance.
appcast
The appcast that was downloaded from the remote server.
-
Called when a new valid update is found by the update driver.
Declaration
Objective-C
- (void)updater:(nonnull SPUUpdater *)updater didFindValidUpdate:(nonnull SUAppcastItem *)item;
Swift
optional func updater(_ updater: SPUUpdater, didFindValidUpdate item: SUAppcastItem)
Parameters
updater
The updater instance.
item
The appcast item corresponding to the update that is proposed to be installed.
-
Called when a valid new update is not found.
There are various reasons a new update is unavailable and can’t be installed.
The userInfo dictionary on the error is populated with three keys:
SPULatestAppcastItemFoundKey
: if available, this may provide the latestSUAppcastItem
that was found. This will benil
if it’s unavailable.SPUNoUpdateFoundReasonKey
: This will provide theSPUNoUpdateFoundReason
. For example the reason could be because the latest version in the feed requires a newer OS version or could be because the user is already on the latest version.SPUNoUpdateFoundUserInitiatedKey
: A boolean that indicates if a new update was not found when the user intitiated an update check manually.
Declaration
Objective-C
- (void)updaterDidNotFindUpdate:(nonnull SPUUpdater *)updater error:(nonnull NSError *)error;
Swift
optional func updaterDidNotFindUpdate(_ updater: SPUUpdater, error: Error)
Parameters
updater
The updater instance.
error
An error containing information on why a new valid update was not found
-
Called when a valid new update is not found.
If more information is needed on why an update was not found, use
-[SPUUpdaterDelegate updaterDidNotFindUpdate:error:]
instead.Declaration
Objective-C
- (void)updaterDidNotFindUpdate:(nonnull SPUUpdater *)updater;
Swift
optional func updaterDidNotFindUpdate(_ updater: SPUUpdater)
Parameters
updater
The updater instance.
-
Returns the item in the appcast corresponding to the update that should be installed.
Please consider using or migrating to other supported features before adopting this method. Specifically:
- If you want to filter out certain tagged updates (like beta updates), consider
-[SPUUpdaterDelegate allowedChannelsForUpdater:]
instead. - If you want to treat certain updates as informational-only, consider supplying
<sparkle:informationalUpdate>
with a set of affected versions users are updating from.
If you’re using special logic or extensions in your appcast, implement this to use your own logic for finding a valid update, if any, in the given appcast.
Do not base your logic by filtering out items with a minimum or maximum OS version or minimum autoupdate version because Sparkle already has logic for determining whether or not those items should be filtered out.
Also do not return a non-top level item from the appcast such as a delta item. Delta items will be ignored. Sparkle picks the delta item from your selection if the appropriate one is available.
This method will not be invoked with an appcast that has zero items. Pick the best item from the appcast. If an item is available that has the same version as the application or bundle to update, do not pick an item that is worse than that version.
This method may be called multiple times for different selections and filters. This method should be efficient.
Return
+[SUAppcastItem emptyAppcastItem]
if no appcast item is valid.Return
nil
if you don’t want to be delegated this task and want to let Sparkle handle picking the best valid update.Declaration
Objective-C
- (nullable SUAppcastItem *) bestValidUpdateInAppcast:(nonnull SUAppcast *)appcast forUpdater:(nonnull SPUUpdater *)updater;
Swift
optional func bestValidUpdate(in appcast: SUAppcast, for updater: SPUUpdater) -> SUAppcastItem?
Parameters
appcast
The appcast that was downloaded from the remote server.
updater
The updater instance.
Return Value
The best valid appcast item.
- If you want to filter out certain tagged updates (like beta updates), consider
-
Returns whether or not the updater should proceed with the new chosen update from the appcast.
By default, the updater will always proceed with the best selected update found in an appcast. Override this to override this behavior.
If you return
NO
and populate theerror,
the user is not shown thisupdateItem
nor is the update downloaded or installed.Note in Swift, this method returns Void and is marked with the throws keyword. If this method doesn’t throw an error, the updater will proceed with the update. Otherwise if an error is thrown (we recommend using an NSError), then the will not proceed with the update.
Declaration
Objective-C
- (BOOL)updater:(nonnull SPUUpdater *)updater shouldProceedWithUpdate:(nonnull SUAppcastItem *)updateItem updateCheck:(SPUUpdateCheck)updateCheck error:(NSError *_Nullable *_Nullable)error;
Swift
optional func updater(_ updater: SPUUpdater, shouldProceedWithUpdate updateItem: SUAppcastItem, updateCheck: SPUUpdateCheck) throws
Parameters
updater
The updater instance.
updateItem
The selected update item to proceed with.
updateCheck
The type of update check that would be performed if proceeded.
error
An error object that must be populated by the delegate if the updater should not proceed with the update. The
NSLocalizedDescriptionKey
user info key should be populated indicating a description of the error.Return Value
YES
if the updater should proceed withupdateItem,
otherwiseNO
if the updater should not proceed with the update with anerror
populated. -
Called when a user makes a choice to install, dismiss, or skip an update.
If the
choice
isSPUUserUpdateChoiceDismiss
andstate.stage
isSPUUserUpdateStageDownloaded
the downloaded update is kept around until the next time Sparkle reminds the user of the update.If the
choice
isSPUUserUpdateChoiceDismiss
andstate.stage
isSPUUserUpdateStageInstalling
the update is still set to install on application termination.If the
choice
isSPUUserUpdateChoiceSkip
the user will not be reminded in the future for this update unless they initiate an update check themselves.If
updateItem.isInformationOnlyUpdate
isYES
thechoice
cannot beSPUUserUpdateChoiceInstall
.Declaration
Objective-C
- (void)updater:(nonnull SPUUpdater *)updater userDidMakeChoice:(SPUUserUpdateChoice)choice forUpdate:(nonnull SUAppcastItem *)updateItem state:(nonnull SPUUserUpdateState *)state;
Swift
optional func updater(_ updater: SPUUpdater, userDidMake choice: SPUUserUpdateChoice, forUpdate updateItem: SUAppcastItem, state: SPUUserUpdateState)
Parameters
updater
The updater instance.
choice
The choice (install, dismiss, or skip) the user made for this
updateItem
updateItem
The appcast item corresponding to the update that the user made a choice on.
state
The current state for the update which includes if the update has already been downloaded or already installing.
-
Returns whether the release notes (if available) should be downloaded after an update is found and shown.
This is specifically for the
<releaseNotesLink>
element in the appcast item.Declaration
Objective-C
- (BOOL)updater:(nonnull SPUUpdater *)updater shouldDownloadReleaseNotesForUpdate:(nonnull SUAppcastItem *)updateItem;
Swift
optional func updater(_ updater: SPUUpdater, shouldDownloadReleaseNotesForUpdate updateItem: SUAppcastItem) -> Bool
Parameters
updater
The updater instance.
updateItem
The update item to download and show release notes from.
Return Value
YES
to download and show the release notes if available, otherwiseNO.
The default behavior isYES.
-
Called immediately before downloading the specified update.
Declaration
Objective-C
- (void)updater:(nonnull SPUUpdater *)updater willDownloadUpdate:(nonnull SUAppcastItem *)item withRequest:(nonnull NSMutableURLRequest *)request;
Swift
optional func updater(_ updater: SPUUpdater, willDownloadUpdate item: SUAppcastItem, with request: NSMutableURLRequest)
Parameters
updater
The updater instance.
item
The appcast item corresponding to the update that is proposed to be downloaded.
request
The mutable URL request that will be used to download the update.
-
Called immediately after succesfull download of the specified update.
Declaration
Objective-C
- (void)updater:(nonnull SPUUpdater *)updater didDownloadUpdate:(nonnull SUAppcastItem *)item;
Swift
optional func updater(_ updater: SPUUpdater, didDownloadUpdate item: SUAppcastItem)
Parameters
updater
The SUUpdater instance.
item
The appcast item corresponding to the update that has been downloaded.
-
Called after the specified update failed to download.
Declaration
Objective-C
- (void)updater:(nonnull SPUUpdater *)updater failedToDownloadUpdate:(nonnull SUAppcastItem *)item error:(nonnull NSError *)error;
Swift
optional func updater(_ updater: SPUUpdater, failedToDownloadUpdate item: SUAppcastItem, error: Error)
Parameters
updater
The updater instance.
item
The appcast item corresponding to the update that failed to download.
error
The error generated by the failed download.
-
Called when the user cancels an update while it is being downloaded.
Declaration
Objective-C
- (void)userDidCancelDownload:(nonnull SPUUpdater *)updater;
Swift
optional func userDidCancelDownload(_ updater: SPUUpdater)
Parameters
updater
The updater instance.
-
Called immediately before extracting the specified downloaded update.
Declaration
Objective-C
- (void)updater:(nonnull SPUUpdater *)updater willExtractUpdate:(nonnull SUAppcastItem *)item;
Swift
optional func updater(_ updater: SPUUpdater, willExtractUpdate item: SUAppcastItem)
Parameters
updater
The SUUpdater instance.
item
The appcast item corresponding to the update that is proposed to be extracted.
-
Called immediately after extracting the specified downloaded update.
Declaration
Objective-C
- (void)updater:(nonnull SPUUpdater *)updater didExtractUpdate:(nonnull SUAppcastItem *)item;
Swift
optional func updater(_ updater: SPUUpdater, didExtractUpdate item: SUAppcastItem)
Parameters
updater
The SUUpdater instance.
item
The appcast item corresponding to the update that has been extracted.
-
Called immediately before installing the specified update.
Declaration
Objective-C
- (void)updater:(nonnull SPUUpdater *)updater willInstallUpdate:(nonnull SUAppcastItem *)item;
Swift
optional func updater(_ updater: SPUUpdater, willInstallUpdate item: SUAppcastItem)
Parameters
updater
The updater instance.
item
The appcast item corresponding to the update that is proposed to be installed.
-
Returns whether the relaunch should be delayed in order to perform other tasks.
This is not called if the user didn’t relaunch on the previous update, in that case it will immediately restart.
This may also not be called if the application is not going to relaunch after it terminates.
Declaration
Objective-C
- (BOOL)updater:(nonnull SPUUpdater *)updater shouldPostponeRelaunchForUpdate:(nonnull SUAppcastItem *)item untilInvokingBlock:(nonnull void (^)(void))installHandler;
Swift
optional func updater(_ updater: SPUUpdater, shouldPostponeRelaunchForUpdate item: SUAppcastItem, untilInvokingBlock installHandler: @escaping () -> Void) -> Bool
Parameters
updater
The updater instance.
item
The appcast item corresponding to the update that is proposed to be installed.
installHandler
The install handler that must be completed before continuing with the relaunch.
Return Value
YES
to delay the relaunch untilinstallHandler
is invoked. -
Returns whether the application should be relaunched at all.
Some apps cannot be relaunched under certain circumstances. This method can be used to explicitly prevent a relaunch.
Declaration
Objective-C
- (BOOL)updaterShouldRelaunchApplication:(nonnull SPUUpdater *)updater;
Swift
optional func updaterShouldRelaunchApplication(_ updater: SPUUpdater) -> Bool
Parameters
updater
The updater instance.
Return Value
YES
if the updater should be relaunched, otherwiseNO
if it shouldn’t. -
Called immediately before relaunching.
Declaration
Objective-C
- (void)updaterWillRelaunchApplication:(nonnull SPUUpdater *)updater;
Swift
optional func updaterWillRelaunchApplication(_ updater: SPUUpdater)
Parameters
updater
The updater instance.
-
Returns an object that compares version numbers to determine their arithmetic relation to each other.
This method allows you to provide a custom version comparator. If you don’t implement this method or return
nil,
the standard version comparator will be used.Note that the standard version comparator may be used during installation for preventing a downgrade, even if you provide a custom comparator here.
Declaration
Objective-C
- (nullable id<SUVersionComparison>)versionComparatorForUpdater: (nonnull SPUUpdater *)updater;
Parameters
updater
The updater instance.
Return Value
The custom version comparator or
nil
if you don’t want to be delegated this task. -
Called when a background update will be scheduled after a delay.
Automatic update checks need to be enabled for this to trigger.
Declaration
Objective-C
- (void)updater:(nonnull SPUUpdater *)updater willScheduleUpdateCheckAfterDelay:(NSTimeInterval)delay;
Swift
optional func updater(_ updater: SPUUpdater, willScheduleUpdateCheckAfterDelay delay: TimeInterval)
Parameters
delay
The delay in seconds until the next scheduled update will occur. This is an approximation and may vary due to system state.
updater
The updater instance.
-
Called when no update checks will be scheduled in the future.
This may later change if automatic update checks become enabled.
Declaration
Objective-C
- (void)updaterWillNotScheduleUpdateCheck:(nonnull SPUUpdater *)updater;
Swift
optional func updaterWillNotScheduleUpdateCheck(_ updater: SPUUpdater)
Parameters
updater
The updater instance.
-
Returns the decryption password (if any) which is used to extract the update archive DMG.
Return
nil
if no password should be used.Declaration
Objective-C
- (nullable NSString *)decryptionPasswordForUpdater: (nonnull SPUUpdater *)updater;
Swift
optional func decryptionPassword(for updater: SPUUpdater) -> String?
Parameters
updater
The updater instance.
Return Value
The password used for decrypting the archive, or
nil
if no password should be used. -
Called when an update is scheduled to be silently installed on quit after downloading the update automatically.
If the updater is given responsibility, it can later remind the user an update is available if they have not terminated the application for a long time.
Also if the updater is given responsibility and the update item is marked critical, the new update will be presented to the user immediately after.
Even if the
immediateInstallHandler
is not invoked, the installer will attempt to install the update on termination.Declaration
Objective-C
- (BOOL)updater:(nonnull SPUUpdater *)updater willInstallUpdateOnQuit:(nonnull SUAppcastItem *)item immediateInstallationBlock:(nonnull void (^)(void))immediateInstallHandler;
Swift
optional func updater(_ updater: SPUUpdater, willInstallUpdateOnQuit item: SUAppcastItem, immediateInstallationBlock immediateInstallHandler: @escaping () -> Void) -> Bool
Parameters
updater
The updater instance.
item
The appcast item corresponding to the update that is proposed to be installed.
immediateInstallHandler
The install handler for the delegate to immediately install the update. No UI interaction will be shown and the application will be relaunched after installation. This handler can only be used if
YES
is returned and the delegate handles installing the update. For Sparkle 2.3 onwards, this handler can be invoked multiple times in case the application cancels the termination request.Return Value
YES
if the delegate will handle installing the update orNO
if the updater should be given responsibility. -
Called after the update driver aborts due to an error.
The update driver runs when checking for updates. This delegate method is called an error occurs during this process.
Some special possible values of
error.code
are:SUNoUpdateError
: No new update was found.SUInstallationCanceledError
: The user canceled installing the update when requested for authorization.
Declaration
Objective-C
- (void)updater:(nonnull SPUUpdater *)updater didAbortWithError:(nonnull NSError *)error;
Swift
optional func updater(_ updater: SPUUpdater, didAbortWithError error: Error)
Parameters
updater
The updater instance.
error
The error that caused the update driver to abort.
-
Called after the update driver finishes.
The update driver runs when checking for updates. This delegate method is called when that check is finished.
An update may be scheduled to be installed during the update cycle, or no updates may be found, or an available update may be dismissed or skipped (which is the same as no error).
If the
error
isnil,
no error has occurred.Some special possible values of
error.code
are:SUNoUpdateError
: No new update was found.SUInstallationCanceledError
: The user canceled installing the update when requested for authorization.
Declaration
Objective-C
- (void)updater:(nonnull SPUUpdater *)updater didFinishUpdateCycleForUpdateCheck:(SPUUpdateCheck)updateCheck error:(nullable NSError *)error;
Swift
optional func updater(_ updater: SPUUpdater, didFinishUpdateCycleFor updateCheck: SPUUpdateCheck, error: Error?)
Parameters
updater
The updater instance.
updateCheck
The type of update check was performed.
error
The error that caused the update driver to abort. This is
nil
if the update driver finished normally and there is no error. -
Deprecated
Please use -[SPUUpdaterDelegate updater:mayPerformUpdateCheck:error:] instead.
Undocumented
Declaration
Objective-C
- (BOOL)updaterMayCheckForUpdates:(SPUUpdater *)updater __deprecated_msg("Please use -[SPUUpdaterDelegate updater:mayPerformUpdateCheck:error:] instead.");
Swift
optional func updaterMayCheck(forUpdates updater: SPUUpdater) -> Bool
-
Deprecated
Please use -[SPUUpdaterDelegate updater:userDidMakeChoice:forUpdate:state:] instead.
Undocumented
Declaration
Objective-C
- (void)updater:(SPUUpdater *)updater userDidSkipThisVersion:(SUAppcastItem *)item __deprecated_msg("Please use -[SPUUpdaterDelegate updater:userDidMakeChoice:forUpdate:state:] instead.");
Swift
optional func updater(_ updater: SPUUpdater, userDidSkipThisVersion item: SUAppcastItem)


Certificate and Key Management
This module allows you to manage SSL certificates installed on the system.
With this module, self-signed certificates and certificate signing requests (CSR)
can be generated. Certificates can be imported, exported, deleted and viewed.


BusMall Catalog Survey
Please click on the product that you are most interested in
Take Survey Again!
Clear Data
R2D2 Suitcase
Banana Slicer
Bathroom Stand


Thank You for Coming!
Thanks to those of you who joined us in Boston for NSDI '11. Check out the videos of the talks, online proceedings, and slides here.
The NSDI '11 Conference Reports from ;login: are now available.
Just Up! Videos of the presentations will be posted as soon as they become available. Access is currently restricted to USENIX members and NSDI '11 symposium attendees. Not a member? Join today!
We hope you enjoyed NSDI '11 and look forward to seeing you next year:
Save the Date!
NSDI '12: 9th USENIX Symposium on Networked Systems Design and Implementation
April 2527, 2012
San Jose, CA
SYMPOSIUM ORGANIZERS
Program Co-Chairs
David G. Andersen, Carnegie Mellon University
Sylvia Ratnasamy, Intel Labs Berkeley
Program Committee
Aditya Akella, University of Wisconsin—Madison
Katerina Argyraki, École Polytechnique Fédérale de Lausanne (EPFL)
Remzi Arpaci-Dusseau, University of Wisconsin—Madison
Hari Balakrishnan, Massachusetts Institute of Technology
Andrew Birrell, Microsoft Research
Byung-Gon Chun, Intel Labs Berkeley
Jason Flinn, University of Michigan
Rodrigo Fonseca, Brown University
Paul Francis, Max Planck Institute for Software Systems
Brad Karp, University College London
Dina Katabi, Massachusetts Institute of Technology
Eddie Kohler, University of California, Los Angeles, and Meraki
Jinyang Li, New York University
Bruce Maggs, Duke University and Akamai Technologies
Ratul Mahajan, Microsoft Research
David Maltz, Microsoft Research
David Mazières, Stanford University
Jitendra Padhye, Microsoft Research
KyoungSoo Park, KAIST (Korea Advanced Institute of Science and Technology)
Jennifer Rexford, Princeton University
Alex C. Snoeren, University of California, San Diego
Lakshminarayanan Subramanian, New York University
Helen Wang, Microsoft Research
Bill Weihl, Google
Poster Session Chair
Michael Walfish, The University of Texas at Austin
Steering Committee
Thomas Anderson, University of Washington
Brian Noble, University of Michigan
Jennifer Rexford, Princeton University
Mike Schroeder, Microsoft Research
Chandu Thekkath, Microsoft Research
Amin Vahdat, University of California, San Diego
Ellie Young, USENIX
|
|


Report Card
Comments and suggestions are welcome.
<EMAIL_ADDRESS>Results for: webgoat
| Lesson | Complete | Visits | Hints | |||||
|---|---|---|---|---|---|---|---|---|
| Normal user lessons | ||||||||
| How to work with WebGoat | Y | 0 | 0 | |||||
| Tomcat Configuration | Y | 0 | 0 | |||||
| Useful Tools | Y | 0 | 0 | |||||
| How to create a Lesson | Y | 0 | 0 | |||||
| Http Basics | Y | 7 | 0 | |||||
| Using an Access Control Matrix | N | 0 | 0 | |||||
| Bypass a Path Based Access Control Scheme | N | 4 | 0 | |||||
| LAB: Role Based Access Control | N | 10 | 0 | |||||
| Same Origin Policy Protection | N | 0 | 0 | |||||
| LAB: DOM-Based cross-site scripting | N | 0 | 0 | |||||
| LAB: Client Side Filtering | N | 0 | 0 | |||||
| DOM Injection | N | 0 | 0 | |||||
| XML Injection | N | 0 | 0 | |||||
| JSON Injection | N | 0 | 0 | |||||
| Silent Transactions Attacks | N | 0 | 0 | |||||
| Dangerous Use of Eval | N | 0 | 0 | |||||
| Insecure Client Storage | N | 0 | 0 | |||||
| Password Strength | N | 2 | 0 | |||||
| Forgot Password | N | 2 | 0 | |||||
| Multi Level Login 2 | N | 0 | 0 | |||||
| Multi Level Login 1 | N | 0 | 0 | |||||
| Off-by-One Overflows | N | 0 | 0 | |||||
| Discover Clues in the HTML | N | 0 | 0 | |||||
| Thread Safety Problems | N | 0 | 0 | |||||
| Shopping Cart Concurrency Flaw | N | 0 | 0 | |||||
| Phishing with XSS | N | 0 | 0 | |||||
| LAB: Cross Site Scripting | N | 15 | 0 | |||||
| Stored XSS Attacks | N | 0 | 0 | |||||
| Reflected XSS Attacks | N | 0 | 0 | |||||
| Cross Site Request Forgery (CSRF) | N | 0 | 0 | |||||
| CSRF Prompt By-Pass | N | 0 | 0 | |||||
| CSRF Token By-Pass | N | 0 | 0 | |||||
| HTTPOnly Test | N | 0 | 0 | |||||
| Cross Site Tracing (XST) Attacks | N | 0 | 0 | |||||
| Fail Open Authentication Scheme | N | 0 | 0 | |||||
| Command Injection | N | 1 | 0 | |||||
| Numeric SQL Injection | N | 0 | 0 | |||||
| Log Spoofing | N | 0 | 0 | |||||
| XPATH Injection | N | 0 | 0 | |||||
| String SQL Injection | N | 0 | 0 | |||||
| LAB: SQL Injection | N | 6 | 0 | |||||
| Modify Data with SQL Injection | N | 0 | 0 | |||||
| Add Data with SQL Injection | N | 0 | 0 | |||||
| Database Backdoors | N | 0 | 0 | |||||
| Blind Numeric SQL Injection | N | 0 | 0 | |||||
| Blind String SQL Injection | N | 0 | 0 | |||||
| ZipBomb | N | 0 | 0 | |||||
| Denial of Service from Multiple Logins | N | 0 | 0 | |||||
| Insecure Login | N | 0 | 0 | |||||
| Forced Browsing | N | 0 | 0 | |||||
| Encoding Basics | N | 0 | 0 | |||||
| Malicious File Execution | N | 0 | 0 | |||||
| Bypass HTML Field Restrictions | N | 0 | 0 | |||||
| Exploit Hidden Fields | N | 0 | 0 | |||||
| Exploit Unchecked Email | N | 0 | 0 | |||||
| Bypass Client Side JavaScript Validation | N | 0 | 0 | |||||
| Hijack a Session | N | 0 | 0 | |||||
| Spoof an Authentication Cookie | N | 0 | 0 | |||||
| Session Fixation | N | 0 | 0 | |||||
| Create a SOAP Request | N | 0 | 0 | |||||
| WSDL Scanning | N | 0 | 0 | |||||
| Web Service SAX Injection | N | 0 | 0 | |||||
| Web Service SQL Injection | N | 0 | 0 | |||||
| Report Card | N | 0 | 0 | |||||
| User Information | Y | 0 | 0 | |||||
| Product Information | N | 0 | 0 | |||||
| Adhoc Query | N | 0 | 0 | |||||
| The CHALLENGE | N | 0 | 0 | |||||
| Hackable Admin Screens | ||||||||
| User Information | Y | 0 | 0 | |||||
| Product Information | N | 0 | 0 | |||||
| Adhoc Query | N | 0 | 0 | |||||
| Actual Admin Screens | ||||||||
| Summary Report Card | N | 0 | 0 | |||||
| Refresh Database | N | 0 | 0 | |||||
| User Information | Y | 0 | 0 | |||||
| Product Information | N | 0 | 0 | |||||
| Adhoc Query | N | 0 | 0 |


Inventory System
Login
Email address
Password
Remember Password
Login
Register an Account
Forgot Password?


Firefighters responded about 2:15 a.m. to the blaze on 74B Avenue near 206a Street.
Flames could be seen shooting out of the roof, CTV News reports.
"When we arrived we found this single-family dwelling with fire heavily involved in the roof and the upper floor," deputy fire chief Monty Armstrong told CTV.
Five people were living in the house, and at least two others were taken to hospital.
There is no word yet on the fire's cause.
– with files from CTV Vancouver


Upload School Timetable
How to upload your timetable from Sentral:
1. Login to Sentral
2. Go to the timetable tag on the left side of the page.
3. Click "Export as ICal"
4. Upload the downloaded file "my_timetable.ics" here.
5. Press Submit and you will be directed to a place that shows your timetable.
6. You can now enjoy access to staff list and a bell times page that shows your next class.


|
HaHa
|
UART control functionality declaration. More...
#include "stdio_start.h"
Go to the source code of this file.
Macros | |
| #define | USART_BUF_SIZE 128 |
| #define | CB_OFF 0 |
| #define | CB_ON 1 |
| #define | SET_RX_CB(val) (_RX_CALLBACK = val) |
| #define | SET_RX_CB_OFF SET_RX_CB(CB_OFF) |
| #define | SET_RX_CB_ON SET_RX_CB(CB_ON) |
| #define | IS_RX_CB_ON (_RX_CALLBACK == CB_ON) |
| #define | SET_SEND_NETDEV(val) (SEND_NETDEV = val); |
Typedefs | |
| typedef void(* | uart_netdev_cb_t) (char *, uint8_t) |
Functions | |
| void | uart_getbuffer (char *buff, size_t len) |
| { Returns the contents of the UART buffer } More... | |
| uint8_t | uart_read () |
| { Reads data received by UART into rotating buffer } More... | |
| uint8_t | uart_write (uint8_t *data, size_t size) |
| { Writes data out the UART } More... | |
| uint8_t | uart_clearbuffer () |
| { Clear the UART receive buffer } More... | |
| void | uart_init_irqs (void) |
| { Initializes and registers interrupts for UART } More... | |
Variables | |
| uart_netdev_cb_t | netdev_recv_callback |
| uint8_t | _RX_CALLBACK |
| uint8_t | SEND_NETDEV |
| struct io_descriptor * | usart_io |
| char | uart_buffer [2][USART_BUF_SIZE] |
| uint8_t | CURRENT_BUFFER |
| uint8_t | data_received |
UART control functionality declaration.
| #define CB_OFF 0 |
| #define CB_ON 1 |
| #define IS_RX_CB_ON (_RX_CALLBACK == CB_ON) |
| #define SET_RX_CB | ( | val | ) | (_RX_CALLBACK = val) |
| #define SET_SEND_NETDEV | ( | val | ) | (SEND_NETDEV = val); |
| #define USART_BUF_SIZE 128 |
| typedef void(* uart_netdev_cb_t) (char *, uint8_t) |
| uint8_t uart_clearbuffer | ( | ) |
{ Clear the UART receive buffer }
| void uart_getbuffer | ( | char * | buff, |
| size_t | len | ||
| ) |
{ Returns the contents of the UART buffer }
| buff | The buffer to put data into | |
| [in] | len | The length the buffer |
| void uart_init_irqs | ( | void | ) |
{ Initializes and registers interrupts for UART }
| uint8_t uart_read | ( | ) |
{ Reads data received by UART into rotating buffer }
| uint8_t uart_write | ( | uint8_t * | data, |
| size_t | size | ||
| ) |
{ Writes data out the UART }
| data | The data | |
| [in] | size | The size of data |
| uint8_t _RX_CALLBACK |
{ Flag controller whether UART RX callback is used }
| uint8_t CURRENT_BUFFER |
| uint8_t data_received |
| uart_netdev_cb_t netdev_recv_callback |
| uint8_t SEND_NETDEV |
{ Flag on whether to send data to NetDev registered callback function }
| char uart_buffer[2][USART_BUF_SIZE] |
| struct io_descriptor* usart_io |


We examine content!
- architect real-time bandwidth
- reinvent synergistic methodologies
- deliver synergistic e-services
- deliver bleeding-edge networks
- enhance leading-edge communities
- visualize one-to-one metrics
- harness world-class vortals
- leverage distributed networks


When we regard the World Wide Web as the space where human beings share information as individual signals, we will be able to develop new theories of a global, augmented intelligence that goes beyond what we currently know about human intelligence.
The project SOCIAM – The Theory and Practice of Social Machines researches into pioneering methods of supporting purposeful human interaction on the World Wide Web, of the kind exemplified by phenomena such as Wikipedia and Galaxy Zoo. These collaborations are empowering, as communities identify and solve their own problems, harnessing their commitment, local knowledge and embedded skills, without having to rely on remote experts or governments.


Solid style buttons with icons
Solid style wide buttons with icons
Icon only without label
Outline style buttons with icons
Outline 2x style buttons with icons
Icon only without label
Solid & pill style buttons with icons
Outline & pill style buttons with icons
Outline 2x & pill style buttons with icons
Icon only without label
Solid, pill & air style buttons with icons
Outline, pill & air style buttons with icons
Outline 2x, pill & air style buttons with icons
Icon only without label
Solid style buttons with icons
Solid, pill & air style buttons with icons
Outline, pill & air style buttons with icons
Outline 2x, pill & air style buttons with icons
Icon only without label


W.P. (C) No. 923 of 2013 IN THE HIGH COURT OF JHARKHAND AT RANCHI W.P. (C) No. 3563 of 2012 1.Vindhyachal Singh 2.Sheo Prasad Sahu 3.Sandeep Kumar 4.Krishna Murari Singh 5.Lal Sadanand Nath Shahdeo 6.Ved Prakash Verma 7.Jamuna Prasad 8.Ramavtar Singh 9.Rajiv Ranjan Gupta ... ... Petitioners -V e r s u s- The State of Jharkhand and Others ... ... Respondents ... CORAM: - HON'BLE MR. JUSTICE APARESH KUMAR SINGH. ... For the Petitioners : - M/s Kalyan Roy & Sidhartha Roy For the Respondent nos. 5 &6: - Mr. Prabhash Kumar For the Respondent -State : - Mr. Anil Kumar, JC to AG For the Union of India : - Md. M. Khan, CSGI ... 04/13.03.2013
Heard learned counsel for the parties.
This application is directed against the impugned order no. 306 dated 11.05.2012 issued by the respondent no. 4, Assistant District Mining Officer, Latehar whereby he has expressed his inability to issue the transport challan in favour of the petitioners in absence of Environmental Clearance Certificate from the Department of Pollution Control Board. The petitioners have also sought direction upon the Pollution Control Board to issue N.O.C. under Section 25 and 26 of the Water (Prevention and Control of Pollution) Act, 1974 and under Section 21 of the Air (Prevention of Control and Pollution) Act, 1981 and in the meantime petitioners have also sought for issuance of the transport challan in favour of these nine petitioners in the present writ petition.
According to the petitioners, they had been granted mining lease for the major minerals and deeds of lease have also been executed by the State Government for different period. They were carrying mining activities and extracted concerned minerals from mines and transported on the basis of transport challan issued from time to time by the W.P. (C) No. 923 of 2013 respondent-Office of District Mining Officer. Learned counsel for the petitioners submits that the applications were made for grant of issuance of N.O.C. before the Pollution Control Board. It is also submitted that the applications for renewal of lease have been made by the petitioners within stipulated time after its expiry, which are still pending before the Competent Authority, therefore, in the meantime, they are entitled to continue their mining activities during the pendency of the renewal application of lease. However, because of the order passed by the Assistant Mining Officer, all the activities relating to transport of the excavated mineral is being suddenly interrupted.
The respondent-Pollution Control Board, on the other hand, in their counter affidavit have taken stand that in terms of the provisions of Environmental Protection Act and notification issued thereunder, each one of these petitioners have been directed to obtain environmental clearance from the Competent Authority at the time of renewal of their mining lease. It is, therefore, submitted that mining operation without N.O.C., consent to operate from State Pollution Control Board and without obtaining environmental clearance by the competent authority, is not permissible in law.
Learned counsel for the Board has drawn attention upon the applicability of the EIA Notification, 1994 whereunder in respect of Mining Project of major minerals having more than 5 hectares lease hold area, at the time of renewal of lease, the environmental clearance is mandatory in terms of the judgment of the Hon'ble Supreme Court delivered in the case of M.C. Mehta Versus Union of India and Others. In that view of the matter, the respondent-Pollution Control Board W.P. (C) No. 923 of 2013 submits that the petitioners cannot claim to operate mining activities or insist for their transportation in absence of compliance of the mandatory requirement of law.
The respondent-State, on the other hand, also appeared and filed their counter affidavit in which the similar stand has been taken on their behalf that in absence of environmental clearance certificate, before renewal of the mining lease, which are pending before the respondent-authorities, the petitioners are not entitled to transport the mining mineral, which is contrary to the requirement of law under the various environmental laws as also the direction of the Hon'ble Supreme Court. Learned counsel for the State also submits that in these circumstances, the District Mining Officers concerned have been directed not to issue mining transport challan in favour of these persons, who have not obtained environmental clearance certificate and also have not been granted NOC from the State Pollution Control Board.
The petitioners, on the other hand, have stated that these mineral have been mined before the expiry of the mining lease and are lying in their custody, which need to be transported and, therefore, precondition of the environmental clearance for transportation of excavated mineral, is not mandatory.
Learned counsel for the petitioners, however, submitted that they are in process to approach before the Competent Authority under the Ministry of Environment and Forest for seeking environmental clearance certificate. Learned counsel for the petitioners also submits that in similar circumstances, Madhaya Pradesh High Court has directed the authorities to issue transport challan for removing the extracted minerals.
W.P. (C) No. 923 of 2013 I have heard learned counsel for the parties and have gone through the relevant materials on record. In the instant case, the mining lease of nine petitioners for major minerals have already expired and they have made application for renewal of their mining lease before the Competent Authority. From perusal of Annexure-4 of the writ petition itself, it appears that area granted for mining lease in respect of individual petitioners are beyond five hectares where the competent authority is the Ministry of Environment and Forest and which has the jurisdiction to grant environmental clearance in respect of mining lease beyond five hectares of area. These petitioners, however, have claimed that they need to transport their excavated minerals from the mining area in question, which were already excavated under lease granted to them. However, it is requirement of the provisions of notification issued under the Environmental Protection Act, 1986 that for all mining project of major minerals more than five hectares lease area, for renewal of their lease, environmental clearance is mandatory and as of now these petitioners have not obtained environmental clearance from the competent authority of the Ministry of Environmental and Forest. In these circumstances, the request made by the petitioners for grant of transport challan before complying with precondition of obtaining mandatory environmental clearance certificate, NOC from the competent authority with consent to operate from the State Pollution Control Board is not based on subsisting legal right to transport mineral which is said to be excavated on their behalf before the expiry of the mining lease. At the moment the mining lease have admittedly expired and thereafter, environmental W.P. (C) No. 923 of 2013 clearance certificate has not been taken at the time of application for renewal of permanent lease. The order relied upon by the the petitioner is only an interim order passed by the Madhya Pradesh High Court. In the present facts of the case, it is not practically possible to direct the respondent- authorities to ascertain whether the excavated mineral were extracted at the relevant point of time when the original lease was existing or not or thereafter. Therefore, the prayer made in the instant writ petition for directing the respondent to issue transport challan cannot be accepted. The petitioners will have to obtain necessary environmental clearance certificate from the competent authority as also NOC with consent to operate mining lease from the Pollution Control Board before they can lawfully operate the mines in question in respect of which the renewal application, is still pending before the competent authority. In these circumstances, I do not find any reason to interfere in the writ petition. However, it will be open to the petitioners to approach competent authorities for grant of such Environmental Clearance Certificate as also NOC that are mandatory requirement of law in respect of the mining lease in question. If such application is made before the competent authority for seeking environmental clearance certificate then he may consider the same in accordance with law withing a reasonable time.
However for the facts and reasons rendered hereinabove, this writ petition is, dismissed.
(Aparesh Kumar Singh, J.) Kamlesh/


You may do at most one HIT in this batch. We will reject submissions beyond the first.
In this experiment you will be asked to read some sentences. First you will see some lines like this:
_____ _______ ________ ___________ _____________ __________
These dashes are covering the words in the sentence. When you press the space bar, the first word will appear. With every press of the space bar, a new word will appear. You should try to read as naturally as possible, making sure that you understand what you read.
After reading the sentence, you will then be asked two questions regarding that sentence.
The first question will be about whether something happened or not. Your task will be to respond yes (by pressing the "1" key), maybe or maybe not (by pressing the "2" key), or no (by pressing the "3" key) to the question, assuming that the sentence is true.
For instance, you might get the sentence John managed to take out the trash and the question Did John take out the trash? In this case, you would respond yes (by pressing "1"), since if someone manages to take out the trash, that person has to have taken out the trash.
If the sentence were John failed to take out the trash and the question were the same, you would respond no (by pressing "3").
And if the sentence were John wanted to take out the trash and the question were the same, you might respond maybe or maybe not (by pressing "2").
We've included some sentences that may sound unacceptable. An "acceptable" sentence is something a native speaker of English would say, even if the situation the sentence describes sounds vague or implausible. Part of the task will include saying whether the bolded sentence is acceptable, where "1" is least acceptable and "7" is most acceptable. As for the first question, you should use the keyboard to give your acceptability judgment.
For instance, if you got the sentence John wanted it to snow, you might say that it may or may not have snowed and that that sentence is perfectly acceptable (by pressing "7").
But if you got the sentence John wanted that it snowed, you might say that that sentence is pretty unacceptable (for instance, by pressing "1" or "2"). Regardless of how acceptable the sentence is, you should still answer the first question to the best of your ability. So for instance, you might again say that is may or may not have snowed.
Try to answer both questions as quickly and accurately as possible. If you are unsure of the response (or if you think that more than one is right), try to pick the best answer.
Not all questions have correct answers, but a subset in each HIT do. Prior to approval, we check the answers given for this subset. We will reject work containing a substantial number of answers that do not agree with the correct answer.
When the experiment is over, a screen will appear telling you that you are done, and a submission button will be revealed.
This research is being carried out by Dr. Aaron White at the University of Rochester. You can read more about the study here.
| Age: | ||
| Sex: |
|
|
| Highest level of education: |
|
|
| Native Language: | ||
| Do you speak any other languages? (please list): |


The picture shows one large (yellow) and one small (green) gear. The distance between their centers is the equivalent length of one blue strut:


--- layout: post title: the plumen project date: '2008-01-14T06:52:46+00:00' tags: [] tumblr_url: http://backlog.robbevan.com/post/23709615/the-plumen-project ---
The Plumen Project


Contents
- Requirements
- Enabling CSS source maps
- Using Sass with CSS source maps
- CSS preprocessor support
- How CSS source maps work
- Resources
Many developers generate CSS style sheets using a CSS preprocessor, such as Sass, Less, or Stylus. Because the CSS files are generated, editing the CSS files directly is not as helpful.
For preprocessors that support CSS source maps, DevTools lets you live-edit your preprocessor source files in the Sources panel, and view the results without having to leave DevTools or refresh the page. When you inspect an element whose styles are provided by a generated CSS file, the Elements panel displays a link to the original source file, not the generated .css file.
To jump to the source file:
- Click the link to open the (editable) source file in the Sources panel.
- Control+click (or Command+click) on any CSS property name or value to open the source file and jump to the appropriate line.
When you save changes to a CSS preprocessor file in DevTools, the CSS preprocessor should re-generate the CSS files. Then DevTools reloads the newly-generated CSS file.
Requirements
There are a few requirements to note when working with a CSS preprocessor:
To use this workflow, your CSS preprocessor must support CSS source maps, specifically the Source Map v3 proposal. The CSS source maps must be built along with the CSS files, so DevTools can map each CSS property to the correct location in the original source file (for example, .scss file).
For the DevTools to automatically reload styles when you change the source file, your preprocessor must be set up to regenerate CSS files whenever a source file changes. Otherwise, you must regenerate CSS files manually and reload the page to see your changes.
You must be accessing your site or app from a web server (not a file:// URL), and the server must serve the CSS files as well as the source maps (.css.map) and source files (.scss, etc.).
-
If you are not using the Workspaces feature, the web server must also supply the
Last-Modified
header. The PythonSimpleHTTPServer
module provides this header by default. You can start a web server to serve the contents of the current directory like this:python -m SimpleHTTPServer
Currently Sass is the only preprocessor that supports CSS source maps, so this document describes how to work with Sass. Working with other preprocessors should be similar. For more information on the status of source map support in other preprocessors, see CSS preprocessor support.
Enabling CSS source maps
In Chrome 30 and later, CSS source maps are enabled by default. You can choose to enable automatic reloading of generated CSS files.
To enable CSS source maps and CSS reload (Chrome 30 and later):
Open DevTools Settings and click General.
Turn on Enable CSS source maps and Auto-reload generated CSS.
In Chrome 29 and earlier, CSS source maps are included in DevTools experiments and must be enabled explicitly.
To enable CSS source maps and CSS reload (Chrome 29 or earlier):
Open about:flags in Chrome.
Turn on Enable Developer Tools experiments.
Restart Chrome.
Open DevTools Settings and click Experiments.
Turn on Support for Sass (or Sass stylesheet debugging, depending on the browser version you're using).
Click General.
-
Turn on Auto-reload CSS upon Sass save.
If necessary, you can adjust the Timeout setting, which specifies the delay between the time you update a source file and the time that the browser reloads the CSS files. Timeout is specified in milliseconds, and defaults to 1000 (1 second).
This timeout is eliminated in newer versions of Chrome.
Using Sass with CSS source maps
To live-edit Sass files in Chrome you need to have the pre-release version of the Sass compiler, which is the only version that currently supports source map generation.
gem install sass -v '>=3.3.0alpha' --pre
Once Sass is installed, start the Sass compiler to watch for changes to your Sass source files and create source map files for each generated CSS file, for example:
sass --watch --sourcemap sass/styles.scss:styles.css
If you are using Compass, note that Compass doesn’t yet support the pre-release version of Sass, so you can’t use Sass debugging with Compass.
CSS preprocessor support
DevTools supports the Source Map Revision 3 proposal. This proposal is being implemented in several CSS preprocessors:
- Sass: As described above, this is supported in the prerelease version of Sass.
- Compass: Uses Sass internally but doesn't support source maps yet. Support is scheduled for a future release. See Issue 1293.
- Less: Under development. See issue #1050.
- Stylus: Under consideration. See issue #1072.
How CSS source maps work
For each CSS file it produces, the preprocessor generates a source map file (.map file) in addition to the compiled CSS. The source map file is a JSON file that defines a mapping between each generated CSS declaration and the corresponding line of the source file. Each CSS file contains an annotation that specifies the URL of its source map file, embedded in a special comment on the last line of the file:
/*# sourceMappingURL=<url> */
For instance, given an SCSS file named styles.scss:
$textSize: 26px; $fontColor: red; $bgColor: whitesmoke; h2 { font-size: $textSize; color: $fontColor; background: $bgColor; }
Sass generates a CSS file, styles.css, with the sourceMappingURL annotation:
h2 { font-size: 26px; color: red; background-color: whitesmoke; } /*# sourceMappingURL=styles.css.map */
Below is an example source map file:
{ "version": "3", "mappings":"AAKA,EAAG;EACC,SAAS,EANF,IAAI;EAOX,KAAK" "sources": ["sass/styles.scss"], "file": "styles.css" }
Resources
Many users have developed their own workflows using CSS preprocessors. See the following external articles for tutorials and alternate workflows.


File Upload
View Html
View Configuration
Basic usage
allow multiple files
Try it yourself
{NbFileUploaded}
files uploaded
Customize display
Uploader appearance can be modified with css
as an image
as a button
as a link


Tufts University
queue-rona is queue system that helps contain the spread of COVID in university dining halls
Staff
Login
Student
Book Reservation


Hi I'd be interested if it is possible to add those two ratios to the statistics?
I'd like to know with what weapon I get the best Headshot to enemies hit ratio. If that isn't possible a simple Headshot to shots fired would be ok too.
Thanks in advance and also thanks for the awesome plugin
BrainFooLong
Administrator
Already exist in 1.7 (but buggy)
More information don't exist at the moment at this place.


Welcome to my cheat sheet! I'm going to edit this document as I progress through dev bootcamp, documenting those concepts that I find are essential to know.
Ruby BASICS
Material coming soon!Ruby Enumerables
The ruby enumberable methods are used to iterate through each component of an object:- each object of an array
- each key-value pair of a hash
- each key of a hash
- each value of a hash
- each number in a range
- #each
- performs a specific block of code for each object in an array, or for each key-value pair in a hashnums = [1,2,3,4,5]
nums.each {|num| puts num*2}2
4
6
8
10
- #reverse_each
- the same as #each, except that iterates through each object backwardsnums = [1,2,3,4,5]
nums.reverse_each {|num| puts num*2}10
8
6
4
2
- #map
- creates a new array, replacing each value of the current array with the output of the code block passed at every iterationnums = [1,2,3,4,5]
nums.map {|num| num*3}[3,6,9,12,15] - #collect
- same as the #map method - #select
- creates a new array with the values from the original array that satisfy a condition imposed by the blocknums = [1,2,3,4,5]
nums.select {|num| num % 2 == 0}[2,5] - #inject
- works like the #each method, except it also defines a variable whose value is set to the output of every iteration (the starting point of this variable must be defined)
nums = [1,2,3,4,5]
nums.inject(0) {|sum, num| sum += num}15 - #cycle
- works like the #each method, except it doesn't stop at the last iteration. It starts from the beginning again and cycles through the code an unlimited amount of times, unless a specific cycle count is defined, or if there is a specific breaking pointnums = [1,2,3,4,5]
i = 0
nums.cycle {|num| puts num; i += 1; break if i == 15}1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
nums = [1,2,3,4,5]
nums.cycle(3) {|num| puts num}1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
- #include?
- returns true or false if the array it is called on includes a specific value
nums = [1,2,3,4,5]
nums.include?(3)
nums.include?(6)true
false
Ruby Hashes, Arrays, Strings, Integers
Material coming soon!JavaScript Objects
Material coming soon!JavaScript prototypes
Material coming soon!Looping in Ruby and Javascript (comparisons)
Material coming soon!HTML
Material coming soon!CSS
Material coming soon!GIT
Material coming soon!SQL
Material coming soon!Copyright: Gary Hammell 2014


[gecode-users] Linear Diophantine Equations
Christian Schulte
cschulte at kth.se
Wed Jan 4 12:03:12 CET 2017
Hi Neill,
Gecode uses standard propagation techniques for linear equations: depending
on the size and values of the a_i propagation tends to be rather weak. It
can use domain consistent propagation for the linear constraint but its
complexity is exponential.
It might work reasonably well for small r but why not using a linear integer
programming solver:
https://en.wikipedia.org/wiki/Integer_programming
Cheers
Christian
--
Christian Schulte, www.gecode.org/~schulte
Professor of Computer Science, KTH, cschulte at kth.se
Expert Researcher, SICS, cschulte at sics.se
-----Original Message-----
From: users-bounces at gecode.org [mailto:users-bounces at gecode.org] On Behalf
Of Neill Clift
Sent: Wednesday, January 4, 2017 01:00
To: users at gecode.org
Subject: [gecode-users] Linear Diophantine Equations
Hi,
I was wondering if people thought if constraint satisfaction in general and
more specifically gecode was suitable for solving quickly a system system
like this:
$a_1x_1+a_2x_2+...+a_rx_r=n$
$1 \leq a_i$
$1 \leq x_i \leq 2^l$
$1 \leq l$
All variables are integers. a_i is given. We want to find the x_i's.
I have billions of these problems that I could attempt to solve in an
algorithm I have for computing optimal addition chains. Currently I am only
solving cases with $r=2$ using extended gcd. This gives me a very powerful
prune in the code.
Do you think gecode solves these type of problems efficiently? I know I can
do the equivalent of extended gcd in higher dimensions with the Blankinship
algorithm etc and then try to enumerate solutions via the specific solution
and the null space but I haven't managed to achieve anything with this
approach yet.
What techniques does gecode use to solve such systems (assuming you have
something special for linear constraints)?
I have written code using gecode before so I am familiar with it's usage. I
am just trying to understand if it might be a good approach or if there are
good approaches from constraint satisfaction.
Thanks.
Neill.
_______________________________________________
Gecode users mailing list
users at gecode.org
https://www.gecode.org/mailman/listinfo/gecode-users
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4623 bytes
Desc: not available
URL: <http://www.gecode.org/pipermail/users/attachments/20170104/f8aa1ea7/attachment.bin>
More information about the users
mailing list


Total calls
124
Total Leads
124
Rate Convertion
124
8% Lower than last month
Doing better than 86% of the rest of coworkers


--- layout: post title: "Bounding box semigroup" description: "A semigroup example for object-oriented programmers." date: 2017-12-04 8:40 UTC tags: [Software Design] image: "/content/binary/bounding-box-with-identity-candidates.png" image_alt: "Bounding box with candidates for an identity element." --- {% include JB/setup %}
{{ page.description }}
This article is part of a larger series about monoids, semigroups, and other group-like algebraic structures. In this article, you'll see a non-trivial example of a semigroup that's not a monoid. In short, a semigroup is an associative binary operation.
Imagine that you're developing a library of two-dimensional shapes, and that, for various reasons, each shape should have a bounding box. For example, here's a blue circle with a green bounding box:
The code for a circle shape could look like this:
public class Circle : ICanHasBox { public int X { get; } public int Y { get; } public int Radius { get; } public Circle(int x, int y, int radius) { this.X = x; this.Y = y; this.Radius = Math.Abs(radius); } public BoundingBox BoundingBox { get { return new BoundingBox( this.X - this.Radius, this.Y - this.Radius, this.Radius * 2, this.Radius * 2); } } }
In addition to the Circle
class, you could have other shapes, such as rectangles, triangles, or even irregular shapes, each of which have a bounding box.
If you have two shapes, you also have two (green) bounding boxes, but perhaps you'd like to find the (orange) bounding box of the union of both shapes.
That's fairly easy to do:
public BoundingBox Unite(BoundingBox other) { var newX = Math.Min(this.X, other.X); var newY = Math.Min(this.Y, other.Y); var newRightX = Math.Max(this.rightX, other.rightX); var newTopY = Math.Max(this.topY, other.topY); return new BoundingBox( newX, newY, newRightX - newX, newTopY - newY); }
The Unite
method is an instance method on the BoundingBox
class, so it's a binary operation. It's also associative, because for all x
, y
, and z
, isAssociative
is true
:
var isAssociative = x.Unite(y).Unite(z) == x.Unite(y.Unite(z));
Since the operation is associative, it's at least a semigroup.
Is Unite
also a monoid? In order to be a monoid, a binary operation must not only be associative, but also have an identity element. In a previous article, you saw how the union of two convex hulls formed a monoid. A bounding box seems to be conceptually similar to a convex hull, so you'd be excused to think that our previous experience applies here as well.
It doesn't.
There's no identity bounding box. The difference between a convex hull and a bounding box is that it's possible to define an empty hull as an empty set of coordinates. A bounding box, on the other hand, always has a coordinate and a size.
public struct BoundingBox { private readonly int rightX; private readonly int topY; public int X { get; } public int Y { get; } public int Width { get; } public int Height { get; } // More members, including Unite... }
An identity element, if one exists, is one where if you Unite
it with another BoundingBox
object, the return value will be the other object.
Consider, then, a (green) BoundingBox x
. Any other BoundingBox
inside of x
, including x
itself, is a candidate for an identity element:
In a real coordinate system, there's infinitely many candidates contained in x
. As long as a candidate is wholly contained within x
, then the union of the candidate and x
will return x
.
In the code example, however, coordinates are 32-bit integers, so for any bounding box x
, there's only a finite number of candidates. Even for the smallest possible bounding box, though, the box itself is an identity candidate.
In order to be an identity element, however, the same element must behave as the identity element for all bounding boxes. It is, therefore, trivial to find a counter-example:
Just pick any other BoundingBox y
outside of x
. Every identity candidate must be within x
, and therefore the union of the candidate and y
cannot be y
.
In code, you can demonstrate the lack of identity with an FsCheck-based test like this:
[Property(QuietOnSuccess = true)] public Property UniteHasNoIdentity(PositiveInt w, PositiveInt h) { var genCandidate = from xi in Gen.Choose(1, w.Get) from yi in Gen.Choose(1, h.Get) from wi in Gen.Choose(1, w.Get - xi + 1) from hi in Gen.Choose(1, h.Get - yi + 1) select new BoundingBox(xi, yi, wi, hi); return Prop.ForAll( genCandidate.ToArbitrary(), identityCandidate => { var x = new BoundingBox(1, 1, w.Get, h.Get); // Show that the candidate behaves like identity for x Assert.Equal(x, x.Unite(identityCandidate)); Assert.Equal(x, identityCandidate.Unite(x)); // Counter-example var y = new BoundingBox(0, 0, 1, 1); Assert.NotEqual(y, y.Unite(identityCandidate)); }); }
This example uses the FsCheck.Xunit glue library for xUnit.net. Notice that although FsCheck is written in F#, you can also use it from C#. This test passes.
It follows the above 'proof' by first generating an identity candidate for x
. This is any BoundingBox
contained within x
, including x
itself. In order to keep the code as simple as possible, x
is always placed at the coordinate (1, 1).
The test proceeds to utilise two Guard Assertions to show that identityCandidate
does, indeed, behave like an identity for x
.
Finally, the test finds a trivial counter-example in y
, and verifies that y.Unite(identityCandidate)
is not equal to y
. Therefore, identityCandidate
is not the identity for y
.
Unite
is a semigroup, but not a monoid, because no identity element exists.
This article demonstrates (via an example) that non-trivial semigroups exist in normal object-oriented programming.
Next: Semigroups accumulate.
Comments
Thanks
Yacoub, thank you for writing. The operation used here isn't the intersection, but rather the union of two bounding boxes; that's the reason I called the method
Unite
.Hello Mark. I am aware of this, but maybe I did not explain my self correctly.
What I am trying to say is that when coming up with a counter-example, we should choose a BoundingBox y wholly outside of x (not just partially outside of x).
If we choose a BoundingBox y partially outside of x, then the intersection between x and y (the BoundingBox z = the area shared between x and y) is a valid identity element.
Yacoub, I think you're right; sorry about that!
Perhaps I should have written Just pick any other
BoundingBox y
partially or wholly outside of the candidate. Would that have been correct?That would be correct. I am not sure though if this is the best way to explain it.
y being wholly ourside of x seems better to me.
Yacoub, I've corrected the text in the article. Thank you for the feedback!


Tucked into the extreme southern end of Kotorski Zaliv in the Gulf of Kotor, this walled town is a delight to visit. The ‘Old Town’ in Kotor is the best preserved town centre from the Middle Ages in the Mediterranean, and is typical of those in the region that were built in the 12th and 14th centuries. It is a World Heritage site.
Position 18°46'36"E, 42°26'27"N.
This is a Port of Entry.
See Montenegro Formalities for full details on clearing into and out of the country.
Berth at the Customs Dock for clearing in. Harbourmaster and Customs offices are on the quay. Cruisers have reported however that it is difficult to hail the Harbourmaster on VHF for berthing instructions and the Customs Dock is often busy with cruise ships.
Last updated March 2010.
The harbour, located in Boka Kotorska bay, is right under the walls of the old city.
Kotor Marina is located at the SE end of the main dock, identified by a small sign. The pontoons have lines tailed to the dock, marina staff direct you to a berth. Will often be crowded at weekend in the season.
You can also berth in the river entrance, near the harbour office, if the dock is free and not busy with cruise ships. It is quiet and sheltered here but can be subject to a strong current.
There is also an anchorage 7m north of the town.
Another berth may be found at the small village of Muo, a mile from Kotor. It has a quay and there is a bus service into Kotor.
The Porto Montenegro, located in the Bay of Kotor, near Tivat city, is aimed primarily at superyachts. It is visible by the tall red and white striped crane located in the middle of its main dock.
Last updated March 2010.


This is a fork of jashkenas's Ember/Backbone benchmark. Note that this is just a simple benchmark: you wouldn't be doing this in an actual app.
You may want to reload the page and give some warmup cicles before reading performance.


About DreamOps
We are Force.com enterprise developers who want to solve the technical problems we encounter when creating large or complex custom solutions and packages by working with other developers and the Force.com creators.
We care about curating large bodies of Apex code (> 1mb), maintaining large sets of unit tests (> 500), managing legacy data integrations, developing sophisticated Visualforce pages, and creating innovative Salesforce1/Heroku1 applications.
Our goal is to push Force.com cloud development to new heights.
The DreamOps Success Group is a technical forum with a strict focus on development issues. It is not a place for job postings, professional networking, general-interest announcements, or sales and marketing discussions. It's a place where we create and share hardcore technical solutions. If you are ready to get your geek on, join the DreamOps group today!
The DreamOps Manifesto is a prioritized roadmap of Force.com Ideas that we believe will push the platform to new heights, along with a punchlist of existing features most essential to enterprise development. Upvote the ideas and sign the manifesto today!


Advanced Football Academy runs the following training programs annually. Please refer to advancedfootballacademy.com.au/training.html for more information about the benefits of each program.
AFA is now calling on parents/players to register their interest to participate in the upcoming 2016 10 week off-season program. Please choose the sessions below that your child/player is able to attend. Girls session starting Wednesday 14th September 2016 both boys sessions starting Thursday 15th September 2016. Refer to the following link for further information.
5:15pm – 6:30pm
6:30pm - 7:45pm
e.g. Child/player's special needs or requirements, you would like your child to have small focused group or one-on-one training, or what you would like to achieve from the sessions, etc
Click to review Terms and Conditions


Write a function called countdown that accepts a number as a parameter and every 1000 milliseconds decrements the value and console.logs it. Once the value is 0 it should log “DONE!” and stop.
countDown(4); // 3 // 2 // 1 // "DONE!"


SARNA- pramoxine hydrochloride lotion
Stiefel Laboratories, Inc
Disclaimer: Most OTC drugs are not reviewed and approved by FDA, however they may be marketed if they comply with applicable regulations and policies. FDA has not evaluated whether this product complies.
For external use only
Caution -- Do not use in the eyes or nose. Not for prolonged use. Do not apply to large areas of the body. If redness, irritation, swelling, or pain persists or increases, discontinue use unless directed by a physician.
Adults and children 2 years of age and older:
Children under 2 years of age: consult a doctor.
benzyl alcohol, carbomer 940, cetyl alcohol, dimethicone, glyceryl stearate, isopropyl myristate, PEG-8 stearate, PEG-100 stearate, petrolatum, purified water, sodium hydroxide, stearic acid
Find more about Sarna!
Stiefel Laboratories, Inc.
Research Triangle Park, NC 27709
www.sarna-skincare.com
Made in Canada
NDC 0145-0630-05
Sarna®
SENSITIVE
Pramoxine Hydrochloride 1%
ANTI-ITCH LOTION
Steroid-Free and Fragrance-Free
DERMATOLOGIST Recommended
DRY, SENSITIVE SKIN
ECZEMA
Net Wt. 7.5 Fl Oz. (222 mL)
Front Label: A099717
Back Label: A099718
|
SARNA
pramoxine hydrochloride lotion | ||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||
|
| Labeler - Stiefel Laboratories, Inc (808842343) |


{% extends 'wildlifecompliance/emails/base_email.html' %} {% block content %}
Your application has been submitted with below details.
{% if application.application_fee > 0 %}Please ensure that your payment for the application fee is processed as soon as possible to avoid delays processing your application. An email will be sent confirming your payment. If you have not yet paid, you can log into the system and click on the Process Payment link for the application.
{% endif %}Application: {{ application.id }}
Link: {{url}}
Note: If you haven't logged into the Wildlife Licensing System recently you may need to login first before using the provided link.
{% endblock %}


Code Coverage |
|||||||||
Lines |
Functions and Methods |
Classes and Traits |
|||||||
| Total | |
29.14% |
422 / 1448 |
|
24.54% |
106 / 432 |
|
3.70% |
1 / 27 |
| Connectors | |
72.73% |
24 / 33 |
|
55.56% |
5 / 9 |
|
0.00% |
0 / 2 |
| Console | |
42.28% |
63 / 149 |
|
60.71% |
17 / 28 |
|
12.50% |
1 / 8 |
| Eloquent | |
14.11% |
35 / 248 |
|
7.46% |
5 / 67 |
|
0.00% |
0 / 2 |
| Migrations | |
6.67% |
9 / 135 |
|
6.82% |
3 / 44 |
|
0.00% |
0 / 3 |
| Query | |
15.04% |
80 / 532 |
|
12.43% |
21 / 169 |
|
0.00% |
0 / 5 |
| Connection.php | |
44.23% |
92 / 208 |
|
39.19% |
29 / 74 |
|
0.00% |
0 / 1 |
| ConnectionInterface.php | |||||||||
| Grammar.php | |
68.97% |
20 / 29 |
|
58.33% |
7 / 12 |
|
0.00% |
0 / 1 |
| MigrationServiceProvider.php | |
91.80% |
56 / 61 |
|
91.67% |
11 / 12 |
|
0.00% |
0 / 1 |
| MySqlConnection.php | |
33.33% |
2 / 6 |
|
40.00% |
2 / 5 |
|
0.00% |
0 / 1 |
| QueryException.php | |
85.71% |
12 / 14 |
|
50.00% |
2 / 4 |
|
0.00% |
0 / 1 |
| SeedServiceProvider.php | |
81.82% |
9 / 11 |
|
33.33% |
1 / 3 |
|
0.00% |
0 / 1 |
| Seeder.php | |
90.91% |
20 / 22 |
|
60.00% |
3 / 5 |
|
0.00% |
0 / 1 |


PRF or MegaTIFF is an internal format of PHOTOMOD software for storing large images.
This format was developed to store images larger than 4 GB. As a basis for storing data used TIFF or JPEG2000 format. Raster is split into fragments (tiles) such that each fragment does not exceeded a predefined size (e.g., less than 1 GB). An overview file also added to process raster data on a small scales.
PRF files has two variations: 'prf' for imagery data and 'x-dem' for elevation data. Files can be georeferenced, but projection information can be stored only in external files (*.prj).
Image format has the following structure:
The driver support the data type among Byte, UInt16, UInt32, Float32 or Float64.


Modularity is a fundamental aspect of the design of Bau. The core Bau library is as small as possible. It's plugins that add colour to the show.
A Bau plugin is a scriptcs script pack, which currently needs to be compiled as DLL, e.g. using Visual Studio. In a future release of scriptcs, it will possible to write script packs as scripts (.csx files). After you have compiled your plugin into a DLL, you can either:
- package it as a NuGet package, push it the NuGet gallery and install it next to your baufile using `scriptcs -install` or
- just copy the DLL to a `/bin` folder next to your baufile
HelloWorld
The following example is close to the simplest task plugin you could write.
Plugin
public class HelloWorld : BauCore.Task
{
protected override void OnActionsExecuted()
{
System.Console.WriteLine("Hello world!");
}
}
Usage
Require().Task().Execute();
Greeter
Here's a slightly more advanced example which has:
- a property which can be set in the
Action
defined in Do()
when defining a task
- an extension method
Greeter()
providing direct access to the plugin without having to use the generic syntax Task()
Plugin
namespace BauGreeter
{
using BauCore;
public class Greeter : Task
{
public string Greeting { get; set; }
protected override void OnActionsExecuted()
{
System.Console.WriteLine(this.Greeting);
}
}
public static class Plugin
{
public static IBau Greeter(this IBau bau, string name = Bau.DefaultTask)
{
return new Bau(bau, name);
}
}
}
Usage
Require().Greeter().Do(g => g.Greeting = "Hello world!").Execute();


Website Redesign, 2015 Edition
Static site generated using gulp, jekyll, and SCSS, hosted on github.
Every other year I go through a molting cycle where I shed my old website and build something new. With each iteration, I try to make it a little cleaner, a little easier to use. It’s an opportunity to re-examine my toolbox, and experiment with things I’ve been meaning to try. One of the best discoveries this cycle has been a really fast, powerful setup for building static marketing or blog sites.
This post is less about the design decisions I made and more about the technical tools I used to turn the design into something real. The main engine behind the entire setup is jekyll, a tool for taking a collection of markdown files and reusable template code and outputting flat, vanilla HTML.
What makes this particular setup special, however, is that jekyll is wrapped inside a tool called gulp.js, which handles all the menial tasks you would normally need, such as minifying your code, building a sitemap.xml, and performing live reloading of the browser during active development.
This provides us all the benefits of a plain HTML site (lightning fast load times, few moving parts for easier debugging), with all the convenience of modern development (templating and code partials, automatic task running, live browser reload). On top of that, github is made to host jekyll sites easily, turning the ordinaly tedious process of launching and pushing changes to a website into a simple affair. This is the perfect setup for prototyping websites and landing pages.
You can follow along if you want to duplicate this setup. It will require some command line work, but it’s relatively minimal.
Out with the old
This is v5 of my site (2013 edition), which you can check out on archive.com if you’re bored.
The design
Since personal sites have very few design or technical constraints, I wanted to experiment with some new grid systems. I used flex box grid system, which I’d highly recommend. It’s worth mentioning that Foundation for Apps was recently released, which also uses a flexbox grid system — though I personally haven’t tried it yet.
Working with flexbox was not all that different from working with a standard bootstrap or foundation grid system, except the grid blocks tend to have slightly more sensical behavior than I’m familiar with. Because I’m used to the old way, there’s a bit of a learning curve to pick it up — but it’s hardly noticeable.
Typographically speaking, I chose Abril Text for body copy and Abril Titling for headlines. Its history in editorial work and tasty italic lean complimented my odd 2/3 layout and matched the whitespacey look I was going for. I used Type Scale to build a font-size scale, and used that same scale to create strips of ‘lead’ spacers (an homage to moveable lead type). All block-level elements such as section
and p
tags receive either one, two, or three lead on the bottom only to create a satisfying vertical rhythm. The net result is that multiple columns of text will always be baseline-aligned since the measurements are based on the same building blocks.
Gulpfile.js & Automation
Begin by either forking the repo for this website or by replecating this site structure. While there is a certain amount of flexibility, jekyll dictates a certain directory structure. (Jekyll is the tool that makes running a static blog easy by turning markdown files into html files.) I’ve included links to example files you can copy and customize on your own.
|- _posts |--- yyyy-mm-dd-post-title.md (example) |- _layouts |--- default.html (example) |- _site (leave empty — your static site will be generated to this directory) |- _config.yml (example) |- index.html (start working here) |- gulpfile.js (example) |- package.json (example) |- .gitignore (example)
Though not required, you should also run both git init
and bower init
from the command line in the root of your site directory. The first command will start a local git repo which you can later deploy to github pages to make your site public easily. Use the bower command if you’re interested in using bower to manage javascript dependencies.
Setup can be tough to get used to, but once it’s all working, a single command: npm start
will start a chain of processes that installs and updates any missing dependencies, rebuilds and watches all of your files for changes, starts a local server with livereload and CSS inject to show your code changes realtime in the browser, rebuilds the sitemap, AND minifies and concatenates CSS and JS files for production.
Deploying to Github pages
Once you have a local site you’re happy with, deploying it to github pages is quite simple.
The first step is making sure you have created a repository on github.com and have pushed your local repository to it. Once done, you’ll be able to follow this helpful guide on github page’s own site.
Once everything is working, notice there is a block in gulpfile.js
that automates the github pages deploy process.
Once everything is working, updating your blog is easy. You just run npm start
to begin your static site generator and local server, then add a new markdown file to the _posts
directory. You’ll be able to watch your site regenerate every time you make changes to the new post. When you’re satisfied, commit your changes and run gulp deploy
to push everything live.
Happy building!


Mavic 2 Pro
The mavic 2 offers iconic Hasselblad image quality on the Pro and a high-perfomance zoom lens on the Zoom
USD $1,499
Shipping: Free
Features
Hassebled camera
1" CMOS Sensor
10-bit HDR Video
Adjustable Aperture
Hyperlapse
10-bit Dlog M


Pick a suburb
Newmarket
Ponsonby
Region Sales
(Last 3 Months)
Average Price Sold for:
CV difference in (%)


{% extends "layout.html" %} {% block login_header%} {% if current_user.is_authenticated %}
Hi {{ current_user.username }}, happy hunting!
v3What's new?
MarpoDB is a gene-centric resource of Marchantia polymorpha Cam-1 genetic parts for engineering and plant synthetic biology. For more information visit our about or help page.
Search by protein/family name, InterPro/GO term or Phytozome/MarpoDB ID


--- layout: article title: 404 - Page not found permalink: /404.html --- Sorry, we could not find the page you are looking for.


You are remotely monitoring and controlling the AutoFerry in a shore control center (SCC). Your task is to safely transport as many people as possible form one docking station across the channel. The max capacity is 12 people at a time. You decide when the ferry should start. The ferry will move in a straight line across the channel and automatically stop on the other side. The circle around the ferry indicates the status of the anti-collision system. It is green when it functions, yellow when something is detected and red when the system is impaired. The anti-collision system will make the ferry stop when an object is detected within the range of 1.5 meters from the ferry.
You can see the status of the technical system on the right side of the interface, shown below. You have three different options for controlling the ferry, and three options for notifying the passengers and surroundings. A short description of the different options follows:
Start/Stop: by pushing this button the ferry immediately stops, push the button again for starting the ferry, it will automatically reach its standard speed of 3kn.
Speed up: increase its speed by 1 kn per push
Speed down: decreases the speed by 1kn per push
Signal the surroundings by sound from an air horn. Length of blast depending on how long you push the button.
Communicate to passenger: Push this button and record your message
Maintenance needed! Push this button to notify the maintenance crew of needed action. The ferry will stop at the next dock for repair, and passengers will be automatically notified that the ferry is out of service.
Control rules:
Yield for boats and kayakers from the right! (compliance with COLREG rules)
Stop ferry if the anti-collision system fails (if the circle around the ferry turns red).
If necessary, warn other boats by sound signal. The circle around the boat turns yellow when it detects objects 5m from the ferry.
Rules for startup:
Do not start the ferry if the load exceeds 12 passengers
Do not start the ferry if the wind speed is above 15kn
In case of technical failures and impaired systems:
The ferry shall not operate with an impaired anti-collision system
The ferry shall not operate with two or more impaired thrusters (yellow status).
The ferry shall not operate with a failed thruster (red status)
In these cases notify the maintenance crew and stop at next docking station.
The ferry can operate with one impaired thruster (yellow status). In this case, notify the maintenance crew.


This is the help file for DeltaGene.
Contents
Introduction
General usage
Operators and output
Browser
Source
HPO Browser
The HPO browser is a tool that can be used to explore the heirarchy of HPO terms in the database and can be accessed from the menubar at the top of DeltaGene
From here you can search using the searchbox at the top of the browser and list genes belonging to the selected phenotypes.
You can also add the phenotypes to an input box by selecting an input from the dropdown box at the top of the browser and clicking "Add".


Plugins
Plugins are essentially a set of hooks, that receive an optional config object and a flatpickr instance.
Functionality requested by users that doesn’t make it to core usually ends up in a plugin. The flatpickr
repo comes with a few plugins.
confirmDate
Provides a visual cue for users after selecting either:
- date + time
- multiple dates
{
"enableTime": true,
"plugins": [new confirmDatePlugin({})]
}
A spiffy SVG icon is included, along with sane defaults, but you can customize them.
Here are all the available options:
{
confirmIcon: "<i class='fa fa-check'></i>", // your icon's html, if you wish to override
confirmText: "OK ",
showAlways: false,
theme: "light" // or "dark"
}
weekSelect
For selecting a week.
flatpickr({
"plugins": [new weekSelectPlugin({})],
"onChange": [function(){
// extract the week number
// note: "this" is bound to the flatpickr instance
const weekNumber = this.selectedDates[0]
? this.config.getWeek(this.selectedDates[0])
: null;
console.log(weekNumber);
}]
});
rangePlugin (beta)
Range selection using two inputs.
flatpickr({
"plugins": [new rangePlugin({ input: "#secondRangeInput"})]
});
MinMaxTimePlugin (beta)
Custom minTime and maxTime per date.
{
enableTime: true,
minDate: "2025",
plugins: [
new minMaxTimePlugin({
table: {
"2025-01-10": {
minTime: "16:00",
maxTime: "22:00"
}
}
})
]
};
monthSelectPlugin
Show a month-only calendar view
{
plugins: [
new monthSelectPlugin({
shorthand: true, //defaults to false
dateFormat: "m.y", //defaults to "F Y"
altFormat: "F Y", //defaults to "F Y"
theme: "dark" // defaults to "light"
})
]
};


--- layout: default --- {{ site.title | escape }}
First published: {{ page.date | date: "%Y-%m-%d" }}


Web Audio Injector
Audio Context is suspended. Click to resume.
PLAY
Status
Data Socket
INIT
Audio Socket
INIT
Audio File
Channels
INIT
Sample Rate
INIT
Bit Depth
INIT
Frame Count
INIT
Buffer Length
INIT


Battlelog has recently added many changes into the emblem editor, and now the canvas size of the editor is 512(height) x 512(width). BBLog 4.7.0 still uses 320x320, so 512x512 canvas support needed.
For example, an overlay image is shown as 320x320.
EmbEdit-canvassize1.jpg
BBLog version: 4.7.0
Browser: Firefox 36.0.1


|
|
Introduction The problem In the end there are 2 groups of friends: one group is {1, 2, 4, 5}, the other is {3}. The solution Let’s see how things will work with sets for the example of the problem. The groups will be represented by sets, and the representative of each group is the person with the biggest index. At the beginning there are 5 groups (sets): {1}, {2}, {3}, {4}, {5}. Nobody is anybody’s friend and everyone is the representative of his or her own group. The next step is that 1 and 2 become friends, this means the group containing 1 and the group with 2 will become one group. This will give us these groups: {1, 2} , {3}, {4}, {5}, and the representative of the first group will become 2. Next, 5 and 4 become friends. The groups will be {1,2}, {3}, {4, 5}. And in the last step 5 and 1 become friends and the groups will be {1, 2, 4, 5}, {3}. The representative of the first group will be 5 and the representative for second group will be 3. (We will see why we need representatives later). At the end we have 2 sets, the first set with 4 elements and the second with one, and this is the answer for the problem example: 2 groups, 1 group of 4 and one group of one. Perhaps now you are wondering how you can check if 2 persons are in the same group. This is where the use of the representative elements comes in. Let’s say we want to check if 3 and 2 are in the same group, we will know this if the representative of the set that contains 3 is the same as the representative of the set that contains 2. One representative is 5 and the other one is 3; therefore 3 and 2 aren’t in same groups of friends. Some operations
The solution using these operations Read N; for (each person x from 1 to N) CREATE-SET(x) for (each pair of friends (x y) ) if (FIND-SET(x) != FIND-SET(y)) MERGE-SETS(x, y) Now if we want to see if 2 persons (x, y) are in same group we check if FIND-SET(x) == FIND-SET(y). We will analyze the running time of the disjoint-set data structure in terms of N and M, where N is the number of times that CREATE-SET(x) is called and M is the total number of times that CREATE-SET(x), MERGE-SETS(x, y) and FIND-SET(x) are called. Since the sets are disjoint, each time MERGE-SETS(x, y) is called one set will be created and two will be destroyed, giving us one less set. If there are n sets after n-1 calls of MERGE-SETS(x,y) there will remain only one set. That’s why the number of MERGE-SETS(x,y) calls is less than or equal to the number of CREATE-SET(x) operations. Implementation with linked lists Now let’s see how to implement the MERGE-SETS(x, y) operations. The easy way is to append x’s list onto the end of y’s list. The representative of the new set is the representative of the original set that contained y. We must update the pointer to the representative for each element (object) originally on x’s list, which takes linear time in terms of the length of x’s list. It’s easy to prove that, in the worst case, the complexity of the algorithm will be O(M^2) where M is the number of operations MERGE-SETS(x, y). With this implementation the complexity will average O(N) per operation where N represents the number of elements in all sets. The “weighted union heuristic” So far we reach an algorithm to solve the problem in O(M + NlogN) where N is the number of persons and M is the number of friendships and a memory of O(N). Still the BFS will solve the problem in O(M + N) and memory of O(N + M). We can see that we have optimized the memory but not the execution time. Next step: root trees Step 1: nobody is anybody friend We have 5 trees and each tree has a single element, which is the root and the representative of that tree. Step 2: 1 and 2 are friends, MERGE-SETS(1, 2): The operation made is MERGE-SETS(1, 2). We have 4 trees one tree contain 2 elements and have the root 1. The other trees have a single element. Step 3: 5 and 4 are friends, MERGE-SETS(5, 4) The operation made is MERGE-SETS(5, 4). Now we have 3 trees, 2 trees with 2 elements and one tree with one element. Step 4: 5 and 1 are friends, MERGE-SETS(5, 1) The operation made is MERGE-SETS(5, 1). Now we have 2 trees, one tree has 4 elements and the other one has only one element. As we see so far the algorithm using rooted trees is no faster than the algorithm using linked lists. Two heuristics To implement a disjoint set forest with these heuristics, we must keep track of ranks. With each node x, we keep the integer value rank[x], which is bigger than or equal to the number of edges in the longest path between node x and a sub-leaf. When CREATE-SET(x) is called the initial rank[x] will be 0. When a MERGE-SETS(x, y) operation is made then the root of higher rank will become the parent of the root of lower rank – or, in case of tie, we arbitrarily choose one of the roots as the parent and increment its rank. Let’s see how the algorithm will look. Let P[x] = the parent of node x. CREATE-SET(x) P[x] = x rank[x] = 0 MERGE-SETS(x, y) PX = FIND-SET(X) PY =FIND-SET(Y) If (rank[PX] > rank[PY]) P[PY] = PX Else P[PX] = PY If (rank[PX] == rank[PY]) rank[PY] = rank[PY] + 1 And the last operation looks like: FIND-SET(x) If (x != P[x]) p[x] = FIND-SET(P[X]) Return P[X] Now let’s see how the heuristics helped the running time. If we use only the first heuristic “union by rank” then we will get the same running time we achieved with the weighted union heuristic when we used lists for representation. When we use both “union by rank” and “path compression,” the worst running time is O( m α(m,n)), where α(m,n) is the very slowly growing inverse of Ackermann’s function. In application α(m,n) <= 4 that’s why we can say that the running time is linear in terms of m, in practical situations. (For more details on Ackermann’s function or complexity see the references below.) Back to the problem Practice To practice what you've learned, try to solve GrafixMask – the Division 1 500 from SRM211. The idea is to keep track of all the blocks and consider each grid point as a node. Next, take all the nodes that aren’t blocked and let (x, y) be the coordinate of the left, right, down or up node, and if (x, y) is not blocked then you do the operation MERGE-SETS(node, node2). You should also try to determine how disjoint-set data structures can be used in the solution of RoadReconstruction from SRM 356. Disjoint-set data structures can also be used in TopographicalImage from SRM 210 and PathFinding, from SRM 156. I hope you find this data structure to be useful. Good luck in the Arena! References:
|
|
|
Home |
About TopCoder |
Press Room |
Contact Us |
Careers |
Privacy |
Terms
Competitions | Cockpit |
| Copyright TopCoder, Inc. 2001-2011 |


Simulated monthly Arctic mean surface energy budget components for each of the simulations
(see Methods).
(
a) Net shortwave radiation, (
b) Net surface flux (i.e. radiative fluxes plus turbulent fluxes). Downward fluxes
are defined positive. The legend shows the forcing season. The uncertainty band represents
the 95% confidence interval of the mean.


IMPORTANT NOTE! Experimental solutions, written in ES6. This code works in Firefox only!!! Problem 1. Exchange if greater Write an if statement that takes two double variables a and b and exchanges their values if the first one is greater than the second. As a result print the values a and b, separated by a space. Problem 2. Multiplication Sign Write a script that shows the sign (+, - or 0) of the product of three real numbers, without calculating it. Use a sequence of if operators. Problem 3. The biggest of Three Write a script that finds the biggest of three numbers. Use nested if statements. Problem 4. Sort 3 numbers Sort 3 real values in descending order. Use nested if statements. Note: Don’t use arrays and the built-in sorting functionality. Problem 5. Digit as word Write a script that asks for a digit (0-9), and depending on the input, shows the digit as a word (in English). Print “not a digit” in case of invalid input. Use a switch statement. Problem 6. Quadratic equation Write a script that reads the coefficients a, b and c of a quadratic equation ax2 + bx + c = 0 and solves it (prints its real roots). Calculates and prints its real roots. Note: Quadratic equations may have 0, 1 or 2 real roots. Problem 7. The biggest of five numbers Write a script that finds the greatest of given 5 variables. Use nested if statements. Problem 8. Number as words Write a script that converts a number in the range [0…999] to words, corresponding to its English pronunciation.
See the results in the console -> F12 + F5


We deliver data based insightful information by understanding business needs so decision makers have the right information at right time and right place. Our innovative solutions enable Big data analytics, Actionable insights, Informed Decisions. Just get in touch with us regarding your need and we can start going, no strings attached!
Find Out MoreCloud MLAI Solutions has everything you need to give your business a big data and analytics edge. We custom develop solutions for your unique need and deliver innovative and scalable solutions in short time! We are a data science solution provider for wide range of businesses from small and medium scale to well established enterprises and government organizations. At CloudMLAI innovation is a way of life and technology is an extension of the human intellect. Our goal is to add a whole new dimension to your business thorough our services. CloudMLAI provides a full-range of data science solution, from data collection, diagnostic analysis on historical data, predictive modeling to prescriptive analytics for real time decision making. With professionals who are experts in their fields and the latest in technology we delve into all the major aspects of data science Our focus on providing end to end services means that we not only produce the optimum and accurate solutions, with our forte as one of the most customers focused solution provider in the field, but also provide production ready user interfaces and dashboards. Our approach delivers new insights that help the organization maximize customer and product profitability, minimize customer churn, detect fraud and increase campaign effectiveness. Free initial consultation with No strings attached!
Get Started!CloudMLAI helps you with end to end AI and machine learning strategy and implementation. With a deep bench of data scientists, data engineers and UI experts, our offering spans pilot projects to a fully customizable AI platforms. Our experts in machine learning, deep learning and data science work with customers’ in-house team or provide dedicated resources for customers’ data science needs. We enable businesses to easily measure and monitor financial and operational business performance, analyze results, predict outcomes and plan for better outcomes Data Science Services Machine Learning, Deep Learning, Neural Networks, Cognitive Computing, Predictive Analytics , Prescriptive Analytics , Decision Optimizing Processes, Data Mining, Forecasting, Mathematical Optimization, Discrete Event Simulation, Classification and Segmentation, Survival Analysis. Decision and Risk Analysis
We have expertise in BI technologies, applications and practices needed for collection, integration, analysis, and presentation of business information. We develop compelling BI solutions that support better business decision making that are data-driven Decision Support Systems (DSS). We help on creating UI and BI strategy road map, blue print generation and implementation of effective BI solutions. We also create data warehouses and perform extracting, transforming and loading data needed for an effective BI dashboard Our experts create insightful and appealing visualizations to help businesses make quick decisions. Our teams seamlessly integrate into customers’ team thus speeding up UI implementation immensely.
We understand the importance of addressing data challenges comprehensively. We have expertise to build pipelines to transform available data to make is easy for data analysis and BI reports. We focus on efficient ingestion of data from various sources, effective processing to have credible data and efficient storage for past retrieval and secure access to approved users. Technologies, tools and languages we use Technologies : Elastic MapReduce (EMR), Apache Hive, Apache Pig, Apache Spark, MapReduce, Impala , Hadoop, SAP HANA (in memory platform), Cloudera Tools: AWS (S3, Redshift EMR), Tableau, MongoDB, Couchbase, Languages: SQL, R, and Python, Julia, Scala.
We build deep learning models that learn to perform classification tasks directly from images, text, or sound. Our Deep learning solutions can achieve state-of-the-art accuracy, often exceeding human-level performance. Hence, customers can achieve extraordinary results that were not possible before. Our state of the art deep learning solutions that provide competitive edge to our customers.
Ready to start your next project with us? That's great! Give us a call or send us an email and we will get back to you as soon as possible!
208-391-3717