Company profile - Canadian Company Capabilities
Third-Party Information Liability Disclaimer
Some of the information on this Web page has been provided by external sources. The Government of Canada is not responsible for the accuracy, reliability or currency of the information supplied by external sources. Users wishing to rely upon this information should consult directly with the source of the information. Content provided by external sources is not subject to official languages, privacy and accessibility requirements.
OceanWorks International Corporation
Legal/Operating Name:
OceanWorks International Corporation
Mailing Address:
120-6741 Cariboo RdBURNABY, British Columbia
V3N 4A3
Location Address:
120-6741 Cariboo RdBURNABY, British Columbia
V3N 4A3
Tel.:<PHONE_NUMBER>
Fax:<PHONE_NUMBER>
Logo
Company Profile
OceanWorks International is a dynamic, privately held U.S. company headquartered in Houston, Texas, with a wholly owned Canadian subsidiary (OceanWorks International Corp.) based in Burnaby, British Columbia. The company specializes in the design and manufacturing of manned and unmanned underwater work systems and related equipment for the international marine industry.
OceanWorks International’s primary business is in providing a full range of subsea systems development, engineering, manufacturing, and operational and logistics support to military and commercial clients worldwide. Key markets served include:
Oil and Gas
Military
Scientific/Environmental
OceanWorks International’s depth of experience in the design, manufacture, testing, certification, and delivery of subsea technology stems from a background of over 30 years in the business of deep submergence and diving technology, operations, and support. We employ highly qualified and experienced professionals who are very familiar with our clients’ needs and the operational aspects of using such equipment. Our products are engineered from both a technical and practical viewpoint, providing our clients with equipment that has been designed with the end user’s requirements in mind throughout the entire product development process.
The company has grown, diversified, and expanded its product range to offer a portfolio of products and services that complement one another. Submarine rescue systems and specialized remote intervention tooling are integral parts of our portfolio.
Full profile
Full profile
Contact information
Company description
541710 - Research and Development in the Physical, Engineering and Life Sciences
Product / Service / Licensing
Market profile
Alliances:
- Financial
- Sales/Marketing
- Technology
Industry sector market interests:
- Environment
- Mining/Petroleum/Gas
- Defence
Geographic markets:
Export experience:
- Australia
- France
- Italy
- Japan
- Russian Federation
- Turkey
- United States
Actively pursuing:
- China
- India
Sector information
Classification codes
Key / Major clients:
Canadian Navy, US Navy, Oceanos - Russia, Italian Navy, Turkish Navy, French Navy, MWCC, BP, Pangeo corporation, CSnet, Babcock Canada, Ocean Networks Canada, CSSC - China, FORCE, Harris CapRock CommunicationsSuccess stories:
Turkish Navy Submarine Rescue Operation Makes Extensive Use of OceanWorks HARDSUIT™ QUANTUM ADS:The Bhosporus Naval News website has posted an article outlining the capabilities of the OceanWorks HARDSUIT™ QUANTUM ADS (Atmospheric Diving Suit) for use during a recent submarine rescue exercise conducted 21 km off the coast of the Mediterranean city of Mersin. The ADS was deployed in 100m of water and was successfully used to connect fresh air to a disabled submarine.
The article goes on to indicate the use of the ADS by the Turkish Navy since 2007 and the suits operational depth of 365 meters (1,200 ft.).
OceanWorks International Delivers The Subsea Dispersant Fluid System (SDFS) To Marine Well Containment Company (MWCC):
OceanWorks International delivered a Subsea Dispersant Fluid System (SDFS) to Marine Well Containment Company (MWCC). The system will be an integral part of the emergency response tool kit for a well control incident in the deepwater U.S. Gulf of Mexico.
The SDFS system supports dispersant supply from the surface as well as autonomously from the seabed. To reduce vessel crowding at the intervention site, the SDFS system delivers dispersant from more than one mile away from the incident site. The system can function autonomously for up to five days without intervention.
The system utilizes a series of individual modules including twelve dispersant bladder skids (previously delivered to MWCC by OceanWorks), two gathering manifolds, three autonomous pumping stations, two intermediate manifolds, and two mixing chambers to inject dispersant at the Subsea Containment Assembly.
OceanWorks International Completes PDI upgrade for CSnet:
OceanWorks International is pleased to announce the completion of the Poseidon Diode Interface (PDI) project for CSnet. The completed PDI design will protect the Offshore Communication Backbone (OCB) from any electrical fault in the Poseidon cable. The OCB is a seafloor network developed for the Mediterranean Sea off the coast of Cyprus.
The Poseidon cable will provide direct connection to the OCB and provide power to the Poseidon system. A number of advantages, including higher bandwidth, lower latency communications, increased power, improved availability and reduced operations costs is realized from the direct connection of the OCB to shore.
OceanWorks International with our extensive experience in the design and building of seafloor networks since 2005 is uniquely familiar with the CSnet OCB. Complex, reliable and adaptable systems are just one component of the OceanWorks International suite of subsea engineering and design capabilities serving the Scientific, Environmental, Oil, Gas and Military communities.
OceanWorks and ONC Engineers Return VENUS Coastal Subsea Network to Operation:
OceanWorks International announced the successful re-deployment of the VENUS coastal network in the Strait of Georgia. In response to the failure of a power connector on the VENUS array in early fall 2012, a joint team of engineers from OceanWorks International (OWI) and Ocean Networks Canada (ONC) spent a week (Feb 5-9) aboard the vessel CS Wave Venture recovering, repairing, testing and re-deploying the network.
The marine operation was a challenging procedure for the cable ship but proceeded smoothly without any major complications.
“Faced with a demanding repair timeline, OceanWorks engineers developed a creative solution that enabled the Node Pod to be redeployed on time." States Adrian Round, ONC’s Director, Observatory Operations. “As part of the repair, they also worked at sea to install upgraded Node Junction Cans which will significantly extend the life of the VENUS
Strait of Georgia Array.”
The repair coincided with the seventh anniversary of operations for the VENUS network, which began on February 8, 2006.
VENUS, part of the Ocean Networks Canada Observatory, is a cabled undersea laboratory with nodes that provide live video, acoustic images and real-time data for ocean researchers and explorers. VENUS delivers real time information from seafloor instruments via fiber optic cables to the University of Victoria, BC.
International capital projects:
MWCC (Marine Well Containment Company) SDFS Project:The SDFS (Subsea Dispersant Fluid System) upgrades the existing Subsea Autonomous Dispersant Injection (SADI) system currently employed by MWCC. It is a custom design based on learnings from the initial SADI and evolving understanding of the functional and operational requirements. This vision was handed to OceanWorks’ engineering team and the end result is a system that provides reliability, safety and security in deployment and operation.
US Navy PRMS - Submarine Rescue Vehicle Project:
OceanWorks International designed and delivered the U.S. Navy’s next-generation submarine rescue system, the “Pressurized Rescue Module System” (PRMS) to its home base at the Navy’s Deep Submergence Unit in San Diego, CA.
The PRMS replaced the previous U.S. submarine rescue asset, the DSRV Mystic. The completion of the project is the culmination of several years of development by OceanWorks as the U.S. Navy’s prime contractor and system integrator for the U.S. Navy’s SRS-RCS program.
The PRMS underwent extensive operational and technical evaluation by the Navy before entering service. Built to the U.S. Navy’s certification standard for manned deep submergence systems (NAVSEA P9290), the PRMS is designed, built and tested to exacting standards and represents a quantum step forward in submarine rescue technology.
Third-Party Information Liability Disclaimer
Some of the information on this Web page has been provided by external sources. The Government of Canada is not responsible for the accuracy, reliability or currency of the information supplied by external sources. Users wishing to rely upon this information should consult directly with the source of the information. Content provided by external sources is not subject to official languages, privacy and accessibility requirements.
Contacts
Contact information
Description
Company description
541710 - Research and Development in the Physical, Engineering and Life Sciences
Products, services and licensing
Product / Service / Licensing
Market
Market profile
Alliances:
- Financial
- Sales/Marketing
- Technology
Industry sector market interests:
- Environment
- Mining/Petroleum/Gas
- Defence
Geographic markets:
Export experience:
- Australia
- France
- Italy
- Japan
- Russian Federation
- Turkey
- United States
Actively pursuing:
- China
- India
Sector
Sector information
Classification codes
Key / Major clients:
Canadian Navy, US Navy, Oceanos - Russia, Italian Navy, Turkish Navy, French Navy, MWCC, BP, Pangeo corporation, CSnet, Babcock Canada, Ocean Networks Canada, CSSC - China, FORCE, Harris CapRock CommunicationsSuccess stories:
Turkish Navy Submarine Rescue Operation Makes Extensive Use of OceanWorks HARDSUIT™ QUANTUM ADS:The Bhosporus Naval News website has posted an article outlining the capabilities of the OceanWorks HARDSUIT™ QUANTUM ADS (Atmospheric Diving Suit) for use during a recent submarine rescue exercise conducted 21 km off the coast of the Mediterranean city of Mersin. The ADS was deployed in 100m of water and was successfully used to connect fresh air to a disabled submarine.
The article goes on to indicate the use of the ADS by the Turkish Navy since 2007 and the suits operational depth of 365 meters (1,200 ft.).
OceanWorks International Delivers The Subsea Dispersant Fluid System (SDFS) To Marine Well Containment Company (MWCC):
OceanWorks International delivered a Subsea Dispersant Fluid System (SDFS) to Marine Well Containment Company (MWCC). The system will be an integral part of the emergency response tool kit for a well control incident in the deepwater U.S. Gulf of Mexico.
The SDFS system supports dispersant supply from the surface as well as autonomously from the seabed. To reduce vessel crowding at the intervention site, the SDFS system delivers dispersant from more than one mile away from the incident site. The system can function autonomously for up to five days without intervention.
The system utilizes a series of individual modules including twelve dispersant bladder skids (previously delivered to MWCC by OceanWorks), two gathering manifolds, three autonomous pumping stations, two intermediate manifolds, and two mixing chambers to inject dispersant at the Subsea Containment Assembly.
OceanWorks International Completes PDI upgrade for CSnet:
OceanWorks International is pleased to announce the completion of the Poseidon Diode Interface (PDI) project for CSnet. The completed PDI design will protect the Offshore Communication Backbone (OCB) from any electrical fault in the Poseidon cable. The OCB is a seafloor network developed for the Mediterranean Sea off the coast of Cyprus.
The Poseidon cable will provide direct connection to the OCB and provide power to the Poseidon system. A number of advantages, including higher bandwidth, lower latency communications, increased power, improved availability and reduced operations costs is realized from the direct connection of the OCB to shore.
OceanWorks International with our extensive experience in the design and building of seafloor networks since 2005 is uniquely familiar with the CSnet OCB. Complex, reliable and adaptable systems are just one component of the OceanWorks International suite of subsea engineering and design capabilities serving the Scientific, Environmental, Oil, Gas and Military communities.
OceanWorks and ONC Engineers Return VENUS Coastal Subsea Network to Operation:
OceanWorks International announced the successful re-deployment of the VENUS coastal network in the Strait of Georgia. In response to the failure of a power connector on the VENUS array in early fall 2012, a joint team of engineers from OceanWorks International (OWI) and Ocean Networks Canada (ONC) spent a week (Feb 5-9) aboard the vessel CS Wave Venture recovering, repairing, testing and re-deploying the network.
The marine operation was a challenging procedure for the cable ship but proceeded smoothly without any major complications.
“Faced with a demanding repair timeline, OceanWorks engineers developed a creative solution that enabled the Node Pod to be redeployed on time." States Adrian Round, ONC’s Director, Observatory Operations. “As part of the repair, they also worked at sea to install upgraded Node Junction Cans which will significantly extend the life of the VENUS
Strait of Georgia Array.”
The repair coincided with the seventh anniversary of operations for the VENUS network, which began on February 8, 2006.
VENUS, part of the Ocean Networks Canada Observatory, is a cabled undersea laboratory with nodes that provide live video, acoustic images and real-time data for ocean researchers and explorers. VENUS delivers real time information from seafloor instruments via fiber optic cables to the University of Victoria, BC.
International capital projects:
MWCC (Marine Well Containment Company) SDFS Project:The SDFS (Subsea Dispersant Fluid System) upgrades the existing Subsea Autonomous Dispersant Injection (SADI) system currently employed by MWCC. It is a custom design based on learnings from the initial SADI and evolving understanding of the functional and operational requirements. This vision was handed to OceanWorks’ engineering team and the end result is a system that provides reliability, safety and security in deployment and operation.
US Navy PRMS - Submarine Rescue Vehicle Project:
OceanWorks International designed and delivered the U.S. Navy’s next-generation submarine rescue system, the “Pressurized Rescue Module System” (PRMS) to its home base at the Navy’s Deep Submergence Unit in San Diego, CA.
The PRMS replaced the previous U.S. submarine rescue asset, the DSRV Mystic. The completion of the project is the culmination of several years of development by OceanWorks as the U.S. Navy’s prime contractor and system integrator for the U.S. Navy’s SRS-RCS program.
The PRMS underwent extensive operational and technical evaluation by the Navy before entering service. Built to the U.S. Navy’s certification standard for manned deep submergence systems (NAVSEA P9290), the PRMS is designed, built and tested to exacting standards and represents a quantum step forward in submarine rescue technology.


