I’ve been reviewing the various IoC containers available for Flex/Actionscript. One of the benefits of IoC and DI is that it greatly facilitates unit testing. By injecting our dependencies into our applications actors, we are effectively isolating them from the other classes that make the application function. “So what?”
In computer programming, unit testing is a software verification and validation method in which a programmer tests that individual units of source code are fit for use. A unit is the smallest testable part of an application. In procedural programming a unit may be an individual program, function, procedure, etc., while in object-oriented programming, the smallest unit is a class, which may belong to a base/super class, abstract class or derived/child class.
Ideally, each test case is independent from the others: substitutes like method stubs, mock objects, fakes and test harnesses can be used to assist testing a module in isolation. Unit tests are typically written and run by software developers to ensure that code meets its design and behaves as intended. Its implementation can vary from being very manual (pencil and paper) to being formalized as part of build automation. -wikipedia unit testing entry
To effectively unit test classes, we want them to be as isolated as possible. The class needs to stand on its own and have its functionality vetted to ensure that it behaves as expected. When we start to test how our classes behave together, we have entered the land of integration testing. Integration testing is a worthwhile pursuit also, but before we get to that point, we really want to ensure that our classes are solid by themselves.
Using the example in this Robotlegs Image Gallery demonstration, we are going to test a couple of the classes that make up the application. The demo isn’t complex. It has a very simple model, a single service, and just a few views. In fact, it might even seem like a waste of time to unit test a simple example such as this, but the concepts are applicable to larger applications where the benefits of this type of testing really start to pay off.
FlexUnit 4 is the framework that is used here. It provides very handy asynchronous testing, meta data support, and a whole bucket of stellar features that I won’t even begin to scratch the surface of. FlexUnit 4 also comes with a graphical testrunner interface:
On to the code…
This test runner interface is added to the RobotlegsImageGalleryTestRunner.mxml application:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="https://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/halo" xmlns:flexUnitUIRunner="https://www.adobe.com/2009/flexUnitUIRunner" creationComplete="onCreationComplete()"> <s:layout> <s:BasicLayout/> </s:layout> <fx:Script> <![CDATA[ import org.robotlegs.demos.imagegallery.test.suites.RobotlegsImageGalleryTestSuite; import org.flexunit.listeners.UIListener; import org.flexunit.runner.FlexUnitCore; private var core:FlexUnitCore; private function onCreationComplete():void { this.core = new FlexUnitCore(); core.addListener( new UIListener( uiListener )); core.run( RobotlegsImageGalleryTestSuite ) } ]]> </fx:Script> <flexUnitUIRunner:TestRunnerBase id="uiListener" width="100%" height="100%"/> </s:Application> |
The core runs our test suites, in this case we are only running a single suite: the RobotlegsImageGalleryTestSuite. The test suite carries metadata that identifies it as a FlexUnit suite. There is no need to extend TestSuite as in previous version of FlexUnit:
1 2 3 4 5 6 7 8 9 10 11 12 13 | package org.robotlegs.demos.imagegallery.test.suites { import org.robotlegs.demos.imagegallery.test.cases.TestFlickrService; import org.robotlegs.demos.imagegallery.test.cases.TestGalleryProxy; [Suite] [RunWith("org.flexunit.runners.Suite")] public class RobotlegsImageGalleryTestSuite { public var testFlickrService:TestFlickrService; public var testGalleryProxy:TestGalleryProxy; } } |
The suite further defines the test cases that we are going to run, TestFlickrService and TestGalleryProxy. Any other test cases would also be included in this suite. TestFlickrService extends the Robotlegs Service class. It makes an asyncronous call to the Flickr API and retrieves images via the ‘interestingness’ category, as well as through a text search. The Service class has a dependency that is injected by the framework on its eventBroadcaster property. EventBroadcaster simply wraps an event dispatcher to provide a simplified interface for the framework to access. Service also provides a dispatch(event) convenience method for sending event notifications to the framework context. Our tests are not run within this context, however, so we have run into a problem. Since the framework injects the EventDispatcher into the EventBroadcaster automatically, we apparently have no way to access it and we can’t receive framework notifications.
As it happens, we can simply inject our dependencies manually. The TestFlickrService case has a serviceDispatcher property that extends EventDispatcher. In our setUp() method that is called prior to every test, we create a new EventBroadcaster (which takes our serviceDispatcher as an argument) and add it to our fresh FlickrImageService instance. Now the test case has access to the injected dispatcher, and we can listen for our normal flash events that Robotlegs uses for notifications.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | package org.robotlegs.demos.imagegallery.test.cases { import flash.events.EventDispatcher; import org.flexunit.Assert; import org.flexunit.async.Async; import org.robotlegs.demos.imagegallery.events.GalleryEvent; import org.robotlegs.demos.imagegallery.remote.services.FlickrImageService; import org.robotlegs.mvcs.EventBroadcaster; public class TestFlickrService { private var service:FlickrImageService; private var serviceDispatcher:EventDispatcher = new EventDispatcher(); [Before] public function setUp():void { serviceDispatcher = new EventDispatcher(); service = new FlickrImageService(); service.eventBroadcaster = new EventBroadcaster(this.serviceDispatcher);; } [After] public function tearDown():void { this.serviceDispatcher = null; this.service.eventBroadcaster = null; this.service = null; } [Test(async)] public function testRetreiveImages():void { this.serviceDispatcher.addEventListener( GalleryEvent.GALLERY_LOADED, Async.asyncHandler(this, handleImagesReceived, 3000, null, handleServiceTimeout), false, 0, true); this.service.loadGallery(); } [Test(async)] public function testSearchImages():void { this.serviceDispatcher.addEventListener( GalleryEvent.GALLERY_LOADED, Async.asyncHandler(this, handleImagesReceived, 3000, null, handleServiceTimeout), false, 0, true); this.service.search("robotlegs"); } protected function handleServiceTimeout( object:Object ):void { Assert.fail('Pending Event Never Occurred'); } protected function handleImagesReceived(event:GalleryEvent, object:Object):void { Assert.assertEquals("The gallery should have some photos: ", event.gallery.photos.length > 0, true) } } } |
After each test is run, our tearDown method is called by FlexUnit which sets our service and its eventBroadcaster to null in preparation for the next test in this case to be run. While this example isn’t very complex, it is easy to see how this could be extended to a much more complicated service.
The GalleryProxy class is tested in much the same way, though it doesn’t have any async methods:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | package org.robotlegs.demos.imagegallery.test.cases { import org.flexunit.Assert; import org.robotlegs.demos.imagegallery.models.proxies.GalleryProxy; import org.robotlegs.demos.imagegallery.models.vo.Gallery; import org.robotlegs.demos.imagegallery.models.vo.GalleryImage; public class TestGalleryProxy { private var galleryProxy:GalleryProxy; [Before] public function setUp():void { this.galleryProxy = new GalleryProxy() } [After] public function tearDown():void { this.galleryProxy = null; } [Test] public function testSetGallery():void { var gallery:Gallery = new Gallery(); this.galleryProxy.gallery = gallery; Assert.assertEquals("GalleryProxy should have a gallery", this.galleryProxy.gallery != null, true ); } [Test] public function testSetSelectedImage():void { var image1:GalleryImage = new GalleryImage() var image2:GalleryImage = new GalleryImage() var gallery:Gallery = new Gallery() this.galleryProxy.gallery = gallery; gallery.photos.addItem(image1); gallery.photos.addItem(image2); image1.selected = false; image2.selected = true; this.galleryProxy.setSelectedImage(image1); Assert.assertEquals("Image1 should be selected", image1.selected, true); Assert.assertEquals("Image 2 should NOT be selected", image2.selected, false); } } } |
With these simple tests we are 100% certain that our classes function as expected on their own, completely isolated from the rest of the application.

We are all unit testing our code and following strong Agile/TDD processes, right…. right? I don’t know how much unit testing is going on in the Flash/Flex world, but my guess that the overall test coverage percentage is very small. RIAs are here. They are becoming full fledged applications that people rely on to do business. There will come a time in your RIAs life that you will need to get in there and do some refactoring. It might be for performance, fixing bugs, or adding some new kickass feature to push your app to the next level.  -Hamlet D’Arcy
There are many, many arguments for unit testing your code, but for me this is the most compelling. At some point in the future, you are going to want to get in there and make some changes. If your application is important to your users, you want to make sure those changes don’t break everything. It is guaranteed that they will break something, the question is will you know immediately what happened, or at least where to look?
We are getting the proper tools for the job. FlexUnit 4 is an incredible project. There is a robust selection of frameworks that all have merits and can facilitate structured, well designed applications. I’m personally out of excuses. I want to develop applications that my users can trust and rely on to do business, and unit testing is a part of that recipe.
The Unit Testing: IoC/DI, Robotlegs and FlexUnit 4 by Joel Hooks, unless otherwise expressly stated, is licensed under a Creative Commons Attribution 3.0 United States License.


Detroit Lions Announce Matthew Stafford’s Status vs. Cowboys
by Tzvi MachlinAfter seeing his 136-game start streak snapped last week against the Chicago Bears with an injury, Detroit Lions quarterback Matthew Stafford has had his status up in the air for Sunday’s game against the Dallas Cowboys.
Lions head coach Matt Patricia updated Stafford’s status – and it doesn’t bode well for the team’s chances.
Patricia said in his Friday press conference that Stafford has been ruled out for the game. He is currently dealing with broken bones in his back as well as a hip injury.
As a result, backup Jeff Driskel will start for the second straight week. Driskell went 27 of 46 for 269 yards, one touchdown and one interception in last week’s 20-13 loss to the Bears.
The Detroit Lions are 3-5-1 on the season – last place in the NFC North and 13th in the NFC standings.
Though they’ll be the home team against the visiting Cowboys, it’s hard to imagine the Lions having enough firepower.
The Lions have stopped short of ruling out Stafford for the rest of the year. But if he doesn’t return soon, the Lions may already be out of it by the time he returns.
Will we see Matthew Stafford take the field again for the Lions in 2019?


