Guidance
What local authorities, maintained schools and academies need to know about foreign nationals applying to attend a state-funded school.
In most cases, children arriving from overseas have the right to attend state-funded schools in England.
When you deal with an application for a child who is not a UK national, you must comply with the school admissions code . You must not refuse a school place simply because of doubts about the child’s immigration status.
The following children are not entitled to a state education:
If you find that children belonging to either of these categories are attending a state-funded school, you must not deny them a place. Instead, you should alert the Home Office’s school referrals team so they can investigate further.
It is up to you to decide whether or not you let the child’s parents or carers know that you have contacted the Home Office.
The Home Office will aim to respond to you within 48 hours.
If the Home Office finds that the child is not entitled to state-funded education, it will be up to them to take any further action they consider appropriate. You should not deny the child a place on the basis of the Home Office’s findings.
If you are concerned about the safety of children from overseas who are in private fostering arrangements, read the ‘Keeping children safe in education’ statutory guidance.
Published: 25 March 2014
Updated: 1 December 2014
From: Department for Education
Part of: Running a school or college


| Instructor's name: | Eric Pogue |
| Lewis office location: | AS-132-A |
| Office hours: | MWF 1-2pm CT by appointment |
| Appointments: | Appointments can be requested via email |
| Lewis Phone Number: |<PHONE_NUMBER> (mobile) |
| Lewis email address: |<EMAIL_ADDRESS>|
| Course:: | Software Engineering (CPSC-44000-LT1) |
| Course Credit Hours: | 3 |
| Course Description: | Methods, strategies, and tools for implementing software |
| Prerequisites: | CPSC-24500 Object-Oriented Programming |
| Course meeting times: | MWF 12-12:50am CT from August 31 through December 12th |
| Meeting location: | AS 104A |
| Course final: | Monday, December 14th from 1:30 to 3:30pm CT |
| Student Learning Outcomes: |
|


{% extends 'base.html' %} {% block body %}
Use this form to calculate distance in different metrics:
Distance={{ distance }}


First Name
Second Name
Gender
Male:
Female:
Description:
Users
First name
Last name
Gender
John
Doe
Male
Mary
Moe
Female
July
Dooley
Female


Toggle navigation
reely
Active
Back
AVAILABLE MIDI INTERFACES
Description
Action
{{interface.description}}
Select
Selected
REAL-TIME EVENT STREAM
Type
Channel
Key
Velocity
{{event.type}}
{{event.channel}}
{{event.key}}
{{event.velocity}}
ASSIGNMENTS
Channel
Source
Note(s)
Duration
{{channel}}
{{source}}
{{notes}}
{{duration}}


from blenderneuron.nrn.neuronsection import NeuronSection
from blenderneuron.rootgroup import RootGroup
from blenderneuron.activity import Activity
from neuron import h
[docs]class NeuronRootGroup(RootGroup):
[docs] def from_updated_blender_group(self, blender_group):
self.save_recording_params(blender_group)
# Update selected roots and their children
for blender_root in blender_group["roots"]:
sec_name = self.node.rank_section_name(blender_root["name"])
if sec_name is not None:
section = self.roots[sec_name]
section.from_updated_blender_root(blender_root)
[docs] def from_skeletal_blender_group(self, blender_group, node):
self.node = node
self.name = blender_group['name']
self.save_recording_params(blender_group)
# Initialize selected roots and their children
for blender_root in blender_group["roots"]:
section = NeuronSection()
section.from_skeletal_blender_root(blender_root, group=self)
if section.name != '':
self.roots[section.name] = section
# Clear previously recorded activity on h.run()
self.fih = h.FInitializeHandler(self.clear_activity)
# Setup to collect activity during h.run()
self.create_collector()
[docs] def save_recording_params(self, blender_group):
self.record_activity = blender_group["record_activity"]
self.record_variable = blender_group["record_variable"]
self.recording_granularity = blender_group["recording_granularity"]
self.recording_period = blender_group["recording_period"]
self.recording_time_start = blender_group["recording_time_start"]
self.recording_time_end = blender_group["recording_time_end"]
[docs] def create_collector(self):
"""
Greates a pair of NetStim and NetCon which trigger an event to recursively collect the activity of the group
segments. This method does nothing if group.record_activity is False
"""
if self.record_activity:
collector_stim = h.NetStim(0.5)
collector_stim.start = self.recording_time_start
collector_stim.interval = self.recording_period
collector_stim.number = 1e9
collector_stim.noise = 0
collector_con = h.NetCon(collector_stim, None)
collector_con.record((self.collect))
self.collector_stim = collector_stim
self.collector_con = collector_con
[docs] def collect(self):
"""
Based on the group's color level, gathers the values of the group's collect_variable. This method is called
at regular times during the simulation. See :any:`create_cell_group()` for details.
:return: None
"""
time = h.t
if time < self.recording_time_start or \
(self.recording_time_end != 0 and time > self.recording_time_end):
return
self.activity.times.append(time)
level = self.recording_granularity
# Recursively record from every segment of each section of each cell
if level == '3D Segment':
for root in self.roots.values():
root.collect_segments_recursive()
# Recursively record from the middle of each section of each cell
elif level == 'Section':
for root in self.roots.values():
root.collect(recursive=True)
# Record from the middle of somas of each cell
elif level == 'Cell':
for root in self.roots.values():
root.collect(recursive=False)
# Record from the somas of each cell and compute their mean
else:
variable = self.record_variable
# Compute the mean of group cell somas
value = 0.0
for root in self.roots.values():
value += getattr(root(0.5), variable)
value = value / len(self.roots)
self.activity.values.append(value)


If-less programming
I recently watched a Google tech talk called “The Clean Code Talks — Inheritance, Polymorphism, & Testing”, and I was amazed how Misko Hevery explained that ifs are a smelly thing in a Object Oriented language.
Being fascinated by the idea, I decided to google it, and I was surprised that if-less programming is a pretty popular topic. I noticed a response to a stackoverflow question which stated:
An “if” statement is an abomination in an Object Oriented language. Why? Well, an OO language is composed of classes, objects and methods, and an “if” statement is inescapably none of those. You can’t write “if” in an OO way. It shouldn’t exist. Conditional execution, like everything else, should be a method. A method of what? Boolean.
Any Smalltalk-er knows about this thing, because there are no if statements in Smalltalk. In this language, the Boolean class has ifTrue
and ifFalse
methods, which accept blocks which will be executed depending on the value of the boolean expression. This feels at least, a bit weird and unclear to me, so I decided to investigate.
The Reasons
It is obvious that we can’t avoid conditionals, especially when comparing primitive data types. But most of the time it is not considered a good practice to use ifs in a Object-Oriented language. So what is really wrong with conditionals in a Object Oriented language?
Polymorphism
The main and most strong idea which I got from if-less programming is simple: If you use a lot of if statements, you’re doing polymorphism wrong. Here is a simple (and dumb) example:
class Printer
def print (file)
case file.type
when :docx
print_office_word(file)
when :pdf
print_pdf(file)
end
end
end
Notice here that I used a switch
statement, it’s basically the same as using ifs. But let’s concentrate on the example. Why this class is bad? Well, for several reasons.
Ctrl-C, Ctrl-V
If the behaviour in the described object is complex enough, this switch will pop up all over the place. Image you will add a new method to the Printer
class:
def get_meta_info (file)
# gotta do that switch here
# good thing I have the clipboard
end
Besides the same switch
, you will have to add methods to process each file type which your Printer
knows about.
Extensibility
It is very hard to extend code which has a lot of branches, because chances are that the difference in behaviour between these branches is pretty big.
The right way
To avoid unnecessary conditions and headaches, our Printer
class should look like this:
class Printer
def print(file); end
def get_meta_info(file); end
end
class PdfPrinter < Printer
def print (file)
#
end
def get_meta_info (file)
#
end
end
class MSWordPrinter < Printer
def print (file)
#
end
def get_meta_info (file)
#
end
end
Language features
In a lot of cases, avoiding conditions is easy, because there are language constructs which can do the same thing. Most of the time these constructs are present for a important reason – it’s a better way to do things. Let’s look at several of them. I used Ruby in the examples, but this applicable to any good OO language.
Filter data
Any decent OO languages has means to easily filter data, you don’t need ifs to do that:
# I slept during functional classes
collection.each {|item| result << item if item.condition? }
A very stupid example, but it should make the point. What we should have used is:
result = collection.select(&:condition?)
Processing errors
If you got a method which can fail, you might be tempted to do something like this:
result = do_something()
if result == nil
#something is wrong
else
#process
end
It is better that you method raises errors in case something goes wrong. It improves readability, adds meaning, and describes what the system actually does:
begin
result = do_something()
rescue FileSystemError
#disk is full
rescue NetworkError
#no internet connection
end
Default values
You want to keep a default value for a variable unless it is assigned, you might want to do something like this:
def method (object)
if object.property
param = object.property
else
param = default_param
end
end
You did repeat yourself, wrote 3 lines, what you should have written is:
def method (object)
param = object.property || default_param
end
Testing
One of things which can suggest that things got to fishy in your implementation, is how hard is to test your objects. Classes with a lot of conditions require a lot of test cases and a lot of setup code. If your behaviour were properly isolated and subclassed, then your test would be very simple and with minimum setup code.
By having small, specific objects, each time you have to test a class, you are testing an aspect of you system, not a behaviour.
Conclusion
The idea of if-less programming is very interesting and provokes to thought. As any other good idea, it should be not taken to extremes. Any language construct must be used when it is the more reasonable thing to do. I like the fact that the presence of if-s can indicate a bad OO design.


You have new answer to your question "{{question_title}}".
You can view new answers on this question here.
Best regards, Your Hasker Team


ADMIN
menu
Update Inventory
Auto-allocation
Pending Deliveries
Historical allocation
Logout
Update Inventory
Auto-allocation
Pending Deliveries
Historical allocation
Logout
Refresh
Confirm Delivery
Beneficiary
Food Category
Food Type
Quantity
Unit of Measurement
Beneficiary Address
Tan Ah Seng
Condensed Milk
Condiments
150
gram
100 Ang Mo Kio Ave 6
Tan Eh Seng
Salmon
Canned food
350
gram
107 Ang Mo Kio Ave 6


What learnings did you take from the chapter?
First and foremost, I have learned that emotional intelligence is learned. While it may come more naturally to some, we can train ourselves to be more emotionally intelligent. The neuroplasticity of the brain allows us to become more self-aware, more empathetic, more motivated, and better at self-regulating. This can be done through practising mindfulness, even for just a couple of minutes a day.
How did you find the two minutes of mindfulness?
I think two minutes of mindfulness is a good idea. People can easily spare two minutes a day without being distracted, and it's not an overwhelming amount of time to dedicate to something you might not ordinarily do.


One of the leading voices at Komodo Platform recently announced the launch of ChainZilla – a company focused on enterprise solutions for blockchain deployment, ICO management, and p2p app development. In 2016, the Komodo project was born out of the need to create true decen...