Lets Make an Echo Show Skill with the Visual Studio Code and the Serverless Framework!
Checkout the completed project on my github!
Introduction
If you’ve been following my posts lately, you’ll probably notice a pattern. I’ve been working a lot with Alexa Skills and Serverless lately. I’m doing a lot of learning and test projects to prepare myself for a bigger project that will combine my efforts. As I learn things, I want to be able to remember what I did and how its done. Thats a big reason why I write these posts; so I can go back later and review things I’ve done. It also has the benefit of possibly helping someone that may have the same problem or questions that I have. So with that in mind, here’s how to make an Echo Show skill with the Serverless Framework.
For more information, here are some other helpful links
- https://developer.amazon.com/en-US/docs/alexa/alexa-presentation-language/use-apl-with-ask-sdk.html
- https://developer.amazon.com/en-US/docs/alexa/alexa-presentation-language/tutorial-add-first-visual-response-custom-skill.html
Project Setup Review
I’ll review it pretty quickly here, but for more details on how to set up the project checkout my post where I go into this in detail. Additionally, I’ll assume everything’s installed and configured so I’m just going to start creating a new project.
Create The New Skill
First, I’ll launch Visual Studio Code, click the Alexa Skills Toolkit button and click “Create a Skill”
- Skill Name - “Show Demo” The name of the skill. I used “Show Demo” so I could invoke the skill by saying something like: “Alexa, open Show Demo.”
- Default Language - English
- Skill Model - Custom
- Choose a method to host your skill’s backend resources - “Provision your own” - A lot of good information on this can be found here. I chose the “Provision your own” to host it in my AWS account. I can deploy it and manage it there without any restriction from the Alexa free-tier. I’ll still have to work with the developer console, but I’ll spend much less time there. Besides, deploying this to AWS with Serverless is one of the points of the article!
- Programing Language - Python
- Local Directory - The folder/repository created earlier.
After waiting a bit, the code will generate and the skill will be available for you in the Alexa Skill developer console.
My ‘pre-commit’ script
I want to avoid committing my skill-id to these public repositories (although I’ve been deleting these ‘demo’ skills anyway). To do that I’ve created a very rudimentary script to check all the files in the repo for a skill-id type string and prevent committing if one is found. I used the tool pre-commit to help me do that. If you take a look at that script (alexa_skill_id_check_git_hook.py) again, you’ll see its rudimentary, has some TODO’s, etc… but it gets the job done for now. Someday I’ll work on improving it, so look forward to that in another post!
Prepare The Skill For Visuals
In the past I’ve created ‘audio only’ types of skills. Theres a few differences and configuration details that need to change in order for us to add visuals to a skill. This AWS tutorial goes into it thorougly so check it out too.
Enable the APL Interface
For visual skills we need to enable the APL interface. APL stands for “Alexa Presentation Language” its the feature that we’ll use to help us present visuals to users. You can find it in the developer console in the Build tab in the Interfaces section under Alexa Presentation Language Developer Console > Build > Interfaces > Alexa Presentation Language
Create a New APL Document
We’re now going to create an APL (“Alexa Presentation Language”) document to declare how we’ll display information. For this tutorial, we’ll do this in the Alexa Developer Console, but it can be done right in code as well.
In the console, go to the Build tab, then under the “Assets” menu, click “Multimodal Responses”. Once that page opens, there are two types of responses “Audio” and “Visual”. We want “Visual”. (Build > Assets > Multimodal Responses > Visual)
Click “Create Visual Response”
This will take you to a page with templates and fancy ways to display and organize your visual response. These are great and are worth taking a look at, but for our purposes we’re just going to create a blank response for now.
So click “Blank Document” (in the upper right) which will create a blank response for us. After that we’ll go ahead and save the document and name it “HelloWorldDocument”. So click the save icon in the upper right and type “HelloWorldDocument” as the template name
This will save it as a document, and really, its just JSON. You can check it out by clicking “Code View” next to “GUI View” in the editor in the upper left.
Add an APL Package
In the designer, go to the “Code View”.
Go ahead and add this object to the “import” array.
{
"name": "alexa-layouts",
"version": "1.5.0"
}
The final code should look like this.
{
"type": "APL",
"version": "1.8",
"license": "Copyright 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.\nSPDX-License-Identifier: LicenseRef-.amazon.com.-AmznSL-1.0\nLicensed under the Amazon Software License http://aws.amazon.com/asl/",
"settings": {},
"theme": "dark",
"import": [
{
"name": "alexa-layouts",
"version": "1.5.0"
}
],
"resources": [],
"styles": {},
"onMount": [],
"graphics": {},
"commands": {},
"layouts": {},
"mainTemplate": {
"parameters": [
"payload"
],
"items": []
}
}
We just imported an APL package into our document. This package contains pre-defined resources that you can use to help display your information. In this case, we’re importing the alexa-layouts package.
Now lets go ahead and use them.

}
Your code should look like this now.
{
"type": "APL",
"version": "1.8",
"license": "Copyright 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.\nSPDX-License-Identifier: LicenseRef-.amazon.com.-AmznSL-1.0\nLicensed under the Amazon Software License http://aws.amazon.com/asl/",
"settings": {},
"theme": "dark",
"import": [
{
"name": "alexa-layouts",
"version": "1.5.0"
}
],
"resources": [],
"styles": {},
"onMount": [],
"graphics": {},
"commands": {},
"layouts": {},
"mainTemplate": {
"parameters": [
"payload"
],
"items": [
{
"type": "AlexaHeadline",
"primaryText": "Display your text here."
}
]
}
}
And you screen should update to look like this image
Don’t forget to save by clicking the save icon in the top right!
Hook the APL to a data source
Now that we’ve got something to show, lets hook it to a data source so we can display different things to the user other than “Display your text here.”
Lets start by clicking the “DATA” icon in the leftmost column of controls.
You should see the empty code block {}
here. Lets go ahead and replace that with this populated code block. Note you won’t see anything change in this step
{
"helloWorldDataSource": {
"title": "Hello World!",
"subtitle": "I hope you're having fun!",
"color": "@colorTeal800"
}
}
This adds the data source for our design tool to use. Now we need to reference this and bind it to our APL document we created.
Since we’re done adding the data source and we’re modifying our APL document again, click the APL button in the leftmost column. This takes us back to the design space we were working with earlier.
We’ll update our APL code again here. This time we’ll add to the parameters array. Add the string “helloWorldDataSource” to the parameters list in the mainTemplate object. It should look like this.
"parameters": [
"helloWorldDataSource"
],
We’ll also bind the data in our “helloWorldDataSource” to the displayed text. This is done by updating the primaryText property to the following value ${helloWorldDataSource.primaryText}
It should look like this
"primaryText": "${helloWorldDataSource.primaryText}"
When this is changed, you should see the text change to “Hello World!”. This is exactly what we want. Now we have a data source that controls the text on screen!
While we’re here, lets add some of our other properties too. This is the final code I have for my APL document.
{
"type": "APL",
"version": "1.8",
"license": "Copyright 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.\nSPDX-License-Identifier: LicenseRef-.amazon.com.-AmznSL-1.0\nLicensed under the Amazon Software License http://aws.amazon.com/asl/",
"settings": {},
"theme": "dark",
"import": [
{
"name": "alexa-layouts",
"version": "1.5.0"
}
],
"resources": [],
"styles": {},
"onMount": [],
"graphics": {},
"commands": {},
"layouts": {},
"mainTemplate": {
"parameters": [
"helloWorldDataSource"
],
"items": [
{
"type": "AlexaHeadline",
"primaryText": "${helloWorldDataSource.title}",
"secondaryText": "${helloWorldDataSource.subtitle}",
"backgroundColor": "${helloWorldDataSource.color}"
}
]
}
}
Save and Rebuild!
Looking good! Lets make sure to save our work, click the save icon in the upper right. We also have to rebuild our model before we start making any code changes. Click the back button in the upper left. That should take you back to the developer console. You can click the build tab, then the build entry on the left. Alternatively, you can click “Interfaces” then “Build Model” at the top of the page.
Write the Code to Interact with the Visuals
Now we need to add this APL document to our lambda function in code. We need to respond with the APL document when skill is invoked. If you remember that should be in the skill’s ‘lambda’ folder. There should be a ‘hello_world.py’ for us to open up.
In the file, I’m just going to handle this new APL in the launch of the skill, for more complex interactions, checkout some of the other methods.
I’m going to modify the LaunchRequestHandler class’s method “handle”. I’m going to add this code right at the beginning of the function, before any responses are returned. When you’re writing other functions, be sure to think carefully about where you may want to handle any APL interactions.
Here’s my code for adding the APL to the response
supported_interfaces = ask_utils.request_util.get_supported_interfaces(handler_input)
if supported_interfaces.alexa_presentation_apl is not None:
logging.info('This device supports APL')
document_name = "HelloWorldDocument" # The name of the APL we saved
token = document_name + "Token"
handler_input.response_builder.add_directive(
RenderDocumentDirective(
token=token,
document={
"src":'doc://alexa/apl/documents/' + document_name,
"type": "Link"
},
datasources={
"helloWorldDataSource":{
"title": "We did it!",
"subtitle": "Hello World is coming from code!",
"color": "@colorTeal800"
}
}
)
)
Quick Explaination: I’m using the sdk to figure out what kind of device the user’s device is. If its a device that supports a Presentation APL then we can proceed. I’ll add the “RenderDocumentDirective” to render the APL document that we created. Right now the APL document is stored in the developer console. If you remember we stored it named “HelloWorldDocument”, so we need the name. The developer console will store this saved document at that reference doc://alexa/apl/documents/
. A little later, I’ll show you what it looks like if you were to use an APL committed with your code. This Directive is added to the response and is returned to the user. If we’ve done everything right we can save, build, and deploy our skill!
NOTE: Each time you update your APL documents in the developer console, you have to rebuild your model to make sure your changes are available.
Serverless Comes In
So far, this has just been a tutorial on working with APL’s. I want to make sure I’m not forgetting Serverless since its our deployment mechanism. Let’s start working with it. See my first Serverless Alexa Skill post for more details.
- First lets initialize serverless by running the command
serverless create --template aws-python
in the lambda directory. - Rework the serverless.yml as follows
service: DemoEchoShowSkill
frameworkVersion: '2'
plugins:
- serverless-python-requirements
provider:
name: aws
runtime: python3.8
lambdaHashingVersion: 20201221
custom:
pythonRequirements:
dockerizePip: non-linux
functions:
hello:
handler: hello_world.handler
events:
- alexaSkill: amzn1.ask.skill.xx-xx-xx-xx
(Make sure you change your alexaSkill parameter so it matches whatever your skills skill Id is)
-
Install the plugin
serverless-python-requirements
the ASK SDK is not in the standard libraries so you have to add the lib in your requirements.txt file and package it up when you deploy -
Deploy the skill with the command
serverless deploy
(Make sure you’ve configured your aws cli and profile) -
Once deployed, in the AWS developer console, go to the Build tab, then in the Endpoint section select “Aws Lambda ARN” and copy/paste the ARN of your deployed lambda function into the Default Region box and clid Save Endpoints, then re build the skill.
Test It Out!
Now you can go to the Alexa Developer Console, go to the Test tab, make sure “Device Display” is checked and invoke your skill. I did this by typing ‘hello world’ in the Alexa Simulator textbox. (If you dont know your invocation name, you can go to Build -> Invocations -> Skill Invocation Name). Once your skill has been invoked you should be able to scroll down in the simulator and see the visuals!
Further Reading
If you’re satisfied with our results so far, thats great, take what you learned and go apply it. I’m going to continue on though and explore some extra concepts now though. I want to be able to develop some of the following items so if you’re interested keep reading.
- Add the APL document to our repo and maintain it as part of the deployment.
- Support adding graphics to the display.
Sync Changes Back to the Code
After Creating our APL document we need to save our changes and build the model if you haven’t done so in the above steps. After that we can sync the changes back to our code so the APL document can be worked with and committed.
- Save the Interface - This one’s easy, at the top of the Developer Console in the build tab there’s a “Save Interfaces” button. Click that.
- Build the Model - Another easy one, at the top of the Developer Console in the build tab there’s a “Build Model” button. Click that, it may take some time, so be patient
- Sync the changes - This one’s a little tricky. The best way I’ve found to do this is through VSCode. Go to the Alexa Skills Toolkit extension. From there you can see your skill (Mine’s named “Demo Show”). Open up all the sub-options (not sure what to call these, but they’re the “Skill manifest” and “Interaction model”. We’ll use “Alexa Presentation Language (APL)” menu later). Click Download on each one and then click the “Download” button when its page is open. If it asks you to select a folder select the whole project root (not the “Demo Show” folder, but the github repo name type folder i.e. “DemoEchoShowSkillWithServerless”). When a file opens up, you may have to ctrl+s to save it. This process should overwrite/add the correct files in the correct places.
Alternatively, in the “Skills Management” section in this same page you can “Download and edit skill” be careful with this one though. If you do it in the current directory it can overwrite and delete your files. If you use this, my suggestion is to download it to a seperate folder, then merge that folder into your current working directory.
After this is done, you can git commit, push, whatever you want. That being said, any changes you to the local code wont be reflected back into the skill and the developer console until you deploy your changes back upstream.
Sync Changes Back Upstream to the Developer Console
Once you’ve got everything where you need it, in VSCode in the Alexa Skills Toolkit extension page theres the left column where we downloaded our skill manifest, interaction model, and APL. There’s also an item to deploy the skill named “Deploy Skill”. Click the item, and a page will open up. Make sure you hit the refresh button so you’re aware of the most recent sync status and if you’re ready and everything is up to date you can click the Deploy (or big red ‘Force Deploy’) button
Must Have More …
Text is great, but I’m looking forward to adding images. Let’s see what’s required.
I started by adding a new APL. In the build menu, I clicked Multimodal Responses, then Create Visual Response. From here you can upload a template, use a blank document, or choose from one of the templates. I’m going to choose a template, I can’t say I’m a very strong designer yet! However, the “Responsive Templates” tab doesnt have quite what I’m after. I’m going to go to the “Explore APL” tab and choose the “Image Display” template. Its pretty minimal with a background image, a title, a logo image, and a main image. Here I’m really only interested in the main image so this template is great! I’m going to go ahead and save this template and name it “ImageAPLDocument”.
Now I’ve got to sync it to my repo. I’ll go back to the main Alexa Skill page, under the build tab, after clicking the ‘CUSTOM’ bar on the left, I clicked build so that my changes were saved.
Back in Visual Studio, I can sync my code with the skill in the console by going to the Alexa Skills Toolkit, clicking the ‘Deploy Skill’ menu (Notably, I’m not deployng yet). From here, I want to hit the refresh button to refresh my status.
Now I’m going to get my newly created APL document into my repo on disk. Still in the Alexa Skills Toolkit, under ‘Skills Management’ I clicked “Download and edit skill” and clicked my repository root folder when the popup came, this can overwrite your changes so see the next paragraph if you want alternative.
You can also sync APL’s by going to the Alexa Presentation Language section and click the Download item. The dropdown should be populated with my “ImageAPLDocument” doc that I created earlier (If it doesn’t show up, give it ~10 sec) and I’ll go ahead and download it. Notably, this just downloads it to memory. It does not download the files to disk, so if you want the APL document and its data sources in the right places, you may want to sync the whole project like I did earlier
Now that I’ve got my ImageAPLDocument, I’m going to start making some changes! Although that may be misleading. I’m not going to change the APL docs at all, in fact, I’m just going to leave them be. However, I will change my lambda function.
I’m going to source some new images from the API https://picsum.photos/. With that API you can generate a random image of your requested size. I’m using https://picsum.photos/300/200. I’ll change my ‘handler’ function to look like this.
def handle(self, handler_input):
# type: (HandlerInput) -> Response
logging.info("Handling...")
supported_interfaces = ask_utils.request_util.get_supported_interfaces(handler_input)
# If this device supports APL
# e.g. If this device is an Echo Show
if supported_interfaces.alexa_presentation_apl is not None:
logging.info('This device supports APL')
#
# Flag you can toggle based on where your APL is
# This isnt production code, its just for demonstration purposes
the_api_document_is_only_in_the_developer_console = True
#
# add "Alexa.Presentation.APL.RenderDocument" to the handler_input
if the_api_document_is_only_in_the_developer_console:
# if your APL is only in the console, load it from the console
document_name = "ImageAPLDocument" # The name of the APL we saved
token = document_name + "Token"
# using an image api: https://picsum.photos/300/200
# for more info see: https://picsum.photos/
handler_input.response_builder.add_directive(
RenderDocumentDirective(
token=token,
document={
"src":'doc://alexa/apl/documents/' + document_name,
"type": "Link"
},
datasources={
"imageTemplateData": {
"type": "object",
"objectId": "imageSample",
"properties": {
"backgroundImage": {
"contentDescription": None,
"smallSourceUrl": None,
"largeSourceUrl": None,
"sources": [
{
"url": "https://d2o906d8ln7ui1.cloudfront.net/images/templates_v3/gridlist/GridListBackground_Dark.png",
"size": "large"
}
]
},
"image": {
"contentDescription": None,
"smallSourceUrl": None,
"largeSourceUrl": None,
"sources": [
{
"url": "https://picsum.photos/300/200",
"size": "large"
}
]
},
"title": "Plant of the day",
"logoUrl": "https://d2o906d8ln7ui1.cloudfront.net/images/templates_v3/logo/logo-modern-botanical-white.png"
}
}
}
)
)
else:
# if your APL is alongside the code, load it from the package
# NOTE: it must be in a specefic place (in the lambda folder)
# see https://developer.amazon.com/en-US/docs/alexa/alexa-presentation-language/use-apl-with-ask-sdk.html
# for more detail
handler_input.response_builder.add_directive(
RenderDocumentDirective(
token=HELLO_WORLD_TOKEN,
document=_load_apl_document()
)
)
else:
logging.info('This device does not support APL. \r\n Supported Interfaces: \r\n {supported_interfaces}')
#
#
speak_output = "Welcome, you can say Hello or Help. Which would you like to try?"
#
return (
handler_input.response_builder
.speak(speak_output)
.ask(speak_output)
.response
)
Its a little messy, but I’ll leave cleaning it up as an excersize for the reader. The important part is that I copied the JSON from the ImageAPLDocument’s datasources into the data source from the render document directive. From here, I left the background image and I left the logo. I did change the main image’s source to be the API I referenced earlier (https://picsum.photos/300/200). Now when the skill is invoked, it’ll show a new random image from the API. Check it out!
To get it to deploy, dont forget to deploy and build the skill and deploy the serverless.yml as well. From there go to the Test tab in the developer console and invoke your skill!


Note: From version 4 on, the LocalStorage package introduces an important breaking change.
Instead of providing an interface depending on a given identifier, saving the state under that identifier,
this package now only provides the raw localStorage or sessionStorage objects. It is in a sense
no more than a wrapper around the window.localStorage
and window.sessionStorage
objects.
It is now every application's responsibility to save the state in localStorage under appropriate identifiers,
avoiding mixing up states from different application hosts.
Alternatively, you may use one of the many available Angular libraries for binding the localStorage to redux and/or
identifiers.
Counter:{{ this.item }}


Dr. Pritee Parwekar
Faculty Advisor
Dr. Pritee Parwekar
Baby steps towards entering the professional world is through getting exposure to professional activities conducted by Computer Society of India (CSI). The platform is very wide and has reputed professionals from almost all allied fields of computer science.


Bio
The photography featured on the Academy Park Pediatrics website is original work by:
Sharon Arnoldi - Colorado Outdoor Family & Children's Photographer
Maybe it's my extreme amount of patience or the love of silliness... but generally I am able to get smiles out of the most serious little ones. I specialize in newborns and families with small kids, I've been specifically trained on newborn safety and posing to keep even the smallest member of your family safe and sound during their photo session. I also have a degree in portrait photography from the Art Institute of Colorado.
Other fun facts about myself:
- I am an adventurer.
- I believe in magic and whimsical childhood memories.
- I am seriously addicted to coffee and have a soft spot for Starbucks. #PSL
- My heart sings when I am in the mountains, they are truly whimsical.
- I enjoy challenging projects, and am constantly giving new life & color to pieces of furniture as I see their true potential.
I’d love to get to know you, and find out what you are looking for in your next photo session. Give me a call let's grab a coffee.
Contact
If you are interested in scheduling a session, please get in touch with me - I look forward to hearing from you!
Our email & phone office hours are Monday - Friday 9AM - 3PM... of course I shoot most evenings & weekends :)