--- title: Terms of Use description: Cboard Terms of Use ---
TERMS OF SERVICE
Last updated April 19, 2023
We are COMUNICACION AUMENTATIVA CHILE SpA ("Company," "we," "us," "our"), a company registered in Chile at AV. MANQUEHUE SUR 520, Las Condes, Santiago, Región Metropolitana 7570180.
We operate the website cboard.io (the "Site"), the mobile application Cboard AAC (the "App"), as well as any other related products and services that refer or link to these legal terms (the "Legal Terms") (collectively, the "Services").
You can contact us by phone at +543517574240, email at<EMAIL_ADDRESS>or by mail to AV. MANQUEHUE SUR 520, Las Condes, Santiago, Región Metropolitana 7570180, Chile.
These Legal Terms constitute a legally binding agreement made between you, whether personally or on behalf of an entity ("you"), and COMUNICACION AUMENTATIVA CHILE SpA, concerning your access to and use of the Services. You agree that by accessing the Services, you have read, understood, and agreed to be bound by all of these Legal Terms.
We will provide you with prior notice of any scheduled changes to the Services you are using. The modified Legal Terms will become effective upon posting or notifying you by<EMAIL_ADDRESS>, as stated in the email message. By continuing to use the Services after the effective date of any changes, you agree to be bound by the modified terms.
All users who are minors in the jurisdiction in which they reside (generally under the age of 18) must have the permission of, and be directly supervised by, their parent or guardian to use the Services. If you are a minor, you must have your parent or guardian read and agree to these Legal Terms prior to you using the Services.
We recommend that you print a copy of these Legal Terms for your records.
The information provided when using the Services is not intended for distribution to or use by any person or entity in any jurisdiction or country where such distribution or use would be contrary to law or regulation or which would subject us to any registration requirement within such jurisdiction or country. Accordingly, those persons who choose to access the Services from other locations do so on their own initiative and are solely responsible for compliance with local laws, if and to the extent local laws are applicable.
__________
We are the owner or the licensee of all intellectual property rights in our Services, including all source code, databases, functionality, software, website designs, audio, video, text, photographs, and graphics in the Services (collectively, the "Content"), as well as the trademarks, service marks, and logos contained therein (the "Marks").
Our Content and Marks are protected by copyright and trademark laws (and various other intellectual property rights and unfair competition laws) and treaties in the United States and around the world.
The Content and Marks are provided in or through the Services "AS IS" for your personal, non-commercial use only.
Subject to your compliance with these Legal Terms, including the "PROHIBITED ACTIVITIES" section below, we grant you a non-exclusive, non-transferable, revocable license to:
solely for your personal, non-commercial use.
Except as set out in this section or elsewhere in our Legal Terms, no part of the Services and no Content or Marks may be copied, reproduced, aggregated, republished, uploaded, posted, publicly displayed, encoded, translated, transmitted, distributed, sold, licensed, or otherwise exploited for any commercial purpose whatsoever, without our express prior written permission.
If you wish to make any use of the Services, Content, or Marks other than as set out in this section or elsewhere in our Legal Terms, please address your request to<EMAIL_ADDRESS>If we ever grant you the permission to post, reproduce, or publicly display any part of our Services or Content, you must identify us as the owners or licensors of the Services, Content, or Marks and ensure that any copyright or proprietary notice appears or is visible on posting, reproducing, or displaying our Content.
We reserve all rights not expressly granted to you in and to the Services, Content, and Marks.
Any breach of these Intellectual Property Rights will constitute a material breach of our Legal Terms and your right to use our Services will terminate immediately.
Your submissions and contributions
Please review this section and the "PROHIBITED ACTIVITIES" section carefully prior to using our Services to understand the (a) rights you give us and (b) obligations you have when you post or upload any content through the Services.
Submissions: By directly sending us any question, comment, suggestion, idea, feedback, or other information about the Services ("Submissions"), you agree to assign to us all intellectual property rights in such Submission. You agree that we shall own this Submission and be entitled to its unrestricted use and dissemination for any lawful purpose, commercial or otherwise, without acknowledgment or compensation to you.
Contributions: The Services may invite you to chat, contribute to, or participate in blogs, message boards, online forums, and other functionality during which you may create, submit, post, display, transmit, publish, distribute, or broadcast content and materials to us or through the Services, including but not limited to text, writings, video, audio, photographs, music, graphics, comments, reviews, rating suggestions, personal information, or other material ("Contributions"). Any Submission that is publicly posted shall also be treated as a Contribution.
You understand that Contributions may be viewable by other users of the Services.
When you post Contributions, you grant us a license (including use of your name, trademarks, and logos): By posting any Contributions, you grant us an unrestricted, unlimited, irrevocable, perpetual, non-exclusive, transferable, royalty free, fully-paid, worldwide right, and license to: use, copy, reproduce, distribute, sell, resell, publish, broadcast, retitle, store, publicly perform, publicly display, reformat, translate, excerpt (in whole or in part), and exploit your Contributions (including, without limitation, your image, name, and voice) for any purpose, commercial, advertising, or otherwise, to prepare derivative works of, or incorporate into other works, your Contributions, and to sublicense the licenses granted in this section. Our use and distribution may occur in any media formats and through any media channels.
This license includes our use of your name, company name, and franchise name, as applicable, and any of the trademarks, service marks, trade names, logos, and personal and commercial images you provide.
You are responsible for what you post or upload: By sending us Submissions and/or posting Contributions through any part of the Services or making Contributions accessible through the Services by linking your account through the Services to any of your social networking accounts, you:
confirm that you have read and agree with our "PROHIBITED ACTIVITIES" and will not post, send, publish, upload, or transmit through the Services any Submission nor post any Contribution that is illegal, harassing, hateful, harmful, defamatory, obscene, bullying, abusive, discriminatory, threatening to any person or group, sexually explicit, false, inaccurate, deceitful, or misleading;
to the extent permissible by applicable law, waive any and all moral rights to any such Submission and/or Contribution;
warrant that any such Submission and/or Contributions are original to you or that you have the necessary rights and licenses to submit such Submissions and/or Contributions and that you have full authority to grant us the above mentioned rights in relation to your Submissions and/or Contributions; and warrant and represent that your Submissions and/or Contributions do not constitute confidential information.
You are solely responsible for your Submissions and/or Contributions and you expressly agree to reimburse us for any and all losses that we may suffer because of
your breach of (a) this section, (b) any third party’s intellectual property rights, or (c) applicable law.
We may remove or edit your Content: Although we have no obligation to monitor any Contributions, we shall have the right to remove or edit any Contributions at any time without notice if in our reasonable opinion we consider such Contributions harmful or in breach of these Legal Terms. If we remove or edit any such Contributions, we may also suspend or disable your account and report you to the authorities.
3. USER REPRESENTATIONS
By using the Services, you represent and warrant that: (1) all registration information you submit will be true, accurate, current, and complete; (2) you will maintain the accuracy of such information and promptly update such registration information as necessary; (3) you have the legal capacity and you agree to comply with these Legal Terms; (4) you are not a minor in the jurisdiction in which you reside, or if a minor, you have received parental permission to use the Services; (5) you will not access the Services through automated or non-human means, whether through a bot, script or otherwise; (6) you will not use the Services for any illegal or unauthorized purpose; and (7) your use of the Services will not violate any applicable law or regulation.
If you provide any information that is untrue, inaccurate, not current, or incomplete, we have the right to suspend or terminate your account and refuse any and all current or future use of the Services (or any portion thereof).
You may be required to register to use the Services. You agree to keep your password confidential and will be responsible for all use of your account and password. We reserve the right to remove, reclaim, or change a username you select if we determine, in our sole discretion, that such username is inappropriate, obscene, or otherwise objectionable.
5. PRODUCTS
All products are subject to availability. We reserve the right to discontinue any products at any time for any reason. Prices for all products are subject to change.
6. PURCHASES AND PAYMENT
We accept the following forms of payment:
- Visa
- Mastercard
- gpay
You agree to provide current, complete, and accurate purchase and account information for all purchases made via the Services. You further agree to promptly update account and payment information, including email address, payment method, and payment card expiration date, so that we can complete your transactions and contact you as needed. Sales tax will be added to the price of purchases as deemed required by us. We may change prices at any time. All payments shall be in US dollars.
You agree to pay all charges at the prices then in effect for your purchases and any applicable shipping fees, and you authorize us to charge your chosen payment provider for any such amounts upon placing your order.  We reserve the right to correct any errors or mistakes in pricing, even if we have already requested or received payment.
We reserve the right to refuse any order placed through the Services. We may, in our sole discretion, limit or cancel quantities purchased per person, per household, or per order. These restrictions may include orders placed by or under the same customer account, the same payment method, and/or orders that use the same billing or shipping address. We reserve the right to limit or prohibit orders that, in our sole judgment, appear to be placed by dealers, resellers, or distributors.
7. REFUNDS POLICY
All sales are final and no refund will be issued.
8. SOFTWARE
We may include software for use in connection with our Services. If such software is accompanied by an end user license agreement ("EULA"), the terms of the EULA will govern your use of the software. If such software is not accompanied by a EULA, then we grant to you a non-exclusive, revocable, personal, and non-transferable license to use such software solely in connection with our services and in accordance with these Legal Terms. Any software and any related documentation is provided "AS IS" without warranty of any kind, either express or implied, including, without limitation, the implied warranties of merchantability, fitness for a particular purpose, or non-infringement. You accept any and all risk arising out of use or performance of any software. You may not reproduce or redistribute any software except in accordance with the EULA or these Legal Terms.
9. PROHIBITED ACTIVITIES
You may not access or use the Services for any purpose other than that for which we make the Services available. The Services may not be used in connection with any commercial endeavors except those that are specifically endorsed or approved by us.
As a user of the Services, you agree not to:
Systematically retrieve data or other content from the Services to create or compile, directly or indirectly, a collection, compilation, database, or directory without written permission from us.
Trick, defraud, or mislead us and other users, especially in any attempt to learn sensitive account information such as user passwords.
Circumvent, disable, or otherwise interfere with security-related features of the Services, including features that prevent or restrict the use or copying of any Content or enforce limitations on the use of the Services and/or the Content contained therein.
Disparage, tarnish, or otherwise harm, in our opinion, us and/or the Services. Use any information obtained from the Services in order to harass, abuse, or harm another person.
Make improper use of our support services or submit false reports of abuse or misconduct.
Use the Services in a manner inconsistent with any applicable laws or regulations.
Engage in unauthorized framing of or linking to the Services.
Upload or transmit (or attempt to upload or to transmit) viruses, Trojan horses, or other material, including excessive use of capital letters and spamming (continuous posting of repetitive text), that interferes with any party’s uninterrupted use and enjoyment of the Services or modifies, impairs, disrupts, alters, or interferes with the use, features, functions, operation, or maintenance of the Services.
Engage in any automated use of the system, such as using scripts to send comments or messages, or using any data mining, robots, or similar data gathering and extraction tools.
Delete the copyright or other proprietary rights notice from any Content. Attempt to impersonate another user or person or use the username of another user.
Upload or transmit (or attempt to upload or to transmit) any material that acts as a passive or active information collection or transmission mechanism, including without limitation, clear graphics interchange formats ("gifs"), 1×1 pixels, web bugs, cookies, or other similar devices (sometimes referred to as "spyware" or "passive collection mechanisms" or "pcms").
Interfere with, disrupt, or create an undue burden on the Services or the networks or services connected to the Services.
Harass, annoy, intimidate, or threaten any of our employees or agents engaged in providing any portion of the Services to you.
Attempt to bypass any measures of the Services designed to prevent or restrict access to the Services, or any portion of the Services.
Copy or adapt the Services' software, including but not limited to Flash, PHP, HTML, JavaScript, or other code.
Except as permitted by applicable law, decipher, decompile, disassemble, or reverse engineer any of the software comprising or in any way making up a part of the Services.
Except as may be the result of standard search engine or Internet browser usage, use, launch, develop, or distribute any automated system, including without limitation, any spider, robot, cheat utility, scraper, or offline reader that accesses the Services, or use or launch any unauthorized script or other software.
Use a buying agent or purchasing agent to make purchases on the Services. Make any unauthorized use of the Services, including collecting usernames and/or email addresses of users by electronic or other means for the purpose of sending unsolicited email, or creating user accounts by automated means or under false pretenses.
Use the Services as part of any effort to compete with us or otherwise use the Services and/or the Content for any revenue-generating endeavor or commercial enterprise.
Use the Services to advertise or offer to sell goods and services. Sell or otherwise transfer your profile.
10. USER GENERATED CONTRIBUTIONS
The Services may invite you to chat, contribute to, or participate in blogs, message boards, online forums, and other functionality, and may provide you with the opportunity to create, submit, post, display, transmit, perform, publish, distribute, or broadcast content and materials to us or on the Services, including but not limited to text, writings, video, audio, photographs, graphics, comments, suggestions, or personal information or other material (collectively, "Contributions"). Contributions may be viewable by other users of the Services and through third-party websites. As such, any Contributions you transmit may be treated as non-confidential and non proprietary. When you create or make available any Contributions, you thereby represent and warrant that:
The creation, distribution, transmission, public display, or performance, and the accessing, downloading, or copying of your Contributions do not and will not infringe the proprietary rights, including but not limited to the copyright, patent, trademark, trade secret, or moral rights of any third party.
You are the creator and owner of or have the necessary licenses, rights, consents, releases, and permissions to use and to authorize us, the Services, and other users of the Services to use your Contributions in any manner contemplated by the Services and these Legal Terms.
You have the written consent, release, and/or permission of each and every identifiable individual person in your Contributions to use the name or likeness of each and every such identifiable individual person to enable inclusion and use of your Contributions in any manner contemplated by the Services and these Legal Terms.
Your Contributions are not false, inaccurate, or misleading.
Your Contributions are not unsolicited or unauthorized advertising, promotional materials, pyramid schemes, chain letters, spam, mass mailings, or other forms of solicitation.
Your Contributions are not obscene, lewd, lascivious, filthy, violent, harassing, libelous, slanderous, or otherwise objectionable (as determined by us). Your Contributions do not ridicule, mock, disparage, intimidate, or abuse anyone.
Your Contributions are not used to harass or threaten (in the legal sense of those terms) any other person and to promote violence against a specific person or class of people.
Your Contributions do not violate any applicable law, regulation, or rule. Your Contributions do not violate the privacy or publicity rights of any third party.
Your Contributions do not violate any applicable law concerning child pornography, or otherwise intended to protect the health or well-being of minors.
Your Contributions do not include any offensive comments that are connected to race, national origin, gender, sexual preference, or physical handicap. Your Contributions do not otherwise violate, or link to material that violates, any provision of these Legal Terms, or any applicable law or regulation.
Any use of the Services in violation of the foregoing violates these Legal Terms and may result in, among other things, termination or suspension of your rights to use the Services.
11. CONTRIBUTION LICENSE
By posting your Contributions to any part of the Services, you automatically grant, and you represent and warrant that you have the right to grant, to us an unrestricted, unlimited, irrevocable, perpetual, non-exclusive, transferable, royalty-free, fully-paid, worldwide right, and license to host, use, copy, reproduce, disclose, sell, resell, publish, broadcast, retitle, archive, store, cache, publicly perform, publicly display, reformat, translate, transmit, excerpt (in whole or in part), and distribute such Contributions (including, without limitation, your image and voice) for any purpose, commercial, advertising, or otherwise, and to prepare derivative works of, or incorporate into other works, such Contributions, and grant and authorize sublicenses of the foregoing. The use and distribution may occur in any media formats and through any media channels.
This license will apply to any form, media, or technology now known or hereafter developed, and includes our use of your name, company name, and franchise name, as applicable, and any of the trademarks, service marks, trade names, logos, and personal and commercial images you provide.
We do not assert any ownership over your Contributions. You retain full ownership of all of your Contributions and any intellectual property rights or other proprietary rights associated with your Contributions. We are not liable for any statements or representations in your Contributions provided by you in any area on the Services. You are solely responsible for your Contributions to the Services and you expressly agree to exonerate us from any and all responsibility and to refrain from any legal action against us regarding your Contributions.
We have the right, in our sole and absolute discretion, (1) to edit, redact, or otherwise change any Contributions; (2) to re-categorize any Contributions to place them in more appropriate locations on the Services; and (3) to pre-screen or delete any Contributions at any time and for any reason, without notice. We have no obligation to monitor your Contributions.
12. MOBILE APPLICATION LICENSE
Use License
If you access the Services via the App, then we grant you a revocable, non-exclusive, non-transferable, limited right to install and use the App on wireless electronic devices owned or controlled by you, and to access and use the App on such devices strictly in accordance with the terms and conditions of this mobile application license contained in these Legal Terms. You shall not: (1) except as permitted by applicable law, decompile, reverse engineer, disassemble, attempt to derive the source code of, or decrypt the App; (2) make any modification, adaptation, improvement, enhancement, translation, or derivative work from the App; (3) violate any applicable laws, rules, or regulations in connection with your access or use of the App; (4) remove, alter, or obscure any proprietary notice (including any notice of copyright or trademark) posted by us or the licensors of the App; (5) use the App for any revenue generating endeavor, commercial enterprise, or other purpose for which it is not designed or intended; (6) make the App available over a network or other environment permitting access or use by multiple devices or users at the same time; (7) use the App for creating a product, service, or software that is, directly or indirectly, competitive with or in any way a substitute for the App; (8) use the App to send automated queries to any website or to send any unsolicited commercial email; or (9) use any proprietary information or any of our interfaces or our other intellectual property in the design, development, manufacture, licensing, or distribution of any applications, accessories, or devices for use with the App.
Apple and Android Devices
The following terms apply when you use the App obtained from either the Apple Store or Google Play (each an "App Distributor") to access the Services: (1) the license
granted to you for our App is limited to a non-transferable license to use the application on a device that utilizes the Apple iOS or Android operating systems, as applicable, and in accordance with the usage rules set forth in the applicable App Distributor’s terms of service; (2) we are responsible for providing any maintenance and support services with respect to the App as specified in the terms and conditions of this mobile application license contained in these Legal Terms or as otherwise required under applicable law, and you acknowledge that each App Distributor has no obligation whatsoever to furnish any maintenance and support services with respect to the App; (3) in the event of any failure of the App to conform to any applicable warranty, you may notify the applicable App Distributor, and the App Distributor, in accordance with its terms and policies, may refund the purchase price, if any, paid for the App, and to the maximum extent permitted by applicable law, the App Distributor will have no other warranty obligation whatsoever with respect to the App; (4) you represent and warrant that (i) you are not located in a country that is subject to a US government embargo, or that has been designated by the US government as a "terrorist supporting" country and (ii) you are not listed on any US government list of prohibited or restricted parties; (5) you must comply with applicable third-party terms of agreement when using the App, e.g., if you have a VoIP application, then you must not be in violation of their wireless data service agreement when using the App; and (6) you acknowledge and agree that the App Distributors are third-party beneficiaries of the terms and conditions in this mobile application license contained in these Legal Terms, and that each App Distributor will have the right (and will be deemed to have accepted the right) to enforce the terms and conditions in this mobile application license contained in these Legal Terms against you as a third-party beneficiary thereof.
13. ADVERTISERS
We allow advertisers to display their advertisements and other information in certain areas of the Services, such as sidebar advertisements or banner advertisements. We simply provide the space to place such advertisements, and we have no other relationship with advertisers.
14. SERVICES MANAGEMENT
We reserve the right, but not the obligation, to: (1) monitor the Services for violations of these Legal Terms; (2) take appropriate legal action against anyone who, in our sole discretion, violates the law or these Legal Terms, including without limitation, reporting such user to law enforcement authorities; (3) in our sole discretion and without limitation, refuse, restrict access to, limit the availability of, or disable (to the extent technologically feasible) any of your Contributions or any portion thereof; (4) in our sole discretion and without limitation, notice, or liability, to remove from the Services or otherwise disable all files and content that are excessive in size or are in any way burdensome to our systems; and (5) otherwise manage the Services in a manner designed to protect our rights and property and to facilitate the proper functioning of the Services.
15. PRIVACY POLICY
We care about data privacy and security. Please review our Privacy Policy: https://www.cboard.io/privacy/. By using the Services, you agree to be bound by our Privacy Policy, which is incorporated into these Legal Terms. Please be advised the Services are hosted in Argentina. If you access the Services from any other region of the world with laws or other requirements governing personal data collection, use, or disclosure that differ from applicable laws in Argentina, then through your continued use of the Services, you are transferring your data to Argentina, and you expressly consent to have your data transferred to and processed in Argentina.
16. TERM AND TERMINATION
These Legal Terms shall remain in full force and effect while you use the Services. WITHOUT LIMITING ANY OTHER PROVISION OF THESE LEGAL TERMS, WE RESERVE THE RIGHT TO, IN OUR SOLE DISCRETION AND WITHOUT NOTICE OR LIABILITY, DENY ACCESS TO AND USE OF THE SERVICES (INCLUDING BLOCKING CERTAIN IP ADDRESSES), TO ANY PERSON FOR ANY REASON OR FOR NO REASON, INCLUDING WITHOUT LIMITATION FOR BREACH OF ANY REPRESENTATION, WARRANTY, OR COVENANT CONTAINED IN THESE LEGAL
TERMS OR OF ANY APPLICABLE LAW OR REGULATION. WE MAY TERMINATE YOUR USE OR PARTICIPATION IN THE SERVICES OR DELETE YOUR ACCOUNT AND ANY CONTENT OR INFORMATION THAT YOU POSTED AT ANY TIME, WITHOUT WARNING, IN OUR SOLE DISCRETION.
If we terminate or suspend your account for any reason, you are prohibited from registering and creating a new account under your name, a fake or borrowed name, or the name of any third party, even if you may be acting on behalf of the third party. In addition to terminating or suspending your account, we reserve the right to take appropriate legal action, including without limitation pursuing civil, criminal, and injunctive redress.
17. MODIFICATIONS AND INTERRUPTIONS
We reserve the right to change, modify, or remove the contents of the Services at any time or for any reason at our sole discretion without notice. However, we have no obligation to update any information on our Services. We will not be liable to you or any third party for any modification, price change, suspension, or discontinuance of the Services.
We cannot guarantee the Services will be available at all times. We may experience hardware, software, or other problems or need to perform maintenance related to the Services, resulting in interruptions, delays, or errors. We reserve the right to change, revise, update, suspend, discontinue, or otherwise modify the Services at any time or for any reason without notice to you. You agree that we have no liability whatsoever for any loss, damage, or inconvenience caused by your inability to access or use the Services during any downtime or discontinuance of the Services. Nothing in these Legal Terms will be construed to obligate us to maintain and support the Services or to supply any corrections, updates, or releases in connection therewith.
18. GOVERNING LAW
These Legal Terms shall be governed by and defined following the laws of Argentina. COMUNICACION AUMENTATIVA CHILE SpA and yourself irrevocably consent that the courts of Argentina shall have exclusive jurisdiction to resolve any dispute which may arise in connection with these Legal Terms.
19. DISPUTE RESOLUTION
Informal Negotiations
To expedite resolution and control the cost of any dispute, controversy, or claim related to these Legal Terms (each a "Dispute" and collectively, the "Disputes") brought by either you or us (individually, a "Party" and collectively, the "Parties"), the Parties agree to first attempt to negotiate any Dispute (except those Disputes expressly provided below) informally for at least __________ days before initiating arbitration. Such informal negotiations commence upon written notice from one Party to the other Party.
Binding Arbitration
Any dispute arising out of or in connection with these Legal Terms, including any question regarding its existence, validity, or termination, shall be referred to and finally resolved by the International Commercial Arbitration Court under the European Arbitration Chamber (Belgium, Brussels, Avenue Louise, 146) according to the Rules of this ICAC, which, as a result of referring to it, is considered as the part of this clause. The number of arbitrators shall be __________. The seat, or legal place, or arbitration shall be __________. The language of the proceedings shall be __________. The governing law of these Legal Terms shall be substantive law of __________.
Restrictions
The Parties agree that any arbitration shall be limited to the Dispute between the Parties individually. To the full extent permitted by law, (a) no arbitration shall be joined with any other proceeding; (b) there is no right or authority for any Dispute to be arbitrated on a class-action basis or to utilize class action procedures; and (c)
there is no right or authority for any Dispute to be brought in a purported representative capacity on behalf of the general public or any other persons.
Exceptions to Informal Negotiations and Arbitration
The Parties agree that the following Disputes are not subject to the above provisions concerning informal negotiations binding arbitration: (a) any Disputes seeking to enforce or protect, or concerning the validity of, any of the intellectual property rights of a Party; (b) any Dispute related to, or arising from, allegations of theft, piracy, invasion of privacy, or unauthorized use; and (c) any claim for injunctive relief. If this provision is found to be illegal or unenforceable, then neither Party will elect to arbitrate any Dispute falling within that portion of this provision found to be illegal or unenforceable and such Dispute shall be decided by a court of competent jurisdiction within the courts listed for jurisdiction above, and the Parties agree to submit to the personal jurisdiction of that court.
20. CORRECTIONS
There may be information on the Services that contains typographical errors, inaccuracies, or omissions, including descriptions, pricing, availability, and various other information. We reserve the right to correct any errors, inaccuracies, or omissions and to change or update the information on the Services at any time, without prior notice.
21.     WE DO NOT WARRANT, ENDORSE, GUARANTEE, OR ASSUME RESPONSIBILITY FOR ANY PRODUCT OR SERVICE ADVERTISED OR OFFERED BY A THIRD PARTY THROUGH THE SERVICES, ANY HYPERLINKED WEBSITE, OR ANY WEBSITE OR MOBILE APPLICATION FEATURED IN ANY BANNER OR OTHER ADVERTISING, AND WE WILL NOT BE A PARTY TO OR IN ANY WAY BE RESPONSIBLE FOR MONITORING ANY TRANSACTION BETWEEN YOU AND ANY THIRD-PARTY PROVIDERS OF PRODUCTS OR SERVICES.
22.   CERTAIN US STATE LAWS AND INTERNATIONAL LAWS DO NOT ALLOW LIMITATIONS ON IMPLIED WARRANTIES OR THE EXCLUSION OR LIMITATION OF CERTAIN DAMAGES. IF THESE LAWS APPLY TO YOU, SOME OR ALL OF THE ABOVE DISCLAIMERS OR LIMITATIONS MAY NOT APPLY TO YOU, AND YOU MAY HAVE ADDITIONAL RIGHTS.
23. INDEMNIFICATION
You agree to defend, indemnify, and hold us harmless, including our subsidiaries, affiliates, and all of our respective officers, agents, partners, and employees, from and against any loss, damage, liability, claim, or demand, including reasonable attorneys’ fees and expenses, made by any third party due to or arising out of: (1) your Contributions; (2) use of the Services; (3) breach of these Legal Terms; (4) any breach of your representations and warranties set forth in these Legal Terms; (5) your violation of the rights of a third party, including but not limited to intellectual property rights; or (6) any overt harmful act toward any other user of the Services with whom you connected via the Services. Notwithstanding the foregoing, we reserve the right, at your expense, to assume the exclusive defense and control of any matter for which you are required to indemnify us, and you agree to cooperate, at your expense, with our defense of such claims. We will use reasonable efforts to notify you of any such claim, action, or proceeding which is subject to this indemnification upon becoming aware of it.
24. USER DATA
We will maintain certain data that you transmit to the Services for the purpose of managing the performance of the Services, as well as data relating to your use of the Services. Although we perform regular routine backups of data, you are solely responsible for all data that you transmit or that relates to any activity you have undertaken using the Services. You agree that we shall have no liability to you for any loss or corruption of any such data, and you hereby waive any right of action against us arising from any such loss or corruption of such data.
25. ELECTRONIC COMMUNICATIONS, TRANSACTIONS, AND SIGNATURES
Visiting the Services, sending us emails, and completing online forms constitute electronic communications. You consent to receive electronic communications, and you agree that all agreements, notices, disclosures, and other communications we provide to you electronically, via email and on the Services, satisfy any legal requirement that such communication be in writing. YOU HEREBY AGREE TO THE USE OF ELECTRONIC SIGNATURES, CONTRACTS, ORDERS, AND OTHER RECORDS, AND TO ELECTRONIC DELIVERY OF NOTICES, POLICIES, AND RECORDS OF TRANSACTIONS INITIATED OR COMPLETED BY US OR VIA THE SERVICES. You hereby waive any rights or requirements under any statutes, regulations, rules, ordinances, or other laws in any jurisdiction which require an original signature or delivery or retention of non-electronic records, or to payments or the granting of credits by any means other than electronic means.
26. CALIFORNIA USERS AND RESIDENTS
If any complaint with us is not satisfactorily resolved, you can contact the Complaint Assistance Unit of the Division of Consumer Services of the California Department of Consumer Affairs in writing at 1625 North Market Blvd., Suite N 112, Sacramento, California 95834 or by telephone at<PHONE_NUMBER> or<PHONE_NUMBER>.
27. MISCELLANEOUS
These Legal Terms and any policies or operating rules posted by us on the Services or in respect to the Services constitute the entire agreement and understanding between you and us. Our failure to exercise or enforce any right or provision of these Legal Terms shall not operate as a waiver of such right or provision. These Legal Terms operate to the fullest extent permissible by law. We may assign any or all of our rights and obligations to others at any time. We shall not be responsible or liable
for any loss, damage, delay, or failure to act caused by any cause beyond our reasonable control. If any provision or part of a provision of these Legal Terms is determined to be unlawful, void, or unenforceable, that provision or part of the provision is deemed severable from these Legal Terms and does not affect the validity and enforceability of any remaining provisions. There is no joint venture, partnership, employment or agency relationship created between you and us as a result of these Legal Terms or use of the Services. You agree that these Legal Terms will not be construed against us by virtue of having drafted them. You hereby waive any and all defenses you may have based on the electronic form of these Legal Terms and the lack of signing by the parties hereto to execute these Legal Terms.
28. CONTACT US
In order to resolve a complaint regarding the Services or to receive further information regarding use of the Services, please contact us at:
COMUNICACION AUMENTATIVA CHILE SpA
AV. MANQUEHUE SUR 520
Las Condes
Santiago, Región Metropolitana 7570180
Chile
Phone: +543517574240
support@cboard.io


