The Seneca API is pretty tiny. We try hard to keep any non-essential functionality out of core. Instead, we push it out to plugins. The core API is documented below. If you have any further questions, get in touch. We love to talk!
Creates a new instance of Seneca with the provided options.
Optional. The options you wish to provide to the instance of seneca being created. When no options are provided the defaults in the usage section below are provided.
var Seneca = require('seneca')
var seneca = Seneca({
tag: 'some-name',
timeout: 500,
log: 'silent',
debug: {
undead: false,
short_logs: false,
},
strict: {
result: true,
add: false,
find: true,
maxloop: 11
}
})
var Seneca = require('seneca')
var instanceA = Seneca()
var instanceB = Seneca()
require('seneca')
.use('entity')
.client({pin: 'cmd:start', port: 4300})
.listen()
options.tag
is '-'
.options.timeout
is ``options.log
is ``The close method gracefully closes Seneca. An optional callback can be provided to check for completion and handle any errors that occur during gracefully closing.
A callback that is fired when .close
is complete. If an error occurred during close it
will be provided to you in the callback you supply.
var seneca = require('seneca')
seneca.close((err) => {
if (err) console.log(err)
else console.log('close complete!')
})
…
The .act
method sends a given message to any interested handlers. The message sent is
‘matched’ by 1 or more handlers and a reply may or may not be returned. A message is
processed is based on the transport mechanism used to send it.
The message you wish to send over seneca’s transport pipeline. Alternatively, if using
Jsonic, this param will be merged with the payload
param to form the complete message.
Optional. An object payload to handle cases where Jsonic strings are used.
Optional. When an act is fired the handler can optionally respond. To handle this reply
provide a callback function with the signature function (err, reply)
. If no callback
is provided Seneca will simply discard the reply.
seneca.act(data)
seneca.act(data, (err, reply) => {
if (err) console.log(err)
else console.log(reply)
})
seneca.act('role:store,cmd:update', data)
seneca.act('role:store,cmd:save', data, (err, reply) => {
if (err) console.log(err)
else console.log(reply)
})
…
The .add
method allows handlers to be added to an instance of Seneca for the purposes
of processing messages. Messages are matched against the pattern
param and optionally
validated using the spec
param. Handlers must call done but do not have to provide a
return value if one does not make sense.
The pattern to filter the handler to; only messages which match the pattern provided will be passed to the handler. The pattern can be a plain object or JSonic string.
Optional. A parambulator spec object for validating the matched message. Messages that do not match are rejected with an error returned to the caller if applicable.
The handler that processes the message. Messages are provided as plain objects via the
msg
param. When processing is complete or errors the done
callback can be used to
complete execution. The signature for done
is function (err, reply)
.
…
…
The .has
method will return a true or false depending on wether or not the provided
pattern has a matching handler. Has will also emit true if a pattern has been pinned
via a .client()
.
The pattern to verify against. The input can be either a plain Javascript object or a JSonic string. It does not matter if a string or object was used when adding the handler.
'use strict'
var seneca = require('seneca')()
seneca.add('some:pattern', (msg, done) => {done()})
console.log(seneca.has('some:pattern'))
console.log(seneca.has({some:'pattern'}))
// Output:
// true
// true
'use strict'
var seneca = require('seneca')()
seneca.client({pin: 'some:pin'})
console.log(seneca.has('some:pin'))
// Output:
// true
.listen
will not match to true, since they are used as a filter.true
does not ensure a successful call, only that a handler is known.The .sub
method allows the ability to listen for any messages that are emitted in the
local Seneca instance. It provides a way to listen for the message sent, not the result
of that message.
The pattern to match against for the provided handler.
…
…
…
The .listen
methods creates a listener that can handle messages external from external
sources. By default HTTP is used but both transport and related options can be set via
the options
param.
The options used to decide which underlying transport to use. Additional options in this object will be passed on to the chosen transport.
…
…
The .client
methods creates a client that can send messages to external sources. By
default HTTP is used. Transport type and other options can be set by passing an object
via the options
param.
The options used to decide which underlying transport to use. Additional options in this object will be passed on to the chosen transport.
seneca.listen({
type:
})
seneca
.listen({type: 'tcp', port: '3060', pin: 'role:supplier'})
.listen({type: 'http', port: '3060', pin: 'role:supplier'})
options.type
is HTTP
.options.port
is 101010
.options.pin
can be a JSonic string or plain object.The .use()
method provides the ability to load plugins into seneca. Plugins are the
primary method of composition in Seneca and should be used liberally.
…
…
…
…
The .ready()
method fires the provided callback every time a set of plugins has been
loaded. Ready will only fire if one or more plugins are loaded. Multiple calls are
supported.
The callback to execute when a set of plugins have been loaded. Any errors raised during
plugin loading will be reported to the callback via the err
param.
'use strict'
var seneca = require('seneca')()
function a () {console.log('plugin 1')}
function b () {console.log('plugin 2')}
seneca.use(a)
seneca.use(b)
seneca.ready(function (err) {
if (err) process.exit(1)
console.log('ready fired')
})
'use strict'
var seneca = require('seneca')()
function a () {console.log('plugin 1')}
function b () {console.log('plugin 2')}
function c () {console.log('plugin 3')}
function d () {console.log('plugin 4')}
seneca.use(a)
seneca.use(b)
seneca.ready((err) => {
if (err) process.exit(1)
console.log('ready 1 fired')
seneca.use(c)
seneca.use(d)
seneca.ready (function (err) {
if (err) process.exit(1)
console.log('ready 2 fired')
})
})
ready
inside of plugins is not considered supportedready
methods will be fired in the order they are encounteredThe export
method provides the ability for plugins to export named functions or objects
for use in later loaded plugins or in your own implementations.
The name of the object or function you wish to export.
…
The log.level
method set provides the ability to log directly off the Seneca instance.
By default Seneca includes a logging adaptor that emits JSON based logs.
You can swap out this adaptor for others. See Logging with Seneca for more information on adaptors.
The data to be logged.
warn
log level in Senecavar seneca = Seneca({
log: { level: 'warn+' }
})
seneca.log.debug('debug log level')
seneca.log.info('info log level')
seneca.log.warn('warn log level')
seneca.log.error('error log level')
seneca.log.fatal('fatal log level')
// Output:
// ["warn log level"]
// ["error log level"]
// ["fatal log level"]
test
log level in Senecavar seneca = Seneca({
log: 'test'
})
var seneca = Seneca({
log: { level: 'error+' }
})
seneca.log.warn({notice: 'warn log level'})
seneca.log.error({notice: 'error log level'})
seneca.log.fatal({notice: 'fatal log level'})
// Output:
// {"notice":"error log level","level":"error","seneca":"c8i.../147.../13586/3.0.0/-","when":1472737155055}
// {"notice":"fatal log level","level":"fatal","seneca":"c8i.../147.../13586/3.0.0/-","when":1472737155060}
debug
, info
, warn
, error
, fatal
info+
means info and above: info, warn, error, fatalConvenience shortcut log levels:
all
sets log level to debug+
,silent
sets log level to none
,test
represents the error+
levelThe default logging level is info+
.
The decorate
method provides the ability to decorate Seneca with functions or objects
in a safe manner. Trying to register a name that is already reserved will throw.
The name you wish to call the decorated function or object.
The handler the decorate seneca with. This can be a function or an object.
var seneca = require('seneca')
seneca.decorate('stamp', (pattern) => {
console.log(Date.now(), pattern)
})
seneca.stamp('role:echo')
var seneca = require('seneca')()
function plugin (opts) {
var seneca = this
seneca.decorate('stamp', (pattern) => {
console.log(Date.now(), pattern)
})
return {name: 'timestamper'}
}
seneca
.use(plugin)
.ready((err) => {
seneca.stamp('role:echo')
})
Issues? From spelling errors to broken tutorials and everything in between, report them here.


Loading...
Transactions
Accounts
Search
GilPlus
My Gil
Nested View
Transactions
Accounts
Search transactions
Log in
email
password


Jake's Favorites!:
-
HTML, CSS
Daft Punk Soundboard
-
JavaScript
Pokemon Team Builder
Other projects:
-
JavaScript
Simple Calendar
-
JavaScript
Form Practice
-
C#
Nickelback Lorem Ipsum
-
JavaScript
Palindrome Detector
-
JavaScript
Sad Libs
-
JavaScript
Form Validation
-
JavaScript
Medical Calculations


{case_study_template}
Assisted Digital Why do we need Assisted Digital?
Ian Trenholm is Chief Operating Officer, Department for Environment, Food and Rural Affairs
Helen Milner is Chief Executive, Online Centres Foundation
Rebecca Kemp is Policy Team Leader, Government Digital Service
John Ploughman is Digital Communication Manager, Driving Standards Agency


B.C. petition calls for seat belts in new school buses
Agassiz bus driver collects 124,000 signatures in support
by Tom FletcherChilliwack-Kent MLA Laurie Throness has joined calls to start installing seatbelts in new B.C. school buses.
Throness has teamed with Agassiz school bus driver Gary Lillico, whose online petition for the measure to begin in the fall of 2021 has attracted 124,000 signatures after a year.
“It grows daily, I spend almost every day working on it,” Lillico told reporters at the legislature Monday.
Lillico said he started the petition about a year ago after then-federal transport minister Marc Garneau announced a review of a 2010 Transport Canada study, which had never been released until then, came out.
“And it basically said that compartmentalization fails to protect the children in side-impact and rollover accidents,” Lillico said.
Transportation Minister Claire Trevena said Monday that the province is participating in a federal task force on the issue, and she will await the result of that before taking any action.
RELATED: Transport Canada begins review of seatbelt rules
RELATED: Passengers injured in B.C. school bus crash head home
Throness presented a private member’s bill Monday in an effort to gain attention for the measure. It would amend B.C.’s Motor Vehicle Act to require the change for new buses purchased after September 2021, to give school districts a chance to plan.
Throness told the legislature that Transport Canada statistics from 1995 to 2004 show more than 25,000 collisions involving school buses resulted in five passenger deaths and more than 3,400 injuries.
“The public policy response should be what is required of every other vehicle in Canada, and that is three-point seatbelts,” Throness said.


