AUTOACTIVATE
Specified products will attempt to activate automatically.
If AUTOACTIVATE is set to 1, the specified products will attempt to activate automatically. If AUTOACTIVATE is not set, the user may see the Activation Wizard UI.
Note: Office 365 Click-to-Run products are already set to activate automatically. You must not set AUTOACTIVATE for Office 365 Click-to-Run products. This setting applies only to perpetual retail versions of Click-to-Run products.


“Some half dozen persons have written technically on combinatory logic, and most of these, including ourselves, have published something erroneous. Since some of our fellow sinners are among the most careful and competent logicians on the contemporary scene, we regard this as evidence that the subject is refractory. Thus fullness of exposition is necessary for accuracy; and excessive condensation would be false economy here, even more than it is ordinarily.”
Haskell B. Curry and Robert Feys
in the Preface to Combinatory Logic [3], May 31, 1956
In September of 1987 a meeting was held at the conference on Functional Programming Languages and Computer Architecture (FPCA ’87) in Portland, Oregon, to discuss an unfortunate situation in the functional programming community: there had come into being more than a dozen non-strict, purely functional programming languages, all similar in expressive power and semantic underpinnings. There was a strong consensus at this meeting that more widespread use of this class of functional languages was being hampered by the lack of a common language. It was decided that a committee should be formed to design such a language, providing faster communication of new ideas, a stable foundation for real applications development, and a vehicle through which others would be encouraged to use functional languages. This document describes the result of that (and subsequent) committee’s efforts: a purely functional programming language called Haskell, named after the logician Haskell B. Curry whose work provides the logical basis for much of ours.
The committee’s primary goal was to design a language that satisfied these constraints:
The committee intended that Haskell would serve as a basis for future research in language design, and hoped that extensions or variants of the language would appear, incorporating experimental features.
Haskell has indeed evolved continuously since its original publication. By the middle of 1997, there had been five versions of the language design (from Haskell 1.0 – 1.4). At the 1997 Haskell Workshop in Amsterdam, it was decided that a stable variant of Haskell was needed; this became “Haskell 98” and was published in February 1999. The fixing of minor bugs led to the Revised Haskell 98 Report in 2002.
At the 2005 Haskell Workshop, the consensus was that so many extensions to the official language were widely used (and supported by multiple implementations), that it was worthwhile to define another iteration of the language standard, essentially to codify (and legitimise) the status quo.
The Haskell Prime effort was thus conceived as a relatively conservative extension of Haskell 98, taking on board new features only where they were well understood and widely agreed upon. It too was intended to be a “stable” language, yet reflecting the considerable progress in research on language design in recent years.
After several years exploring the design space, it was decided that a single monolithic revision of the language was too large a task, and the best way to make progress was to evolve the language in small incremental steps, each revision integrating only a small number of well-understood extensions and changes. Haskell 2010 is the first revision to be created in this way, and new revisions are expected once per year.
The most significant language changes in Haskell 2010 relative to Haskell 98 are listed here.
New language features:
Removed language features:
The Haskell web site http://haskell.org gives access to many useful resources, including:
You are welcome to comment on, suggest improvements to, and criticise the language or its presentation in the report, via the Haskell mailing list, or the Haskell wiki.
Haskell was created, and continues to be sustained, by an active community of researchers and application programmers. Those who served on the Language and Library committees, in particular, devoted a huge amount of time and energy to the language. Here they are, with their affiliation(s) for the relevant period:
Arvind (MIT)
Lennart Augustsson (Chalmers University)
Dave Barton (Mitre Corp)
Brian Boutel (Victoria University of Wellington)
Warren Burton (Simon Fraser University)
Manuel M T Chakravarty (University of New South Wales)
Duncan Coutts (Well-Typed LLP)
Jon Fairbairn (University of Cambridge)
Joseph Fasel (Los Alamos National Laboratory)
John Goerzen
Andy Gordon (University of Cambridge)
Maria Guzman (Yale University)
Kevin Hammond [editor] (University of Glasgow)
Bastiaan Heeren (Utrecht University)
Ralf Hinze (University of Bonn)
Paul Hudak [editor] (Yale University)
John Hughes [editor] (University of Glasgow; Chalmers University)
Thomas Johnsson (Chalmers University)
Isaac Jones (Galois, inc.)
Mark Jones (Yale University, University of Nottingham, Oregon Graduate Institute)
Dick Kieburtz (Oregon Graduate Institute)
John Launchbury (University of Glasgow; Oregon Graduate Institute; Galois, inc.)
Andres Löh (Utrecht University)
Ian Lynagh (Well-Typed LLP)
Simon Marlow [editor] (Microsoft Research)
John Meacham
Erik Meijer (Utrecht University)
Ravi Nanavati (Bluespec, inc.)
Rishiyur Nikhil (MIT)
Henrik Nilsson (University of Nottingham)
Ross Paterson (City University, London)
John Peterson [editor] (Yale University)
Simon Peyton Jones [editor] (University of Glasgow; Microsoft Research Ltd)
Mike Reeve (Imperial College)
Alastair Reid (University of Glasgow)
Colin Runciman (University of York)
Don Stewart (Galois, inc.)
Martin Sulzmann (Informatik Consulting Systems AG)
Audrey Tang
Simon Thompson (University of Kent)
Philip Wadler [editor] (University of Glasgow)
Malcolm Wallace (University of York)
Stephanie Weirich (University of Pennsylvania)
David Wise (Indiana University)
Jonathan Young (Yale University)
Those marked [editor] served as the co-ordinating editor for one or more revisions of the language.
In addition, dozens of other people made helpful contributions, some small but many substantial. They are as follows: Hans Aberg, Kris Aerts, Sten Anderson, Richard Bird, Tom Blenko, Stephen Blott, Duke Briscoe, Paul Callaghan, Magnus Carlsson, Mark Carroll, Franklin Chen, Olaf Chitil, Chris Clack, Guy Cousineau, Tony Davie, Craig Dickson, Chris Dornan, Laura Dutton, Chris Fasel, Pat Fasel, Sigbjorn Finne, Michael Fryers, Peter Gammie, Andy Gill, Mike Gunter, Cordy Hall, Mark Hall, Thomas Hallgren, Matt Harden, Klemens Hemm, Fergus Henderson, Dean Herington, Bob Hiromoto, Nic Holt, Ian Holyer, Randy Hudson, Alexander Jacobson, Patrik Jansson, Robert Jeschofnik, Orjan Johansen, Simon B. Jones, Stef Joosten, Mike Joy, Wolfram Kahl, Stefan Kahrs, Antti-Juhani Kaijanaho, Jerzy Karczmarczuk, Kent Karlsson, Martin D. Kealey, Richard Kelsey, Siau-Cheng Khoo, Amir Kishon, Feliks Kluzniak, Jan Kort, Marcin Kowalczyk, Jose Labra, Jeff Lewis, Mark Lillibridge, Bjorn Lisper, Sandra Loosemore, Pablo Lopez, Olaf Lubeck, Christian Maeder, Ketil Malde, Michael Marte, Jim Mattson, John Meacham, Sergey Mechveliani, Gary Memovich, Randy Michelsen, Rick Mohr, Andy Moran, Graeme Moss, Arthur Norman, Nick North, Chris Okasaki, Bjarte M. Østvold, Paul Otto, Sven Panne, Dave Parrott, Larne Pekowsky, Rinus Plasmeijer, Ian Poole, Stephen Price, John Robson, Andreas Rossberg, George Russell, Patrick Sansom, Michael Schneider, Felix Schroeter, Julian Seward, Nimish Shah, Christian Sievers, Libor Skarvada, Jan Skibinski, Lauren Smith, Raman Sundaresh, Josef Svenningsson, Ken Takusagawa, Wolfgang Thaller, Satish Thatte, Tom Thomson, Tommy Thorn, Dylan Thurston, Mike Thyer, Mark Tullsen, David Tweed, Pradeep Varma, Keith Wansbrough, Tony Warnock, Michael Webber, Carl Witty, Stuart Wray, and Bonnie Yantis.
Finally, aside from the important foundational work laid by Church, Rosser, Curry, and others on the lambda calculus, it is right to acknowledge the influence of many noteworthy programming languages developed over the years. Although it is difficult to pinpoint the origin of many ideas, the following languages were particularly influential: Lisp (and its modern-day incarnations Common Lisp and Scheme); Landin’s ISWIM; APL; Backus’s FP [1]; ML and Standard ML; Hope and Hope+; Clean; Id; Gofer; Sisal; and Turner’s series of languages culminating in Miranda1 . Without these forerunners Haskell would not have been possible.
Simon Marlow
Cambridge, April 2010


Insulin drives sugar from the blood into your body’s cells so they can get nourishment. In untreated diabetes the body no longer burns sugar as its normal source of energy and instead burns fat. When this happens, acid compounds are produced as by-products, causing the blood to become acidic. Some of this acid is eliminated through the lungs, producing the characteristic fruity-smelling breath. When the acid by-products build up and the blood sugar rises, you may also experience extreme thirst, shortness of breath, and/or abdominal pain. Without treatment, coma and death may follow.
The diabetic rarely detects this strange-smelling breath odor. It is important that he or she is informed when it appears, since emergency medical evaluation is needed. Though most people have not smelled this odor before, it can be readily identified as an unusual smell. Unfortunately, since the acid in the person’s blood can make them act like they are intoxicated, the smell may be mistaken for alcohol, causing the person to be misdiagnosed. (See Appendix C for information about diabetes screening.)
The early signs of arsenic poisoning are sometimes a garlic odor on the breath and a metallic taste on the tongue. Later symptoms include vomiting and a burning, upset stomach. You may also experience other symptoms, including a burning and tingling in your arms and legs (which results from the damage to your nerves). Note: The early symptoms of arsenic poisoning can also be caused by certain medications like Biaxin, which tend to give you an abnormal taste in your mouth.
Arsenic poisoning has been known to occur in incidents of mail-order poisoning. No doubt you have also heard of food supplements or medications being intentionally laced with arsenic and distributed.
Call your local poison control center or the national poison control number (1-800-222-1222) for additional information and advice on appropriate evaluation and treatment if you suspect that you have been exposed to arsenic.
A sore inside of the mouth, on the tongue, or in the throat that does not heal within three weeks is considered cancer until proven otherwise. Many of these early cancers first appear as red sores in the mouth (called erythroplasia). White spots (called leukoplakia), which can be found in the same locations, are also potentially precancerous. Though leukoplakia are more common, erythroplasia are more likely to become cancerous.
Leukoplakia can result from the abrasive contact of the mouth’s lining with the rough edge of a tooth or denture, but are more commonly caused by the use of tobacco or alcohol. These substances are very irritating to surface cells in the mouth, and can lead to the formation of leukoplakia. If this overgrowth continues, it can evolve into cancer, which can then spread to other parts of the body. An ear, nose, and throat specialist or a dental surgeon is the best specialist to evaluate both types of sores. Make an appointment as soon as possible.
Another cause of white spots in the mouth is a yeast infection. Yeast infections in the mouths of babies are common because babies have youthful immune systems. They can also occur in the mouths of adults with an abnormally weak immune system caused by diseases such as HIV infection. Additionally, yeast infections can appear as a side effect from taking antibiotics or steroids. For example, they can occur after the prolonged daily use of inhaled corticosteroid inhalers for asthma, chronic obstructive lung disease, or emphysema (Asthmacort, Advair, etc.). If they persist, these white spots warrant evaluation.
At an early stage, mucosal melanoma can appear as a blue or black spot or a nonpigmented growth, usually on the roof of the mouth or on the gums around your front upper teeth. Other more common causes of a blue or black spot include stains from silver fillings.
A dentist or doctor, oral surgeon, or ear, nose, and throat physician can help determine the cause of your gum discoloration.
Patients generally consider dental care only for cosmetic reasons, thinking it unessential for maintaining good health. It can be expensive, so it is often at the bottom of their priority list. Thousands of people go about their business not realizing that the poor state of their gums is risking the overall health of their body.
It is a fact that everybody’s mouth houses bacteria (germs) that enter your bloodstream when your gums are manipulated. The body’s natural defenses can often kill these bacteria when they enter the bloodstream. However, the germs occasionally survive and can infect heart valves that have been infected in the past, or can damage artificial heart valves. In addition, the condition of having chronically infected gums (periodontal disease) may contribute to damage to the internal lining of your coronary arteries (small blood vessels supplying nourishment to the heart) such that it leads to a heart attack.
Usually when you visit the dentist for some sort of procedure, you will be asked if you have a history of having an infected heart valve, have an artificial heart valve, etc. If you do, you are at increased risk, and may be given an antibiotic to prevent infecting your heart valve before starting dental treatment. However, recent studies indicate that people with chronically infected gums may continually be at a higher risk of a heart attack.
The important message to the general public is to get regular checkups by the dentist so that gum disease can be properly diagnosed and treated. Routinely brush and floss your teeth. Ask your dentist or dental hygienist to show you how to properly use a toothbrush and dental floss. Make proper dental care a priority.