Mermade Software
/ Films
Itches elegantly scratched
Follow us on GitHub
Generate secure passwords
Contact us
Blog
Key
Value


{% extends 'account/base.html' %} {% load static %} {% block title %}Verification Sent{% endblock %} {% block style %} {% endblock %} {% block content %}
We have sent an e-mail to you for verification. Follow the link provided to finalize the signup process. Please contact us if you do not receive it within a few minutes.


NWB files are created and managed through an NWB object. Several parameters are provided to the NWB constructor describing things about the file, and the NWB functions and procedures are used to manipulate the file.
Creates an identifying string for the file, hopefully unique in and between labs, based on the supplied base string, the NWB file version, and the time the file was created. The base string should contain the name of the lab, experimenter and project, or some other string that is unique to a given lab
Represents an NWB file. Calling the NWB constructor creates the file. The following arguments are recognized:
filename (text – mandatory) The name of the to-be-created file
identifier (text – mandatory) A unique identifier for the file, to differentiate it from all other files (even in other labs). A suggested way to create the identifier is to use a lab-specific string and send it to nwb.create_identifier(string). This function returns the supplied string appended by the present date
description (text – mandatory) A one or two sentence description of the experiment and what the data in the file represents
start_time (text – optional) This is the starting time of the experiment. If this isn’t provided, the start time of the experiment will default to the time that the file is created
modify (boolean – optional) Opens the file in append mode if the file exists. If the file exists and this flag (or ‘overwrite’) is not set, an error occurs (to prevent accidentally overwriting or modifying an existing file)
overwrite (boolean – optional) If the specified file exists, it will be overwritten
keep_original (boolean – optional) – If true, a back-up copy of the original file will be kept, named ‘<filename>.prev’
auto_compress (boolean – optional) Data is compressed automatically through the API. Setting ‘auto_compress=False’ disables this behavior
custom_spec (text – optional) A json, yaml or toml file used to customize the format specification (pyyaml or toml must be installed to use those formats)
Finishes and closes an NWB file. This includes writing pending data to disk and adding annotations. NOTE: this procedure must be called to produce a valid NWB file
Creates a new Epoch object. Epochs are used to track intervals in an experiment, such as exposure to a certain type of stimuli (an interval where orientation gratings are shown, or of sparse noise) or a different paradigm (a rat exploring an enclosure versus sleeping between explorations)
name (text) The name of the epoch, as it will appear in the file
start (float) The starting time of the epoch
stop (float) The ending time of the epoch
Creates a Module object of the specified name. Interfaces can be created by the module and will be stored inside it
Adds documentation image (or movie) to file. This is stored in /acquisition/images/.
stream (binary) Data stream of image (eg, binary contents of .png image)
name (text) Name that image will be stored as
fmt (text) Format of the image (eg, “png”, “avi”)
desc (text) Descriptive text describing the image
dtype (text) Optional field specifying the h5py datatype to use to store stream
Creates a new TimeSeries object. Timeseries are used to store and associate data or events with the time the data/events occur.
ts_type (text) The type of timeseries to be created. Default options are:
TimeSeries – simple time series
AbstractFeatureSeries – features of a presented stimulus. This is particularly useful when storing the raw stimulus is impractical and only certain features of the stimulus are salient. An example is the visual stimulus of orientation gratings, where the phase, spatial/temporal frequency and contrast are relevant, but the individual video frames are impractical to store, and not as useful
AnnotationSeries – stores strings that annotate events or actions, plus the time the annotation was made
ElectricalSeries – Voltage acquired during extracellular recordings
ImageSeries – storage object for 2D image data. An ImageSeries can represent image data within the file or can point to an image stack in an external file (eg, png or tiff)
IndexSeries – series that is composed of samples in an existing time series, for example images that are pulled from an image stack in random order
ImageMaskSeries – a mask that is applied to a visual stimulus
IntervalSeries – a list of starting and stop times of events
OpticalSeries – a series of image frames, such as for video stimulus or optical recording
OptogeneticSeries – optical stimulus applied during an optogentic experiment
RoiResponseSeries – responses of a region-of-interest during optical recordings, such as florescence or dF/F
SpatialSeries – storage of points in space over time
SpikeEventSeries – snapshots of spikes events in an extracellular recording
TwoPhotonSeries – Image stack recorded from a 2-photon microscope
VoltageClampSeries, CurrentClampSeries – current or voltage recurded during a patch clamp experiment
VoltageClampStimulusSeries, CurrentClampStimulusSeries – voltage or current used as stimulus during a patch clamp experiment
WidefieldSeries – Image stack recorded from wide-field imaging
name (text) the name of the TimeSeries, as it will appear in the file
modality (text) this indicates where in the file the TimeSeries will be stored. Values are:
‘acquisition’ – acquired data stored under /acquisition/timeseries
‘stimulus’ – stimulus data stored under /stimulus/presentations
‘template’ – a template for a stimulus, useful if a stimulus will be repeated as it only has to be stored once
‘other’ (DEFAULT) – TimeSeries is to be used in a module, in which case the module will manage its placement, or it’s up to the user where to place it
Creates a field under /general/ and stores the specified information there. NOTE: using the constants defined in nwbco.py is strongly encouraged, as this will help prevent accidental typos and will not require the user to remember where a particular piece of data is to be stored
key (text) Name of the metadata field. Please use the constants and functions defined in nwbco.py
value Value of the data to be stored. This will be text in most cases
attrs (dictionary, or key/value pairs) Attributes that will be created on the metadata field
Creates a field under /general/ and stores the contents of the specified file in that field NOTE: using the constants defined in nwbco.py is strongly encouraged, as this will help prevent accidental typos and will not require the user to remember where a particular piece of data is to be stored
key (text) Name of the metadata field. Please use the constants and functions defined in nwbco.py
filename (text) Name of file containing the data to be stored
attrs (dictionary, or key/value pairs) Attributes that will be created on the metadata field