Common Graphics Generator
Home Page
Paste the data here and click 'submit' button, and the first line is the name of the data line:


Yi holds ‘Project Masoom’ in school
by Staff ReporterMembers of Young Indians (Yi), a part of Confederation of Indian Industry (CII), organised an awareness programme on understanding and preventing child abuse at Government Syed Murthuza Higher Secondary School here on Thursday.
 Trainers explained the importance of establishing a circle of trust and safe space for children.
A human chain was formed with students depicting the words “No Go Tell” — say ‘no’ to bad touch, ‘go’ to any trustworthy person immediately in such situations, and ‘tell’ or report the incident to a trustworthy person. Also, the students were made aware of ChildLine 1098 number.
The session was organised by Masoom team members of Yi Tiruchi Chapter Project and was presided by R. Jayalakshmi, Block Educational Officer.
Ketan J. Vora, Co-Chair, Yi Tiruchi Chapter, and staff and teachers of the school took part in the programme.


--- layout: page title: Lean Prover Zulip Chat Archive permalink: archive/116395maths/10967Leftadjointoffunctorsbetweenorders.html ---
So, the forgetful functor from the category of partially ordered sets to the category of pre-ordered sets has a left adjoint
Are there similar adjoints?
{% endraw %}


Welcome to the website where we make it easy to find your city representatives
Republican
California District 25
Republican
California District 25
Republican
California District 25
Republican
California District 25
Republican
California District 25
Republican
California District 25
Republican
California District 25
Republican
California District 25
Republican
California District 25