ShunSin to ramp up capex in 2020 for SiP capacity expansion
by Julian Ho, Taipei; Willis Ke, DIGITIMESShunSin Technology, Foxconn Technology Group's IC backend service affiliate, will be ramping up its capex next year to better meet growing demand for packaging high-speed fiber-optic modules as well as SiP service for 5G mobile communication modules, according to company chairman Frank Hsu.
High-speed fiber optical modules now contribute nearly 50% of the firm's revenues, followed by 22% for 3D biometric sensing modules with high gross margins, and 20% for SiP services for handset-use sensors, RF-FEM (radio frequency front-end modules) and PA-FEM (power amplifier FEM).
Hsu said demand for 5G RF and PA modules is expected to surge significantly along with 5G commercialization, prompting his company to boost its capex for 2020 to a high of NT$1.5 billion (US$49.12 million) to expand SiP capacity and increase optical-fiber modules processing equipment.
Hsu said ShunSin will not rule out additional investments in developing high-end double-side SiP technology and AiP (antenna in package) solution in 2020 for processing ever-slimmer peripheral ICs needed for 5G handsets.
The company has landed SiP packaging orders from the world's top-4 handset PA components makers, and is likely to add Chinese PA chip designers as its clients in 2020.
SunSin is also expected to gain significantly from demand for RF-FEMs for use in 5G handsets and base stations, servers, and datacenters in 2020 and beyond.
The company has also indirectly tapped into the supply chains of web giants in the US and China, and is poised to reap well from mounting demand for 400G optical transceiver modules in 2020 from datacenter operators.


Man Utd favourites for €40m Swede as Atalanta chief makes admission
Manchester United are reported to be closing on a swoop for highly-rated Sweden midfielder Dejan Kulusevski with their hopes given a further lift following a big admission from his parent club Atalanta.
The 19-year-old, who is owned by Atalanta, has hit two goals and five assists in 13 games so far this season during his loan stint with Parma and that had Wolves and Southampton scouts checking on his progress.
But United were reported to have earmarked him as a potential recruit last week after a scout delivered a glowing reference on the player and it’s claimed they have again had Kulusevski watched over the latest round of international fixtures.
And while The Sun also credits Arsenal with an interest in the player, reports in the Italian media suggest it is United leading the way and talk of a transfer to Old Trafford, most likely in summer 2020, is beginning to gather pace.
And it seems Atalanta director of sports Giovanni Sartori is resigned to losing the player come the end of the season after he admitted they’d find it difficult to turn down a big-money bid for his services.
“Dejan is a great player. I hope that you can see him with Atalanta, it would also be an achievement for our youth system,” he told Bergamo based newspaper L’Eco. “But if he continues the way the season began, I imagine it will be something difficult to see.”
Kulusevski, who has largely operated on the right for Parma this season, joined Atalanta from Swedish club Brommapojkarna in 2016 and is rated at around €40m by the Serie A side.


50% off your favorite product
By: Prada
Valid until: tomorrow
Click here to Reedem Online
This Product is the best product you will ever encounter. Designed by the most talented product designers in the world, we bring it to you today for you to take.


ABOUT ME
El-rophi Skwaila is a young man from a humble family. He has 5 siblings. Passionate about God, Life and Humanity Always striving for more and loves to keep a small circle of friends. I recently enrolled to Moringa and i am so determined to go all the way to core. The experience has been fantastic. I am very single and i love to play computer games.
MY PERSONAL PROJECTS
This is a project that describes all my favorite things in the planet. Places i have been to and possessoins i hold dear to me.
This is a project on a holiday resort and how we offer the best services to our customers
This app we handle your travel journeys and all your movements in the countries and cities you go. also help you with descriptions in the country.


Rogen to join Price is Right - Entertainment News
by WENNSeth Rogen and David Boreanaz will put their game show skills to the test for a star-studded Christmas edition of TV favourite The Price is Right next month.
The stars will join host Drew Carey for The Price Is Right at Night: A Holiday Extravaganza on Dec. 22 and 23.
Boreanaz will be playing to benefit charity the Headstrong Project, which provides mental health treatment for post-9/11 veterans and their families, while Rogen will be hoping to raise cash for Hilarity for Charity, the Alzheimer's research and support non-profit he founded with his wife, Lauren Miller Rogen.


Blog hundred
By Prabhjot
Prabhjot Singh
Navigation
Home
About Me
My Projects
XML Feed
Data Stack
How to Install SSL Certificate on NGINX
»
20 Jul 2019
Top 10 Python libraries of 2016
»
29 Dec 2016
get Month Name [CF]
»
11 Jun 2016
Find the number of even digits in the given integer [CF]
»
11 Jun 2016
Find Substrings for line Encoding [CF]
»
11 Jun 2016
CensorThis - Censor the words [CF]
»
22 May 2016
notPaired [CF]
»
22 May 2016
Reverse Bit [CF]
»
22 May 2016
Python Simple Ciphertext
»
21 May 2016
Python Crazy Decrypter has been Released
»
21 May 2016
Javascript Validator for Input Number
»
26 Apr 2016
Setup Django in apache2 Raspberry Pi
»
20 Apr 2016
Adding BroadCast Mail to All Users Registered inside Django Admin
»
20 Apr 2016
Custom redirect urls django
»
20 Apr 2016
Replace backend gmail to Postmarkapp for Django
»
19 Apr 2016
Download recrusive files inside index-of in Linux using wget
»
19 Apr 2016
Python Permutations
»
19 Apr 2016
Simple bash scripting for login before open the terminal
»
19 Apr 2016
Remove all files .pyc with recrusive method
»
19 Apr 2016
Email BackEnd with SMTP Gmail
»
19 Apr 2016
«
First
1
(current)
2
Last
»


[gecode-users] Singleton Arc Consistency Preprocessing
Tyrel Russell
tcrussel at cs.uwaterloo.ca
Mon Apr 4 16:50:36 CEST 2011
Hi,
Is there a preferred method for applying singleton arc consistency
preprocessing in Gecode?
The idea that I was considering was to fix each variable value pair and
determine if a nogood is generated by applying arc consistency with the
variable-value fixed. If so, add this nogood to a set of stored nogoods
and enforce the new set of constraints, iterate through this process
until no further nogoods are found.
There seem to be two problems with this approach. First, it seems to be
necessary to only add constraints in the constructor of a Space object
or during search which means generating a specific constructor for this
purpose. Is there a better way to add constraints to a Space object on
the fly? Second, there is an issue of efficiency. There would a large
number of calls to my hypothetical constructor which may not be efficient.
I know that singleton arc consistency preprocessing was removed from
Gecode several versions ago. Was this because it was too expensive to
be effective?
Thanks,
Tyrel Russell
More information about the users
mailing list


The picker uses the following css classes to style the picker.
The outer element for the widget.
The element for the calendar view header, next and previous actions.
switch
The element for the action to change the calendar view. E.g. month -> year.
The elements for all the toolbar options.
switch
Disables the hover and rounding affect.
sideBySide
Applied to the widget element when the side by side option is in use.
previous
The element for the action to change the calendar view, e.g. August -> July
next
The element for the action to change the calendar view, e.g. August -> September
disabled
Applied to any action that would violate any restriction options. ALso applied to an input field if the disabled
function is called.
old
Applied to any date that is less than requested view, e.g. the last day of the previous month.
new
Applied to any date that is greater than of requested view, e.g. the last day of the previous month.
active
Applied to any date that is currently selected.
dateContainer
The outer element for the calendar view.
decadesContainer
The outer element for the decades view.
decade
Applied to elements within the decades container, e.g. 2020, 2030
yearsContainer
The outer element for the years view.
year
Applied to elements within the years container, e.g. 2021, 2021
monthsContainer
The outer element for the month view.
month
Applied to elements within the month container, e.g. January, February
daysContainer
The outer element for the calendar view.
day
Applied to elements within the day container, e.g. 1, 2..31
calendarWeeks
If display.calendarWeeks is enabled, a column displaying the week of year is shown. This class is applied to each
cell in that column.
dayOfTheWeek
Applied to the first row of the calendar view, e.g. Sunday, Monday
today
Applied to the current date on the calendar view.
weekend
Applied to the locale's weekend dates on the calendar view, e.g. Sunday, Saturday
timeContainer
The outer element for all time related elements.
separator
Applied the separator columns between time elements, e.g. hour *:* minute *:* second
clockContainer
The outer element for the clock view.
hourContainer
The outer element for the hours selection view.
minuteContainer
The outer element for the minutes selection view.
secondContainer
The outer element for the seconds selection view.
hour
Applied to each element in the hours selection view.
minute
Applied to each element in the minutes selection view.
second
Applied to each element in the seconds selection view.
second
Applied AM/PM toggle button.
show
Applied the element of the current view mode, e.g. calendar or clock.
collapsing
Applied to the currently showing view mode during a transition between calendar and clock views
collapse
Applied to the currently hidden view mode.
inline
Applied to the widget when the option display.inline is enabled.
lightTheme
Applied to the widget when the option display.theme is light.
darkTheme
Applied to the widget when the option display.theme is dark.
isDarkPreferredQuery
Used for detecting if the system color preference is dark mode.


This is the first lamp from our company. We're making a huge collection of modern lamps in all categories from home use to office use.
04
05


Default
Sizing
Justified button groups
Vertical button groups
Split button dropdowns & variation
Menu alignment
Nested button groups
Multiple button groups