Videos
|
Forging TitaniumForging Titanium is a weekly screencast series by the Appcelerator Developer Relations Team showcasing bleeding edge best practices knowledge and useful tools, tips, and techniques for taking your Titanium development to the next level. New episodes every Wednesday. |
|
|
CODESTRONG Conference Session VideosAt our first annual CODESTRONG Conference, Appcelerator engineers and community veterans shared their knowledge of developing applications on the Titanium platform over two information-packed days. Check out the sessions and many more videos here. We also have a full page view available here, which also includes presentation slides. |
|
|
Building Native Mobile Applications with TitaniumBuilding Native Mobile Applications with Titanium is our core technical training course for Titanium Mobile. This is a recorded version featuring (most of) the content presented in our live, two-day Titanium Mobile basic training course. A good place to start to get a grasp of basic Titanium development concepts. |


{% extends base|default:"configuration/base.html" %}
{% load skin %}
{% block page-heading %}Roles{% endblock %}
{% block config-content %}
{% m "p" %}Set the number + name of the roles in your Kvoti network.{% endm %}
{% m "p" %}'Administrator' and 'Member' roles are set as default.{% endm %}
{% include "configuration/roles_form.html" with action=request.path using="floppyforms/layouts/bootstrap3-horizontal-delete.html" %}
{% endblock %}