Delivery Driver Runs Into Burning Building After Hearing Baby Cry
by Charlie CocksedgeAn Asda delivery driver has been hailed a hero after running into a house fire to save a newborn baby.
26-year-old Habeel Khan was making his way around his usual delivery route when he saw smoke coming from a house in Stapleford, Nottinghamshire.
After stopping his van to see what was happening, Khan saw a woman with two young children, who shouted to him her baby was still inside the house.
Acting on ‘natural instinct’, Habeel immediately ran into the house with the woman, where they found the seven-week-old baby in the room next to the kitchen, where the fire had started, and safely carried it out of the burning building.
Habeel told Nottinghamshire Live:
It was a just a normal day at work for me. I was doing my deliveries in the Stapleford area and when I pulled up and looked over to where the customer’s house was I saw loads of smoke just gushing out of a house.
My natural instinct was to just run across to the house. I could see loads of smoke and lots of people panicking outside.
Habeel added:
I shouted ‘is everyone out of the house?’ and that’s when a woman with two young children shouted ‘my baby; my baby’s still in the house.’
I don’t think she had realised until then and then she ran back into the house and I went with her.
She managed to pick up the baby from a room next to the kitchen where the fire had started, then we ran out.
The 26-year-old then stayed with the family until firefighters and paramedics arrived, before he got back in his van and carried on with the rest of his deliveries.
Asda have since named Habeel their Colleagues’ Colleague of the Year at the Being Asda Awards 2019, for his quick thinking and brave actions.
Habeel said:
I didn’t really think anything of it – I just thought I’d helped out, and had done a little good deed.
I don’t think I have done anything heroic at all to be honest. Thankfully everyone was okay in the end and the family are back in the house.
Asda’s senior vice president of operations Anthony Hemmerdinger said:
What Habeel did was remarkable and it’s not something we would recommend that our colleagues do, however it’s clear that in this instance his instinct kicked in and he did a remarkable job.
Keep up the good work, Habeel!
Charlie Cocksedge is a journalist at UNILAD. He graduated from the University of Manchester with an MA in Creative Writing, where he learnt how to write in the third person, before getting his NCTJ. His work has also appeared in such places as The Guardian, PN Review and the bin.