- dataErrorCallback(ResponseDataError) - Method in class com.valentine.esp.ValentineClient
-
Performs a callback to the object registered for data errors.
- defaultTMFState() - Static method in class com.valentine.esp.utilities.V1VersionSettingLookup
-
This method will determine if the current version of the V1 will have the TMF/Junk-K Fighter feature
turned on by default or if the feature is off by default.
- DemoData - Class in com.valentine.esp.demo
-
This is the class that handles all the demo packets sent to it from the ESP Client.
- DemoData() - Constructor for class com.valentine.esp.demo.DemoData
-
- deregisterForAlertData(Object) - Method in class com.valentine.esp.ValentineClient
-
Stops the processing of the alert data from the Valentine One.
- deregisterForDisplayData(Object) - Method in class com.valentine.esp.ValentineClient
-
Removes the callback for the given object so it will no longer receive InfDisplayInfoData data structures to process.
- deregisterForNoDataNotification() - Method in class com.valentine.esp.ValentineESP
-
Deregister callbacks set up using registerForNoDataNotification.
- deregisterForPacket(PacketId, Object, String) - Method in class com.valentine.esp.ValentineESP
-
This method will deregister callback set up using registerForPacket.
- deregisterForPacket(PacketId, Object) - Method in class com.valentine.esp.ValentineESP
-
This method will deregister callback set up using registerForPacket.
- deregisterForStopNotification() - Method in class com.valentine.esp.ValentineESP
-
This removes all registrations for callbacks to be notified when the ESP client stops.
- deregisterNoDataCallback() - Method in class com.valentine.esp.ValentineClient
-
Removes the no data notification callback.
- deregisterNotificationFunction() - Method in class com.valentine.esp.ValentineClient
-
Removes the notification callback data.
- deregisterStopNotification(Object) - Method in class com.valentine.esp.ValentineClient
-
Removes the registered stop notification callback information.
- describeContents() - Method in class com.valentine.esp.bluetooth.BluetoothDeviceBundle
-
- Devices - Enum in com.valentine.esp.constants
-
This enum lists all the different types of devices that can be connected to the ESP bus and their origin addresses.
- DevicesLookup - Class in com.valentine.esp.constants
-
This utility class converts a byte value to a Devices value
- DevicesLookup() - Constructor for class com.valentine.esp.constants.DevicesLookup
-
- doCallback(Object, String, Class<T>, Object) - Static method in class com.valentine.esp.utilities.Utilities
-
This utility function is the heart of the callbacks used in this library.
- doFactoryDefault(Devices) - Method in class com.valentine.esp.ValentineClient
-
Sends a RequestFactoryDefault packet to the indicated device.
- doNotification(String) - Method in class com.valentine.esp.ValentineClient
-
Performs the notification callback to the registered notification object.
- doSearchCallback(InfDisplayData) - Method in class com.valentine.esp.ValentineClient
-
This is the Callback registered with the system to determine which of the Valentine One types we have.
- doUnsupportedDeviceCallback() - Method in class com.valentine.esp.ValentineESP
-
Notifies who ever is registered to receiver the Unsupported Device callback.


Meshes
COMPAS meshes are polygon meshes with support for n-sided polygonal faces. the meshes are presented using a half-edge data structure. In a half-edge data structure, each edge is composed of two half-edges with opposite orientation. Each half-edge is part of exactly one face, unless it is on the boundary. An edge is thus incident to at least one face and at most to two. The half-edges of a face form a continuous cycle, connecting the vertices of the face in a specific order forming a closed n-sided polygon. The ordering of the vertices determines the direction of its normal.
Check out the docs for detailed information about the mesh and the available
functionality: compas.datastructures.Mesh
.
Making a mesh
>>> from compas.datastructures import Mesh
>>> mesh = Mesh()
Adding vertices and faces
>>> a = mesh.add_vertex()
>>> b = mesh.add_vertex(x=1.0)
>>> c = mesh.add_vertex(x=1.0, y=1.0)
>>> d = mesh.add_vertex(y=1.0)
>>> f = mesh.add_face([a, b, c, d])
Note
Edges cannot be added explicitly. They are added automatically when faces are added.
Identifiers
All vertices of a mesh have a unique ID, the “key” of the vertex. Keys are integers, and every vertex is assigned a number corresponding to the order in which it is added. The number is always the highest number used so far, plus one.
>>> print(a, type(a))
0 <class 'int'>
>>> b == a + 1
True
IDs can also be assigned explicitly.
Faces are also assigned a unique integer id, and keys be assigned explicitly.
>>> print(f, type(f))
0 <class 'int'>
Constructors
Meshes can be constructed from data contained in files. Currently, the
following formats are supported: obj
, ply
, stl
.
>>> mesh = Mesh.from_obj('faces.obj')
>>> mesh = Mesh.from_ply('bunny.ply')
>>> mesh = Mesh.from_stl('cube.stl')
COMPAS provides a set of sample files that can be used during development, or simply to make examples like the ones in this tutorial.
>>> mesh = Mesh.from_obj(compas.get('faces.obj'))
>>> mesh = Mesh.from_ply(compas.get('bunny.ply'))
>>> mesh = Mesh.from_stl(compas.get('cube.stl'))
Data
All data accessors return objects that are meant to be iterated over (dictionary key iterators or generator objects). Storing the data in lists that can be reused multiple times must be done explicitly.
Iteration
>>> mesh.vertices()
<dict_keyiterator at 0x60d74f278>
>>> for key in mesh.vertices():
... print(key)
...
0
1
2
3
...
32
33
34
35
>>> mesh.faces()
<generator object Mesh.faces at 0x60d723e08>
>>> for key in mesh.faces():
... print(key)
...
0
1
2
3
...
21
22
23
24
>>> mesh.edges()
<generator object Mesh.edges at 0x60d723a98>
>>> for key in mesh.edges():
... print(key)
...
(0, 1)
(0, 6)
(1, 7)
(1, 2)
...
(31, 32)
(32, 33)
(33, 34)
(34, 35)
Lists
>>> list(mesh.vertices())
[0, 1, 2, 3, ... 32, 33, 34, 35]
>>> list(mesh.faces())
[0, 1, 2, 3, ... 21, 22, 23, 24]
>>> list(mesh.edges())
[(0, 1), (0, 6), (1, 7), (1, 2), ... (31, 32), (32, 33), (33, 34), (34, 35)]
Attributes
All vertices, faces, and edges automatically have the default attributes
specified by the mesh class. The default vertex attributes are xyz
coordinates, with x=0
, y=0
, and z=0
. Edges and faces have no
default attributes.
To change the default attributes, do:
>>> mesh.update_default_vertex_attributes(z=10, is_fixed=False)
>>> mesh.update_default_face_attributes(is_loaded=True)
>>> mesh.update_default_edge_attributes(q=1.0)
Getting attributes
>>> mesh.vertex_attribute(mesh.get_any_vertex(), 'x')
2.0
>>> mesh.vertices_attribute('x')
[0.0, 2.0, 4.0, 6.0, ... 4.0, 6.0, 8.0, 10.0]
>>> mesh.vertices_attributes('xyz')
[[0.0, 0.0, 0.0], [2.0, 0.0, 0.0], [4.0, 0.0, 0.0], [6.0, 0.0, 0.0],
...
[4.0, 10.0, 0.0], [6.0, 10.0, 0.0], [8.0, 10.0, 0.0], [10.0, 10.0, 0.0]]
Setting attributes
>>> mesh.vertex_attribute(0, 'is_fixed', True)
>>> mesh.vertex_attributes(0, ('is_fixed', 'z'), (False, 10))
>>> mesh.vertices_attribute('z', 10)
>>> mesh.vertices_attributes(('z', 'is_fixed'), (0, False))
Connectivity
>>> for key in mesh.vertices():
... print(key, "(neighbors)", mesh.vertex_neighbors(key, ordered=True))
... print(key, "(faces)", mesh.vertex_faces(key, ordered=True))
...
0 (neighbors) [6, 1]
0 (faces) [0]
1 (neighbors) [0, 7, 2]
1 (faces) [0, 1]
2 (neighbors) [1, 8, 3]
2 (faces) [1, 2]
3 (neighbors) [2, 9, 4]
3 (faces) [2, 3]
...
32 (neighbors) [33, 26, 31]
32 (faces) [22, 21]
33 (neighbors) [34, 27, 32]
33 (faces) [23, 22]
34 (neighbors) [35, 28, 33]
34 (faces) [24, 23]
35 (neighbors) [29, 34]
35 (faces) [24]
>>> for fkey in mesh.faces():
... print(fkey, "(vertices)", mesh.face_vertices(fkey))
... print(fkey, "(half-edges)", mesh.face_halfedges(fkey))
... print(fkey, "(neighbors)", mesh.face_neighbors(fkey))
...
0 (vertices) [0, 1, 7, 6]
0 (half-edges) [(0, 1), (1, 7), (7, 6), (6, 0)]
0 (neighbors) [1, 5]
1 (vertices) [1, 2, 8, 7]
1 (half-edges) [(1, 2), (2, 8), (8, 7), (7, 1)]
1 (neighbors) [2, 6, 0]
2 (vertices) [2, 3, 9, 8]
2 (half-edges) [(2, 3), (3, 9), (9, 8), (8, 2)]
2 (neighbors) [3, 7, 1]
3 (vertices) [3, 4, 10, 9]
3 (half-edges) [(3, 4), (4, 10), (10, 9), (9, 3)]
3 (neighbors) [4, 8, 2]
...
21 (vertices) [25, 26, 32, 31]
21 (half-edges) [(25, 26), (26, 32), (32, 31), (31, 25)]
21 (neighbors) [16, 22, 20]
22 (vertices) [26, 27, 33, 32]
22 (half-edges) [(26, 27), (27, 33), (33, 32), (32, 26)]
22 (neighbors) [17, 23, 21]
23 (vertices) [27, 28, 34, 33]
23 (half-edges) [(27, 28), (28, 34), (34, 33), (33, 27)]
23 (neighbors) [18, 24, 22]
24 (vertices) [28, 29, 35, 34]
24 (half-edges) [(28, 29), (29, 35), (35, 34), (34, 28)]
24 (neighbors) [19, 23]
Geometry
There are many functions for inspecting the geometry of the mesh.
Mesh.vertex_coordinates
Mesh.vertex_normal
Mesh.vertex_laplacian
Mesh.edge_length
Mesh.edge_point
Mesh.edge_vector
Mesh.edge_direction
Mesh.face_centroid
Mesh.face_normal
Mesh.face_plane
Mesh.face_frame
Mesh.face_area
Serialisation
A COMPAS mesh can be converted to a data dict that contains all the information required to recreate an instance of the type class:compas.datastructures.Mesh without loss of information.
>>> data = mesh.to_data()
>>> mesh = Mesh.from_data(data)
This data can be serialised to various formats such that it can be stored in a file and saved for later use.
Json
The JSON
format is used by compas.rpc
and compas.remote
,
which is still under construction, to send data back and forth
between a client and a remote service.
In case of compas.utilities.XFunc
, JSON
is used to comunicate
with a CPython subprocess.
>>> mesh.to_json('mesh.json')
>>> mesh = Mesh.from_json('mesh.json')
Pickle
>>> mesh.dump('mesh.pickle')
>>> mesh.load('mesh.pickle')
>>> s = mesh.dumps()
>>> mesh.loads(s)
Visualisation
import compas
from compas.datastructures import Mesh
from compas_plotters import MeshPlotter
mesh = Mesh.from_obj(compas.get('faces.obj'))
plotter = MeshPlotter(mesh)
plotter.draw_vertices(
facecolor={key: '#ff0000' for key in mesh.vertices_on_boundary()},
radius={key: 0.2 for key in mesh.vertices_on_boundary()},
text={key: str(key) for key in mesh.vertices_on_boundary()})
plotter.draw_edges(
color={key: '#ff0000' for key in mesh.edges_on_boundary()},
width={key: 3 for key in mesh.edges_on_boundary()})
plotter.draw_faces(
text={key: str(key) for key in mesh.faces_on_boundary()})
plotter.show()
.. figure:: ../../dist/docs/plot_directive/tutorial/meshes-1.png
:class: figure-img img-fluid
.. figure:: ../../dist/docs/plot_directive/tutorial/meshes-1.pdf
.. image:: ../../dist/docs/plot_directive/tutorial/meshes-1.png
Algorithms
…


 I joined the team in June 2020 as a digital content fellow.