CSCI 1430: Introduction to Computer Vision
Spring 2020, MW 15:00 to 16:20, MacMillan 117
Instructor: James Tompkin
HTAs: Isa Milefchik, George Lee
TAs: Joy Zheng, Eliot Laidlaw, Neev Parikh, Trevor Houchens, Katie Friis,
Raymond Cao, Isabella Ting, Andrew Park, Qiao Jiang, Mary Dong, Katie Scholl,
Jason Senthil, Melis Gokalp, Michael Snower, Yang Jiao, Yuting Liu, Cong Huang, Kyle Cui,
Nine Prasersup, Top Piriyakulkij, Eleanor Tursman, Claire Chen, Josh Roy,
Megan Gessner, Yang Zhang
ETAs: Katie Friis, Isabella Ting
Contact
- Piazza—your first stop for questions and clarifications. Piazza will be staffed at specific times, when a member of the team will be answering questions (existing and new). At other times, please pull together as a class and help each other, and we'll help soon.
- —your second stop for less typical questions.
Course Description
This course provides an introduction to computer vision, including fundamentals of image formation, camera imaging geometry, feature detection and matching, stereo, motion estimation and tracking, image classification, scene understanding, and deep learning with neural networks. We will develop basic methods for applications that include finding known models in images, depth recovery from stereo, camera calibration, image stabilization, automated alignment, tracking, boundary detection, and recognition. We will develop the intuitions and mathematics of the methods in class, and then learn about the difference between theory and practice in projects.
This course is based upon James Hays' computer vision course, previously taught at Brown as CS143, and currently taught at Georgia Tech as CS 4476. Significant thanks to him and his staff, across the years, for all their hard work.
Learning Objectives
Upon completion of this course, students will:- Be familiar with both the theoretical and practical aspects of computing with images;
- Have described the foundation of image formation, measurement, and analysis;
- Have implemented common methods for robust image matching and alignment;
- Understand the geometric relationships between 2D images and the 3D world;
- Have gained exposure to object and scene recognition and categorization from images;
- Grasp the principles of state-of-the-art deep neural networks; and
- Developed the practical skills necessary to build computer vision applications.
Prerequisites
No prior experience with computer vision is assumed, although previous knowledge of visual computing or signal processing will be helpful (e.g., CSCI 1230). The following skills are necessary for this class:
- Math: Linear algebra, vector calculus, and probability. Linear algebra is the most important and students who have not taken a linear algebra course have struggled in the past.
- Data structures: You will write code that represents images as feature and geometric constructions.
- Programming: A good working knowledge. All lecture code and project starter code will be Python, and the TAs will support Python questions. If you have never used Python, that is OK and we will help you.
Time Commitment
| Task | Hours |
|---|---|
| In class | 40 |
| Projects: | 20 ×6 |
| Office Hours/Piazza: | 20 |
| Total: | 180 |
Capstone
This class can be taken as a capstone. You will need to complete 10 points of extra credit in each of the projects, including a commensurate amount of work in the final project.
Reading References
There is no requirement to buy a textbook. The goal of the course is to be self contained, but sections from three textbooks will be suggested for more formalization and information. Two of these books are available free online, with the third available online through Brown's library.
- Concise Computer Vision by Reinhard Klette
- Computer Vision: Algorithms and Applications by Richard Szeliski.
- Deep Learning, by Goodfellow, Bengio, and Courville.
Further reading material:
- GitHub
- GitHub Guide, a guide about Git, GitHub, GitHub Desktop, and GitHub Classroom
- Git Overview: link 1, link 2. A lecture slides on git from the class CSCI 0060 Practical System Skills; read for a comprehensive overview on what git is!
- Python Numpy
- Python Programmer—Numpy in 5 minutes [YouTube]
- UCSB Numpy Tutorial
- Numpy Tutorial: A Simple Example-based Guide
- General terminology:
- Dictionary of Computer Vision and Image Processing, by Fisher et al. If you find a word or concept that you do not understand, then please consider looking here. Note: Full text is available in 'Online Resources' section.
- Linear Algebra:
- Immersive Linear Algebra, by J. Ström, K. Åström, and T. Akenine-Möller. Interactive visualizations!
- 3 Blue 1 Brown—http://www.3blue1brown.com/ | Geometric interpretation—Linear Algebra playlist
- Stanford CS229 review—http://cs229.stanford.edu/section/cs229-linalg.pdf
- Probability:
- Seeing Theory—http://students.brown.edu/seeing-theory/
- Magnusson—Bayesian Inference—http://rpsychologist.com/d3/bayes/
- Image processing:
- Powell—Kernels—http://setosa.io/ev/image-kernels/
- Neural Networks and Machine Learning:
- Michael Nielson—http://neuralnetworksanddeeplearning.com/
- Chris Olah—http://colah.github.io/
- Distill—http://distill.pub/
- Wei—practical advice—http://lamda.nju.edu.cn/weixs/project/CNNTricks/CNNTricks.html
- Multi-view Geometry:
- Hartley and Zisserman—Multiple View Geometry in Computer Vision or online @ Brown Library
Software
We will use Python 3 for the course, and we will support editing and debugging Python through Visual Studio Code (vscode). Project 0 includes a tutorial for how to set up a Python environment on your personal computer, or use the CS department machines.
Versions:(Spring 2020) Our Python virtual environment uses Python 3.7.3. Our autograder uses the same virtual environment. Python 2.7 is not supported by the class.
Office/Piazza Hours
We will use Brown's SignMeUp (here) to arrange TA office hour and Zoom for remote hours.
Piazza hours protocol
- During hours each TA will have a join link on Signmeup, if you join a link, you will be automatically placed in a waiting room, but please don’t join any TA’s link, wait until you are claimed because each TA will have a different link.
- Once you have been claimed in Signmeup, you will be admitted to the call with a TA and off of the waiting list, if we do not see you in the waiting list queue to admit you, you will be marked missing, please make sure you join the Zoom link of the TA who claimed you.
- If you are marked missing, join the waiting room of any TA and if they see you, you will be unmarked missing, but please make sure you monitor Signmeup and if you are claimed by a TA not in the meeting room you are in, make sure to switch to the correct meeting link.
James' office hour (Tues 1pm) appointment slot signups are here.
Projects
Projects are released every ~two weeks, with deliverables due each week at Friday at 9pm. Each project has ~two parts: written, and code. You have one week to complete the written part, and two weeks to complete the code part.
Hand-in for both parts is electronic via Gradescope.
Projects 1, 2, 3, 4 and 5 must be completed in Python. Project 6 as a final project presents a free choice.
| Projects | Gradescope Hand in |
|---|---|
| 0. Python Primer | Questions: |
| GitHub Guide | GitHub Classroom Assignment Link | |
| 1. Image Filtering and Hybrid Images | Questions + code: |
| 2. Local Feature Matching | Questions: ; Code: 14th Feb. 21:00 |
| 3. Scene Recognition with Bag of Words | Questions: ; Code: |
| 4. Convolutional Neural Nets | Questions: ; Code: |
| 5. Camera Calibration and Fundamental Matrix Estimation | Questions + code: Please refer to Gradescope. |
| 6. Final Group Project |
Team + proposal: Progress report 1: Progress report 2: Presentation: Final submission: |
Grading
Grading is A >= 90, B >= 80, C >= 70, with no curve, and with rounding to the nearest integer. Your final grade will be 100% from 7 projects. All projects are graded. We leave ourselves a little flexibility to make minor adjustments. Say, if one project ends up being a little more difficult, then we can tweak that project to be less significant in your final grade.
| Project | Percent | 0 | 2% |
|---|---|
| 1–5 | ~14.6% |
| 6 | ~25% |
Late Submissions and Late Days
Our projects are split into two parts: questions and code. You will lose 10% from the total possible marks of each project part for each day (24 hours) that it is late. Over the course, we give you free late days for each project part: three question late days and three code late days.
These late days will not be reflected in the initial grade reports for your assignment, but they will be factored into your final grade at the end of the semester.
Late days cover unexpected clustering of due dates, travel commitments, interviews, hackathons, etc. Please do not ask for extensions to due dates—we give you a pool of late days to manage yourself.
For sickness and other issues of wellbeing, please obtain a note from health services and we will accommodate.
Video Lecture Capture
Please look here for lecture capture of the class sessions via video (Brown CSCI 1430 course registration required).
Tentative Schedule
| Date | Topic | Slides | More info | |||
|---|---|---|---|---|---|---|
| Image Formation and Filtering | ||||||
| Wed | 22 | Jan | Introduction to Computer Vision | PPTX | PDF | Szeliski 1 | |
| Fri | 24 | Jan | Due: Project 0 Questions, 21:00, Gradescope | |||
| Mon | 27 | Jan | Image Filtering | PPTX | PDF | Klette 1.1, 2.1; Szeliski 3.2 | |
| Wed | 29 | Jan | Thinking in Frequency | PPTX | PDF | Klette 2.2.2, Szeliski 3.4 | |
| Thinking in Frequency, part 2 | PPTX | PDF | Klette 1.2, Szeliski 3.5.2, 8.1.1 | ||||
| Fri | 31 | Jan | Due: Project 1 Questions + Code, 21:00, Gradescope | |||
| Feature Detection and Matching | ||||||
| Mon | 03 | Feb | Edge Detection | PPTX | PDF | Klette 2.3, 2.4, Szeliski 4.2 | |
| Weds | 05 | Feb | Interest Points and Corners | PPTX | PDF | Klette 2.3, 2.4, Szeliski 4.1.2 | |
| Local Image Features and Feature Matching | PPTX | PDF | Klette 9.2, Szeliski 4.1.3, 4.3.2 | ||||
| Mon | 10 | Feb | Light and Color | PPTX | PDF | Klette 6.1, Klette 1.3, Szeliski 2.1, esp. 2.1.5, 2.2, 2.3 | |
| Machine Learning Crash Course | ||||||
| Wed | 12 | Feb | Machine Learning: Unsupervised Learning | PPTX | PDF | Szeliski 5.3 | |
| Machine Learning: Supervised Learning | PPTX | PDF | Szeliski 5.3 | ||||
| Fri | 14 | Feb | Due: Project 2 Questions+Code, 21:00, Gradescope | |||
| Recognition | ||||||
| Mon | 17 | Feb | No class—University long weekend. | |||
| Wed | 19 | Feb | Recognition, Bag of Features, and Large-scale Instance Recognition | PPTX | PDF | Szeliski 14 | |
| Fri | 21 | Feb | Due: Project 3 Questions, 21:00, Gradescope | |||
| Mon | 24 | Feb | Large-scale Scene Recognition and Advanced Feature Encoding | PPTX | PDF | ||
| Wed | 26 | Feb | Detection with Sliding Windows: Dalal Triggs and Viola Jones | PPTX | PDF | Szeliski 14.1 and 14.2 | |
| Wed | 26 | Feb | Descriptor Failure and Big Data | PPTX | PDF | Szeliski 14.5 | |
| Fri | 28 | Feb | Due: Project 3 Code, 21:00, Gradescope | |||
| Deep Learning | ||||||
| Mon | 02 | Mar | Neural Networks and Convolutional Neural Networks | PPTX | PDF | Goodfellow 6, 9 | |
| Wed | 04 | Mar | Training Neural Networks | PPTX | PDF | Goodfellow 6, Goodfellow 7.1-7.5, 7.12 | |
| Mon | 09 | Mar | What do CNNs learn? | PPTX | PDF | ||
| Wed | 11 | Mar | Architectures: ResNets, R-CNNs, FCNs, and UNets | PPTX | PDF | ||
| Fri | 13 | Mar | Due: Project 4 Questions, 21:00, Gradescope | |||
| Computer Vision and Society | ||||||
| Mon | 16 | Mar | Social Good and Dataset Bias | PPTX | PDF | ||
| Wed | 18 | Mar | COVID-19 cancellation | |||
| Fri | 20 | Mar | Due: Project 4 Code, 21:00, Gradescope | |||
| Spring break | ||||||
| Mon | 23 | Mar | Spring break! | |||
| Wed | 25 | Mar | Spring break! | |||
| Fri | 27 | Mar | Spring break! | |||
| Cameras, Multiple Views, and Motion | ||||||
| Mon | 30 | Mar | Cameras and Calibration | PPTX | PDF | Szeliski 2.1, 6.1, 6.2.1 | |
| Wed | 01 | Apr | Final Project Explanation and Discussion | Google Slides | ||
| Wed | 01 | Apr | Stereo Vision, Epipolar Geometry, and RANSAC | PPTX | PDF | Szeliski 7, 8.1, 8.4, 11 | |
| Mon | 06 | Apr | Stereo Disparity Matching | PPTX | PDF | Szeliski 6.2.1 | |
| Wed | 08 | Apr | Depth Cameras and Real-time Reconstruction | PPTX | PDF | ||
| Fri | 10 | Apr | Due: Project 5 Questions + Code, 21:00, Gradescope | |||
| Due: Project teams and proposal, 21:00, Gradescope | ||||||
| Mon | 14 | Apr | No class | |||
| Wed | 16 | Apr | Real-time Depth-based Pose Estimation | PPTX | PDF | ||
| Fri | 17 | Apr | Due: Project progress report 1, 21:00, Gradescope | |||
| 'Reading period' | ||||||
| Mon | 20 | Apr | Research paper class | |||
| Wed | 22 | Apr | Research paper class | |||
| Fri | 24 | Apr | Due: Project progress report 2, 21:00, Gradescope | |||
| Mon | 27 | Apr | Final project AMA | |||
| Wed | 29 | Apr | Final project AMA | |||
| Mon | 04 | May | Due: Final project presentations 'fast forward'! 15:00 in class. | |||
| Fri | 08 | May | Due: Final project report and code, 21:00, Gradescope |
General Policy
Welcome!
Our intent is that this course provide a welcoming environment for all students who satisfy the prerequisites. Our TAs have undergone training in diversity and inclusion, and all members of the CS community, including faculty and staff, are expected to treat one another in a professional manner. If you feel you have not been treated in a professional manner by any of the course staff, please contact any of James (the instructor), Ugur Cetintemel (Dept. Chair), Tom Doeppner (Vice Chair) or Laura Dobler (diversity and inclusion staff member). We will take all complaints about unprofessional behavior seriously. Your suggestions are encouraged and appreciated. Please let James know of ways to improve the effectiveness of the course for you personally, or for other students or student groups. To access student support services and resources, and to learn more about diversity and inclusion in CS, please visit http://cs.brown.edu/about/diversity/resources/.
Prof. Krishnamurthi has good notes on this area.
Quiet Hours
This class runs quiet hours from 9pm to 9am every day. Please do not expect a response from us via any channel. Likewise, we won't ask you to do anything between these times, either, like hand in projects.
Academic Integrity, Collaboration, and Citation
Feel free to talk to your friends about the concepts in the projects, and work through the ideas behind problems together, but be sure to always write your own code and perform your own write up. You may work with other students to debug code; please keep in mind that debugging is a useful way to learn and is a skill to practice---please spend time debugging independently and come to office hours for help.
You are expected to implement the core components of each project on your own, but the extra credit opportunities often build on third party data sets or code. Feel free to include results built on other software, as long as you credit correctly in your handin and clearly demark your own work. In general, if you use an idea, text, or code from elsewhere, then cite it.
Brown-wide, academic dishonesty is not tolerated. This includes cheating, lying about course matters, plagiarism, or helping others commit a violation. Plagiarism includes reproducing the words of others without both the use of quotation marks and citation. Students are reminded of the obligations and expectations associated with the Brown Academic and Student Conduct Codes.
Accommodations
Brown University is committed to full inclusion of all students. Please inform me if you have a disability or other condition that might require accommodations or modification of any of these course procedures. You may email me, come to office hours, or speak with me after class, and your confidentiality is respected. We will do whatever we can to support accommodations recommended by SEAS. For more information contact Student and Employee Accessibility Services (SEAS) at<PHONE_NUMBER> or . Students in need of short-term academic advice or support can contact one of the deans in the Dean of the College office.
Mental Health
Being a student can be very stressful. If you feel you are under too much pressure or there are psychological issues that are keeping you from performing well at Brown, we encourage you to contact Brown's Counseling and Psychological Services. They provide confidential counseling and can provide notes supporting extensions on assignments for health reasons.
Incomplete Policy
We expect everyone to complete the course on time. However, we certainly understand that there may be factors beyond your control, such as health problems and family crises, that prevent you from finishing the course on time. If you feel you cannot complete the course on time, please discuss with James Tompkin the possibility of being given a grade of Incomplete for the course and setting a schedule for completing the course in the upcoming year.
Electronic Etiquette
Laptops are discouraged, please, except for class-relevant activities, e.g., to help answer questions and show items relevant to discussion. No social media, email, etc., because it distracts not just you but other students as well. Read Shirky on this issue ("Why I Just Asked My Students to Put Their Laptops Away"), or Rockmore ("The Case for Banning Laptops in the Classroom").
We will release course lecture material online. In considering laptop use for note taking, please be aware that research has shown note taking on paper to be more efficient than on a laptop keyboard (Mueller and Oppenheimer), as it pushes you to summarize the content instead of transcribe it.
Feedback
We would appreciate any feedback on how to improve the course. We have created an anonymous form to collect feedback, which is accessible through your Brown Google account (but we do not collect your identity). We will read the feedback every two weeks at grading. If there is something more urgent (and not anonymous), please email James or the course staff. If there is something urgent and anonymous, please consider contacting one of the parties listed in the general policy.
Acknowledgements
The materials from this class rely significantly on slides prepared by other instructors, especially James Hays, Derek Hoiem, and Svetlana Lazebnik. Each slide set and assignment contains acknowledgements. Feel free to use these slides for academic or research purposes, but please maintain all acknowledgements.
Thanks to Tom Doeppner and Laura Dobler for the text on accommodation, mental health, and incomplete policy.
Thank you to the previous TAs who helped to teach and improve this class. Previous course runs:
- 2019 Spring (James Tompkin)—Yuanning Hu (HTA), Ruizhao Zhu (HTA), Michael Chen, Joshua Chipman, Jamie DeMaria, Wentao Han, Yan Huang, Purvi Goel, Seungchan Kim, Zhoutao Lu, Josh Roy, Anna Sabel, Eleanor Tursman (GTA), Brendan Walsh, Haoze Zhang, Jiawei Zhang.
- 2017 Fall (James Tompkin)—Aaron Gokaslan (HTA), Spencer Boyum, Harsh Chandra, Joshua Chipman, Qikun (Tim) Guo, Yue Guo, Yunshu Mao, Luke Murray, Vivek Ramanujan, Abhishek Sharma, Eleanor Tursman, Andrew Zhou.
- 2017 Spring (James Tompkin)—Eric Xiao (HTA), Jackson Gibbons, Susan Liu, Daniel Nurieli, Eleanor Tursman, and Martin Zhu.
- 2013 (James Hays)
- 2011 (James Hays)
- 2009 (Michael Black)