Hej everyone!! I feel very happy to have met each one of you, and gotten a chance to share adventures and celebrations together, exploring islands, ancient forests, fossil beaches, national parks.
Some happy memories!


This page contains the corresponding HTRC entries for the beagle voyage
Source code and issue tracking for this page available at GitHub. Contact Jaimie Murdock (jammurdo) with further comments.


Pathanamthitta District is a district in the southern part of Kerala, India. The district headquarters is in the town of Pathanamthitta. There are four municipalities in Pathanamthitta: Tiruvalla, Adoor, Pathanamthitta and Pandalam. According to the 2011 Census of India, the population was 1,197,412, making it the third least populous district in Kerala (out of 14), after Wayanad and Idukki. Pathanamthitta has been declared the first polio-free district in India.


Class: Aws::Glue::Types::Connection
| Relationships & Source Files | |
| Super Chains via Extension / Inclusion / Inheritance | |
|
Class Chain:
self,
Struct
|
|
|
Instance Chain:
self,
::Aws::Structure ,
Struct
|
|
| Inherits: |
Struct
|
| Defined in: | gems/aws-sdk-glue/lib/aws-sdk-glue/types.rb |
Overview
Defines a connection to a data source.
Constant Summary
Instance Attribute Summary
-
#connection_properties ⇒ Hash<String,String>
rw
These key-value pairs define parameters for the connection:
-
#connection_type ⇒ String
rw
The type of the connection.
-
#creation_time ⇒ Time
rw
The time that this connection definition was created.
-
#description ⇒ String
rw
The description of the connection.
-
#last_updated_by ⇒ String
rw
The user, group, or role that last updated this connection definition.
-
#last_updated_time ⇒ Time
rw
The last time that this connection definition was updated.
-
#match_criteria ⇒ Array<String>
rw
A list of criteria that can be used in selecting this connection.
-
#name ⇒ String
rw
The name of the connection definition.
-
#physical_connection_requirements ⇒ Types::PhysicalConnectionRequirements
rw
A map of physical connection requirements, such as virtual private cloud (VPC) and
SecurityGroup
, that are needed to make this connection successfully.
Instance Method Summary
::Aws::Structure
- Included
| #to_hash | Alias for Structure#to_h. |
Instance Attribute Details
#connection_properties ⇒ Hash
<String
,String
> (rw)
These key-value pairs define parameters for the connection:
HOST
- The host URI: either the fully qualified domain name (FQDN) or the IPv4 address of the database host.PORT
- The port number, between 1024 and 65535, of the port on which the database host is listening for database connections.USER_NAME
- The name under which to log in to the database. The value string forUSER_NAME
is "USERNAME
".PASSWORD
- A password, if one is used, for the user name.ENCRYPTED_PASSWORD
- When you enable connection password protection by settingConnectionPasswordEncryption
in the Data Catalog encryption settings, this field stores the encrypted password.JDBC_DRIVER_JAR_URI
- The Amazon Simple Storage Service (Amazon S3) path of the JAR file that contains the JDBC driver to use.JDBC_DRIVER_CLASS_NAME
- The class name of the JDBC driver to use.JDBC_ENGINE
- The name of the JDBC engine to use.JDBC_ENGINE_VERSION
- The version of the JDBC engine to use.CONFIG_FILES
- (Reserved for future use.)INSTANCE_ID
- The instance ID to use.JDBC_CONNECTION_URL
- The URL for connecting to a JDBC data source.JDBC_ENFORCE_SSL
- A Boolean string (true, false) specifying whether Secure Sockets Layer (SSL) with hostname matching is enforced for the JDBC connection on the client. The default is false.CUSTOM_JDBC_CERT
- An Amazon::Aws::S3
location specifying the customer's root certificate. Glue uses this root certificate to validate the customer’s certificate when connecting to the customer database. Glue only handles X.509 certificates. The certificate provided must be DER-encoded and supplied in Base64 encoding PEM format.SKIP_CUSTOM_JDBC_CERT_VALIDATION
- By default, this isfalse
. Glue validates the Signature algorithm and Subject Public Key Algorithm for the customer certificate. The only permitted algorithms for the Signature algorithm are SHA256withRSA, SHA384withRSA or SHA512withRSA. For the Subject Public Key Algorithm, the key length must be at least 2048. You can set the value of this property totrue
to skip Glue’s validation of the customer certificate.CUSTOM_JDBC_CERT_STRING
- A custom JDBC certificate string which is used for domain match or distinguished name match to prevent a man-in-the-middle attack. In Oracle database, this is used as theSSL_SERVER_CERT_DN
; in Microsoft SQL Server, this is used as thehostNameInCertificate
.CONNECTION_URL
- The URL for connecting to a general (non-JDBC) data source.SECRET_ID
- The secret ID used for the secret manager of credentials.CONNECTOR_URL
- The connector URL for a MARKETPLACE or CUSTOM connection.CONNECTOR_TYPE
- The connector type for a MARKETPLACE or CUSTOM connection.CONNECTOR_CLASS_NAME
- The connector class name for a MARKETPLACE or CUSTOM connection.KAFKA_BOOTSTRAP_SERVERS
- A comma-separated list of host and port pairs that are the addresses of the Apache Kafka brokers in a Kafka cluster to which a Kafka client will connect to and bootstrap itself.KAFKA_SSL_ENABLED
- Whether to enable or disable SSL on an Apache Kafka connection. Default value is "true".KAFKA_CUSTOM_CERT
- The Amazon::Aws::S3
URL for the private CA cert file (.pem format). The default is an empty string.KAFKA_SKIP_CUSTOM_CERT_VALIDATION
- Whether to skip the validation of the CA cert file or not. Glue validates for three algorithms: SHA256withRSA, SHA384withRSA and SHA512withRSA. Default value is "false".KAFKA_CLIENT_KEYSTORE
- The Amazon::Aws::S3
location of the client keystore file for Kafka client side authentication (Optional).KAFKA_CLIENT_KEYSTORE_PASSWORD
- The password to access the provided keystore (Optional).KAFKA_CLIENT_KEY_PASSWORD
- A keystore can consist of multiple keys, so this is the password to access the client key to be used with the Kafka server side key (Optional).ENCRYPTED_KAFKA_CLIENT_KEYSTORE_PASSWORD
- The encrypted version of the Kafka client keystore password (if the user has the Glue encrypt passwords setting selected).ENCRYPTED_KAFKA_CLIENT_KEY_PASSWORD
- The encrypted version of the Kafka client key password (if the user has the Glue encrypt passwords setting selected).KAFKA_SASL_MECHANISM
-"SCRAM-SHA-512"
,"GSSAPI"
, or"AWS_MSK_IAM"
. These are the supported SASL Mechanisms.KAFKA_SASL_SCRAM_USERNAME
- A plaintext username used to authenticate with the "SCRAM-SHA-512" mechanism.KAFKA_SASL_SCRAM_PASSWORD
- A plaintext password used to authenticate with the "SCRAM-SHA-512" mechanism.ENCRYPTED_KAFKA_SASL_SCRAM_PASSWORD
- The encrypted version of the Kafka SASL SCRAM password (if the user has the Glue encrypt passwords setting selected).KAFKA_SASL_SCRAM_SECRETS_ARN
- The Amazon::Aws::Glue::Resource
Name of a secret in Amazon Web Services Secrets Manager.KAFKA_SASL_GSSAPI_KEYTAB
- The S3 location of a Kerberoskeytab
file. A keytab stores long-term keys for one or more principals. For more information, see MIT Kerberos Documentation: Keytab.KAFKA_SASL_GSSAPI_KRB5_CONF
- The S3 location of a Kerberoskrb5.conf
file. A krb5.conf stores Kerberos configuration information, such as the location of the KDC server. For more information, see MIT Kerberos Documentation: krb5.conf.KAFKA_SASL_GSSAPI_SERVICE
- The Kerberos service name, as set withsasl.kerberos.service.name
in your Kafka Configuration.KAFKA_SASL_GSSAPI_PRINCIPAL
- The name of the Kerberos princial used by Glue. For more information, see Kafka Documentation: Configuring Kafka Brokers.
# File 'gems/aws-sdk-glue/lib/aws-sdk-glue/types.rb', line 2910
class Connection < Struct.new( :name, :description, :connection_type, :match_criteria, :connection_properties, :physical_connection_requirements, :creation_time, :last_updated_time, :last_updated_by) SENSITIVE = [] include Aws::Structure end
#connection_type ⇒ String
(rw)
The type of the connection. Currently, SFTP is not supported.
# File 'gems/aws-sdk-glue/lib/aws-sdk-glue/types.rb', line 2910
class Connection < Struct.new( :name, :description, :connection_type, :match_criteria, :connection_properties, :physical_connection_requirements, :creation_time, :last_updated_time, :last_updated_by) SENSITIVE = [] include Aws::Structure end
#creation_time ⇒ Time
(rw)
The time that this connection definition was created.
# File 'gems/aws-sdk-glue/lib/aws-sdk-glue/types.rb', line 2910
class Connection < Struct.new( :name, :description, :connection_type, :match_criteria, :connection_properties, :physical_connection_requirements, :creation_time, :last_updated_time, :last_updated_by) SENSITIVE = [] include Aws::Structure end
#description ⇒ String
(rw)
The description of the connection.
# File 'gems/aws-sdk-glue/lib/aws-sdk-glue/types.rb', line 2910
class Connection < Struct.new( :name, :description, :connection_type, :match_criteria, :connection_properties, :physical_connection_requirements, :creation_time, :last_updated_time, :last_updated_by) SENSITIVE = [] include Aws::Structure end
#last_updated_by ⇒ String
(rw)
The user, group, or role that last updated this connection definition.
# File 'gems/aws-sdk-glue/lib/aws-sdk-glue/types.rb', line 2910
class Connection < Struct.new( :name, :description, :connection_type, :match_criteria, :connection_properties, :physical_connection_requirements, :creation_time, :last_updated_time, :last_updated_by) SENSITIVE = [] include Aws::Structure end
#last_updated_time ⇒ Time
(rw)
The last time that this connection definition was updated.
# File 'gems/aws-sdk-glue/lib/aws-sdk-glue/types.rb', line 2910
class Connection < Struct.new( :name, :description, :connection_type, :match_criteria, :connection_properties, :physical_connection_requirements, :creation_time, :last_updated_time, :last_updated_by) SENSITIVE = [] include Aws::Structure end
#match_criteria ⇒ Array
<String
> (rw)
A list of criteria that can be used in selecting this connection.
# File 'gems/aws-sdk-glue/lib/aws-sdk-glue/types.rb', line 2910
class Connection < Struct.new( :name, :description, :connection_type, :match_criteria, :connection_properties, :physical_connection_requirements, :creation_time, :last_updated_time, :last_updated_by) SENSITIVE = [] include Aws::Structure end
#name ⇒ String
(rw)
The name of the connection definition.
# File 'gems/aws-sdk-glue/lib/aws-sdk-glue/types.rb', line 2910
class Connection < Struct.new( :name, :description, :connection_type, :match_criteria, :connection_properties, :physical_connection_requirements, :creation_time, :last_updated_time, :last_updated_by) SENSITIVE = [] include Aws::Structure end
#physical_connection_requirements ⇒ Types::PhysicalConnectionRequirements (rw)
A map of physical connection requirements, such as virtual private
cloud (VPC) and SecurityGroup
, that are needed to make this
connection successfully.
# File 'gems/aws-sdk-glue/lib/aws-sdk-glue/types.rb', line 2910
class Connection < Struct.new( :name, :description, :connection_type, :match_criteria, :connection_properties, :physical_connection_requirements, :creation_time, :last_updated_time, :last_updated_by) SENSITIVE = [] include Aws::Structure end


Welcome to RedAlert’s documentation!¶
If you want to post to reddit and walk away, this is the app for you. Perfect for content creators.
RedAlert monitors reddit and notifies you via text message when something is happening. It will directly text you your PMs (across multiple alt accounts), let you know how your important post is doing, and notify you if anyone mentions keywords you can input.
Contents:¶
Indices and tables¶
Installation¶
RedAlert is a script, so it doesn’t need to be ‘installed’ in the traditional sense. Just check that you have the Required Software/Libraries and then Download !
Download¶
The easiest way to get the latest copy of RedAlert is by downloading it from the github: Download from Git hub
Contribute¶
Support¶
If you are having issues, please let us know<EMAIL_ADDRESS>License¶
The project is licensed under the MIT something or other. If you decide to do something with the code, I ask that you send me an email<EMAIL_ADDRESS>just saying hello. Let’s talk about your project together (and I’d love to know who is using the code).
You can view it here: License