One of the first things I did on the team was to audit the accessibility compliance of our website and digital content. We have a pretty vibrant color pallet, but I noticed that not all color combinations we used were optimized for accessibility - particularly important since we are a social justice org. Using WCAG, I drafted a best practices strategy for our color combinations moving forward.
Other core work I've done at OCV is around designing content (in collaboration with the rest of the OCV team) for social media. With a following of over 18k on Instagram, the content we put out is seen by a lot of eyes. (For examples of OCV's social media, please visit OCV's Instagram, Facebook and Twitter pages).
A large project I worked on was the Mapping Your Climate Story - an interactive web application that posed a series of questions to the use to determine where they fell on an axis of privilege, ranging from 'less' to 'more'.
A screenshot of the Mapping Your Climate story project I worked on with our digital content director
The position of users moves along an axis representing the relative privileges they have based on a series of questions. Stories and other resources are interwoven into the exercise.
Other projects include producing video content, maintaining OCV's squarespace site and I'm currently developing another interactive web application as a companion piece to OCV's forthcoming documentary, Police in Our Climate.


Tamales are one of the most typical dishes in Colombia (South America).
Usually a tamale is served for breakfast with hot chocolate and warm bread rolls;
however you can present this delicious meal for luch or dinner as well.
Although this is not an easy recipe, sure you will find it very tasty.


My experience occured about a year and a half ago, when I was 14 and heavily into drinking and smoking marijuana. . .I was in the middle of a football camp week, and that night I had a few friends over. We were basically bored, until one of my other friends called my up and asked if I wanted to go smoke some weed, and threw out there that he had some dust, so I happily agreed. We walked our asses about a mile to some bridge in the woods next to a lake.
 We then stand up and about 5-10 minutes later we're really feeling it, my friend sayss, 'dude, just pretend we're sitting in some big ass reclining chairs watching TV' so I did it. . .it was soooo comfy and real feeling. My other friends(who were sober) said we sat in the most uncomfertable looking positions for about 20 minutes.
After that we journied off the bridge into a trail in the woods, my friend starts doing to siccest impression of the Corcodile Hunter, he was like, 'look over there! it's a three-toed sloth with Goneria' and I get down on all fours and start doing all the habbits he is saying it does. . .including sexing my friends mother and walking extremely slowly(later my friends told me i was crawling through glass not even phasing me).
We continued down the trail until we looked out onto the lake and saw some floating lily pads. . .or so we thought. We kept focusing on these things until we got closer, and they started moving! This was all in the dark so me and my friend start bugging out thinking it was a submarine coming up from the depths. . .THEN! we instantly found ourselves in the middle of the Vietnam War for some reason, shooting 'charlies'.
Later down the trail we hit some LONG grass which was really bugging us because it felt like bugs on our legs, but my friend says, 'man, we cant feel this, our legs are covered in foam'. . .and that instant the irritation dispeared, it was great. A few feet more and we found ourselves in one of those old Mario games for nintendo, picturing it seemed so real, like I was really in it. . .
 I walked right into the raised bridge. . .5 minutes later I noticed I had a huge gash on my arm, and continued to go off on my friend for about 5 more minutes about how they should have told me the bridge was there.
Man that was great. . .I haven't done it since, but I probably soon will.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


Title of this LTR pane has been changed
Title of this pane with no text direction specified (inherited) has been changed
Explicit LTR text direction of content pane
Inherited RTL text direction of content pane tab
Explicit LTR text direction of content pane
Inherited RTL text direction of content pane tab
Explicit 'auto' text direction of content pane
Explicit RTL text direction of content pane


module Marmot
Overview
Marmot is a non concurrent scheduler.
Marmot schedules tasks on three possibles ways:
- on a periodic span (
Marmot.repeat
) - every day at a given time (
Marmot.cron
) - when a value is available on a channel (
Marmot.on
)
Tasks are all executed on the same fiber.
This means two things: first, you don't have to worry about concurrency
(your tasks can share objects which does not support concurrency, like
HTTP::Client
), and second, they must not block (too much).
If you want to execute jobs concurrently, you must spawn a new fiber inside your
tasks.
A task receive a unique parameter which is an object representing itself.
It can be canceled with Marmot::Task#cancel
, from inside or outside the task.
A canceled task can never be started again.
Tasks do not start when created.
Instead, the main entrypoint is Marmot.run
, which blocks while there are tasks
to run. If there is no tasks to run, or they are all canceled, it stops.
The blocking behavior can also be stopped by calling Marmot.stop
.
As Marmot.run
is blocking, you probably want to call Marmot.stop
from a task
or from another fiber.
When stopped, the tasks are not canceled and they will run again if Marmot.run
is called again.
To cancel all the tasks there is Marmot.cancel_all_tasks
.
If the computer's clock changes, the tasks scheduled on a specific time will not be scheduled again. Their next runs will be triggered at the time before the clock changes, but the next ones will be correctly scheduled.
Extended Modules
Defined in:
log.crmarmot.cr
tasks.cr
Constant Summary
-
Log =
::Log.for(self)
-
VERSION =
"0.3.0"
Instance Method Summary
-
#at(time : Time, &block : Callback) : Task
Runs a task once at a given time.
-
#cancel_all_tasks : Nil
Cancels all the tasks.
-
#every(span : Time::Span, first_run = false, &block : Callback) : Task
Runs a task every given span.
-
#every(span : Symbol, *, day = 1, hour = 0, minute = 0, second = 0, &block : Callback) : Task
Runs a task every span at the given day, hour, minute and second.
-
#on(channel, &block : Callback) : Task
Runs a task when a value is received on a channel.
-
#run : Nil
Starts scheduling the tasks.
-
#stop
Stops scheduling the tasks.
Instance Method Detail
Runs a task every given span.
If first run is true, it will run as soon as the scheduler runs. Else it will wait span time before running for first time.
Runs a task every span at the given day, hour, minute and second.
Marmot.every(:hour, hour: 16, minute: 30, second: 30) # will run every hour at 30:30 (the hour parameter is ignored)
Marmot.every(:day, hour: 15) { ... } # will run every day at 15:00:00
Marmot.every(:month, day: 15) { ... } # will run every month at midnight
Marmot.every(:month, day: 31) { ... } # will run every month THAT HAVE a 31th day at midnight
Runs a task when a value is received on a channel.
To access the value, you need to restrict the type of the task, and use
OnChannelTask#value
.
channel = Channel(Int32).new
Marmot.on(channel) { |task| puts task.as(OnChannelTask).value }


The day after I came back from Australia, I started my new job at Coupa Software. I'm absolutely loving it at the moment because of the awesome people and the amount of software I'm learning. Here's just a few that I've picked up in my first week that I'd like to jot down.
Here's one article about it. It really really helps out with testing.
script/spec for an individual test
render_to_string - returns string, use with send_data
request.xhr? - if request is ajax-y
ActiveRecord::Base.establish_connection(RAILS_ENV.to_sym)
connection = ActiveRecord::Base.connection
options[:tables] ||= connection.tables.reject { |t| %w(schema_info
sessions).include?(t) }