This function allows you to smooth wiggle data using a sliding window.
wiggle_smooth(wiggleData, chrNumber, bandwidth = 200, useKsmooth = FALSE)
Arguments
| wiggleData |
Accepts input in one of the following formats:
An R list of the 16 chromosome wiggle data (output of readall_tab() ).
An element of an R list of the form described in the first item above.
Can be extracted with either '[]' or '[[]]'.
An R data frame in the same format as the individual chromosome data
frames composing the list described in the first item above.
No default. |
| chrNumber |
An integer representing the chromosome to smooth. Will be ignored
in case the provided wiggleData is not a list of data for the 16 chromosomes.
No default. |
| bandwidth |
An integer representing the length of the smoothing window in bp
(or the Gaussian kernel bandwith, if useKsmooth = TRUE ). Defaults to 200 . |
| useKsmooth |
Boolean indicating choice of smoothing function:
useKsmooth = FALSE : use a simple sliding window smoother. Smoothing is performed by
sliding a window of the specified size (bandwidth argument) over all genomic positions in
the data and replacing the position values by the middle position and the signal values by
their mean.
useKsmooth = TRUE : use a Gaussian Kernel Regression Smoother. Smoothing is performed
using function ksmooth() from 'stats' package using the default normal kernel and the
specified bandwith.
Defaults to FALSE . |
Value
An R data frame with two columns: genome position and smoothed signal.
Examples
# NOT RUN {
wiggle_smooth(WT, 1, 200)
wiggle_smooth(rec8, 16, 100)
wiggle_smooth(WT[[5]], bandwidth = 1000)
wiggle_smooth(WT[[9]], bandwidth = 1000, useKsmooth = T)
# }