Popular Areas in police sergeants interview uk
Downloads page - ESH Solutions Limited - Police Promotion ...
www.policepromotion.eshsolutions.co.uk . How to pass the Police Promotion Interview electronic book . Pc to Sgt, Channel Isles: "I bought the Police promotion e-book a few months back as I was going for DC to Sergeant promotion.
http://www.eshsolutions.co.uk/downloads.html
Your guide to becoming a police constable (PDF - Police Recruitment
8 Initial Police Learning and Development Programme (IPLDP). 10 Progression . assessment tests and an interview. You don't need to worry about these. You will receive . www.policecouldyou.co.uk. Typically . sergeant to inspector. 10 .
http://policerecruitment.homeoffice.gov.uk/documents/pc-guide-brochure2835.pdf?view=Binary
Brett Seekatz beating: Federal grand jury reviewing case of officer ...
Jan 15, 2013 . Brett Seekatz, a police sergeant in Las Vegas, was caught on tape beating Adam Greene after . Settlement: In February 2012, Greene, shown above during an interview which concealed his . She must really love the UK!
http://www.dailymail.co.uk/news/article-2262746/Brett-Seekatz-beating-Federal-grand-jury-reviewing-case-officer-kicked-man-diabetic-shock-FIVE-times-dashboard-cam.html
Testimony of a Police Sergeant
An Interview with "The Amiable Sergeant Symes" . U.K). Our magazine editor, Roy Symes, retired from the Police Service at the end of fast year. Just before that .
http://grace-gospel.org/policemans_testimony.htm
How to Prepare For A Police Promotion Oral Board | eHow.com
Other People Are Reading. How to Answer Interview Questions for a Promotion · 10 Tips for Mastering the Police Oral Board .
http://www.ehow.com/how_5540589_prepare-police-promotion-oral-board.html


|
CS Dungeon
1.0a
A simple game made by amateurs
|
The main model containing needed data to implement a platformer style game. More...
Public Attributes | |
| Cinemachine.CinemachineVirtualCamera | virtualCamera |
| The virtual camera in the scene. More... | |
| PlayerController | player |
| The main component which controls the player sprite, controlled by the user. More... | |
| Transform | spawnPoint |
| The spawn point in the scene. More... | |
| float | jumpModifier = 1.5f |
| A global jump modifier applied to all initial jump velocities. More... | |
| float | jumpDeceleration = 0.5f |
| A global jump modifier applied to slow down an active jump when the user releases the jump input. More... | |
The main model containing needed data to implement a platformer style game.
This class should only contain data, and methods that operate on the data. It is initialised with data in the GameController class.
| float Platformer.Model.PlatformerModel.jumpDeceleration = 0.5f |
A global jump modifier applied to slow down an active jump when the user releases the jump input.
| float Platformer.Model.PlatformerModel.jumpModifier = 1.5f |
A global jump modifier applied to all initial jump velocities.
| PlayerController Platformer.Model.PlatformerModel.player |
The main component which controls the player sprite, controlled by the user.
| Transform Platformer.Model.PlatformerModel.spawnPoint |
The spawn point in the scene.
| Cinemachine.CinemachineVirtualCamera Platformer.Model.PlatformerModel.virtualCamera |
The virtual camera in the scene.


This is your FishFriends social profile
Javier Gutierrez
North Bergen, NJ
September 8 , 1986
Status: Fishing!
Ernest Hemingway's 'The Old Man and the Sea' follows Santiago, an old fisherman, as he tries to catch a great fish in the sea after eighty-four days without capturing a single fish. Much of the story happens in a natural setting. In this lesson, we will look at quotes about nature from the story.
1 min ago
Ernest Hemingway's 'The Old Man and the Sea' follows Santiago, an old fisherman, as he tries to catch a great fish in the sea after eighty-four days without capturing a single fish. Much of the story happens in a natural setting. In this lesson, we will look at quotes about nature from the story.
30 min ago
Ernest Hemingway's 'The Old Man and the Sea' follows Santiago, an old fisherman, as he tries to catch a great fish in the sea after eighty-four days without capturing a single fish. Much of the story happens in a natural setting. In this lesson, we will look at quotes about nature from the story.
45 min ago


This template will discover and monitor various optical interfaces - mainly light levels and baselines and alert if light levels fall outside of VARIANCE macro. Also will report when OSC has no light and serve a clear indication that there is a fiber issue.
No MIBs required. Used OIDs.
No Dependencies - just enable SNMP with v2 community on the shelf and set SNMP_COMMUNITY macro in template.
Dustin Howard
| Name | Description | Default | Type |
|---|---|---|---|
| {$OPTICAL_VARIANCE} |
the allowed variance from baselines in db
 | 2 |
Text macro |
| {$SNMP_COMMUNITY} |
-
 | secret |
Text macro |
There are no template links in this template.
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Optical AMP Rx Discovery |
-
 | SNMP agent |
optical.rx.discovery
Update: 1d;wd1h13
 |
| Shelf Inventory Discovery |
-
 | SNMP agent |
enventory.discovery
Update: 1d;wd1h8
 |
| Optical OSC Discovery |
-
 | SNMP agent |
optical.osc.discovery
Update: 1d;wd1h9
 |
| Optical AMP Tx Discovery |
-
 | SNMP agent |
optical.tx.discovery
Update: 1d;wd1h12
 |
| Optical OSC Spanloss Discovery |
-
 | SNMP agent |
optical.osc.spanloss.discovery
Update: 1d;wd1h10
 |
| Ethernet Interface Discovery |
-
 | SNMP agent |
ethernet.transport.if.discovery
Update: 1d;wd1h14
 |
| Optical Transport Interface Discovery |
-
 | SNMP agent |
optical.transport.if.discovery
Update: 1d;wd1h11
 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Number of Major Alarms |
This is the number of major alarms that currently exist at this node which may have one or more shelves.
 | SNMP agent |
ciena.major.alarms
Update: 5m
 |
| Number of Warnings |
This is the number of warnings that currently exist at this node which may have one or more shelves.
 | SNMP agent |
ciena.warnings
Update: 5m
 |
| Software Version |
-
 | SNMP agent |
software.version
Update: 6h
 |
| Number of Critical Alarms |
This is the number of critical alarms that currently exist at this node which may have one or more shelves.
 | SNMP agent |
ciena.critical.alarms
Update: 5m
 |
| Device Uptime |
The time (in seconds) since the network management portion of the system was last re-initialized.
 | SNMP agent |
system.uptime
Update: 5m
 |
| Number of Minor Alarms |
This is the number of minor alarms that currently exist at this node which may have one or more shelves.
 | SNMP agent |
ciena.minor.alarms
Update: 5m
 |