As a modern, high-level programming language, Swift handles much of the memory management of your apps and allocates or deallocates memory on your behalf. It does so using a feature of the Clang compiler called Automatic Reference Counting, or ARC. In this tutorial, you'll learn all about ARC and memory management in Swift. With an understanding of this system, you can influence when the life of a heap object ends. Swift uses ARC to be extremely predictable and efficient in resource constrained environments — like iOS.Because ARC is “automatic”, you don’t have to explicitly participate in the reference counting of objects. You do, however, need to consider relationships between objects to avoid memory leaks. This is a very important requirement often overlooked by new developers. In this tutorial, you’ll level up your Swift and ARC skills by learning the following:
class User {
let name: String
init(name: String) {
self.name = name
print("User \(name) was initialized")
}
deinit {
print("Deallocating user named: \(name)")
}
}
This defines a class User
The class User
has one property, name
, an init
method (called just after memory allocation) and a deinit
method (called just prior to deallocation). The print
statements let you see what is happening.
Now, initialize an instance of User
at the top of MainViewController
, just above viewDidLoad()
:
let user = User(name: "John")
Now, run the app, and make sure the console is visible (Command + Shift + Y) so you can see the result of the print
statements.You will notice that the console shows "User John was initialized\n"
However, you will notice that the print
statement within deinit
is never called.
This means that the object is never deinitialized, which means it's never deallocated. That’s because the scope in which it was initialized is never closed — the view controller itself never goes out of scope — so the object is not removed from memory.
Wrapping this instance in a function will allow it to go out of scope, and thus ARC will deallocate it. Create a function inside the MainViewControllerclass right before the closing brace, and move the initialization of
User
inside of it.
func runScenario() {
let user = User(name: "John")
}
runScenario()
will define scope so an instance of User
can be created. At the end of the scope, we would expect user
to be deallocated. Now, ensure runScenario()
is called inside the viewDidLoad()
method:
override func viewDidLoad() {
super.viewDidLoad()
runScenario()
}
Run the app again.
Now you see both print
statements that correspond to initialization and deinitialization in the console. This shows the object is being deinitialized at the end of the scope, just before it’s removed from memory.
The lifetime of a Swift object consists of five stages:
init
code runs)deinit
code runs)print
statements in init
and deinit
as a proxy for monitoring those processes. Sometimes “deallocate” and “deinit” are used interchangeably, but they are actually two distinct stages in an object’s lifetime.
Reference counting is the mechanism by which an object is deallocated when it is no longer required. The question here is “When can you be sure an object won’t be needed in the future?” Reference counting manages this by keeping a usage count, also known as the reference count, inside each object instance. This count indicates how many "things" reference the object. When the reference count of an object hits zero no clients of the object remain, so the object deinitializes and deallocates.
When you initialize the User
object, it starts with a reference count of 1 since the constant user
references that object. At the end of the runScenario()
function, user
goes out of scope, the count decrements, and the reference count decrements to zero. As a result, user
deinitializes and subsequently deallocates.
object1
and object2
are never deallocated.
To see this in action, add the following code after the User
class in MainViewController.swift:
class Phone {
let model: String
var owner: User?
init(model: String) {
self.model = model
print("Phone \(model) was initialized")
}
deinit {
print("Deallocating phone named: \(model)")
}
}
Then change the runScenario()
function to look like this:
do {
let user1 = User(name: "John")
let iPhone = Phone(model: "iPhone XS")
}
This adds a new class called Phone
, and creates an instance of this new class.
This new class is rather simple: two properties, one for the model and one for the owner, with an init
and a deinit
method. The owner
property is optional, since a Phone
can exist without a User
.
Next, add the following code to the User
class, immediately after the name
property:
private(set) var phones: [Phone] = []
func add(phone: Phone) {
phones.append(phone)
phone.owner = self
}
This adds a phones
array property to hold all phones owned by a user. The setter is made private so that clients are forced to use add(phone:)
. This method ensures that owner
is set properly when you add it.
Now run the app. As you can see in the console, both Phone
and User
objects deallocate as expected.
But now update the runScenario()
function look like this:
func runScenario() {
let user = User(name: "John")
let iPhone = Phone(model: "iPhone XS")
user.add(phone: iPhone)
}
Here, you add iPhone
to user
. This automatically sets the owner
property of iPhone
to user
. A strong reference cycle between the two objects prevents ARC from deallocating them. As a result, both user
and iPhone
instances never deallocate.
weak
. Unless otherwise specified, all references are strong. Weak references, by contrast, don’t increase the reference count of an object.
In other words, weak references don’t participate in the lifecycle management of an object. Additionally, weak references are always declared as optional types. This means when the reference count goes to zero, the reference can automatically be set to nil
.
In the image above, the dashed arrow represents a weak reference. Notice how the reference count of object1
is 1 because variable1
refers to it. The reference count of object2
is 2, because both variable2
and object1
refer to it. While object2
references object1
,
it does so weakly, meaning it doesn’t affect the strong reference count of object1
.
When both variable1
and variable2
go away, object1
will be left with a reference count of zero and deinit
will be called. This removes the strong reference to object2
which then subsequently deinitializes.
Back in your th app, break the User
-Phone
reference cycle by making the owner
reference weak as shown below:
class Phone {
weak var owner: User?
// other code...
}
Run the app again. Now user
and iPhone
deallocate properly once the runScenario()
function exits scope.
unowned
.
What's the difference between unowned
and weak
? A weak
reference is always optional and automatically becomes nil
when the referenced object deinitializes. That’s why you must define weak properties as optional var
types for your code to compile. The variable needs to change.
Unowned references, by contrast, are never optional types. If you try to access an unowned property that refers to a deinitialized object, you will trigger a runtime error comparable to force unwrapping a nil
optional type.
Time to get some practice using unowned
. Add a new class CarrierSubscription
at the end of MainViewController.swift:
class CarrierSubscription {
let name: String
let countryCode: String
let number: String
let user: User
init(name: String, countryCode: String, number: String, user: User) {
self.name = name
self.countryCode = countryCode
self.number = number
self.user = user
user.subscriptions.append(self)
print("CarrierSubscription \(name) is initialized")
}
deinit {
print("Deallocating CarrierSubscription named: \(name)")
}
}
CarrierSubscription
has four properties: the name
of the subscription, the countryCode
and phone number
, and a reference to a User
object.
Next, add the following to the User
class, after the name
property:
var subscriptions: [CarrierSubscription] = []
This adds a subscriptions
property, which will hold an array of CarrierSubscription
objects.
Also, add the following to the top of the Phone
class, after the owner
property:
var carrierSubscription: CarrierSubscription?
func provision(carrierSubscription: CarrierSubscription) {
self.carrierSubscription = carrierSubscription
}
func decommission() {
self.carrierSubscription = nil
}
This adds an optional CarrierSubscription
property and two new functions to provision
and decommission
a carrier subscription on the phone.
Next, add the following to init
inside CarrierSubscription
, just before the print
statement:
user.subscriptions.append(self)
This ensures that this CarrierSubscription
is added to the user's array of subscriptions.
Finally, change the runScenario()
function to look like this:
func runScenario() {
let user1 = User(name: "John")
let iPhone = Phone(model: "iPhone 6s Plus")
user1.add(phone: iPhone)
let subscription1 = CarrierSubscription(name: "TelBel", countryCode: "0032", number: "31415926", user: user1)
iPhone.provision(carrierSubscription: subscription1)
}
Run the app. Notice what is printed in the console. Again you see a reference cycle: neither user
, iPhone
or subscription
are deallocated at the end.
Can you find where the issue is now?
Either the reference from user
to subscription
or the reference from subscription
to user
should be unowned
to break the cycle. The question is which of the two to choose. This is where a little bit of knowledge of your domain helps.
A user owns a carrier subscription, and (contrary to what carriers may think!), the carrier subscription does not own the user. Moreover, it doesn’t make sense for a CarrierSubscription
to exist without an owning User
. This is why you declared it as an immutable let
property in the first place.
Since a User
with no CarrierSubscription
can exist, but no CarrierSubscription
can exist without a User
, the user
reference should be unowned.
Add unowned
to the user
property of CarrierSubscription
like so:
class CarrierSubscription {
let name: String
let countryCode: String
let number: String
unowned let user: User
// Other code...
}
This breaks the reference cycle and lets every object deallocate.
self
.
Add the following to CarrierSubscription
, just after the user
property:
lazy var completePhoneNumber: () -> String = {
self.countryCode + " " + self.number
}
This closure computes and returns a complete phone number. The property is declared with lazy
, meaning that it will not be assigned until it’s used the first time. This is required because it’s using self.countryCode
and self.number
, which aren't available until after the initializer runs.
Add the following line at the end of the runScenario()
function:
print(subscription1.completePhoneNumber())
You will notice that user1
and iPhone
deallocate, but not CarrierSubscription
due to the strong reference cycle between the object and the closure.
Swift has a simple, elegant way to break strong reference cycles in closures. You declare a capture list in which you define the relationships between the closure and the objects it captures.
To illustrate how the capture list works, consider the following code:
var x = 5
var y = 5
let someClosure = { [x] in
print("\(x), \(y)")
}
x = 6
y = 6
someClosure() // Prints 5, 6
print("\(x), \(y)") // Prints 6, 6
The variable x
is in the capture list, so a copy of x
is made at the point the closure is defined. It is said to be captured by value. On the other hand, y
is not in the capture list, and is instead captured by reference. This means that when the closure runs, y
will be whatever it is at that point,
rather than at the point of capture.
Capture lists come in handy for defining a weak
or unowned
relationship between objects used in a closure. In this case, unowned
is a good fit since the closure
could not exist while the instance of CarrierSubscription
has gone away.
Change the completePhoneNumber
closure in CarrierSubscription
to look like this:
lazy var completePhoneNumber: () -> String = {
[unowned self] in
return self.countryCode + " " + self.number
}
This adds [unowned self]
to the capture list for the closure. It means that self
is captured as an unowned reference instead of a strong reference.
This solves the reference cycle. Hooray!
The syntax used here is actually a shorthand for a longer capture syntax, which introduces a new identifier. Consider the longer form:
var closure = {
[unowned newID = self] in
// Use unowned newID here...
}
Here, newID
is an unowned
copy of self
. Outside the closure’s scope, self
keeps its original meaning. In the short form, which you used above, a new self
variable is created which shadows the existing self
variable just for the closure's scope.
In your code, the relationship between self
and the completePhoneNumber
closure is unowned
.
If you are sure that a referenced object from a closure will never deallocate, you can use unowned
. If it does deallocate, you are in trouble.
Add the following code to the end of MainViewController.swift:
// A class that generates WWDC Hello greetings. See http://wwdcwall.com
class WWDCGreeting {
let who: String
init(who: String) {
self.who = who
}
lazy var greetingMaker: () -> String = {
[unowned self] in
return "Hello \(self.who)."
}
}
Next, add the following code block to the end of the runScenario()
function:
let greetingMaker: () -> String
do {
let mermaid = WWDCGreeting(who: "caffinated mermaid")
greetingMaker = mermaid.greetingMaker
}
greetingMaker() // TRAP!
The app hits a runtime exception because the closure expects self.who
to still be valid, but it was deallocated when mermaid
went out of scope in the do
block. This example may seem contrived, but it can easily happen in real life such as when you use closures to run something much later, such as after an asynchronous network call has finished.
Change the greetingMaker
variable in WWDCGreeting
to look like this:
lazy var greetingMaker: () -> String = { [weak self] in
return "Hello \(self?.who)."
}
There are two changes you made to the original greetingMaker
closure. First, you replaced unowned
with weak
. Second, since self
became weak
, you needed to access the who
property with self?.who
.
The app no longer crashes, but you get a curious result in the console: "Hello, nil."
.
Perhaps this is acceptable, but more often you want to do something completely different if the object is gone. Swift’s guard let
makes this easy.

}
return "Hello \(self.who)."
}
The guard statement binds self
from weak self
. If self
is nil
, the closure returns "No greeting available."
. On the other hand, if self
is not nil
, it makes self
a strong reference, so the object is guaranteed to live until the end of the closure.
This idiom, sometimes referred to as the strong-weak dance, is part of the Ray Wenderlich Swift Style Guide since it's a robust pattern for handling this behavior in closures.
ContactsTableViewController
: shows all the Contact
objects from the database.DetailViewController
: shows the details for a certain Contact
object.NewContactViewController
: allows the user to add a new contact.ContactTableViewCell
: a custom table view cell to show the details of a Contact
object.Contact
: the model for a contact in the database.Number
: the model for a phone number.Contact
objects. The cycle is clearly visible: Contact
and Number
objects keep each other alive by referencing one another.
These type of graphs are a sign for you to look into your code. Consider that a Contact
can exist without a Number
, but a Number
should not exist without a Contact
.
How would you solve the cycle? Should the reference from Contact
to Number
or the one from Number
to Contact
be weak or unowned?
Give it your best shot first, then take a look below if you need help!
[spoiler]There are two possible solutions: you can either make the relationship from Contact
to Number
weak, or the relationship from Number
to Contact
unowned to solve the cycle.
Apple’s Documentation recommends that a parent
object should have a strong hold on a child
object by convention — not the other way around. This means that giving Contact
a strong hold on a Number
, and Number
an unowned reference to a Contact
, is the most convenient solution:
class Number {
unowned var contact: Contact
// Other code...
}
class Contact {
var number: Number?
// Other code...
}
Run and debug again. The issue has been resolved!
[/spoiler]
struct Node { // Error
var payload = 0
var next: Node? = nil
}
Hmm, the compiler's not happy. A struct
(value type) cannot be recursive or use an instance of itself. Otherwise, a struct
of this type would have an infinite size.
Change it to a class like so:
class Node {
var payload = 0
var next: Node? = nil
}
Self reference is not an issue for classes (i.e. reference types), so the compiler error disappears.
Now, add this to MainViewController.swift:
class Person {
var name: String
var friends: [Person] = []
init(name: String) {
self.name = name
print("New person instance: \(name)")
}
deinit {
print("Person instance \(name) is being deallocated")
}
}
And add this to the end of runScenario()
do {
let ernie = Person(name: "Ernie")
let bert = Person(name: "Bert")
ernie.friends.append(bert) // Not deallocated
bert.friends.append(ernie) // Not deallocated
}
Here’s an example of a mixture of value types and reference types that form a reference cycle.
ernie
and bert
stay alive by keeping a reference to each other in their friends
array, although the array itself is a value type. Make the array unowned
. Xcode will show an error: unowned
only applies to class types.
To break the cycle here, you’ll have to create a generic wrapper object and use it to add instances to the array. If you don’t know what generics are or how to use them, check out the Introduction to Generics tutorial on this site.
Add the following above the definition of the Person
class:
class Unowned {
unowned var value: T
init (_ value: T) {
self.value = value
}
}
Then, change the definition of the friends
property in Person
like so:
var friends: [Unowned] = []
And finally, change the do
in runScenario()
block to look like this:
do {
let ernie = Person(name: "Ernie")
let bert = Person(name: "Bert")
ernie.friends.append(Unowned(bert))
bert.friends.append(Unowned(ernie))
}
ernie
and bert
now deallocate happily!
The friends
array isn’t a collection of Person
objects anymore, but instead a collection of Unowned
objects that serve as a wrapper for the Person
instances.
To access the Person
object within Unowned
use the value
property, like so:
let firstFriend = bert.friends.first?.value // get ernie