WITNESS LIST Health Services Committee January 11, 2000-10:00A Charge 1 Medicaid Managed Care For: Anderson, Ron M.D. (Parkland Hospital / Texas Hospital Association), Dallas Lovelace, Joe (National Alliance for the Mentally Ill of Texas), Dallas McClusky, Edwin M.D (Texas Medical Association), Tyler On: Carey, Sara (Family Health Care Inc.), Denton Cozart, Ellen (Children's Medical Center of Dallas), Dallas Easley, Julia (Coalition for North Texas Children), Lancaster Farr, George D. (Children's Hospital Association of Texas), Dallas Gilbert, Don (Health & Human Service Commission), Austin Gilfillan, Saundra (Dallas Service Area Psychiatrists), Dallas Gunby, Robert M.D. (Texas Medical Association), Dallas Hallam, Lilli C. (Mental Health Association of Greater Dallas), Plano Olson, Lois (DANSA), Dallas Yoder, Eric M.D. (Americaid Community Care), Fort Worth Registering, but not testifying: For: Harris, Lauralee (Mental Health Association of Tarrant County), Fort Worth On: Atkins, James M.D. (Self), Dallas Nuckles, Craig (Texas Hospital Association), Dallas Charge 2 Rx/Biotechnology/Genetics On: Daniels, Carol (Texas Department of Health), Austin Fluckigen, Stephen (Jones Day, Reavis, & Pogue), Dallas Luthy, Connie (The Luthy Group / Drug R&D Consultants), Dallas Russell, Brenda (Baylor Research Institute), Dallas Vanderpool, David M.D. (Dallas County Medical Society / Texas Medical Association), Dallas Walz, Karen (The Dallas Plan), Dallas Webb, Warren (Fort Worth Med Tech Center), Fort Worth Charge 3 Medical Privacy Issues On: Caldwell, Kim (Advance Pardigm, Inc.), Richardson Horner, Robert (Advance Paradigm, Inc.), Irving Lovelace, Joe (National Alliance for the Mentally Ill of Texas), Dallas Low, Jennifer (Express Scripts, Inc.), Maryland Hts,MO Secrest, Leslie M.D. (Texas Society of Psychiatric Physicians / Texas Medical Assn.), Dallas Registering, but not testifying: On: Dodson, Gay (Texas State Board of Pharmacy), Austin Charge 4 Children Vaccine Program On: Lancaster, (Dallas County HHS / PAIIC), Dallas Squires, Rob (Texas Pediatric Society), Dallas Charge 5 Healthcare Workforce On: Ackley, Nancy (Texas Nurses Foundation / Texas Nurses Association), Austin Goertz, Roland, M.D. (Texas Academy of Family Physicians / Texas Medical Assn.), Waco Patterson, Patti (Texas Tech Health Science Center), Lubbock Provost, Glen (Texas Tech University Health Science Center), Lubbock Redd, Judith (JPS Health Network / Tarrant Hospital District), Fort Worth Sam Tessen, Robert J. (Center for Rural Health Initiatives), Austin Standefer, Paulette (Dallas Fort Worth Hospital Council), Irving Taylor, Nora Cox (Center for Rural Health Initiatives), Austin Walker, Craig (Texas Ambulance Association), Austin Registering, but not testifying: On: Wilson, Keith Malon (Texas Dental Association), Austin Charge 6 CHIP For: Dhingra, Jay (Columbia North Texas Division), Irving On: Cozart, Ellen (Children's Medical Center of Dallas), Dallas Easley, Julia (Coalition for North Texas Children), Lancaster Farr, George D. (Children's Hospital Association of Texas), Dallas Gunby, Robert M.D. (Texas Medical Association), Dallas Squires, Rob (Texas Pediatric Society), Dallas


