UKCloud Limited (“UKC”) and Virtual Infrastructure Group Limited (“VIG”) (together “the Companies”) – in Compulsory Liquidation
On 25 October 2022, the Companies were placed into Liquidation with the Official Receiver appointed as Liquidator and J Robinson and A M Hudson simultaneously appointed as Special Managers to manage the liquidation process on behalf of the Official Receiver.
Further information regarding the Liquidations can be found here: https://www.gov.uk/government/news/virtual-infrastructure-group-limited-and-ukcloud-limited-information-for-creditors-and-interested-parties
Contact details:
For any general queries relating to the Liquidations please email<EMAIL_ADDRESS>For customer related queries please email<EMAIL_ADDRESS>For supplier related queries please email<EMAIL_ADDRESS>UKCloud for Oracle Software Service Scope
Important
UKCloud for Oracle Software has been retired from sale by UKCloud. We'll continue to support all existing customers who are using this service, however, we are no longer providing this service for new workloads. This article provides existing UKCloud for Oracle Software customers with access to support documentation and we'll continue to update it as required. For new Oracle requests, contact your Client Director or Service Delivery Manager.
About this document
This document describes the boundaries of the UKCloud for Oracle software service, along with the division of responsibilities between UKCloud and the customer, to facilitate the provisioning and ongoing use of the service.
About UKCloud for Oracle Software
The UKCloud for Oracle Software service provides a secure, scalable and cost-effective platform for hosting Oracle virtual machines (OVMs) of various sizes.
You can use the platform to build new services quickly and securely; and migrate, augment or transform existing Oracle-based applications. The platform is immediately available so you can provision and scale OVMs in minutes.
Service architecture
Your UKCloud service architecture is as follows:
Company. Your contract with UKCloud is associated with a company, which provides a single owner for the contract, regardless of how many accounts are created.
Account. We use accounts to separate financial ownership. An account could represent an organisation, a customer contract, or a specific project. An account can also have several UKCloud services associated with it, such as UKCloud for Oracle, Cloud Storage and UKCloud for OpenStack.
You can also use accounts to separate users based on access requirements or permissions.
Organisation. This represents your UKCloud for Oracle Software service inside Oracle Enterprise Manager and on the UKCloud Portal. There is a 1:1 mapping of service to Organisation.
Oracle Tenant. An Oracle Tenant is where you define your workload type and build your OVMs. You can create Oracle Tenants by raising a service request via the My Calls section of the UKCloud Portal.
Service configuration
The UKCloud for Oracle Software infrastructure is uncontended and configured to optimise the performance and availability of Oracle workloads. There is only one service configuration on the UKCloud for Oracle Software platform, ensuring that OVMs are pinned to cores to stop OVM movement that would unbalance applications.
Customers can configure OVMs by the number of cores, and amount of memory and storage needed. OVMs can be reconfigured to adjust resources in line with changing performance requirements.
VM creation and sizing increases are currently available via service request to ensure that the platform remains balanced — this is due to the core-pinning technology that Oracle OVM uses. You'll need to submit a service request via the My Calls section of the UKCloud Portal with the VM details, including resource allocation, and we'll create the VM or change the size of a VM. For more information, see Oracle cloud self-service functionality.
Full details of the available service options are outlined in the Service Scope.
Storage options
All storage is persistent and resilient to local hardware failures. Multiple storage options can be used to support different aspects of the application.
Tier 1. Fast storage ideal for data warehouses, fast transactional databases or randomly executing workloads.
Tier 2. General all-purpose storage, suitable for systems with human interactions or predictable work patterns.
Cloud Storage. Ideal for serving media content or as a medium-term repository; can be used to store Recovery Manager (RMAN) backups.
Storage policies
We provide you with access to two block storage policies: tier 1 and tier 2.
We will initially provide you with a tier 2 storage policy, however you can request tier 1 storage be added to your Oracle Tenant so you can create additional disks with tier 1 storage on your OVMs.
VM templates come with a 50GiB system disk and a secondary disk (equivalent to the size of the RAM associated with the OVM - up to 16GiB). These virtual disks are mapped from the tier 2 VM repository by default.
For installations of Oracle apps on top of the OS, it's best to have separate non-OS virtual disks which are then mapped to mountpoints. The sizing requirements/recommendations for the non-OS storage can be found on the official Oracle installation guides and they can differ from version to version.
You'll need to take into consideration future data growth while planning capacity, as this would also reflect on the capacity required for backups.
We do not guarantee storage performance, as it can be affected by many factors.
We do not provide IOPS figures for our storage offerings.
Workloads can use multiple storage profiles.
Protection
UKCloud for Oracle Software does not include any infrastructure-level backup or disaster recovery functionality. However, the underpinning infrastructure supports native Oracle protection technologies such as Data Guard and RMAN.
UKCloud's Cloud Storage can be used as an S3-addressable target for Oracle protection technologies.
Service availability
UKCloud for Oracle Software offers an SLA guarantee of 99.95% availability for VMs without high availability (HA) enabled.
VMs with HA enabled have an SLA of 99.99%. Having HA enabled will not consume any additional resource on the platform, and is therefore free-of-charge, however, as this setting is not enabled by default, you must configure this through the UI. For more information, see How to enable high availability for your Oracle VMs.
You are entitled to claim Service Credits for outages to services that take you out of the SLA. For more about how we calculate SLAs, see the SLA Definition document.
Our SLA does not cover faults within your control, such as client application issues, or faults within external connectivity providers (for example, internet, PSN or HSCN).
Service background
UKCloud for Oracle Software is underpinned by Oracle compute infrastructure. UKCloud manage the physical infrastructure and utilise our partner, Infomentum, to provide support and management from the hypervisor level and above.
Infomentum will provision your Oracle Tenant environment and UKCloud will present it to you through the Oracle Enterprise Manager.
VM creation is currently available via service request to ensure that the platform remains balanced — this is due to the core-pinning technology that Oracle OVM uses. You'll need to submit a service request via the My Calls section of the UKCloud Portal with the VM details, including resource allocation, and we'll create the VM. You can then manage the created VM. You must also raise a service request to change the size of a VM. For more information, see Oracle cloud self-service functionality.
All service requests will be triaged by UKCloud. We reserve the right to escalate a request to Infomentum for support. If you have not have a managed service contract with Infomentum, please do not contact them directly.
UKCloud actively capacity-manages the cloud platform to ensure you have access to the resources you request.
The service is only available in Corsham.
We control the deployed versions of technology on the platform. This covers internal platform-supporting technologies, and any technology versions available to you.
Internally this includes, but isn't limited to, the Oracle Virtual Machine Manager and Oracle Virtual Machine Server versions, and the hardware version of the platform.
Externally this includes the available versions of the NSX Edge and Oracle Enterprise Manager.
You can make additional configurations inside an OVM (such as implementing third-party software technologies). We do not support customer implementations inside a VM.
Operating systems
UKCloud for Oracle Software includes the base OVM platform licences, which provide VM containers that meet Oracle's definition of hard partitioning.
Our service does not include licences for the Oracle applications and databases you choose to run.
As the underlying platform is powered by OVM technology, you can either transfer your existing licences, or purchase new licences based on the quantity of cores you allocate within each VM. Please note that UKCloud does not have the functionality to provide Oracle licensing, and this must be sourced via an appropriate partner.
Cores refers to physical processor cores (excluding hyper-threading). OVM cores have two threads, or vCPUs. Your Oracle licensing will be based on the cores consumed by your OVM.
Update services. We make update repositories available for OVM containers. We don't provide software update facilities for non-UKCloud licensed software, including all Oracle applications or databases.
Anti-virus. We do not provide anti-virus software as part of the service.
Networks
Internet-facing solutions. You are provided with 2 usable public IP addresses, but you can ask for additional public IP addresses by raising a Service Request via the My Calls section of the UKCloud Portal. We reserve the right to decline the request if you have spare capacity in your existing deployment.
UKCloud for Oracle Software does not have a native external connectivity functionality. Therefore, UKCloud have enabled customers to manage connectivity rules, such as firewall, IPsec VPN and NAT functionality, through a VMware NSX Edge. This Edge is provisioned within the UKCloud for VMware environment and is managed using either the UKCloud Portal GUI or API.
This Edge can be an existing edge in a customer's UKCloud for VMware environment, or can be provisioned as a completely new entity, specific for Oracle.
NSX Edge
By default, we assign one Edge per connectivity type. You can choose which external network you would like to enable your Oracle environment to connect to. Note that the Oracle environment does not have to connect to an external network, however an external network will need to be connected to the Edge.
Site-to-site IPsec VPN. You can create IPsec VPN tunnels to connect different environments, both internal and external, to UKCloud. There is a limit of 64 tunnels per Edge.
Bring Your Own Firewall
Bring Your Own Firewall is currently not available for UKCloud for Oracle Software installations; however, you can have BYOF within UKCloud for VMware and connect it to the UKCloud for Oracle Software edge gateway via an IPsec VPN.
Protective monitoring
We've implemented GPG 13-aligned Protective Monitoring across the Assured and Elevated security domains at the hypervisor level and below. For more information, see Protective Monitoring from UKCloud.
If you require protective monitoring services above the hypervisor, we offer our Security Operations Service to monitor your virtual estate (additional charges apply). For more information, see the Security Operations Service Service Definition.
In line with UKCloud's System Interconnect and Security Policy (SISP), we provide notifications of customer-impacting security incidents. It's the customer's responsibility to report similar incidents to us.
Platform management
Users can access, manage and view the UKCloud for Oracle Software service, accessing only those features allowed by their role, in any of the following ways:
Oracle Enterprise Manager. The graphical interface for the creation and management of the Oracle environment.
vCloud API. Enables the programmatic creation and management of the Oracle edge gateway.
VMware Cloud Director tenant portal. Provides a graphical interface to access the VMware Cloud Director environment to manage the Oracle NSX Edge (depending on assigned permissions).
UKCloud Portal. Enables access to the VMware Cloud Director and Oracle Enterprise Manager services. The Portal also includes an overview of service configuration information. Access to incident and request management is also possible through the Portal.
You cannot access the underlying infrastructure. This includes (but isn't limited to) the hardware and the Oracle Virtual Machine Manager environment.
Service migration
UKCloud do not currently provide migration services, however customers are free to bring their own migration tools and utilise them within the UKCloud for Oracle Software environment.
Service reporting
Visibility. Maintenance notifications and Service Status reports are delivered through the portal.
Billing. Billing is issued on a monthly basis where you will be billed for your total monthly consumption.
Customer service
Cloud Architect. UKCloud Cloud Architects support you during the design of solutions for the cloud platform. UKCloud Cloud Architects are ideally placed to help reconcile your requirements with the UKCloud platform. We recommend engagement with a Cloud Architect when implementing Oracle solutions.
Service Delivery Manager (SDM). An assigned point of contact who will provide any assistance you require during your use of the service, including onboarding, service reviews and incident reporting and escalation.
Support Desk. After the initial onboarding and design phase, customers can utilise the standard UKCloud support entitlement. For more information, see Raising and escalating support tickets with customer support.
Customer responsibilities
You are responsible for assessing whether the UKCloud UKCloud for Oracle Software platform can support the various requirements of your application.
The control and management of access and responsibilities for end users including appropriate connectivity, security and accreditation if required.
Management and administration of layers above the Oracle hypervisor (OS patching, application performance monitoring, user administration).
You are also responsible for ensuring only lawful data that supports the UK public sector is stored and processed by applications on this environment, and that they fully comply with the UKCloud Security Operating Procedures (SyOPs) and other information assurance requirements as specified in the UKCloud SISP and associated accreditation documentation sets.
Service provisioning
Within four (4) working hours of accepting an order (shorter deployment times are typically achieved and can be prioritised upon request), UKCloud will create the customer's Primary Administrator account and send a welcome pack which includes the URL for the UKCloud Customer Portal, and the getting started guide.
UKCloud and Infomentum will provision the Oracle Tenant environment. UKCloud will request information such as private subnets before creating the environment. Once the build is complete, UKCloud will provide you with access to provision Oracle virtual machines and Oracle networks.
UKCloud has created several videos, help guides, manuals and FAQs to help train and instruct users so that they are up and running quickly and easily. These are available within the UKCloud Knowledge Centre.
UKCloud also has a large ecosystem of partners who can deliver additional services, such as support and professional services. UKCloud would be pleased to introduce you to the right partner to suit your needs.
Service constraints
For information about Planned and Emergency Maintenance, see Understanding UKCloud service maintenance windows.
Supporting documents and resources
The following documents contain more information about UKCloud for Oracle Software and the service options:
Feedback
If you find a problem with this article, click Improve this Doc to make the change yourself or raise an issue in GitHub. If you have an idea for how we could improve any of our services, send an email to feedback@ukcloud.com.


Recent Incidents
Services
Maintenance Window
Calendar
Cloud Status
Things are good for now
No incident for last 24hs


UN COEUR EN HIVER (A HEART IN WINTER) A film review by Merlin Copyright 1993 Merlin
Rating: 3.2/4.0 (B+)
Starring: Daniel Auteuil, Emmanuelle Beart, Andre Dussollier, Elisabeth Bourgine Director: Claude Sautet Producers: Jean-Louis Livi and Philippe Carcassonne Screenplay: Yves Ulmann, Jacques Fieschi, and Jerome Tonnere Music: Maurice Ravel Released by October Films French with English Subtitles
Many people dislike French films for their lack of closure. While possibly shallow, I've often had a desire for a sense of epiphany, or at least a resolution, in the films which I view. There is no revelation in UN COEUR EN HIVER in the traditional; however, the film is incredibly successful in its passionate dramatization of a passion-denying protagonist, Stephane (Daniel Auteuil).
Stephane (Daniel Auteuil) is a master violin maker. He is passionless about all that which surrounds him except his craft and the music which his craft is responsible for producing. Even the relationship between he and his boss, Maxime (Andre Dussollier) is a controlled, and almost manipulated association, highlighted by the fact that Stephane permits Maxime to win close squash matches. In the beginning of the movie, Stephane is a closed, solitary individual and the audience is carefully left to wonder about the depth of emotion behind this enigmatic man.
Camille Kessler (Emmanuelle Beart) is a master violinist and the new love of Maximes. Maxime is so much in love with Camille that he plans to and does leave his wife. Like Stephane, Camille is outwardly very controlled and reserved, sacrificing all thought and emotion to her violin and the music which emerges.
When Stephane and Camille meet, there is a recognition of a bonding by both individuals. However, whereas Camille submits to the wild interplay of emotions which she now feels for Stephane, Stephane only admits that Camille is attracted to him. Stephane ignores his feelings for Camille, which the audience cannot help but to see is present.
As the movie progresses, the two characters become more and more polarized in their views and emotions for one another. These two people, with very similar approaches to life initially, react to their new circumstance very differently. Stephane becomes even more rational and controlled, while Camille becomes more tempestuous, until she almost borders on suffering a nervous breakdown due to the inability to consummate their relationship.
However, their approach to each other is perhaps not surprising considering their vocation. The audience is led to believe that Stephane may have been a genius as a violinist as well, due to his relationship with a master violin teacher. However, apparently, he could not be a violinist due to his intolerance for flaws in his playing. Consequently, Stephane becomes a precision craftsmen with the instrument and no longer plays. In contrast, Camille had almost given the violin, years earlier. However, with the aid of her manager, she has progressed to being almost one of the world's finest, successfully submerging herself to her playing.
During the course of the movie, we see both characters evolve as they struggle to meet the challenge of their new emotions. Stephane attempts to remain unchanged. However, we do see subtle hints of his transformation. One of the most obvious is when he defeats Maxime in squash.
The development of all of the characters, many of which is not included in this synopsis, is incredible. American movies, with rare exceptions, have not and I would daresay cannot approach foreign films in character development. In its essence, this movie is about the development and growth of the characters, Camille and Stephane. The portrayal of all the other characters in the movie, including a death, is to further the development of Camille's and Stepahne's characters.
I am not sure why Berardinelli says, "At times it becomes difficult to determine whether Stephane should be pitied or vilified, and it is to Auteuil's credit that he manages to maintain this uncertainty." This movie is not about judging Stephane's actions as being right or wrong, but about viewing their growth and accepting the characters as who they are.
I find the ending appropriate; unfortunately, I found the last ten minutes which led up to the final scene to be very unfulfilling. This portion of the film is where the "sense of closure" could have been successfully accomplished. Unfortunately, there is a hurried and almost a soap opera-type surge of emotions from all of the characters.
While Ravel may not be quite as accomplished as Schubert or Mozart, Ravel has his day in this film. The synergism of the tension of Ravel's music and tension on the screen is the best I have ever seen.
The directing in this movie is wonderful. The actors and actresses are excellent, each playing their part with great sincerity and warmth. Emmanuelle Beart's personality is beautiful. And needless to say, I must say that Emmanuelle Beart, herself, is beautiful. Besides the near ending, the only other criticism of the movie which I have is that the movie is almost too cerebral. I almost left with the sense little happened because almost all the changes which occur in the movie happen in deep in their psyches and little in their personalities or the situations which they end as part of. The one question which I am left with is while they have accepted their lot, has their attitude towards love changed? I have several possibilities which I believe the movie hints at, but I am unsure of which the director is espousing.
In summary, this movie is solely about the character growth of two characters who almost develop a relationship. In the process, we see their attitude towards life and other people. In itself, I do not believe Un Coeur is a complicated movie. Where it does become complicated is when we juxtapose the scenes of the movie into the greater walk of life where we, as Americans, have preconceived American notions of relationship, love, and people.
I do wonder how the movie translates when viewed within its native French culture. However, I, bringing my American preconceptions, enjoyed the film. I would welcome any comments about this movie from any who have seen it.
.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Guess the number between 1 and 100. We will give you 10 chances or else you will have to start again. I will help you by letting you know if your guess is low or high. How about that? GOOD LUCK!


Clocks and watches are devine! We talk about how humans felt need for timekeeping and all about it.
Definition of time
A second
The duration of 9,192,631,770 periods of the radiation corresponding to the transition between two hyperfine levels of ground state of the Cesium 133 atom.
That’s lovely, but what does it mean? Hang on tight, we’ll come to that. But before that, let’s go back in history, few thousand years. To the land of mighty Egyptians. Yeah, you just thought of Pyramids and the movie Mummy, didn’t you? Yeah, moving along!
Sun to the rescue
Timekeeping became a necessity when humans started being social. As with everything on earth, it all started with Sun. Being the source of a vast amount of energy in the form of light, what better way of tracking time than to use that light.
Egyptians - the timemasters
- Obelisks: An Egyptian invention. Shadows are tracked to calculate the time of day.
- Sundial: A device that uses shadow cast by sunlight to measure time as the sun moves overhead. Egyptians used these in B.C. 3500. In 1500 B.C. Egyptians built a more accurate sundial which was divided into 10 parts. This one was accurate only half the time and afternoon it had to be rotated by 180°
- Issues:
- Path of sun changes throughout the year.
- Doesn’t work on rainy or overcast days.
- Doesn’t work during the night.
- Water Clocks: Used mostly as time measuring devices.
Mechanical Clocks
- First mechanical clocks might have been used in monasteries to keep monks aware of the prayer times.
- Most of these were large weight driven “turret” clocks which stuck at every hour and did not have a face or a hand.
- Salisbury Cathedral in England has the oldest clock which chimes every hour. These type of clocks had errors of up to half an hour a day and weren’t accurate.
- During mid of the 1400s, German and Italian clockmakers started making clocks that made use of wound spring. Most of these had only hour hands and the minute hand came into existence only during the 1650s.
Pendulums
- Master inventor Galileo devised the timekeeping property of pendulum and in 1656, Christiaan Huygens started using the pendulum as a time controller in clocks.
- The time period of a pendulum was independent of the mass of the pendulum and to the extent of the swing, but depended only on the length of the pendulum. A pendulum of around 99 cm (39 inches) has a time period of around 1 sec. Even an increase in length by 0.025 mm would make a difference of 1 sec in a day. Which means a steel pendulum can lose up to a second a day with a temperature variation of 2.2°C. A special alloy called “Invar” which has a small co-efficient of expansion is sometimes used to make pendulums.
- A series of clocks which were weight driven and had pendulums were devised and built. Due to their weight they were not suitable for hanging from the wall, instead, the casing was extended towards the ground and this led to the creation of “Grandfather” clocks.
- In 1670 the seconds pendulum was added to the clock which oscillated once every second.
- An escape wheel is used which is allowed to rotate one tooth per double swing of the pendulum and also transmits the impulse to the pendulum.
- Escapement has two main functions: transmit the impulse without hampering the free swing and to transmit a uniform impulse.
- Edmund Beckett invented a gravity clock using double three-legged gravity escapement and used this for Westminster which we adorably call The Big Ben .
The Components
- Escapement: Escapement is used to transfer the gravitational force acting on the weights to the clock’s mechanism. In this mechanism, a weight unwinds a rope from a barrel which turns the toothed escape wheel. A vertical rod with pellets at each end called a verge is used. When the weight drops and the wheel rotates, the top pallet arrests the wheel resulting in oscillation on the regulating weights. This oscillation turns the verge and that releases the wheel from the pellet until it is caught by the second pellet on the other side of the verge. This process is repeated. This action produces the “tick-tock”.
- The wheelwork: This mechanism, also called the train is responsible for transmitting the motion from the weight or spring mechanism to the hands of the clock through a series of wheels and pinions precisely calibrated to ensure steady transmission of power. There is a gearing mechanism that drives the clock and uses a 12:1 gearing ratio to move the hour hand.
Electric Clocks
- First made in 1840, the first electric clock had a pendulum and spring mechanism and used an electrical impulse to operate a number of dials.
- The first complete electric clock was invented in 1906.
Quart crystals
- Quartz crystal was first used in clocks in 1929. A big leap in precise timekeeping.
- A ring of quartz of 2.5 mm in diameter is suspended by threads in a heat-resistant chamber. Electrodes are connected to the surface of the ring and the 100,000 hertz frequency of vibration is reduced by a process called frequency division and applied to a synchronous motor.
- 6 million to 1 ratio of gearing is used to move the second hand and the precision is of the order of one second every 10 years.
Watches
- Watches came into use around the 1500s. Peter Henlein, a locksmith from Germany made early models of watches using verge as the escapement method.
- Germany and France produced early watches which were not wrist watches but were worn on chains around the neck.
- These early watches had no minute or second hands and had only hour hands.
- Early watches used wound up springs, which were coil springs that could be wound up to store energy. This energy is then transferred using wheel train and escapement.
- The major drawback was the change in torque as the spring unwinds. This was countered by use of fusee, a cone-shaped, grooved pulley system that kept the torque constant by the variable diameter of the cone.
Navigation and need for precision
Navigators needed to have accurate ways of determining the time to also determine their location.
- Latitude could be calculated based on the position of sun’s angle at noon.
- Time at a reference point was necessary to identify the longitude. At equator 15° change in latitude is equivalent to an hours difference in time.
- Pendulums do not work well at sea.
- In 1714, the Engish government promised a reward of £20,000 to anyone who can measure longitude to the accuracy of 0.5° which corresponds to an error of 35 miles at the equator and an accuracy of 3 s/day.
- The prize was won by John Harrison who made the sea going H4 clocks with the accuracy of 0.2 s/day with the error of only 30 km on a 7-day trip.
Greenwich Mean Time
- Set as a standard in 1884.
- Since the path of the sun varies, there was a deviation of +/- 15 mins. Hence mean annual average of motion of sun was considered.
- 1 second = 1/864,000 of a mean day.
- Issues:
- Variation in earth’s rotation.
- Weather
- Tides
- Replaced by UTC (Coordinated Universal Time) which is pretty much similar to GMT and is maintained by an ensemble of around 260 clocks maintained in 40 countries.
Atomic clocks
Atomic clocks were a major breakthrough in the development of highly accurate clocks for use in various scientific devices and in modern exploration including space.
- 1955: Cesium atomic clock was invented by Essen and Parry at National Physical Laboratory.
- More clocks were reproduced in the following years and Caesium clocks were adopted as the basis for time measurement.
- Present day atomic clocks have an accuracy of 1 sec in 3 billion years.
Working of atomic clock
- Uses quantum mechanical states of energy and precise energy levels of electrons.
- The frequency at which Cesium releases peak energy is calculated and time is calculated accordingly.
- High precision. Used in space technology where nanosecond level of precision is required.
Awesome podcasts hosted by our friends that can help with productivity!
Image: Shankar’s Instagram


MALCOLM X A film review by Max Hoffmann Copyright 1993 Max Hoffmann
Excellent! (highest) MUST see on big screen; TV viewing of this film will diminish 33.3% of its power.
STRONG POINTS: brilliant direction, strong cast, tight script, the story itself, art direction and cinematography.
COLD SPOTS: (minor complaint) a poorly placed musical soundtrack that often distracts from critical dialogue.
The incredible spiritual journey and transformation of Malcolm X would make fascinating viewing, even if you rewrote the story and took away the fact that he was Black, or that it took place in America. His message still applies to many situations beyond Blacks and racism, (listen to his "house nigger" speech on TV in light of gays in the closet, or women and the "glass ceiling" in corporate America!) Latent racism has crept into most mainstream reviews, and many white critics are threatened by this film because:
-- Malcolm X was a MAN
-- he found genuine redemption and salvation without Jesus
-- he was one of the most articulate and charismatic leaders in American History
-- the film gives a touching portrait of a very strong partnership between a Black Man and Woman, in which neither one is on drugs or a prostitute!
Director Spike Lee avoids most of the pitfalls common to biographies or historic epics, be they docu-dramas (JFK) or episodic (GANDHI). Spike doesn't over dwell on childhood flashbacks to "explain" the adult character's motives, he doesn't attempt to reconstruct well remembered historical encounters that clone newspaper photos. And most importantly, he *never* loses sight of his character's humanity or dignity in favor of the "sweep" of history.
A ground breaking first for American films *and* Lee, is that he allows the main character's spouse to remain a significant presence and influence throughout the film. Typical Hollywood treatment would have allowed Malcolm about five minutes for a "love story," we'd see his wife again when she gives birth to their first child, she'd walk in the room and place her hand on his shoulder saying something significant after a threatening phone call, and then she'd show up again for the deathbed scene!
Instead, Malcolm's wife walks into camera range, and STAYS there as a significant and compelling presence through the second half of the film. Her keening widow's wail at the end of the film will stick with you for hours if not days after the film ends. Spike never loses sight of any of his character's humanity of dignity. You will experience their losses on a very visceral level.
The film and story certainly have a grand sense of history, (especially for any of us old enough to remember the latter years of Malcom X). But the characters don't turn into plaster saints or pseudo-biblical prophets. Contrary to what you may hear in some reviews or commentaries, Spike Lee *does not* stoop to his own brand of racism by painting all the white characters as "devils" or whatnot. The attitudes shown by the whites in Malcolm's life are a brutally honest reflection of America at that time. The death of Martin Luther King gave many Americans the same kind of myopia about the late 60's that JFK's death created over his lack of ability as a president. Spike throws a little Windex on the lens of our collective memories and shows it like it was/still is ... warts and all. Which is why many older viewers will be offended by what they'd prefer to forget.
I'm going to skip over comments on actor's and performances--they are *all* brilliant. Most magazine reviews have singled out Denzel Washington as Malcolm, and rated the film weak overall, with comments like Spike is out of his element in a sweeping historical film of this scope. NOT! Although he'll probably get passed over at the Academy Awards, Spike has essentially *reinvented* a nearly dead art form. The lion's share of credit goes to the dedication and courage of this one man who successfully fought to bring his vision, intact (in all of its 3.5 hours of glory), to the screen.
Frequently, in powerfully emotional scenes with Malcolm X behind a podium, Lee gently tones down Denzel's performance to ensure that we really listen to the words of one of the greatest Americans that ever lived. This film will send millions of young blacks and whites to their nearest library or bookstore to find out more. If this film accomplishes nothing more than that, it will go down in history as one of the most significant films of the last quarter of this century.
-- Max Hoffmann
.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Before Change
moving = np.array(img.get_data()[..., 0], dtype = floating)
//Warp the S0 with a synthetic rotation
degrees = np.array([2.0, 3.0, 4.0])
angles = degrees * (np.pi/180.0)
rotation = getRotationMatrix(angles)
new_shape = np.array(moving.shape, dtype = np.int32)
static = np.asarray(vfu.warp_volume_affine(moving, new_shape, rotation))
After Change
with each other and computing the jaccard index for all 31 common anatomical
regions.
"""
moving, static = get_synthetic_warped_circle(20)
//Create the SSD metric
smooth = 4
inner_iter = 20


Workflow for DMCA Implementation
Identify the copyrighted work that you claim has been infringed, or – if multiple copyrighted works are covered by this Notice – you may provide a representative list of the copyrighted works that you claim have been infringed.
Identify the material or link you claim is infringing (or the subject of infringing activity) and to which access is to be disabled, including at a minimum, if applicable, the URL of the link shown on the Site or the exact location where such material may be found.
Provide your company affiliation (if applicable), mailing address, telephone number, and, if available, email address.
Include both of the following statements in the body of the Notice:
“I hereby state that I have a good faith belief that the disputed use of the copyrighted material is not authorized by the copyright owner, its agent, or the law (e.g., as a fair use).”
“I hereby state that the information in this Notice is accurate and, under penalty of perjury, that I am the owner, or authorized to act on behalf of, the owner, of the copyright or of an exclusive right under the copyright that is allegedly infringed.”
Provide your full legal name and your electronic or physical signature.
Deliver this Notice, with all items completed, to Iris Zhou’s Designated Copyright Agent:
1125,Richmond Rd
London, ON


Before Change
"""
read, write, indices = self.array_read_write(statements)
conditional_write_vars = self.get_conditional_write_vars()
read = read.union(set(conditional_write_vars.values()) |
set(conditional_write_vars.keys()))
return read, write, indices, conditional_write_vars
def translate(self, code, dtype):
"""
After Change
"""
read, write, indices = self.array_read_write(statements)
conditional_write_vars = self.get_conditional_write_vars()
read = read.union(set((conditional_write_vars[var] for var in write
if var in conditional_write_vars)))
return read, write, indices, conditional_write_vars
def translate(self, code, dtype):
"""


Bolivia’s growing crisis turns deadly as 5 killed in clash
by Luis Andres Henao And Juan Karita, The Associated PressSACABA, Bolivia — Bolivia’s political crisis turned deadly after security forces opened fire on supporters of Evo Morales in a central town, killing at least five people, injuring dozens and threatening the interim government’s efforts to restore stability following the resignation of the former president in an election dispute.
Most of the dead and injured Friday in Sacaba near the city of Cochabamba suffered bullet wounds, said hospital director Guadalberto Lara, calling it the worst violence he’s seen in his 30-year career.
Angry demonstrators and relatives of the victims gathered at the site of the shootings, chanting: “Civil war, now!”
Morales, who was granted asylum in Mexico after his resignation Sunday, said on Twitter that a “massacre” had occurred. Protesters said police fired when demonstrators tried to cross a military checkpoint.
Luis Andres Henao And Juan Karita, The Associated Press


Schiff: Impeachment hearings no place for conspiracy or targeting whistleblower
WASHINGTON (Reuters) - The head of the U.S. House panel leading the impeachment inquiry on Tuesday warned fellow lawmakers ahead of public hearings, saying the televised questioning would not serve as a venue to air conspiracy theories or out a whistleblower.
“The House’s impeachment inquiry, and the Committee, will not serve as venues for any Member to further the same sham investigations into the Bidens or into debunked conspiracies about 2016 U.S. election interference that President Trump pressed Ukraine to undertake for his personal political benefit,” House intelligence committee Chairman Adam Schiff said, citing former Vice President Joe Biden and his family.
“Nor will the Committee facilitate any efforts by President Trump or his allies to threaten, intimidate, or retaliate against the whistleblower who courageously and lawfully raised concerns about the President’s conduct,” he added in a memo to lawmakers.


Alappuzha is a city on the Laccadive Sea in the southern Indian state of Kerala. It's best known for houseboat cruises along the rustic Kerala backwaters, a network of tranquil canals and lagoons. Alappuzha Beach is the site of the 19th-century Alappuzha Lighthouse. The city's Mullakkal Temple features a traditional design. Punnamada Lake's snake boat races are a well-known annual event.
Alappuzha is famous for its serene backwaters and their exceptionally scenic setting. Cruising on houseboats in Alleppey is the latest and probably the best addition to the list of ways you can enjoy the mesmerizing natural beauty of this quaint little town.


Hi, my name is Karthik and I am a student from Ohio who is currently attending Western Reserve Academy. I play Golf in the Fall, Basketball in the Winter, and Track and Field in the Spring. I am excited for my classes this year. I am really looking forward to taking this digital engineering and fabrication class. I am excited to learn how to use different machines and how to create different objects.


Skip to Content
eLife home page
Menu
Home
Magazine
Community
About
Research categories
Inside eLife
Search
Subscribe to alerts
Submit your research
Author guide
Reviewer guide
Back to top


Noncandidate Committees
Contribution by Industry
Notes
- A total of $2,629,895.15 was spent by noncandidate committees to support their candidates in the current 2014-2016 election cycle.
- Data is taken from data.hawaii.gov and is supplied by the Campaign Spending Commission.


Condition will change the result of the build if the percentage of warnings bellow the predefined rank increases above a certain percentage.
Rank of warnings - Only warnings that are bellow this rank will be checked. [default 30]
Maximum percentage increase - if the percentage of warnings exceed this amount it will mark build with the desired result [default 5.0]
Mark build as - the desired result if the condition is triggered.


Weather Dashboard
Search a City
Search
Clear history
Temperature:
Humidity:
Wind Speed:
UV Index:
Temp:
Humidity:
Temp:
Humidity:
Temp:
Humidity:
Temp:
Humidity:
Temp:
Humidity:


The balance of the account in reason
The balance of the account in reason
Return the balance of the account in Logos
The label of the account
The label of the account
The pending balance of the account in reason
pending balance is balance minus the sends that are pending
The pending balance of the account in reason
pending balance is balance minus the sends that are pending
array of pending requests on the account
These requests have been sent for consensus but we haven't heard back on if they are confirmed yet.
array of pending requests on the account
These requests have been sent for consensus but we haven't heard back on if they are confirmed yet.
Gets the total number of requests on the pending chain
Return the previous request as hash
hash of the previous transaction
The public key of the account
Gets the total number of requests on the receive chain
Gets the total number of requests on the send chain
Return the sequence value
sequence of for the next transaction
If the account has been synced with the RPC
If the account has been synced with the RPC
Account version of webwallet SDK
Adds the request to the Receive chain if it doesn't already exist
Request Object
Adds the request to the Send chain if it doesn't already exist
Request Object
Broadcasts the first pending request
Finds the request object of the specified request hash in the confirmed chain
The hash of the request we are looking for
false if no request object of the specified hash was found
Finds the request object of the specified request hash in the pending chain
The hash of the request we are looking for
false if no request object of the specified hash was found
Gets the requests up to a certain hash from the pending chain
Hash of the request you wish to stop retrieving requests at
all the requests up to and including the specified request
Gets the requests up to a certain hash from the receive chain
Hash of the request you wish to stop retrieving requests at
all the requests up to and including the specified request
Finds the request object of the specified request hash in the recieve chain
The hash of the request we are looking for
false if no request object of the specified hash was found
Finds the request object of the specified request hash
The hash of the request we are looking for
null if no request object of the specified hash was found
Gets the requests up to a certain hash from the send chain
Hash of the request you wish to stop retrieving requests at
all the requests up to and including the specified request
Retreives pending requests from the send chain
Number of requests you wish to retrieve
Number of requests back from the frontier tip you wish to start at
all the requests
Retreives requests from the receive chain
Number of requests you wish to retrieve
Number of requests back from the frontier tip you wish to start at
all the requests
Retreives requests from the send chain
Number of requests you wish to retrieve
Number of requests back from the frontier tip you wish to start at
all the requests
Called when a request is confirmed to remove it from the pending request pool
The hash of the request we are confirming
true or false if the pending request was found and removed
Removes all pending requests from the pending chain
Returns the base account JSON
JSON request
Validates that the account has enough funds at the current time to publish the request
Request information from the RPC or MQTT
Verify the integrity of the send & pending chains
Verify the integrity of the receive chain
Generated using TypeDoc
The address of the account
{string}


Jane Doe
Photographer
Jane Doe
Location: Arizona
Jane Doe
Photographer
Jane Doe
Location: California
Jane Doe
Photographer
Jane Doe
Location: New York
Jane Doe
Photographer
Jane Doe
Location: New York
Jane Doe
Photographer
Jane Doe
Location: Arizona
Jane Doe
Photographer
Jane Doe
Location: California
Jane Doe
Photographer
Jane Doe
Location: New York
Jane Doe
Photographer
Jane Doe
Location: New York


| Modifier and Type | Field and Description |
|---|---|
Mat |
TestMatElementWise._testElements
A matrix composed of elements to be used for this test.
|
Mat |
TestArmaElementWise._testElements
A matrix composed of elements to be used for this test.
|
Mat |
TestMatMatrix._testMatrix
A matrix to be used for this test.
|
Mat |
TestArmaMatrix._testMatrix
A matrix to be used for this test.
|
| Modifier and Type | Method and Description |
|---|---|
static Mat |
Arma.abs(Mat matrix)
Creates a new matrix with the absolute value for all elements of the provides matrix.
|
Mat |
Mat.col(int j)
Return a copy of the jth column as a (
n_rows , 1) matrix. |
Mat |
Mat.diag()
|
Mat |
Mat.divide(double operand)
Creates a new matrix being the quotient of a right-hand side (element-wise) division with the provided divisor.
|
Mat |
Mat.divide(Mat operand)
Creates a new matrix being the quotient of a right-hand side matrix division with the provided divisor.
|
Mat |
Mat.elem(Mat selection)
Returns a copy of all elements for which selection.at(n) > 0 holds as a (
Arma.accu (
Arma.find(selection, Op.STRICT_GREATER, 0) ), 1) matrix. |
Mat |
Mat.elemDivide(double operand)
Creates a new matrix being the quotient of a right-hand side (element-wise) division with the provided divisor.
|
Mat |
Mat.elemDivide(Mat operand)
Creates a new matrix being the quotient of a right-hand side (element-wise) division with the provided divisor.
|
Mat |
Mat.elemTimes(double operand)
Creates a new matrix being the product of a right-hand side (element-wise) multiplication with the provided
multiplier.
|
Mat |
Mat.elemTimes(Mat operand)
Creates a new matrix being the product of a right-hand side (element-wise) multiplication with the provided
multiplier.
|
static Mat |
Mat.eye(int numberOfRows,
int numberOfColumns)
|
static Mat |
Arma.find(double a,
Op operation,
Mat b)
Creates a new matrix with its values set to
1 for each element where a operation b holds
and 0 otherwise. |
static Mat |
Arma.find(Mat a,
Op operation,
double b)
Creates a new matrix with its values set to
1 for each element where a operation b holds
and 0 otherwise. |
static Mat |
Arma.find(Mat a,
Op operation,
Mat b)
Creates a new matrix with its values set to 1 for each element where
a operation b holds and 0
otherwise. |
static Mat |
Arma.floor(Mat matrix)
Creates a new matrix with all elements of the provides matrix element-wise floored.
|
Mat |
Mat.i()
Returns the inverse matrix.
|
Mat |
Mat.minus(double operand)
Creates a new matrix being the difference of a right-hand side (always element-wise) subtraction with the provided
subtrahend.
|
Mat |
Mat.minus(Mat operand)
Creates a new matrix being the difference of a right-hand side (always element-wise) subtraction with the provided
subtrahend.
|
static Mat |
Mat.ones(int numberOfRows,
int numberOfColumns)
|
Mat |
Mat.plus(double operand)
Creates a new matrix being the sum of a right-hand side (always element-wise) summation with the provided operand.
|
Mat |
Mat.plus(Mat operand)
Creates a new matrix being the sum of a right-hand side (always element-wise) summation with the provided
right-hand side addend.
|
static Mat |
Mat.randn(int numberOfRows,
int numberOfColumns,
java.util.Random rng)
|
static Mat |
Mat.randu(int numberOfRows,
int numberOfColumns,
java.util.Random rng)
|
Mat |
Mat.row(int i)
Return a copy of the ith row as a (1,
n_cols ) matrix. |
static Mat |
Arma.square(Mat matrix)
Creates a new matrix with all elements of the provides matrix element-wise squared.
|
Mat |
Mat.t()
Returns the transpose of the matrix.
|
Mat |
Mat.times(double operand)
Creates a new matrix being the product of a right-hand side (element-wise) multiplication with the provided
multiplier.
|
Mat |
Mat.times(Mat operand)
Creates a new matrix being the product of a right-hand side matrix multiplication with the provided multiplier.
|
static Mat |
Mat.zeros(int numberOfRows,
int numberOfColumns)
|
| Modifier and Type | Method and Description |
|---|---|
static Mat |
Arma.abs(Mat matrix)
Creates a new matrix with the absolute value for all elements of the provides matrix.
|
static double |
Arma.accu(Mat matrix)
Returns the sum of all elements of the provided matrix.
|
static boolean |
Arma.any(Mat matrix)
Returns
true is any element of the provided matrix is non-zero and false otherwise. |
void |
Mat.col(int j,
Op operation,
Mat operand)
Performs a right-hand side element-wise operation on all elements of the jth column.
|
static double |
Arma.det(Mat matrix)
Returns the determinant of the provided matrix.
|
void |
Mat.diag(Op operation,
Mat operand)
Performs a right-hand side element-wise operation on all elements on the main diagonal.
|
Mat |
Mat.divide(Mat operand)
Creates a new matrix being the quotient of a right-hand side matrix division with the provided divisor.
|
void |
Mat.each_col(Op operation,
Mat operand)
Performs the provided right-hand side element-wise operation on each column.
|
void |
Mat.each_row(Op operation,
Mat operand)
Performs the provided right-hand side element-wise operation on each row.
|
Mat |
Mat.elem(Mat selection)
Returns a copy of all elements for which selection.at(n) > 0 holds as a (
Arma.accu (
Arma.find(selection, Op.STRICT_GREATER, 0) ), 1) matrix. |
void |
Mat.elem(Mat selection,
Op operation,
double operand)
Performs the provided right-hand side element-wise operation on all elements for which selection.at(n) > 0 holds.
|
void |
Mat.elem(Mat selection,
Op operation,
Mat operand)
Performs the provided right-hand side element-wise operation on all elements for which selection.at(n) > 0 holds.
|
Mat |
Mat.elemDivide(Mat operand)
Creates a new matrix being the quotient of a right-hand side (element-wise) division with the provided divisor.
|
Mat |
Mat.elemTimes(Mat operand)
Creates a new matrix being the product of a right-hand side (element-wise) multiplication with the provided
multiplier.
|
static Mat |
Arma.find(double a,
Op operation,
Mat b)
Creates a new matrix with its values set to
1 for each element where a operation b holds
and 0 otherwise. |
static Mat |
Arma.find(Mat a,
Op operation,
double b)
Creates a new matrix with its values set to
1 for each element where a operation b holds
and 0 otherwise. |
static Mat |
Arma.find(Mat a,
Op operation,
Mat b)
Creates a new matrix with its values set to 1 for each element where
a operation b holds and 0
otherwise. |
static Mat |
Arma.floor(Mat matrix)
Creates a new matrix with all elements of the provides matrix element-wise floored.
|
Mat |
Mat.minus(Mat operand)
Creates a new matrix being the difference of a right-hand side (always element-wise) subtraction with the provided
subtrahend.
|
static double |
Arma.norm(Mat matrix,
int p)
Returns the (induced)
p -norm of the provided matrix. |
Mat |
Mat.plus(Mat operand)
Creates a new matrix being the sum of a right-hand side (always element-wise) summation with the provided
right-hand side addend.
|
static void |
Arma.qr(Mat Q,
Mat R,
Mat X)
|
void |
Mat.row(int i,
Op operation,
Mat operand)
Performs a right-hand side element-wise operation on all elements of the ith row.
|
static Mat |
Arma.square(Mat matrix)
Creates a new matrix with all elements of the provides matrix element-wise squared.
|
Mat |
Mat.times(Mat operand)
Creates a new matrix being the product of a right-hand side matrix multiplication with the provided multiplier.
|
| Constructor and Description |
|---|
Mat(Mat matrix)
Creates a new matrix by copying the provided one.
|


Which rides can you ride
Enter your height in inches
submit
ferris wheel
monster roller coaster
jr. roller coaster
tilt-a-whirl
spider
bumper cars
tea cups


| Overview | Namespace | Class | Index | Help |
| PUBLIC MEMBERS: | CLASSES | STRUCTS | UNIONS | ENUMS | TYPEDEFS | METHODS | STATIC METHODS | DATA | STATIC DATA |
| PRIVATE MEMBERS: | CLASSES | STRUCTS | UNIONS | ENUMS | TYPEDEFS | METHODS | STATIC METHODS | DATA | STATIC DATA |
uno_Any (public) | +--Any
| virtual | abstract | interface | template |
| NO | NO | NO | NO |
Methods |
|
| Any( ) throw( ); |
Default constructor: Any holds no value; its type is void. |
| explicit Any( bool value ); |
Ctor support for C++ bool. |
| Any( const Any & rAny ) throw( ); |
Copy constructor: Sets value of the given any. |
| Any( const void * pData_, const Type & rType ) throw( ); |
Constructor: Sets a copy of the given data. |
| Any( const void * pData_, typelib_TypeDescription * pTypeDescr ) throw( ); |
Constructor: Sets a copy of the given data. |
| Any( const void * pData_, typelib_TypeDescriptionReference * pType ) throw( ); |
Constructor: Sets a copy of the given data. |
| ~Any( ) throw( ); |
Destructor: Destructs any content and frees memory. |
| Any & operator=( const Any & rAny ) throw( ); |
Assignment operator: Sets the value of the given any. |
| const Type & getValueType( ) const throw( ); |
Gets the type of the set value. |
| typelib_TypeDescriptionReference * getValueTypeRef( ) const throw( ); |
Gets the type of the set value. |
| void getValueTypeDescription( typelib_TypeDescription * * ppTypeDescr ) const throw( ); |
Gets the type description of the set value. Provides ownership of the type description! Call an explicit typelib_typedescription_release() to release afterwards. |
| TypeClass getValueTypeClass( ) const throw( ); |
Gets the type class of the set value. |
| ::rtl::OUString getValueTypeName( ) const throw( ); |
Gets the type name of the set value. |
| sal_Bool hasValue( ) const throw( ); |
Tests if any contains a value. |
| const void * getValue( ) const throw( ); |
Gets a pointer to the set value. |
| void setValue( const void * pData_, const Type & rType ) throw( ); |
Sets a value. If the any already contains a value, that value will be destructed and its memory freed. |
| void setValue( const void * pData_, typelib_TypeDescriptionReference * pType ) throw( ); |
Sets a value. If the any already contains a value, that value will be destructed and its memory freed. |
| void setValue( const void * pData_, typelib_TypeDescription * pTypeDescr ) throw( ); |
Sets a value. If the any already contains a value, that value will be destructed and its memory freed. |
| void clear( ) throw( ); |
Clears this any. If the any already contains a value, that value will be destructed and its memory freed. After this has been called, the any does not contain a value. |
| sal_Bool isExtractableTo( const Type & rType ) const throw( ); |
Tests whether this any is extractable to a value of given type. Widening conversion without data loss is taken into account. |
| sal_Bool operator==( const Any & rAny ) const throw( ); |
Equality operator: compares two anys. The values need not be of equal type, e.g. a short integer is compared to a long integer. |
| sal_Bool operator!=( const Any & rAny ) const throw( ); |
Unequality operator: compares two anys. The values need not be of equal type, e.g. a short integer is compared to a long integer. |
Methods |
|
| explicit Any( sal_uInt16 ); |
Copyright © 2012, The Apache Software Foundation, Licensed under the Apache License, Version 2.0. Apache, the Apache feather logo, Apache OpenOffice and OpenOffice.org are trademarks of The Apache Software Foundation. Other names may be trademarks of their respective owners.


#include <BehaviorDrivenDesignTest.h>
Public Member Functions | |
| TestWhenWithOneArgumentConstructor () | |
| TestWhenWithOneArgumentConstructor (int argument) | |
| void | occurs (const World &) |
| int | get_argument () const |
Definition at line 119 of file BehaviorDrivenDesignTest.h.
| BibleDatabaseBehaviors::TestWhenWithOneArgumentConstructor::TestWhenWithOneArgumentConstructor | ( | ) | [inline] |
Definition at line 122 of file BehaviorDrivenDesignTest.h.
| BibleDatabaseBehaviors::TestWhenWithOneArgumentConstructor::TestWhenWithOneArgumentConstructor | ( | int | argument | ) | [inline] |
Definition at line 124 of file BehaviorDrivenDesignTest.h.
| int BibleDatabaseBehaviors::TestWhenWithOneArgumentConstructor::get_argument | ( | ) | const [inline] |
Definition at line 132 of file BehaviorDrivenDesignTest.h.
| void BibleDatabaseBehaviors::TestWhenWithOneArgumentConstructor::occurs | ( | const World & | ) | [inline, virtual] |
Implements BehaviorDrivenDesign::IWhen.
Definition at line 128 of file BehaviorDrivenDesignTest.h.


ANA will fly to five new cities from Haneda Airport starting in summer 2020
by Seher AsafPassengers flying with All Nippon Airways will have more destinations to travel to starting summer next year.
The Japanese carrier said it would expand its international network by adding non-stop services to the following cities from Tokyo Haneda International Airport: Istanbul, Milan, Moscow, Shenzhen and Stockholm starting in summer 2020, with tickets going on sale in mid-December 2019. ANA’s summer schedule next year begins on March 29, 2020 and ends on October 24, 2020.
“There is growing demand to visit Japan, and ANA will increase its international service just as Haneda Airport also expands to adapt for inbound Japanese tourism,” said Seiichi Takahashi, senior vice president of ANA.
“These new routes will increase the ease and convenience for passengers flying to Japan from across the world, a significant benefit of our dual hub strategy,” he added.
The airline said its flights to Istanbul, Shenzhen and Stockholm will mark the first ever non-stop flights to these cities served by a Japanese carrier. ANA also added that while its flights have transited through Milan and Moscow, this is the first time the airline will fly to these cities directly as a final destinations for its passengers.
ANA adds 12 international routes to its Haneda hub
These five destinations are part of the 12 new routes ANA will serve out of Haneda Airport starting in 2020. The airline will relocate the other seven routes from its hub at Narita International Airport. These routes include flights from Tokyo to Qingdao, Delhi, Houston, San Francisco, San Jose, Seattle and Washington D.C.
For its flights from Haneda to Qingdao, Shenzhen, Milan, Moscow, Stockholm, Istanbul, and San Francisco, the Japanese carrier said in a press release that it would “start service as soon as preparation is completed during the summer schedule for 2020”. Flight schedules and the start dates will be announced at a later date, the airline added.
Meanwhile, it plans to fly to Delhi, Houston, San Jose, Seattle and Washington D.C seven times weekly out of Haneda beginning March 29 2020. The airline will suspend these routes that currently operate out of Narita airport.
Here is a flight schedule for its routes starting on March 29 2020:
| Route | Flight No. | Departure Time | Arrival Time | Aircraft | Sale start date |
| Haneda – Delhi | NH837 | 1010 | 1625 | Boeing 787-9 | Nov. 26, 2019 after 10:00am JST |
|---|---|---|---|---|---|
| Delhi-Haneda | NH838 | 1830 | 0555(+1) | ||
| Haneda-Houston | NH114 | 1020 | 0840 | Boeing 777-300ER | Nov. 27, 2019 after 10:00am JST |
| Houston-Haneda | NH113 | 1310 | 1700(+1) | ||
| Haneda-Los Angeles | NH126 | 2105 | 1505 | Boeing 777-300ER | Nov. 25, 2019 after 10:00am. JST |
| Los Angeles-Haneda | NH125 | 1705 | 2115(+1) |
Increased frequency on Haneda-Los Angeles and Haneda-Sydney routes
In addition to the new services from Haneda Airport, ANA will also increase frequency on its Haneda-Los Angeles and Haneda-Sydney routes. On the former route, it will increase frequency from seven to 14 round trips per week to and from Haneda, and reduce frequency from 14 to seven flights out of Narita. On the latter, it will increase frequency to seven round trips per week out of Haneda.
Vietnam routes
Starting from March 29, 2020, ANA will introduce seven round trips per week departing from Narita airport to Hanoi. It will suspend its Tokyo Haneda-Hanoi service, which currently offers seven round trips per week.
Also on March 29 next year, ANA will introduce seven round trips per week between Haneda airport and Ho Chi Minh City. The Japanese carrier will reduce frequency on its Ho Chi Minh City service offered at Narita airport from 14 round trips per week to seven round trips per week.
Below are the updated flight schedules:
| Route | Flight No. | Departure Time | Arrival Time | Aircraft | Sale start date |
| Haneda-Ho Chi Minh City | NH891 | 1800 | 2235 | Boeing 787-9 | Nov, 28, 2019 after 10:00am JST |
|---|---|---|---|---|---|
| Ho Chi Minh City-Haneda | NH892 | 0025 | 0825 |
| Route | Flight No. | Departure Time | Arrival Time | Aircraft | Sale start date |
| Narita-Hanoi | NH897 | 1850 | 2220 | Boeing 787-9 | Nov, 26, 2019 after 10:00am JST |
|---|---|---|---|---|---|
| Hanoi-Narita | NH898 | 2350 | 0700(+1) |
| Route | Flight No. | Departure Time | Arrival Time | Aircraft |
| Narita-Ho Chi Minh City | NH833 | 1855 | 2330 | Boeing 787-8 |
|---|---|---|---|---|
| Ho Chi Minh City-Narita | NH834 | 0700 | 1500 |
The addition of these routes will bring the total number of international cities served by ANA to 52 and will expand ANA’s presence at Haneda Airport, one of two primary airports that serve the Greater Tokyo Area along with Narita Airport.


When You Think Advent, Do You Think Cheese?
by Joy Burnford“What originally started as a joke has turned into a best-selling advent calendar across all categories (including chocolate!) at UK superstore, Asda.”
Annem Hobson, founder of So Wrong It’s Nom and creator of the world’s first cheese advent calendar, explains how she took the germ of an idea to a fully fledged product in under a year. With strong communications and a can-do attitude, she succeeded in developing her product, convincing retailers and cheese manufacturers that there was a clear gap in the market for it, and taking it into production.
“I couldn’t believe there wasn’t a cheese advent calendar already out there given the level of interest. This inspired me to just have a go and see if I could make this happen.”
Countdown To Christmas One Step At A Time
Once Hobson announced she would deliver her product by the following Christmas, the enormity of the challenge ahead dawned on her. With no experience in any of cheese production, packaging or selling to supermarkets, she had nothing more than 27,000 loyal newsletter followers and a strong track record in garnering media interest. She started by picking up the phone.
Step One: Product Design
Hobson called everyone she knew, asking for contacts who could help or might know someone who can. This brought her a lawyer, a supermarket buyer, a licensing expert and even a photographer to do some promotional work.
Step Two: Production
The next challenge was sourcing a cheese manufacturer. Once again, Hobson faced her fears of rejection, picked up the phone and started talking. Half a dozen calls later, she had pitch meetings set up and found cheese manufacturer Norseland, who also produced miniatures. They were willing to take a chance on her and meet the upfront production costs.
“This was probably the most challenging time; I worried that a larger cheese manufacturer would jump on the media bandwagon that I had created.” But this didn’t happen.
Step Three: Packaging
The next piece of the puzzle was finding a packaging supplier. Following further phone calls, this time to advent calendar producers, Hobson embraced the dual challenge of refrigeration and full Christmas fridges. This took trips to the local craft shop and a great deal of experimenting on the kitchen table.
“We eventually came up with a bookcase design that after 12 days you tear the cardboard down the middle so you create more space.”
Step Four: Pitching for Shelf Space
With a calendar producer on board, Hobson approached supermarkets, only to find they had already committed to their Christmas product ranges. She asked Norseland whether their supermarket contacts would help, but most said no. So she asked for an introduction to present the product herself. One supermarket agreed first to a small trial and later increased their order.
“In the first year they sold out and this is really when the business started to flourish.”
Hobson’s Building Blocks For Success
- Talk to friends and family for all the contacts and help they can give.
- Take a deep breath and pick up the phone to potential buyers and suppliers. “What is the worst that can happen?”
- Network with other entrepreneurs and ask for help. The people you meet can become great allies and a source of support and motivation.
- Don’t give up at the first hurdle – it is easy for your confidence to be crushed when you get a ‘no’ but it is critical to persevere.
- Focus on building up a social community – this can help not only with advertising and sales, but also with background data and research.
- Use the media – especially if you have an interesting product or story.
- Don’t abandon your early adopters and customers: involve them in your business journey.
- Test and seek feedback on your prototype before you spend money on it.
- Share your passion – if you are passionate, others will be too.
So, if you have an idea – test it, share it, have confidence in it. You never know what might be around the corner.


importance: 5
We’ve got a Clock
class. As of now, it prints the time every second.
[js src=“source.view/clock.js”]
Create a new class ExtendedClock
that inherits from Clock
and adds the parameter precision
– the number of ms
between “ticks”. Should be 1000
(1 second) by default.
extended-clock.js
clock.js
. Extend it.


Research
I'm interested in computer vision, machine learning, optimization, graphics and robotics.
|
|
|
DexPilot: Vision Based Teleoperation of Dexterous Robotic Hand-Arm System
Ankur Handa*, Karl Van Wyk*, Wei Yang, Jacky Liang, Yu-Wei Chao, Qian Wan, Stan Birchfield, Nathan Ratliff, Dieter Fox (* Equal Contribution)
arXiv preprint, 2019
arxiv /
An entirely vision based teleoperation for robotic hand-arm system to collect data for imitation learning. The system works without any markers or gloves on the hand.
|
|
|
ContactGrasp: Functional Multi-finger Grasp Synthesis from Contact
Samarth Brahmbhatt, Ankur Handa, James Hays and Dieter Fox
International Conference on Intelligent Robots and Systems (IROS), 2019
arxiv /
We present ContactGrasp, a framework for functional grasp synthesis from object shape and contact on the object surface. Contact can be manually specified or obtained through demonstrations. Our contact representation is object-centric and allows functional grasp synthesis even for hand models different than the one used for demonstration.
|
|
|
Closing the Sim-to-Real Loop: Adapting Simulation Randomization with Real World Experience
Yevgen Chebotar, Ankur Handa, Viktor Makoviychuk, Miles Macklin, Jan Isaac, Nathan Ratliff, Dieter Fox
International Conference on Robotics and Automation (ICRA), 2019
arxiv /
The system closes the loop between simulations and real-world by training first in simulations and then testing it out in real-world. The real world data is then used to adjust the variances of the parameters that are randomised while training a policy with PPO.
Best Student Paper Award Finalist.
|
|
|
Robust Learning of Tactile Force Estimation through Robot Interaction
Balakumar Sundaralingam, Alexander (Sasha) Lambert, Ankur Handa, Byron Boots, Tucker Hermans, Stan Birchfield, Nathan Ratliff, Dieter Fox
International Conference on Robotics and Automation (ICRA), 2019
arxiv /
In this paper, we explore learning a robust model that maps tactile sensor signals to force. We specifically explore learning a mapping for the SynTouch BioTac sensor via neural networks.
Best Manipulation Paper Award Finalist.
|
|
|
Learning Latent Space Dynamics for Tactile Servoing
Giovanni Sutanto, Nathan Ratliff, Balakumar Sundaralingam, Yevgen Chebotar, Zhe Su, Ankur Handa, Dieter Fox
International Confernece on Robotics and Automation (ICRA), 2019
arxiv /
In this paper, we specifically address the challenge of tactile servoing, i.e. given the current tactile sensing and a target/goal tactile sensing – memorized from a successful task execution in the past – what is the action that will bring the current tactile sensing to move closer towards the target tactile sensing at the next time step.
|
|
|
GPU-Accelerated Robotic Simulation for Distributed Reinforcement Learning
Ankur Handa*, Jacky Liang*, Viktor Makoviychuk*, Nuttapong Chentanez, Miles Macklin, Dieter Fox (*Equal Contribution)
Conference on Robot Learning (CoRL), 2018
arxiv /
In this work, we propose using GPU-accelerated RL simulations as an alternative to CPU ones. Using NVIDIA Flex, a GPU-based physics engine, we show promising speed-ups of learning various continuous-control, locomotion tasks. With one GPU and CPU core, we are able to train the Humanoid running task with PPO in less than 20 minutes, using 10-1000x fewer CPU cores than previous works.
|
|
|
Domain randomization and generative models for robotic grasping
Josh Tobin, Lukas Biewald, Rocky Duan, Marcin Andrychowicz, Ankur Handa, Vikash Kumar, Bob McGrew, Alex Ray, Jonas Schneider, Peter Welinder, Wojciech Zaremba, Pieter Abbeel
International Conference on Intelligent Robots and Systems (IROS), 2018
arxiv /
In this work, we explore a novel data generation pipeline for training a deep neural network to perform grasp planning that applies the idea of domain randomization to object synthesis. We generate millions of unique, unrealistic procedurally generated objects, and train a deep neural network to perform grasp planning on these objects.
|
|
|
SceneNet RGB-D: Can 5M Synthetic Images Beat Generic ImageNet Pre-training on Indoor Segmentation?
John McCormac, Ankur Handa, Stefan Leutenegger, Andrew J. Davison
International Conference on Computer Vision (ICCV), 2017
arxiv /
We propose a new dataset of 5M indoor images with photorealistic rendering and ground truth for segmentation, depth and optical flow. By training on this huge dataset we are able to show that we can beat a network pre-trained on ImageNet on indoor scene segmentation.
|
|
|
SemanticFusion: Dense 3D Semantic Mapping with Convolutional Neural Networks
John McCormac, Ankur Handa, Stefan Leutenegger, Andrew J. Davison
International Conference on Robotics and Automation (ICRA), 2017
arxiv /
We combine Convolutional Neural Networks (CNNs) and a state of the art dense Simultaneous Localisation and Mapping(SLAM) system, ElasticFusion, which provides long-term dense correspondence between frames of indoor RGB-D video even during loopy scanning trajectories. These correspondences allow the CNN’s semantic predictions from multiple view points to be probabilistically fused into a map. Our system is efficient enough to allow real-time interactive use at frame-rates of approximately 25Hz.
|
|
|
SceneNet RGB-D: 5M Photorealistic Images of Synthetic Indoor Trajectories with Ground Truth
John McCormac, Ankur Handa, Stefan Leutenegger, Andrew J. Davison
arxiv, 2016
arxiv /
An entirely vision based teleoperation for robotic hand-arm system to collect data for imitation learning. The system works without any markers or gloves on the hand.
|
|
|
gvnn: Neural Network Library for Geometric Computer Vision
Ankur Handa, Michael Bloesch, Viorica Patraucean, Simon Stent, John McCormac, Andrew Davison
European Conference on Computer Vision (Workshop): Geometry meets Deep Learning, 2016
arxiv /
We introduce gvnn, a neural network library in Torch aimed towards bridging the gap between classic geometric computer vision and deep learning. Inspired by the recent success of Spatial Transformer Networks, we propose several new layers which are often used as parametric transformations on the data in geometric computer vision.
|
|
|
Understanding Real World Indoor Scenes With Synthetic Data
Ankur Handa, Viorica Patraucean, Vijay Badrinarayanan, Simon Stent, Roberto Cipolla
IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2016
arxiv /
In this work, we focus our attention on depth based semantic per-pixel labelling as a scene understanding problem and show the potential of computer graphics to generate virtually unlimited labelled data from synthetic 3D scenes.
|
|
|
SceneNet: an Annotated Model Generator for Indoor Scene Understanding
Ankur Handa, Viorica Patraucean, Simon Stent, Roberto Cipolla
International Conference on Robotics and Automation (ICRA), 2016
arxiv /
We introduce SceneNet, a framework for generating high-quality annotated 3D scenes to aid indoor scene understanding. SceneNet leverages manually-annotated datasets of real world scenes such as NYUv2 to learn statistics about object co-occurrences and their spatial relationships.
|
|
|
Spatio-Temporal Video Autoencoder With Differentiable Memory
Viorica Patraucean, Ankur Handa, Roberto Cipolla
International Conference on Learning and Representations Workshop Track (ICLRW), 2016
arxiv /
We describe a new spatio-temporal video autoencoder, based on a classic spatial image autoencoder and a novel nested temporal autoencoder. The temporal encoder is represented by a differentiable visual memory composed of convolutional long short-term memory (LSTM) cells that integrate changes over time.
|
|
|
HDRFusion: HDR SLAM using a low-cost auto-exposure RGB-D sensor
Shuda Li, Ankur Handa, Yang Zhang, Andrew Calway
International Conference on 3D Vision (3DV), 2016
arxiv /
We describe a new method for comparing frame appearance in a frame-to-model 3-D mapping and tracking system using an low dynamic range (LDR) RGB-D camera which is robust to brightness changes caused by auto exposure.
|
|
|
SegNet: A Deep Convolutional Encoder-Decoder Architecture for Robust Semantic Pixel-Wise Labelling
Vijay Badrinarayanan, Ankur Handa, Roberto Cipolla
arXiv, 2015
arxiv /
We propose a novel deep architecture, SegNet, for semantic pixel wise image labelling. SegNet is composed of a stack of encoders followed by a corresponding decoder stack which feeds into a soft-max classification layer. The decoders help map low resolution feature maps at the output of the encoder stack to full input image size feature maps. This addresses an important drawback of recent deep learning approaches which have adopted networks designed for object categorization for pixel wise labelling.
|
|
|
A Benchmark for RGB-D Visual Odometry, 3D Reconstruction and SLAM
Ankur Handa, Thomas Whelan, John McDonald and Andrew J. Davison
Interntaional Conference on Robotics and Automation (ICRA), 2014
arxiv /
We introduce the Imperial College London and National University of Ireland Maynooth (ICL-NUIM) dataset for the evaluation of visual odometry, 3D reconstruction and SLAM algorithms that typically use RGB-D data. We present a collection of handheld RGB-D camera sequences within synthetically generated environments. RGB-D sequences with perfect ground truth poses are provided as well as a ground truth surface model that enables a method of quantitatively
evaluating the final map or surface reconstruction accuracy.
|
|
|
Simultaneous Mosaicing and Tracking with an Event Camera
Hanme Kim, Ankur Handa, Ryad Benosman, Sio-Hoi Ieng, Andrew J. Davison
British Machine Vision Conference (BMVC), 2014
arxiv /
We show for the first time that an event stream, with no additional sensing, can be used to track accurate camera rotation while building a persistent and high quality mosaic of a scene which is super-resolution accurate and has high dynamic range.
Best Industry Paper Award Winner.
|
|
|
Real-Time Camera Tracking: When is High Frame-Rate Best?
Ankur Handa, Richard A. Newcombe, Adrien Angeli and Andrew J. Davison
European Conference on Computer Vision (ECCV), 2012
arxiv /
Using 3D camera tracking as our test problem, and analysing a fundamental dense whole image alignment approach, we open up a route to a systematic investigation via the careful synthesis of photorealistic video using ray-tracing of a detailed 3D scene, experimentally obtained photometric response and
noise models, and rapid camera motions.
|
|
|
Applications of Legendre-Fenchel transformation to computer vision problems
Ankur Handa, Richard A. Newcombe, Adrien Angeli and Andrew J. Davison
Departmental Technical Report, 2011
arxiv /
This report presents a tutorial like walk through of the famous Pock and Chambolle primal-dual algorithm and provides a background on the fundametal legendre-fenchel transform that is a building block of the algorithm.
|
|
|
Scalable Active Matching
Ankur Handa, Margarita Chli, Hauke Strasdat and Andrew J. Davison
Computer Vision and Pattern Recognition (CVPR), 2010
arxiv /
We propose two variants called SubAM and CLAM in the context of camera tracking by sequential feature matching with rigorous decisions guided by Information Theory. These variants allow us to match significantly more features than the original AM (Active Matching) algorithm.
|
|


Submit an ADMIRAL data package to the Oxford DataBank
Select a data package for submission
Choose an ADMIRAL directory :
(Choose the directory containing all the content you wish to include in the data package, by clicking on it. This may include sub-directories. All files within the chosen directory will be submitted as a DataBank package)
Choose a data package identifier:
(Enter a unique identifier to be used for the DataBank data package. This defaults to the directory name, but another identifier may be entered.
May contain alphanumeric characters and full stops, underscores, colons and hyphens [. _ : and -] but no spaces [ ] or commas [,])
Create title for data package:
Add description for data package :
(Enter a brief description, explanation or abstract for the data package. You can cut and paste.)
Return to ADMIRAL front page


Science Fictions by Stuart Ritchie
Without doubt, science can easily claim the mantle for being the most consequential and useful mental model for humans to understand and navigate the world. It is therefore a real worry that the issues of replicability and “p-value hacking” are eating away at science’s potential and capability of being a source of real change in the world. In this brilliantly researched book, Stuart Ritchie explains what is wrong with contemporary science, and how the reward structure in research and academia is driving the entire field to turn a blind eye towards biased, flawed and in some cases outright fraud from seeping into some of the world’s most respectable scientific journals. Ultimately, however, the book is a rallying cry for the general scientific community to do some much delayed introspection and to create both bottom up and top driven change to fix some of the malaise that has creeped into the field. Despite its limitations and faults, the scientific method is still mankind’s best bet in solving the existential dangers that face our species. Science Fictions lays the case for how we can equip the field to help us deal with these issues.
Leave a Comment


pass the phone
Chess
's turn
New game
Undo
Redo
Settings
History
Game Link
Captured:
History:
White player name:
Black player name:
FEN:
PGN:
Load FEN/PGN
Sandbox
Engine
Settings
Display
Rotate board after each move
Display board notation
Dark Mode
History
Clear History
Load FEN / PGN
Load FEN / PGN:
Load
Chess Sandbox
Start
Clear
Load FEN:
Load
Stockfish Engine Analysis
Engine Depth:
FEN:
Analyze


pretty much a copy of reds by eplcus on scratch; all credits to them for the unique game concept / arrow keys or swipe to move


Peek-a-boo
Peek-a-boo is an ancient game riddled in mystery and deceit. Though it appears to be an innocent children's pastime, you may change your mind when you learn of its treacherous history.
Let's play peek-a-boo. Click here to see the surprise!
What a cute walrus! Click here to hide her again.
There's a hidden picture of an emu. Click here to see it.
Wow, look at that emu! Click here to hide it.
Click here to show all images.
Click here to hide all images.
Click here to fade in a kitten.
Click
here to fade out a kitten.
Click here to slide in a puppy.
click
here to slide out a puppy.


The MOOSE XFEM implementation uses the phantom node technique, in which elements traversed by a discontinuity are split into two partial elements, each containing physical and non-physical material.
This code generates two sets of elemental variables: `xfem_cut_origin_[0-2]` and `xfem_cut_normal_[0-2]`, which define the origin and normal of a cutting plane to be applied to each partial element. If these both contain nonzero values, this filter will cut off the non-physical portions of those elements.
It is necessary to define the cut planes in this way rather than using a global signed distance function because a global signed distance function has ambiguities at crack tips, where two partial elements share a common edge or face.
The following two images show the mesh before and after the clipping process, with the physical portions of the domain shown in orange and the non-physical portions shown in grey before clipping:
To correctly visualize the results on a mesh with magnified deformation, apply the "Warp" filter after applying this filter.


--- layout: post title: AngularJS And Something For The Designers In My Life date: 2012-12-19 07:44:27.000000000 -07:00 type: post published: true status: publish categories: - AngularJS - JavaScript - jQuery tags: [] meta: _edit_last: '8' _nina_cross_promo: a:1:{s:8:"template";s:17:"custom_1399328552";} _yoast_wpseo_primary_category: '' _wpcom_is_markdown: '1' author: login: ohmadmin email<EMAIL_ADDRESS>display_name: Lukas Ruebbelke first_name: Lukas last_name: Ruebbelke ---
This post is for all the designers in my life. I love AngularJS because as a developer it just makes sense but I am certain it is an entirely confusing and brave new world for some people.
This post was inspired by a series of conversations that I have had with one of my best buds, Shane Mielke, over a project that I am helping him out on. So before we go any further, I encourage you to check out his protfolio at http://www.shanemielke.com/work.php and you will see that he has some serious chops. He is rock solid when it comes to jQuery but it gets totally fuzzy when it comes to writing that same code in AngularJS.
I have a TON of friends who fall into this category. Awesome designer? Check! jQuery skills? Check! AngularJS? Uhhhhhh.... what?
So! I am going to show you a very gentle way to take something you would write in jQuery and convert it into something that doesn't explode the AngularJS universe.
For starters, it is important to mention the relationship that AngularJS has with jQuery. AngularJS comes with a subset of jQuery right out of the box. If you have included jQuery in your document then AngularJS will defer to that version of jQuery. This kind of cooperation right out of the gates is really handy.
I am going to give you the condensed version immediately so that if the light goes on and you cannot wait to go write code, you are not obligated to finish. I love designers as much as AngularJS does. Believe dat!
The simplest way to convert jQuery code into AngularJS is to create a directive and put that code in the link function of that directive.
This does not solve any architecture problems per se and there are some ways to optimize your directives but! this is going to get you started and the side effect is that you will have portable code. Watch this magic trick!
Let us take the click example from the jQuery docs via http://api.jquery.com/click/ and convert it into AngularJS.
{% highlight html %}
First Paragraph
Second Paragraph
Yet one more Paragraph
{% endhighlight %}
So we have all seen some variation of this theme a gazillion times. Target some HTML element and add an event handler to it that does something. The stage has been set.
So first things first, we bootstrap the AngularJS application with ng-app and the module name we want to load.
{% highlight html %}
{% endhighlight %}
And then we hint at something amazing.
[js]
var myModule = angular.module('myModule', []);
myModule.directive('slideUp', function () {
var linker = function (scope, element, attrs) {
// WAIT FOR IT!
};
return {
restrict:'A',
link:linker
}
})
[/js]
So I have created a directive called slideUp and we are going to put some DOM manipulation code in place to fulfill its destiny. You may want to sit down for this.
[js]
myModule.directive('slideUp', function () {
var linker = function (scope, element, attrs) {
element.on('click', function () {
$(this).slideUp();
});
};
return {
restrict:'A',
link:linker
}
})
[/js]
What the!? That looks almost like the jQuery code. True story bro! The difference is that the parameter element is already a jQuery object so we don't have to query it via $( ).
That is all nice and wonderful but how do we use it?
{% highlight html %}
Second Paragraph
Yet one more Paragraph
{% endhighlight %}
Special Note: AngularJS converts camel case directive names into snake case and so slideUp becomes slide-up.
So that was easy! But here is the really cool part. You can now use that directive to 'decorate' other elements.
{% highlight html %}
Second Paragraph
Yet one more Paragraph
{% endhighlight %}
With no modification, I simply added slide-up to my div tag and it worked exactly the same. This is what I mean by 'portable'.
I am going to show you a few quick variations to get the wheels turning. I am only going to explain the interesting parts of each example and not belabor the redundant bits.
The next series of examples are going to be built around jQuery click event and the animate function. The premise is fairly simple. I want to animate an element in some direction when I click it.
For reference purposes you can see the full code here:
https://github.com/simpulton/angular-designers
Let us create a directive called animateRight.
[js]
myModule.directive('animateRight', function () {
var linker = function (scope, element, attrs) {
// So far so good.
};
return {
restrict:'A',
link:linker
}
})
[/js]
Lets add in the click handler.
[js]
myModule.directive('animateRight', function () {
var linker = function (scope, element, attrs) {
var right = function() {
// Well THAT was easy
}
element.on('click', right);
};
...
})
[/js]
And the animate part.
[js]
myModule.directive('animateRight', function () {
var linker = function (scope, element, attrs) {
var right = function() {
// We move it right by increasing the distance on the left - go figure
$(this).animate({
left: '+=150'
})
}
element.on('click', right);
};
...
})
[/js]
And this is how we decorate the DOM.
{% highlight html %}
{% endhighlight %}
And for fun let us create a variation that moves the element down.
[js]
myModule.directive('animateDown', function () {
var linker = function (scope, element, attrs) {
var down = function() {
$(this).animate({
top: '+=150'
})
}
element.on('click', down);
};
...
})
[/js]
So you may have noticed this bit of code that says restrict:'A' and wondered what in the world that is for. That essentially tells the directive that it can only be used as an attribute. You can also use E for element and C for class.
And since I brought it up, let me show you how a class directive works.
[js]
myModule.directive('animateRightClass', function(){
...
return {
restrict:'C',
link: linker
}
})
[/js]
Change A to C and give it a new name for fun and drop it in your HTML. Bam!
{% highlight html %}
{% endhighlight %}
And one more example for the road! You may have noticed the scope and attrs function being passed in to the link function. Do they actually do something? Well yes they do! Let us create a directive of the more dynamic variety.
{% highlight html %}
{% endhighlight %}
We are now passing in the direction that we want the element to animate.
Let us create the animate directive.
[js]
myModule.directive('animate', function(){
var linker = function(scope,element,attrs) {
// BY NOW THIS HAS GOT TO BE BOOOOOORING!
};
return {
restrict:'A',
link: linker
}
})
[/js]
Scope is the current scope of the directive and attrs is an array of all the attributes on the element the directive lives on. So in the example above the way to get the value of what direction you want the directive to animate you simply refer to it as attrs['animate'].
We are also going to create some functions on scope that we can dynamically reference in the event handler.
[js]
myModule.directive('animate', function(){
var linker = function(scope,element,attrs) {
scope.up = function() {
// You know what to do here
}
scope.down = function() {
// You know what to do here
}
scope.left = function() {
// You know what to do here
}
scope.right = function() {
// You know what to do here
}
var direction = attrs['animate'];
element.on('click', scope[direction]);
};
...
})
[/js]
My favorite part of all this is that we are playing to JavaScript's strength and doing some dynamic function referencing which is really cool!
I have walked you through a series of examples that shows how easy it is to pull your jQuery code into a directive and then 'decorate' your DOM with that functionality. The upside is that your code now becomes very portable and you can apply it to more than one element without having to go down the path of writing a query for every element you want to target.
Another upside is that because of the way that AngularJS compiles directives you never have to worry about dynamic elements getting event handlers. This is because the element parameter is always a jQuery object to start out with.
The Code Example:
https://github.com/simpulton/angular-designers
Shane Mielke's Portfolio [He really is one of my favorite designers]:
http://www.shanemielke.com/work.php
AngularJS Directive Guide [Which I still reference often]:
http://docs.angularjs.org/guide/directive


-
5 by 5 an Internet broadcasting network.
-
The Changelog is a member supported blog, weekly newsletter and podcast that covers the intersection of software development and open source.
-
Debug is a conversational interview show about developing software and services, primarily for iPhone, iPad, Mac, and gaming. Hosted by Guy English and Rene Ritchie, it's all the great talk you get at the bar after the conference, wrapped up in convenient podcast form.
-
Dev1.tv is a podcast focusing on entry level developers.
-
.NET Rocks is an Internet audio talk show for .NET developers.
-
FLOSS Weekly is all about Free Libre Open Source Software. Join host Randal Schwartz and his rotating panel of co-hosts every Wednesday as they talk with the most interesting and important people in the Open Source and Free Software community.
-
Hanselminutes Podcast is "Fresh Air" for developers. Scott Hansel interviews movers and shakers in technology in this commute-time show. From Michio Kaku to Paul Lutus, Ward Cunningham to Kimberly Bryant, Hanselminutes is talk radio guaranteed not to waste your time..
-
Herding Code is a weekly developer discussion featuring K. Scott Allen (odetocode.com), Kevin Dente, Scott Koon (lazycoder.com), and Jon Galloway.
-
How to Program with Java will teach you step by step how to use the Java programming language to create your own applications or web applications! These Java tutorials are presented in plain English and explain all of the important Java programming concepts needed to excel in the field of software.
-
The Java Posse is a podcast of news, discussion, and interviews about the Java programming language and associated Java technologies.
-
JavaScript Jabber is a podcast focusing on the JavaScript language.
-
Mostly Erlang is a podcast about Erlang and sometimes other functional programming.
-
Mostly Lazy is a Clojure podcast... when they get around to it.
-
NodeUp is a Node.js podcast.
-
On Computing is a podcast featuring Grady Booch, software engineer. In this podcast, Brooch reads from his On Computing columns from IEEE Software magazine.
-
PHP Town Hall is a way for PHP developers to raise questions about current events (or upcoming things) in the PHP community, with different guests each week.
-
Programming Throwdown attempts to educate Computer Scientists and Software Engineers on a cavalcade of programming and tech topics. Every show will cover a new programming language, so listeners will be able to speak intelligently about any programming language.
-
Ratchet and the Geek is a podcast about the intersection of social media, pop culture, and technology.
-
Relevance is a podcast from the software company Relevance. In this podcast, Relevance's Craig Andera interviews guests like Rich Hickey, the author of Clojure, Jason Wolfe from Prismatic, Stu Halloway, and Michael Fogus. Listeners will also hear about the business of cloud native software development and the latest advances in the Clojure language.
-
Ruby Rogues - Rubyist.where(:rogue => true).limit(6).all.talk(:about => Topics.where(:awesome => true))
-
Security Now - Steve Gibson, the man who coined the term spyware and created the first anti-spyware program, creator of Spinrite and ShieldsUP, discusses the hot topics in security today with Leo Laporte.
-
Software Engineering Radio is a podcast targeted at the professional software developer. The goal is to be a lasting educational resource, not a newscast. Every two to four weeks, a new episode is published that covers all topics software engineering. Episodes are either tutorials on a specific topic, or an interview with a well-known expert from the software engineering world.
-
The Stack Exchange Podcast gives you an unparalleled look inside the building and running of one of the web's hottest startups: Stack Exchange. Instead of the typical podcast format, Jeff and Joel are joined by a different guest each week as they discuss the strategy and direction of Stack Exchange, the decisions they've made about the community and where things are going next.
-
This Developer's Life is a podcast about developers and their lives.
-
This Week on Channel 9 is a podcast for developers straight from Microsoft.
-
The Treehouse Show is your weekly dose of web design and web development news, hosted by Nick Pettit (@nickrp) and Jason Seifer (@jseifer) of Team Treehouse.
-
Yet Another Podcast is a podcast by Jesse Liberty focusing on intelligent technical conversation.
-
Player.FM is a podcast directory with numerous technical shows.