How to cross domain with JSONP, jQuery and RESTful WCF Service provider.


COVID-19
Annotated by expert
X-ray
CT-scan
{{covid.update}}
Pneumonia
Confirmed
Labeled
X-ray
Dicom
{{pneumonia.update}}
Other
Confirmed
Labeled
X-ray
Dicom
{{other.update}}


ProfileAn experienced programmer who has used multiple languages to write solid code that can be tested and performs well. I enjoy working with non-technical people to design and develop solutions that solve business problems. As the maintainer of two PHP extensions, I have a deep understanding of PHP internals and how to handle bug reports without causing compatibility problems for existing users. I like to share my experience and help other people become better programmers by giving talks, which have included speaking at PHPNW, PHPSC and the Dutch PHP conferences, and helping people online. |
Contact
<EMAIL_ADDRESS>|
| PHP | Over ten years development experience including five years commercial experience. I am the sole current maintainer of the Imagick extension and help maintain the Gmagick extension. I occasionally write RFCs to try and make PHP better. 'Constructor behaviour of internal classes' was accepted for PHP 7, 'Closure from callable' targets PHP 7.1, and 'Consistent Callables' targets PHP 8. |
| MySQL | MySQL table and query design for medium sized website with moderate load, to allow responsive user experience. |
| Docker + containers | I use Docker containers to allow projects to have single step setup for local development, while still closely matching the production environment. |
| Javascript + jQuery + React + HTML + CSS | I use it to make web pages have a good user experience. Apparently that's called Responsive Web Design these days. |
| Java | Five years Java experience covering both J2SE, J2ME and J2EE for creating applications on mobile phones and Java applets, and Spring based web application. |
| C/C++ | Five years of commercial development and five years of Open Source development. Good understanding of C/C++ compiler technology |
| Tech lead | Senior programmer on a number of projects. Responsible for technical design, scheduling of tasks, project management and communicating with other departments. |
| Optimisation | Experience of writing x386 assembler for low level, high performance graphics solutions, experience of debugging disassembly for MIPS, ARM and Pentium processors. |
| Source Control | Used and administered Microsoft Visual Source, Subversion and Git for source code version control. |
| Tools used | Amongst the tools I've used are Wireshark, Bugzilla, PR-tracker database, Footprints, IntelliJ Idea, Visual Studio, Visual Source Safe user/administrator, Subversion, Git, PHPStorm, Metrowerks CodeWarrior, InstallShield, Microsoft Visual Sourcesafe, Subversion, CVS, Git, strace, valgrind, gdb, Docker, Travis, Jenkins. |
| Continuous testing | Integrated continuous build and automated test systems with various CI systems (Ant, Bash, Chef, Puppet, Travis, Jenkins) for rapid detection of development issues. |
Since the start of 2014 I have been the sole maintainer of the PHP Imagick extension. This involved fixing a backlog of issues, adding new functions introduced in ImageMagick, and updating the extension for PHP 7. I also assisted the ImageMagick team in detecting and fixing a number of memory corruption issues. Recently added to the Gmagick maintainer list due to the number of contributions made.
Developed a website phpmagick.com to show working examples of all the functions in the extension.
Auryn github.com/rdlowrey/auryn is a recursive dependency injector, that can be used to bootstrap and wire together S.O.L.I.D. PHP applications. I helped design how this D.I.C. should work, as well as provide bug-fixes and write test cases. I spoke at the PHP South Coast conference 2015 about how dependency injection makes code better.
Created a custom platform to attempt to make Open Source development more sustainable. More details to be announced soon.
Created a custom platform to be used for charities for fund-raising.
Led a small team of developers in migrating a legacy application to Google Cloud Engine and replace the old UI with a React JS based UI.
Worked on three projects in Dialogue's Australian office.
Web-based SMS that allows people to create an account online to use Dialogue's platform; be able to purchase SMS credits; use virtual mobile numbers to send and receive SMS.
Developed application backend in PHP and MySQL.
Designed and implemented front-end with Smarty templating system, JavaScript and jQuery.
Wrote deployment scripts to deploy application upgrades and database changes in a single command.
Helped design backend API for provisioning customer accounts, credit card billing, purchasing of inbound numbers.
Designed and implemented customer support tool to allow the vast majority of customer support tasks to be handled within the application, rather requiring customer support team to have access to database.
Provided customer support via email, zendesk and SnapEngage.
A web based tool written using Java J2EE, Spring, Hibernate and JSP to allow our commercial team to:
Streamline the process of importing price data from our suppliers by intelligently interpreting spreadsheet data.
Hold data about the status of our suppliers connectivity to allow our operations team to be able to support our customers.
Enable easy generation of price lists for SMS sent to different territories.
Developed content management system with intergrated keyword based scripting to allow end-users to purchase content via SMS and web pages, to be billed by premium SMS.
Java J2SE content management tool to allow content to be uploaded and managed in a secure manner.
Service management website to allow editing of services including:
Backend system which managed all content, served web-pages with appropriate content inserted for the service, billed users and managed regulatory requirements e.g. spend reminders sent via SMS when users had spent $30.
XHTML websites generated from the content for the service using the WURFL to optimize each site based on the users handset.
Developed J2ME applications for entertainment and communication markets. Investigated provisioning and GPRS configuration issues – designed help pages for customers to provide information about configuration. Also managed and improved testing procedures at Switchfire. Developed and supported W.A.P. consumer focused services.
Full-time position developing mobile e-commerce applications, focused on bridging the gap between web and mobile experiences. These applications were mobile betting and dating services, and developed using J2ME. Developed a packet analyzer, modification and logging tool, to enable debugging of phone communication issues and allow repeatable tests. Helped develop an XML based form system for automating the layout, communication and processing of mobile applications.
As part of a team with ex-colleagues, setup a company to develop games for mobile phones using J2ME. As Technical Director responsible for all technical aspects of development and company website, as well as developing the games. Wrote several tools in J2SE with Swing to allow cross-platform editing of game data. Developed company website for information and to provide a way for customers to buy our games, including design and style of the website.
As a sub-contractor on Fifa World Cup, Intelligent Games was tasked with adding special effects to the World Cup version of the game to add ambiance. Towards the end of this project, I was required to work in the clients site in Vancouver for four months.
I led a team of five people to create Intelligent Games first Gameboy Advance game. As this was IG's first project on this platform we had to develop all our tools, development environment and low level libraries from scratch while we were learning how the GBA worked.
Joined as a junior programmer on Brian Lara Cricket. Designed and implemented code modules for data compression, event based commentary system, installation routines. Also responsible for source code version management. After one project, promoted to be the lead programmer in a team of 6 programmers, also responsible for task scheduling, interfacing with the design and marketing departments and reporting to the senior management.
As a prototype programmer worked with game industry design guru Jon Hare to research both new games designs and programming techniques for flexible and data oriented project development.
Worked as part of Sun's World Wide Application Support team, creating an intranet site to give support for Suns internal software systems. Used Perl to create a web based application to allow non-technical staff create and edit web documents.
Main topics covered include Quantum Physics, Physical Chemistry, Optics, Nuclear Magnetic Resonance and both chemistry and physics laboratory work. For my third year chemistry project I wrote a computer program to simulate 'the spectra of solid state nuclear magnetic resonance experiments using magic angle spinning'.
Physics - A, Maths - A, Chemistry - B, Further Maths - B.
Ten G.C.S.E.s of maths, chemistry, biology, physics, French, German, Geography, History, English language and English literature.
Gold, Silver and Gold certificates in the National Mathematics Contest.


James Michael spent three months in hospital and lost use of his legs following the horrific ordeal which he has described as "grotesque".
The 32-year-old had gone for a dip in Lake Malawi in southeastern Africa with pals, but had no idea a parasitic worm had burrowed into his privates.
The parasite laid eggs inside him, which slowly made him so ill his immune system went into overdrive, and attacked his spine.
The marketer was hospitalised for three months while medics fought to get the infection - bilharzia - under control, giving him only a 30 per cent chance of a full recovery.
But after a stint in a wheelchair, suffering digestion and toilet problems, and using crutches for four months he has finally made a full recovery.