Hello, friend.
I'm inviting you to help me curate data using Flatsheet.
Click this url to create your account: {{ url }}
Questions, issues, or ideas? Email me at {{ from }}
Thanks! {{ fromname }}


Offerings
| Massage Type |
|
Cost |
| Deeply Stoned Massage |
Sit in a massage chair from Sharper Image while eating a Wetzel's Pretzel. |
$3.75 (.50 extra for cheese sauce) |
| Fantasy Football Recovery Treatments |
Offering support for all fantasy sport related injuries. We'll help you stay on the couch! |
Price varies. |
| The Half Hearted |
Just like your ex-wife used to give 'em! |
Half of everything you got. |
| Mama's Little Helper |
A glass of pinot gris and a Xanax. |
Your first born. |
| The Slap and Tickle |
NSFW |
Just don't pay with the company card! |


Please feel free to contribute to the database by visiting
The Bali Sustainability Hub Google Sheet
or help us define the criteria for the hub by visiting
The Criteria For Sustainability
Please enable JavaScript to view the
comments powered by Disqus.


Each node has a copy of the same ledger folder. /Ledger/1.xml
You can Add new files for the folder, but you can't delete, edit.
Every time a node wants to add a new transaction file, all nodes has to verify first before adding it to ledger folder


I am currently based in University College Dublin's School of Computer Science, and serve UrbanARK, a US-Ireland collaboration project that harnesses urban spatial data for flood risk assessment and communication. Together with my colleagues at UCD, I am developing a distributed spatial data system for LiDAR and other urban datasets. Before re-joining UCD in 2019, I worked as a Research Scientist at New York University's Center for Urban Science and Progress. My research interests include high-scalability and high-performance algorithms for capture, storage, analysis, and integration of LiDAR and other geospatial datasets. My curriculum vitae can be downloaded here. I am updating my academic and professional activities on my institutional page at UCD.
I received my PhD award from University College Dublin. My thesis can be downloaded from UCD Research Repository. I also hold a Masters degree from the University of Melbourne in Australia and a Bachelors degree from HCMC University of Architecture in Vietnam. I am the recipient of the First Prize in the 2015 IEEE GRSS Data Fusion Contest and the Australian Government's Endeavour Postgraduate Award.


Add
Full Screen
Tap to open
No Nodes to show. Please add some Nodes.
No Lines to show. Please connect some Lines to Nodes.
No Matrix to show. Please Add Nodes to calculate matrix.
No Matrix to show. Please Add Nodes to calculate matrix.
Close Nodes Browser
Close Lines Browser
Hide Adjacency Matrix
Hide Incidence Matrix
Tap to open


{{ if not .bs5 }} {{ end }} {{ if .bs5 }} {{ else }} {{ end }}
| {{ else }} | {{ end }} | Username | Email Address | Last Active | Admin? |
|---|
Note: * Indicates required field, R Indicates changes require a restart.
{{ if .ombiEnabled }} {{ end }}Profiles are applied to users when they create an account. They include things like access rights and homescreen layout. You can create them here.
| Name | Default | From | Admin? | Libraries |
|---|
{{ .contactMessage }}


My strength is if I set my mind onto something I work very hard and achieve it. I am an optimistic person and if I like what I am doing I become very driven and focused. I consider myself a very curious person and I asked lot of question, this strength of mine will really help me in my learning goal. My limitation was my attention span but after completing the foundation course, i have seen a tremendous growth in this area. I still keep wandering suddenly into something else but i have grown a lot in last few weeks of this foundation.
Well, I am following 30 to 40 hours of week studying sometime its higher. Since last 3 week I have started studying I have notice my best time to focus and study properly is in the morning so to be more productive I will focus on learning important articles and concept in the morning and practicing it in the afternoon time as of now. Also I will try to keep my learning plan as per the timebox so I don’t spend too much of a time on particular topic. I will submit the assessment every week before Sunday and if in case I am not able to submit it before the given deadline I will let my facilitator know with the appropriate reason.
This is one of the areas that I have to work on; when I am getting stuck i spend a lot of time to find out the solution on my own, moving forward if I am stuck for 2 hours in a particular topic I will ask for help from my facilitators, classmate or slack desk.
Well at the current stage my expectation have been met so I don’t really expect anything from the facilitation team, Chris have been very helpful and approachable so that’s become easy for me. I can discuss my doubt without thinking twice and he listens to me and offers great solution and if I don’t understand anything he again communicate with a simple explanations. I strongly believe and have experienced myself, if your teacher is really good it help student to grow and become great at anything they set their mind to it.


Welcome to the Salmon Crumble Store
Our store makes and sales cookies that mimic a taste of salmon. One night while vacationing near the Mississippi River, our family had an epiphany. Everyone loves cookies and most people like salmon, so why not put it together? Endlessly we researched if it has been done before and after a day of this tiresome task, it has not. This is a family buiness, which an uncle as a marketer. You can see our current sales around the world at here


ABOUT
Carey Anne Nadeau, Founder and Organizer
<EMAIL_ADDRESS>Esther Chung, Community Engagement Coordinator
<EMAIL_ADDRESS>Margaret Yu, Web Development Head
<EMAIL_ADDRESS>Advisory Board
Sloan Data Analytics Club
Big Data Initiative at Computer Science and Artificial Intelligence Lab (CSAIL)
Changing Places Lab at MIT Media Lab
Metropolitan Area Planning Council (MAPC)
Office of Government Innovation in Massachusetts Commonwealth
MIT IEEE / ACM Club
CodeKitchen
DUSPViz
DUSP Data Ventures Club


School WEB
Login
Login:
Password:
Login
Please, fill all fields to continue
The password length must be from 6 to 8 and must contains numbers and letters
Submit
Attendance
My Class
Schedule


Tsitsipas battles past Medvedev as Nadal readies for ATP Finals bow
London - Stefanos Tsitsipas revelled in his victory against Daniil Medvedev at the ATP Finals on Monday, admitting their spiky relationship had made his job tougher as Rafael Nadal prepared to make his bow.
The Greek 21-year-old came into the match at London's O2 Arena with a 5-0 losing record against his Russian opponent weighing on him.
But he edged a tight first set, winning the tie-break, and a single break late in the second set proved decisive in a 7-6 (7/5), 6-4 victory.
The two players have had a rocky relationship.
Tensions flared between them in Miami last year and Tsitsipas recently labelled Medvedev's way of winning as "boring" after defeat against the Russian in Shanghai.
Tsitsipas said Medvedev had got "into my head" in Miami - he said the row had centred on a demand from the Russian for an apology over a net cord.
"I mean, our chemistry definitely isn't the best that you can find on the Tour," said Tsitsipas, who added that Monday's match had been tougher because he was so desperate to win.
"It just happens with people, you can't just like everyone.  I guess - yeah, as he said, we will not go to dinner together, so... I respect him, for sure."
The Greek, supported vociferously at the O2 Arena, could not convert the lone break point against the US Open finalist in the opening set and it went to a tie-break.
But at 5-5 in the breaker, Tsitsipas produced one of best points of the match and finished it with a forehand volley winner. He converted the opportunity with an aggressive forehand and let out a roar of delight.
The second set remained tight but Medvedev fatally opted to let a forehand go when rushing the net at 4-4 and it landed well inside the baseline, giving the Greek a break point.
Medvedev then hit a backhand long to give Tsitsipas the first break of the match and he did not let his chance slip, serving out for victory.
- Next Gen challengers -
World number four Medvedev, 23, has emerged as the leader of the pack of young tyros bidding to unseat the old guard of Nadal, Novak Djokovic and Roger Federer.
Four of the eight competitors at the ATP Finals at the O2 Arena are under 24 for the first time in 10 years.
Nadal, takes on defending champion Alexander Zverev in the later match in Group Andre Agassi with major questions over his fitness since he withdrew injured from the Paris Masters at the semi-final stage.
The Spanish top seed is locked in a battle with Djokovic to finish as the year-end number one but was not serving flat out in practice last week due to an abdominal strain.
Regardless of Djokovic's results this week, Nadal will clinch the year-end top spot for a fifth time if he reaches the final with a 4-0 record.
Djokovic launched his bid for a sixth ATP Finals title with a comfortable win against Matteo Berrettini on Sunday but Federer slipped to a straight-sets defeat against Dominic Thiem, putting his hopes of progress in serious jeopardy.
Results on the second day of the ATP Finals at London's O2 Arena on Monday (x denotes seeding):
Singles
Group Andre Agassi
Stefanos Tsitsipas (GRE x6) bt Daniil Medvedev (RUS x4) 7-6 (7/5), 6-4
Playing later
Rafael Nadal (ESP x1) v Alexander Zverev (GER x7)
Doubles
Group Max Mirnyi
Kevin Krawietz/Andreas Mies (GER/GER x3) bt Jean-Julien Rojer/Horia Tecau (NED/ROU x6) 7-6 (7/3), 4-6, 10-6
Playing later
Juan Sebastian Cabal/Robert Farah (COL/COL x1) v Pierre-Hugues Herbert/Nicolas Mahut (FRA/FRA x7)


Coast Guard removes 9 Hudson River ferries from service over safety concerns
by Julia MarshThe U.S. Coast Guard took nine Hudson River ferries operated by NY Waterway out of service Friday over safety concerns.
Violations were spotted during a routine annual inspection, according to Coast Guard spokesman John Hightower.
“The were some safety problems that warranted taking the vessels out of service until they’ve been rectified,” Hightower said.
He declined to detail the safety issues.
A spokesman for NY Waterway also refused to explain the violation.
“These are minor infractions and most of them are fixed even as we speak so it’s just a matter of the Coast Guard reinspecting them so they can go back in service,” said NY Waterway spokesman Pat Smith.
Smith said there would be no impact on service. He anticipated that the ferries will be back on the water sometime next week.
He added that two of the boats were already offline receiving repairs. NY Waterway has a fleet of 37 commuter ferries that run year round from four piers in Manhattan across the Hudson River to eight locations in New Jersey including stops in Hoboken and Weehawken.
NY Waterway also operates the Brookfield Place/Battery Park City Ferry Terminal.