| {#PORTNAME} “Optical Receive Power” baseline |
The baseline set on the shelf. This can be re-initialized when needed via site manager.
 | SNMP agent |
optical.baseline[{#PORTNAME}.OPIN]
Update: 5m

LLD
 |
| {#PORTNAME} “Optical Receive Power” |
-
 | SNMP agent |
optical.rx[{#PORTNAME}.OPIN]
Update: 5m

LLD
 |
| Serial Number: “{#DESCRIPTION}” in {#CONTAINER} MODEL-{#MODEL} |
The serial number for this module.
 | SNMP agent |
serial.number.[{#SNMPINDEX}]
Update: 1d

LLD
 |
| {#PORTNAME} “{#CHECKNAME}” |
The OSC received light level in dbm.
 | SNMP agent |
optical.osc[{#PORTNAME}.{#CHECKNAME}]
Update: 1m

LLD
 |
| {#PORTNAME} “Optical Transmit Power” baseline |
The baseline set on the shelf. This can be re-initialized when needed via site manager.
 | SNMP agent |
optical.tx.baseline[{#PORTNAME}.OPOUT]
Update: 5m

LLD
 |
| {#PORTNAME} “Optical Return Loss” baseline |
The baseline set on the shelf. This can be re-initialized when needed via site manager.
 | SNMP agent |
optical.tx.baseline[{#PORTNAME}.ORL]
Update: 5m

LLD
 |
| {#PORTNAME} “Optical Transmit Power” |
The optical transit power for this port in dbm.
 | SNMP agent |
optical.tx[{#PORTNAME}.OPOUT]
Update: 5m

LLD
 |
| {#PORTNAME} “Optical Return Loss” |
Optical Return Loss (ORL) is similar to SNR. The higher the ORL, the better.
 | SNMP agent |
optical.tx[{#PORTNAME}.ORL]
Update: 5m

LLD
 |
| {#PORTNAME} “{#CHECKNAME}” |
The span loss ont he receive fiber in db.
 | SNMP agent |
optical.osc.spanloss[{#PORTNAME}.{#CHECKNAME}]
Update: 1m

LLD
 |
| {#IFDESCR}: Bits Received |
The total number of bits per second received on the interface.
 | SNMP agent |
ciena6500.ethernet.if.bits.in[{#SNMPINDEX}]
Update: 5m

LLD
 |
| {#IFDESCR}: Bits Sent |
The total number of bits per second sent on the interface.
 | SNMP agent |
ciena6500.ethernet.if.bits.out[{#SNMPINDEX}]
Update: 5m

LLD
 |
| {#IFDESCR}: Ethernet Errors |
The average number of inbound packets per second that contained errors preventing them from being deliverable to a higher-layer protocol.
 | SNMP agent |
ciena6500.ethernet.if.errors.in[{#SNMPINDEX}]
Update: 5m

LLD
 |
| {#IFDESCR}: Admin status |
The administrative state of the interface.
 | SNMP agent |
ethernet.if.status[ifAdminStatus.{#SNMPINDEX}]
Update: 5m

LLD
 |
| {#IFDESCR}: Operational status |
The operational state of the interface.
 | SNMP agent |
ethernet.if.status[ifOperStatus.{#SNMPINDEX}]
Update: 5m

LLD
 |
| {#IFDESCR}: Admin Status |
The administrative status of the port.
 | SNMP agent |
net.if.status[ifAdminStatus.{#SNMPINDEX}]
Update: 5m

LLD
 |
| {#IFDESCR}: Operational status |
The operational status of the port.
 | SNMP agent |
net.if.status[ifOperStatus.{#SNMPINDEX}]
Update: 5m

LLD
 |
| {#IFDESCR}: Optical Power Received |
The optical power received at this port in dbm.
 | SNMP agent |
net.if.status[opr.och.nend.rcv.{#SNMPINDEX}]
Update: 5m

LLD
 |
| {#IFDESCR}: Optical Power Transmitted |
The optical power transmitted at this port in dbm.
 | SNMP agent |
net.if.status[opr.och.nend.trmt.{#SNMPINDEX}]
Update: 5m

LLD
 |
| {#IFDESCR}: Post-FEC bit error rate |
Post-FEC bit error rate estimate, optical channel transport unit
 | SNMP agent |
net.if.status[post.fec.ber.{#SNMPINDEX}]
Update: 5m

LLD
 |
| {#IFDESCR}: Pre-FEC bit error rate |
Pre-FEC bit error rate, optical channel transport unit
 | SNMP agent |
net.if.status[pre.fec.ber.{#SNMPINDEX}]
Update: 5m

LLD
 |
| {#IFDESCR}: Uncorrected FEC block |
Uncorrected FEC blocks, Optical Transport Unit.
 | SNMP agent |
net.if.status[uncorrected.fec.block.{#SNMPINDEX}]
Update: 5m

LLD
 |
| Name | Description | Expression | Priority |
|---|---|---|---|
| {#IFDESCR} DOWN |
The operational status of this Ethernet interface is DOWN.
 |
Expression: {Ciena 6500 2:ethernet.if.status[ifOperStatus.{#SNMPINDEX}].last(#1)}<>1 and {Ciena 6500 2:ethernet.if.status[ifAdminStatus.{#SNMPINDEX}].last(#1,1)}=1

Recovery expression:
 | warning |
| {#PORTNAME} has No Light |
The last two values for “{#CHECKNAME}” is 0. The check reports 0db when the OSC circuit cannot determine the spanloss. This would indicate a loss of light.
 |
Expression: {Ciena 6500 2:optical.osc.spanloss[{#PORTNAME}.{#CHECKNAME}].sum(#2)}=0 or {Ciena 6500 2:optical.osc.spanloss[{#PORTNAME}.{#CHECKNAME}].last(#1)}<-44

Recovery expression:
 | high |
| {#PORTNAME} Optical Rx Power crossed baseline thresholds |
The optical power level it more than {$OPTICAL_VARIANCE}db from the baseline value. This could be due to a new fiber event or the baselines may need to be reset. First verify the optical path then decide weather to reset the baselines. The baseline value can be reset in the PMs on the Ciena shelf.
 |
Expression: (({Ciena 6500 2:optical.rx[{#PORTNAME}.OPIN].last(#1)}<{Ciena 6500 2:optical.baseline[{#PORTNAME}.OPIN].last(#1)}-2) or ({Ciena 6500 2:optical.rx[{#PORTNAME}.OPIN].last(#1)}>{Ciena 6500 2:optical.baseline[{#PORTNAME}.OPIN].last(#1)}+2))

Recovery expression:
 | information |
| {#IFDESCR} DOWN |
The interface status is not UP for this DWDM transport interface. This indicates the DWDM wave is down and could be a result of a fiber cut.
 |
Expression: {Ciena 6500 2:net.if.status[ifOperStatus.{#SNMPINDEX}].last(#1)}<>1 and {Ciena 6500 2:net.if.status[ifAdminStatus.{#SNMPINDEX}].last(#1,1)}=1

Recovery expression:
 | average |
| {#PORTNAME} Optical Return Loss crossed baseline thresholds |
The optical return loss it more than {$OPTICAL_VARIANCE}db from the baseline value. This could be due to a new fiber event or the baselines may need to be reset. First verify the optical path then decide weather to reset the baselines. The baseline value can be reset in the PMs on the Ciena shelf.
 |
Expression: ({Ciena 6500 2:optical.tx[{#PORTNAME}.ORL].last(#1)}<{Ciena 6500 2:optical.tx.baseline[{#PORTNAME}.ORL].last(#1)}-2) or ({Ciena 6500 2:optical.tx[{#PORTNAME}.ORL].last(#1)}>{Ciena 6500 2:optical.tx.baseline[{#PORTNAME}.ORL].last(#1)}+2)

Recovery expression:
 | information |
| {#PORTNAME} Optical Tx Power crossed baseline thresholds |
The optical power level is more than {$OPTICAL_VARIANCE}db from the baseline value. This could be due to a new fiber event or the baselines may need to be reset. First verify the optical path then decide weather to reset the baselines. The baseline value can be reset in the PMs on the Ciena shelf.
 |
Expression: ({Ciena 6500 2:optical.tx[{#PORTNAME}.OPOUT].last(#1)}<{Ciena 6500 2:optical.tx.baseline[{#PORTNAME}.OPOUT].last(#1)}-2) or ({Ciena 6500 2:optical.tx[{#PORTNAME}.OPOUT].last(#1)}>{Ciena 6500 2:optical.tx.baseline[{#PORTNAME}.OPOUT].last(#1)}+2)

Recovery expression:
 | information |
| {#PORTNAME} LOW “Optical Return Loss” |
Optical Return Loss (ORL) is similar to SNR. The higher the ORL, the better. The minimum ORL is 30db. Anything lower than 30db indicates a fiber issue, such as a dirty connector or improper fiber mating.
 |
Expression: {Ciena 6500 2:optical.tx[{#PORTNAME}.ORL].last(#1)}<30

Recovery expression:
 | warning |
| {#PORTNAME} Optical Rx Power crossed baseline thresholds (LLD) |
The optical power level it more than {$OPTICAL_VARIANCE}db from the baseline value. This could be due to a new fiber event or the baselines may need to be reset. First verify the optical path then decide weather to reset the baselines. The baseline value can be reset in the PMs on the Ciena shelf.
 |
Expression: (({Ciena 6500 2:optical.rx[{#PORTNAME}.OPIN].last(#1)}<{Ciena 6500 2:optical.baseline[{#PORTNAME}.OPIN].last(#1)}-2) or ({Ciena 6500 2:optical.rx[{#PORTNAME}.OPIN].last(#1)}>{Ciena 6500 2:optical.baseline[{#PORTNAME}.OPIN].last(#1)}+2))

Recovery expression:
 | information |
| {#PORTNAME} Optical Return Loss crossed baseline thresholds (LLD) |
The optical return loss it more than {$OPTICAL_VARIANCE}db from the baseline value. This could be due to a new fiber event or the baselines may need to be reset. First verify the optical path then decide weather to reset the baselines. The baseline value can be reset in the PMs on the Ciena shelf.
 |
Expression: ({Ciena 6500 2:optical.tx[{#PORTNAME}.ORL].last(#1)}<{Ciena 6500 2:optical.tx.baseline[{#PORTNAME}.ORL].last(#1)}-2) or ({Ciena 6500 2:optical.tx[{#PORTNAME}.ORL].last(#1)}>{Ciena 6500 2:optical.tx.baseline[{#PORTNAME}.ORL].last(#1)}+2)

Recovery expression:
 | information |
| {#PORTNAME} Optical Tx Power crossed baseline thresholds (LLD) |
The optical power level is more than {$OPTICAL_VARIANCE}db from the baseline value. This could be due to a new fiber event or the baselines may need to be reset. First verify the optical path then decide weather to reset the baselines. The baseline value can be reset in the PMs on the Ciena shelf.
 |
Expression: ({Ciena 6500 2:optical.tx[{#PORTNAME}.OPOUT].last(#1)}<{Ciena 6500 2:optical.tx.baseline[{#PORTNAME}.OPOUT].last(#1)}-2) or ({Ciena 6500 2:optical.tx[{#PORTNAME}.OPOUT].last(#1)}>{Ciena 6500 2:optical.tx.baseline[{#PORTNAME}.OPOUT].last(#1)}+2)

Recovery expression:
 | information |
| {#PORTNAME} LOW “Optical Return Loss” (LLD) |
Optical Return Loss (ORL) is similar to SNR. The higher the ORL, the better. The minimum ORL is 30db. Anything lower than 30db indicates a fiber issue, such as a dirty connector or improper fiber mating.
 |
Expression: {Ciena 6500 2:optical.tx[{#PORTNAME}.ORL].last(#1)}<30

Recovery expression:
 | warning |
| {#PORTNAME} has No Light (LLD) |
The last two values for “{#CHECKNAME}” is 0. The check reports 0db when the OSC circuit cannot determine the spanloss. This would indicate a loss of light.
 |
Expression: {Ciena 6500 2:optical.osc.spanloss[{#PORTNAME}.{#CHECKNAME}].sum(#2)}=0 or {Ciena 6500 2:optical.osc.spanloss[{#PORTNAME}.{#CHECKNAME}].last(#1)}<-44

Recovery expression:
 | high |
| {#IFDESCR} DOWN (LLD) |
The operational status of this Ethernet interface is DOWN.
 |
Expression: {Ciena 6500 2:ethernet.if.status[ifOperStatus.{#SNMPINDEX}].last(#1)}<>1 and {Ciena 6500 2:ethernet.if.status[ifAdminStatus.{#SNMPINDEX}].last(#1,1)}=1

Recovery expression:
 | warning |
| {#IFDESCR} DOWN (LLD) |
The interface status is not UP for this DWDM transport interface. This indicates the DWDM wave is down and could be a result of a fiber cut.
 |
Expression: {Ciena 6500 2:net.if.status[ifOperStatus.{#SNMPINDEX}].last(#1)}<>1 and {Ciena 6500 2:net.if.status[ifAdminStatus.{#SNMPINDEX}].last(#1,1)}=1

Recovery expression:
 | average |
This template will discover and monitor various optical interfaces - mainly light levels and baselines and alert if light levels fall outside of VARIANCE macro. Also will report when OSC has no light and serve a clear indication that there is a fiber issue.
No MIBs required. Used OIDs.
No Dependencies - just enable SNMP with v2 community on the shelf and set SNMP_COMMUNITY macro in template.
Dustin Howard
| Name | Description | Default | Type |
|---|---|---|---|
| {$OPTICAL_VARIANCE} |
the allowed variance from baselines in db
 | 2 |
Text macro |
| {$SNMP_COMMUNITY} |
-
 | secret |
Text macro |
There are no template links in this template.
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Ethernet Interface Discovery |
-
 | SNMP agent |
ethernet.transport.if.discovery
Update: 1d;wd1h14
 |
| Shelf Inventory Discovery |
-
 | SNMP agent |
enventory.discovery
Update: 1d;wd1h8
 |
| Optical OSC Discovery |
-
 | SNMP agent |
optical.osc.discovery
Update: 1d;wd1h9
 |
| Optical AMP Tx Discovery |
-
 | SNMP agent |
optical.tx.discovery
Update: 1d;wd1h12
 |
| Optical AMP Rx Discovery |
-
 | SNMP agent |
optical.rx.discovery
Update: 1d;wd1h13
 |
| Optical Transport Interface Discovery |
-
 | SNMP agent |
optical.transport.if.discovery
Update: 1d;wd1h11
 |
| Optical OSC Spanloss Discovery |
-
 | SNMP agent |
optical.osc.spanloss.discovery
Update: 1d;wd1h10
 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Number of Warnings |
This is the number of warnings that currently exist at this node which may have one or more shelves.
 | SNMP agent |
ciena.warnings
Update: 5m
 |
| Software Version |
-
 | SNMP agent |
software.version
Update: 6h
 |
| Number of Critical Alarms |
This is the number of critical alarms that currently exist at this node which may have one or more shelves.
 | SNMP agent |
ciena.critical.alarms
Update: 5m
 |
| Number of Major Alarms |
This is the number of major alarms that currently exist at this node which may have one or more shelves.
 | SNMP agent |
ciena.major.alarms
Update: 5m
 |
| Device Uptime |
The time (in seconds) since the network management portion of the system was last re-initialized.
 | SNMP agent |
system.uptime
Update: 5m
 |
| Number of Minor Alarms |
This is the number of minor alarms that currently exist at this node which may have one or more shelves.
 | SNMP agent |
ciena.minor.alarms
Update: 5m
 |
| {#IFDESCR}: Bits Received |
The total number of bits per second received on the interface.
 | SNMP agent |
ciena6500.ethernet.if.bits.in[{#SNMPINDEX}]
Update: 5m

LLD
 |
| {#IFDESCR}: Bits Sent |
The total number of bits per second sent on the interface.
 | SNMP agent |
ciena6500.ethernet.if.bits.out[{#SNMPINDEX}]
Update: 5m

LLD
 |
| {#IFDESCR}: Ethernet Errors |
The average number of inbound packets per second that contained errors preventing them from being deliverable to a higher-layer protocol.
 | SNMP agent |
ciena6500.ethernet.if.errors.in[{#SNMPINDEX}]
Update: 5m

LLD
 |
| {#IFDESCR}: Admin status |
The administrative state of the interface.
 | SNMP agent |
ethernet.if.status[ifAdminStatus.{#SNMPINDEX}]
Update: 5m

LLD
 |
| {#IFDESCR}: Operational status |
The operational state of the interface.
 | SNMP agent |
ethernet.if.status[ifOperStatus.{#SNMPINDEX}]
Update: 5m

LLD
 |
| Serial Number: “{#DESCRIPTION}” in {#CONTAINER} MODEL-{#MODEL} |
The serial number for this module.
 | SNMP agent |
serial.number.[{#SNMPINDEX}]
Update: 1d

LLD
 |
| {#PORTNAME} “{#CHECKNAME}” |
The OSC received light level in dbm.
 | SNMP agent |
optical.osc[{#PORTNAME}.{#CHECKNAME}]
Update: 1m

LLD
 |
| {#PORTNAME} “Optical Transmit Power” baseline |
The baseline set on the shelf. This can be re-initialized when needed via site manager.
 | SNMP agent |
optical.tx.baseline[{#PORTNAME}.OPOUT]
Update: 5m

LLD
 |
| {#PORTNAME} “Optical Return Loss” baseline |
The baseline set on the shelf. This can be re-initialized when needed via site manager.
 | SNMP agent |
optical.tx.baseline[{#PORTNAME}.ORL]
Update: 5m

LLD
 |
| {#PORTNAME} “Optical Transmit Power” |
The optical transit power for this port in dbm.
 | SNMP agent |
optical.tx[{#PORTNAME}.OPOUT]
Update: 5m

LLD
 |
| {#PORTNAME} “Optical Return Loss” |
Optical Return Loss (ORL) is similar to SNR. The higher the ORL, the better.
 | SNMP agent |
optical.tx[{#PORTNAME}.ORL]
Update: 5m

LLD
 |
| {#PORTNAME} “Optical Receive Power” baseline |
The baseline set on the shelf. This can be re-initialized when needed via site manager.
 | SNMP agent |
optical.baseline[{#PORTNAME}.OPIN]
Update: 5m

LLD
 |
| {#PORTNAME} “Optical Receive Power” |
-
 | SNMP agent |
optical.rx[{#PORTNAME}.OPIN]
Update: 5m

LLD
 |
| {#IFDESCR}: Admin Status |
The administrative status of the port.
 | SNMP agent |
net.if.status[ifAdminStatus.{#SNMPINDEX}]
Update: 5m

LLD
 |
| {#IFDESCR}: Operational status |
The operational status of the port.
 | SNMP agent |
net.if.status[ifOperStatus.{#SNMPINDEX}]
Update: 5m

LLD
 |
| {#IFDESCR}: Optical Power Received |
The optical power received at this port in dbm.
 | SNMP agent |
net.if.status[opr.och.nend.rcv.{#SNMPINDEX}]
Update: 5m

LLD
 |
| {#IFDESCR}: Optical Power Transmitted |
The optical power transmitted at this port in dbm.
 | SNMP agent |
net.if.status[opr.och.nend.trmt.{#SNMPINDEX}]
Update: 5m

LLD
 |
| {#IFDESCR}: Post-FEC bit error rate |
Post-FEC bit error rate estimate, optical channel transport unit
 | SNMP agent |
net.if.status[post.fec.ber.{#SNMPINDEX}]
Update: 5m

LLD
 |
| {#IFDESCR}: Pre-FEC bit error rate |
Pre-FEC bit error rate, optical channel transport unit
 | SNMP agent |
net.if.status[pre.fec.ber.{#SNMPINDEX}]
Update: 5m

LLD
 |
| {#IFDESCR}: Uncorrected FEC block |
Uncorrected FEC blocks, Optical Transport Unit.
 | SNMP agent |
net.if.status[uncorrected.fec.block.{#SNMPINDEX}]
Update: 5m

LLD
 |
| {#PORTNAME} “{#CHECKNAME}” |
The span loss ont he receive fiber in db.
 | SNMP agent |
optical.osc.spanloss[{#PORTNAME}.{#CHECKNAME}]
Update: 1m

LLD
 |
| Name | Description | Expression | Priority |
|---|---|---|---|
| {#IFDESCR} DOWN |
The operational status of this Ethernet interface is DOWN.
 |
Expression: last(/Ciena 6500 2/ethernet.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>1 and last(/Ciena 6500 2/ethernet.if.status[ifAdminStatus.{#SNMPINDEX}],#1:now-1s)=1

Recovery expression:
 | warning |
| {#PORTNAME} has No Light |
The last two values for “{#CHECKNAME}” is 0. The check reports 0db when the OSC circuit cannot determine the spanloss. This would indicate a loss of light.
 |
Expression: sum(/Ciena 6500 2/optical.osc.spanloss[{#PORTNAME}.{#CHECKNAME}],#2)=0 or last(/Ciena 6500 2/optical.osc.spanloss[{#PORTNAME}.{#CHECKNAME}],#1)<-44

Recovery expression:
 | high |
| {#PORTNAME} Optical Rx Power crossed baseline thresholds |
The optical power level it more than {$OPTICAL_VARIANCE}db from the baseline value. This could be due to a new fiber event or the baselines may need to be reset. First verify the optical path then decide weather to reset the baselines. The baseline value can be reset in the PMs on the Ciena shelf.
 |
Expression: ((last(/Ciena 6500 2/optical.rx[{#PORTNAME}.OPIN],#1)<last(/Ciena 6500 2/optical.baseline[{#PORTNAME}.OPIN],#1)-2) or (last(/Ciena 6500 2/optical.rx[{#PORTNAME}.OPIN],#1)>last(/Ciena 6500 2/optical.baseline[{#PORTNAME}.OPIN],#1)+2))

Recovery expression:
 | information |
| {#IFDESCR} DOWN |
The interface status is not UP for this DWDM transport interface. This indicates the DWDM wave is down and could be a result of a fiber cut.
 |
Expression: last(/Ciena 6500 2/net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>1 and last(/Ciena 6500 2/net.if.status[ifAdminStatus.{#SNMPINDEX}],#1:now-1s)=1

Recovery expression:
 | average |
| {#PORTNAME} Optical Return Loss crossed baseline thresholds |
The optical return loss it more than {$OPTICAL_VARIANCE}db from the baseline value. This could be due to a new fiber event or the baselines may need to be reset. First verify the optical path then decide weather to reset the baselines. The baseline value can be reset in the PMs on the Ciena shelf.
 |
Expression: (last(/Ciena 6500 2/optical.tx[{#PORTNAME}.ORL],#1)<last(/Ciena 6500 2/optical.tx.baseline[{#PORTNAME}.ORL],#1)-2) or (last(/Ciena 6500 2/optical.tx[{#PORTNAME}.ORL],#1)>last(/Ciena 6500 2/optical.tx.baseline[{#PORTNAME}.ORL],#1)+2)

Recovery expression:
 | information |
| {#PORTNAME} Optical Tx Power crossed baseline thresholds |
The optical power level is more than {$OPTICAL_VARIANCE}db from the baseline value. This could be due to a new fiber event or the baselines may need to be reset. First verify the optical path then decide weather to reset the baselines. The baseline value can be reset in the PMs on the Ciena shelf.
 |
Expression: (last(/Ciena 6500 2/optical.tx[{#PORTNAME}.OPOUT],#1)<last(/Ciena 6500 2/optical.tx.baseline[{#PORTNAME}.OPOUT],#1)-2) or (last(/Ciena 6500 2/optical.tx[{#PORTNAME}.OPOUT],#1)>last(/Ciena 6500 2/optical.tx.baseline[{#PORTNAME}.OPOUT],#1)+2)

Recovery expression:
 | information |
| {#PORTNAME} LOW “Optical Return Loss” |
Optical Return Loss (ORL) is similar to SNR. The higher the ORL, the better. The minimum ORL is 30db. Anything lower than 30db indicates a fiber issue, such as a dirty connector or improper fiber mating.
 |
Expression: last(/Ciena 6500 2/optical.tx[{#PORTNAME}.ORL],#1)<30

Recovery expression:
 | warning |
| {#IFDESCR} DOWN (LLD) |
The operational status of this Ethernet interface is DOWN.
 |
Expression: last(/Ciena 6500 2/ethernet.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>1 and last(/Ciena 6500 2/ethernet.if.status[ifAdminStatus.{#SNMPINDEX}],#1:now-1s)=1

Recovery expression:
 | warning |
| {#PORTNAME} Optical Return Loss crossed baseline thresholds (LLD) |
The optical return loss it more than {$OPTICAL_VARIANCE}db from the baseline value. This could be due to a new fiber event or the baselines may need to be reset. First verify the optical path then decide weather to reset the baselines. The baseline value can be reset in the PMs on the Ciena shelf.
 |
Expression: (last(/Ciena 6500 2/optical.tx[{#PORTNAME}.ORL],#1)<last(/Ciena 6500 2/optical.tx.baseline[{#PORTNAME}.ORL],#1)-2) or (last(/Ciena 6500 2/optical.tx[{#PORTNAME}.ORL],#1)>last(/Ciena 6500 2/optical.tx.baseline[{#PORTNAME}.ORL],#1)+2)

Recovery expression:
 | information |
| {#PORTNAME} Optical Tx Power crossed baseline thresholds (LLD) |
The optical power level is more than {$OPTICAL_VARIANCE}db from the baseline value. This could be due to a new fiber event or the baselines may need to be reset. First verify the optical path then decide weather to reset the baselines. The baseline value can be reset in the PMs on the Ciena shelf.
 |
Expression: (last(/Ciena 6500 2/optical.tx[{#PORTNAME}.OPOUT],#1)<last(/Ciena 6500 2/optical.tx.baseline[{#PORTNAME}.OPOUT],#1)-2) or (last(/Ciena 6500 2/optical.tx[{#PORTNAME}.OPOUT],#1)>last(/Ciena 6500 2/optical.tx.baseline[{#PORTNAME}.OPOUT],#1)+2)

Recovery expression:
 | information |
| {#PORTNAME} LOW “Optical Return Loss” (LLD) |
Optical Return Loss (ORL) is similar to SNR. The higher the ORL, the better. The minimum ORL is 30db. Anything lower than 30db indicates a fiber issue, such as a dirty connector or improper fiber mating.
 |
Expression: last(/Ciena 6500 2/optical.tx[{#PORTNAME}.ORL],#1)<30

Recovery expression:
 | warning |
| {#PORTNAME} Optical Rx Power crossed baseline thresholds (LLD) |
The optical power level it more than {$OPTICAL_VARIANCE}db from the baseline value. This could be due to a new fiber event or the baselines may need to be reset. First verify the optical path then decide weather to reset the baselines. The baseline value can be reset in the PMs on the Ciena shelf.
 |
Expression: ((last(/Ciena 6500 2/optical.rx[{#PORTNAME}.OPIN],#1)<last(/Ciena 6500 2/optical.baseline[{#PORTNAME}.OPIN],#1)-2) or (last(/Ciena 6500 2/optical.rx[{#PORTNAME}.OPIN],#1)>last(/Ciena 6500 2/optical.baseline[{#PORTNAME}.OPIN],#1)+2))

Recovery expression:
 | information |
| {#IFDESCR} DOWN (LLD) |
The interface status is not UP for this DWDM transport interface. This indicates the DWDM wave is down and could be a result of a fiber cut.
 |
Expression: last(/Ciena 6500 2/net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>1 and last(/Ciena 6500 2/net.if.status[ifAdminStatus.{#SNMPINDEX}],#1:now-1s)=1

Recovery expression:
 | average |
| {#PORTNAME} has No Light (LLD) |
The last two values for “{#CHECKNAME}” is 0. The check reports 0db when the OSC circuit cannot determine the spanloss. This would indicate a loss of light.
 |
Expression: sum(/Ciena 6500 2/optical.osc.spanloss[{#PORTNAME}.{#CHECKNAME}],#2)=0 or last(/Ciena 6500 2/optical.osc.spanloss[{#PORTNAME}.{#CHECKNAME}],#1)<-44

Recovery expression:
 | high |
This template will discover and monitor various optical interfaces - mainly light levels and baselines and alert if light levels fall outside of VARIANCE macro. Also will report when OSC has no light and serve a clear indication that there is a fiber issue.
No MIBs required. Used OIDs.
No Dependencies - just enable SNMP with v2 community on the shelf and set SNMP_COMMUNITY macro in template.
Dustin Howard
| Name | Description | Default | Type |
|---|---|---|---|
| {$OPTICAL_VARIANCE} |
the allowed variance from baselines in db
 | 2 |
Text macro |
| {$SNMP_COMMUNITY} |
-
 | secret |
Text macro |
There are no template links in this template.
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Ethernet Interface Discovery |
-
 | SNMP agent |
ethernet.transport.if.discovery
Update: 1d;wd1h14
 |
| Shelf Inventory Discovery |
-
 | SNMP agent |
enventory.discovery
Update: 1d;wd1h8
 |
| Optical OSC Discovery |
-
 | SNMP agent |
optical.osc.discovery
Update: 1d;wd1h9
 |
| Optical AMP Tx Discovery |
-
 | SNMP agent |
optical.tx.discovery
Update: 1d;wd1h12
 |
| Optical AMP Rx Discovery |
-
 | SNMP agent |
optical.rx.discovery
Update: 1d;wd1h13
 |
| Optical Transport Interface Discovery |
-
 | SNMP agent |
optical.transport.if.discovery
Update: 1d;wd1h11
 |
| Optical OSC Spanloss Discovery |
-
 | SNMP agent |
optical.osc.spanloss.discovery
Update: 1d;wd1h10
 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Number of Warnings |
This is the number of warnings that currently exist at this node which may have one or more shelves.
 | SNMP agent |
ciena.warnings
Update: 5m
 |
| Software Version |
-
 | SNMP agent |
software.version
Update: 6h
 |
| Number of Critical Alarms |
This is the number of critical alarms that currently exist at this node which may have one or more shelves.
 | SNMP agent |
ciena.critical.alarms
Update: 5m
 |
| Number of Major Alarms |
This is the number of major alarms that currently exist at this node which may have one or more shelves.
 | SNMP agent |
ciena.major.alarms
Update: 5m
 |
| Device Uptime |
The time (in seconds) since the network management portion of the system was last re-initialized.
 | SNMP agent |
system.uptime
Update: 5m
 |
| Number of Minor Alarms |
This is the number of minor alarms that currently exist at this node which may have one or more shelves.
 | SNMP agent |
ciena.minor.alarms
Update: 5m
 |
| {#IFDESCR}: Bits Received |
The total number of bits per second received on the interface.
 | SNMP agent |
ciena6500.ethernet.if.bits.in[{#SNMPINDEX}]
Update: 5m

LLD
 |
| {#IFDESCR}: Bits Sent |
The total number of bits per second sent on the interface.
 | SNMP agent |
ciena6500.ethernet.if.bits.out[{#SNMPINDEX}]
Update: 5m

LLD
 |
| {#IFDESCR}: Ethernet Errors |
The average number of inbound packets per second that contained errors preventing them from being deliverable to a higher-layer protocol.
 | SNMP agent |
ciena6500.ethernet.if.errors.in[{#SNMPINDEX}]
Update: 5m

LLD
 |
| {#IFDESCR}: Admin status |
The administrative state of the interface.
 | SNMP agent |
ethernet.if.status[ifAdminStatus.{#SNMPINDEX}]
Update: 5m

LLD
 |
| {#IFDESCR}: Operational status |
The operational state of the interface.
 | SNMP agent |
ethernet.if.status[ifOperStatus.{#SNMPINDEX}]
Update: 5m

LLD
 |
| Serial Number: “{#DESCRIPTION}” in {#CONTAINER} MODEL-{#MODEL} |
The serial number for this module.
 | SNMP agent |
serial.number.[{#SNMPINDEX}]
Update: 1d

LLD
 |
| {#PORTNAME} “{#CHECKNAME}” |
The OSC received light level in dbm.
 | SNMP agent |
optical.osc[{#PORTNAME}.{#CHECKNAME}]
Update: 1m

LLD
 |
| {#PORTNAME} “Optical Transmit Power” baseline |
The baseline set on the shelf. This can be re-initialized when needed via site manager.
 | SNMP agent |
optical.tx.baseline[{#PORTNAME}.OPOUT]
Update: 5m

LLD
 |
| {#PORTNAME} “Optical Return Loss” baseline |
The baseline set on the shelf. This can be re-initialized when needed via site manager.
 | SNMP agent |
optical.tx.baseline[{#PORTNAME}.ORL]
Update: 5m

LLD
 |
| {#PORTNAME} “Optical Transmit Power” |
The optical transit power for this port in dbm.
 | SNMP agent |
optical.tx[{#PORTNAME}.OPOUT]
Update: 5m

LLD
 |
| {#PORTNAME} “Optical Return Loss” |
Optical Return Loss (ORL) is similar to SNR. The higher the ORL, the better.
 | SNMP agent |
optical.tx[{#PORTNAME}.ORL]
Update: 5m

LLD
 |
| {#PORTNAME} “Optical Receive Power” baseline |
The baseline set on the shelf. This can be re-initialized when needed via site manager.
 | SNMP agent |
optical.baseline[{#PORTNAME}.OPIN]
Update: 5m

LLD
 |
| {#PORTNAME} “Optical Receive Power” |
-
 | SNMP agent |
optical.rx[{#PORTNAME}.OPIN]
Update: 5m

LLD
 |
| {#IFDESCR}: Admin Status |
The administrative status of the port.
 | SNMP agent |
net.if.status[ifAdminStatus.{#SNMPINDEX}]
Update: 5m

LLD
 |
| {#IFDESCR}: Operational status |
The operational status of the port.
 | SNMP agent |
net.if.status[ifOperStatus.{#SNMPINDEX}]
Update: 5m

LLD
 |
| {#IFDESCR}: Optical Power Received |
The optical power received at this port in dbm.
 | SNMP agent |
net.if.status[opr.och.nend.rcv.{#SNMPINDEX}]
Update: 5m

LLD
 |
| {#IFDESCR}: Optical Power Transmitted |
The optical power transmitted at this port in dbm.
 | SNMP agent |
net.if.status[opr.och.nend.trmt.{#SNMPINDEX}]
Update: 5m

LLD
 |
| {#IFDESCR}: Post-FEC bit error rate |
Post-FEC bit error rate estimate, optical channel transport unit
 | SNMP agent |
net.if.status[post.fec.ber.{#SNMPINDEX}]
Update: 5m

LLD
 |
| {#IFDESCR}: Pre-FEC bit error rate |
Pre-FEC bit error rate, optical channel transport unit
 | SNMP agent |
net.if.status[pre.fec.ber.{#SNMPINDEX}]
Update: 5m

LLD
 |
| {#IFDESCR}: Uncorrected FEC block |
Uncorrected FEC blocks, Optical Transport Unit.
 | SNMP agent |
net.if.status[uncorrected.fec.block.{#SNMPINDEX}]
Update: 5m

LLD
 |
| {#PORTNAME} “{#CHECKNAME}” |
The span loss ont he receive fiber in db.
 | SNMP agent |
optical.osc.spanloss[{#PORTNAME}.{#CHECKNAME}]
Update: 1m

LLD
 |
| Name | Description | Expression | Priority |
|---|---|---|---|
| {#IFDESCR} DOWN |
The operational status of this Ethernet interface is DOWN.
 |
Expression: last(/Ciena 6500 2/ethernet.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>1 and last(/Ciena 6500 2/ethernet.if.status[ifAdminStatus.{#SNMPINDEX}],#1:now-1s)=1

Recovery expression:
 | warning |
| {#PORTNAME} has No Light |
The last two values for “{#CHECKNAME}” is 0. The check reports 0db when the OSC circuit cannot determine the spanloss. This would indicate a loss of light.
 |
Expression: sum(/Ciena 6500 2/optical.osc.spanloss[{#PORTNAME}.{#CHECKNAME}],#2)=0 or last(/Ciena 6500 2/optical.osc.spanloss[{#PORTNAME}.{#CHECKNAME}],#1)<-44

Recovery expression:
 | high |
| {#PORTNAME} Optical Rx Power crossed baseline thresholds |
The optical power level it more than {$OPTICAL_VARIANCE}db from the baseline value. This could be due to a new fiber event or the baselines may need to be reset. First verify the optical path then decide weather to reset the baselines. The baseline value can be reset in the PMs on the Ciena shelf.
 |
Expression: ((last(/Ciena 6500 2/optical.rx[{#PORTNAME}.OPIN],#1)<last(/Ciena 6500 2/optical.baseline[{#PORTNAME}.OPIN],#1)-2) or (last(/Ciena 6500 2/optical.rx[{#PORTNAME}.OPIN],#1)>last(/Ciena 6500 2/optical.baseline[{#PORTNAME}.OPIN],#1)+2))

Recovery expression:
 | information |
| {#IFDESCR} DOWN |
The interface status is not UP for this DWDM transport interface. This indicates the DWDM wave is down and could be a result of a fiber cut.
 |
Expression: last(/Ciena 6500 2/net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>1 and last(/Ciena 6500 2/net.if.status[ifAdminStatus.{#SNMPINDEX}],#1:now-1s)=1

Recovery expression:
 | average |
| {#PORTNAME} Optical Return Loss crossed baseline thresholds |
The optical return loss it more than {$OPTICAL_VARIANCE}db from the baseline value. This could be due to a new fiber event or the baselines may need to be reset. First verify the optical path then decide weather to reset the baselines. The baseline value can be reset in the PMs on the Ciena shelf.
 |
Expression: (last(/Ciena 6500 2/optical.tx[{#PORTNAME}.ORL],#1)<last(/Ciena 6500 2/optical.tx.baseline[{#PORTNAME}.ORL],#1)-2) or (last(/Ciena 6500 2/optical.tx[{#PORTNAME}.ORL],#1)>last(/Ciena 6500 2/optical.tx.baseline[{#PORTNAME}.ORL],#1)+2)

Recovery expression:
 | information |
| {#PORTNAME} Optical Tx Power crossed baseline thresholds |
The optical power level is more than {$OPTICAL_VARIANCE}db from the baseline value. This could be due to a new fiber event or the baselines may need to be reset. First verify the optical path then decide weather to reset the baselines. The baseline value can be reset in the PMs on the Ciena shelf.
 |
Expression: (last(/Ciena 6500 2/optical.tx[{#PORTNAME}.OPOUT],#1)<last(/Ciena 6500 2/optical.tx.baseline[{#PORTNAME}.OPOUT],#1)-2) or (last(/Ciena 6500 2/optical.tx[{#PORTNAME}.OPOUT],#1)>last(/Ciena 6500 2/optical.tx.baseline[{#PORTNAME}.OPOUT],#1)+2)

Recovery expression:
 | information |
| {#PORTNAME} LOW “Optical Return Loss” |
Optical Return Loss (ORL) is similar to SNR. The higher the ORL, the better. The minimum ORL is 30db. Anything lower than 30db indicates a fiber issue, such as a dirty connector or improper fiber mating.
 |
Expression: last(/Ciena 6500 2/optical.tx[{#PORTNAME}.ORL],#1)<30

Recovery expression:
 | warning |
| {#IFDESCR} DOWN (LLD) |
The operational status of this Ethernet interface is DOWN.
 |
Expression: last(/Ciena 6500 2/ethernet.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>1 and last(/Ciena 6500 2/ethernet.if.status[ifAdminStatus.{#SNMPINDEX}],#1:now-1s)=1

Recovery expression:
 | warning |
| {#PORTNAME} Optical Return Loss crossed baseline thresholds (LLD) |
The optical return loss it more than {$OPTICAL_VARIANCE}db from the baseline value. This could be due to a new fiber event or the baselines may need to be reset. First verify the optical path then decide weather to reset the baselines. The baseline value can be reset in the PMs on the Ciena shelf.
 |
Expression: (last(/Ciena 6500 2/optical.tx[{#PORTNAME}.ORL],#1)<last(/Ciena 6500 2/optical.tx.baseline[{#PORTNAME}.ORL],#1)-2) or (last(/Ciena 6500 2/optical.tx[{#PORTNAME}.ORL],#1)>last(/Ciena 6500 2/optical.tx.baseline[{#PORTNAME}.ORL],#1)+2)

Recovery expression:
 | information |
| {#PORTNAME} Optical Tx Power crossed baseline thresholds (LLD) |
The optical power level is more than {$OPTICAL_VARIANCE}db from the baseline value. This could be due to a new fiber event or the baselines may need to be reset. First verify the optical path then decide weather to reset the baselines. The baseline value can be reset in the PMs on the Ciena shelf.
 |
Expression: (last(/Ciena 6500 2/optical.tx[{#PORTNAME}.OPOUT],#1)<last(/Ciena 6500 2/optical.tx.baseline[{#PORTNAME}.OPOUT],#1)-2) or (last(/Ciena 6500 2/optical.tx[{#PORTNAME}.OPOUT],#1)>last(/Ciena 6500 2/optical.tx.baseline[{#PORTNAME}.OPOUT],#1)+2)

Recovery expression:
 | information |
| {#PORTNAME} LOW “Optical Return Loss” (LLD) |
Optical Return Loss (ORL) is similar to SNR. The higher the ORL, the better. The minimum ORL is 30db. Anything lower than 30db indicates a fiber issue, such as a dirty connector or improper fiber mating.
 |
Expression: last(/Ciena 6500 2/optical.tx[{#PORTNAME}.ORL],#1)<30

Recovery expression:
 | warning |
| {#PORTNAME} Optical Rx Power crossed baseline thresholds (LLD) |
The optical power level it more than {$OPTICAL_VARIANCE}db from the baseline value. This could be due to a new fiber event or the baselines may need to be reset. First verify the optical path then decide weather to reset the baselines. The baseline value can be reset in the PMs on the Ciena shelf.
 |
Expression: ((last(/Ciena 6500 2/optical.rx[{#PORTNAME}.OPIN],#1)<last(/Ciena 6500 2/optical.baseline[{#PORTNAME}.OPIN],#1)-2) or (last(/Ciena 6500 2/optical.rx[{#PORTNAME}.OPIN],#1)>last(/Ciena 6500 2/optical.baseline[{#PORTNAME}.OPIN],#1)+2))

Recovery expression:
 | information |
| {#IFDESCR} DOWN (LLD) |
The interface status is not UP for this DWDM transport interface. This indicates the DWDM wave is down and could be a result of a fiber cut.
 |
Expression: last(/Ciena 6500 2/net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>1 and last(/Ciena 6500 2/net.if.status[ifAdminStatus.{#SNMPINDEX}],#1:now-1s)=1

Recovery expression:
 | average |
| {#PORTNAME} has No Light (LLD) |
The last two values for “{#CHECKNAME}” is 0. The check reports 0db when the OSC circuit cannot determine the spanloss. This would indicate a loss of light.
 |
Expression: sum(/Ciena 6500 2/optical.osc.spanloss[{#PORTNAME}.{#CHECKNAME}],#2)=0 or last(/Ciena 6500 2/optical.osc.spanloss[{#PORTNAME}.{#CHECKNAME}],#1)<-44

Recovery expression:
 | high |


lang="en">
Bank Home Page
| Welcome User
Accounts
Loans
Log Out
Account
Balance
Deposit
Withdraw
Checking
$2200
Savings
$1000
$ Apply For Loan
×
Close
Apply for Loan
Name:
Email:
Phone Number:
Address:
Login ID:
Enter Password:


You can use the below to test your script. This is a utility that POSTs to your endpoint and simulates an incoming request. Use the mic button to talk and listen to your script.
{{responseSpeech}}
Your Violet Voice App/Conversation needs to be registered so that Alexa knows about it.
You can find it here: https://developer.amazon.com/alexa/console/ask
If you don't have an account, register as a new developer.
Amazon Developer Accounts are different from Amazon Web Services accounts - the former are around capabilities where Amazon might need to pay you while the later focus on on capabilities where Amazon might need to charge you.
Skills are created by going to the 'Your Alexa Consoles' menu option, clicking on Skills, and then 'Create Skill'. After that you will need to enter a name for the skill, click on next, and select to create a custom skill.
On the left side of the navigation, under 'Interaction Model', click on 'JSON Editor' (it is the last item). Copy the value below and 'Save Model'.
Beyond the interaction model there are a few key settings to be filled:
Once the model has been built you can now test the skill. You will need to click on the 'Test' tab and enable testing.
You only need to Launch the skill when you want others to be able to discover it without following the above steps.
Your Violet Voice App/Conversation needs to be registered so that Dialogflow knows about it.
You can find it here: https://console.dialogflow.com/
Agents are created easily by clicking on the 'Create Agent' button on the left navigation, entering a name for the agent and clicking on next.
If the agent creation fails, please try verifying that you have a Google Cloud account setup (you can access it here: https://console.cloud.google.com/)
On the left side of the navigation, next to the project name, click on the gear symbol to get the agent configuration information. From there click on the 'Export and Import' tab and click on the 'Import From Zip' button. You can access the zip file here:
You should now be ready to test the agent on Dialogflow. To do that:
Dialogflow Agents are used to have Voice Apps running in Google Home. These are done by creating Actions on the Google Assistant. To do this:


{% extends "layout.html" %} {% load uni_form_tags %} {% block title %}Your Clients{% endblock %} {% block content %}
| Name | Credentials | ||
|---|---|---|---|
| {{ client.name }} | Key: | {{ client.key }} | |
| Secret: | {{ client.secret }} |
Go to the homepage to authorize these clients to request information on your behalf.
{% else %}You have no clients. To create one just put a name in the form below - for example, “My Test Client”
{% endif %}


| Modifier and Type | Field and Description |
|---|---|
static Matrix |
Final_Simple_Net.testP
MNIST test set labels
|
static Matrix |
Final_Simple_Net.testX
MNIST test set images
|
static Matrix |
Final_Simple_Net.trainP
MNIST training set labels
|
static Matrix |
Final_Simple_Net.trainX
MNIST training set images
|
| Modifier and Type | Method and Description |
|---|---|
static Matrix |
Matrix.acti(Matrix M)
Use the activation function on a single matrix.
|
static Matrix |
Matrix.acti(Matrix M,
int family)
Use the activation function on a single matrix.
|
static Matrix |
Matrix.actiDe(Matrix M)
Use the activation function derivative on a single matrix.
|
static Matrix |
Matrix.actiDe(Matrix M,
int family)
Use the activation function derivative on a single matrix.
|
static Matrix |
Matrix.add(Matrix M,
Matrix N)
Adds 2 matrix together and returns the resulting matrix.
|
static Matrix |
Dir.addBias(Matrix inp)
Adds a column containing 1 to a matrix.
|
static Matrix |
Dir.addBias(Matrix inp,
float bias)
Adds a column containing a specified floating point value to a matrix.
|
static Matrix |
Matrix.blankMatrix(int row,
int column)
Creates a blank matrix filled with 0.0 values
|
Matrix |
Matrix.clone()
Clones the existing matrix
|
static Matrix |
Matrix.clone(Matrix matrix)
Clones a matrix.
|
static Matrix[] |
Matrix.clone(Matrix[] matricies)
Clones an array of matrix.
|
Matrix[] |
Network.cloneSynapses()
Creates a clone of this network's synapses.
|
static Matrix[] |
Network.cloneSynapses(Network net)
Creates a clone of the array of synapses from a given network.
|
static Matrix |
Matrix.dotp(Matrix M,
Matrix N)
Calculates the dot product of two matrix.
|
Matrix[] |
Network.exportSyns()
Export the synapses as an array of matrix.
|
static Matrix |
Matrix.fc(int index,
Matrix M,
Matrix N)
Performs an operation on the 2 matrix passed in.
|
static Matrix |
Matrix.fs(InfoPacket data,
Matrix M)
Performs an operation on 1 matrix passed in.
|
static Matrix |
Matrix.fs(int index,
Matrix M)
Performs an operation on 1 matrix passed in.
|
static Matrix |
Matrix.gaussianMatrix(int row,
int column)
Generates a matrix randomized according to the Gaussian curve.
|
static Matrix |
Matrix.gaussianMatrix(int row,
int column,
float deviation)
Generates a matrix randomized according to the Gaussian curve.
|
static Matrix |
Matrix.gaussianMatrix(int row,
int column,
float expectedValue,
float deviation)
Generates a matrix randomized according to the Gaussian curve.
|
static Matrix |
Env.imageToMatrix(processing.core.PImage image)
Converts an image to a matrix.
|
static Matrix |
Env.imageToMatrix(processing.core.PImage image,
double bias)
Converts an image to a matrix.
|
static Matrix |
Env.imageToMatrix(processing.core.PImage image,
double lowerBound,
double upperBound)
Converts an image to a matrix.
|
static Matrix |
Env.imageToMatrix(processing.core.PImage image,
double lowerBound,
double upperBound,
double bias)
Converts an image to a matrix.
|
static Matrix |
Env.imageToMatrix(processing.core.PImage image,
float lowerBound,
float upperBound,
float bias)
Converts an image to a matrix.
|
static Matrix[] |
Dir.importMatricies(java.lang.String file)
Imports multiple matrix into a plain text file.
|
static Matrix[] |
Dir.importSynx(java.lang.String path)
Imports an array of matrix from a .synx file.
|
static Matrix |
Matrix.minus(Matrix M)
Negates all values inside the matrix.
|
Matrix |
Matrix.mul(float a)
Multiplies this matrix with a constant and return itself.
|
static Matrix |
Matrix.mul(Matrix M,
float value)
Multiplies a matrix with a constant.
|
static Matrix |
Matrix.mul(Matrix M,
Matrix N)
Multiply 2 matrix pair-wise and returns the resulting matrix.
|
static Matrix |
Matrix.oneMinus(Matrix M)
Negates all values inside the matrix and plus one to all values
|
static Matrix |
Matrix.randomMatrix(int row,
int column)
Generates a matrix randomized evenly in range (-1, 1).
|
static Matrix |
Matrix.randomMatrix(int row,
int column,
float bound)
Generates a matrix randomized evenly between some boundaries.
|
static Matrix |
Matrix.randomMatrix(int row,
int column,
float lowerBound,
float upperBound)
Generates a matrix randomized evenly between some boundaries.
|
static Matrix[] |
Dir.readMatricies(java.io.FileInputStream stream)
Reads an array of matrix from a stream.
|
static Matrix |
Dir.readMatrix(java.io.FileInputStream stream)
Reads a matrix from a stream.
|
Matrix |
Matrix.setColumn(int index,
float value)
Sets an entire column of this matrix to 1 particular value.
|
static Matrix |
Matrix.setColumn(Matrix matrix,
int index,
float value)
Sets an entire column of a matrix to 1 particular value.
|
Matrix |
Matrix.setRow(int index,
float value)
Sets an entire row of this matrix to 1 particular value.
|
static Matrix |
Matrix.setRow(Matrix matrix,
int index,
float value)
Sets an entire row of a matrix to 1 particular value.
|
static Matrix |
Matrix.sign(Matrix matrix)
Replaces every value in the matrix with the sign of that value.
|
Matrix |
Matrix.slash(float location,
float length)
Slashes the matrix using relative location and length.
|
Matrix |
Matrix.slash(int start,
int length)
Slashes the matrix using absolute location and length.
|
static Matrix |
Matrix.stackMatrix(Matrix a,
Matrix b)
Stacks the 2nd matrix to the 1st matrix.
|
static Matrix |
Matrix.sub(Matrix M,
Matrix N)
Subtracts 2 matrix and returns the resulting matrix.
|
Matrix |
Matrix.T()
Gets the transpose of the matrix
|
static Matrix |
Matrix.tweak(Matrix matrix)
Introduces Gaussian noise with a deviation of 1 into the matrix.
|
static Matrix[] |
Matrix.tweak(Matrix[] matricies)
Introduces Gaussian noise with a deviation of 1 into the matrix
|
static Matrix[] |
Matrix.tweak(Matrix[] matricies,
float deviation)
Introduces Gaussian noise into an array of matrix.
|
static Matrix |
Matrix.tweak(Matrix matrix,
float deviation)
Introduces Gaussian noise into the matrix.
|
| Modifier and Type | Method and Description |
|---|---|
static float |
Network.absoluteError(Matrix D)
Splits the matrix into multiple rows and calculates the average over-the-rows
error by summing the absolute value of the values in a row.
|
float |
Network.absoluteError(Matrix X,
Matrix P)
Calculates the absolute error of a sample containing 2 matrix.
|
static Matrix |
Matrix.acti(Matrix M)
Use the activation function on a single matrix.
|
static Matrix |
Matrix.acti(Matrix M,
int family)
Use the activation function on a single matrix.
|
static Matrix |
Matrix.actiDe(Matrix M)
Use the activation function derivative on a single matrix.
|
static Matrix |
Matrix.actiDe(Matrix M,
int family)
Use the activation function derivative on a single matrix.
|
static Matrix |
Matrix.add(Matrix M,
Matrix N)
Adds 2 matrix together and returns the resulting matrix.
|
static Matrix |
Dir.addBias(Matrix inp)
Adds a column containing 1 to a matrix.
|
static Matrix |
Dir.addBias(Matrix inp,
float bias)
Adds a column containing a specified floating point value to a matrix.
|
Network |
Network.batch(Matrix lX,
Matrix lP)
Sets up batch learning or mini-batch with the default batch size equaling the
sample's length.
|
static float |
Matrix.calcAccuracy(Matrix Y,
Matrix P)
Gets the similarity of the two matrix.
|
static float |
Matrix.calcAccuracy(Matrix Y,
Matrix P,
boolean highestIndex)
Gets the similarity of the two matrix.
|
static float |
Matrix.calcConfidence(Matrix Y)
Splits the matrix into individual rows and averages the confidence on all possible rows.
|
static float |
Matrix.calcConfidence(Matrix Y,
int family)
Splits the matrix into individual rows and averages the confidence on all possible rows.
|
static Matrix |
Matrix.clone(Matrix matrix)
Clones a matrix.
|
static Matrix[] |
Matrix.clone(Matrix[] matricies)
Clones an array of matrix.
|
float |
Network.crossEntropyError(Matrix D)
Splits the matrix into multiple rows and calculates the average cross-entropy
error of the rows.
|
static float |
Network.crossEntropyError(Matrix D,
float lowerBound,
float upperBound)
Splits the matrix into multiple rows and calculates the average cross-entropy
error of the rows.
|
float |
Network.crossEntropyError(Matrix X,
Matrix P)
Calculates the cross-entropy error of a sample containing 2 matrix.
|
float |
Network.crossEntropyError(Matrix X,
Matrix P,
float lowerBound,
float upperBound)
Calculates the cross-entropy error of a sample containing 2 matrix.
|
processing.core.PGraphics |
Dir.displayNumbers(Matrix X)
Displays the data in a matrix as an image with some default values.
|
processing.core.PGraphics |
Dir.displayNumbers(Matrix X,
int resolution,
int width,
int height)
Displays the data in a matrix as an image.
|
static Matrix |
Matrix.dotp(Matrix M,
Matrix N)
Calculates the dot product of two matrix.
|
float |
Network.error(Matrix D)
Calculates the cost function based on one of the existing cost functions:
Network.quadraticError(Matrix) , Network.absoluteError(Matrix)
or Network.crossEntropyError(Matrix, float, float) . |
float |
Network.error(Matrix X,
Matrix P)
Calculates the error of a sample containing 2 matrix.
|
static void |
Dir.export3d(processing.core.PApplet proc,
_Float progress,
Network net,
Matrix lX,
Matrix lP,
processing.core.PVector synNum,
processing.core.PVector p0,
processing.core.PVector p1,
java.lang.String path) |
static void |
Dir.export3d(processing.core.PApplet proc,
_Float progress,
Network net,
Matrix lX,
Matrix lP,
processing.core.PVector synNum,
processing.core.PVector p0,
processing.core.PVector p1,
java.lang.String path,
processing.core.PVector shift)
Exports the 3d error graph.
|
static void |
Dir.export3d(processing.core.PApplet proc,
_Float progress,
Network net,
Matrix lX,
Matrix lP,
processing.core.PVector synNum,
processing.core.PVector p0,
processing.core.PVector p1,
java.lang.String path,
processing.core.PVector shift,
int tag)
Exports the 3d error graph.
|
static void |
Dir.export3d(processing.core.PApplet proc,
_Float progress,
Network net,
Matrix lX,
Matrix lP,
java.lang.String path) |
static void |
Dir.export3d(processing.core.PApplet proc,
_Float progress,
Network net,
Matrix lX,
Matrix lP,
java.lang.String path,
processing.core.PVector shift) |
static void |
Dir.exportMatricies(java.lang.String file,
Matrix[] M)
Exports multiple matrix into a plain text file.
|
static void |
Dir.exportSynx(java.lang.String path,
Matrix[] M)
Exports an array of matrix onto a .synx file.
|
static Matrix |
Matrix.fc(int index,
Matrix M,
Matrix N)
Performs an operation on the 2 matrix passed in.
|
Network |
Network.forcedImportSyns(Matrix[] M)
Force-import an array of matrix into the network's synapses.
|
static Matrix |
Matrix.fs(InfoPacket data,
Matrix M)
Performs an operation on 1 matrix passed in.
|
static Matrix |
Matrix.fs(int index,
Matrix M)
Performs an operation on 1 matrix passed in.
|
Network |
Network.importSyns(Matrix[] M)
Import an array of matrix into the network's synapses.
|
static void |
Dir.loadMNIST(java.lang.String path,
int maxSize,
_Float progress,
Matrix ans)
Reads from stream a number of MNIST images.
|
static int |
Matrix.matrixCost(Matrix M)
Calculates the cost when compress the matrix using the 2nd schema according to this documentation.
|
Network |
Network.miniBatch(Matrix lX,
Matrix lP)
Sets up mini-batches with the default batch size of 150.
|
Network |
Network.miniBatch(Matrix lX,
Matrix lP,
int setPerBatch)
Sets up mini-batchs.
|
static Matrix |
Matrix.minus(Matrix M)
Negates all values inside the matrix.
|
static Matrix |
Matrix.mul(Matrix M,
float value)
Multiplies a matrix with a constant.
|
static Matrix |
Matrix.mul(Matrix M,
Matrix N)
Multiply 2 matrix pair-wise and returns the resulting matrix.
|
static Matrix |
Matrix.oneMinus(Matrix M)
Negates all values inside the matrix and plus one to all values
|
static float |
Network.quadraticError(Matrix D)
Splits the matrix into multiple rows and calculates the average quadratic
error of the rows.
|
float |
Network.quadraticError(Matrix X,
Matrix P)
Calculates the quadratic error of a sample containing 2 matrix.
|
static Matrix |
Matrix.setColumn(Matrix matrix,
int index,
float value)
Sets an entire column of a matrix to 1 particular value.
|
static Matrix |
Matrix.setRow(Matrix matrix,
int index,
float value)
Sets an entire row of a matrix to 1 particular value.
|
static Matrix |
Matrix.sign(Matrix matrix)
Replaces every value in the matrix with the sign of that value.
|
void |
Matrix.stack(Matrix a)
Stacks another matrix onto the existing one.
|
static Matrix |
Matrix.stackMatrix(Matrix a,
Matrix b)
Stacks the 2nd matrix to the 1st matrix.
|
Network |
Network.stochastic(Matrix lX,
Matrix lP)
Sets up stochastic learning or mini-batch with the default batch size of 1.
|
static Matrix |
Matrix.sub(Matrix M,
Matrix N)
Subtracts 2 matrix and returns the resulting matrix.
|
Network |
Network.testSet(Matrix X,
Matrix P)
Sets up the test set samples that the network will not train with but will
use to record the performance.
|
static Matrix |
Matrix.tweak(Matrix matrix)
Introduces Gaussian noise with a deviation of 1 into the matrix.
|
static Matrix[] |
Matrix.tweak(Matrix[] matricies)
Introduces Gaussian noise with a deviation of 1 into the matrix
|
static Matrix[] |
Matrix.tweak(Matrix[] matricies,
float deviation)
Introduces Gaussian noise into an array of matrix.
|
static Matrix |
Matrix.tweak(Matrix matrix,
float deviation)
Introduces Gaussian noise into the matrix.
|
static void |
Dir.writeMatricies(java.io.FileOutputStream stream,
Matrix[] M)
Writes an array of matrix onto a stream.
|
static void |
Dir.writeMatrix(java.io.FileOutputStream stream,
Matrix M)
Writes a matrix onto a stream.
|
static void |
Dir.writeMatrix(java.io.FileOutputStream stream,
Matrix[] M)
Writes an array of matrix onto a stream.
|


you are here: home > explore > Brain Development
The brain grows at an amazing rate during development. At times during brain development, 250,000 neurons are added every minute! At birth, a person's brain will have almost all the neurons that it will ever have. The brain continues to grow for a few years after a person is born and by the age of 2 years old, the brain is about 80% of the adult size.
You may wonder, "How does the brain continue to grow, if the brain has most of the neurons it will get when you are born?". The answer is in glial cells. Glia continues to divide and multiply. Glia carries out many important functions for normal brain function including insulating nerve cells with myelin. The neurons in the brain also make many new connections after birth.
The nervous system develops from embryonic tissue called the ectoderm. The first sign of the developing nervous system is the neural plate that can be seen at about the 16th day of development. Over the next few days, a "trench" is formed in the neural plate - this creates a neural groove. By the 21st day of development, a neural tube is formed when the edges of the neural groove meet. The rostral (front) part of the neural tubes goes on to develop into the brain and the rest of the neural tube develops into the spinal cord. Neural crest cells become the peripheral nervous system.
At the front end of the neural tube, three major brain areas are formed: the prosencephalon (forebrain), mesencepalon (midbrain) and rhombencephalon (hindbrain). By the 7th week of development, these three areas divide again. This process is called encephalization.
AGE BW - Male (grams) BW - Female (grams) -------- ----------------- ----------------- Newborn 380 360 1 year 970 940 2 years 1,120 1,040 3 years 1,270 1,090 10-12 years 1,440 1,260 19-21 years 1,450 1,310 56-60 years 1,370 1,250 81-85 years 1,310 1,170
(Data from Dekaban, A.S. and Sadowsky, D., Changes in brain weights during the span of human life: relation of brain weights to body heights and body weights, Ann. Neurology, 4:345-356, 1978)
The top graph on the left shows the brain weights of
males and females at different ages. The bottom graph shows the brain
weight to total body weight ratio (expressed as a percentage). The adult
brain makes up about 2% of the total body weight.
(Data from Dekaban, A.S. and Sadowsky, D., Changes
in brain weights during the span of human life: relation of brain
weights to body heights and body weights, Ann. Neurology,
4:345-356, 1978)
DID YOU KNOW? Touch is the first sense to develop. The developing fetus responds to touch of the lips and cheeks by 8 weeks and to other parts of its body at 14 week. The sense of taste may develop by 12 weeks and that of sound at 22-24 weeks. (Reference: Hepper, P., "Unraveling our beginnings", The Psychologist, 18:474-477, 2005.)
Copyright © 1996-2015, Eric H. Chudler, University of Washington


Here are some interactive projects I have made for web browsers. Clicking on the links below will change what project appears in the frame. I recommend checking out the projects that I've starred.
Classic dos games for smart fridges/other devices
*
autonomous navigation agent demo 1
autonomous navigation agent demo 2
Cellular automata pattern generator(click demo to randomize pattern)
Cursor fountain 2d water physics demo
*
perlin noise 2d landscape generator
passive cursor-following navigational intelligence
'line defender' game I made
perlin noise map generator
*
procedural paint splats
*
particle collision simulation with groundwater absorption
Procedural random wind generation
*
"beach ball" 3-d newtonian physics simulation(hold mouse to drop ball)


{% extends "index.html" %} {% block title %}Sign Up{% endblock %} {% block page_content %}
Keep track of the movies your friends recommend.
{{ error }}


This is where chatbots come in.They can provide answers to any number of questions, whether about class scheduling or on the class subject. All the student has to do is type in their question and the chatbot will reply within seconds with valuable information
Students can feel completely comfortable and anonymous, as well as confidence that they will get the information they seek. .They can offer students a pleasant and engaging conversation.they can be built to allow individuals to rate their service and ask for additional help.
Teachers can see the chat history, allowing them to identify areas that they may want to concentrate more on in class. Additionally, they can view questions that the chatbot was not able to answer effectively, and then reach out to the individual student to provide a more accurate answer.


8 Things Irish Fans Can Do To Disrupt Denmark Ahead Of Crunch Qualifier
by Balls TeamIn the volcanic fallout from the playoff defeat to France, Irish fans united in righteous anger and tried to get back at the French. Some of this didn't really work. One irate caller phoned Joe Duffy and called for a boycott of Cuisine de France.
This bold call to arms was sadly undermined by the fact that it is an Irish company. So now is a time to rectify our mistakes.
While that night in Paris was ten years ago, we have a much more recent history with Denmark. This is a team who hammered us in a World Cup play-off two years ago, and one that has hardly been the complimentary of Ireland in the intervening 24 months.
We've had enough. If you want to rattle the Danes ahead of tomorrow night, this is the way to go about it.
Shout back at a Viking Splash Tour
For too long the symbol of the warmongering and imperial Scandanavians, the Viking Splash Tour, has been allowed to insolently tear about the streets of Dublin, wantonly shouting at unsuspecting pedestrians, cyclists, and news reporters. Now is the time to take a stand.
So to you, the noble Irish fan, we beseech you to take arms against this sea-faring trouble and roar back. (The wearing of novelty hats for this is optional).
Picket Dublinia
For too long Dublinia has been allowed to spread its (admittedly historically accurate, educational and interactive) Viking propaganda unhindered.
Satirise the legacy of the Danish Nobel Prize Winning Physicist Neils Bohr
How about we rename him Neils Bore? That'll get to them.
Disabuse Great Danes of their arrogance and superiority complex
They are a fine dog, but worthy of the word 'great'? From henceforth this breed of dog shall be known as a No Great Shakes Dane.
Quietly invade their television shows
Motion to replace the knitted jumpers in The Killing with Aran Jumpers.
Invite Caroline Wozniacki to a party but revoke the invite at the eleventh hour
Sorry. Too easy.
Move the game to the Cricket Club in Clontarf
It might unnerve them.
Declare war on them (again)
You may be unaware of this, but there has been an order on the Irish statute books declaring war on Denmark since 1666. The then Minister for Brendan Howlin launched a consultation process in 2014 aiming to get rid of more than 4,500 antiquated orders and laws dating from before 1820, with the declaration of war on Denmark among them.
We're not sure whether or not they were ultimately removed, so we could either reinstate that order for a few weeks or, if it's still there, underline it a bit.


{% extends 'tube/bases/base.html' %}
{% block content %}
{{ channel.name }}
Another installment of the really cool vlog. Please like and share the video. Subscribe and activate notifications so you never miss an upload. Follow on social media etc.


Hello, world! I'm a developer and problem-solver.
Résumé
Education
Carnegie Mellon University (Robotics Institute)
2020 - 2021
Computer Vision, M.S.
Pittsburgh, PA
Hong Kong University of Science and Technology
2015 - 2020
Computer Science, B.S. | First Class Honor
Business Management, B.B.A. | First Class Honor
Hong Kong, China
IESE Business School
2020
Enterpreneurship/ Entrepreneurial Studies
(Virtual) Barcelona, Spain
Peking University
Fall 2018
Academic Exchange, Guanghua School of Management
Beijing, China
ETH Zürich
Fall 2017
Academic Exchange, Computer Science
Zürich, Switzerland
Industrial Experience
Facebook Reality Lab
Jan. 2021 - Dec. 2021
Research Collaborator
Pittsburgh, PA
Investigated neural rendering models’interpolating capacity of viewpoint and expression on real-time face reconstruction.
OpenGLPyTorch3DNV-DiffrastVAENeural RenderingGit
Tencent Youtu Lab
Jan. 2019 - Feb. 2019
Software Engineering Intern
Shenzhen, China
Documented data collection rules for preserving data-balanced human detection dataset for localization algorithm training; Deployed YOLO3-based neural network model using PyTorch for human attribute localization on mobile devices
YOLO3PyTorchMobileNetObject Detection
Da-Jiang Innovations
May 2018 - Sep. 2018
Software Engineering & Algorithm Intern
Shenzhen, China
Established a hierarchical and extendable robotics vehicles dataset (20k+ images) for training car detection system; Developed an AR live-stream car detection system with C & C++ for judging system in DJI’s 2019 RoboMaster Competition;
Applied neural network with YOLO3 as backbone and model compression via mobileNet, network pruning and model
quantization, achieving in 3x faster and 15x smaller compared to original working model
OPENCVYOLO3TensorFlowDarknetMobileNetObject DetectionNetwork PrunningModel Quantization
Awards
Cyberport Creative Micro Fund Grant
2021
Cyberport University Partnership Programme
Cyberport, Hong Kong
Bronze
2020
Hong Kong ICT Awards: Student Innovation Award
OGCIO, Hong Kong
Gold
2019
FinTech Awards
ET Net
4th Place
2016
International MATE ROV Competition
NASA Robotics
Champion
2016
IET/MATE Hong Kong Underwater Robot Challenge
IET Hong Kong
Project
AR Teeth
Swift developer and Project Manager on building an Augmented Reality APP for aesthetic dentistry. This project will be deployed to dentist clinic to bridge the gap between the aesthetic perception of dentists and clients via displaying the real-time visual effect.
Expected to be released on Sep 2021
SwiftAR KitFigma
SIGMA
Gamified Financial Education & Risk Assessment App
Sigma is an award-winning APP in matching ready millennial clients with investment vehicles that best suit their risk preferences, predominantly focuses on gamification of client onboarding and financial intelligence & sentiment analysis.
Presentation Deck
Netify
HAA500 (HKUST)
Human-Centric Atomic Action Dataset with Curated Videos
As an undergraduate researcher supervied by Prof. Chi-Keung Tang and Dr. Yu-Wing Tai Built a human-centric atomic action dataset including 500 fine-grained and hierarchical classes with JavaScript to mitigate issues of coarse class, noisy content and human occlusion for improving performance of action recognition in videos.
Paper | Dataset
Action RecognitionAtomic Action
Anchor-free Object Detection (Princeton)
As an undergraduate researcher supervied by Prof. Jia Deng on establishing training and evaluation pipeline of CornerNet on Open Images dataset with PyTorch from scratch and applied data rebalancing and multi-stages zoom-in to handle data imbalance, crowded scenes, and non-exhaustive data labeling. Achieved best anchor-free detectors (mAP: 58.1%) in 2019 Open Images Challenge-Object Detection (ICCV)
CornerNetOpen ImagesOne-stage Detector
Automobiles and Electric Vehicle (Harvard)
As an undergraduate researcher supervied by Prof. Evelyn Hu, working on designing a simple electric circuit system and a car avoidance function using C++ for personal electric vehicles.
Press
PEVFusion 360