What's New
Build Notes (most recent first)
9.0
9.5.4
- Add Mac support for the full Amzi! Prolog + Logic Server + IDE
- Added Linux support for CentOS64 (binary compatible with RHEL)
9.5.2
- Added UTF-8 support as a Prolog flag. The set_prolog_flag(utf8i0, on) directive will cause all I/O to be encoded and decoded as UTF-8 strings. This is especially useful for Web applications using expanded character sets.
- Re-introduced the original Amzi! IDE, wide.exe in amzi/apls/bin. The original IDE was a relatively simple Windows based IDE for the development and testing of Prolog programs as an alternative to the full Eclipse-based IDE. The original IDE is well suited for student use as it doesn't require the overhead of learning the Eclipse professional development environment.
9.4.4
- Changed the basic product options which are reflected in the purchase options and the activation of the software. The software can be activated as free, licensed or evaluation. The free version includes just the IDE and is ideal for students learning the Prolog language. The licensed and evaluation versions have the full features of the product, equivalent to the old 'Professional' edition, although the evaluation versions expire after a certain time. There are no longer separate 'Personal' and 'Developer' editions.
9.2.2
- Reworked the basic distribution directory structure to better reflect Amzi! products. There is now a core directory, apls, with the basic Prolog system, and an IDE directory at the same level, which then uses that Prolog core. Similarly, ARulesXL, now uses that same core directory rather than having parallel versions of the same files.
- Brought the Linux version up to date.
- Released a NetBSD version, sans IDE.
- Moved to a simpler install that is more consistent across platforms.
- Synchronized the 32-bit and 64-bit versions for Windows.
9.0.1
- Updated to work with Eclipse 3.5
- Fixed some causes of sporatic thread interaction bugs that caused some grief using the source code debugger.
- Created 64-bit version for Windows.
8.0
8.0.6
- Relaxes many of the technical licensing restrictions, making it easier to move copies around and maintain valid licenses.
- Adds additional licensing capabilities to support site licenses for universities and corporations.
7.6
7.6.9
- In Eclipse, fix the listener finished message to appear at the proper time and place.
- In Eclipse debugger, eliminate the debug64_init error on backtracking.
- In Eclipse debugger, increase stability by ignoring debug command buttons during user input.
- In the Prolog engine, release the amzidll mutex on process detach.
7.6.8
- Made undefined_predicate a settable Prolog flag. It can now be fail (default)
or error, which throws an error.
- Fixed some error messages which were garbling predicate names in the message.
7.6.5
- Upgraded to Eclipse 3.2.2 and Java 1.6.
- Fixed additional instabilities when using the Eclipse Prolog Debugger and Listener by changing amzijni.dll to save the Java environment pointer when extended predicates are created instead of using the most recent environment pointer.
- Under Linux, fix inadvertently broken debugger in 7.6.4.
- When using extended predicates with Java, there are now 3 options for determining which JNI environment pointer is used to call extended predicates. See the Java Class for details. This change has implications and offers additional options for server environments with extended predicates that pool those predicates on startup in threads that no longer exist when the predicates are actually used.
7.6.4
- Fixed Eclipse hangs during listener output. Added Debug Info command on listener to identify any further problems.
7.6.3
- Fixed broken Amzi! documentation links under Eclipse Help.
- Fixed Eclipse under Ubuntu Linux to not loop infinitely and to show the listener views.
7.6.2
- Added support in the debug interpreter and compiler for the basic preprocessor directives. The #define directive works for a simple value (number or word) or no value. Also supported are: #ifdef, #ifndef, #else, #endif, #undef and #error. The predefined macros __DATE__, __TIME__ and __LINE__ are supported.
- Fixed corner case bug in sub_string; sub_string(`abcdef`, 1, X, `abc`)
used to fail, now it succeeds with X = 3.
- Fixed cross referencer bug that erroneously reported user predicates called from modules as undefined.
- Fixed Eclipse bug that genereated error about missing com.amzi.prolog.doc plug-in when installing the Amzi! plug-ins into an existing Eclipse installation.
- Have the Eclipse Prolog editor color atoms in single quotes.
- Changed how module names are stored internally in the Prolog engine.
7.6.1
- Fixed Logic Server close to properly report any errors in the API log, and not retry closing again.
- Default the preprocessor to always be on per the documentation. It was on for the compiler and listener but not for other programs, like the cross referencer.
- Fixed bug in listener to have arrow keys properly bring back old command lines without generating null pointer errors.
- Fixed bug that did not recognize {} as an atom.
- Updated to Eclipse 3.2.1.
- Fixed Eclipse bug requiring a click on the Prolog Stack Frame to open the first source file when starting the source code debugger.
- Fixed Eclipse bug that said <terminated> on the launch name in the Debug View.
- Changed how extended predicates are called from Java by using the Java environment from the last Exec/Call/Redo instead of the environment when the extended predicate was added. This fixes a bug under IBM's JAVA50 when Logic Servers are created in one thread and used from another.
7.6.0
- Fix bug in serialization of LSException.
7.5.2 Beta Test
- Updated .NET interface DLL to use new 2.0 C++ syntax and make LSException serializable. This required changing the enumerated type names from exTYPE to exLSTYPE, pTYPE to pLSTYPE and dTYPE to dLSTYPE. Also the method GetType() in LSException was renamed to GetExceptType().
7.5.1 Beta Test
- Fixed crash when retracting the last fact in the dynamic database.
7.5.0 Beta Test
- Upgraded to .NET 2.0. This upgrades amzinet.dll and all Visual Studio solutions and projects in the LSAPIs, LSXs and samples.
- Upgraded to Eclipse 3.2. The Amzi! plug-ins do not support remote files as part of Prolog projects. The Prolog Welcome screen was removed.
- Eclipse 3.2 KNOWN BUG: When debugging an interpreted Prolog program, you must click on the '+' box in front of 'Prolog Debug Thread' to bring up the source code with the current line highlighted.
- In OSUtils, fail (by returning false) if environment variable does not exist.
7.4
7.4.12
- Fixed bug that caused trail space overflow when consulting a file containing 'call(Var)'.
- Changed list of files to exclude from build to be case-insensitive.
7.4.10
- For Unix (Linux and Solaris) Professional and Developer users, a new license key is needed for this release. Contact us with your user name and hostid to get a new key.
- Fixed bug in bagof which resulted in different results compiled versus interpreted when using bound variables in the goal parameter.
7.4.9
- Fixed bug that broke the debugger due to change in 7.4.8 .
7.4.8
- In Eclipse launch configurations, allow the specification of a pathname to a config file (.cfg) that is used when running or debugging a project.
7.4.7
- Fix null pointer bug in debug event handler in Eclipse. Include all mfc dlls in the install file.
7.4.6
- New License Manager supports getting license keys from the Amzi! website and improves license key transfer. Inconjunction with the new ecommerce database, license keys in larger organizations can be centrally ordered and managed.
7.4.5
- In the Eclipse Debugger truncate large variables to 500 characters, and clear port breakpoint annotations on terminate.
- Fix hang typing [Ctrl]-C in the Eclipse Prolog Listener after it is finished.
- Fix hang in listener and compiler when reading a .pro file with an unclosed comment (/* */)
7.4.1
- Linked files in Prolog projects work properly for run and debug.
- Under Eclipse 3.1.1 SDK and Amzi! Core for Windows 2000, fix linker failure/crash by removing amzijide.dll and alnk.dll.
- Unable to workaround Eclipse bug that rebuilds all open projects when starting a run or debug launch. The only known fix is to turn off "Build (if required) before launching" on the Eclipse Preferences | Run/Debug | Launching page.
- Allow relaunch of Run or Debug | Single File Interpreted by adding the appropriate page to the Launch Definition dialog.
- Fixed a bug in the Developer Edition that had allowed multiple Logic Servers in multiple processes.
7.4.0
- Eclipse now saves the last run or debug configuration that was executed. This lets you re-run your last run or debug listener from the Run History or Debug History menu or the the Run or Debug command buttons.
- Allow the Eclipse Prolog Listener to repeat the last run using the Run | Run History command.
- Fix exception handling in VB.NET examples. There is no longer a need to get the inner exception to retrieve error information.
7.3 Beta Test
7.3.2
- Fix hang when pressing the stop button in the Prolog Listener when backtracking through a goal (when waiting for a ; or .).
7.3.1
- In Eclipse, prompt to save files and build, if needed, before starting the Prolog Listener or Debug Listener.
- Change the Free Edition to run forever (instead of limited to 6 months).
7.3.0
- Update to Eclipse 3.1.
- Change the Listener Stop button to mean stop Prolog running or enter a [Ctrl]-C as user input.
- Changed the Debug Stop button to stop Prolog running (must type [Ctrl]-C to break at user input.
- Fix a variety of instabilities in the Listener and Debug Listener when terminating execution.
- Change the GetHead family of LSAPI calls to throw a bad list exception when
the term is not a list.
- Change the UnifyParm family of LSAPI C++ calls to return a term of 0 when
the unification fails.
- Fix a problem in Eclipse where the old contents of the listener are not
cleared out when a new listener is started.
7.2
7.2.6
- Change the GetHead family of LSAPI calls to throw a bad list exception when
the term is not a list.
- Change the UnifyParm family of LSAPI C++ calls to return a term of 0 when
the unification fails.
- Fix a problem in Eclipse where the old contents of the listener are not
cleared out when a new listener is started.
7.2.3 and 7.2.5
- Fix Eclipse crashes under Windows XP by using finer thread synchronization.
7.2.2
- Under Windows, amzi.dll is now thread safe, so you can call the Logic Server
from multiple threads simultaneously.
7.2.1
- Allow linked files to be used in Projects in Eclipse.
- Changed Developer and Professional Editions to use a hardware fingerprint.
A new web-based systems allows a license to be transferred as needed to another
PC and/or user.
7.2.0
- Added built-in numeric atom 'inf' for testing for floating point values
larger than the largest permitted.
- Fixed bug that prevented ; from initiating backtracking on keyboards that
require a shift to get a ;. The fix means that any character will, in fact,
initiate backtracking now except an Enter.
- Fixed spurious hangs in the Eclipse IDE.
7.1.0 Beta Test
- Add support for the next major version of Eclipse, 3.0. The Amzi! Eclipse
Plug-ins will now run under version 3.0 or later.
7.0
7.0.27
- Fix bug in unlock that did not allow entry of a new license key after the
old key has expired.
- Upgrade copy protection to avoid spurious hangs and exception reporting
problems with VC++ 7.1.
7.0.25
- In defiance of the ISO standard, changed unification between numbers so
that a float and an integer will unify if they have the same value.
7.0.21
- Fixed formatting of table of contents for Building Expert Systems in Prolog
under Eclipse.
- Fixed display of quoted values in Debug Variables view.
- When running the debugger multiple times, ensure the debug menu options
display matches the internal settings.
- Fix bug running out of Logic Servers when errors encountered in cross reference.
7.0.20
- Fixed dependency in amzijide.dll on mscv*71.dll's.
- Removed code that prompts to stop execution on error in VB 6 to resolve
rerun problem in VBA under Access and other MS-Office tools.
7.0.19
- Fixed problem in security code that disables the execution of distributed
applications after 6 months or when the system clock is changed.
7.0.18
- Added new LSAPI function LoadFromMemory to load an XPL file from memory.
This is useful for network applications where the XPL file is delivered in
a JAR or other binary archive. The host application extracts the XPL file
and passes it to the Logic Server for loading.
- Added new Java method LoadFromURL which uses LoadFromMemory to load an XPL
file from a JAR file or from the Internet. Also added a sample demonstrating
both LoadFromMemory and LoadFromURL.
- With .NET Framework 1.1, it is no longer necessary to copy amzi.dll (or
any other files) to the windows\system or system32 directory.
- Added C# pets callback sample illustrating writing Prolog extended predicates
in C#.
- Allow only aosutils.lsx to be loaded for the Free Edition.
- Fixed stack overflow crash under Windows when running the remote debugger
with Java applications.
- Updated many Windows projects to Visual Studio 2003 format.
- Added Tcl/Tk LSX that allow Prolog to call Tcl/Tk and Tcl/Tk to call Prolog.
This makes it easy to create graphical applications directly from the Prolog
environment. See Logic Server/LSX/TclTk documentation
for details.
- Added a Tcl/Tk sample, amzi/samples/tcltk/lb_query, that provides a simple
GUI front-end that allows queries of logicbases. It illustrates the use of
the ls_query Tcl command that returns a Tcl list of variable names and bindings.
- Added two new built-in query predicates, string_query/2
and varlist_query/3.
Each takes an input string with a query term in it and returns the resulting
variable names and bindings, as a string or list respectively. These are intended
for use from Logic Server applications to make it easier to pick up the values
of variables resulting from a query.
7.0.17
- Added unification with occurs check, finally.  The occurs check prevents
system crashes when a unification is attempted with cyclic terms, that is,
terms that refer to themselves. For example, the query ?- A = f(A), B = f(B),
A = B. will cause an internal stack overflow, resulting in a hard crash. With
occurs_check on, that query will simply fail. Occurs checking is not
normally done in Prolog because it adds about 10% overhead to unification,
and is rarely necessary (see two bullets down).
- The ISO standard unify_with_occurs_check/2 predicate was implemented
as well, although the it does not affect unification between a goal and a
head of a clause, so it's use is limited. It is implemented internally by
simply turning the occurs_check Prolog flag on and off before unification.
- Cyclic terms are rare and usually an error. Further, they often only cause
a problem when they are written. The write routines automatically detect cyclic
terms whether or not occurs check is on and display '...' after a few iterations.
The previous outputdepth Prolog flag is now deprecated.
- A new built-in predicate is_cyclic/1 can be used to test if a term
has any cyclic redundencies in it.
- Added a new JSP shipping advisor sample that uses a Java bean to query the
Logic Server.
- Add limited server capabilities to the Linux Developer Edition so that web-applications
up to 10 users can be deployed (Windows added this support in 7.0.14).
7.0.16
- Fixed GPF when running compiled Prolog projects (xpl files) under the Developer
Edition only.
7.0.15
- Enabled the ?- command to open a new listener during debugging which can
be used to enter queries to examine and change the dynamic database or run
code.
- Updated the 'Adventure in Prolog' tutorial to match the new Eclipse IDE.
- Fixed bug where pressing [Enter] during a long listing or output in the
listeners hangs Eclipse.
- Put up a purchase invitation for the Free Edition.
- Fixed multiple engine bug when selecting File | Buy/Activate License.
- Fixed multiple bugs in the Prolog reader (parser), especially in DCG.
7.0.14
- Added logicserver.h for C++ users which has new C++ LogicServer and LSException
classes. This means all the class interfaces to the Logic Server (Java, C++,
.NET and Delphi) have the same methods. The new C++ class uses STL strings
and wstrings. The LSAPI Reference has been updated to reflect this and now
presents the C interface functions (starting with 'ls') and the class interface
functions. Also updated the hello and pets C++ samples to use the new interface.
Added UnifyAtomArg to both Java and .NET.
- amzi.h is now deprecated but will remain in the distribution.
- Add limited server capabilities to the Developer Edition so that web-applications
up to 10 users can be deployed.
- Added the Auto Step command on the Debug View toolbar to automatically step
through your code a goal at a time. The execution speed is controlled by the
Auto Step Speed command on the Debug View menu.
- Improved leashing in debugger, so step-into and breakpoint stops only occur
for leashed ports (call, exit, redo, fail). Leashing options are now directly
on the toolbar. Leashing can also be turned on/off for clause heads, which
is indicated on the tool bar as an I for info port.
- Added the Open Listener command on the Debug View toolbar (not implemented
yet) to open a new listener for user queries on the existing debugging session.
This will let you examine the dynamic database and the status of your running
code.
- A new debugging option 'Cut Display' controls whether cut stack frames can
still be examined in the debugger. This is the default and makes it easy to
understand a program with cuts. But it consumes a lot of control stack, so
a recursive program will quickly run out of control stack. When the display
of cut stack frames is off, then programs will run better (although the debugger
still uses more stack than ordinary programs), but the cut stack frames are
no longer available and the variable window reflects the last stack frame
that has not been cut, not the current one.
- A new debugging option 'DCG Variables' controls how generated difference
list variables are displayed in the debugger. They can all be hidden, all
displayed, or have only the first and last displayed.
- New predicate, is_string_term/2, works like string_term/2
except that it fails if trying to parse a string with an invalid Prolog term
in it. This is in contrast to string_term/2 which throws an error in
that case.
- string_integer/2, string_number/2, and string_float/2
are all now implemented using is_string_term/2, so they no longer throw
errors if the string has an invalid term, they simply fail.
- A fix has been added to the ODBC LSX, aodbc.lsx, that works around a bug
with SQL Server.
- A new ODBC extended predicate has been added that frees all open queries.
This is useful for complex ODBC applications that trim the search space using
cut (!), which has the side-effect of leaving open ODBC queries that consume
ODBC resources.
- The DBGene sample, samples/odbc/dbgene, has been upgraded to use new features,
and some old bugs in the sample have been fixed as well. dbgene.pro can now
be more easily run as a stand-alone Prolog program in the listener.
- phrase/2,3 did not work correctly in a module context. Now they do.
- Added hover help for directives (import, module, etc), math functions and
operators and constants.
- Display of character list bug fixed, so now when double_quote_strings is
off (default) character lists display in "s; but if double_quote_strings
is on (meaning application wants to treat " instead of ` as string delimiter),
character lists display as [0'a, 0'b, ..].
- Fixed StrTermLen, StrArgLen and StrParmLen to return the length of a term
if it were to be converted to a string with quoted atoms.
7.0.12
- Added sorting to outline (a-z or line number order).
- Have the cross referencer go to the named predicate when it is clicked on.
- Added hover help for Amzi! system predicates that describes the arguments
and function.
- Added completion processor to the editor (with ctrl-space) that provides
system predicate, operator and directive names.
- Added assistant when coding calls to system predicates.
- Before running or debugging compiled project, rebuild it.
- Enabled F1 to provide help in the IDE in every Prolog view and on Prolog-specific
commands.
- Added a toolbar command for the editor that let's you edit only the predicate
that is currently selected in the outliner instead of the entire file.
- Reworked parts of the documentation.
- Fixed cross referencer missing some predicates.
7.0.11
- Source code debugger now supports most of DCG. Complex control structures
in DCG goals are not yet supported. The Debugger variable window shows variables
labeled DCG$X which are the generated difference lists, making it easy to
see how linked DCG goals are working.
- Character lists are now displayed as character lists, that is "abc"
on a write statement is shown as "abc" rather than [0w0061, 0w0062,
0w0063].
- The outliner is improved, and error reporting on syntax errors caught on
file save is improved.
- A bug introduced in the faster interpreter that caused crashes when programs
retracted clauses actively being used in a backtracking loop, has been fixed.
- Added unlock codes for non-Windows platforms.
- Don't turn off autobuild in Eclipse (instead Prolog ignores autobuilds).
- bagof (which was inadvertently broken in 7.0.9) is fixed again.
7.0.10
- Use the same parser for the outline as is used in the debugger resulting
in clearer error messages.
- Improved dynamic database and interpreted code performance by approximately
30%.
- Sped up output in the Prolog Listeners in the Eclipse IDE.
- Added Run and Debug Single File commands in the IDE. This allows you to
have multiple source files in one project/directory and run them individually.
Ideal for learning and experimentation.
- Fixed ; in the Prolog Listener for some keyboards.
- Don't use up engines when the outline does not work.
- Fixed an obscure bug with programs that assert, retract and backtrack over
the dynamic database.
- Fixed the indexes in the Amzi! Eclipse documentation.
7.0.9
- Fixed problems that prevented Amzi! 7 from running on Windows NT 4.0.
7.0.8
- Fixed problems that prevented Amzi! 7 from running on Windows 98.
- Don't turn off the listener and run when the source code debugger trial
is over.
- Fixed operator precedence problems in the source debugger.
- Eliminate 'too many Logic Server' errors when opening a number of editors
in the Amzi! Eclipse IDE.
- Reworked the License Agreement to allow a wider variety of uses.
- Upgraded to Eclipse 2.1.2 and Java 1.4.2_02.
7.0 (formerly 6.4)
Amzi! 7.0 introduces a new, multi-platform IDE
for developing and debugging stand-alone and embedded or remote Prolog components.
The IDE is based on the Eclipse Project (www.eclipse.org).
The Prolog command-line tools and Logic Server remain stable (bug fixes only).
The highlights of the Amzi! Eclipse IDE are:
- Syntax coloring in the editor to highlight built-in predicates, strings,
comments, etc.
- Source file outliner and project cross referencer.
- Source code bookmarks to indicate the locations of errors, to-do items,
search text and more.
- Full source code debugging showing variable bindings at each level in the
call stack.
- Full source code debugging of compiled Prolog components embedded in other
languages and tools, and those running on remote machines.
- Portable projects that can optionally include other projects.
- Automatic loading of libraries and lsx's in the Prolog listener, plus input
line recall and editing.
Some of the features of Eclipse that may interest you (see www.eclipse.org
to download):
- Separately downloadable plugins for developing Java, C++, COBOL, C#, PHP
and other programs.
- Automatic file backup.
- Tools for modelling, graphical editing and testing.
- Seamless connection to source control systems like CVS, Perforce, PVCS,
MKS, ClearCase and more.
- Tight integration with the Apache's Ant build tool.
6.2
Amzi! 6.2 is the final release following a string of 6.1.x beta releases.
New Features
Overview
Robust Server Architecture
Amzi! 6.2 provides a better platform for server-based applications. Many of
the internals, such as garbage collection and handling of dynamic clauses, have
been rewritten to better support 24/7 online operations.
Easier Development and Deployment
The old import/export constructs have been replaced with the more powerful
ISO-standard module capabilities which help organize larger applications. Logic
Server Extensions (LSXs) can be loaded from either the host language or Prolog,
and compiled Prolog modules can be loaded anytime from both files and memory.
Diagnostics for common errors are clearer, and many syntactically correct, but
erroneous constructs are flagged as errors. Little touches like allowing either
forward or backward slashes in file names make it easier to build multi-platform
applications.
ISO-Standard
Many of the changes in the release are related to the ISO-standard, most notably
the inclusion of full ISO module support and ISO stream support.
High Performance Logic Base
Much of the work that has gone into the 6.2 release is internal. For example,
the dynamic logic base has been completely rewritten.
Two immediate benefits of this work are support for indexed and sorted dynamic
predicates, both of which offer tremendous performance gains for applications
with a lot of data.
Comprehensive Internet Support for .NET, ASP, JSP and Java Servlets
A .NET interface is now included with the Logic Server APIs, which can be used
from any .NET language. There are new samples illustrating the use of the Logic
Server with ASP, JSP and Java Servlet Internet technologies. A COM interface
is also available for a limited set of Logic Server API calls (no callbacks).
New Libraries and Utilities
New libraries and utilities have been added, including a cross reference utility,
XML library, date/time library, and performance probe utility. An optional preprocessor
is also included.
Full Internationalization
In addition to Unicode support, locale-specific multibyte characters are supported
in all environments.
Increased System Limits
Work has been done to eliminate some of the pesky system limits, most notably
the atom table, which is now only limited by memory. The compiler can compile
any number of clauses, the number of variables is greatly increased, and the
loader buffers are automatically resized as needed.
Improved Documentation
Much of the Prolog documentation has been redone and updated, and new sections
added for debugging tips and modules. A frequently asked questions page has
also been included. Also each sample has its own doc.html file that describes
how to build it and run it.
Advanced Mathematics
There are a number of enhancements of interest to the mathematically inclined,
most notably support for infinite precision real numbers, prime number generation,
and rational number arithmetic.
Details
Compatibility
Quick conversion from 5.0 to 6.2
To get 5.0 programs quickly running under 6.2, use your text editor to make a
global search for these changed syntactic patterns:
- ` (backquote) - Change to: 0' (zero singlequote)
- '!EOF' - Change to: end_of_file
- compare_lists, remove_dups - moved from built-in to list library.
Either use the directives :- ensure_loaded(list). :- import(list). or copy
the source code from the list library to your application.
- abolish - look for old two argument version, abolish(Functor, Arity)
and replace with one argument version: abolish(Functor/Arity).
- recorda, recordz, instance, erase, db_ref - these are all no longer
supported, use assert/retract instead.
See below for details.
Details of 5.0 to 6.2 differences
- You must compile and relink programs for the new release, as internal formats
have changed.
- ISO changes - wherever possible we have kept support, but not documentation,
for old Amzi! syntaxes that are deprecated due to the ISO standard. For example,
the old Amzi! fopen/3 is still supported along with the new ISO standard open/3.
In some cases, listed here, that was not possible.
- Old vs. New Modules - Programs which use old Amzi! modules need to be updated
to the new ISO modules.
- recorda/z, instance, erase, db_ref not supported - Programs making direct
manipulation of the dynamic database will need to use conventional predicates
instead.
- bug.plm - this library is now in the system library, so you no longer need
to include it to use the '?' operator for debugging compiled code.
- '!EOF', the end of file atom, has been changed to the ISO standard, end_of_file.
This means you must change programs that check for '!EOF' to check for end_of_file
instead.
- The non-standard backquote (`) notation used for characters in earlier releases
of Amzi! is no longer supported. Instead the ISO 0' is used. So `a needs to
be changed to 0'a.
- Strings can now be delimited with backquotes (`) as the standard hints.
This is in addition to the deprecated $-delimited strings which are still
supported.
- abolish/2 is no longer supported, just abolish/1, such as abolish(duck/1)
or with modules, abolish(dwmod:duck/1). It abolishes all of the dynamic clauses
for a predicate.
- Two earlier version built-in predicates, remove_dups/2, and compare_lists/3,
are no longer built-ins but are implemented in the list library instead.
Build Notes (most recent first)
6.2.14
- Fixed bug so that load/4, load from memory, works correctly.
- John Cullen, a user, fixed some bugs and made some changes in the IDE. (Thanks
John)
- Fixed compile, link and build windows so they are reused on subsequent
compiles, links, and builds.
- Fixed bug that caused crashes when build selected but no project open.
- Fixed loss of .xpl and project information when projects saved when edit
windows are open.
- Fixed bug relating to error messages about unnamed files.
6.2.13
- Fixed bug that caused the compiler to interpret the string `[]` as the atom
[].
- Fixed bug that causes retract(x,y) to crash. This is a valid form of retract
where the first argument is a valid module name. Same for retractall/2 and
assert/2.
- Fixed two bugs that occured when programs retract clauses that are still
in active goals. In other words, situations where the program pulls the rug
out from under itself. While not good programming, this type of program should
work as expected now.
6.2.12
- Rebuild Solaris release using latest 3.2 gcc and STL libraries due to problems
on that platform caused by heavy work load. Problems resolved by rebuild.
6.2.11
- Fixed bug in lsClearCall() that would not always trim the callstack back
to the correct choice point.
- Fixed bug in unload when .plm file was loaded from memory.
- The use of the escape character, \, for embedded quotes (', `, ") is
not supported, use double quotes instead. i.e., 'Don''t go near the water'.
- is_integer/1 bug fixed, works correctly for decimal numbers now.
- New internal implementation of gensym/2 much much faster.
- Value of 'e' corrected, 12th digit was wrong.
- Professional version unlock tests less severe.
- Unix only -- added new configuration parameter 'maxmemory' for setting the
memory (in megabytes) available to the Amzi! process.
- Fixed VB LSAPI bug, functions with an argument representing arity now use
Integer instead of Byte for the arity.
- Aborts due to outputting highly nested terms are now gracefully caught.
Usually these are caused by cyclic terms. The allowable nesting can be set
using the configuration parameter 'outputdepth'.
6.2.10
- Debugger bugs fixed.
- Trail space properly conserved in recursive loops with cuts, previously
these would prematurely terminate because of increasing trail use.
- Retract bug fixed that occurred when retracting clauses which were rules.
- Retract bug fixed that occurred when clauses were retracted that were being
actively used in a goal that could still be backtracked into.
6.2.9
- The COM Object has been replaced by a complete .NET
Class (a managed wrapper) with some samples.
6.2.8
- CGI interface parses query_string and asserts value even when content_length
not specified.
- loadlsx/1 recognizes the
current module and places it's predicates in that module. This allows encapsulation
of extended predicates in LSXs.
- Programs with load/unload loops no longer leak.
6.2.7
- New installation program for Windows
- Better garbage collection for interpreted programs
6.2.6
- Fixed debugger bug, module names would some times be represented as integers,
now are always full names.
- Mathematical operators floor and ceil would erroneously return fractional
results sometimes with real (infinite precision) arithmetic. They now return
integers.
- gc/0 predicate modified to garbage
collect heap, things, and dynamic storage.
- Exported missing predicates phrase/3 and for/4.
- lsMakeFloat fixed to create the correct kind of float, single or double,
based on the setting of the Prolog flag 'floats'.
6.2.5
- Created Solaris 8.0 release, using gcc.
6.2.4
- Logic Server 'Execs' and 'Calls' might user module syntax, which is a :/2
structure. 'GetArg' used to refer to that :/2 structure, rather than the goal
of interest. 'GetArg' and 'GetArgType' now both skip the :/2 and refer to
the goal of interest. For those applications that really want to examine a
:/2 structure, the new cTYPEs cMOD and cGOAL have been added. See lsGetArg.
- Registration codes are now recognized for various licenses.
- Linux build of libamzi.so now includes references to -lstdc++ and -lm, so
these don't need to be specified in Logic Server applications.
- Performance improved for applications that to many Logic Server calls using
'ExecStr', 'CallStr', 'AssertStr' and 'RetractStr.' Note that some Logic
Server programs that improperly rely on a term being bound across 'Exec' or
'Call' boundaries might not work as before.
- Bug note - Linux C++ Logic Server programs will crash when attempting to
continue after catching a Logic Server error. So display the error as soon
as you catch it! This might be a gcc problem. A workaround is to change the
definitions for CLogicServer in amzi.h to allocate CLSExceptions on the heap
(new), and throw pointers instead.
- The first 6.2 release incorrectly handled numbers in European and other
locales. Locale is now only used for wide - multibyte character translations,
so all numbers remain in ISO standard Prolog syntax.
- setof/3 and bagof/3 modified to accept setof(N, (O,P)^pet(O,P,N),
L) syntax as well as O^P^pet(O,P,N) syntax.
- For real number arithmetic, the meaning of epsilon (precision in recursive
computations) has changed. epsilon is used by both real sqrt and real power
calculations. The default of 0 means power calculations go to full precision,
but sqrt will stop at 36 decimal places of precision.
- get_env_var/2, which
gets the value of a system environment variable, has been added to osutils.lsx
for Windows.
Copyright ©1987-2011 Amzi! inc. All Rights Reserved.
Amzi! is a registered trademark and Logic Server is a trademark
of Amzi! inc.


{{#user}}
Hello, {{.}}.
{{/user}} {{^user}}
Welcome to Interactive Twitch
{{/user}}
An instant twitch bot. You can make a poll, and people will be able to vote on it through twitch chat and this website.
{{#user}}
View my poll
{{/user}} {{^user}}
Login To Twitch
{{/user}}
{{#polls}}
{{.}}
{{/polls}}


You're about to download <unknown>
from <unknown>
Thank you for downloading
<unknown>. Choose how you would like to get your file:
Watch a Quick AD
through adf.ly
It only takes 5 seconds to support the developer these days. Then we'll take you straight to your download.
and download after
I'd appreciate any donation, even if it's just a dollar.
Direct Download
SubServers is always free to use
You don't have to do that stuff to use SubServers, but it's always appreciated.


{{ define "main" }}
{{ .Params.Lead | safeHTML }}{{ .Title }}
Get A+ scores on Mozilla Observatory out of the box. Easily change the default Security Headers to suit your needs.
Get 100 scores on Google Lighthouse by default. Doks removes unused css, prefetches links, and lazy loads images.
Use sensible defaults for structured data, open graph, and Twitter cards. Or easily change the SEO settings to your liking.
Code with confidence. Check styles, scripts, and markdown for errors and fix automatically or manually.
Build robust, flexible, and intuitive websites with Bootstrap 5. Easily customize your Doks site with the source Sass files.
Deploy to Netlify with sensible defaults. Easily use Netlify Functions, Netlify Redirects, and Netlify Headers.
Search your Doks site with FlexSearch. Easily customize index settings and search options to your liking.
Build pages with a landing page, blog, or documentation layout. Add custom sections and components to suit your needs.
Switch to a low-light UI with the click of a button. Change colors with variables to match your branding.
⭐
The modern web is decoupled and modular. Doks uses npm to centralize dependency management, making it easy to update resources, build tooling, plugins, and build scripts.
🚀
Get started with the tutorial or quick start. Use Doks as a starter or child theme. Easily switch main functionalities on/off — pick only what fits your use case. Get help if you need it.
{{ .Params.lead | safeHTML }}
{{ partial "main/blog-meta.html" . -}}


{% extends "base.html" %} {% block title %}Setting New password{% endblock title %} {% block content %} {% if validlink %}
The password reset link was invalid,
possibly because it has already been used.
Please request a new password reset.


Contract
| Vendor Name | TOYOTA CANADA INC. |
|---|---|
| Description of Work | Road motor vehicles |
| Comments | Purchase of vehicle. This competitive contract was awarded under a Public Services and Procurement Canada Standing Offer. |
| Reference Number |<PHONE_NUMBER> |
| Contract Date | 2016-03-11 |
| Delivery Date | 2016-08-30 |
| Contract Value | $ 36,612.60 |
* Use either Contract Period or Delivery Date.


bibmod - Modify .bib fields for BibTeX/BibLaTeX
perl bibmod.pl [bib_file ...] [--all] [--prf=prf_file]
[--out_flag=flag] [--verbose]
[--turn_on=routine ...] [--turn_off=routine ...]
[--nofm] [--nopause]
Designated .bib files are modified according to the predefined
modifier routines and/or user preferences.
Although any .bib file can be modified, this program can be
particularly useful for EndNote-exported .bib files,
where many strings need to be converted to LaTeX commands.
bib_file ...
.bib files to be modified.
--all (short form: -a)
All .bib files in the current working directory will be modified.
--prf=prf_file
A user preferences file for string modifications.
String pairs contained in this file take precedence
over the predefined modifier routines.
Refer to the sample file 'sample.prf' for the syntax.
--out_flag=flag (short form: --flag, default: empty)
A string to be appended to the names of modified .bib files.
--verbose (short form: -v)
Display the new lines of a bib file before its modifications.
--turn_on=routine ... (short form: -off)
--turn_off=routine ... (short form: -off)
The following modifier routines can be toggled on or off.
enclose_with_braces (default: on)
subscript_molecules (default: on)
superscript_isotopes (default: on)
greeks_to_tex_cmds (default: on)
accented_to_tex_syntaxes (default: on)
to_url_underscores (default: off)
rm_periods_from_journal (default: off)
to_tex_symbs (default: on)
--nofm
Do not show the front matter at the beginning of the program.
--nopause
Do not pause the shell at the end of the program.
perl bibmod.pl molytech.bib --v
perl bibmod.pl molytech.bib murine.bib --prf=molytech.prf
perl bibmod.pl --all --nofm --on=rm_periods_from_journal
Perl 5
Please make sure that your .bib files are encoded in UTF-8;
non-7-bit characters will be corrupted otherwise.
Jaewoong Jang<EMAIL_ADDRESS>Copyright (c) 2017-2020 Jaewoong Jang
This software is available under the MIT license; the license information is found in 'LICENSE'.


Server Installation
服务器安装
The Server installation type is recommended if you already have multiple Agent installations deployed throughout your organization and must collect the host-generated alerts.
当你已经在组织系统上部署了许多的以客户端安装的OSSEC时并且需要收集那些主机的警告时，这种服务器安装方式是最恰当的安装了
The role of an OSSEC server is to collect all alerts from deployed Agent installations and provide an overall view of what is being reported by all deployed Agent installations (Figure 1.10).
OSSEC 服务器的作用是收集来自部署的客户端安装的收集到的所有警告信息并且统筹分析这些警告信息对于这些客户端安装的系统的危害程度(如图 1.10 所示)
Consider the following situation.
考虑以下这种情景:
You check your assigned issues in the ticketing system and notice that three users have logged issues that morning indicating that their workstations are running slower than usual.
你从你的ticketing系统上面查看分配的问题中发现有3个用户的工作站系统运行的比平时要慢许多的问题
The users also indicate that they can hear the computer hard disks working very hard, when they are not doing anything on the system.
另外用户反应他们并没有在系统中有任何操作的时候但是系统的硬盘却飞速的转动着。
You decide to walk down and look at the first computer of the first user who reported the issue.
你决定去第一个反应这些问题的用户的电脑上看看。
After reviewing the OSSEC logs on the system, you notice that a rootkit was detected at 3 a.m.
看完在电脑上的OSSEC 的日志之后，你发现在3点的时候有一个rootkit被检测到了
that morning: Received From: rootcheck Rule: 14 fired (level 8) -> “Rootkit detection engine message’ ” Portion of the log(s): Rootkit ‘t0rn’ detected by the presence of file ‘/lib/libproc.a’.
After reading this information, alarms go off and questions start to go through your mind:
阅读完此消息后，警告已经消除了，但是许多的疑问开始在你的脑子掠过
- “Is this rootkit installed on the other two workstations that reported problems this morning?”
- “How many other systems has this rootkit been installed on?”
- “Were the rootkits all installed last night, or have these rootkits been installed over time on various systems?”
- “Is this rootkit only installed on workstations, or has it also been installed on any critical systems?”
“Should I begin handling this incident on this workstation, or should I check the other workstations first?”
在另外两台今天早上预报问题的工作站是否也被安装了rootkit呢？
- 还有多少种系统被安装了rootkit了？
- 这个rootkit是昨天晚上rootkit还是已经在多个系统上安装了很长时间了。
- 这种rookit只是在安装在工作站或者这种重要的系统上面吗？
- 我是先处理这台电脑上的问题还是先看看另外两台？
If OSSEC agents were installed on all these systems, instead of Local OSSEC installations, you would have been able to first check the OSSEC server before leaving your desk.
如果我们在这些系统上面安装的是 客户端模式的OSSEC 而不是本地话的OSSEC 安装。那么你应该在离开桌子之前先查看OSSEC 服务器的分析
This initial check would have allowed you to see if any alerts, such as those generated by the installation of a rootkit, were common across all systems with deployed agents.
这些初始的判断可以帮助你去查看向这种rootkit安装产生的警告信息是否已经感染到了这些安装客户端的机器上面了
This situational awareness provides a method to assist you in determining if an attack is targeting multiple machines or only one host.
这种潜在的意识可以给你提供一种帮助你判断攻击者是攻击了一台机器还是许多机器


There are 6 novel robust tests for equal correlation. They are all based on logistic regressions. The difference between 6 methods is the difference of U which are proportion to different types of correlation. The ST1() is based on Pearson correlation. ST2() improved ST1() by using median absolute deviation. ST3() utilized type M correlation and ST4() used Spearman correlation. ST5() and ST6() used two different ways to combine ST3() and ST4(). We highly recommend ST5() according to the passage New Statistical Methods for Constructing Robust Differential Correlation Networks (expected to be public).
| Version: | 0.9.6 |
| Depends: | R (≥ 3.4.0) |
| Imports: | MASS, graphics, stats |
| Published: | 2018-06-14 |
| Author: | Danyang Yu, Weiliang Qiu |
| Maintainer: | Danyang Yu <danyangyu at hnu.edu.cn> |
| License: | GPL-2 | GPL-3 [expanded from: GPL (≥ 2)] |
| NeedsCompilation: | no |
| CRAN checks: | corTest results |
| Reference manual: | corTest.pdf |
| Package source: | corTest_0.9.6.tar.gz |
| Windows binaries: | r-devel: corTest_0.9.6.zip, r-release: corTest_0.9.6.zip, r-oldrel: corTest_0.9.6.zip |
| OS X binaries: | r-release: corTest_0.9.6.tgz, r-oldrel: corTest_0.9.6.tgz |
Please use the canonical form https://CRAN.R-project.org/package=corTest to link to this page.


Alarm System:
The alarm is ringing loudly. You should leave here immediately.
(Another person has already undertaken the quest.)


DAMIEN J. EVERSMANN
2305 N Spaulding Ave, Apt 1, Chicago, IL 60647
C:<PHONE_NUMBER>
<EMAIL_ADDRESS>SOLUTIONS ARCHITECT / SENIOR DEVELOPER
OBJECTIVE
To obtain a position that will allow me to utilize and grow my existing skill
set and expand upon my leadership capabilities
PROFILE
- Skilled Pre-Sales Engineer: Strong in presentation and training settings with
a knack for making the complicated simple and interesting.
- Highly Effective Communicator: Able to communicate technical information to
management and end-users at any level. Thrives on challenge, and excels in a
fast-paced environment.
- 17+ Years of Software Development Experience: "Big picture" Systems Architect
and Application Developer with demonstrated leadership capability in an
enterprise IT environment.
- Proficient Web Programmer: Proven expertise with object-oriented languages, web
scripting, database programming, and more. Extensive experience in Windows,
Unix (AIX), Linux, or Mac OS operating environments.
- Effective Project Manager: Proven ability to meet deadlines. Extensive
experience defining requirements and managing small- to medium-scale projects
(analysis, budgeting, planning, estimating, tracking, and scheduling).
- Strong Work Ethic: Self-motivated and dedicated. Able to work independently
or in a collaborative team environment. Rapidly assimilates new technologies
to implement customized, state-of-the-art solutions.
PROFESSIONAL EXPERIENCE
RED HAT, Raleigh, NC
2016 - present
Solutions Architect
- Generalist pre-sales engineer for public sector sales serving state and local
governments and higher education
- Regular and requested presenter for conferences, workshops and technical
sessions
- Specialist in DevOps and Automation messaging and demonstrations
MODERAS, Schenectady, NY
2015 - 2016
Development Manager
- Serve as Lead Developer for several engagements interfacing directly with
client representatives
- Manage and participate in growth and development of several Open Source
software initiatives
- Serve as a primary resource for Kuali and Kuali-related applications and
projects throughout the corporation
VIVANTECH, INC., San Diego, CA
2011 - 2015
Senior Software Architect
- Senior Architect for the Ekualiti product line: Served as lead technical sales
support; responsible for overseeing the daily design and development; shared
responsibility for the overall product roadmap; development team scrum master
- Served as the Senior Software Architect/Implementation Manager: led and
participated in engagements covering needs from KC to custom apps in locations
from Los Angeles to Boston, and overseas
- Architect and Development Manager for engagement at the University of Southern
California to customize and implement Kuali Coeus Research Administration
Software
- Provided training and mentorship to development contingency at corporate
headquarters
UNIVERSITY OF CALIFORNIA, DAVIS
2010 - 2011
UC Systems Architect
(Office of Administration and Resource Management)
- Oversaw and implemented development standards including coding standards, unit
testing standards, application template design, configuration, usage standards
and more.
- Architect and developer for several UC-System-wide development initiatives funded
by the UC Office of the President including Risk Management, Environmental Health
and Safety, Learning Management and Workers Compensation. (Kuali Rice, Spring,
Struts, Hibernate)
- Directed the acquisition, design, and implementation of server infrastructure to
support dependency management and continuous integration. (Maven, Artifactory,
Hudson/Jenkins, Kuali ImpEx)
- Oversaw development and initial release of UCAction, a UC-System-wide
application for the assignment and followup of requirements and tasks for
legal and compliance issues. Awarded the UC Power of Ten Award. (Java Web
Application, Spring, Hibernate)
2008 - 2010
Lead Developer / Programmer
(Office of Administration and Resource Management)
- Tendered Developer to Kuali Foundation, a consortium of universities, colleges
and businesses dedicated to the design and development of open-source
administrative software for higher education.
- Architected and developed major components and new functionality that cut
across several modules of the Kuali Coeus project. (Java Web Application,
Spring, Struts)
- Designed and implemented a complete overhaul of the unit test system for the
Kuali Coeus project. (JUnit)
- Software development methodology and architecture advisor for the Department
of Safety Services in the Office of Administration and Resource Management.
INTERNATIONAL BUSINESS MACHINES (IBM)
2000 - 2008
IT Architect / Lead Developer
(Application Systems)
- Widely recognized as the "Go To" point-of-contact to expedite and execute
lagging projects. Technical Lead on design and implementation of four portal
web applications.
- Received the "IBM Thanks Award" for timely and expedient turnaround of
aggressive requirements on a project.
- Lead Developer (team of 10) for large scale, multi-stage overhaul of process
asset library and repository. (WebSphere, Java Web and Desktop Applications)
- Lead Developer (team of 6) on customer-facing portal for process-management
system. (WebSphere, Java Web Application, and Portlet development)
- Architect and Lead Developer (team of 5) on the ground-up development of
intellectual capital repository web application with search and administrative
functionality. Received accolades from all levels of management. (Java
Servlets, JSPs, Struts)
- Development Lead (team of 3) for the expansion of procurement and capacity
planning application.
UNIVERSITY OF TOLEDO, Toledo, OH
2001 - 2002
Instructor, Part-time
(Dept. of Electrical Engineering and Computer Science)
EATON CORPORATION, AEROQUIP GROUP, Maumee, OH
1999 - 2000
Software Architect
(IT Development Group)
AEROQUIP CORPORATION, Maumee, OH
1998 - 1999
Software Design and Programming
(Advanced Computer Technology Group)
UNIVERSITY OF TOLEDO, Toledo, OH
1998 - 1999
Graduate Instructor
(Dept. of Electrical Engineering and Computer Science)
TECHNICAL EXPERTISE
- Systems: Linux, Windows, Unix, Mac OS
- Languages: Java EE/SE/ME (all JDKs), Ansible, AJAX, JavaScript,
C/C++/Objective-C, Perl, PHP, XML, WSDL, HTML, XHTML, DHTML and others
- Frameworks and Libraries: Node, jQuery, Angular, Kuali Rice, Spring, Struts,
Roo, JUnit, Log4J, Ant, Maven, Selenium, Atlassian Suite, SVN, Git and others
- Databases: IBM DB2, Oracle, MySQL, HSQLDB, MS SQLServer, MS Access and others
- Software Development: Eclipse, IBM Rational Software Architect, IBM WebSphere
Application Developer, Sun Java Studio Enterprise, NetBeans, XCode and others
EDUCATION
UNIVERSITY OF TOLEDO, Toledo, OH
- Master of Science - Engineering Science, Software and Info. Sys. (1999, 4.0 GPA)
- Bachelor of Arts - Theatre (1996, Magna Cum Laude)
INDIANA UNIVERSITY, Bloomington, IN
- Master of Fine Arts Coursework - Theatre & Lighting Design (1996 - 1997)