Dear Vis 2016 Reviewer,
You have successfully accessed booc.io anonymously - we are not tracking this account in any way. You have a Teacher account: this means you can view the Gov 2001 course, but also create your own course and put in the concepts and dependencies. Because booc.io encourages sharing content between courses, teachers have editing access to all material. Since this is a running system, we ask you to not edit or remove any of the existing materials. Other than that, please feel free to play around with everything.
Thanks for trying booc.io!
Start exploring!


public class Vertex
extends java.lang.Object
QuadEdgeSubdivision
.
The sites can be points on a line string representing a
linear site.
The vertex can be considered as a vector with a norm, length, inner product, cross product, etc. Additionally, point relations (e.g., is a point to the left of a line, the circle defined by this point and two others, etc.) are also defined in this class.
It is common to want to attach user-defined data to the vertices of a subdivision. One way to do this is to subclass Vertex to carry any desired information.
| Modifier and Type | Field and Description |
|---|---|
static int |
BEHIND |
static int |
BETWEEN |
static int |
BEYOND |
static int |
DESTINATION |
static int |
LEFT |
static int |
ORIGIN |
static int |
RIGHT |
| Constructor and Description |
|---|
Vertex(Coordinate _p) |
Vertex(double _x,
double _y) |
Vertex(double _x,
double _y,
double _z) |
| Modifier and Type | Method and Description |
|---|---|
Vertex |
circleCenter(Vertex b,
Vertex c)
Computes the centre of the circumcircle of this vertex and two others.
|
double |
circumRadiusRatio(Vertex b,
Vertex c)
Computes the value of the ratio of the circumradius to shortest edge.
|
int |
classify(Vertex p0,
Vertex p1) |
boolean |
equals(Vertex _x) |
boolean |
equals(Vertex _x,
double tolerance) |
Coordinate |
getCoordinate() |
double |
getX() |
double |
getY() |
double |
getZ() |
static double |
interpolateZ(Coordinate p,
Coordinate p0,
Coordinate p1)
Computes the interpolated Z-value for a point p lying on the segment p0-p1
|
static double |
interpolateZ(Coordinate p,
Coordinate v0,
Coordinate v1,
Coordinate v2)
Interpolates the Z-value (height) of a point enclosed in a triangle
whose vertices all have Z values.
|
double |
interpolateZValue(Vertex v0,
Vertex v1,
Vertex v2)
For this vertex enclosed in a triangle defined by three vertices v0, v1 and v2, interpolate
a z value from the surrounding vertices.
|
boolean |
isCCW(Vertex b,
Vertex c)
Tests whether the triangle formed by this vertex and two
other vertices is in CCW orientation.
|
boolean |
isInCircle(Vertex a,
Vertex b,
Vertex c)
Tests if the vertex is inside the circle defined by
the triangle with vertices a, b, c (oriented counter-clockwise).
|
boolean |
leftOf(QuadEdge e) |
Vertex |
midPoint(Vertex a)
returns a new vertex that is mid-way between this vertex and another end point.
|
boolean |
rightOf(QuadEdge e) |
void |
setZ(double _z) |
java.lang.String |
toString() |
public static final int LEFT
public static final int RIGHT
public static final int BEYOND
public static final int BEHIND
public static final int BETWEEN
public static final int ORIGIN
public static final int DESTINATION
public Vertex(double _x, double _y)
public Vertex(double _x, double _y, double _z)
public Vertex(Coordinate _p)
public double getX()
public double getY()
public double getZ()
public void setZ(double _z)
public Coordinate getCoordinate()
public java.lang.String toString()
toString
in class java.lang.Object
public boolean equals(Vertex _x)
public boolean equals(Vertex _x, double tolerance)
public boolean isInCircle(Vertex a, Vertex b, Vertex c)
a
- a vertex of the triangleb
- a vertex of the trianglec
- a vertex of the trianglepublic final boolean isCCW(Vertex b, Vertex c)
b
- a vertexc
- a vertexpublic final boolean rightOf(QuadEdge e)
public final boolean leftOf(QuadEdge e)
public double circumRadiusRatio(Vertex b, Vertex c)
b
- second vertex of the trianglec
- third vertex of the trianglepublic Vertex midPoint(Vertex a)
a
- the other end point.public Vertex circleCenter(Vertex b, Vertex c)
b
- c
- public double interpolateZValue(Vertex v0, Vertex v1, Vertex v2)
public static double interpolateZ(Coordinate p, Coordinate v0, Coordinate v1, Coordinate v2)
p
- the point to interpolate the Z value ofv0
- a vertex of a triangle containing the pv1
- a vertex of a triangle containing the pv2
- a vertex of a triangle containing the ppublic static double interpolateZ(Coordinate p, Coordinate p0, Coordinate p1)
p
- p0
- p1
-


This is a project page template based on bootstrap 4.1 and jQuery for github projects.
One of its main feature is to saparate the template part and page content part. The benefit it provides is to change some part of a page for example a header, one dont have to update it on every page, it is just updated in its template file and the loading jQuery will manege it for final website


|
modular-ws2812-display-esp32
1.0
ESP32 software for controlling WS2812 LED display via phone app.
|
Go to the source code of this file.
Functions | |
| void | LedDriverTask (void *parameter) |
| Led Driver Task. Runs the state machine by observing the following global flags to persist loops. More... | |
| void | processLiveData (char *receivedData) |
| Receive a pixel color and position to update on the display. This is called various times in the Billboard Draw screen. More... | |
| void | defaultDisplayState () |
| Runs by default on power up, as well as when the phone application is not controlling the state. Loops through the default display arrays and displays the frames with their assigned effect. Loop is interrupted when a state change is triggered by the phone application. More... | |
| void | animationDisplayState () |
| Displays an animation chosen by the phone application. The following are the available animations: More... | |
| void | openFileState () |
| Reads the received filename from the Websocket server and displays it to the LED display. Global Variables Used: More... | |
| void | clearDisplayState () |
| Used to clear the LED display. This state is entered from the from the animation and open file state. It exits to the default display state. More... | |
| void | listenLiveInputState () |
| Listens for input on the flag "receivedLiveData". The Websocket server listens from input from the phone application, loads data to matrix object, and updates "receivedLiveData" to allow the LED driver task to display the new data. More... | |
| void | clearLiveInputDisplay () |
| State that clears the LED display and then returns back to the live input state. This state is only accessible from the live input state. More... | |
| void | shiftByColumn (const size_t currentCol, const size_t frameIndex) |
| Loads the next frame into the buffer, and the current frame into the matrix object. On each completion, it shifts the displayed frame one column to left or right(depending on direction). Fills the empty new column with the corresponding column of the next frame. More... | |
| void | shiftByRow (const size_t currentRow, const size_t frameIndex) |
| Loads the next frame into the buffer, and the current frame into the matrix object. On each completion, it shifts the displayed frame one column to top or bottom(depending on direction). Fills the empty new row with the corresponding row of the next frame. More... | |
| bool | toggleDisplay (const bool toggleBlink, const size_t frameIndex) |
| Toggle the display based on the "toogleBlink flag". More... | |
| size_t | getNumericDec (const char *number) |
| Convert a string number (i.e. "12", "155", etc) into a base 10 number. More... | |
| void animationDisplayState | ( | ) |
Displays an animation chosen by the phone application. The following are the available animations:
| void clearDisplayState | ( | ) |
Used to clear the LED display. This state is entered from the from the animation and open file state. It exits to the default display state.
| void clearLiveInputDisplay | ( | ) |
State that clears the LED display and then returns back to the live input state. This state is only accessible from the live input state.
Global Variables Used:
| void defaultDisplayState | ( | ) |
Runs by default on power up, as well as when the phone application is not controlling the state. Loops through the default display arrays and displays the frames with their assigned effect. Loop is interrupted when a state change is triggered by the phone application.
Uses a timer interrupt to trigger frame advancement.
Global Variables Used (all extern):
| size_t getNumericDec | ( | const char * | number | ) |
Convert a string number (i.e. "12", "155", etc) into a base 10 number.
| number | String to be converted to number. |
| void LedDriverTask | ( | void * | parameter | ) |
Led Driver Task. Runs the state machine by observing the following global flags to persist loops.
The following are the states observed by the global variable "stateMachine" after entering the outermost loop through the appInput flag.
| parameter | Array of parameters entered on function call. |
| void listenLiveInputState | ( | ) |
Listens for input on the flag "receivedLiveData". The Websocket server listens from input from the phone application, loads data to matrix object, and updates "receivedLiveData" to allow the LED driver task to display the new data.
Global Variables Used:
| void openFileState | ( | ) |
Reads the received filename from the Websocket server and displays it to the LED display. Global Variables Used:
| void processLiveData | ( | char * | receivedData | ) |
Receive a pixel color and position to update on the display. This is called various times in the Billboard Draw screen.
| receivedData | Pixel data sent from the phone application. Data Format: "index color" -> pixel index first, then 24 bit color separated by a space |
| void shiftByColumn | ( | const size_t | currentCol, |
| const size_t | frameIndex | ||
| ) |
Loads the next frame into the buffer, and the current frame into the matrix object. On each completion, it shifts the displayed frame one column to left or right(depending on direction). Fills the empty new column with the corresponding column of the next frame.
Global Variables Used:
| void shiftByRow | ( | const size_t | currentRow, |
| const size_t | frameIndex | ||
| ) |
Loads the next frame into the buffer, and the current frame into the matrix object. On each completion, it shifts the displayed frame one column to top or bottom(depending on direction). Fills the empty new row with the corresponding row of the next frame.
Global Variables Used:
| bool toggleDisplay | ( | const bool | toggleBlink, |
| const size_t | frameIndex | ||
| ) |
Toggle the display based on the "toogleBlink flag".
| toggleBlink | const bool -> Flag that curresponds to current state of display. The flag is true when a frame is being displayed. The flag is false when the display is cleared. |
| frameIndex | const size_t -> Index of the current frame being displayed |


getpcaps - display process capabilities
getpcaps[optional args] pid...
getpcaps displays the capabilities on the processes indicated by the
pid value(s) given on the commandline. The capabilities are displayed
in the cap_from_text(3) format.
Optional arguments:
--help or --usage Displays usage information and
exits.
--ugly or --legacy Displays output in a somewhat
ugly legacy format.
--verbose Displays usage in a legacy-like format but not
quite so ugly in modern default terminal fonts.
capsh(8), setcap(8) and getcap(8).
This manual page was originally written by Robert Bihlmeyer
<EMAIL_ADDRESS>for the Debian GNU/Linux system (but may be used by
others).