"That wasn't exactly how I imagined the trip of a lifetime with my friends going - the whole experience was surreal and strange.
"Plotting a line, it was like going straight from a paradise beach to a hospital bed, almost incapacitated and helpless.
"This journey has made me definitely think more about my health and about how I look after myself - like reading up on health risks when I travel.
"I would urge anyone thinking of getting into Lake Malawi not to.
"It's just not worth the potential risks of a little worm climbing in your body through your parts. It's a grotesque, sickening thought.
"This has been horrendous. It's felt like a never-ending mountain I've had to climb."
James went on the trip to Africa with three mates back in August 2017.
They travelled from Zambia to Zimbabwe, before visiting Malawi for five days.
The group of three swam and canoed for three hours a day every day in Lake Malawi - before jetting back to the UK.
"Even though I contracted the infection then, nothing happened and I was able to leave for home thinking nothing was wrong," he said.
In October 2018, James began to notice a loss of feeling in both his legs, and initially thought it was fatigue from cycling.
"I supposed it was just from the exercise, so didn't worry about it," he said.
"But the feeling of fatigue never shifted, and actually got worse that month."
He went to Chelsea and Westminster Hospital in November 2018, when he woke up sweating uncontrollably, and started to worry he had MS or motor neurone disease.
Worried James was given antibiotics and sent home, but still felt terrible, and a week later, with the loss of feeling increasing went back to hospital.
"I explained to them that something serious was going on," he said.
"I went to the neurology department, and they did blood tests to see what was up.
"They determined quite quickly that my immune system was attacking my spine, leading to the loss of control of my legs.
"I was put on a six-month course of steroids to counter this, but they didn't actually know what had caused this."
Tests revealed his immune system was attacking his spine, and he eventually totally lost the use of his legs due to a combination of pain and loss of feeling.

A week before Christmas he was diagnosed with bilharzia - an infection caused by a parasitic worm which lives in fresh water in subtropical and tropical regions - and given suitable medication.
He said: "That killed the infection but I was left basically debilitated.
"They told me there was a 30 per cent chance I'd make a full recovery - ten years from now.
"It was a horrible feeling - I felt completely helpless, and the odds weren't good. I couldn't wish what I've been through on anybody."

He also had to deal with extreme acne caused by steroids, diarrhoea, and using a catheter because he couldn't use the loo.
James said: "The pain has been like nothing I've ever know. At times, it has been an excruciating physical pain that's been debilitating.
"Early in my recovery - sometime in January - I had a really terrible acne outbreak that went all down my back and down my arms.
"I couldn't sleep for a month because lying on my back hurt. I couldn't really be under running water either, so I had to shower my front instead.
"The loss of feeling and use of my legs affected every part of my life. I wasn't able to exercise much because of the infection, which was hard.
"In January, I couldn't use the toilet normally, so had to use a catheter. That was quite embarrassing for me because it's not something you associate with young guys.
James also lost his appetite and struggled to maintain a sex life with his girlfriend.
He said: "My girlfriend couldn't hug me because just to touch me hurt and we've not been intimate with each other because it's just too painful for me.
"I'll certainly think twice before taking a dip in Lake Malawi."


Virtual Building Viewer
An educational tool made for the UMD Fire Protection Engineering Dept
Navigate a virtual warehouse based on real blueprints. Helps students visualize fire safety features. Made to replace in person tours during COVID.
I'm a Computer Science Graduate from the University of Maryland College Park with an interest in software and game development, VR, and IT. I have worked as a contracter for a couple of organizations around campus, and taught an elective class at UMD about Unity and VR/AR.
Navigate a virtual warehouse based on real blueprints. Helps students visualize fire safety features. Made to replace in person tours during COVID.
While I was president of the UMD Game Developers Club I made their website.
I worked as a programmer/designer for this game, implementing some features and boss fights and updating levels. Written in the client's custom C# engine
A personal project I am making for PC and Android with Unity.
A short game made in 48 hours for the Miz Jam 1 competition. Contestants all had to use the same art pack to create a game.


By Lars Lindahl, high school student © 1999 Lars Lindahl
"The Iron Giant" (***1/2) (out of four stars)
Directed by Brad Bird Written by Brad Bird and Tim McCanlies Starring the voices of Eli Marienthal, Vin Diesel, Jennifer Aniston, Harry Connick Jr., Christopher McDonald, John Mahoney, James Gammon, Cloris Leachman, M. Emmet Walsh
"The Iron Giant" is a great achievement in feature length animation. It is one of the few this decade to simultaneously teach a valuable lesson, entertain all ages, and accurately reenter an era of America's regretful past. The best part about this film is that it actually captures a number of distinct emotions and characters of our recent past half a century ago. Through the reaction to the entrance of this foreign giant, paranoia and trust battle each other out and determine the fate of the situation. This battle creates an intense, depressing, and humorous outcome. The stable balance of these three factors makes "The Iron Giant" so special. It contradicts the spreading trend of just using animation to create wacky and unimaginable characters. The characters most definitely have existed in this time of American history and "The Iron Giant" uses this reality to create real emotions and understandable decisions from both perspectives. The film is also an argument that the government is mainly to blame for the Cold War. By making the army and a government agent the villains, the film shows that America is fighting America. One part of this country did not blow situations out of proportion and examined them before making decisions. Another part of this country decided before they examined that anything foreign or new was a threat to the country. A number of times the film tells the giant (and the audience) to choose who they are for themselves without outside interference. "The Iron Giant" mainly is an argument against the use of violence to solve issues. It asks the question of who to follow in a time of crisis, yourself or the mass majority (in this case the government and army).
These messages are given within the plot which is mostly formulaic except for its fantastic, heart pounding ending. This is not to say that formulaic is bad. "The Iron Giant" can be easily compared to "E.T." and equals it in its process of story telling and lesson teaching. The story takes place in a small town in Maine during 1957, a time when nuclear attacks were feared and B-horror movies thrived. A number of spoofs involving the culture of the time are cleverly added into the script which should entertain adults who grew up during that time period. A young boy, Hogarth Hughes, (Eli Marienthal in a wonderful vocal performance) discovers an iron giant (Vin Diesel) near his town and develops a secret friendship with it. Hogarth teaches the giant how to say basic words, he teaches him that killing is bad and death should be natural, and he teaches him to behave like superman protecting the innocent citizens from danger. However, this relationship is endangered when the army sets out to destroy it no matter who gets in the way. Christopher McDonald, who always seems to play the bad guy nowadays, voices Kent Mansley, the man determined to bring the robot down at all costs by calling in the army once he receives evidence.
This film proves that animated feature length films can definitely appear on a film critic's top ten list of movies of the year. Its spectacular ending wraps together a large amount of the Cold War. The paranoia, the control of the government, and the fear of foreigners entering the home front. The animation in the film also deserves credit for its great story telling. Brad Bird masterfully uses close ups and long shots in a number of scenes. He focuses on a close up, then slowly blurs it out and closes in on an image farther away. This style of drawing is very effective because it makes the scenery more real and as a result makes the content more believable. "The Iron Giant" is the best animated film since "The Lion King" and it deserves even more credit because it does not have the comfortable cushion of Disney marketing and advertising. A wonderful film only held back by some hackneyed lines and scenes. The positives greatly outweigh the negatives in every category.
© 1999 Lars Lindahl
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


