Net::SSH is a library for interacting, programmatically, with remote processes via the SSH2 protocol. Sessions are always initiated via Net::SSH.start. From there, a program interacts with the new SSH session via the convenience methods on Net::SSH::Connection::Session, by opening and interacting with new channels (Net::SSH::Connection:Session#open_channel and Net::SSH::Connection::Channel), or by forwarding local and/or remote ports through the connection (Net::SSH::Service::Forward).
The SSH protocol is very event-oriented. Requests are sent from the client to the server, and are answered asynchronously. This gives great flexibility (since clients can have multiple requests pending at a time), but it also adds complexity. Net::SSH tries to manage this complexity by providing some simpler methods of synchronous communication (see Net::SSH::Connection::Session#exec!).
In general, though, and if you want to do anything more complicated than simply executing commands and capturing their output, you’ll need to use channels (Net::SSH::Connection::Channel) to build state machines that are executed while the event loop runs (Net::SSH::Connection::Session#loop).
Net::SSH::Connection::Session and Net::SSH::Connection::Channel have more information about this technique.
Net::SSH.start("host", "user", :password => "password") do |ssh| result = ssh.exec!("ls -l") puts result end
Net::SSH.start("host", "user", :password => "password") do |ssh| ssh.forward.local(1234, "www.google.com", 80) ssh.loop { true } end
Net::SSH.start("host", "user", :password => "password") do |ssh| ssh.forward.remote(80, "www.google.com", 1234) ssh.loop { true } end
Try to load Highline and Termios in turn, selecting the corresponding PromptMethods module to use. If neither are available, choose PromptMethods::Clear.
This is the set of options that Net::SSH.start recognizes. See Net::SSH.start for a description of each option.
Returns a hash of the configuration options for the given host, as read from the SSH configuration file(s). If use_ssh_config is true (the default), this will load configuration from both ~/.ssh/config and /etc/ssh_config. If use_ssh_config is nil or false, nothing will be loaded (and an empty hash returned). Otherwise, use_ssh_config may be a file name (or array of file names) of SSH configuration file(s) to read.
See Net::SSH::Config for the full description of all supported options.
# File lib/net/ssh.rb, line 220 def self.configuration_for(host, use_ssh_config=true) files = case use_ssh_config when true then Net::SSH::Config.default_files when false, nil then return {} else Array(use_ssh_config) end Net::SSH::Config.for(host, files) end
The standard means of starting a new SSH connection. When used with a block, the connection will be closed when the block terminates, otherwise the connection will just be returned. The yielded (or returned) value will be an instance of Net::SSH::Connection::Session (q.v.). (See also Net::SSH::Connection::Channel and Net::SSH::Service::Forward.)
Net::SSH.start("host", "user") do |ssh| ssh.exec! "cp /some/file /another/location" hostname = ssh.exec!("hostname") ssh.open_channel do |ch| ch.exec "sudo -p 'sudo password: ' ls" do |ch, success| abort "could not execute sudo ls" unless success ch.on_data do |ch, data| print data if data =~ /sudo password: / ch.send_data("password\n") end end end end ssh.loop end
This method accepts the following options (all are optional):
:auth_methods => an array of authentication methods to try
:bind_address => the IP address on the connecting machine to use in establishing connection. (:bind_address is discarded if :proxy is set.)
:compression => the compression algorithm to use, or true to use whatever is supported.
:compression_level => the compression level to use when sending data
:config => set to true to load the default OpenSSH config files (~/.ssh/config, /etc/ssh_config), or to false to not load them, or to a file-name (or array of file-names) to load those specific configuration files. Defaults to true.
:encryption => the encryption cipher (or ciphers) to use
:forward_agent => set to true if you want the SSH agent connection to be forwarded
:global_known_hosts_file => the location of the global known hosts file. Set to an array if you want to specify multiple global known hosts files. Defaults to %w(/etc/ssh/known_hosts /etc/ssh/known_hosts2).
:hmac => the hmac algorithm (or algorithms) to use
:host_key => the host key algorithm (or algorithms) to use
:host_key_alias => the host name to use when looking up or adding a host to a known_hosts dictionary file
:host_name => the real host name or IP to log into. This is used instead of the host parameter, and is primarily only useful when specified in an SSH configuration file. It lets you specify an “alias”, similarly to adding an entry in /etc/hosts but without needing to modify /etc/hosts.
:kex => the key exchange algorithm (or algorithms) to use
:keys => an array of file names of private keys to use for publickey and hostbased authentication
:key_data => an array of strings, with each element of the array being a raw private key in PEM format.
:keys_only => set to true to use only private keys from keys and key_data parameters, even if ssh-agent offers more identities. This option is intended for situations where ssh-agent offers many different identites.
:logger => the logger instance to use when logging
:max_pkt_size => maximum size we tell the other side that is supported per packet. Default is 0x8000 (32768 bytes). Increase to 0x10000 (65536 bytes) for better performance if your SSH server supports it (most do).
:max_win_size => maximum size we tell the other side that is supported for the window.
:paranoid => either false, true, :very, or :secure specifying how strict host-key verification should be (in increasing order here)
:passphrase => the passphrase to use when loading a private key (default is nil, for no passphrase)
:password => the password to use to login
:port => the port to use when connecting to the remote host
:properties => a hash of key/value pairs to add to the new connection’s properties (see Net::SSH::Connection::Session#properties)
:proxy => a proxy instance (see Proxy) to use when connecting
:rekey_blocks_limit => the max number of blocks to process before rekeying
:rekey_limit => the max number of bytes to process before rekeying
:rekey_packet_limit => the max number of packets to process before rekeying
:timeout => how long to wait for the initial connection to be made
:user => the user name to log in as; this overrides the user parameter, and is primarily only useful when provided via an SSH configuration file.
:user_known_hosts_file => the location of the user known hosts file. Set to an array to specify multiple user known hosts files. Defaults to %w(~/.ssh/known_hosts ~/.ssh/known_hosts2).
:verbose => how verbose to be (Logger verbosity constants, Logger::DEBUG is very verbose, Logger::FATAL is all but silent). Logger::FATAL is the default. The symbols :debug, :info, :warn, :error, and :fatal are also supported and are translated to the corresponding Logger constant.
# File lib/net/ssh.rb, line 165 def self.start(host, user, options={}, &block) invalid_options = options.keys - VALID_OPTIONS if invalid_options.any? raise ArgumentError, "invalid option(s): #{invalid_options.join(', ')}" end options[:user] = user if user options = configuration_for(host, options.fetch(:config, true)).merge(options) host = options.fetch(:host_name, host) if !options.key?(:logger) options[:logger] = Logger.new(STDERR) options[:logger].level = Logger::FATAL end if options[:verbose] options[:logger].level = case options[:verbose] when Fixnum then options[:verbose] when :debug then Logger::DEBUG when :info then Logger::INFO when :warn then Logger::WARN when :error then Logger::ERROR when :fatal then Logger::FATAL else raise ArgumentError, "can't convert #{options[:verbose].inspect} to any of the Logger level constants" end end transport = Transport::Session.new(host, options) auth = Authentication::Session.new(transport, options) user = options.fetch(:user, user) if auth.authenticate("ssh-connection", user, options[:password]) connection = Connection::Session.new(transport, options) if block_given? retval = yield connection connection.close retval else return connection end else transport.close raise AuthenticationFailed, user end end
Generated with the Darkfish Rdoc Generator 2.


I graduated from the George Mason University Volgenau School of Engineering majoring in Applied IT with a web development & multimedia concentration.
Beyond my passion for web development, my interests include information security, quality assurance, technical writing, IT project management, SDLC methodologies, translating business needs into technical requirements, and IT support.
I am always looking to build new relationships and regularly seek opportunities to develop my knowledge base of all things IT.
George Mason University Volgenau School of Engineering B.S. Applied Information Technology Concentration: Web Development & Multimedia
Technical Experience
Languages: HTML5 | CSS3 | JavaScript | XML | PHP | Java | SQL Operating Systems: macOS | Windows Server 2012 | Windows XP/Vista/7/8/10 | Mobile: Android & iOS Applications: MS Office (Word, Excel, PowerPoint, Project) | Photoshop | Visio | VMWare Fusion | SQL Server Management Studio | Microsoft Visual Studio: Team Foundation Server 2017 Web Development: Wordpress | Joomla | Sharepoint | Bootstrap Framework | jQuery Library | Git | Analytics
Favorite Text Editor: Brackets
Work History
Current: Chainbridge Technologies: QA Analyst
Great Falls Construction: Office Manager Assistant
GMP Home Improvement: Kitchen & Bath Remodeler
Booz Allen Hamilton: Research Intern
Booz Allen Hamilton: Lab Assistant
Built using: Sharepoint Enterprise CMS Enterprise CMS Software: SharePoint Server 2013 - Database version 15.0.4420.1017
Server: MS Windows Server 2008r2 SP1 (6.1.7601)
Web Service: IS 7.5.7600.61385
Database: MS SQL 2012 (11.0.3128)
The purpose of learning to develop an enterprise content management system is to demonstrate both competency and proficiency in solving common information and team management obstacles faced in today’s organizations. The name of my fictitious organization for the purpose of this project is Custom Builders Inc. My goals and objectives in establishing an Enterprise CMS are to simplify and strengthen business workflow and make sure all employees can be on the same page at all times in order to produce a more effective work environment.
There are a variety of web parts that have been added to the site. Many of them I have chosen to display on the main page. The Announcements web part is located near the top of the home page as it is important that users are able to see reminders when they are first directed to the site. Some weekly announcements included are Superintendent report weekly deadlines and the Project manager meeting minutes update deadline.
Below the announcements web part on the main page is a calendar view of project completion and the duration of each project. I have located this here as it is important to remind employees that they are indeed on a timeline and it helps to have an image of how much time is left to complete a project. The calendar view is configured so that the start dates and end dates are displayed.
A documents library web part that contains Project Completion lists is located below the project deadline calendar. It is located here because these documents are something that need to be updated on a regular basis to keep everyone in the loop on the status of a project. It is a more detailed list than the project manager meeting minute list that is more specifically used by the superintendents as the project superintendents are the individuals who are on the jobs most of the time and have the best insight on how much has been done and what needs to be done. These lists are a great point of reference for project managers to gauge whether or not a project is on track. They can also be used to easily update the project meeting minute lists from the same site.
The blog entitled “Overcoming Project issues” will have periodical updates about issues that were run into and over come in each project so that employees can be aware of what occurred and how the issue was resolved. In general, the blog will be an important place to go to document and witness growth of the company, especially for employees who join after events occur. It is a way to catch them up and get a general idea of how things have worked in the past in the company. No sense leaving every issue solved in the dark.
I created a projects list with three different views. The list contains 8 fields including: Name, Address, Phone number, Project Type, Completion date, Project start date, Total project cost, Amount Paid, and Amount Owed. The amount owed is a field that is calculated by subtracting the amount paid from the project cost. The three different project list views are the Expected Payment datasheet view, which focuses on how much is owed by each client. The Project Completion Date Calendar View, which focuses on the project start date and project end date. The third view, Client Contact Information, focuses on only the name, phone number, and address of each client. I implemented a workflow ensuring that project completion lists are reviewed and approved first by a general laborer, then the site superintendent, then by the active project manager before they are considered final each week.
In conclusion, I am impressed with the capabilities offered by SharePoint. It is amazing to have a variety of documents and lists that can be edited and viewed by everyone in the company in one location. The level of productivity SharePoint sites provide must be enormous.
As far as cons go, I did find it rather frustrating to move web parts around on the site. I was also mildly irritated by how sluggish it seemed to load at certain points. However, at the cost of having everything in once place to effectively run a business, these cons are minimal.
I would recommend the implementation of SharePoint into any business desiring an increase in productivity.
Date: May 1, 2016
Smart Home Marketplace
eCommerce site built using Joomla CMS
Joomla is a content management system with an extensions directory containing components, modules, and plugins. For the purposes of this site, I only used free extensions. The goal was to create an eCommerce website for smart home automation products. I created the logo, added a poll, a translation option, a section showcasing various products, and a shopping cart to add and purchase smart home products.
A responsive site built starting with a bootstrap framework and implementing HTML, CSS, JavaScript, jQuery and XML.
While I acknowledge this is not the most modern looking site, under the hood it showcases some of my exposure to JavaScript, jQuery, and XML.
jQuery is used to validate the email and checkbox form input information, dispaly the number of characters left in a text box, and display a date picker on the Contact Us page.
XML is used to access the photos and information about the employees displayed on the "Meet Our Team" page. It is also used to access the direct phone number after clicking the button on the Contact Us page.
JavaScript is used to create a basic flashing animation, insert users names when they type them in by turing the input into a variable, create an array of image files in order to randomly display a new image every time the page loads, and to calculate the square footage of a home based on user input using a customized function.
Click the following link to view this site live: Future Builders
Step Count Visualization
Google Chart Data Visualizations
I used my step count records to create a visual representation of a month in my shoes. Using Google's charts, I was able to manipulate the code to represent my results. Hosting two visualizations on the same page did not work properly at first, but after experimenting with the arrangement of the code, I was able to successfully display both charts simultaneously.
The second chart is interactive in that it displays the date as well as the step count number when you hover over each bar.
To experiment with google charts, visit: https://developers.google.com/chart/. Copy and paste the code into an HTML file and change the numbers as you like.
Appointment Calendar
Using PHP, this calendar allows users to book a time slot displayed on a calendar generated based on the current month.
Starting in the office hour set up file, the user is asked to select the times and days they would like to reserve. Upon submitting thier choices for the time and weekday, the data is passed to the calendar.php file where a calendar is generated based on the current month. Within each day the user selected, the timeslots they chose show up next to radio buttons. The user is then prompted to enter thier name, email, and to select a specific day from the displayed calendar using the radio buttons. Once submitted, the form states that the reservation was successfully submitted and an email is sent confirming thier appointment. Additionally, a hidden field containing the faculty email is used to send an email informing them of the meeting.
Freelance Content Updates - Git Repository Clone from BitBucket
247Solar is a remarkable up and coming business site I have been tasked with updating. I am in the process of making various edits to the content as well as replacing the current logo.
Modifying this site introduced me to using Git on the command line. I am now comfortable with a variety of Git commands and will continue to use distributed version control.
Visit 247Solar.com to learn more about its groundbreaking solar technology.


?6
7
8
9
10
copyright
reserved
The
New
York
Botanical
Garden
Form
48-Tt.
8
TROPICAL
FOREST
HERBARIUM
1S703
Botanical
name:
(Accession
number
for
Washington
office)
____ij-jpholia
bftllonls
Urban
Determined
by.......1*.1
Ml,_/?»
Country:
p,,#r*0
Rico
Political
division:
Manat
£
Locality:
36,
^lllalba-iiaMat
I
-Planted
?
Altitude?»^99m?*#
Tree
0
Shrub
D
Vine
CD
_______________CD
HeightlQQ.jf.1hi
D.
B.
H..S?.iii£$ems-
Flower
color,
odor;
ishitish,
tinged
with
gTDIQi
fruit
color,
texture:
Abundance,
site,
slope,
large
tree,out
of
norma
1
range
and
higher
vegetation
type,
etc.:
than
usual
elevation*
Uses,
and
part
used;
locally
or
commercially:
Other
notes:
Local
name:
tabloilciXlo^
Collector:
Elbert
•*-.
Little
Jr
Date
of
collection:
17»
195G
Collector’s
No.1j17.G_3.___
Specimens
Collected
Under
the
Auspices
of
the
U.
S.
Department
of
Agriculture,
Forest
Service;
Tropical
Forest
Experiment
Station,
Rio
Piedras,
Puerto
Rico
10—25027-1
gpo
NEW
YORK
BOTANICAL
GARDEN
01029135
Legend -
Level of confidence that token is an accurately-transcribed word
extremely low
very low
low
undetermined
medium
high
very high


|
Dragon Compiler
0.7.0
|
scope stack More...
#include <Scope.h>
Public Member Functions | |
| ScopeStack (void) | |
| constructor | |
| virtual Symbol * | lookup (string name, bool through) |
| look up symbol in scope stack More... | |
| virtual Symbol * | lookupBeforeLocation (string name, yyltype *loc) |
| look up symbol in scope stack More... | |
| virtual void | declare (Symbol *symbol) |
| virtual void | open (Scope *scope) |
| bind global scope and push all new scopes | |
| virtual void | close (void) |
| clear scope stack | |
| virtual Scope * | lookForScope (scopeKind kind) |
| get closest specific kind scope More... | |
| virtual Scope * | getCurrentScope (void) |
| virtual Class * | lookupClass (string name) |
Public Attributes | |
| List< Scope * > * | scopeStack |
| top: scopeStack[scoep->size()-1] | |
| GlobalScope * | globalScope |
| global scope reference | |
scope stack
there only exists one class scope in this stack at one time(open/close)
get closest specific kind scope
| kind | kind of scope |
|
virtual |
look up symbol in scope stack
| name | symbol name |
| through | whether search into stack or not |
look up symbol in scope stack
| location | location limits |


In the previous project we moved one project to docker. The idea was to move exactly the same functionality (even without touching anything within the source code). Now we’re going to add more services. Yes, I know, it looks like overenginering (it’s exactly overenginering, indeed), but I want to build something with different services working together. Let start.
We’re going to change a little bit our original project. Now our frontend will only have one button. This button will increment the number of clicks but we’re going to persists this information in a PostgreSQL database. Also, instead of incrementing the counter in the backend, our backend will emit one event to a RabbitMQ message broker. We’ll have one worker service listening to this event and this worker will persist the information. The communication between the worker and the frontend (to show the incremented value), will be via websockets.
With those premises we are going to need:
- Frontend: UI5 application
- Backend: PHP/lumen application
- Worker: nodejs application which is listening to a RabbitMQ event and serving the websocket server (using socket.io)
- Nginx server
- PosgreSQL database.
- RabbitMQ message broker.
As the previous examples, our PHP backend will be server via Nginx and PHP-FPM.
Here we can see to docker-compose file to set up all the services
version: '3.4'
services:
nginx:
image: gonzalo123.nginx
restart: always
ports:
- "8080:80"
build:
context: ./src
dockerfile: .docker/Dockerfile-nginx
volumes:
- ./src/backend:/code/src
- ./src/.docker/web/site.conf:/etc/nginx/conf.d/default.conf
networks:
- app-network
api:
image: gonzalo123.api
restart: always
build:
context: ./src
dockerfile: .docker/Dockerfile-lumen-dev
environment:
XDEBUG_CONFIG: remote_host=${MY_IP}
volumes:
- ./src/backend:/code/src
networks:
- app-network
ui5:
image: gonzalo123.ui5
ports:
- "8000:8000"
restart: always
volumes:
- ./src/frontend:/code/src
build:
context: ./src
dockerfile: .docker/Dockerfile-ui5
networks:
- app-network
io:
image: gonzalo123.io
ports:
- "9999:9999"
restart: always
volumes:
- ./src/io:/code/src
build:
context: ./src
dockerfile: .docker/Dockerfile-io
networks:
- app-network
pg:
image: gonzalo123.pg
restart: always
ports:
- "5432:5432"
build:
context: ./src
dockerfile: .docker/Dockerfile-pg
environment:
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_DB: ${POSTGRES_DB}
PGDATA: /var/lib/postgresql/data/pgdata
networks:
- app-network
rabbit:
image: rabbitmq:3-management
container_name: gonzalo123.rabbit
restart: always
ports:
- "15672:15672"
- "5672:5672"
environment:
RABBITMQ_ERLANG_COOKIE:
RABBITMQ_DEFAULT_VHOST: /
RABBITMQ_DEFAULT_USER: ${RABBITMQ_DEFAULT_USER}
RABBITMQ_DEFAULT_PASS: ${RABBITMQ_DEFAULT_PASS}
networks:
- app-network
networks:
app-network:
driver: bridge
We’re going to use the same docker files than in the previous post but we also need new ones for worker, database server and message queue:
Worker:
FROM node:alpine
EXPOSE 8000
WORKDIR /code/src
COPY ./io .
RUN npm install
ENTRYPOINT ["npm", "run", "serve"]
The worker script is simple script that serves the socket.io server and emits a websocket within every message to the RabbitMQ queue.
var amqp = require('amqp'),
httpServer = require('http').createServer(),
io = require('socket.io')(httpServer, {
origins: '*:*',
}),
pg = require('pg')
;
require('dotenv').config();
var pgClient = new pg.Client(process.env.DB_DSN);
rabbitMq = amqp.createConnection({
host: process.env.RABBIT_HOST,
port: process.env.RABBIT_PORT,
login: process.env.RABBIT_USER,
password: process.env.RABBIT_PASS,
});
var sql = 'SELECT clickCount FROM docker.clicks';
// Please don't do this. Use lazy connections
// I'm 'lazy' to do it in this POC 🙂
pgClient.connect(function(err) {
io.on('connection', function() {
pgClient.query(sql, function(err, result) {
var count = result.rows[0]['clickcount'];
io.emit('click', {count: count});
});
});
rabbitMq.on('ready', function() {
var queue = rabbitMq.queue('ui5');
queue.bind('#');
queue.subscribe(function(message) {
pgClient.query(sql, function(err, result) {
var count = parseInt(result.rows[0]['clickcount']);
count = count + parseInt(message.data.toString('utf8'));
pgClient.query('UPDATE docker.clicks SET clickCount = $1', [count],
function(err) {
io.emit('click', {count: count});
});
});
});
});
});
httpServer.listen(process.env.IO_PORT);
Database server:
FROM postgres:9.6-alpine
COPY pg/init.sql /docker-entrypoint-initdb.d/
As we can see we’re going to generate the database estructure in the first build
CREATE SCHEMA docker;
CREATE TABLE docker.clicks (
clickCount numeric(8) NOT NULL
);
ALTER TABLE docker.clicks
OWNER TO username;
INSERT INTO docker.clicks(clickCount) values (0);
With the RabbitMQ server we’re going to use the official docker image so we don’t need to create one Dockerfile
We also have changed a little bit our Nginx configuration. We want to use Nginx to serve backend and also socket.io server. That’s because we don’t want to expose different ports to internet.
server {
listen 80;
index index.php index.html;
server_name localhost;
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
root /code/src/www;
location /socket.io/ {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass "http://io:9999";
}
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass api:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
To avoid CORS issues we can also use SCP destination (the localneo proxy in this example), to serve socket.io also. So we need to:- change our neo-app.json file
"routes": [
...
{
"path": "/socket.io",
"target": {
"type": "destination",
"name": "SOCKETIO"
},
"description": "SOCKETIO"
}
],
And basically that’s all. Here also we can use a “production” docker-copose file without exposing all ports and mapping the filesystem to our local machine (useful when we’re developing)
version: '3.4'
services:
nginx:
image: gonzalo123.nginx
restart: always
build:
context: ./src
dockerfile: .docker/Dockerfile-nginx
networks:
- app-network
api:
image: gonzalo123.api
restart: always
build:
context: ./src
dockerfile: .docker/Dockerfile-lumen
networks:
- app-network
ui5:
image: gonzalo123.ui5
ports:
- "80:8000"
restart: always
volumes:
- ./src/frontend:/code/src
build:
context: ./src
dockerfile: .docker/Dockerfile-ui5
networks:
- app-network
io:
image: gonzalo123.io
restart: always
build:
context: ./src
dockerfile: .docker/Dockerfile-io
networks:
- app-network
pg:
image: gonzalo123.pg
restart: always
build:
context: ./src
dockerfile: .docker/Dockerfile-pg
environment:
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_DB: ${POSTGRES_DB}
PGDATA: /var/lib/postgresql/data/pgdata
networks:
- app-network
rabbit:
image: rabbitmq:3-management
restart: always
environment:
RABBITMQ_ERLANG_COOKIE:
RABBITMQ_DEFAULT_VHOST: /
RABBITMQ_DEFAULT_USER: ${RABBITMQ_DEFAULT_USER}
RABBITMQ_DEFAULT_PASS: ${RABBITMQ_DEFAULT_PASS}
networks:
- app-network
networks:
app-network:
driver: bridge
And that’s all. The full project is available in my github account


‘The Witch’ Director’s ‘The Lighthouse’ Comes Ashore to Digital HD and Blu-ray
by Brad MiskaDirected by The Witch‘s Robert Eggers, A24’s The Lighthouse follows two lighthouse keepers (played by Willem Dafoe and Robert Pattinson) who are stranded on a remote and mysterious New England island in the 1890s. As an approaching storm threatens to sweep them from the rock and strange apparitions emerge from the fog, each man begins to suspect that the other has become dangerously unmoored.
After soaking up $10M at the specialty box office, The Lighthouse comes ashore on Digital just in time for the holidays on December 20 before arriving On Demand and on DVD/Blu-ray (plus Digital) January 7, 2020, from Lionsgate.
Extra features include not only deleted scenes, but also “The Lighthouse: A Dark & Stormy Tale” featurette and audio commentary from filmmaker Robert Eggers!
The Lighthouse is truly “a nightmare at sea,” one that shows shades of Sam Raimi’s filmmaking prowess and carries the madness of Evil Dead II.
ALSO: Watch This Hilarious Spoiler-Free Scene from A24’s ‘The Lighthouse’ [Video]


Chinese Flash is more than just a flash card app; it's a tool to help you learn Chinese tone pronounciation, and to be able to differentiate tones.
We strongly recommend using a WiFi connection. Also, as long as you keep this app open, you can download in the background by pressing the "Done" button above.
After installation: Tap the "Audio" icon on each study card. You'll hear a pronounciation of the pinyin tones on that card, in order. Also, you can listen to music while studying -- your music will simply duck out while the tones are playing. Cool, right?
Each tone has been recorded by a native speaker; the tones are resources of Lingomi (http://lingomi.com/), used with permission under license.
We separated the components (dictionary search, audio, etc.) into downloadable updates to make it easier to deliver new data as it changes.


Pathogenesis.
Abstract
There are many hypotheses concerning the pathogenesis of endometriosis, though no single theory can explain all cases. It is likely that several mechanisms are involved. Early studies concentrated on the histogenesis of the endometriotic lesion. Recent evidence has implicated components of the immune system in the pathogenesis of endometriosis. This review considers the evidence for different theories of the histogenesis of endometriosis and discusses possible immune factors that may be involved in the pathophysiology of the disease.


Mafia: Definitive Edition
Re-made from the ground up, rise through the ranks of the Mafia during the Prohibition era of organized crime. After a run-in with the mob, cab driver Tommy Angelo is thrust into a deadly underworld. Initially uneasy about falling in with the Salieri crime family, Tommy soon finds that the rewards are too big to ignore.


Installation
The cln
app requires you have
git
and git-annex installed
and set-up on your computer.
Additionally, if you want to build the app from source, you will need OCaml, opam, and dune.
Install git and git-annex
Git and git-annex are required. See the links for installation instructions.
If you want to install them from source or in an specific way, check out the sites linked above. If not, you can just use the package manager.
Linux
You can install them with your package manager, e.g.: sudo apt-get
install git git-annex
.
macOS
You can install them with Homebrew: brew install git git-annex
.
Install a pre-compiled binary
This is the easiest way to install the cln
program.
- Go to the releases page on GitHub.
- Download the zip file for either macOS or Linux, depending on your OS.
- Unzip the file.
- It should have one file
cln
. Move this to somewhere on your PATH, e.g.,/usr/local/bin
or$HOME/.local/bin
. - If all goes well, you should be able to run the
cln
program. Try it out withcln help
.
Install from source
Installing from source isn't too hard. The problem is that you probably don't already have OCaml installed on your computer, so you will have to install that first.
*Note that you don't actually have to install from source. You can use the precompiled binaries instead.
Set up OCaml
- First install OCaml. That guide is long, but you just need to do the parts for setting up and configuring opam.
- Install opam using your package manager.
- Initialize opam with
opam init
command. - You may want to install the latest OCaml compiler:
opam switch create 4.12.0 && eval $(opam env)
. - Next, install the required libraries:
opam install dune core jingoo
. Note that you may need to runeval $(opam env)
again after this.
Get the cln source code
Download the source code (assuming you have git installed):
git clone https://github.com/mooreryan/computational_lab_notebooks.git
cd computational_lab_notebooks.git
make && make install
Check that the cln
program is now on your path.
which cln # should print out something like this: /home/ryan/.opam/4.12.0/bin/cln
Set up bash completion (optional)
To activate bash completions for your current shell session, source the file:
. utils/cln_bash_completion.s
If you want to install the bash completions (e.g., for future sessions), run:
sudo make install_bash_completion
This installs the bash completions to /etc/bash_completion.d
.
No sudo or custom completion directory
If you don't have sudo
or you want to install the bash completions
somewhere else, you can set the BASH_COMPLETION_D
environment
vabiable like this:
make BASH_COMPLETION_D=${HOME}/Desktop/silly_completions install_bash_completion
That would install them to ${HOME}/Desktop/silly_completions
. Of
course, you would need to ensure that they are automatically sourced
in that directory!
Run tests (optional)
It's always nice to run tests locally. If you have a working OCaml
and Dune installation (see above), you can use make
to run the
tests.
make test
Note that, if you installed OCaml for the first time, and you haven't closed and re-opended your shell, you may still need to setup the opam environment:
eval $(opam env) && make test
Uninstall
If you installed from source
If you installed with the above procedure, you can run
make uninstall && make clean
to uninstall the program. If you also installed the bash completions, don't forget to delete those as well.
If you installed a precompiled binary
All you have to do is remove the binary!
If you installed bash completions
Just remove the bash completions file.


CASCADEUR-THE AMBER CHAMBER (German) A review by Mark R. Leeper in bullet-list form from the Toronto Internation Film Festival
CAPSULE: A decent adventure film with story line inspired by Indiana Jones and action inspired by Jackie Chan movies. Hardy Martins does his own impressive stunts but not much acting in a film that is diverting and lightweight. Rating: 6 (0 to 10), 1 (-4 to +4)
- Fast paced, well-produced little adventure film. Since it does not try to be much more than that, the real test is whether it is better than the action films that show up in their dozens on cable. It is of the same ilk, but this would stand out as being pretty good by comparison. - Solid action film with good pace and a little bit of humor. - "Cascadeur" means "stunt man." - Main character is a stuntman who has had an accident and is now living in the Black Forest collecting pine cones. Christin, an art student looking for the Amber Chamber teams with Martins. - The only reason it would not be seen in the US is that the characters are all German and the McGuffin everybody is looking for requires some understanding of German history from the viewer. The Ark of the Covenant is meaningful to everybody from a Jewish, Christian, or Islamic background. To care about the Amber Chamber (which is real, by the way) you have to know some German history. The Prussian king Friedrich Wilhelm I gave it to Peter the Great in 1716. The Amber Chamber was kept in the imperial Catherine Palace outside St. Petersburg, then Leningrad, before being dismantled and removed by German troops in 1941. The chamber, last sighted in 1945, is an assembly of ornately carved amber wall panels and furniture. It is the most sought-after of the Russian treasures stolen by the Germans in the Second World War. - The plot seems more sado-masochistic than a similar American film would be. - Main actor, Hardy Martins, is not a very expressive actor. He looks like a taller Jean-Claude Van Damme.
Mark R. Leeper<EMAIL_ADDRESS>Copyright 1998 Mark R. Leeper
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


Discussion: Puzzle Game Movement Systems, with Sean Barrett. Twitch is the world's leading video platform and community for gamers.
Thousands of Wisconsin ballots could be thrown out because they don’t have a postmark Ballots must be postmarked by Election Day, but many ballots don’t have a postmark at all.
How to Speak | How to Speak | MIT OpenCourseWare This page includes the full How to Speak video recorded in January 2018, along with related content and commentary
UniFi - How to Migrate from Cloud Key to Cloud Key or UDM Overview This article describes how to export your UniFi Network Controller from one UniFi device to another. It is applicable for UniFi Network Controller migrations regardless of type of host: b...
Teaching a computer to strafe jump in Quake with reinforcement learning In this video, I use RLLib to train a reinforcement learning agent to strafe jump in the classic video game Quake
Enemy AI: chasing a player without Navigation2D or A* pathfinding Making a game where your enemies need to chase the player? This starts out easy, make the enemy run towards the player! But what happen...
Bored? How about trying a Linux speed run? I have a lot of dumb ideas. I tend to write them down and then revisit them from time to time. Sometimes, the world and/or my own understanding of it has moved enough to where it can now be taken to a new place. Sometimes these ideas then "snap toge...
The Daddy of Big Numbers (Rayo's Number) - Numberphile Professor Tony Padilla is back with another epic number. Our Big Number playlist of previous videos: http://bit.ly/Big_Numbers More links & stuff in full description below ↓↓↓ Busy Beavers on Computerphile: https://youtu.be/CE8UhcyJS0I With thanks to A...
Practical TLA+ - Planning Driven Development | Hillel Wayne | Apress Apply TLA+ to real-world problems and gain the building blocks to get started with your own specifications. This book is a practical, comprehensive resource on TLA+ programming with rich, complex examples that show you how to use TLA+ to specify a complex...
Nasty macOS flaw is bricking MacBooks: Don't install this update Supplemental Catalina update was supposed to fix problems, but just created more
John Conway 1/6 [The Free Will Lectures] - Free Will and Determinism [2009] Lecture 1 | Free Will Lecture Series | Meet John Conway; hear about Simon Kochen and how the theorem came about. Thoughts on senility. Free will and determinism in science and philosophy over the last two millennia; the implications of Newtonian and quant...
Things That Turbo Pascal is Smaller Than Turbo Pascal 3 for MS-DOS was released in September 1986. Being version 3, there were lesser releases prior to it and flashier ones after, but 3 was a solid representation of the Turbo Pascal experience: a full Pascal compiler, including extensions that i...
Moving away from GMail tl;dr: I like PurelyMail and I will slowly switch all my online accounts to use it. I've been using it for almost three months and I didn't have any issues (except with some Hotmail/Outlook addresses). I have a GMail account since 2006 (that's the date o...
Email provider got hacked, data of 600,000 users now sold on the dark web | ZDNet Italian email provider Email.it confirms security breach.
"Memories" - 256 byte MSDOS intro the tiny megademo! 8 FX + MIDI soundscapes download & comment : https://www.pouet.net/prod.php?which=85227 shown April 2020 @ Revision Demoparty
The Death of Hype: What's Next for Scala A recent tweet by a friend of mine noted how the public interest in the Scala programming language seems to have plateaued or waned, which matches my feeling of the latest trends and zeitgeist. This blog post will go into why I think that has happened, wh...
 We learned that proper encryption can slow down even sophi…
THE EVIL OF 5G TECHNOLOGY - David Icke | London Real BUSINESS ACCELERATOR - Open Now: https://londonreal.tv/biz/ 2020 SUMMIT TICKETS: https://londonreal.tv/summit/ NEW MASTERCLASS EACH WEEK: http://londonreal.tv/masterclass-yt David Icke is an English writer and public speaker, known since the 1990s as a ...
#badBIOS features explained Dan Goodin at Ars Technica has reported on Dragos Ruiu's " badBIOS " analysis. I thought I'd explain how some of this stuff works. Fi...
The Voices Project The Voices Project is a grassroots recovery advocacy organization that is changing the way America thinks about recovery, one voice at a time. End the silence, end addiction. Learn more and get involved.


| MBA Details | Preparation Gyan | Test Analysis | School Profiles | Studies for GD, PI |
| Introduction | Starting the prep.s | Choosing the Instt. | Areas Of Mgt. | Home |
| BUY FROM US | Mock CATs | Section Tests | Past CAT papers | Full Course | Check Other |
|
ALL YOU WANTED TO KNOW ABOUT MBA Ask any MBA aspirant why he wants to do MBA and the answers follow predictable lines. Everyone wants to work in a multinational company and earn a fat salary, or is preparing for it since friends are into it. Few actually know what to expect from the profession. Almost everybody talks of a cousin or friend who has made it big in some company or the other.It is no wonder that the average student and even people in other professions and jobs have caught the MBA bug. When making money has become the central objective of life, who wants to be stuck in a career that offers less? Lack of information and counselling results in young people applying in hordes whether they have the aptitude or not, and the mushrooming of sub-standard institutes catering to the demand, which provide MBA degrees that can only be described as worthless. Very often, a person finds that the MBA degree does not get the promised job in the multinational and frustrations arise. Moreover, if every MBA were to be taken by the multinationals, who would work for the Indian companies, some of which are as good as, or even better, than any multinational? The Management Education Scenario Management education in the country can roughly be divided into four groups. At the top are the reputed institutes and some university departments which have maintained the high quality of their education. The second rung institutes are those started by industrial houses, which offer some surety of a job after the course. The third rung are university departments which have not been able to impart quality education but can provide jobs in regional industrial groups. The fourth rung are those institutes which have neither the advantage of low fees of a university nor the backing of an industrial house. In recent times, a number of academics, retired people, politicians and others have started such institutes which remain essentially money making devices. Which institutes should one, apply for? Obviously, the competition for the top institutes is great, since eveybody wants to do the MBA from one. There is no surety of getting in. It is, therefore better to spread risks and apply for institutes which are lower down also. One should not apply to many of them, since each application costs about Rs 1000 and applying to all would mean spending a small fortune. Depending on one's ability and confidence, one should select one or two institutes from each group and apply accordingly. Of course, the prospects and jobs decrease as one goes down to the lower rung institutes. Students also have a problem in assessing an institute. There are several yardsticks available and one should not go by the beautifully printed prospectus that they have. Some important considerations are: whether the institute has a permanent faculty and whether the faculty is professionally qualified. Many institutes depend on contractual, part time faculty members. The commitment of the part-time teacher is never total. Others depend on researcher-type teachers who have no idea how real businesses operate. What is required, instead, are people who have a practical orientation and experience. One should also check which jobs the institute is able to get for its graduates. Usually, some students geet good jobs using their own contacts, which the institute then prints in its prospectus. It is important to see how industry rates the institute. Unfortunately, the student has no way of getting this information. There is no rating agency and each institute makes tall claims about its degree. The All India Council of Technical Education (AICTE) has given its approval to many institutes without going into their merits. This has caused great problems for students who have no yardstick to go by except the AICTE approval, which does not mean a thing. The situation is further complicated by the fact that some are worthless institutes; recently some of them have been sent notices by the MRTP? Such institutes not only have very high fee, but use the 'NRI Quota' to circumvent the law on donations and only take in students who can pay more. The degrees awarded by them are quite useless. Training for the corporate world. But these are not questions that bother the MBA aspirant. Clearing the entrance test and joining the course are the immediate hurdles and it is commonly believed that once a person gets in he will most certainly become an MBA. Contrasted with courses for Chartered Accountant or Company Secretary, where some people get caught in the trap of rrepeating groups of papers, the MBA is a safe option. Not surprisingly, the sense of achievement in the MBA student is very high. The course becomes one huge ego trip. Many students do not spend as much time on their training as they should, thinking that the MBA stamp will take them through jobs. This is only partially true. No company takes a person for his label alone, but for what he can contribute. The MBA is chosen for his professionalism and his training, his skills and his ability to manage. The two years of training are therefore best spent in acquiring these skills. How are these skills acquired? First, it requires gathering knowledge and insight. Many students are used to their undergraduate classes where notes are made and some questions are mugged up near the exams, which is enough to see them through. The management course is unlike any of those courses. Application of knowledge and not mere bookish knowledge is required. That is why the good institutes by emphasis on case discussions and group assignments. The student must learn everything that may be required in business situations. A good personality should be developed. Unfortunately, many lower-rung institutes and university departments do not have facilities for personality development or teachers trained in group methods. The result is a stunted MBA which no good company would liketo touch. It is thus important to do the course from a reputed institute. The bad institutes do not insist on hard work simply because they are not committed. There is emphasis on partying and having a good time. Many institutes in Delhi and elsewhere are known for such activities. To hide their shortcomings, they have collaborations with fancy sounding foreign universities and introduce exotic courses like yoga, spiritualism and "Eastern Management". One institute advertises a golf course and swimming pool on its campus. The corporate sector is usually not impressed by such gimmicks. Many students come to grief when they find that their expensive diplomas are not good enough to get them jobs. In many institutes, the toppers get the good jobs but the average students have to accept lower offers. Youngsters who believe that merely the MBA label is a ticket to the good life face serious adjustment problems and frequent change of jobs. The MBA, in fact, should be treated only as a time to prepare for the corporate world. Qualities to be acquired A good institute, on the other hand, puts pressure on the students to be on their toes and updated in their subjects at all times. Graduates report that in certain semesters they get very little sleep, so hard is the pressure to perform. Tests are announced at the last moment when the students are preparing to sleep, so that a person must be updated in all subjects at all times. Case studies enhance the applicability of concepts and theory to real life situations. This results in a person acquiring professional competence. Ultimately, the MBA must be seen as preparation for entry into the corporate sector. A competitive spirit must also be developed. A corporate career is not one for comfortable jobs and the sooner a person acquires the competitive spirit, the better off he will be. Since any job in a company will require a person to make presentations and to convince others, a person must learn presentation skills and be a natural leader. Ability to take good decisions under pressure is also required. Many skills, such as quantitative analysis, are learnt from books but analysis of business situations is also required. This is done through case studies. The summer training is another method of using the knowledge in real life situations. The training should be used as an opportunity to prove oneself and some meaningful work should be done. Professional competence is rewarded when the summer training results in an offer of a permanent job on completion of the degree. In this way, many students find jobs during their summer training, much before the actual completion of their course. A student must keep a level head even though everybody he meets says that clearing the entrance test was a big achievement. The real achievement is to come after two years when jobs are required. The years in the institute should be utilised to learn the skills in the best possible way. If the student is not busy enough, the MBA degree will be worthless even though it may have a fancy name. Managing Expectations One of the myths that students have is that they will become senior managers the moment they complete the MBA. Certain companies have found that expectations and ambitions of MBAs are difficult to meet and they have taken policy decisions not to hire fresh MBAs. Though the MBA is a coveted degree, it becomes important to keep a level head and keep one's expectations low. According to the hype, an MBA is a senior manager, but fresh MBAs are usually taken at the level of management trainees. Initially, some low and tedious work may have to be done. If a student is not reconciled to this, frustrations are bound to arise. Job hopping is common, which ultimately hurts the career of the youngster. Further, the company too has its expectations from the management graduate to whom it is paying a high salary. The second part of the article will describe what is expected of the MBA in a company. Somewhere, the expectations have to be reconciled for the high growth career of management to be a success. Opportunities in Management Rapid expansion of Industries in India has opened new vistas for excellent opportunities of careers in management. New Economic Policy of liberalization and decontrols has increased the demand for managerial personnel in the corporate sector. Advent of multinational companies, which has just begun, may further increase the quest of the industrial sector in all fields of management like Finance, Production, Marketing, Personnel and Administration. The careers in management offer one of the best remuneration package in the country, particularly in the private sector. Recent decision of the Government to raise the upper limit of monthly salary to the managers to Rs 50,000 has made careers in management even more attractive. In addition to best of the salaries offered by this career, it also offers outstanding developmental opportunities to enable the competent and dynamic managers to rise to the level of Chief-executive. Several Indian professionals today are working as Managing Directors in many multi-nationals. Management professionals from India are also in good demand in international market. Private sector today offers rapid advancement to result-oriented professionals. Excellent perks are offered which may include free accommodation free conveyance/attractive conveyance allowance, CPF, leave travel concession, medical allowance/reimbursement etc. Those who prefer Public Sector Undertakings (PSU), may join these undertakings at several levels. The managerial hierarchy and pay-structure in most of the PSU's is pre-determined and also includes some perks, though not as attractive as offered by the private sector. Areas in Management Services Marketing, Finance, Production and Personnel are the four major areas in management with each having several sub-branches. Marketing Management includes sales, purchase, international marketing (exports-imports), advertising, marketing strategy, materials management, consumers' behaviour, market development and research. Financial Management includes all the aspects relating to finances, investments, financing decisions, portfolio management, project management, working capital management, international financial management, etc. Production Management takes care of Production methodology, costing, operations research and quality control etc. Personnel Management deals with the most complicated aspect i.e. management. It looks after the areas of Human Resource Development (HRD), recruitment, training, management-union relations, labour and personnel policies, organisation behaviour, management of change and general administration. A degree of Master in Business Administration (MBA) is considered to be the gateway to careers in management. While choosing the area of specialisation in management, the candidates must gauge their aptitude for a particular aspect of management. Candidates with commerce background usually go in for Financial Management and the technical graduates with science or engineering degrees usually choose Production Management. Rest of the candidates choose Marketing Management or Personnel Management, depending upon their aptitudes and flairs. MBA Degree Master of Business Administration is normally considered to be the basic and ideal post-graduate qualification for taking up a good and rewarding career in management. As per one estimate, every year about 10,000 MBAs are churned out by Indian Institutes of Management (IIMs) and a host of other universities and recognised institutes/deemed universities. A candidate with a good MBA degree finds no problem in getting a good job and freshers are usually inducted as Management Trainees for one to two years, before getting absorbed in regular scales. After a few years of experience, MBAs may choose the job of their own liking at very attractive terms. Several institutes/universities also offer post-graduate diplomas of one to two-year duration on Business Management, Marketing Management, HRD, Personnel Management and Labour Welfare, Basic Finance, Financial Management, Materials Management, Operations Management, etc. But as a matter of rule, MBA degree is considered to be ideal by the job-seekers as well as the employers. Diplomas also assist in finding good openings, provided these are supplemented with some relevant experience. (a) Admission: One of the toughest steps in this direction is to get admission for MBA degree. All graduates with minimum 50 per cent marks are eligible for admission. The admission is through an entrance test, which offers very tough competition. Some universities keep some seats reserved for "internal" students who graduate from the same university, apart from the prescribed reservations for scheduled caste/scheduled tribe candidates. The most prestigious degree of MBA is the one awarded by four Institutes of Management (IIMs) located at Ahmedabad, Calcutta, Bangalore and Lucknow. In addition, some universities of repute also carry out MBA programme.  In addition to the above, there are several other universities and institutes like Indian Institute of Foreign Trade, Tata Institue of Social Sciences, Indian Institute of Rural Management and Institute of Management which also conduct MBA programmes. (b) CAT By IIMs: For admission to MBA programme, IIMs hold a Common Admission Test (CAT) every year, generally in the month of December. The test is conducted on all-India basis at several centres, covering almost the entire country. A notification regarding CAT usually appears in the month of September in several national newspapers as well as in the "Employment News". The dates of commencement of academic session are different for all the four Institutes. CAT is of 2-hour duration. It is objective type (multiple choice) and includes questions on English language, analytical ability, reading comprehension, data interpretation and reasoning ability. This year CAT is to be held on December 12. In addition to the written test, the candidates may also be tested in the following: (i) group discussion; (ii) leadership tests; (iii) case study; and (iv) personal interview. The thrust of the CAT is to choose the candidates with high intelligence quotient, leadership qualities, clear understanding and good expression. The number of seats vary from 100 to 180 and the IIMs have reservation for SC/ST candidates @ 15 per cent and 7.5 per cent respectively. (c) Entrance test by Universities: The selection of candidates for MBA programme is made through entrance test by the universities, depending upon the number of seats and quantum of competition. The entrance test is for two to three hour duration. Some of the universities have more than one papers. The paper usually is objective type (multiple choice) in nature and covers areas like reasoning, reading comprehension, quantitative aptitude, data interpretation, general awareness, business communication skills etc. The exact layout of the question paper varies in different universities. Part-time/Correspondence Course Several universities like University of Delhi, Madras, Calcutta, Bombay, Gujarat, Osmania and Punjab hold part-time course for MBA. Part-time programmes are designed to last for 5 to 7 semesters and the classes are held in the evening. Apart from requirement of a good bachelor's degree, part-time programmes also require some experience at supervisory level. While part-time courses are available only to the candidates belonging to a particular city/town where such university is located, MBA courses offered through correspondence/self-instructional method are designed to assist the candidates located at far flung areas. Some universities like Punjabi University, Patiala and Indira Gandhi National Open University (IGNOU) offer such courses. IGNOU is one of the premier institutions which offers MBA programme through a nation-wide network of its 170 study centres. Internationally recognized as a centre of excellence for studies, IGNOU offers a 5-semester MBA programme and also proovides the facility of counselling. This course is particularly useful for the officers of Armed Forces who retire at relatively younger age, and also to those Government servants who wish to seek careers in managerial cadres by seeking premature retirement. An advantage to do MBA from IGNOU is that the Candidates who, for any reasons, cannot complete the entire programme and are able to pass only a few subjects/papers, are awarded diplomas like Diploma in Management, Post Graduate (PG) Deiploma in Business Management, PG Diploma in Marketing Management , PG Diploma in HRD, PG Diploma in Financial Management, etc, depending on the number of papers passed by the candidates. Another advantage is that the number of seats for MBA programme is determined study-centre-wise which offers a large number of seats at all India level. The candidates seeking admission in this programme offered by IGNOU must have completed 25 years of age and must have at least three years' experience in the supervisory capacity. There is, however, no upper age limit. The admission is made entirely on the basis of marks obtained in the entrance test which is for two-hour duration and has about 100 objective type questions on comprehension, reasoning, English language, general awareness, data interpretation, quantitative aptitude etc. |


Clickr doesn't collect any information about you. That's pretty much it.
We use an app analytics package called "flurry" tho. It gives us general information about our users, like which country they are in.


Choose your assessment date
Dates are only available from 4 weeks in advance. This gives GDS sufficient time to allocated and schedule the appropriate assessors to your assessment panel.
Dates are only available from 4 weeks in advance. This gives GDS sufficient time to allocated and schedule the appropriate assessors to your assessment panel.


{% block subject %}{{ subject|default:"Account Verification"}}{% endblock %} {% block body %}
Please use {{ code }} as verification code to verify your {{ app_name }} account.
NOTE: the verification code will expire shortly!
You received this email because you recently created an account with {{ app_name }}. If you did not, you can discard or ignore this email.
{% endblock %}


{% load staticfiles %}{% load enrichment_extra %}
Warning: This page should not be printed. Please use the printable report at the bottom of the day or the reporting section for printable reports.
Week of {{ currentDate|date:"F jS" }}
{% include "enrichmentmanager/partial/assignment_grid.html" %}


| /home/a_cook8757/.local/lib/python3.6/site-packages/_pytest/_argcomplete.py |
37 |
36 |
0 |
3% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/_pytest/_code/code.py |
655 |
634 |
0 |
3% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/_pytest/_code/source.py |
244 |
221 |
0 |
9% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/_pytest/assertion/__init__.py |
79 |
69 |
0 |
13% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/_pytest/assertion/rewrite.py |
595 |
467 |
0 |
22% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/_pytest/cacheprovider.py |
278 |
236 |
0 |
15% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/_pytest/capture.py |
484 |
412 |
0 |
15% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/_pytest/compat.py |
180 |
140 |
2 |
22% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/_pytest/config/__init__.py |
654 |
553 |
0 |
15% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/_pytest/config/argparsing.py |
244 |
199 |
31 |
18% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/_pytest/debugging.py |
197 |
187 |
0 |
5% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/_pytest/doctest.py |
332 |
323 |
0 |
3% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/_pytest/faulthandler.py |
53 |
39 |
0 |
26% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/_pytest/fixtures.py |
775 |
457 |
0 |
41% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/_pytest/helpconfig.py |
120 |
111 |
0 |
8% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/_pytest/junitxml.py |
350 |
348 |
0 |
1% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/_pytest/logging.py |
359 |
246 |
0 |
31% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/_pytest/main.py |
397 |
250 |
0 |
37% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/_pytest/mark/__init__.py |
84 |
70 |
0 |
17% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/_pytest/mark/evaluate.py |
96 |
84 |
0 |
12% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/_pytest/mark/structures.py |
173 |
156 |
0 |
10% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/_pytest/monkeypatch.py |
148 |
136 |
0 |
8% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/_pytest/nodes.py |
298 |
193 |
0 |
35% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/_pytest/nose.py |
20 |
18 |
0 |
10% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/_pytest/pastebin.py |
64 |
63 |
0 |
2% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/_pytest/pathlib.py |
218 |
204 |
0 |
6% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/_pytest/python.py |
776 |
626 |
0 |
19% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/_pytest/reports.py |
244 |
215 |
0 |
12% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/_pytest/resultlog.py |
68 |
66 |
0 |
3% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/_pytest/runner.py |
269 |
156 |
0 |
42% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/_pytest/setuponly.py |
42 |
36 |
0 |
14% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/_pytest/setupplan.py |
13 |
11 |
0 |
15% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/_pytest/skipping.py |
101 |
79 |
0 |
22% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/_pytest/stepwise.py |
58 |
46 |
0 |
21% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/_pytest/store.py |
34 |
28 |
0 |
18% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/_pytest/terminal.py |
804 |
593 |
0 |
26% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/_pytest/tmpdir.py |
87 |
80 |
0 |
8% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/_pytest/unittest.py |
202 |
133 |
0 |
34% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/_pytest/warnings.py |
77 |
54 |
0 |
30% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/attr/converters.py |
28 |
26 |
0 |
7% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/click/__init__.py |
69 |
0 |
0 |
100% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/click/_compat.py |
449 |
358 |
0 |
20% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/click/_unicodefun.py |
71 |
60 |
0 |
15% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/click/core.py |
912 |
635 |
0 |
30% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/click/decorators.py |
150 |
87 |
0 |
42% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/click/exceptions.py |
127 |
89 |
0 |
30% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/click/formatting.py |
137 |
115 |
0 |
16% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/click/globals.py |
18 |
12 |
0 |
33% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/click/parser.py |
239 |
203 |
0 |
15% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/click/termui.py |
211 |
168 |
0 |
20% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/click/testing.py |
213 |
174 |
0 |
18% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/click/types.py |
327 |
195 |
0 |
40% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/click/utils.py |
196 |
142 |
0 |
28% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/flask/__init__.py |
46 |
0 |
0 |
100% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/flask/_compat.py |
81 |
43 |
0 |
47% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/flask/app.py |
635 |
306 |
0 |
52% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/flask/blueprints.py |
179 |
133 |
0 |
26% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/flask/cli.py |
427 |
324 |
0 |
24% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/flask/config.py |
91 |
62 |
0 |
32% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/flask/ctx.py |
159 |
46 |
0 |
71% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/flask/globals.py |
27 |
9 |
0 |
67% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/flask/helpers.py |
375 |
249 |
0 |
34% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/flask/json/__init__.py |
130 |
95 |
0 |
27% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/flask/json/tag.py |
129 |
42 |
0 |
67% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/flask/logging.py |
35 |
22 |
0 |
37% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/flask/sessions.py |
127 |
66 |
0 |
48% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/flask/signals.py |
32 |
17 |
0 |
47% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/flask/templating.py |
86 |
65 |
0 |
24% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/flask/testing.py |
99 |
49 |
0 |
51% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/flask/wrappers.py |
39 |
16 |
0 |
59% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/flask_testing/__init__.py |
15 |
4 |
0 |
73% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/flask_testing/utils.py |
244 |
128 |
4 |
48% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/importlib_metadata/__init__.py |
238 |
233 |
2 |
2% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/importlib_metadata/_compat.py |
16 |
15 |
10 |
6% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/itsdangerous/__init__.py |
21 |
0 |
0 |
100% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/itsdangerous/_compat.py |
22 |
11 |
0 |
50% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/itsdangerous/_json.py |
11 |
4 |
0 |
64% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/itsdangerous/encoding.py |
27 |
13 |
0 |
52% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/itsdangerous/exc.py |
31 |
15 |
0 |
52% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/itsdangerous/jws.py |
120 |
83 |
0 |
31% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/itsdangerous/serializer.py |
90 |
66 |
0 |
27% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/itsdangerous/signer.py |
85 |
56 |
0 |
34% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/itsdangerous/timed.py |
79 |
56 |
0 |
29% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/itsdangerous/url_safe.py |
37 |
24 |
0 |
35% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/jinja2/__init__.py |
38 |
0 |
0 |
100% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/jinja2/_compat.py |
90 |
52 |
0 |
42% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/jinja2/_identifier.py |
2 |
0 |
0 |
100% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/jinja2/bccache.py |
154 |
110 |
0 |
29% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/jinja2/compiler.py |
1150 |
978 |
0 |
15% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/jinja2/defaults.py |
21 |
0 |
0 |
100% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/jinja2/environment.py |
541 |
399 |
0 |
26% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/jinja2/exceptions.py |
83 |
58 |
0 |
30% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/jinja2/filters.py |
417 |
313 |
0 |
25% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/jinja2/idtracking.py |
204 |
155 |
0 |
24% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/jinja2/lexer.py |
356 |
234 |
0 |
34% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/jinja2/loaders.py |
228 |
171 |
0 |
25% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/jinja2/nodes.py |
458 |
243 |
0 |
47% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/jinja2/optimizer.py |
17 |
10 |
0 |
41% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/jinja2/parser.py |
648 |
587 |
0 |
9% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/jinja2/runtime.py |
435 |
298 |
0 |
31% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/jinja2/tests.py |
64 |
30 |
0 |
53% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/jinja2/utils.py |
317 |
218 |
0 |
31% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/jinja2/visitor.py |
40 |
31 |
0 |
22% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/markupsafe/__init__.py |
164 |
92 |
0 |
44% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/markupsafe/_compat.py |
18 |
8 |
0 |
56% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/more_itertools/more.py |
1070 |
1061 |
0 |
1% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/pluggy/_tracing.py |
41 |
31 |
0 |
24% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/pluggy/callers.py |
122 |
88 |
0 |
28% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/pluggy/hooks.py |
175 |
106 |
0 |
39% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/pluggy/manager.py |
195 |
153 |
0 |
22% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/py/_builtin.py |
112 |
105 |
0 |
6% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/py/_code/__init__.py |
0 |
0 |
0 |
100% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/py/_code/code.py |
524 |
408 |
0 |
22% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/py/_error.py |
52 |
49 |
0 |
6% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/py/_io/terminalwriter.py |
266 |
196 |
0 |
26% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/py/_path/common.py |
278 |
189 |
0 |
32% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/py/_path/local.py |
693 |
546 |
0 |
21% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/py/_vendored_packages/apipkg.py |
148 |
129 |
0 |
13% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/py/_xmlgen.py |
170 |
168 |
0 |
1% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/pytest_cov/compat.py |
27 |
22 |
0 |
19% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/pytest_cov/embed.py |
77 |
71 |
0 |
8% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/pytest_cov/engine.py |
222 |
202 |
0 |
9% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/pytest_cov/plugin.py |
202 |
173 |
0 |
14% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/werkzeug/__init__.py |
37 |
11 |
0 |
70% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/werkzeug/_compat.py |
148 |
82 |
0 |
45% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/werkzeug/_internal.py |
252 |
174 |
0 |
31% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/werkzeug/datastructures.py |
1364 |
872 |
0 |
36% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/werkzeug/exceptions.py |
218 |
53 |
0 |
76% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/werkzeug/filesystem.py |
22 |
13 |
0 |
41% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/werkzeug/formparser.py |
256 |
199 |
4 |
22% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/werkzeug/http.py |
477 |
393 |
0 |
18% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/werkzeug/local.py |
216 |
68 |
0 |
69% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/werkzeug/routing.py |
733 |
319 |
0 |
56% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/werkzeug/serving.py |
509 |
418 |
0 |
18% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/werkzeug/test.py |
545 |
258 |
0 |
53% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/werkzeug/urls.py |
455 |
222 |
0 |
51% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/werkzeug/useragents.py |
46 |
24 |
0 |
48% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/werkzeug/utils.py |
272 |
196 |
0 |
28% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/werkzeug/wrappers/__init__.py |
16 |
0 |
0 |
100% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/werkzeug/wrappers/accept.py |
14 |
4 |
0 |
71% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/werkzeug/wrappers/auth.py |
16 |
9 |
0 |
44% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/werkzeug/wrappers/base_request.py |
181 |
96 |
0 |
47% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/werkzeug/wrappers/base_response.py |
231 |
79 |
0 |
66% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/werkzeug/wrappers/common_descriptors.py |
94 |
41 |
0 |
56% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/werkzeug/wrappers/etag.py |
116 |
73 |
0 |
37% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/werkzeug/wrappers/json.py |
65 |
43 |
0 |
34% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/werkzeug/wrappers/request.py |
11 |
0 |
0 |
100% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/werkzeug/wrappers/response.py |
38 |
20 |
0 |
47% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/werkzeug/wrappers/user_agent.py |
5 |
1 |
0 |
80% |
| /home/a_cook8757/.local/lib/python3.6/site-packages/werkzeug/wsgi.py |
441 |
335 |
0 |
24% |
| app.py |
8 |
1 |
0 |
88% |
| testing/__init__.py |
0 |
0 |
0 |
100% |
| testing/test_unit.py |
11 |
0 |
0 |
100% |
| /usr/lib/python3/dist-packages/blinker/__init__.py |
3 |
0 |
0 |
100% |
| /usr/lib/python3/dist-packages/blinker/_saferef.py |
83 |
44 |
0 |
47% |
| /usr/lib/python3/dist-packages/blinker/_utilities.py |
100 |
56 |
0 |
44% |
| /usr/lib/python3/dist-packages/blinker/base.py |
160 |
84 |
0 |
48% |


The following table describes the supported DateRules
:
| Member | Description |
|---|---|
self.DateRules.SetDefaultTimeZone(time_zone: DateTimeZone)
DateRules.SetDefaultTimeZone(DateTimeZone timeZone); |
Sets the time zone for the DateRules object used in all methods in this table. The default time zone is the algorithm time zone. |
self.DateRules.On(year: int, month: int, day: int)
DateRules.On(int year, int month, int day) |
Trigger an event on a specific date. |
self. DateRules.EveryDay() |
Trigger an event every day. |
self.DateRules.EveryDay(symbol: Symbol)
DateRules.EveryDay(Symbol symbol) |
Trigger an event every day a specific symbol is trading. |
self.DateRules.Every(days: List[DayOfWeek])
DateRules.Every(params DayOfWeek[] days) |
Trigger an event on specific days throughout the week. To view the DayOfWeek enum members, see DayOfWeek Enum in the .NET documentation. |
self.DateRules.MonthStart(daysOffset: int = 0)
DateRules.MonthStart(int daysOffset = 0) |
Trigger an event on the first day of each month plus an offset. |
self.DateRules.MonthStart(symbol: Symbol, daysOffset: int = 0)
DateRules.MonthStart(Symbol symbol, int daysOffset = 0) |
Trigger an event on the first tradable date of each month for a specific symbol plus an offset. |
self.DateRules.MonthEnd(daysOffset: int = 0)
DateRules.MonthEnd(int daysOffset = 0) |
Trigger an event on the last day of each month minus an offset. |
self.DateRules.MonthEnd(symbol: Symbol, daysOffset: int = 0)
DateRules.MonthEnd(Symbol symbol, int daysOffset = 0) |
Trigger an event on the last tradable date of each month for a specific symbol minus an offset. |
self.DateRules.WeekStart(daysOffset: int = 0)
DateRules.WeekStart(int daysOffset = 0) |
Trigger an event on the first day of each week plus an offset. |
self.DateRules.WeekStart(symbol: Symbol, daysOffset: int = 0)
DateRules.WeekStart(Symbol symbol, int daysOffset = 0) |
Trigger an event on the first tradable date of each week for a specific symbol plus an offset. |
self.DateRules.WeekEnd(daysOffset: int = 0)
DateRules.WeekEnd(int daysOffset = 0) |
Trigger an event on the last day of each week minus an offset. |
self.DateRules.WeekEnd(symbol: Symbol, daysOffset: int = 0)
DateRules.WeekEnd(Symbol symbol, int daysOffset = 0) |
Trigger an event on the last tradable date of each week for a specific symbol minus an offset. |
self. DateRules.Today
| Trigger an event once today. |
self. DateRules.Tomorrow
| Trigger an event once tomorrow. |


IDE's language level is set to PHP7 or higher, so it is possible to use strict types in you codebase.


Loblaws to enhance PC Express using new technology
The company will install a 12,000 square foot picking facility within one of its stores
by Aisha MalikLoblaws has announced plans to invest in its PC Express service by building an “automated picking facility” at one of its locations.
The company will partner with Takeoff Technologies to enable the PC Express service to provide online grocery orders to customers faster and more accurately through the automated warehouse.
The service will launch in 2020 and will include technology that will have the ability to support PC Express orders in select stores that are near the automated picking facility.
Construction has begun at one of the GTA locations, where the company will install a 12,000 square foot picking facility within the store.
Here’s how it will work:
- Customers order as usual through PC Express
- At the automated picking facility, once an order is received it may be split by automated picking and/or in-store picking, depending on the products requested. Instead of walking the store to pick groceries, our automated facility brings groceries directly to a Loblaws colleague to pick and pack.
- Once complete, the order goes to a ‘staging area’ where another Loblaws colleague reviews the order and stores it in the appropriate temperature zone (frozen, chilled or, room temperature). The order is then combined with the in-store picked items if necessary.
- Customers arrive and their order is brought out to their car.
Loblaws currently has 700 PC Express pick up locations at transit stations, pharmacies and grocery stores across the country.


Getting started With Red
Basically, you need to download the Red system (very small) and use a text editor.
Ungaretti explains possibilities at:
http://helpin.red/
There is another editor by Mike Parr at:
http://www.mikeparr.info/redlang.html
There are a number of advanced options (e.g. about compiling programs for different
architectures), and these can be displayed by typing:
red -h
at the Red console.
How to use Red By Example
1. if you know the word to search for, you can use the alphanumeric index
on the INDEX page
2. if you are searching for a given functionality, try to browse the index
per category on the INDEX page
3. if you remember part of a word use the browser search function by pressing CTRL+f
on the INDEX page
4. when viewing a words' docs, you can immediately jump to any category it belongs to
5. in the INDEX page you can jump to the top of the page from anywhere
Some remarks concerning the examples
1. falsey = (any expression evaluating to) none or false
2. functions getting wrong arguments generally produce a specific script error
3. this page is not intended to be used for Rebol - too many differences
4. returned value of a Red expression will appear as is in the text of a word doc
5. printed values will appear in blue in the text of a word doc
6. extra explanation will appear in green in the tex of a word doc