Beginner Friendly
The code is well written and easy to understand by beginners.
Code Less
This library aims for developers to save time.
Open Source
Freely available for everyone to redistribute and modify.
Features
- Scene Manager
- Asset Loading
- Music/ Sound Rendering
- Canvas Rendering
- Sprite Animations
- Useful Methods
- GameObject


Thank you for creating an account.
Please confirm your email address by clicking Confirm email button below:
Confirm email
Thanks
{{ siteTitle }} {{ domain }}


--- layout: full-width ---
{{ page.date | date: "%B %-d, %Y" }}
[Disclaimer: I am not an expert on this topic, and I have likely just learned about this material for the first time. I don't guarantee the accuracy or correctness of anything. Consider this to be a page in my personal notebook. It is subject to change and revision over time. Equations in images are screen shots taken from study sources.]
{{ content }}


What We Are
Machine Tool Sources (MTS) is your handy and comprehensive guide to machine tool sourcing from Taiwan and the world. MTS features all of the latest products and features from the very best machine tool manufacturers. Also with our easy to navigate advertiser index, designed and developed by our experienced marketing team, finding the right machine has never been easier.
MTS is supported by the largest machine tool sourcing website in Taiwan, www.machinetools.net.tw which features hundreds of HD machine videos and thousands of detailed product catalogs across the metalworking sectors. So when looking for your next machine, be sure to check out this website for smarter and more efficient machine sourcing first.
Machine Tool Sources - Your Next Machine is Here !


Number Checker
Math Quiz Time
How many can you solve in one minute?
Maximum Number Used in Problem
10
100
1000
+
-
*
Random
Start Game
Time
00:00
Problem
Your Answer
Missed Questions to Practice


An implicit connection structure has the nice property that additional components can be added to the structure without the need for additional explicit connections. A new component becomes automatically connected to the system.
Consider the CircuitBoard Modelica code below. New components added to the compvec vector within the compTwo model instance become automatically connected. The reason is that all outer envHeat connectors within the compvec vector automatically reference the inner envHeat definition connector declared in the CircuitBoard.
As a comparison we show the same example modeled using traditional explicit connections depicted in with corresponding Modelica code below.Each time we add a new component to the compvec vector in the compTwo instance, an additional explicit connection has to be added into the TwoComponents class as a connect-equation


pysnn.utils
pysnn.utils¶
-
pysnn.utils.
conv2d_output_shape
(h_in, w_in, kernel_size, stride=1, padding=0, dilation=1)¶ Determine output shape after a 2D convolutional layer.
- Parameters
h_in – Height of input image.
w_in – Width of input image.
kernel_size – Dimensions of the convolutional kernel.
stride – Stride of convolutional operation.
padding – Padding of convolutional operation.
dilation – Dilation of convolutional operation.
- Returns
(Height, Width) of output image.
-
pysnn.utils.
interspike_time
(spike_array)¶ Determine number of timesteps between all consecutive spikes.
- Parameters
spike_array – 1 dimensional spike array
- Returns
array with the time between all consecutive spikes.
-
pysnn.utils.
tensor_clamp
(tensor, min, max)¶ Clamp tensor with a separate value for each element in the input tensor.
- Parameters
tensor – Tensor to clamp.
min –
Tensor
containing minimum value for each element.max –
Tensor
containing maximum value for each element.
- Returns
Clamped input
Tensor
.


{% extends "app/layout.html" %} {% block main %}
Ball Game
Central America Pok A Tok
Ball Court in Chichen Itza
Pok A Tok
Cathedral of San Ildefonso, Merida, Mexico


|
This topic describes the MAF component classes.
Manager Components
Manager components normally don't have many public methods as they use an API function through which they are called by their client components.
Component
|
Description
|
TmafManagerLoader
|
Loader component for manager modules
|
TmafHookManager
|
The module and DynamicCode manager
|
TmafResourceManager
|
The resource manager component for graphics, localized language file and SQL strings.
|
TmafLinkManager
|
|
TmafWindowManager
|
|
TmafDataStorage
|
Data stream storage component
|
TmafFileLogger
|
Logging component for reporting errors, warnings and information during the execution
|
TmafUserSecurity
|
User security component
|
TmafGlobalVars
|
Global variable support
|
Client Components
|


Cyprus
This is my first website, about Cyprus.
Facts about Cyprus
- Cyprus is a country in Asia.
- The capital city of Cyprus is Nicosia.
- The President of Cyprus is called Nicos Anastasiades.
Website
Click me to go to the Cypriot Tourism website.
Picture gallery
| Picture |
Description |
|
Cypriot flag |
|
Map of Europe showing Cyprus in dark green |


I VOW TO
Ideas and skills I'd be hyped to bring to Vow To Be Chic
I VOW TO DESIGN IMMERSIVE UX
By using visual hierarchy and transparencies, secondary screens like logins and forms can be displayed on top of main screens.
Fewer click throughs, more conversions.
I VOW TO MAKE KEY SYSTEMS...FUN
Calendars, WMS, and other key features
-- whether used in-house or by bridesmaids --
should be designed + developed cleanly and simply.
I VOW TO CREATE INTERACTIVE PITCH DECKS
Fun, web-based pitch decks that can tell a story when you're not there. Imagine DressRush's from 500 Startups.


Introduction
Simran Singh looks at her watch in disgust as she leaves the meeting room. “I told Bob this would happen,” she says calmly to Marty Feldman, her second in command and confidant. “But did they listen? Now I have to somehow try to install safeguards on all our systems with what’s left of our department’s budget.”
Simran rose through the ranks of North America’s premier defense company due to her mix of business savvy, security knowledge, and track record for fixing impossible solutions. She is known throughout the company for never having to ask for more money than her department is allocated. Simran is also the most respected security mind in the company. During her first week, she was immediately dedicated as part of the incident handling team responsible for handling a companywide worm outbreak. Her superiors were so impressed by the way she operated, before long she was leading the teams of handlers for all the critical incidents in the organization. Within two years, she was head of the department and continued to prove herself by reducing enterprise-wide incidents by 66%. It was no surprise to her employees, peers, and senior managers when she was unanimously nominated for the recently vacated Chief Information Security Officer (CISO) position. Although Simran would prefer to receive the promotion under less hostile circumstances, she completely understands why out-going CISO Bob Rogers is no longer a viable option to continue in the role. Bob spends most of his time on the golf course instead of listening to the department warnings about difficult to protect network entry points. His failure to listen to his team is his downfall. The completely preventable breach, which resulted in the theft of top-secret ballistic missile guidance software, had cost the company its largest contract in 10 years and damaged its reputation with all existing customers.
“What’s the plan, boss?” Marty asked Simran, already knowing that her mind was spinning and formulating a plan of attack. “Well, we used our entire budget on those redundant perimeter firewalls and intrusion prevention systems to help mitigate denial of service attacks,” mused Simran. “So we have a hard candy shell and a soft, chewy center?” laughed Marty. “And we’re all out of money for nougat!” exclaimed Simran. “What about that open source HIDS tool we saw on the SANS Institute webinar a few weeks back?” asked Marty. “Do you think that would do the trick?” Simran remembered that OSSEC sounded like a very capable and feature-rich HIDS, and had jotted some notes in her notebook to follow up on at a later time. “Good idea, Marty,” said Simran, thinking that this was the exact reason why you should always surround yourself with smart people. Smart people come up with creative ideas, and creative ideas must be considered. “Can you do some further investigation into this OSSEC application and get back to me by the end of the week?” Marty looked at his Smartphone and noted that it was alreadyInstallation • Chapter 2 Thursday. Marty didn’t miss a beat and simply answered, “Can do, boss!” Marty knows that the end of this week is a hard deadline. He has worked for Simran long enough to know when something was important enough to be asked to pull an all-nighter. As Marty exited the elevator he thought, “If I can’t get this done by Friday, there might be another witch hunt upstairs next week.” Marty chuckled under his breath, “If I don’t play my cards right, then I might be promoted next.” Never had the thought of a promotion had such ominous overtones.
“Boss! Boss!!” Marty yelled as he ran across the lobby toward Simran. “Have you been here all night?” asked Simran, already knowing the answer. Marty was unshaved, wearing yesterday’s clothes, and had enough caffeine in him that he could probably fly around the world a few times on his own power. “Of course I’ve been here all night!” raced Marty. His eyes were blinking faster than his lips were moving. Simran laughed and wondered if he was trying to use his eyes to explain his findings using Morse code at the same time he was talking to her. “I listened to the webcast again, went to the OSSEC Web site, downloaded the software, read the documentation, joined the mailing list, and then searched the mailing list archives, and you know what?” Marty said, his mouth starting to get dry, and seemingly waiting for a response. “What, Marty?” asked Simran. “Hey! It’s raining out?” asked Marty, staring past Simran. Simran snapped her fingers. “Stay on target, stay on target,” said Simran, knowing Marty would appreciate the Star Wars reference. “Ha! Sorry, running on fumes here!” exclaimed Marty. “There are quite a few OSSEC deployments out there and lots of people are using the deployments in an enterprise environment. Even some Telco-sized organizations have deployed OSSEC on thousands of machines and couldn’t be happier with it and they say that scalability isn’t a problem, which we are always worried about because we’re a huge company and we’re starting to grow and our number of systems is growing exponentially, am I right or what? Boy I could use a coffee.” Simran handed her latte to Marty. “Cheers!” exclaimed Marty, taking a huge gulp. “Will it work in a mixed environment?” asked Simran. “Totally! It works on Windows, Linux, Unix, Solaris, OS X, and a bunch of others!” yelled Marty, oblivious to the stares he was drawing from others in the lobby. “Indoor voice, Marty,” said Simran. “So you’ve already installed it on some test servers, I assume?” Marty took another chug of his newly acquired latte, “Fifty or so...wait...maybe sixty-five...no fifty-five...sixty, definitely sixty!” Simran couldn’t believe it. “That’s quite the deployment for a test bed.” Marty shrugged. “I had the time.” He laughed. “It only took about five minutes per machine, which gave me plenty of time to tunnel into my boxes at home and install it on them as well. I guess that makes the total count sixty-five, if we include my systems.” Simran smiled. “Marty, I think we’ve done it again. Let’s have these systems run over the weekend and I’ll draft a proposal to present on Monday. If all goes well,” winked Simran, “we’ll be deploying on our production servers in no time at all.”


Currency converter
Currency converter
Historical exchange rates
Settings
☰
☰
Currency converter
There is no internet connection.
Currency converter
Currency I have
Amount
⬍
Currency I want
Amount
An error occurred.


Renew Certificate
Key Vault Certificate
Please select one
{{ certificate.name }}
DNS Names
{{ toUnicode(dnsName) }}
Expire
{{ certificate.expiresOn }}
Key Type
{{ certificate.keyType }}
Key Size
{{ certificate.keySize }}
Elliptic Curve Name
{{ certificate.keyCurveName }}
Reuse Key on Renewal?
{{ certificate.reuseKey }}
Renew


Philips Hue
Philips Hue
I’ve had a number of smart items around the house now for a few years. These have mainly been the TP-Link smart plugs, but I’d also got two Elgato Eve smart plugs and a single TP-Link bulb.
In general, these have been OK, though they don’t all link together - TP-Link is controlled through its Kasa platform (and works with Alexa) but the Elgato plugs only work with Apple HomeKit and therefore have to be operated using our phones only (no HomePod). In addition, there were multiple occasions where the Kasa platform wasn’t performing as it should - for example, I’d got a scene set that should shut down all the lights in the front room when going to bed, but often it would not work.
However, switching to the Philips Hue has been a complete difference. The lights connected to the hub straight away with no hassle at all. I just plugged the hub in and then put the light bulbs in to the fixtures and then the hub picked them up straight away. That was it!
The hardest part was setting the bulbs up to the different rooms and that was straight forward, so it’s not too hard.
Once setup, the app shows all the Hue items around the house. You can then change the apps per room and then the individual lights per room.
This allows fine tuning within each room as you like.
Of course, all items are also in the Home app as well, as Hue plays nicely with HomeKit. You are offered the option of syncing the hub with the items in Home when you go in to the settings within the Hue app.
However, I’ve found the control in the Home app is not as good as that within the Hue app itself. Compare the two controls between the two apps.
The Home app is much simpler than the Hue app in terms of colours and settings, so sometimes it’s worth getting the phone out to use the Hue app itself.
I believe that a number of the lights work without having the Philips Hue hub, though as I purchased a starter pack, this came with the Hub itself. It doesn’t need the Apple TV or HomePod to control all the items, as the Hub will take care of it. This means we can setup items like timing - we’re often in bed before 23:00, so having the lights switch off in case we’ve left them on will save some power.
After using these for about a week, I’m far more impressed with them that I have been with the alternative products on the market. These are slightly more expensive, but so far have justified the additional expense. We’ll continue to have a play - I’ve ordered some of the buttons now as well to setup. Part of the reason for getting the lights was because we’re expecting and we’ve been constantly told that if we’re looking to go in to the baby’s room at night, not to turn the main light on - however, if we can set the switch up to only turn the light on to a very dim light (which the switches can be set to do), then this would be worthwhile.
Overall, I’m happy with them, and will probably expand them around the house slightly as we go - I can see where a light strip would fit nicely in the kitchen for example!


2 out of 3 ain't bad Go
By Ross Anthony
Like "Hillary and Jackie", "Lovers of the Arctic Circle" and even "Pulp Fiction"; "GO" tells the same story from more than one perspective -- three in fact. Each perspective is carefully titled (ie: screen goes black, name of character whose point of view is to be portrayed appears in white). I find this a bit patronizing, I'd rather the filmmakers just thrust us into the next perspective and let us figure it out. I'd appreciate that momentary confusion.
"GO" depicts the fumbling side of the underworld, with believable foul-ups that include graphic un-glorified violence and stumblingly fun dialogue. This being the genre of "Pulp Fiction," and more recently, "Lock Stock and Two Smoking Barrels."
In the "GO" story a young teen grocery cashier short on cash plays drug dealer for the night. She and her friends get in way over their heads.
Perspective one: Ronna (Sarah Polley) decides to act as replacement for her drug-dealing friend Simon who has taken off to Las Vegas for the Weekend. I did not like this soulless character. I did not Polley's acting. I did not like this third of the movie, Sam I am.
Perspective two: Simon (Desmond Askew) weasels his buddy Marcus (Taye Diggs) into a violent predicament with two Las Vegas thugs. The interplay between the two is quite entertaining. One of the best clips of dialogue plays in the preview.
Perspective three: Adam (Scott Wolf) and Zack (Jay Mohr) are con men recruited by an oddball detective to entrap Simon (or in this case -- Ronna).
Though I nearly walked out of this film during the first telling of the story -- the second and third perspectives were extremely entertaining and very cleverly intertwined.
Starring Desmond Askew, Taye Diggs, William Fichtner, J.E. Freeman, Katie Holmes, Jane Krakowski, Breckin Meyer, Jay Mohr, Timothy Olyphant, Sarah Polley and Scott Wolf. Directed by Doug Liman. Written by John August. Produced by Paul Rosenberg and Mickey Liddell and Matt Freeman at Columbia/banner/Saratoga. Rated R.
Grade..........................B+
-- Copyright © 1999 Ross Anthony, currently based in Los Angeles, has scripted and shot documentaries, music videos, and shorts in 35 countries across North America, Europe, Africa and Asia. For more reviews visit: http://RossAnthony.com
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


Data Scientist (Mathematical and Statistical Sciences) - Charlottesville, VA 22903
(ALL CANDIDATES MUST HOLD AN ACTIVE DOD TS/SCI CLEARANCE TO APPLY)
We are seeking a mathematical and statistical scientist who possesses a strong background in the development and application of data mining, analysis, aggregation, fusion, and visualization in order to process, analyze, and integrate raw data facilitating the production and dissemination of scientific and technical intelligence and general military intelligence relating to foreign ground forces research, development, systems, and operations. Focus of work is to contribute to data-driven all-source analysis, assessment, and decision making and implement innovative methodologies which enhance production and dissemination activities. Must currently possess a DoD TS/SCI clearance.
This position is located at a Government installation in Charlottesville, VA.
Required Skills
THE FOLLOWING REQUIREMENTS MUST BE MET TO BE CONSIDERED FOR THIS POSITION:
- Possess a DoD TS/SCI clearance.
- MA/MS in Statistics, Mathematics, or a related field with 3-10 years of experience.
- Experience in processing, tagging, and indexing unstructured, semi-structured, and structured classified and unclassified data sets.
- Experience developing research designs, including formulating testable questions, identifying and defining key concepts and variables, and matching appropriate methods to problems.
- Experience in data project management, including cleaning and preparing data, and creating, structuring, and maintaining data sets.
- Understanding of data analysis, including manipulating datasets and interpreting findings using a mix of programs/environments, such as R, Python, Matlab, and techniques, such as text and pattern analysis, classification, change/anomaly detection, time-series, regression, geospatial, and/or social network analysis.
- Experience using text/web analytics for establishing and expanding keyword searches and using bibliometric analysis tools to perform horizon scans and deep dives into NGIC identified S&T research fields.
- Experience in creating mathematical models in R, Python, and/or Matlab.
- Willingness to work in small groups or independently as necessary.
- Demonstrated technical writing and presentation skills.
- Other duties as assigned.
DESIRED QUALIFICATIONS
- PhD in Statistics, Mathematics, or Data Analysis with 0-3 years of experience.
- Experience reviewing and assessing military ground technologies.
- Experience with all-source assessments for intelligence agencies.
Required Experience


JavaScript is disabled on your browser.
Skip navigation links
Package
Class
Use
Tree
Deprecated
Index
Help
Prev
Next
Frames
No Frames
All Classes
A
B
C
D
I
L
M
O
P
Q
S
T
V
W
A
AwsClients
- Class in
com.github.davidmoten.rx2.aws
B
bucketName(String)
- Method in class com.github.davidmoten.rx2.aws.
Sqs.SqsBuilder
bytes()
- Method in class com.github.davidmoten.rx2.aws.
SqsMessage
C
com.github.davidmoten.rx2.aws
- package com.github.davidmoten.rx2.aws
RxJava helper for SQS + S3.
createS3Client(AWSCredentials, ClientConfiguration, Regions)
- Static method in class com.github.davidmoten.rx2.aws.
AwsClients
createSqsClient(AWSCredentials, ClientConfiguration, Regions)
- Static method in class com.github.davidmoten.rx2.aws.
AwsClients
D
deleteMessage()
- Method in class com.github.davidmoten.rx2.aws.
SqsMessage
deleteMessage(SqsMessage.Client)
- Method in class com.github.davidmoten.rx2.aws.
SqsMessage
deleteMessage(Optional<AmazonS3>, AmazonSQS)
- Method in class com.github.davidmoten.rx2.aws.
SqsMessage
I
interval(int, TimeUnit, Scheduler)
- Method in class com.github.davidmoten.rx2.aws.
Sqs.SqsBuilder
interval(int, TimeUnit)
- Method in class com.github.davidmoten.rx2.aws.
Sqs.SqsBuilder
L
lastModifiedTime()
- Method in class com.github.davidmoten.rx2.aws.
SqsMessage
logger(Consumer<? super String>)
- Method in class com.github.davidmoten.rx2.aws.
Sqs.SqsBuilder
M
message()
- Method in class com.github.davidmoten.rx2.aws.
SqsMessage
messageReceiptHandle()
- Method in class com.github.davidmoten.rx2.aws.
SqsMessage
messages()
- Method in class com.github.davidmoten.rx2.aws.
Sqs.SqsBuilder
O
ownerAccountId(String)
- Static method in class com.github.davidmoten.rx2.aws.
Sqs
P
postPoll(Consumer<? super Optional<Throwable>>)
- Method in class com.github.davidmoten.rx2.aws.
Sqs.SqsBuilder
prePoll(Runnable)
- Method in class com.github.davidmoten.rx2.aws.
Sqs.SqsBuilder
Q
queueName(String)
- Static method in class com.github.davidmoten.rx2.aws.
Sqs
queueUrl(String)
- Static method in class com.github.davidmoten.rx2.aws.
Sqs
S
s3Factory(Callable<AmazonS3>)
- Method in class com.github.davidmoten.rx2.aws.
Sqs.ViaS3Builder
s3Id()
- Method in class com.github.davidmoten.rx2.aws.
SqsMessage
sendToQueueUsingS3(AmazonSQS, String, AmazonS3, String, Map<String, String>, byte[], Callable<String>)
- Static method in class com.github.davidmoten.rx2.aws.
Sqs
sendToQueueUsingS3(AmazonSQS, String, AmazonS3, String, byte[], Callable<String>)
- Static method in class com.github.davidmoten.rx2.aws.
Sqs
sendToQueueUsingS3(AmazonSQS, String, AmazonS3, String, byte[])
- Static method in class com.github.davidmoten.rx2.aws.
Sqs
sendToQueueUsingS3(AmazonSQS, String, AmazonS3, String, Map<String, String>, byte[])
- Static method in class com.github.davidmoten.rx2.aws.
Sqs
Sqs
- Class in
com.github.davidmoten.rx2.aws
Sqs.BuilderWithOwnerAccountId
- Class in
com.github.davidmoten.rx2.aws
Sqs.SqsBuilder
- Class in
com.github.davidmoten.rx2.aws
Sqs.ViaS3Builder
- Class in
com.github.davidmoten.rx2.aws
sqsFactory(Callable<AmazonSQS>)
- Method in class com.github.davidmoten.rx2.aws.
Sqs.SqsBuilder
SqsMessage
- Class in
com.github.davidmoten.rx2.aws
SqsMessage.Client
- Enum in
com.github.davidmoten.rx2.aws
T
toString()
- Method in class com.github.davidmoten.rx2.aws.
SqsMessage
V
valueOf(String)
- Static method in enum com.github.davidmoten.rx2.aws.
SqsMessage.Client
Returns the enum constant of this type with the specified name.
values()
- Static method in enum com.github.davidmoten.rx2.aws.
SqsMessage.Client
Returns an array containing the constants of this enum type, in the order they are declared.
ViaS3Builder(Sqs.SqsBuilder)
- Constructor for class com.github.davidmoten.rx2.aws.
Sqs.ViaS3Builder
W
waitTimes(Flowable<? extends Number>, TimeUnit)
- Method in class com.github.davidmoten.rx2.aws.
Sqs.SqsBuilder
A
B
C
D
I
L
M
O
P
Q
S
T
V
W
Skip navigation links
Package
Class
Use
Tree
Deprecated
Index
Help
Prev
Next
Frames
No Frames
All Classes
Copyright © 2016–2021. All rights reserved.


search:
Please select join columns
join
String builder:
Add column from table:
Column Functions
Sort Ascending
Sort Descending
Group this column
Count
Sum
Average
Minimum
Maximum
Remove


{% macro tou(terms) -%}
{{_("For Staff Use Only")}}
{{_("We are inviting you to use the TrueNTH website tool because you have agreed to participate in the [organization] Registry study.")}}
{{_("The information you provide will be used in a global study and will benefit patients in the future with better treatment and care options. Does this sound like something you’d be willing to participate in?")}}
{{_("Read consent [exactly as written]")}}
{{_("Do you have any questions?")}}
{{_("Do you agree to participate in the TrueNTH website tool and consent to the processing of your personal information (including your health information) on the terms I have just read to you?")}}
{{ _("Have you had a prostate cancer biopsy?") }}
{{ _("Have you been diagnosed with prostate cancer?") }}
{{ _("Is the prostate cancer only within the prostate?") }}
{{ _("Have you begun prostate cancer treatment?") }}
{{ _("What is your main clinic for prostate cancer care?") }}


|
||||||
| PREV Table NEXT Table | FRAMES NO FRAMES |
| Attribute Summary | ||||||
|---|---|---|---|---|---|---|
| PK | FK | Logical Name | Physical Name | Type | UNIQUE | NOT NULL |
| id | id | serial | NOT NULL | |||
| name | name | varchar | ||||
| organization | organization | varchar | ||||
| position | position | varchar | ||||
| assignment_letter | assignment_letter | varchar | ||||
| title | title | int | ||||
| full_name | full_name | varchar | ||||
| room_type | room_type | int | ||||
| attend | attend | int | ||||
| speaker | speaker | boolean | ||||
| id_category_participant | id_category_participant | int | ||||
| user_id | user_id | int | ||||
| approval | approval | boolean |
| Foreign Key | ||||||
|---|---|---|---|---|---|---|
| Attribute | Referenced Table | Referenced Key | ON UPDATE | ON DELETE | Cardinality of parent | Cardinality of child |
| Referenced Key | ||||||
|---|---|---|---|---|---|---|
| Attribute | Table | Foreign Key | ON UPDATE | ON DELETE | Cardinality of parent | Cardinality of child |
| Complex Unique Key |
|---|
| Index Summary | ||
|---|---|---|
| Index Name | Type | UNIQUE |
| Attribute Detail |
|---|
|
||||||
| PREV Table NEXT Table | FRAMES NO FRAMES |


2 shot, 1 fatally, at Bronx intersection, Mercedes flees the scene
by WABCMELROSE, The Bronx (WABC) -- Two men were shot, one fatally, on a street in the Bronx Monday afternoon.
It happened just after 1:30 p.m. at the intersection of East 157th Street and Elton Avenue in the Melrose section.
Police are looking for a white Mercedes that fled the scene, and they believe the gunfire came from inside the vehicle.
The victims were rushed to Lincoln Hospital, where a 31-year-old man was pronounced dead with gunshot wounds to the head and leg. He has been identified as Nelson Irizarry.
A 32-year-old man remains in serious condition after suffering gunshot wound to right leg.
Authorities say the shooting occurred after some sort of dispute, but it is unclear if the victims were the intended targets.
There are no arrests, and the investigation is ongoing.


Pay Amount ($) :
Pay the above amount to the following Bank Account and note down the reference number below. Account Name : BRISBANE SEVENS , A/C No : 206537 , BSB : 034439.
Registration Successful
developed by hybr!dTechie


---
layout: post
cover: true
title: Sins Committed with EKS
date: 2021-01-01 23:02:00
tags: devops tutorials
subclass: 'post tag-tutorials'
categories: 'dk'
navigation: True
logo: 'assets/images/utilities/home_icon.png'
cover: 'assets/images/travel/cover.jpg'
---
Kubernetes is vast - Very very vast, vaster is the pace at which Kubernetes is growing and new developments on Kubernetes and it's supporting tools are getting pitched into.
What works for today may not work after one month, reasons can be numerous - The CRD's hacebeen upgraded. Operator is updated. The functionality has been depreciated, The object implementation has moved to a new API group etc.
I'm going to share a few of the thoughts and learning that we shoud be careful of while working with Kubernetes, specially the managed ones.
- Docker Images
Scan all docker images for vulnerabilities before ussing them in the k8s ecosystem. There are plenty of tools available like
Anchore Engine
CoreOS/Clair
Vuls.io
OpenScap
- Patched Images
- PRIVATE repository
We have the control
Safe from reaching the pull limits as in case of Docker Image Pull limits
Single Repository for the entire organisation(Production/Staging)
Less Management Overhead
More control over the image life cycles
Prevents repetition of the same images across AWS Accounts or Repositories - Cost-Effective
All images should be customised to the minimum of
timezones should be updated and also alert should be made to track timezones across the pods/containers
If there is a patch available, then it should be patched as well
Pipeline for the automatic finding of images and building and patching
TAGS
git merge to be under strict scrutiny and via Pull Requests Only
Disable public images to be used in the Docker Environment
Subnets
public
limit to office IP Addresses
private
Networking
NAT Gateway vs Internet Gateway Model
Cluster Autoscaling
Istio Ingress Gateways and Load Balancers
ALB
Private Load Balancers
TCP connection Handling for Stateful Services
Certificate Integrations
Jenkins Pipelines
Monitoring
Spot Instance Termination Handler
Alerta dashboard
Alerting channel
Logging
EFK
Indexes
Disk Sizes
Application Deployment Pipelines
Keep a track of your limits
EC2 Spot Limits
Service Limits
EKS Upgrades
cycle
k8s manifests compatibilities
Team Coordination and Git repository access
Do not create multiple repositories for the same thing
CDN
Provisions to remove completed/failed pods via k8s jobs
GP3 volumes to be default storage class
PV & PVC and Dynamically growing volumes
Cluster Base DNS


| Connected to: | AP SSID: | AP Password: |
|---|---|---|
| %STATION_SSID% | %AP_SSID% | %AP_PASS% |
This is a CAN-Bus Analyzer based on the ESP32 microcontroller. Communication is done either through USB or an on-board server so that the CAN messages are interpreted or sent.
For more information, please refer to the Github Repository.
| Connected to: | AP SSID: | AP Password: |
|---|---|---|
| %STATION_SSID% | %AP_SSID% | %AP_PASS% |


CHESS
0   positions evaluated in   0s.
That's   0   positions  /  s.
Status:
No check, checkmate, or draw.


Edit Profile
add Add New Activity
Institution/Individual
Start Date – End Date
Exhibition Location
Short description of the exhibition here that is used for promotion 140 characters
Media Outlet
Date | URL
PDF Attachments
Type of Interest
Date of Interest | Follow-up Date


Use the horisontal slider in the upper right corner to change player amount.
http://www.playsign.net/
Give this URL to other player
empty


Class: Aws::AlexaForBusiness::Types::SkillDetails
| Relationships & Source Files | |
| Super Chains via Extension / Inclusion / Inheritance | |
|
Class Chain:
self,
Struct
|
|
|
Instance Chain:
self,
::Aws::Structure ,
Struct
|
|
| Inherits: |
Struct
|
| Defined in: | gems/aws-sdk-alexaforbusiness/lib/aws-sdk-alexaforbusiness/types.rb |
Overview
Granular information about the skill.
Constant Summary
Instance Attribute Summary
-
#bullet_points ⇒ Array<String>
rw
The details about what the skill supports organized as bullet points.
-
#developer_info ⇒ Types::DeveloperInfo
rw
The details about the developer that published the skill.
-
#end_user_license_agreement ⇒ String
rw
The URL of the end user license agreement.
-
#generic_keywords ⇒ Array<String>
rw
The generic keywords associated with the skill that can be used to find a skill.
-
#invocation_phrase ⇒ String
rw
The phrase used to trigger the skill.
-
#new_in_this_version_bullet_points ⇒ Array<String>
rw
The updates added in bullet points.
-
#product_description ⇒ String
rw
The description of the product.
-
#release_date ⇒ String
rw
The date when the skill was released.
-
#reviews ⇒ Hash<String,String>
rw
This member has been deprecated..
-
#skill_types ⇒ Array<String>
rw
The types of skills.
Instance Method Summary
::Aws::Structure
- Included
| #to_hash | Alias for Structure#to_h. |
Instance Attribute Details
#bullet_points ⇒ Array
<String
> (rw)
The details about what the skill supports organized as bullet points.
# File 'gems/aws-sdk-alexaforbusiness/lib/aws-sdk-alexaforbusiness/types.rb', line 4403
class SkillDetails < Struct.new( :product_description, :invocation_phrase, :release_date, :end_user_license_agreement, :generic_keywords, :bullet_points, :new_in_this_version_bullet_points, :skill_types, :reviews, :developer_info) SENSITIVE = [] include Aws::Structure end
#developer_info ⇒ Types::DeveloperInfo (rw)
The details about the developer that published the skill.
# File 'gems/aws-sdk-alexaforbusiness/lib/aws-sdk-alexaforbusiness/types.rb', line 4403
class SkillDetails < Struct.new( :product_description, :invocation_phrase, :release_date, :end_user_license_agreement, :generic_keywords, :bullet_points, :new_in_this_version_bullet_points, :skill_types, :reviews, :developer_info) SENSITIVE = [] include Aws::Structure end
#end_user_license_agreement ⇒ String
(rw)
The URL of the end user license agreement.
# File 'gems/aws-sdk-alexaforbusiness/lib/aws-sdk-alexaforbusiness/types.rb', line 4403
class SkillDetails < Struct.new( :product_description, :invocation_phrase, :release_date, :end_user_license_agreement, :generic_keywords, :bullet_points, :new_in_this_version_bullet_points, :skill_types, :reviews, :developer_info) SENSITIVE = [] include Aws::Structure end
#generic_keywords ⇒ Array
<String
> (rw)
The generic keywords associated with the skill that can be used to find a skill.
# File 'gems/aws-sdk-alexaforbusiness/lib/aws-sdk-alexaforbusiness/types.rb', line 4403
class SkillDetails < Struct.new( :product_description, :invocation_phrase, :release_date, :end_user_license_agreement, :generic_keywords, :bullet_points, :new_in_this_version_bullet_points, :skill_types, :reviews, :developer_info) SENSITIVE = [] include Aws::Structure end
#invocation_phrase ⇒ String
(rw)
The phrase used to trigger the skill.
# File 'gems/aws-sdk-alexaforbusiness/lib/aws-sdk-alexaforbusiness/types.rb', line 4403
class SkillDetails < Struct.new( :product_description, :invocation_phrase, :release_date, :end_user_license_agreement, :generic_keywords, :bullet_points, :new_in_this_version_bullet_points, :skill_types, :reviews, :developer_info) SENSITIVE = [] include Aws::Structure end
#new_in_this_version_bullet_points ⇒ Array
<String
> (rw)
The updates added in bullet points.
# File 'gems/aws-sdk-alexaforbusiness/lib/aws-sdk-alexaforbusiness/types.rb', line 4403
class SkillDetails < Struct.new( :product_description, :invocation_phrase, :release_date, :end_user_license_agreement, :generic_keywords, :bullet_points, :new_in_this_version_bullet_points, :skill_types, :reviews, :developer_info) SENSITIVE = [] include Aws::Structure end
#product_description ⇒ String
(rw)
The description of the product.
# File 'gems/aws-sdk-alexaforbusiness/lib/aws-sdk-alexaforbusiness/types.rb', line 4403
class SkillDetails < Struct.new( :product_description, :invocation_phrase, :release_date, :end_user_license_agreement, :generic_keywords, :bullet_points, :new_in_this_version_bullet_points, :skill_types, :reviews, :developer_info) SENSITIVE = [] include Aws::Structure end
#release_date ⇒ String
(rw)
The date when the skill was released.
# File 'gems/aws-sdk-alexaforbusiness/lib/aws-sdk-alexaforbusiness/types.rb', line 4403
class SkillDetails < Struct.new( :product_description, :invocation_phrase, :release_date, :end_user_license_agreement, :generic_keywords, :bullet_points, :new_in_this_version_bullet_points, :skill_types, :reviews, :developer_info) SENSITIVE = [] include Aws::Structure end
#reviews ⇒ Hash
<String
,String
> (rw)
This member has been deprecated.
The list of reviews for the skill, including Key and Value pair.
# File 'gems/aws-sdk-alexaforbusiness/lib/aws-sdk-alexaforbusiness/types.rb', line 4403
class SkillDetails < Struct.new( :product_description, :invocation_phrase, :release_date, :end_user_license_agreement, :generic_keywords, :bullet_points, :new_in_this_version_bullet_points, :skill_types, :reviews, :developer_info) SENSITIVE = [] include Aws::Structure end
#skill_types ⇒ Array
<String
> (rw)
The types of skills.
# File 'gems/aws-sdk-alexaforbusiness/lib/aws-sdk-alexaforbusiness/types.rb', line 4403
class SkillDetails < Struct.new( :product_description, :invocation_phrase, :release_date, :end_user_license_agreement, :generic_keywords, :bullet_points, :new_in_this_version_bullet_points, :skill_types, :reviews, :developer_info) SENSITIVE = [] include Aws::Structure end


Please click on one of the links below:
Physics is often regarded as the cornerstone of the Natural Sciences. It involves the study of the interaction of matter and energy on the most fundamental levels and has been very successful in revealing many of nature’s most profound secrets. It encompasses a diverse range of disciplines including astrophysics, electronics, particle physics, and solid state physics.
Find out more »Physics is often regarded as the cornerstone of the Natural Sciences. Discover Bishop's Physics departament.
We are one of the four research clusters selected by Bishop’s University in 2009 to implement its Strategic Research Plan.
Located on the roof of the Nicolls building on Bishop’s University Campus in Lennoxville.
A Very Rare Discovery: Failed Star Orbits a Dead Star Every 71 Minutes
This site is part of the MULTIGRID Project whose objective is to create an expansive library of evolutionary tracks.
Cosmological voids are amongst the largest structures ever observed.
CHEAR is an acronym for Canadian High Energy Astrophysics Research and it comprises a group of researchers.


iComponent Versions
Version 1.3.0
Menu component added
[Feature]
[API doc]
Link component added
[Feature]
[API doc]
Cascader arrow icon fixed
Version 1.2.0
Radio component added
[Feature]
[API doc]
Cascader component added
[Feature]
[API doc]
Bug fix with button, slider
Version 1.1.0
Bootstrap support for button and slider
Button component added
[Feature]
[API doc]
Slider component added
[Feature]
[API doc]
Version 1.0.0
Hello World component added
[Feature]
[API doc]


- Primary Email: username -at- domain -dot- ac -dot- in (where username = mainakchain, domain = iitkgp)
- Secondary Email: username -at- domain.com (where username = mainakchain21, domain = gmail)


Mapping Class Inheritance Hierarchies
The relationship() function defines a linkage between two classes. When the linkage defines a one-to-many or many-to-many relationship, it’s represented as a Python collection when objects are loaded and manipulated. This section presents additional information about collection configuration and techniques.
The default behavior of relationship() is to fully load the collection of items in, as according to the loading strategy of the relationship. Additionally, the Session by default only knows how to delete objects which are actually present within the session. When a parent instance is marked for deletion and flushed, the Session loads its full list of child items in so that they may either be deleted as well, or have their foreign key value set to null; this is to avoid constraint violations. For large collections of child items, there are several strategies to bypass full loading of child items both at load time as well as deletion time.
A key feature to enable management of a large collection is the so-called “dynamic” relationship. This is an optional form of relationship() which returns a Query object in place of a collection when accessed. filter() criterion may be applied as well as limits and offsets, either explicitly or via array slices:
class User(Base):
__tablename__ = 'user'
posts = relationship(Post, lazy="dynamic")
jack = session.query(User).get(id)
# filter Jack's blog posts
posts = jack.posts.filter(Post.headline=='this is a post')
# apply array slices
posts = jack.posts[5:20]
The dynamic relationship supports limited write operations, via the append() and remove() methods:
oldpost = jack.posts.filter(Post.headline=='old post').one()
jack.posts.remove(oldpost)
jack.posts.append(Post('new post'))
Since the read side of the dynamic relationship always queries the database, changes to the underlying collection will not be visible until the data has been flushed. However, as long as “autoflush” is enabled on the Session in use, this will occur automatically each time the collection is about to emit a query.
To place a dynamic relationship on a backref, use the backref() function in conjunction with lazy='dynamic':
class Post(Base):
__table__ = posts_table
user = relationship(User,
backref=backref('posts', lazy='dynamic')
)
Note that eager/lazy loading options cannot be used in conjunction dynamic relationships at this time.
Note
The dynamic_loader() function is essentially the same as relationship() with the lazy='dynamic' argument specified.
Warning
The “dynamic” loader applies to collections only. It is not valid to use “dynamic” loaders with many-to-one, one-to-one, or uselist=False relationships. Newer versions of SQLAlchemy emit warnings or exceptions in these cases.
A “noload” relationship never loads from the database, even when accessed. It is configured using lazy='noload':
class MyClass(Base):
__tablename__ = 'some_table'
children = relationship(MyOtherClass, lazy='noload')
Above, the children collection is fully writeable, and changes to it will be persisted to the database as well as locally available for reading at the time they are added. However when instances of MyClass are freshly loaded from the database, the children collection stays empty.
Use passive_deletes=True to disable child object loading on a DELETE operation, in conjunction with “ON DELETE (CASCADE|SET NULL)” on your database to automatically cascade deletes to child objects:
class MyClass(Base):
__tablename__ = 'mytable'
id = Column(Integer, primary_key=True)
children = relationship("MyOtherClass",
cascade="all, delete-orphan",
passive_deletes=True)
class MyOtherClass(Base):
__tablename__ = 'myothertable'
id = Column(Integer, primary_key=True)
parent_id = Column(Integer,
ForeignKey('mytable.id', ondelete='CASCADE')
)
Note
To use “ON DELETE CASCADE”, the underlying database engine must support foreign keys.
When passive_deletes is applied, the children relationship will not be loaded into memory when an instance of MyClass is marked for deletion. The cascade="all, delete-orphan" will take effect for instances of MyOtherClass which are currently present in the session; however for instances of MyOtherClass which are not loaded, SQLAlchemy assumes that “ON DELETE CASCADE” rules will ensure that those rows are deleted by the database.
Mapping a one-to-many or many-to-many relationship results in a collection of values accessible through an attribute on the parent instance. By default, this collection is a list:
class Parent(Base):
__tablename__ = 'parent'
parent_id = Column(Integer, primary_key=True)
children = relationship(Child)
parent = Parent()
parent.children.append(Child())
print parent.children[0]
Collections are not limited to lists. Sets, mutable sequences and almost any other Python object that can act as a container can be used in place of the default list, by specifying the collection_class option on relationship():
class Parent(Base):
__tablename__ = 'parent'
parent_id = Column(Integer, primary_key=True)
# use a set
children = relationship(Child, collection_class=set)
parent = Parent()
child = Child()
parent.children.add(child)
assert child in parent.children
A little extra detail is needed when using a dictionary as a collection. This because objects are always loaded from the database as lists, and a key-generation strategy must be available to populate the dictionary correctly. The attribute_mapped_collection() function is by far the most common way to achieve a simple dictionary collection. It produces a dictionary class that will apply a particular attribute of the mapped class as a key. Below we map an Item class containing a dictionary of Note items keyed to the Note.keyword attribute:
from sqlalchemy import Column, Integer, String, ForeignKey
from sqlalchemy.orm import relationship
from sqlalchemy.orm.collections import attribute_mapped_collection
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class Item(Base):
__tablename__ = 'item'
id = Column(Integer, primary_key=True)
notes = relationship("Note",
collection_class=attribute_mapped_collection('keyword'),
cascade="all, delete-orphan")
class Note(Base):
__tablename__ = 'note'
id = Column(Integer, primary_key=True)
item_id = Column(Integer, ForeignKey('item.id'), nullable=False)
keyword = Column(String)
text = Column(String)
def __init__(self, keyword, text):
self.keyword = keyword
self.text = text
Item.notes is then a dictionary:
>>> item = Item()
>>> item.notes['a'] = Note('a', 'atext')
>>> item.notes.items()
{'a': <__main__.Note object at 0x2eaaf0>}
attribute_mapped_collection() will ensure that the .keyword attribute of each Note complies with the key in the dictionary. Such as, when assigning to Item.notes, the dictionary key we supply must match that of the actual Note object:
item = Item()
item.notes = {
'a': Note('a', 'atext'),
'b': Note('b', 'btext')
}
The attribute which attribute_mapped_collection() uses as a key does not need to be mapped at all! Using a regular Python @property allows virtually any detail or combination of details about the object to be used as the key, as below when we establish it as a tuple of Note.keyword and the first ten letters of the Note.text field:
class Item(Base):
__tablename__ = 'item'
id = Column(Integer, primary_key=True)
notes = relationship("Note",
collection_class=attribute_mapped_collection('note_key'),
backref="item",
cascade="all, delete-orphan")
class Note(Base):
__tablename__ = 'note'
id = Column(Integer, primary_key=True)
item_id = Column(Integer, ForeignKey('item.id'), nullable=False)
keyword = Column(String)
text = Column(String)
@property
def note_key(self):
return (self.keyword, self.text[0:10])
def __init__(self, keyword, text):
self.keyword = keyword
self.text = text
Above we added a Note.item backref. Assigning to this reverse relationship, the Note is added to the Item.notes dictionary and the key is generated for us automatically:
>>> item = Item()
>>> n1 = Note("a", "atext")
>>> n1.item = item
>>> item.notes
{('a', 'atext'): <__main__.Note object at 0x2eaaf0>}
Other built-in dictionary types include column_mapped_collection(), which is almost like attribute_mapped_collection() except given the Column object directly:
from sqlalchemy.orm.collections import column_mapped_collection
class Item(Base):
__tablename__ = 'item'
id = Column(Integer, primary_key=True)
notes = relationship("Note",
collection_class=column_mapped_collection(Note.__table__.c.keyword),
cascade="all, delete-orphan")
as well as mapped_collection() which is passed any callable function. Note that it’s usually easier to use attribute_mapped_collection() along with a @property as mentioned earlier:
from sqlalchemy.orm.collections import mapped_collection
class Item(Base):
__tablename__ = 'item'
id = Column(Integer, primary_key=True)
notes = relationship("Note",
collection_class=mapped_collection(lambda note: note.text[0:10]),
cascade="all, delete-orphan")
Dictionary mappings are often combined with the “Association Proxy” extension to produce streamlined dictionary views. See Proxying to Dictionary Based Collections and Composite Association Proxies for examples.
A dictionary-based collection type with attribute-based keying.
Returns a MappedCollection factory with a keying based on the ‘attr_name’ attribute of entities in the collection, where attr_name is the string name of the attribute.
The key value must be immutable for the lifetime of the object. You can not, for example, map on foreign key values if those key values will change during the session, i.e. from None to a database-assigned integer after a session flush.
A dictionary-based collection type with column-based keying.
Returns a MappedCollection factory with a keying function generated from mapping_spec, which may be a Column or a sequence of Columns.
The key value must be immutable for the lifetime of the object. You can not, for example, map on foreign key values if those key values will change during the session, i.e. from None to a database-assigned integer after a session flush.
A dictionary-based collection type with arbitrary keying.
Returns a MappedCollection factory with a keying function generated from keyfunc, a callable that takes an entity and returns a key value.
The key value must be immutable for the lifetime of the object. You can not, for example, map on foreign key values if those key values will change during the session, i.e. from None to a database-assigned integer after a session flush.
You can use your own types for collections as well. In simple cases, inherting from list or set, adding custom behavior, is all that’s needed. In other cases, special decorators are needed to tell SQLAlchemy more detail about how the collection operates.
Do I need a custom collection implementation?
In most cases not at all! The most common use cases for a “custom” collection is one that validates or marshals incoming values into a new form, such as a string that becomes a class instance, or one which goes a step beyond and represents the data internally in some fashion, presenting a “view” of that data on the outside of a different form.
For the first use case, the orm.validates() decorator is by far the simplest way to intercept incoming values in all cases for the purposes of validation and simple marshaling. See Simple Validators for an example of this.
For the second use case, the Association Proxy extension is a well-tested, widely used system that provides a read/write “view” of a collection in terms of some attribute present on the target object. As the target attribute can be a @property that returns virtually anything, a wide array of “alternative” views of a collection can be constructed with just a few functions. This approach leaves the underlying mapped collection unaffected and avoids the need to carefully tailor collection behavior on a method-by-method basis.
Customized collections are useful when the collection needs to have special behaviors upon access or mutation operations that can’t otherwise be modeled externally to the collection. They can of course be combined with the above two approaches.
Collections in SQLAlchemy are transparently instrumented. Instrumentation means that normal operations on the collection are tracked and result in changes being written to the database at flush time. Additionally, collection operations can fire events which indicate some secondary operation must take place. Examples of a secondary operation include saving the child item in the parent’s Session (i.e. the save-update cascade), as well as synchronizing the state of a bi-directional relationship (i.e. a backref()).
The collections package understands the basic interface of lists, sets and dicts and will automatically apply instrumentation to those built-in types and their subclasses. Object-derived types that implement a basic collection interface are detected and instrumented via duck-typing:
class ListLike(object):
def __init__(self):
self.data = []
def append(self, item):
self.data.append(item)
def remove(self, item):
self.data.remove(item)
def extend(self, items):
self.data.extend(items)
def __iter__(self):
return iter(self.data)
def foo(self):
return 'foo'
append, remove, and extend are known list-like methods, and will be instrumented automatically. __iter__ is not a mutator method and won’t be instrumented, and foo won’t be either.
Duck-typing (i.e. guesswork) isn’t rock-solid, of course, so you can be explicit about the interface you are implementing by providing an __emulates__ class attribute:
class SetLike(object):
__emulates__ = set
def __init__(self):
self.data = set()
def append(self, item):
self.data.add(item)
def remove(self, item):
self.data.remove(item)
def __iter__(self):
return iter(self.data)
This class looks list-like because of append, but __emulates__ forces it to set-like. remove is known to be part of the set interface and will be instrumented.
But this class won’t work quite yet: a little glue is needed to adapt it for use by SQLAlchemy. The ORM needs to know which methods to use to append, remove and iterate over members of the collection. When using a type like list or set, the appropriate methods are well-known and used automatically when present. This set-like class does not provide the expected add method, so we must supply an explicit mapping for the ORM via a decorator.
Decorators can be used to tag the individual methods the ORM needs to manage collections. Use them when your class doesn’t quite meet the regular interface for its container type, or when you otherwise would like to use a different method to get the job done.
from sqlalchemy.orm.collections import collection
class SetLike(object):
__emulates__ = set
def __init__(self):
self.data = set()
@collection.appender
def append(self, item):
self.data.add(item)
def remove(self, item):
self.data.remove(item)
def __iter__(self):
return iter(self.data)
And that’s all that’s needed to complete the example. SQLAlchemy will add instances via the append method. remove and __iter__ are the default methods for sets and will be used for removing and iteration. Default methods can be changed as well:
from sqlalchemy.orm.collections import collection
class MyList(list):
@collection.remover
def zark(self, item):
# do something special...
@collection.iterator
def hey_use_this_instead_for_iteration(self):
# ...
There is no requirement to be list-, or set-like at all. Collection classes can be any shape, so long as they have the append, remove and iterate interface marked for SQLAlchemy’s use. Append and remove methods will be called with a mapped entity as the single argument, and iterator methods are called with no arguments and must return an iterator.
Decorators for entity collection classes.
The decorators fall into two groups: annotations and interception recipes.
The annotating decorators (appender, remover, iterator, linker, converter, internally_instrumented) indicate the method’s purpose and take no arguments. They are not written with parens:
@collection.appender
def append(self, append): ...
The recipe decorators all require parens, even those that take no arguments:
@collection.adds('entity')
def insert(self, position, entity): ...
@collection.removes_return()
def popitem(self): ...
Mark the method as adding an entity to the collection.
Adds “add to collection” handling to the method. The decorator argument indicates which method argument holds the SQLAlchemy-relevant value. Arguments can be specified positionally (i.e. integer) or by name:
@collection.adds(1)
def push(self, item): ...
@collection.adds('entity')
def do_stuff(self, thing, entity=None): ...
Tag the method as the collection appender.
The appender method is called with one positional argument: the value to append. The method will be automatically decorated with ‘adds(1)’ if not already decorated:
@collection.appender
def add(self, append): ...
# or, equivalently
@collection.appender
@collection.adds(1)
def add(self, append): ...
# for mapping type, an 'append' may kick out a previous value
# that occupies that slot. consider d['a'] = 'foo'- any previous
# value in d['a'] is discarded.
@collection.appender
@collection.replaces(1)
def add(self, entity):
key = some_key_func(entity)
previous = None
if key in self:
previous = self[key]
self[key] = entity
return previous
If the value to append is not allowed in the collection, you may raise an exception. Something to remember is that the appender will be called for each object mapped by a database query. If the database contains rows that violate your collection semantics, you will need to get creative to fix the problem, as access via the collection will not work.
If the appender method is internally instrumented, you must also receive the keyword argument ‘_sa_initiator’ and ensure its promulgation to collection events.
Tag the method as the collection converter.
This optional method will be called when a collection is being replaced entirely, as in:
myobj.acollection = [newvalue1, newvalue2]
The converter method will receive the object being assigned and should return an iterable of values suitable for use by the appender method. A converter must not assign values or mutate the collection, it’s sole job is to adapt the value the user provides into an iterable of values for the ORM’s use.
The default converter implementation will use duck-typing to do the conversion. A dict-like collection will be convert into an iterable of dictionary values, and other types will simply be iterated:
@collection.converter
def convert(self, other): ...
If the duck-typing of the object does not match the type of this collection, a TypeError is raised.
Supply an implementation of this method if you want to expand the range of possible types that can be assigned in bulk or perform validation on the values about to be assigned.
Tag the method as instrumented.
This tag will prevent any decoration from being applied to the method. Use this if you are orchestrating your own calls to collection_adapter() in one of the basic SQLAlchemy interface methods, or to prevent an automatic ABC method decoration from wrapping your implementation:
# normally an 'extend' method on a list-like class would be
# automatically intercepted and re-implemented in terms of
# SQLAlchemy events and append(). your implementation will
# never be called, unless:
@collection.internally_instrumented
def extend(self, items): ...
Tag the method as the collection remover.
The iterator method is called with no arguments. It is expected to return an iterator over all collection members:
@collection.iterator
def __iter__(self): ...
deprecated; synonym for collection.linker().
Tag the method as a “linked to attribute” event handler.
This optional event handler will be called when the collection class is linked to or unlinked from the InstrumentedAttribute. It is invoked immediately after the ‘_sa_adapter’ property is set on the instance. A single argument is passed: the collection adapter that has been linked, or None if unlinking.
Tag the method as the collection remover.
The remover method is called with one positional argument: the value to remove. The method will be automatically decorated with removes_return() if not already decorated:
@collection.remover
def zap(self, entity): ...
# or, equivalently
@collection.remover
@collection.removes_return()
def zap(self, ): ...
If the value to remove is not present in the collection, you may raise an exception or return None to ignore the error.
If the remove method is internally instrumented, you must also receive the keyword argument ‘_sa_initiator’ and ensure its promulgation to collection events.
Mark the method as removing an entity in the collection.
Adds “remove from collection” handling to the method. The decorator argument indicates which method argument holds the SQLAlchemy-relevant value to be removed. Arguments can be specified positionally (i.e. integer) or by name:
@collection.removes(1)
def zap(self, item): ...
For methods where the value to remove is not known at call-time, use collection.removes_return.
Mark the method as removing an entity in the collection.
Adds “remove from collection” handling to the method. The return value of the method, if any, is considered the value to remove. The method arguments are not inspected:
@collection.removes_return()
def pop(self): ...
For methods where the value to remove is known at call-time, use collection.remove.
Mark the method as replacing an entity in the collection.
Adds “add to collection” and “remove from collection” handling to the method. The decorator argument indicates which method argument holds the SQLAlchemy-relevant value to be added, and return value, if any will be considered the value to remove.
Arguments can be specified positionally (i.e. integer) or by name:
@collection.replaces(2)
def __setitem__(self, index, item): ...
The MappedCollection class can be used as a base class for your custom types or as a mix-in to quickly add dict collection support to other classes. It uses a keying function to delegate to __setitem__ and __delitem__:
from sqlalchemy.util import OrderedDict
from sqlalchemy.orm.collections import MappedCollection
class NodeMap(OrderedDict, MappedCollection):
"""Holds 'Node' objects, keyed by the 'name' attribute with insert order maintained."""
def __init__(self, *args, **kw):
MappedCollection.__init__(self, keyfunc=lambda node: node.name)
OrderedDict.__init__(self, *args, **kw)
When subclassing MappedCollection, user-defined versions of __setitem__() or __delitem__() should be decorated with collection.internally_instrumented(), if they call down to those same methods on MappedCollection. This because the methods on MappedCollection are already instrumented - calling them from within an already instrumented call can cause events to be fired off repeatedly, or inappropriately, leading to internal state corruption in rare cases:
from sqlalchemy.orm.collections import MappedCollection,\
collection
class MyMappedCollection(MappedCollection):
"""Use @internally_instrumented when your methods
call down to already-instrumented methods.
"""
@collection.internally_instrumented
def __setitem__(self, key, value, _sa_initiator=None):
# do something with key, value
super(MyMappedCollection, self).__setitem__(key, value, _sa_initiator)
@collection.internally_instrumented
def __delitem__(self, key, _sa_initiator=None):
# do something with key
super(MyMappedCollection, self).__delitem__(key, _sa_initiator)
The ORM understands the dict interface just like lists and sets, and will automatically instrument all dict-like methods if you choose to subclass dict or provide dict-like collection behavior in a duck-typed class. You must decorate appender and remover methods, however- there are no compatible methods in the basic dictionary interface for SQLAlchemy to use by default. Iteration will go through itervalues() unless otherwise decorated.
Note
Due to a bug in MappedCollection prior to version 0.7.6, this workaround usually needs to be called before a custom subclass of MappedCollection which uses collection.internally_instrumented() can be used:
from sqlalchemy.orm.collections import _instrument_class, MappedCollection
_instrument_class(MappedCollection)
This will ensure that the MappedCollection has been properly initialized with custom __setitem__() and __delitem__() methods before used in a custom subclass.
A basic dictionary-based collection class.
Extends dict with the minimal bag semantics that collection classes require. set and remove are implemented in terms of a keying function: any callable that takes an object and returns an object for use as a dictionary key.
Create a new collection with keying provided by keyfunc.
keyfunc may be any callable any callable that takes an object and returns an object for use as a dictionary key.
The keyfunc will be called every time the ORM needs to add a member by value-only (such as when loading instances from the database) or remove a member. The usual cautions about dictionary keying apply- keyfunc(object) should return the same output for the life of the collection. Keying based on mutable properties can result in unreachable instances “lost” in the collection.
If key is not found, d is returned if given, otherwise KeyError is raised
2-tuple; but raise KeyError if D is empty.
Remove an item by value, consulting the keyfunc for the key.
Add an item by value, consulting the keyfunc for the key.
If E present and has a .keys() method, does: for k in E: D[k] = E[k] If E present and lacks .keys() method, does: for (k, v) in E: D[k] = v In either case, this is followed by: for k in F: D[k] = F[k]
Many custom types and existing library classes can be used as a entity collection type as-is without further ado. However, it is important to note that the instrumentation process will modify the type, adding decorators around methods automatically.
The decorations are lightweight and no-op outside of relationships, but they do add unneeded overhead when triggered elsewhere. When using a library class as a collection, it can be good practice to use the “trivial subclass” trick to restrict the decorations to just your usage in relationships. For example:
class MyAwesomeList(some.great.library.AwesomeList):
pass
# ... relationship(..., collection_class=MyAwesomeList)
The ORM uses this approach for built-ins, quietly substituting a trivial subclass when a list, set or dict is used directly.
Various internal methods.
Load a new collection, firing events based on prior like membership.
Appends instances in values onto the new_adapter. Events will be fired for any instance not present in the existing_adapter. Any instances in existing_adapter not present in values will have remove events fired upon them.
| Parameters: |
|
|---|
Decorators for entity collection classes.
The decorators fall into two groups: annotations and interception recipes.
The annotating decorators (appender, remover, iterator, linker, converter, internally_instrumented) indicate the method’s purpose and take no arguments. They are not written with parens:
@collection.appender
def append(self, append): ...
The recipe decorators all require parens, even those that take no arguments:
@collection.adds('entity')
def insert(self, position, entity): ...
@collection.removes_return()
def popitem(self): ...
Fetch the CollectionAdapter for a collection.
Bridges between the ORM and arbitrary Python collections.
Proxies base-level collection operations (append, remove, iterate) to the underlying Python collection, and emits add/remove events for entities entering or leaving the collection.
The ORM uses CollectionAdapter exclusively for interaction with entity collections.
The usage of getattr()/setattr() is currently to allow injection of custom methods, such as to unwrap Zope security proxies.
An instrumented version of the built-in dict.
An instrumented version of the built-in list.
An instrumented version of the built-in set.
Prepare a callable for future use as a collection class factory.
Given a collection class factory (either a type or no-arg callable), return another factory that will produce compatible instances when called.
This function is responsible for converting collection_class=list into the run-time behavior of collection_class=InstrumentedList.


G291.0−0.1
(MSH 11−62)
- Right Ascension: 11 11 54
- Declination: −60 38
- Size (/arcmin): 15×13
- Type: C
- Flux density at 1 GHz (/Jy): 16
- Spectral Index: 0.29
- Radio: Centrally brightened core, with surrounding arcs.
- Optical: Detected.
- X-ray: Centrally brightened.
- Point sources: Central compact X-ray source.
References:
- Shaver & Goss 1970, AuJPA, 14, 133. Molonglo at 408 MHz (3') and Parkes 64-m at 5 GHz (4').
ADS
- Roger et al. 1986, MNRAS, 219, 815. MOST at 843 MHz (43''×50'': S=17.2±1.0 Jy), and Parkes 64-m at 5 and 8.4 GHz (4.'6 and 3': S=10.4±0.4 Jy and 9.'1±0.2), with polarisation.
ADS
- Wilson 1986, ApJ, 302, 718. Einstein observations.
ADS
- Whiteoak & Green 1996, A&AS, 118, 329. MOST at 843 MHz (43''×49'': S=12.7 Jy).
ADS
- Harrus et al. 1998, ApJ, 499, 273. ASCA observations.
ADS
- Stupar & Parker 2011, MNRAS, 414, 2282. Hα observations.
ADS
- Slane et al. 2012, ApJ, 749, 131. Chandra, XMM-Newton and Fermi observations.
ADS
- Acero et al. 2016, ApJS, 224, 8. Fermi observations.
ADS
Last updated: 13 May 2017
home |
documentation |
detailed listings |
summary listings
Dave Green/Cambridge, UK/


This will import your Instapaper articles to Readability.
READ THIS FIRST
You will need to authorize 'Miguel Javier' to connect to you Readability account, and export your Instapaper articles as CSV. I don't keep any of your files or information.
Or you can get the code here to upload and run on your own server. You will need to have your own Readability API key to run it though.
In both cases, no warranty or support is guaranteed.
Instapaper only exports your last 2000 article URLs, and Readability will try to retrieve those articles from those URLs. If the website is no longer around, Readability won't be able to import the aritcle.
Ready?
Click here to begin.


--- layout: default title: mfX categories: - code ---
All of the codes featured here, and more, are available from our GitHub repository: multiscaleflowx
We develop and use the following software:
A LAMMPS fix to move atoms by tethering them to a virtual spring.
A C++ script to create a boron nitride nanotube.


EU assesses Zimbabwe's economic, political reforms
The European Union (EU) on Thursday emphasised the need for national dialogue to resolve what it sees as an increasingly deteriorating democratic space in Zimbabwe.
In a joint statement issued after a meeting with Zimbabwean ministers, the EU reiterated its commitment to support political and economic reforms, including the fight against corruption.
Earlier, an EU memo prepared for its diplomats ahead of talks in Harare on Thursday said the arrests and abductions of several political activists had “reinforced the impression that the democratic space is being curtained again”.
The memo, seen by Reuters, also said the EU was worried by Harare’s slow pace of political reforms, including the alignment of laws to the constitution that was adopted in 2013.
Zimbabwe – EU relations
The EU withdrew budget support to Zimbabwe in 2002 when it imposed sanctions on the late Robert Mugabe’s government over charges of political violence, human rights abuses, vote rigging and violent seizures of white-owned farms.
The talks this week are seen as an important step towards the EU resuming direct financial aid for the economy, which is in the grip of its worst crisis in a decade and worsened by a severe drought.
Timo Olkkonen, the EU’s ambassador in Harare, told acting foreign affairs minister July Moyo and his team at the start of the talks that reforms and inclusive political dialogue would also help with Zimbabwe’s economic recovery.
“These reforms can pave the way for a further strengthened relationship between Zimbabwe and EU based on shared values, the respect of human rights and the sustainable development goals agenda,” Olkkonen said, flanked by several EU diplomats.
Moyo said the talks would deal with all “hard issues” and were supported by President Emmerson Mnangagwa – who last month described EU and U.S. sanctions on Zimbabwe as a “cancer” sapping the economy.
With the economy afflicted by dollar shortages, fuel queues, power-cuts, and soaring prices, Mnangagwa has said restoring ties with the West and multilateral lenders like International Monetary Fund is one of his major priorities.
But, like Mugabe, he blames sanctions for the country’s economic ills and says they are designed to remove the ruling ZANU-PF party from power. Critics also say that since Mnangagwa came to power, he has cracked down on opposition parties.
This week, Zimbabwean police used batons, tear gas and water cannon to beat up and disperse supporters of the main opposition party trying to listen to a speech by their leader.
EU notes progress
In its memo, the EU noted Zimbabwe had made progress by deciding not to enforce its empowerment law, which would have required all foreign investors to cede at least 51% of their shares in local operations to Zimbabweans.
The memo also said the interim compensation of white farmers whose land was seized by the government was a positive gesture towards re-opening export markets in the European Union.
In a budget statement last week, Finance Minister Mthuli Ncube set aside $24 million to compensate white farmers, 768 of whom had consented to the interim compensation scheme.
REUTERS


Code-Name-Site
Home
Username
Logout
Graphics
Photography
Drawing
3D Models
Other
Literature
Poetry
Poems
Novels
Other
Ceate New


--- layout: post title: useful, essential and most often used Vim commands categories: - Linux - OS tags: - Linux - Note - Vim published: true comments: true ---
< The list of Vim commands >
| Working with files | |
| Vim command | Action |
| :e filename | Open a new file. You can use the Tab key for automatic file name completion, just like at the shell command prompt. |
| :w filename | Save changes to a file. If you don't specify a file name, Vim saves as the file name you were editing. For saving the file under a different name, specify the file name. |
| :q | Quit Vim. If you have unsaved changes, Vim refuses to exit. |
| :q! | Exit Vim without saving changes. |
| :wq | Write the file and exit. |
| : x | Almost the same as :wq, write the file and exit if you've made changes to the file. If you haven't made any changes to the file, Vim exits without writing the file. |
| Moving around in the file | |
| These Vim commands and keys work both in command mode and visual mode. | |
| Vim command | Action |
| j or Up Arrow | Move the cursor up one line. |
| k or Down Arrow | Down one line. |
| h or Left Arrow | Left one character. |
| l or Right Arrow | Right one character. |
| e | To the end of a word. |
| E | To the end of a whitespace-delimited word. |
| b | To the beginning of a word. |
| B | To the beginning of a whitespace-delimited word. |
| 0 | To the beginning of a line. |
| ^ | To the first non-whitespace character of a line. |
| $ | To the end of a line. |
| H | To the first line of the screen. |
| M | To the middle line of the screen. |
| L | To the the last line of the screen. |
| :n | Jump to line number n. For example, to jump to line 42, you'd type :42 |
| Inserting and overwriting text | |
| Vim command | Action |
| i | Insert before cursor. |
| I | Insert to the start of the current line. |
| a | Append after cursor. |
| A | Append to the end of the current line. |
| o | Open a new line below and insert. |
| O | Open a new line above and insert. |
| C | Change the rest of the current line. |
| r | Overwrite one character. After overwriting the single character, go back to command mode. |
| R | Enter insert mode but replace characters rather than inserting. |
| The ESC key | Exit insert/overwrite mode and go back to command mode. |
| Deleting text | |
| Vim command | Action |
| x | Delete characters under the cursor. |
| X | Delete characters before the cursor. |
| dd or :d | Delete the current line. |
| Entering visual mode | |
| Vim command | Action |
| v | Start highlighting characters. Use the normal movement keys and commands to select text for highlighting. |
| V | Start highlighting lines. |
| The ESC key | Exit visual mode and return to command mode. |
| Editing blocks of text | |
| Note: the Vim commands marked with (V) work in visual mode, when you've selected some text. The other commands work in the command mode, when you haven't selected any text. | |
| Vim command | Action |
| ~ | Change the case of characters. This works both in visual and command mode. In visual mode, change the case of highlighted characters. In command mode, change the case of the character uder cursor. |
| > (V) | Shift right (indent). |
| < (V) | Shift left (de-indent). |
| c (V) | Change the highlighted text. |
| y (V) | Yank the highlighted text. In Windows terms, "copy the selected text to clipboard." |
| d (V) | Delete the highlighted text. In Windows terms, "cut the selected text to clipboard." |
| yy or :y or Y | Yank the current line. You don't need to highlight it first. |
| dd or :d | Delete the current line. Again, you don't need to highlight it first. |
| p | Put the text you yanked or deleted. In Windows terms, "paste the contents of the clipboard". Put characters after the cursor. Put lines below the current line. |
| P | Put characters before the cursor. Put lines above the current line. |
| Undo and redo | |
| Vim command | Action |
| u | Undo the last action. |
| U | Undo all the latest changes that were made to the current line. |
| Ctrl + r | Redo. |
| Search | |
| Vim command | Action |
| /pattern | Search the file for pattern. |
| n | Scan for next search match in the same direction. |
| N | Scan for next search match but opposite direction. |
| Replace | |
| Vim command | Action |
| :rs/foo/bar/a | Substitute foo with bar. r determines the range and a determines the arguments. |
| The range (r) can be | |
| nothing | Work on current line only. |
| number | Work on the line whose number you give. |
| % | The whole file. |
| Arguments (a) can be | |
| g | Replace all occurrences in the line. Without this, Vim replaces only the first occurrences in each line. |
| i | Ignore case for the search pattern. |
| I | Don't ignore case. |
| c | Confirm each substitution. You can type y to substitute this match, n to skip this match, a to substitute this and all the remaining matches ("Yes to all"), and q to quit substitution. |
| Examples | |
| :452s/foo/bar/ | Replace the first occurrence of the word foo with bar on line number 452. |
| :s/foo/bar/g | Replace every occurrence of the word foo with bar on current line. |
| :%s/foo/bar/g | Replace every occurrence of the word foo with bar in the whole file. |
| :%s/foo/bar/gi | The same as above, but ignore the case of the pattern you want to substitute. This replaces foo, FOO, Foo, and so on. |
| :%s/foo/bar/gc | Confirm every substitution. |
| :%s/foo/bar/c | For each line on the file, replace the first occurrence of foo with bar and confirm every substitution. |


{% comment %} Using the order specified in "order" creates an entry in the sidebar for each page listed in the root directory. {% endcomment %}
{{ site.description }}


Beleaguered Tycoon’s Shipyard Surges 700% in Record Streak
by Ronojoy Mazumdar, P R SanjaiBookmark
(Bloomberg) -- Reliance Naval and Engineering Ltd., part of the indebted Anil Ambani-led group, is enjoying a renaissance -- at least on India’s stock market.
The penny stock hasn’t declined for a single session since Sept. 9 in a rally that has lifted it to 7.67 rupees from its record-low close of 95 paise. That’s the longest winning streak since the company’s trading debut in 2009.
The revival of the shipyard is crucial for Anil Ambani, who is betting on cash flows from government defense contracts as Prime Minister Narendra Modi plans to spend billions of dollars on national security. Brokers say the stock’s parabolic advance is likely driven by speculators, rather than by a change in the company’s fortunes.
“This could be a purely speculative move by certain market operators with a vested interest as there is no change in fundamentals of the company, which is reeling under various troubles,” said Arun Kejriwal, director at KRIS, an investment advisory firm in Mumbai. “It is quite easy to create such triggers on shares as prices are too low.”
The company didn’t immediately respond to calls and emails seeking comment.
Meanwhile, India’s bankruptcy tribunal is considering putting Reliance Naval in bankruptcy as lenders led by IDBI Bank Ltd. have decided not to restructure the company’s debt. Even after the recent gains, the company’s shares are down 45% for the year.
©2019 Bloomberg L.P.