Night Moves (1975) Rating: 2.5 stars out of 5.0 stars
Cast: Gene Hackman, Susan Clark, Jennifer Warren, Harris Yulin, Kenneth Mars, James Woods, Melanie Griffith, Dennis Dugan Written by: Alan Sharp Directed by: Arthur Penn Running Time: 75 minutes
Harry Moseby (Gene Hackman) is an ex-football star turned private detective. After taking a case to find the daughter of a former actress, he learns that his wife (Susan Clark) is having an affair, and the film then tries (slightly unsuccessfully) to juggle both storylines. Unfortunately, the film derails midway through and has a difficult time getting back on track. Things do come together well at the end, but becomes taxing getting to that point.
The title seems to be a reference to chess, as Harry discusses several "knight moves" while reenacting a famous chess match from years past. However, since this film is called "Night Moves" and not "Knight Moves" then the title seems to denote some sort of double meaning. Much of the movie does take place at night however, so maybe that's what it's referring to. Aside from all that, the film is most notable for the debut of Melanie Griffith, who plays the subject of Hackman's investigation.
I'd like to include some information directly from the film's original VHS release box because I doubt it'll ever be seen again. It's one of those very old Warner clamshell boxes that has a lot of text on the back of it pertaining to the film (two or three times that of one of today's releases would have). There's a quote from an interview with Gene Hackman that states "Arthur Penn is a great director because he sees the special human moment in a scene, outside the dialogue, outside the scenery; he sees the human animal, he sees the life of the scene. He's especially good with people who have never made a picture before. Both Melanie Griffith and Jennifer Warren are making their first film with him and he is really turning them on to the way film works."  That's a odd statement to make, since it's not as if all this information is presented to Harry and he just doesn't catch on. He catches on whenever any information is given to him. [R]
Chuck Dowling -<EMAIL_ADDRESS>The Jacksonville Film Journal - http://www.jaxfilmjournal.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


I liaise with external clients to identify and claim eligible research and development projects for the Australian Government R&D Tax Incentive. I work across a variety of industries, using my science and engineering background to engage with Australian leaders in innovation, create technical project descriptions, and identify costs.
Design, configure, install and support Networking and Server solutions to a number of Small/Medium businesses across Perth and The Pilbara Region both Remotely and on site. I task myself to troubleshoot, diagnose and resolve any issues that our customers might be having. My role requires me to work and solve issues independently; but also offer my skills and knowledge to the other Technicians in my team.
Assisted Customers by providing Trusted and Knowledgeable advice in a retail environment. Developed a strong connection of loyalty and trust from my Customers. Worked in a number of different Branches across Perth and was able to easily pick up tasks and complete my work at a High standard no matter the location.


/
button/basic
calendar/basic
card/basic
carousel/basic
carousel/develop
carousel/mobile-basic
cascader/basic
cascader/mobile-basic
checkbox/basic
checkbox/mobile-basic
clipboard/basic
clipboard/mobile-basic
collapse/basic
color-picker/basic
countdown/basic
create-portal/basic
customer/basic
date-picker/basic
date-picker/mobile-basic
debounce-click/basic
drawer/basic
dropdown/basic
echarts/basic
editor/basic
expand/basic
files-picker/basic
form/basic
form/mobile-basic
fragment/basic
html-img/basic
icon/basic
img/basic
img/develop
imgs-crop/basic
imgs-crop/mobile-basic
imgs-picker/basic
imgs-picker/mobile-basic
imgs-preview/basic
imgs-preview/mobile-basic
input/basic
input/mobile-basic
list/mobile-basic
marquee/basic
marquee/develop
message/basic
modal/basic
modal/mobile-basic
page/basic
paging/basic
paging/expand
paging/native
paging/piece
paging/tabs
picker/mobile-basic
popconfirm/basic
popover/basic
popup/mobile-basic
portal/basic
print/basic
progress/basic
pull-scroll/basic
pull-scroll/container
pull-scroll/reverse
pull-scroll/screen-async
pull-scroll/screen-sync
radio/basic
radio/mobile-basic
select/basic
slider/basic
sort-list/basic
sort-list/mobile-basic
spin/basic
switch/basic
switch/mobile-basic
table/basic
table/develop
table/span
table/tree
tabs/basic
tabs/mobile-basic
tag/basic
textarea/basic
textarea/mobile-basic
time-picker/basic
toast/mobile-basic
touch/basic
transition/basic
tree/basic
upload/basic


#include <cstdlib>
#include <iostream>
#include <string>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
#include <GL/glut.h>
#include "PCIeAPI.h"
#include "DebugPrint.h"
#include "MiscUtils.h"
#include "LSCDMA_IF.h"
#include "GPIO.h"
#include "../MemMap.h"
Go to the source code of this file.
Defines | |
| #define | CB_IMAGE_FRAME_SIZE (1024 * 1024) |
| #define | BASE_RATE 1 |
| #define | SOFTWARE_RATE 2 |
| #define | DMA_RATE 3 |
| #define | PAUSE 4 |
Functions | |
| void | cleanUpAndExit (void) |
| void | cbDraw (void) |
| void | cbKeyPressed (unsigned char key, int x, int y) |
| void | cbSpecialKeyPressed (int key, int x, int y) |
| void | cbReshape (int Width, int Height) |
| void | setupDrawing (int Width, int Height) |
| int | main (int argc, char **argv) |
Variables | |
| ULONG | WaitTime = 0 |
| ULONG | OpMode = DMA_RATE |
| ULONG | PrevMode = DMA_RATE |
| ULONG | PixelVal = 0x00000000 |
| ULONG * | pImgBuf |
| ULONG | LoopCnt |
| ULONG | ElpsCnt |
| clock_t | StartTime |
| int | Window_ID |
| int | Window_Width = 512 |
| int | Window_Height = 512 |
| LSCDMA_IF * | pDrvr |
| const char * | WindowTitle = "LatticeSGDMA: ColorBars" |
| const char * | ModeName [5] = {"", "BASE_Rate", "SW_Rate", "DMA_Rate", "Paused"} |
| ULONG | Color [64] |
Definition in file ColorBars.cpp.
|
|
OpenGL Draw Callback. This routine does the actual drawing. Definition at line 442 of file ColorBars.cpp. Referenced by main(). |
|
|
Process a user Key Press. OpenGL calls this back when the user presses a normal key on the keyboard. The Window must have focus. Definition at line 576 of file ColorBars.cpp. References cleanUpAndExit(). Referenced by main(). |
|
|
Callback routine to recompute the window size if it gets re-sized by the user. Called by OpenGL. Returns to OpenGL. Definition at line 666 of file ColorBars.cpp. Referenced by main(). |
|
|
Process a user Function Key Press. OpenGL calls this back when the user presses function and arrow keys on the keyboard (non-ASCII). The Window must have focus. Definition at line 622 of file ColorBars.cpp. Referenced by main(). |
|
|
This cleans-up all instantiated objects, closes GL and eventually exits the program. It's everything that would normally be done at the end of main() but it needs to be called explicitly from an OpenGL callback once its detected that the user wants to exit. Definition at line 418 of file ColorBars.cpp. Referenced by cbKeyPressed(). |
|
|
Main Entry Point. Creates the OpenGL window, opens the DMA driver, starts reads from the ColorBar IP module and displays the pixel data in the OpenGL window. Definition at line 241 of file ColorBars.cpp. References cbDraw(), cbKeyPressed(), cbReshape(), cbSpecialKeyPressed(), and setupDrawing(). |
|
|
Initialize the redering parameters for the window after OpenGL library has been initialized, but before entering the OpenGL control loop. Definition at line 689 of file ColorBars.cpp. References cbReshape(). |


{% extends "base.html" %} {% block page_content %}
This is a motherfucking CTF platorm.

Who needs javascript? Real hackers use plain HTML.
Inspired by motherfuckingwebsite.com
DOSsing is forbidden.
If you find some infrastructure related bugs please mail
me at mail@me.me.


[1]
Great picture. Plenty of HDMI; none that I can see
[2]
Great picture and quality.; Weirdly shaped remote. 120 HZ Unnecessary.


Inkscape is an opensource vector graphics editor that can be used to create banners, logos,icons,envelopes business cards,cover pages and other graphics. It is free for everybody to use and is an ideal tool for design firms (both big and small) who have to pay a hefty licensing fees to use proprietary drawing tools. Although this article demonstrates how to use inkscape on sparvk opensource operating system distribution you can install inkscape on any platform that you want. If you have not already installed inkscape on your sparvk machine please go this section first.
For this tutorial we'll do a very simple project of creating a business card on inkscape. The purpose of this tutorial is not to show off the powers of inkscape but to provide you, as a designer, an opensource alternative to proprietary drawing applications. To keep things even simpler we'll only be printing on one side of the card.
When you first open inkscape you'll be presented with a canvas of predefined dimensions that do not match with the standard dimensions of a business card (3.5x2 inches). So our first objective is to resize the canvas to look like a business card. Luckily for us inkscape comes preconfigured with standard page sizes for a number of use cases
Choose the text tool and place the cursor on the top left point of your cursor. Add a bit of space and type the name, position and phone number. Now move the cursor to the middle and type the name of the company. Just below type the tagline of your company.
Although our business card provides sufficient information it is not all that stylish. A card needs to be simple but it also needs to make a good first impression so that it can be remembered. The easiest way to add a bit of sparkle to your card is to play with colors. You can
You'll need to know a few more things to accomplish this though:-
To change the text color just navigate to the bottom of the screen and choose from the one you like.
You can create different types of shapes. All shapes tools are on the panel to your left. Curves can be drawn with the help of straight line and beizer curves tool. Rectangles and squares can be drawn with the rectangle tool. Similarly there are tools for creating circles, 3d boxes and even stars. No shortage of things to play with!
Here's what the card looks like after I add a horizontal rule and a bit of color to the company name
If you are a professional designer you'll need to keep your inkscape files organized. Sparvk enabled operating system provides an easy to use filesystem manager that lets you store all your files in multiple levels of directories. With a "split view option" you can quickly move files and diretories from one location to another without having to jump through the file system -- that is choose the destination and location in a single window. If you have a remote ftp server you can even connect the sparvk enabled file system to the network storage instead of the local one.
For users who want more, there are options to install and use even more utilities like midnight commander a powerful command line base file manager. An organized file system facilitates collaboration among colleagues increasing the productivity of the team. sparvk understands that and therefore provides you with the tools best suited for this job.
Installting inkscape on sparvk is easy
Alternatively go the software center. Search for inkscape and click on the install button.
As you can probably tell from reading this example inkscape is a very easy to use tool. Even if you're not a designer knowing your way around inkscape can come in handy. You might need to either create some graphics from scratch or more probably to edit the existing vector gaphic documents to your liking.


 Try running 10updocker start <environment>
10updocker start <environment>


{{ comment }} This page shows all transactions a covered entity has with other covered entities. Each transaction contains shard data, that is the information that was needed to complete the transaction standard. Every transaction should have a standard. (I think.) {{ endcomment }}
{% extends "base.html" %} {% block title %} Transactions {% endblock %} {% block top %}| Standard {% include "invisible.html" %} | Other Entity {% include "invisible.html" %} | Information Shared {% include "invisible.html" %} | Date Requested {% include "invisible.html" %} | Date Responded {% include "invisible.html" %} | Purpose {% include "invisible.html" %} |
| {{ transaction.Standard }} | {% if transaction.SecondParty == entity %} {{ transaction.FirstParty.Name }} {% else %} {{ transaction.SecondParty.Name }} {% endif %} | {% with data=transaction.SharedInformation %} … {% include "informationModal.html" %} {% endwith %} | {{ transaction.DateRequested }} | {{ transaction.DateResponded }} | {{ transaction.Purpose }} |


Pure CSS Expanding Nav Circle
A simple example of a expanding circle nav that only uses css.
The nav works by using the ~
general sibling selector, along with a checkbox that has a for=""
toggle on the nav button to toggle whether the nav opens. The rest are just some divs that are hooked into the :checked
detector:
input[type=checkbox]:checked ~ .nav-content {
/* Magic things happen here. */
}


Go to the source code of this file.
|
| BOOL | injectionCreateRemoteThread (_In_ PTCHAR processName, _In_ PTCHAR dll32, _In_ PTCHAR dll64, _In_ BOOL isPath, _Out_ PHANDLE remoteThread, _Out_ PPROCESS_INFORMATION processInformation) |
| |
| BOOL | OpenProcessForHook (_In_ LPCTSTR path, _In_opt_ LPTSTR commandLine, _Out_ PBOOL is32BitProcess, _Out_ PPROCESS_INFORMATION processInformation) |
| |
| BOOL | GetProcessByName (_In_ LPTSTR processName, _Out_ PBOOL is32BitProcess, _Out_ PHANDLE hprocess) |
| |
| BOOL | DLLInject (_In_ HANDLE hProcess, _In_ TCHAR *dllPath, _In_ BOOL is32BitProcess, _Out_ HANDLE *remoteThread) |
| |
| BOOL | get32BitAdress (_In_ WCHAR *dllName, _In_ WCHAR *functionName, _Out_ PDWORD adresse32Bit) |
| |
◆ DLLInject()
| BOOL DLLInject |
( |
_In_ HANDLE |
hProcess, |
|
|
_In_ TCHAR * |
dllPath, |
|
|
_In_ BOOL |
is32BitProcess, |
|
|
_Out_ HANDLE * |
remoteThread |
|
) |
| |
◆ get32BitAdress()
| BOOL get32BitAdress |
( |
_In_ WCHAR * |
dllName, |
|
|
_In_ WCHAR * |
functionName, |
|
|
_Out_ PDWORD |
adresse32Bit |
|
) |
| |
◆ GetProcessByName()
| BOOL GetProcessByName |
( |
_In_ LPTSTR |
processName, |
|
|
_Out_ PBOOL |
is32BitProcess, |
|
|
_Out_ PHANDLE |
hprocess |
|
) |
| |
◆ injectionCreateRemoteThread()
| BOOL injectionCreateRemoteThread |
( |
_In_ PTCHAR |
processName, |
|
|
_In_ PTCHAR |
dll32, |
|
|
_In_ PTCHAR |
dll64, |
|
|
_In_ BOOL |
isPath, |
|
|
_Out_ PHANDLE |
remoteThread, |
|
|
_Out_ PPROCESS_INFORMATION |
processInformation |
|
) |
| |
◆ OpenProcessForHook()
| BOOL OpenProcessForHook |
( |
_In_ LPCTSTR |
path, |
|
|
_In_opt_ LPTSTR |
commandLine, |
|
|
_Out_ PBOOL |
is32BitProcess, |
|
|
_Out_ PPROCESS_INFORMATION |
processInformation |
|
) |
| |


Notices for files:
Copyright 2014 Google, Inc.
Copyright 2012 Square, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Copyright (C) 2013 The Guava Authors
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License
is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
or implied. See the License for the specific language governing permissions and limitations under
the License.
Copyright 2013 Jake Wharton
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
licensed by Gray Watson under the Creative Commons Attribution-Share Alike 3.0 License.
Copyright 2013 Square, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Copyright 2013 Square, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
License: Apache License 2.0
Copyright 2015 The RxAndroid authors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Copyright 2015 Wasabeef
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Copyright 2015 Wasabeef
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Joda-Time is licensed under the business-friendly Apache 2.0 licence.
The MIT License
Copyright (c) 2007 Mockito contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
 IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
Copyright 2016 the original author or authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Copyright (C) 2009-2015 The Project Lombok Authors.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
 IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
Copyright (C) 2014 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Copyright 2015 lsjwzh
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.


The Tcl interfaces to Berkeley DB generally return TCL_OK on success and throw a Tcl error on failure, using the appropriate Tcl interfaces to provide the user with an informative error message. There are some "expected" failures, however, for which no Tcl error will be thrown and for which Tcl commands will return TCL_OK. These failures include times when a searched-for key is not found, a requested key/data pair was previously deleted, or a key/data pair cannot be written because the key already exists.
These failures can be detected by searching the Berkeley DB error message that is returned. For example, use the following to detect that an attempt to put a record into the database failed because the key already existed:
% berkdb open -create -btree a.db db0 % db0 put dog cat 0 % set ret [db0 put -nooverwrite dog newcat] DB_KEYEXIST: Key/data pair already exists % if { [string first DB_KEYEXIST $ret] != -1 } { puts "This was an error; the key existed" } This was an error; the key existed % db0 close 0 % exit
To simplify parsing, it is recommended that the initial Berkeley DB error name be checked; for example, DB_MULTIPLE in the previous example. To ensure that Tcl scripts are not broken by upgrading to new releases of Berkeley DB, these values will not change in future releases of Berkeley DB. There are currently only three such "expected" error returns:
DB_NOTFOUND: No matching key/data pair found DB_KEYEMPTY: Nonexistent key/data pair DB_KEYEXIST: Key/data pair already exists
Finally, sometimes Berkeley DB will output additional error information when a Berkeley DB error occurs. By default, all Berkeley DB error messages will be prefixed with the created command in whose context the error occurred (for example, "env0", "db2", and so on). There are several ways to capture and access this information.
First, if Berkeley DB invokes the error callback function, the additional information will be placed in the error result returned from the command and in the errorInfo backtrace variable in Tcl.
Also, the two calls to open an environment and open a database take an option, -errfile filename, which sets an output file to which these additional error messages should be written.
Additionally, the two calls to open an environment and open a database take an option, -errpfx string, which sets the error prefix to the given string. This option may be useful in circumstances where a more descriptive prefix is desired or where a constant prefix indicating an error is desired.


Leave Task without saving changes?
{{result.emailID }} will be deleted. Do you want to proceed?
An active email address cannot be deleted. Another email address must be made active before the current selection can be deleted.
Leave Task without saving changes?
Another email address with the {{type.type}} email type already
exists.
You will not be able to submit this task untill
you change one of the duplicate email types to a unique type.
This email address will replace the previously designated active
email address.
This email address will be used for any
subscriber alerts and notifications of login problems.


Download the .CSV file
Partner successfully added!
A confirmation link with the portal’s access has been sent to the email provided.
Unable to add new Partner!
Please fill up all the price fields.
Email address already exist!
Please try a different email address.
New Shipping Address
Label
*This field is required
Address
*This field is required
Set as Default shipping address
Contact Person
First Name
*This field is required
Last Name
*This field is required
Mobile Number
*This field is required
Invalid type format of company logo
Invalid type format of profile photo
loading...


Upload a new Salesforce exported CSV file containing all the current opportunities.
New ReportCreate a new mapping of interesting technologies and Sales Specialist alignment.
New MappingProcess an uploaded Salesforce report (Step 1) with a created mapping file (Step 2) for your custom data.
Process


Ireland skipper Duffy not expecting to deliver inspirational speech ahead of Denmark clash
It was yesterday morning that McCarthy took him aside and handed him the captaincy for the first time
by Michael ScullyShane Duffy doesn't expect to turn into Superman on the pitch tonight as Ireland's latest skipper - or that he'll have to deliver an inspirational dressing-room speech beforehand.
It was yesterday morning, on his way to Abbotstown, that Mick McCarthy took him aside and handed him the captaincy for the first time for the crucial clash with Denmark.
"It hasn’t really sunk in yet," said Duffy. "It’s a huge honour and something to be excited about.
"I can’t let it really affect me - just come on, be the same and just take it in my stride, really.
"If I didn’t have the armband on, I’d class myself as a leader anyway in the changing room.
“It’s football, it’s part of it. I don’t think he would have given me it if I wasn’t ready for it.
“He knows me and hopefully I can take it all in my stride. I’m excited, but probably my family are more excited than me.
“It’s another game for me and if I didn’t have the armband I’d still be the same sort of leader - I’d throw my body on the line and hopefully try to get a goal for the lads, if we need it.
"But I don’t think I can change much anyway - don’t expect me to run through 10 players!"
Duffy finished the World Cup qualifying play-off against tonight's opponents as captain two years ago but this is the first time he'll wear the armband from the start.
He previously skippered the Ireland under-21s, and, at club level, he led out Blackurn Rovers and has led out Brighton.
As for having to say something special before kick-off, Duffy believes that won't be necessary given what's at stake.
“I don’t think so, no," he said. "If you look at the team, there is a lot of experience there now.
“They don’t need me telling them that this is a big game. I think everyone knows.
“It’s just maybe little details, making sure everyone is switched on, stuff like that, and making sure we're ready and we know what we're in for.
“We stick together out there, no matter if someone is having a bad game or if someone is making a mistake - you just pick them up off the floor.
“That’s what I do when I don’t have the armband".
If you haven't already, be sure to like our Irish Mirror Sport and Irish Mirror GAA pages on Facebook and follow us on Twitter.
How to follow the Irish Mirror on social media
You can like our main Facebook page here.
Our Irish Mirror Sports page - which brings you all your Irish and UK sports news - can be found here.
You can also check out our Irish Mirror GAA sports page.
The Irish Mirror Twitter account is @IrishMirror while our sports account is @MirrorSportIE.
Our Instagram account can be found here.


| CHAIRMAN'S MESSAGE |
| ORGANIZATIONAL CHART |
| REQUISITION FOR VACANCY |
| SYLLABUS |
| TENDER / QUOTATION |
| CERTIFICATE / DECLARATION |
| RIGHT TO INFORMATION |
| PUBLIC GRIEVANCES |
| MOCK TEST (CBE) |
| CBE WALK THROUGH VIDEO (ENGLISH) |
| CBE WALK THROUGH VIDEO (HINDI) |
| Walk Through Video on Social Distancing Protocol (ENGLISH) |
| Walk Through Video on Social Distancing Protocol (HINDI) |
| CHSLE (10+2) 2018 and CGLE 2018 (Type Test/DEST) English |
| CHSLE (10+2) 2018 and CGLE 2018 (Type Test/DEST) Hindi |


This search will return all default result types in English
This search is configured to only return city results in French


The Chase's Bradley Walsh's bizarre Canada error has every viewer baffled
The former Coronation Street star was welcoming four contestants onto the show, including Jackie
by James Rodger, https://www.facebook.com/jamesrodgerjournalistViewers of The Chase were left scratching their heads on Friday night - after Bradley Walsh made a frankly bizarre error.
The host of the ITV1 daytime favourite was presenting the quiz show on Friday, November 1.
The episode - the final instalment of the five-day working week - left viewers baffled, though.
Twitter and Facebook were awash with comments after Bradley made an odd - and out of character - gaffe.
The former Coronation Street star was welcoming four contestants onto the show, including Jackie.
The 67-year-old, from the Isle of Wight, was on the show in a bid to land a life-changing sum of money.
But it wasn't her going head to head with the Chaser that anybody was talking about.
No, in fact, Bradley left the restaurateur - and viewers - stunned after asking what she would spend the prize money on if she won a huge fund.
Jackie said she would like to see her sister in Canada.
Bradley replied: "We'll get you to Canadia".
"I’m sorry Bradley but we can’t accept Canadia. The correct answer is Canada," one viewer joked.
Another asked Bradley whether he was "OK", and another simply asked: "Really Bradley?"
"Lmao", another wrote.


| Description | Status | Error Message |
|---|---|---|
| Check latest abapGit build | OK | |
| Run abapGit unit tests | OK |
| Repo name | Clone url | Package | Transport Layer | Create package | Skip repo | Clone | Pull | Syntax check | Object check | Create TR | Purge | Delete TR | Leftovers | Status | Error Message |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ACID | https://github.com/abapGit-tests/ACID.git | $___ACID | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| ACID | https://github.com/abapGit-tests/ACID.git | Z___ACID | ZEXP | OK | OK | OK | OK | OK | OK | OK | NOT_OK | NOT_OK | Found 0 of 1 in DELETE transport NPLK900928 (first missing: ACID-ZAG_UNIT_TEST) | ||
| ACID_referenced | https://github.com/abapGit-tests/ACID_referenced.git | $___ACID_REFERENCED | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| ACID_referenced | https://github.com/abapGit-tests/ACID_referenced.git | Z___ACID_REFERENCED | ZEXP | OK | OK | OK | OK | OK | OK | OK | NOT_OK | NOT_OK | Found 0 of 3 in DELETE transport NPLK900932 (first missing: ACID-ZAG_UNIT_TEST) | ||
| ASFC | https://github.com/abapGit-tests/ASFC.git | $___ASFC | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| ASFC | https://github.com/abapGit-tests/ASFC.git | Z___ASFC | ZEXP | OK | OK | OK | OK | NOT_OK | OK | NOT_OK | Remote file diffs to local: zabapgit_test.asfc.xml | ||||
| AUTH | https://github.com/abapGit-tests/AUTH.git | $___AUTH | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| AUTH | https://github.com/abapGit-tests/AUTH.git | Z___AUTH | ZEXP | OK | OK | OK | OK | OK | OK | OK | NOT_OK | NOT_OK | Found 0 of 1 in DELETE transport NPLK900940 (first missing: AUTH-ZAG_UNIT_T) | ||
| AVAS | https://github.com/abapGit-tests/AVAS.git | $___AVAS | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| AVAS | https://github.com/abapGit-tests/AVAS.git | Z___AVAS | ZEXP | OK | OK | OK | OK | OK | NOT_OK | OK | NOT_OK | Found 1 of 2 in CREATE transport NPLK900942 (first missing: AVAS-42B8957792081EE8A18688342B0BD6A4) | |||
| BDEF | https://github.com/abapGit-tests/BDEF.git | $___BDEF | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| BDEF | https://github.com/abapGit-tests/BDEF.git | Z___BDEF | ZEXP | OK | OK | OK | OK | OK | OK | OK | OK | OK | OK | ||
| CHAR | https://github.com/abapGit-tests/CHAR.git | $___CHAR | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| CHAR | https://github.com/abapGit-tests/CHAR.git | Z___CHAR | ZEXP | OK | OK | OK | OK | OK | OK | OK | NOT_OK | NOT_OK | Found 0 of 1 in DELETE transport NPLK900952 (first missing: CHAR-ZABAPGIT_UNIT_TEST) | ||
| CLAS | https://github.com/abapGit-tests/CLAS.git | $___CLAS | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| CLAS | https://github.com/abapGit-tests/CLAS.git | Z___CLAS | ZEXP | OK | OK | OK | OK | OK | OK | OK | NOT_OK | NOT_OK | Found 0 of 2 in DELETE transport NPLK900956 (first missing: CLAS-ZCL_AG_UNIT_TEST) | ||
| CLAS_full | https://github.com/abapGit-tests/CLAS_full.git | $___CLAS_FULL | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| CLAS_full | https://github.com/abapGit-tests/CLAS_full.git | Z___CLAS_FULL | ZEXP | OK | OK | OK | OK | OK | OK | OK | NOT_OK | NOT_OK | Found 0 of 6 in DELETE transport NPLK900960 (first missing: CLAS-ZCL_ABAPGIT_TESTING_TEST) | ||
| CLAS_implementing_INTF | https://github.com/abapGit-tests/CLAS_implementing_INTF.git | $___CLAS_IMPLEMENTING_INTF | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| CLAS_implementing_INTF | https://github.com/abapGit-tests/CLAS_implementing_INTF.git | Z___CLAS_IMPLEMENTING_INTF | ZEXP | OK | OK | OK | OK | OK | OK | OK | NOT_OK | NOT_OK | Found 0 of 4 in DELETE transport NPLK900964 (first missing: CLAS-ZCL_AGT_FOOBAR) | ||
| CLAS_persistent | https://github.com/abapGit-tests/CLAS_persistent.git | $___CLAS_PERSISTENT | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| CLAS_persistent | https://github.com/abapGit-tests/CLAS_persistent.git | Z___CLAS_PERSISTENT | ZEXP | OK | OK | OK | OK | OK | OK | OK | NOT_OK | NOT_OK | Found 1 of 7 in DELETE transport NPLK900968 (first missing: CLAS-ZCA_ABAPGIT_TESTING_PERSISTENC) | ||
| CLAS_textpool | https://github.com/abapGit-tests/CLAS_textpool.git | $___CLAS_TEXTPOOL | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| CLAS_textpool | https://github.com/abapGit-tests/CLAS_textpool.git | Z___CLAS_TEXTPOOL | ZEXP | OK | OK | OK | OK | OK | OK | OK | NOT_OK | NOT_OK | Found 0 of 2 in DELETE transport NPLK900972 (first missing: CLAS-ZCL_ABAPGIT_TEST_TEXTPOOL) | ||
| CLAS_wf | https://github.com/abapGit-tests/CLAS_wf.git | $___CLAS_WF | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| CLAS_wf | https://github.com/abapGit-tests/CLAS_wf.git | Z___CLAS_WF | ZEXP | OK | OK | OK | OK | OK | OK | OK | NOT_OK | NOT_OK | Found 0 of 2 in DELETE transport NPLK900976 (first missing: CLAS-ZCL_ABAPGIT_TESTING_WF) | ||
| CLAS_with_ENHO | https://github.com/abapGit-tests/CLAS_with_ENHO.git | $___CLAS_WITH_ENHO | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| CLAS_with_ENHO | https://github.com/abapGit-tests/CLAS_with_ENHO.git | Z___CLAS_WITH_ENHO | ZEXP | OK | OK | OK | OK | OK | OK | OK | NOT_OK | NOT_OK | Found 0 of 5 in DELETE transport NPLK900980 (first missing: CLAS-ZCL_TEST_CLAS_WITH_ENHO) | ||
| CLAS_with_SOTR | https://github.com/abapGit-tests/CLAS_with_SOTR.git | $___CLAS_WITH_SOTR | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| CLAS_with_SOTR | https://github.com/abapGit-tests/CLAS_with_SOTR.git | Z___CLAS_WITH_SOTR | ZEXP | OK | OK | OK | OK | OK | OK | OK | NOT_OK | NOT_OK | Found 0 of 2 in DELETE transport NPLK900984 (first missing: CLAS-ZCX_ABAPGIT_TEST_SOTR) | ||
| CUS0 | https://github.com/abapGit-tests/CUS0.git | $___CUS0 | X | skip because UI is called | |||||||||||
| CUS0 | https://github.com/abapGit-tests/CUS0.git | Z___CUS0 | ZEXP | X | skip because UI is called | ||||||||||
| DCLS | https://github.com/abapGit-tests/DCLS.git | $___DCLS | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| DCLS | https://github.com/abapGit-tests/DCLS.git | Z___DCLS | ZEXP | OK | OK | OK | OK | OK | NOT_OK | OK | NOT_OK | Found 4 of 6 in CREATE transport NPLK900986 (first missing: DDLS-Z_TEST_DDLS) | |||
| DDLS | https://github.com/abapGit-tests/DDLS.git | $___DDLS | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| DDLS | https://github.com/abapGit-tests/DDLS.git | Z___DDLS | ZEXP | OK | OK | OK | OK | OK | NOT_OK | OK | NOT_OK | Found 0 of 2 in CREATE transport NPLK900990 (first missing: DDLS-ZAG_UNIT_TEST) | |||
| DDLX | https://github.com/abapGit-tests/DDLX.git | $___DDLX | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| DDLX | https://github.com/abapGit-tests/DDLX.git | Z___DDLX | ZEXP | OK | OK | OK | OK | OK | NOT_OK | OK | NOT_OK | Found 2 of 4 in CREATE transport NPLK900994 (first missing: DDLS-ZDDLS) | |||
| DDLX_old | https://github.com/abapGit-tests/DDLX_old.git | $___DDLX_OLD | X | Skip because it's an old testcase. abapGit indicates diff because migration to new format | |||||||||||
| DDLX_old | https://github.com/abapGit-tests/DDLX_old.git | Z___DDLX_OLD | ZEXP | X | Skip because it's an old testcase. abapGit indicates diff because migration to new format | ||||||||||
| DEVC_component | https://github.com/abapGit-tests/DEVC_component.git | $___DEVC_COMPONENT | X | https://github.com/larshp/abapGit/issues/1880 | |||||||||||
| DEVC_component | https://github.com/abapGit-tests/DEVC_component.git | Z___DEVC_COMPONENT | ZEXP | X | https://github.com/larshp/abapGit/issues/1880 | ||||||||||
| DOMA | https://github.com/abapGit-tests/DOMA.git | $___DOMA | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| DOMA | https://github.com/abapGit-tests/DOMA.git | Z___DOMA | ZEXP | OK | OK | OK | OK | OK | OK | OK | NOT_OK | NOT_OK | Found 0 of 1 in DELETE transport NPLK901000 (first missing: DOMA-ZABAPGIT_UNIT_TEST) | ||
| DOMA_fixed_values | https://github.com/abapGit-tests/DOMA_fixed_values.git | $___DOMA_FIXED_VALUES | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| DOMA_fixed_values | https://github.com/abapGit-tests/DOMA_fixed_values.git | Z___DOMA_FIXED_VALUES | ZEXP | OK | OK | OK | OK | OK | OK | OK | NOT_OK | NOT_OK | Found 0 of 1 in DELETE transport NPLK901004 (first missing: DOMA-ZABAPGIT_UNIT_TEST) | ||
| DOMA_fixed_values_single_translated | https://github.com/abapGit-tests/DOMA_fixed_values_single_translated.git | $___DOMA_FIXED_VALUES_SINGLE_T | X | https://github.com/larshp/abapGit/issues/2385 | |||||||||||
| DOMA_fixed_values_single_translated | https://github.com/abapGit-tests/DOMA_fixed_values_single_translated.git | Z___DOMA_FIXED_VALUES_SINGLE_T | ZEXP | X | https://github.com/larshp/abapGit/issues/2385 | ||||||||||
| DTEL | https://github.com/abapGit-tests/DTEL.git | $___DTEL | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| DTEL | https://github.com/abapGit-tests/DTEL.git | Z___DTEL | ZEXP | OK | OK | OK | OK | OK | OK | OK | NOT_OK | NOT_OK | Found 0 of 1 in DELETE transport NPLK901008 (first missing: DTEL-ZAGT_TEST_DTEL) | ||
| DTEL_with_DOMA | https://github.com/abapGit-tests/DTEL_with_DOMA.git | $___DTEL_WITH_DOMA | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| DTEL_with_DOMA | https://github.com/abapGit-tests/DTEL_with_DOMA.git | Z___DTEL_WITH_DOMA | ZEXP | OK | OK | OK | OK | OK | OK | OK | NOT_OK | NOT_OK | Found 0 of 2 in DELETE transport NPLK901012 (first missing: DOMA-ZAGT_TESTING_DOMA) | ||
| DTEL_with_PARA | https://github.com/abapGit-tests/DTEL_with_PARA.git | $___DTEL_WITH_PARA | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| DTEL_with_PARA | https://github.com/abapGit-tests/DTEL_with_PARA.git | Z___DTEL_WITH_PARA | ZEXP | OK | OK | OK | OK | OK | OK | OK | NOT_OK | NOT_OK | Found 0 of 2 in DELETE transport NPLK901016 (first missing: DTEL-ZABAPGIT_UNIT_TEST) | ||
| ECATT | https://github.com/abapGit-tests/ECATT.git | $___ECATT | OK | OK | OK | OK | NOT_OK | OK | NOT_OK | Local file diffs to remote: z_test_config.ectc.xml | |||||
| ECATT | https://github.com/abapGit-tests/ECATT.git | Z___ECATT | ZEXP | OK | OK | OK | OK | NOT_OK | OK | NOT_OK | Local file diffs to remote: z_test_config.ectc.xml | ||||
| ENHC | https://github.com/abapGit-tests/ENHC.git | $___ENHC | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| ENHC | https://github.com/abapGit-tests/ENHC.git | Z___ENHC | ZEXP | OK | OK | OK | OK | OK | NOT_OK | OK | NOT_OK | CREATE transport NPLK901022 contains too many objects (4/3) | |||
| ENHO | https://github.com/abapGit-tests/ENHO.git | $___ENHO | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| ENHO | https://github.com/abapGit-tests/ENHO.git | Z___ENHO | ZEXP | OK | OK | OK | OK | OK | OK | OK | NOT_OK | NOT_OK | Found 0 of 2 in DELETE transport NPLK901028 (first missing: ENHO-Z_ENH_EPM_SO_UTIL) | ||
| ENHO-BADI_IMPL | https://github.com/abapGit-tests/ENHO-BADI_IMPL.git | $___ENHO-BADI_IMPL | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| ENHO-BADI_IMPL | https://github.com/abapGit-tests/ENHO-BADI_IMPL.git | Z___ENHO-BADI_IMPL | ZEXP | OK | OK | OK | OK | OK | OK | OK | NOT_OK | NOT_OK | Found 0 of 6 in DELETE transport NPLK901032 (first missing: CLAS-ZCL_MH_BADI1) | ||
| ENHO-HOOK_IMPL | https://github.com/abapGit-tests/ENHO-HOOK_IMPL.git | $___ENHO-HOOK_IMPL | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| ENHO-HOOK_IMPL | https://github.com/abapGit-tests/ENHO-HOOK_IMPL.git | Z___ENHO-HOOK_IMPL | ZEXP | OK | OK | OK | OK | OK | OK | OK | OK | OK | OK | ||
| ENQU | https://github.com/abapGit-tests/ENQU.git | $___ENQU | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| ENQU | https://github.com/abapGit-tests/ENQU.git | Z___ENQU | ZEXP | OK | OK | OK | OK | OK | OK | OK | NOT_OK | NOT_OK | Found 0 of 1 in DELETE transport NPLK901040 (first missing: ENQU-EZABAPGIT_UNIT_T) | ||
| ENQU_and_TABL | https://github.com/abapGit-tests/ENQU_and_TABL.git | $___ENQU_AND_TABL | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| ENQU_and_TABL | https://github.com/abapGit-tests/ENQU_and_TABL.git | Z___ENQU_AND_TABL | ZEXP | OK | OK | OK | OK | OK | OK | OK | NOT_OK | NOT_OK | Found 1 of 2 in DELETE transport NPLK901044 (first missing: ENQU-EZABAPGIT_UNIT_T) | ||
| FDT0 | https://github.com/abapGit-tests/FDT0.git | $___FDT0 | X | https://github.com/larshp/abapGit/pull/2688 | |||||||||||
| FDT0 | https://github.com/abapGit-tests/FDT0.git | Z___FDT0 | ZEXP | X | https://github.com/larshp/abapGit/pull/2688 | ||||||||||
| FORM | https://github.com/abapGit-tests/FORM.git | $___FORM | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| FORM | https://github.com/abapGit-tests/FORM.git | Z___FORM | ZEXP | OK | OK | OK | OK | OK | OK | OK | NOT_OK | NOT_OK | Found 0 of 2 in DELETE transport NPLK901048 (first missing: FORM-ZTEST_SAPSCRIPT) | ||
| FUGR | https://github.com/abapGit-tests/FUGR.git | $___FUGR | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| FUGR | https://github.com/abapGit-tests/FUGR.git | Z___FUGR | ZEXP | OK | OK | OK | OK | OK | OK | OK | NOT_OK | NOT_OK | Found 0 of 6 in DELETE transport NPLK901052 (first missing: FUGR-ZABAPGIT_UNIT_TEST) | ||
| FUGR_maintenance_view | https://github.com/abapGit-tests/FUGR_maintenance_view.git | $___FUGR_MAINTENANCE_VIEW | OK | OK | OK | OK | NOT_OK | OK | NOT_OK | Local file diffs to remote: zabapgit_unit_te.fugr.xml | |||||
| FUGR_maintenance_view | https://github.com/abapGit-tests/FUGR_maintenance_view.git | Z___FUGR_MAINTENANCE_VIEW | ZEXP | OK | OK | OK | OK | NOT_OK | OK | NOT_OK | Local file diffs to remote: zabapgit_unit_te.fugr.xml | ||||
| FUGR_maintenance_view_variant | https://github.com/abapGit-tests/FUGR_maintenance_view_variant.git | $___FUGR_MAINTENANCE_VIEW_VARI | OK | OK | OK | OK | NOT_OK | OK | NOT_OK | Local file diffs to remote: zabapgittest_tmg.fugr.lzabapgittest_tmgf00.xml | |||||
| FUGR_maintenance_view_variant | https://github.com/abapGit-tests/FUGR_maintenance_view_variant.git | Z___FUGR_MAINTENANCE_VIEW_VARI | ZEXP | OK | OK | OK | OK | NOT_OK | OK | NOT_OK | Local file diffs to remote: zabapgittest_tmg.fugr.lzabapgittest_tmgf00.xml | ||||
| FUGR_testclass | https://github.com/abapGit-tests/FUGR_testclass.git | $___FUGR_TESTCLASS | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| FUGR_testclass | https://github.com/abapGit-tests/FUGR_testclass.git | Z___FUGR_TESTCLASS | ZEXP | OK | OK | OK | OK | OK | OK | OK | NOT_OK | NOT_OK | Found 0 of 8 in DELETE transport NPLK901064 (first missing: FUGR-ZABAPGIT_TEST_EXTENSION_FU) | ||
| FUGR_with_parameters | https://github.com/abapGit-tests/FUGR_with_parameters.git | $___FUGR_WITH_PARAMETERS | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| FUGR_with_parameters | https://github.com/abapGit-tests/FUGR_with_parameters.git | Z___FUGR_WITH_PARAMETERS | ZEXP | OK | OK | OK | OK | OK | OK | OK | NOT_OK | NOT_OK | Found 0 of 6 in DELETE transport NPLK901068 (first missing: FUGR-ZAGTEST_FUNCTION_GROUP) | ||
| IARP_IASP_IATU | https://github.com/abapGit-tests/IARP_IASP_IATU.git | $___IARP_IASP_IATU | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| IARP_IASP_IATU | https://github.com/abapGit-tests/IARP_IASP_IATU.git | Z___IARP_IASP_IATU | ZEXP | OK | OK | OK | OK | OK | OK | OK | NOT_OK | NOT_OK | Found 0 of 7 in DELETE transport NPLK901072 (first missing: IARP-ZAG_TEST_SERVI99) | ||
| IDOC | https://github.com/abapGit-tests/IDOC.git | $___IDOC | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| IDOC | https://github.com/abapGit-tests/IDOC.git | Z___IDOC | ZEXP | OK | OK | OK | OK | OK | NOT_OK | OK | NOT_OK | CREATE transport NPLK901074 contains too many objects (4/3) | |||
| IEXT | https://github.com/abapGit-tests/IEXT.git | $___IEXT | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| IEXT | https://github.com/abapGit-tests/IEXT.git | Z___IEXT | ZEXP | OK | OK | OK | OK | OK | NOT_OK | OK | NOT_OK | CREATE transport NPLK901078 contains too many objects (6/5) | |||
| INTF | https://github.com/abapGit-tests/INTF.git | $___INTF | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| INTF | https://github.com/abapGit-tests/INTF.git | Z___INTF | ZEXP | OK | OK | OK | OK | OK | OK | OK | NOT_OK | NOT_OK | Found 0 of 2 in DELETE transport NPLK901084 (first missing: INTF-ZIF_ABAPGIT_UNIT_TEST) | ||
| INTF_implementing_INTF | https://github.com/abapGit-tests/INTF_implementing_INTF.git | $___INTF_IMPLEMENTING_INTF | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| INTF_implementing_INTF | https://github.com/abapGit-tests/INTF_implementing_INTF.git | Z___INTF_IMPLEMENTING_INTF | ZEXP | OK | OK | OK | OK | OK | OK | OK | NOT_OK | NOT_OK | Found 0 of 4 in DELETE transport NPLK901088 (first missing: INTF-ZIF_AGT_TEST1) | ||
| INTF_using_DTEL | https://github.com/abapGit-tests/INTF_using_DTEL.git | $___INTF_USING_DTEL | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| INTF_using_DTEL | https://github.com/abapGit-tests/INTF_using_DTEL.git | Z___INTF_USING_DTEL | ZEXP | OK | OK | OK | OK | OK | OK | OK | NOT_OK | NOT_OK | Found 0 of 3 in DELETE transport NPLK901092 (first missing: DTEL-ZAGT_TEST_DTEL) | ||
| IWPR | https://github.com/abapGit-tests/IWPR.git | $___IWPR | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| IWPR | https://github.com/abapGit-tests/IWPR.git | Z___IWPR | ZEXP | OK | OK | OK | OK | OK | OK | OK | NOT_OK | NOT_OK | Found 0 of 5 in DELETE transport NPLK901096 (first missing: CLAS-ZCL_Z_ABAPGIT_TEST_MPC) | ||
| MSAG | https://github.com/abapGit-tests/MSAG.git | $___MSAG | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| MSAG | https://github.com/abapGit-tests/MSAG.git | Z___MSAG | ZEXP | OK | OK | OK | OK | OK | OK | OK | NOT_OK | NOT_OK | Found 0 of 1 in DELETE transport NPLK901100 (first missing: MSAG-ZAG_UNIT_TEST) | ||
| MSAG_simple | https://github.com/abapGit-tests/MSAG_simple.git | $___MSAG_SIMPLE | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| MSAG_simple | https://github.com/abapGit-tests/MSAG_simple.git | Z___MSAG_SIMPLE | ZEXP | OK | OK | OK | OK | OK | OK | OK | NOT_OK | NOT_OK | Found 0 of 1 in DELETE transport NPLK901104 (first missing: MSAG-ZAG_UNIT_TEST) | ||
| NROB | https://github.com/abapGit-tests/NROB.git | $___NROB | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| NROB | https://github.com/abapGit-tests/NROB.git | Z___NROB | ZEXP | OK | OK | OK | OK | OK | NOT_OK | OK | NOT_OK | Found 0 of 1 in CREATE transport NPLK901106 (first missing: NROB-ZAG_UNIT_T) | |||
| PARA | https://github.com/abapGit-tests/PARA.git | $___PARA | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| PARA | https://github.com/abapGit-tests/PARA.git | Z___PARA | ZEXP | OK | OK | OK | OK | OK | OK | OK | NOT_OK | NOT_OK | Found 0 of 1 in DELETE transport NPLK901112 (first missing: PARA-ZABAPGIT_UNIT_TEST) | ||
| PINF | https://github.com/abapGit-tests/PINF.git | $___PINF | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| PINF | https://github.com/abapGit-tests/PINF.git | Z___PINF | ZEXP | OK | OK | OK | OK | OK | OK | OK | NOT_OK | NOT_OK | Found 0 of 1 in DELETE transport NPLK901116 (first missing: PINF-ZABAPGIT_TEST_PINF) | ||
| PINF_exposing_CLAS | https://github.com/abapGit-tests/PINF_exposing_CLAS.git | $___PINF_EXPOSING_CLAS | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| PINF_exposing_CLAS | https://github.com/abapGit-tests/PINF_exposing_CLAS.git | Z___PINF_EXPOSING_CLAS | ZEXP | OK | OK | OK | OK | NOT_OK | OK | NOT_OK | Local file diffs to remote: zagit_test.pinf.xml | ||||
| PINF_exposing_INTF | https://github.com/abapGit-tests/PINF_exposing_INTF.git | $___PINF_EXPOSING_INTF | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| PINF_exposing_INTF | https://github.com/abapGit-tests/PINF_exposing_INTF.git | Z___PINF_EXPOSING_INTF | ZEXP | OK | OK | OK | OK | NOT_OK | OK | NOT_OK | Local file diffs to remote: zagit_test.pinf.xml | ||||
| PROG | https://github.com/abapGit-tests/PROG.git | $___PROG | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| PROG | https://github.com/abapGit-tests/PROG.git | Z___PROG | ZEXP | OK | OK | OK | OK | OK | OK | OK | NOT_OK | NOT_OK | Found 0 of 2 in DELETE transport NPLK901128 (first missing: PROG-ZAG_UNIT_TEST) | ||
| PROG_EDTX | https://github.com/abapGit-tests/PROG_EDTX.git | $___PROG_EDTX | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| PROG_EDTX | https://github.com/abapGit-tests/PROG_EDTX.git | Z___PROG_EDTX | ZEXP | OK | OK | OK | OK | OK | OK | OK | NOT_OK | NOT_OK | Found 0 of 2 in DELETE transport NPLK901132 (first missing: PROG-ZABAPGIT_TEST_EDTX) | ||
| PROG_ci_variant | https://github.com/abapGit-tests/PROG_ci_variant.git | $___PROG_CI_VARIANT | X | activation error https://github.com/larshp/abapGit/issues/2338 | |||||||||||
| PROG_ci_variant | https://github.com/abapGit-tests/PROG_ci_variant.git | Z___PROG_CI_VARIANT | ZEXP | X | activation error https://github.com/larshp/abapGit/issues/2338 | ||||||||||
| PROG_dynpro_foreign_key | https://github.com/abapGit-tests/PROG_dynpro_foreign_key.git | $___PROG_DYNPRO_FOREIGN_KEY | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| PROG_dynpro_foreign_key | https://github.com/abapGit-tests/PROG_dynpro_foreign_key.git | Z___PROG_DYNPRO_FOREIGN_KEY | ZEXP | OK | OK | OK | OK | OK | OK | OK | NOT_OK | NOT_OK | Found 2 of 7 in DELETE transport NPLK901136 (first missing: DTEL-ZTEST_FIELD_ID) | ||
| PROG_dynpro_modi | https://github.com/abapGit-tests/PROG_dynpro_modi.git | $___PROG_DYNPRO_MODI | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| PROG_dynpro_modi | https://github.com/abapGit-tests/PROG_dynpro_modi.git | Z___PROG_DYNPRO_MODI | ZEXP | OK | OK | OK | OK | OK | OK | OK | NOT_OK | NOT_OK | Found 1 of 4 in DELETE transport NPLK901140 (first missing: DTEL-ZTEST_FLAG) | ||
| PROG_dynpro_resize | https://github.com/abapGit-tests/PROG_dynpro_resize.git | $___PROG_DYNPRO_RESIZE | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| PROG_dynpro_resize | https://github.com/abapGit-tests/PROG_dynpro_resize.git | Z___PROG_DYNPRO_RESIZE | ZEXP | OK | OK | OK | OK | OK | OK | OK | NOT_OK | NOT_OK | Found 0 of 2 in DELETE transport NPLK901144 (first missing: PROG-ZABAPGIT_UNIT_TESTING) | ||
| SCP1 | https://github.com/abapGit-tests/SCP1.git | $___SCP1 | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| SCP1 | https://github.com/abapGit-tests/SCP1.git | Z___SCP1 | ZEXP | OK | OK | OK | OK | OK | NOT_OK | OK | NOT_OK | Found 0 of 1 in CREATE transport NPLK901146 (first missing: SCP1-ZSDF) | |||
| SFBF | https://github.com/abapGit-tests/SFBF.git | $___SFBF | X | https://github.com/larshp/abapGit/issues/2469 | |||||||||||
| SFBF | https://github.com/abapGit-tests/SFBF.git | Z___SFBF | ZEXP | X | https://github.com/larshp/abapGit/issues/2469 | ||||||||||
| SFBS | https://github.com/abapGit-tests/SFBS.git | $___SFBS | X | https://github.com/larshp/abapGit/issues/2469 | |||||||||||
| SFBS | https://github.com/abapGit-tests/SFBS.git | Z___SFBS | ZEXP | X | https://github.com/larshp/abapGit/issues/2469 | ||||||||||
| SFPF | https://github.com/abapGit-tests/SFPF.git | $___SFPF | X | Adobe Document Service (ADS) connection neccessary | |||||||||||
| SFPF | https://github.com/abapGit-tests/SFPF.git | Z___SFPF | ZEXP | X | Adobe Document Service (ADS) connection neccessary | ||||||||||
| SFSW | https://github.com/abapGit-tests/SFSW.git | $___SFSW | X | https://github.com/larshp/abapGit/issues/2083 | |||||||||||
| SFSW | https://github.com/abapGit-tests/SFSW.git | Z___SFSW | ZEXP | X | https://github.com/larshp/abapGit/issues/2083 | ||||||||||
| SHI3 | https://github.com/abapGit-tests/SHI3.git | $___SHI3 | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| SHI3 | https://github.com/abapGit-tests/SHI3.git | Z___SHI3 | ZEXP | OK | OK | OK | OK | NOT_OK | OK | NOT_OK | Remote file diffs to local: zabapgit_shi3_test.shi3.xml | ||||
| SHLP | https://github.com/abapGit-tests/SHLP.git | $___SHLP | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| SHLP | https://github.com/abapGit-tests/SHLP.git | Z___SHLP | ZEXP | OK | OK | OK | OK | OK | OK | OK | NOT_OK | NOT_OK | Found 0 of 1 in DELETE transport NPLK901156 (first missing: SHLP-ZABAPGIT_UNIT_TEST) | ||
| SHLP_with_exit | https://github.com/abapGit-tests/SHLP_with_exit.git | $___SHLP_WITH_EXIT | X | circular dependency https://github.com/larshp/abapGit/issues/2338 | |||||||||||
| SHLP_with_exit | https://github.com/abapGit-tests/SHLP_with_exit.git | Z___SHLP_WITH_EXIT | ZEXP | X | circular dependency https://github.com/larshp/abapGit/issues/2338 | ||||||||||
| SHMA | https://github.com/abapGit-tests/SHMA.git | $___SHMA | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| SHMA | https://github.com/abapGit-tests/SHMA.git | Z___SHMA | ZEXP | OK | OK | OK | OK | OK | OK | OK | NOT_OK | NOT_OK | Found 0 of 5 in DELETE transport NPLK901160 (first missing: CLAS-ZABAPGIT_SHMA_TEST) | ||
| SICF | https://github.com/abapGit-tests/SICF.git | $___SICF | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| SICF | https://github.com/abapGit-tests/SICF.git | Z___SICF | ZEXP | OK | OK | OK | OK | OK | NOT_OK | OK | NOT_OK | Found 0 of 1 in CREATE transport NPLK901162 (first missing: SICF-ZAG_UNIT_TEST d1f122ae89c230fb9189b0284) | |||
| SMIM | https://github.com/abapGit-tests/SMIM.git | $___SMIM | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| SMIM | https://github.com/abapGit-tests/SMIM.git | Z___SMIM | ZEXP | OK | OK | OK | OK | OK | OK | OK | NOT_OK | NOT_OK | Found 0 of 2 in DELETE transport NPLK901168 (first missing: SMIM-02B8283EC9511EE5B5AAF11A0C28106A) | ||
| SOTS | https://github.com/abapGit-tests/SOTS.git | $___SOTS | X | Cannot be installed in local $-package | |||||||||||
| SOTS | https://github.com/abapGit-tests/SOTS.git | Z___SOTS | ZEXP | NOT_OK | Failure in ZABAPGIT_CI_PROCESS_REPO. Subrc = 2 Screen output without connection to user. | ||||||||||
| SPLO | https://github.com/abapGit-tests/SPLO.git | $___SPLO | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| SPLO | https://github.com/abapGit-tests/SPLO.git | Z___SPLO | ZEXP | OK | OK | OK | OK | OK | NOT_OK | OK | NOT_OK | Found 0 of 1 in CREATE transport NPLK901172 (first missing: SPLO-ZAG_UNIT_TEST) | |||
| SPRX | https://github.com/abapGit-tests/SPRX.git | $___SPRX | X | https://github.com/larshp/abapGit/issues/87 | |||||||||||
| SPRX | https://github.com/abapGit-tests/SPRX.git | Z___SPRX | ZEXP | X | https://github.com/larshp/abapGit/issues/87 | ||||||||||
| SPRX_server_proxy | https://github.com/abapGit-tests/SPRX_server_proxy.git | $___SPRX_SERVER_PROXY | X | https://github.com/larshp/abapGit/issues/87 | |||||||||||
| SPRX_server_proxy | https://github.com/abapGit-tests/SPRX_server_proxy.git | Z___SPRX_SERVER_PROXY | ZEXP | X | https://github.com/larshp/abapGit/issues/87 | ||||||||||
| SQSC | https://github.com/abapGit-tests/SQSC.git | $___SQSC | X | Runs only on HANA | |||||||||||
| SQSC | https://github.com/abapGit-tests/SQSC.git | Z___SQSC | ZEXP | X | Runs only on HANA | ||||||||||
| SSFO | https://github.com/abapGit-tests/SSFO.git | $___SSFO | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| SSFO | https://github.com/abapGit-tests/SSFO.git | Z___SSFO | ZEXP | OK | OK | OK | OK | OK | OK | OK | NOT_OK | NOT_OK | Found 0 of 1 in DELETE transport NPLK901178 (first missing: SSFO-ZABAPGIT_UNIT_TEST) | ||
| SSFO_multiple_pages | https://github.com/abapGit-tests/SSFO_multiple_pages.git | $___SSFO_MULTIPLE_PAGES | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| SSFO_multiple_pages | https://github.com/abapGit-tests/SSFO_multiple_pages.git | Z___SSFO_MULTIPLE_PAGES | ZEXP | OK | OK | OK | OK | OK | OK | OK | NOT_OK | NOT_OK | Found 0 of 2 in DELETE transport NPLK901182 (first missing: SSFO-ZLV_ISSUE_2011) | ||
| SSST | https://github.com/abapGit-tests/SSST.git | $___SSST | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| SSST | https://github.com/abapGit-tests/SSST.git | Z___SSST | ZEXP | OK | OK | OK | OK | OK | OK | OK | NOT_OK | NOT_OK | Found 0 of 1 in DELETE transport NPLK901186 (first missing: SSST-Z_SSST_TEST) | ||
| SUCU | https://github.com/abapGit-tests/SUCU.git | $___SUCU | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| SUCU | https://github.com/abapGit-tests/SUCU.git | Z___SUCU | ZEXP | OK | OK | OK | OK | OK | OK | OK | NOT_OK | NOT_OK | Found 0 of 1 in DELETE transport NPLK901190 (first missing: SUCU-ZSUCU S_TABU_DIS) | ||
| SUSC_and_SUSO | https://github.com/abapGit-tests/SUSC_and_SUSO.git | $___SUSC_AND_SUSO | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| SUSC_and_SUSO | https://github.com/abapGit-tests/SUSC_and_SUSO.git | Z___SUSC_AND_SUSO | ZEXP | OK | OK | OK | OK | OK | OK | OK | NOT_OK | NOT_OK | Found 0 of 2 in DELETE transport NPLK901194 (first missing: SUSC-ZAGT) | ||
| SUSO | https://github.com/abapGit-tests/SUSO.git | $___SUSO | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| SUSO | https://github.com/abapGit-tests/SUSO.git | Z___SUSO | ZEXP | OK | OK | OK | OK | OK | OK | OK | NOT_OK | NOT_OK | Found 0 of 1 in DELETE transport NPLK901198 (first missing: SUSO-ZTEST_SUSO) | ||
| TABL | https://github.com/abapGit-tests/TABL.git | $___TABL | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| TABL | https://github.com/abapGit-tests/TABL.git | Z___TABL | ZEXP | OK | OK | OK | OK | OK | OK | OK | OK | OK | OK | ||
| TABL_structure | https://github.com/abapGit-tests/TABL_structure.git | $___TABL_STRUCTURE | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| TABL_structure | https://github.com/abapGit-tests/TABL_structure.git | Z___TABL_STRUCTURE | ZEXP | OK | OK | OK | OK | OK | OK | OK | OK | OK | OK | ||
| TABL_using_DTEL_using_DOMA | https://github.com/abapGit-tests/TABL_using_DTEL_using_DOMA.git | $___TABL_USING_DTEL_USING_DOMA | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| TABL_using_DTEL_using_DOMA | https://github.com/abapGit-tests/TABL_using_DTEL_using_DOMA.git | Z___TABL_USING_DTEL_USING_DOMA | ZEXP | OK | OK | OK | OK | OK | OK | OK | NOT_OK | NOT_OK | Found 1 of 3 in DELETE transport NPLK901210 (first missing: DOMA-ZAG_TEST_DOMA) | ||
| TABL_with_index | https://github.com/abapGit-tests/TABL_with_index.git | $___TABL_WITH_INDEX | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| TABL_with_index | https://github.com/abapGit-tests/TABL_with_index.git | Z___TABL_WITH_INDEX | ZEXP | OK | OK | OK | OK | OK | OK | OK | OK | OK | OK | ||
| TRAN | https://github.com/abapGit-tests/TRAN.git | $___TRAN | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| TRAN | https://github.com/abapGit-tests/TRAN.git | Z___TRAN | ZEXP | OK | OK | OK | OK | OK | OK | OK | NOT_OK | NOT_OK | Found 0 of 1 in DELETE transport NPLK901218 (first missing: TRAN-ZAG_UNIT_TEST) | ||
| TRAN_OO | https://github.com/abapGit-tests/TRAN_OO.git | $___TRAN_OO | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| TRAN_OO | https://github.com/abapGit-tests/TRAN_OO.git | Z___TRAN_OO | ZEXP | OK | OK | OK | OK | OK | OK | OK | NOT_OK | NOT_OK | Found 0 of 2 in DELETE transport NPLK901222 (first missing: TRAN-ZTEST_OO) | ||
| TTYP | https://github.com/abapGit-tests/TTYP.git | $___TTYP | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| TTYP | https://github.com/abapGit-tests/TTYP.git | Z___TTYP | ZEXP | OK | OK | OK | OK | OK | OK | OK | NOT_OK | NOT_OK | Found 0 of 1 in DELETE transport NPLK901226 (first missing: TTYP-ZAG_UNIT_TEST_TT) | ||
| TTYP_with_CLAS_reference | https://github.com/abapGit-tests/TTYP_with_CLAS_reference.git | $___TTYP_WITH_CLAS_REFERENCE | X | circular dependency https://github.com/larshp/abapGit/issues/2338 | |||||||||||
| TTYP_with_CLAS_reference | https://github.com/abapGit-tests/TTYP_with_CLAS_reference.git | Z___TTYP_WITH_CLAS_REFERENCE | ZEXP | X | circular dependency https://github.com/larshp/abapGit/issues/2338 | ||||||||||
| TYPE | https://github.com/abapGit-tests/TYPE.git | $___TYPE | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| TYPE | https://github.com/abapGit-tests/TYPE.git | Z___TYPE | ZEXP | OK | OK | OK | OK | OK | OK | OK | NOT_OK | NOT_OK | Found 0 of 2 in DELETE transport NPLK901230 (first missing: TYPE-ZUTAG) | ||
| UDMO | https://github.com/abapGit-tests/UDMO.git | $___UDMO | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| UDMO | https://github.com/abapGit-tests/UDMO.git | Z___UDMO | ZEXP | OK | OK | OK | OK | OK | OK | OK | OK | OK | OK | ||
| VCLS | https://github.com/abapGit-tests/VCLS.git | $___VCLS | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| VCLS | https://github.com/abapGit-tests/VCLS.git | Z___VCLS | ZEXP | OK | OK | OK | OK | OK | OK | OK | NOT_OK | NOT_OK | Found 0 of 2 in DELETE transport NPLK901238 (first missing: TOBJ-ZFOOBAR C) | ||
| VIEW | https://github.com/abapGit-tests/VIEW.git | $___VIEW | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| VIEW | https://github.com/abapGit-tests/VIEW.git | Z___VIEW | ZEXP | OK | OK | OK | OK | OK | OK | OK | NOT_OK | NOT_OK | Found 0 of 1 in DELETE transport NPLK901242 (first missing: VIEW-ZAG_UNIT_TESTV) | ||
| W3MI | https://github.com/abapGit-tests/W3MI.git | $___W3MI | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| W3MI | https://github.com/abapGit-tests/W3MI.git | Z___W3MI | ZEXP | OK | OK | OK | OK | OK | NOT_OK | OK | NOT_OK | Found 0 of 2 in CREATE transport NPLK901244 (first missing: W3MI-ZABAPGIT_TEST_W3MI) | |||
| WAPA | https://github.com/abapGit-tests/WAPA.git | $___WAPA | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| WAPA | https://github.com/abapGit-tests/WAPA.git | Z___WAPA | ZEXP | OK | OK | OK | OK | OK | NOT_OK | OK | NOT_OK | Found 5 of 6 in CREATE transport NPLK901248 (first missing: SICF-ZWAPA 54884256b5a0ed1617a50dc58) | |||
| WDYA_and_WDYN | https://github.com/abapGit-tests/WDYA_and_WDYN.git | $___WDYA_AND_WDYN | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| WDYA_and_WDYN | https://github.com/abapGit-tests/WDYA_and_WDYN.git | Z___WDYA_AND_WDYN | ZEXP | OK | OK | OK | OK | OK | NOT_OK | OK | NOT_OK | CREATE transport NPLK901252 contains too many objects (3/2) | |||
| WEBI | https://github.com/abapGit-tests/WEBI.git | $___WEBI | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| WEBI | https://github.com/abapGit-tests/WEBI.git | Z___WEBI | ZEXP | OK | OK | OK | OK | OK | OK | OK | NOT_OK | NOT_OK | Found 0 of 10 in DELETE transport NPLK901258 (first missing: FUGR-ZTESTWEBI) | ||
| XINX | https://github.com/abapGit-tests/XINX.git | $___XINX | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| XINX | https://github.com/abapGit-tests/XINX.git | Z___XINX | ZEXP | OK | OK | OK | OK | OK | NOT_OK | OK | NOT_OK | Found 0 of 1 in CREATE transport NPLK901260 (first missing: XINX-T005 Z00) | |||
| XSLT | https://github.com/abapGit-tests/XSLT.git | $___XSLT | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| XSLT | https://github.com/abapGit-tests/XSLT.git | Z___XSLT | ZEXP | OK | OK | OK | OK | OK | OK | OK | NOT_OK | NOT_OK | Found 0 of 2 in DELETE transport NPLK901266 (first missing: XSLT-ZABAPGIT_UNIT_TEST) | ||
| odata4 | https://github.com/abapGit-tests/odata4.git | $___ODATA4 | OK | OK | OK | OK | OK | OK | OK | OK | |||||
| odata4 | https://github.com/abapGit-tests/odata4.git | Z___ODATA4 | ZEXP | OK | OK | OK | OK | OK | OK | OK | NOT_OK | NOT_OK | Found 0 of 11 in DELETE transport NPLK901270 (first missing: CLAS-ZCL_ZODATA4_DPC) |


One of my favorite ways that creative people communicate is by “working with their garage door up,” to riff on a passage from Robin Sloan (below). This is the opposite of the Twitter account which mostly posts announcements of finished work: it’s Screenshot Saturday; it’s giving a lecture about the problems you’re pondering in the shower; it’s thinking out loud.
It’s better to be selective and read fewer, better articles than to be indiscriminate and read zilch...
It’s better to be selective and read fewer, better articles than to be indiscriminate and read zilch...
It’s better to be selective and read fewer, better articles than to be indiscriminate and read zilch...
It’s better to be selective and read fewer, better articles than to be indiscriminate and read zilch...
It’s better to be selective and read fewer, better articles than to be indiscriminate and read zilch...
It’s better to be selective and read fewer, better articles than to be indiscriminate and read zilch...
It’s better to be selective and read fewer, better articles than to be indiscriminate and read zilch...


public interface PCExpression
| Modifier and Type | Method and Description |
|---|---|
PCExpression |
replaceVariables(SubstitutionSet s)
Replaces all the variables in the predicate expression according to the
specified bindings.
|
PCExpression |
standardizeVariablesApart(Hashtable<Variable,Variable> newVars)
Standardizes the variables in order to be sure that there won't be any
variable clashes.
|
PCExpression replaceVariables(SubstitutionSet s)
This method is recursive over all PCExpression
implementations.
s
- the SubstitutionSet
that contains the bindings of the
variables so far.PCExpression
object representing the bound predicate
expression.SubstitutionSet
PCExpression standardizeVariablesApart(Hashtable<Variable,Variable> newVars)
This method is recursive over all PCExpression
implementations.
newVars
- is a parameter to save over the recursion all the variable
replacements done so far.PCExpression
object representing the standardized
predicate expression.


--- layout: page title: Welcome at Albex's menu: group: home --- {% include JB/setup %}
I'm Alexandre Camus but I'm more often known as Albex on the web. You will find here useful links of my major projects. You will also find my résumé and my LinkedIn webpage.
I have been working on several projects. All my projects are stored in my Github account. Here is a short list of the major ones.
I will very soon upload my CV. Here is my LinkedIn profile.