UI Bootstrap 4
Bootstrap components written in pure AngularJS by the AngularUI Team
Ported to Bootstrap 4 by Morgul and later updated by krysvac
Getting started
Dependencies
This repository contains a set of native AngularJS directives based on Bootstrap's markup and CSS. As a result no dependency on jQuery or Bootstrap's JavaScript is required. The only required dependencies are:
- AngularJS (requires AngularJS 1.4.x or higher, tested with <%= ngversion %>).
- Angular-animate (the version should match with your angular's, tested with <%= ngversion %>) if you plan on using animations, you need to load angular-animate as well.
- Angular-touch (the version should match with your angular's, tested with <%= ngversion %>) if you plan on using swipe actions, you need to load angular-touch as well.
- Bootstrap CSS (tested with version <%= bsversion %>). This version of the library (<%= pkg.version%>) works only with Bootstrap CSS in version 4.x.x
Files to download
Build files for all directives are distributed in several flavours: minified for production usage, un-minified
for development, with or without templates. All the options are described and can be
downloaded from here. It should be noted that the -tpls
files contain the templates bundled in JavaScript, while the regular version does not contain the bundled templates. For more information, check out the FAQ here and the README here.
Alternatively, if you are only interested in a subset of directives, you can create your own build.
Whichever method you choose, the good news are that the overall size of a download is fairly small; 122K Minified for all directives with templates and 98K without (~31kB with gzip compression, with templates, and 28K gzipped without)
Installation
As soon as you've got all the files downloaded and included in your page you just need to declare
a dependency on the ui.bootstrap
module:
angular.module('myModule', ['ui.bootstrap']);
If you are using UI Bootstrap in the CSP mode, e.g. in an extension, make sure you link to the ui-bootstrap-csp.css
in your HTML manually.
You can try one of the plunkers from this page to see a working example of what is described here.
CSS
Original Bootstrap's CSS depends on empty href
attributes to style cursors for several components (pagination, tabs etc.).
But in AngularJS adding empty href
attributes to link tags will cause unwanted route changes. This is why we need to remove empty href
attributes from directive templates and as a result styling is not applied correctly. The remedy is simple, just add the following styling to your application:
.nav, .pagination, .carousel, .card-title a { cursor: pointer; }
FAQ
Please check our FAQ section for common problems / solutions.
Reading the documentation
Each of the components provided in <%= reponame %>
have documentation and interactive Plunker examples.
For the directives, we list the different attributes with their default values. In addition to this, some settings have a badge on it:
- - This setting has an angular $watch listener applied to it.
- B - This setting is a boolean. It doesn't need a parameter.
- C - This setting can be configured globally in a constant service*.
- $ - This setting expects an angular expression instead of a literal string. If the expression support a boolean / integer, you can pass it directly.
- readonly - This setting is readonly.
For the services (you will recognize them with the $
prefix), we list all the possible parameters you can pass to them and their default values if any.
* Some directives have a config service that follows the next pattern: uibDirectiveConfig
. The service's settings use camel case. The services can be configured in a .config
function for example.
<%= module.displayName %> (ui.bootstrap.<%= module.name %>
<%- module.docs.html %>
<%- module.docs.js %>


Please enter something without setting focus to the input
It's another input, you can put the focus here for the test
It's textarea, you can put the focus here for the test


>> type `ping`, `time`, or `echo [message]` to see what's happened >> type `bye`, `home` and you can interact with bot's confirm dialog >> Download Saihubot


DROPS, is a live sound reactive shader, based on OpenGL, coded on The Force. Project uses the sound of the drops to trigger corresponding animation( /visual effects here).
Project uses the " Uneven Capsule " from Inigo Quilez’s page for 2D, to generate original graphic. Then,it combines the arguments of the uneven capsule with time and bands function - making the graphic become dynamic. When the sound is detected louder, the number on y coordinate goes up, and the "drop" jumps down.
sdUnevenCapsule Fuction
float sdUnevenCapsule( vec2 p, float r1, float r2, float h ) { p.x = abs(p.x); float b = (r1-r2)/h; float a = sqrt(1.0-b*b); float k = dot(p,vec2(-b,a)); if( k < 0.0 ) return length(p) - r1; if( k > a*h ) return length(p-vec2(0.0,h)) - r2; return dot(p, vec2(a,b) ) - r1; }
Main Fuction
void main () { vec2 pos = uv(); pos = mod(pos, vec2(pos))+pos; float shape2 = sdUnevenCapsule(pos+vec2(0,-2.+bands.y*5.), 2.+2.*sin(time), 1., 5.); shape2 = ceil(shape2); pos = pos + vec2(bands.x,bands.y); float shape1 =circ (pos); vec3 brightness = vec3(0.2); vec3 contrast = vec3(0.2,0.23,0.34); vec3 osc = vec3(0.2,0.24,0.4); vec3 phase = vec3(0.3); float shape = shape2*100.; vec3 color = cosPalette(shape - time/2., brightness*4.,contrast*.5,osc*0.9,phase*10.); gl_FragColor = vec4(color,1); }


Screenshots
To really experience this tool, you should download it for yourself and see it in action. (At a mere 530k, the .jar file is not much larger than a couple screenshots.) However, the following screenshots are offered for your viewing enjoyment. Click on a thumbnail for a larger view
| Dijkstra's algorithm Small Graph Logical Represntation |
Dijkstra's algorithm Large graph Adjacently List Representation |
B-Tree |
|
Quicksort |
Radix Sort |


to calculate the Irms without having a voltage sensor (AC adaptor) so using a fixed value.
The standard value of the argument Number_of_Samples is 1480. What is the rationale behind this?
When you do have a voltage sensor the library will sample for 20 half wavelengths and because it can apparently handle approximately 53 samples you will end up with around 530 samples (calcVI function).
Is the sampling rate increased (because you don't need to calculate the Vrms) exactly by that much that 1480 is 20 half wavelengths? That would mean 148 samples per cycle, but it seems odd that it almost triples, you would expect somewhere along the lines of 53*2 samples/cycle...
And one additional question: how would it effect the accuracy if I reduce the number of samples in calcIrms ? (I would like to meausure 6 current inputs during 1 second, with the default value the 6 calcIrms functions take +/- 1516 milliseconds, I would like to reduce it to 1000)
Re: EmonLib: Number_of_Samples in calcIrms function defaults to 1480 but why?
It seemed a good idea at the time!
It was based on the speed at which samples were taken and was an attempt to have a whole number of cycles (so that there would be minimal "end effect" of an incomplete cycle that would introduce error) and large enough so that the influence of an incomplete cycle, which will probably happen anyway, would be minimal. However, over time the code has been altered and I don't think anyone has checked to see what the optimum now is. Clearly, the default should be a whole number of cycles at both 50 Hz and 60 Hz. Equally clearly, that won't work if the frequency drifts. In the UK the tolerance limit is ±1%, though normally it is held within much tighter limits.
If you want to take fewer samples, you need to time the sample loop and base your decision on how you want to balance the things I've mentioned.
Of course, it's done as the number of samples because you can't reliably count cycles if only the current wave is available.
[Edit]
Having timed the present version of emonLib, I've got it as running at 162.8 μs per sample, timed over 1000 samples. That equates to 614.25 samples per 100 ms, which is 5 cycles or 6 cycles, depending on your system frequency.
Therefore a good default value would seem to be 1228 samples (10 or 12 complete cycles, taking 200 ms).
Re: EmonLib: Number_of_Samples in calcIrms function defaults to 1480 but why?
Thanks for the explanation!
Maybe we could write a function to determine the sample speed at startup..and calculate the no of samples based on that..
Re: EmonLib: Number_of_Samples in calcIrms function defaults to 1480 but why?
But that will still be wrong if / when your mains frequency changes!
What you really need is a nice steady voltage wave to count cycles with, and that solves the problem!


All authors contributed to the study’s conception and design, S.B. and M.S. designed the figures, S.B. wrote the manuscript, and all authors reviewed the manuscript.


The SURFConext Attribute Mapper allows you to link your institutional account and identity to your iDIN identity. With iDIN, you can identify yourself online to companies and organisations using your banks log-in procedure - simple, secure and safe
Once you linked your institutional identify with iDIN you can access many educational services with the iDIN Identity Provider. These eduGAIN services are not accessible with your institutional identity.


Online Rental Order Form
Fill out our simple to Rental Form and get ready for your project in seconds!
Please note that prices do not cover pickups past the first pickup. Subsequent pickups will cost $20 per trip to the landfill
Catalog
12 Yard Dumpster
$180
16 Yard Dumpster
$210
Length of Rental
1-3 days: +$80
3-7 days: +$120
1-2 weeks: +$320
2-3 weeks: +$360
3-4 weeks: +$420
Name of Customer
Date of Service
Time of Service:
Pickup Date:
Address
Contact Info
We accept
Order Summary
- Products $0
- Delivery Fee $30.00
-
Total amount$0


Learning Objectives
By the end of this lesson you will be able to -
- Create an Amazon Web Services (AWS) account and access services.
- Use basic features of the AWS Management Console.
- Define security groups.
- Use basic features of the Elastic Compute Cloud (EC2).
- Use basic features of Elastic Load Balancing (ELB).
- Employ Auto Scaling.
- Use Amazon CloudWatch to monitor resources.
- Use Amazon Route 53 to manage a domain.
- Use Amazon Simple Storage Service (S3) to store objects.
- Identify the basic features of AWS CloudFormation for automating infrastructures.
- Identify the basic features of AWS Elastic Beanstalk.
- Identify the purpose other available AWS services.


The quick brown fox jumps over the lazy dog. Pack my box with five dozen liquor jugs. The jay, pig, fox, zebra and my wolves quack! The bearing grain deprives the corridor outside the negotiable beef. A misfortune catalogs a messy aircraft. Can its crack soil the trap? Its producer chars your federal bullet beside the crystal. Should the narrative nick discriminate? The academic poses before your mercury. The stirred bottle messes a coach around the exposed kingdom. How does a personal cupboard repeat my orbital? The gutter comforts the plausible porter. Your steep visit wipes the initiative.
Click to view the font. Double click to remove it.
https://fonts.googleapis.com/css?family=Hind|Heebo:400,700


High school friends strip down to budgie smugglers for charity
Harry Morton from Wollstonecraft said he felt a bit cheeky when he asked high school buddies to strip down to swimwear for Movember.
Harry Morton from Wollstonecraft said he felt a bit cheeky when he asked high school buddies to strip down to swimwear for Movember.
“We thought we’d add a bit of excitement and flair to the car wash to create some interest,” the 23-year-old said.
Mr Morton said the mates had raised close to $1500 for Movember in just three hours at North Sydney.
“It may have been a fun day with the boys, but it’s also about bringing awareness to men’s mental health,” he said.
“Many men are dying at younger ages these days due to things like suicide, depression and cancer. It scares me that I could lose one of my mates because of this.”
As a youth worker, Mr Morton has dedicated his life to helping others through youth organisation Reach Foundation and his online blog What’s Life About?
 I really hope to change that,” he said.
His friend John Chapman was prompted to confide how tough he found his father’s battle with prostate cancer.
“His dad is doing really well now, but it still affects John,” Mr Morton said.
“I’m so glad I have mates who can be a little crazy sometimes, but can pause and reflect on what’s going on in their lives.”
Mr Morton said growing a Mo can help save a life. “A moustache is a great conversation starter because it forces people to ask questions. That’s a great first start,” he said.


Experiments
It was important for us to run experiments on the various prototypes and mini-projects we had built in order to identify the limitations and where there were potential pitfalls. This would allow us to address such problems in the final design and would also give us an idea of what problems may face during use, especially for finding edge cases. Overall, this experimentation allowed us to understand the limitations of the project much better.
Experiments for bots
| Exp # |
Experiment Title |
Experiment details |
Experiment results |
Success and failure |
Done by |
Date |
| 1 |
Skype Bot SkyScanner - Typo |
I will intentionally make typos in my queries for commands (such as new search) to see whether or not Skype Bot is able to deal with simple and reasonable typo errors. |
Any commands given to the bot have to be written word for word and spelt exactly correctly else the bot is unable to process this, even if only a single letter is off. |
Failure |
Sachchit Prasad |
02/12/2016 |
| 2 |
Skype Bot SkyScanner - Typo |
I will intentionally make typos in my queries for cities searched (such as New Yrk for New York and Belfst for Belfast) to see whether or not Skype Bot is able to deal with simple and reasonable typo errors. |
The bot is able to correct for these typos and will return the intended city searched for. At most you can make a typo of two letters (whether changed or omitted, anything beyond this will not work) - this is reasonable as typos aren't likely to be beyond this level. |
Success |
Sachchit Prasad |
02/12/2016 |
| 3 |
Skype Bot SkyScanner - Garbage information |
I shall query something which does not answer the question asked and does not make sense for a user to put in as an answer. For example, on the prompt for "What is the start date", I shall put in a garbage input and see whether the bot repeats the question or is unable to process it and carries on |
The bot just keeps asking the same question over and over as garbage information is fed to it - until something that makes sense to be processed is passed. |
Success |
Sachchit Prasad |
02/12/2016 |
| 4 |
Skype Bot SkyScanner - Go back a stage |
Is the bot able to go back a step should you make an error at a given stage, there are no commands given which say this is the case so I will check if there are any built in commands that let you do this. |
None of the commnads worked to go backwards, suggesting that a user would have to start over should they make a mistake. |
Failure |
Sachchit Prasad |
02/12/2016 |
| 5 |
Skype Bot SkyScanner - How dates are handled |
When prompted for a date to be entered, if the user is unsure and does not select a specific date, are they able to say mroe general statements like a few days, is this handled? |
The bot is able to handle such queries and saying a "few days" tends to return a date 3 days from the current one and "few weeks" returns a date 3 weeks from the current date. |
Success |
Sachchit Prasad |
02/12/2016 |
| 6 |
Skype Bot SkyScanner - How dates are handled |
When prompted for a date to be entered, if the user enters a date too far in the future, does the system search for this or does it recognise that this is note a reasonable date to give - for far forwards can we book? |
The upper limit for dates is 52 weeks from the current date, anything above this is considered to far away and a relevant error message prompting the user to enter a time closer to the current date is given. |
Success |
Sachchit Prasad |
02/12/2016 |
Experiments for wit.ai bot
| Exp # |
Experiment Title |
Experiment details |
Experiment results |
Success and failure |
Done by |
Date |
| 1 |
Wit.ai gym class booking bot |
When the user says hi, hello or equivalent phrases the bot should start the conversation with what can I do for you? |
The problem here is that whatever user says, the bot would ask the question what can I do for you, even if the user asks directly
to book a class without saying hi. |
Success |
Matineh Akhlaghinia |
02/12/2016 |
| 2 |
Wit.ai gym class booking bot |
When the user says book me class the bot should get back to her/him by asking about the date. |
When the users says book me class it comes back to user by asking what date would you want me to book? |
Success |
Matineh Akhlaghinia |
02/12/2016 |
| 3 |
Wit.ai gym class booking bot |
When the user says book me class today instead of tomorrow, would the bot realize the difference? |
The bot won't know the difference and it's hacked to say the same thing after a certain answer |
Failure |
Matineh Akhlaghinia |
02/12/2016 |
| 4 |
Wit.ai gym class booking bot |
Can the bot simulate a conversation that should go on in our final product? |
Yes, the bot is able to simulate a very simple conversation with a user that wants to book a gym class |
Success |
Matineh Akhlaghinia |
02/12/2016 |
Experiments for the API
| Exp # |
Experiment Title |
Experiment details |
Experiment results |
Success and failure |
Done by |
Date |
| 1 |
Getting the available gym classes |
When calling url "/classes" on your localhost server where the app is running, you will get a list of available classes as a JSON object. |
The result was a list of available classes with the type, data and time attributes. |
Success |
Matineh Akhlaghinia |
15/11/2016 |
| 2 |
View a certain class |
When calling url "/classes/{id}" where the id is the type of the class, on your localhost server, you'll get a JSON object where you get the description of that certain class. |
The result was a JSON object where the attributes of that certain type of class could be seen. |
Success |
Matineh Akhlaghinia |
15/11/2016 |
| 3 |
Book a class |
When calling url "/bookClass/{id}" where the id is the type of the class, on your localhost server, you'll get a confirmation of your booking. |
The result was a confirmation statement as a string. |
Success |
Matineh Akhlaghinia |
17/11/2016 |
| 4 |
View bookings |
When calling url "/bookedClasses" displays a list of classes that are booked for the user. |
The result was a list of JSON where there are description of each booked class inside. |
Success |
Matineh Akhlaghinia |
17/11/2016 |
| 5 |
Hosting the API on Azure VM |
Made the mock API wrapper using microsoft API app and deployed it on Microsoft Azure Virtual Machine. |
http://nuffieldapiwrapper.azurewebsites.net/docs |
Success |
Matineh Akhlaghinia |
10/12/2016 |
Experiments for the Alexa Skill
| Exp # |
Experiment Title |
Experiment details |
Experiment results |
Success and failure |
Done by |
Date |
| 1 |
Uber - Full user Experience/booking system |
I will try to go through the process of calling a uber using the Alexa Skill. I will consider it a success if I am able to book it without any problems. |
Alexa had a problem locating me. I tried many times but it never worked. |
Failure |
Romain Dumon |
7/12/2016 |
| 2 |
TheGuardian- Search Query for News and Listing |
I will ask the guardian to give me a list of headlines and see how the system responds. A success is if the guardian is able to make a selective query and give me understandable headlines |
The search was a success and the query was handle well by the Skill |
Success |
Romain Dumon |
28/11/2016 |
| 3 |
Amazon Alexa- Asking random question |
Ask Alexa random questions to see how well it can recognize words. A success is if Alexa can recognize all the words. |
The results was able to recognize all the words. I am very impressed by the technology |
Success |
Romain Dumon |
28/11/2016 |
| 4 |
Just Eat- Ordering Food, testing an ordering system |
I will use this application to order a Pizza. A success is if I order the pizza without having to use my food. Helpful to understand how to design interactive skills. |
I receive my pizza anf was able to order it with ease. We will take into account the design of the application in our design. |
Success |
Romain Dumon |
2/12/2016 |
| 5 |
Building a simple hello world Alexa skill and interact with it through a real Echo Dot |
I will go through the whole process of building an Alexa skill from setting up the server to writing the code and uploading it to the Alexa skill store. |
The whole process went fine but the publishing did not work. |
Mostly Successful |
Romain Dumon |
2/12/2016 |
Integration Testing
For testing users and bot interaction we used Microsoft bot framework emulator. The Bot Framework Emulator is a desktop application that allows bot developers to test and debug their bots on localhost or running remotely through a tunnel.
Using the emulator, we were able to unit test each of our intents within the application as well as the integration of our custom API with the bot framework. We were able to see what are the JSON objects that the user is sending and JSON response from the bot. This helped us to easily find out where in the language understanding process the bot is not recognizing a certain intent or entity. Moreover, throughout the log, we were able to see what is response status from the bot and if any internal server error happened within the API requests.
Unit Testing
In our application, since we used natural language processing to make the bot understands user responses better and have some personality, we had to test whether the bot recognized different formats of saying an intent or entity after adding them in LUIS framework. LUIS itself has a test section where you can enter different intents and see if the language is capable of recognizing that and adding them if not. While nothing takes the place of human quality assurance, it was impossible for us to go through all the ways user could make up an intent.
For testing if all the framed sentences for each intent is working properly, we had a queue of test cases consisting of different ways of user’s responses. Then we store the recognized intent in a queue and print them out on a log. In this way we could see which one of the sentences matched with what intent and if that was the correct intent to be matched with.
Throughout our development, we had to make a custom API which was build in Express. To be able to test the different endpoints within our API, we used Postman. Postman is a Google Chrome app for interacting with HTTP APIs. It presents you with a friendly GUI for constructing requests and reading responses.
By using Postman, we were able to see if the query associated to our API endpoint is well written. If the body and parameter formats of the values passed is correct and more importantly we were able to see if we are getting the desired result. Postman not only showed us the status code which helped us in figuring out where in the process we might have been wrong, but also displayed user understandable error messages which made our testing process more smoother.
User Testing
After the application was completed on the first iteration, we conducted several user tests to test the functionality and what improvements could be made to the system
| ID |
User Acceptance Test Case |
Feedback |
| 1 |
Navigating application |
The feedback was that the flow of the application was intuitive and very easy to follow, the users found the transition of their conversation to be very logical and were able to follow it with ease. No changes were required to be made as a result. The client also found this to be the case. |
| 2 |
Booking Class |
Booking was also found to be simple as all a user had to do was specify they wanted to book a class and all testers found it very simple to book a class despite having never used the bot or digital assistant. The client was also happy with the simplicity of the booking process. |
| 3 |
Viewing Class |
Likewise as with the booking, the users said the viewing seemed to follow in the same format and once again they had found it just as easy to view classes and hence no changes were required for this either. |
| 4 |
Cancelling Class |
Again, same as with booking and viewing, cancelling followed the same process and hence the feedback was exactly the same for this from both users and the client. |
| 5 |
Setting up application |
The application was easy to set up once a user was given the the link - as it all they have to do is follow the formal procedure for setting up a bot from the link. This proved to be quick and painless and exactly how the client had envisioned. |
| 6 |
Giving incomplete input |
The users found if they were to put in the wrong inputs, they would be directed to put in the information again until this was completed and given to the bot to use - as intended. |