In this module, you will see what happens when programs encounter unexpected situations.
No matter how carefully you design and test your program, errors are bound to happen one or the other. When they do, chances are your program crashes to a halt. Many techniques have been invented to deal with such errors. Many languages such as C and Assembly, errors must be manually checked and handled by using error codes. This technique is very verbose and inelegant.  Zen implements an object-oriented approach to handling such situations known as exceptions.
In Zen, an exception is an object which represents an unexpected situation in your program at runtime. In other words, an exception is an error that occurs when your program is running. Exceptions allow your programs to recognize errors and respond to them gracefully. In fact, sometimes your program can resolve the situation and resume execution normally.
In Zen, errors of all types are generalized into a special type of object known as an exception. An exception is an object which represents an unexpected event. It occurs when your program is running. It disturbs the flow of your program. Exceptions are used to indicate many types of error conditions which may occur for many reasons. For example, the programmers did not anticipate possible problems, or the application is untested, or the program encounters situations such as corrupt data, corrupt files, network problems, hardware device failure, and so on.
An exception is represented by an object. It holds the information about the event such as the condition, the stacktrace, the location, and a message. The exception object is usually refered to as exception. You can throw and catch an exception. After an exception object is created, it is thrown. The virtual machine attempts to find an exception handler for the exception by backtracking the list of functions that have been called, known as the call stack. If a handler is found, the exception is caught. Otherwise, the virtual machine invokes the default exception handler and terminates the current thread.
Here are some common exceptions.
OutOfMemoryError
StackOverflowError
InvalidPathException
IOException
NullPointerException
ArrayIndexOutOfBoundsException
When an unexpected situation occurs, an exception object is created and thrown.
The function which invoked the current function can handle the exception or
let it pass through. At some point, the exception is caught and handled.
Exceptions can be thrown either by your code, or the virtual machine, or
any libraries your code uses. Exceptions thrown by the virtual machine indicate
errors that violate the rules of Zen. For example, if you try to access an
instance member through a null
reference, the virtual machine throws a
NullPointerException
.
Exception handling in Zen uses the following keywords.
try
catch
throw
finally
In short, when an exception occurs, a new exception object is created.
This object is thrown using a throw statement. Your code can anticipate exceptions
to be thrown from a block of code using the try
clause. If an exception is
thrown within the try
block your code is monitoring, your code can handle this
exception using the catch
clause. Any code that must be executed regardless of
an exception being thrown or not, must be written in the finally
clause.

You will learn more about the mechanics involved throughout this chapter.
Advantages of Exceptions
The advantages of exceptions are as follows.
You can separate error handling from your algorithm.
With exceptions you can separate the details of what happens when an unexpected situation occurs. You can separate such logic from the main logic of your program. This allows you to keep your source code clean and organized.
Your functions do not have to forward errors.
Exceptions have the ability to propagate up the stack of functions currently invoked. For example, assume that a function is the fourth function in a series of nested function calls. If the first function is the only function interested in handling the error, and the error occurs in the fourth function, you don’t have to manually forward the error. Throwing an exception does the job for you. This allows you to generalize error handling in one common place.
You can group and differentiate error conditions.
Because exceptions are objects, you can group or categorize them using their
class hierarchy. An example of a group of related exception classes are the exception
classes which inherit the zen.io.IOException
class. The IOException class
represents an input/output error. Its descendants represent more specific errors.
For example, InvalidPathException
indicates that a path could not be found
on the disk.
All these advantages make exceptions reliable, stable, and secure.
Understanding Exception Types
An exception object contains the information about the error condition. It includes information such as stacktrace and message. Perhaps, the most important information is the cause of the error. It is indicated by the name of the exception class used to create the exception object. Usually, you will use exception objects only to figure out the kind of error that occurred.
Inheritance is currently under development.
In order to understand exceptions fully, you need to understand the class
hierarchy of exceptions first. All exception classes are subclasses of the
Throwable
class. In other words, the Throwable
is the superclass of all
exceptions in the exception class hierarchy. The Throwable
class, like any
other class in Zen, inherits the zen.core.Object
class. You can throw and
catch only the instances of the Throwable
class.
The exception class hierarchy is further divided into two main subclasses.
Exception
Error
The Exception
class represents conditions that your program should catch and
handle. In order to create your own custom exception classes, you need to inherit
this class. InvalidPathException
is an example of such an exception. Further,
the class RuntimeException
is a special subclass of the Exception
class.
Exceptions which are intended to be unchecked should inherit this class.
NullPointerException
is an example of such an exception. You will learn more
about checked and unchecked exceptions in the next lecture.
The second subclass of the Throwable
class is the Error
class. It defines
exceptions that your program should generally not catch. These exceptions are
usually thrown by the virtual machine to indicate errors related to the
environment. OutOfMemoryError
is an example of such an error which indicates
memory exhaustion.
The following code segement shows the public methods found inside the Throwable
class. Please refere the Zen documentation for more reference.
class Throwable
function getMessage()
function getCause()
function toString()
function printStackTrace()
function printStackTrace(stream)
function getStackTrace()
function suppress(exception)
function getSuppressedExceptions()
Here is a list of some typical exceptions.
-
IllegalArgumentException
This exception is thrown to indicate that you passed an incorrect argument to a method. -
ArithmeticException
This exception is thrown to indicate that you tried to perform an illegal arithmetic operation, such as dividing an integer by zero. -
IOException
This exception is thrown to indicate an error that the program encountered when you tried to perform an I/O operation. -
ClassNotFoundException
This exception is thrown to indicate that class coud not be found.
Zen includes many exceptions. You can learn more about them from the Zen Standard API documentation.
Catching Exceptions
Before you learn to catch exceptions in your program, you need to see what happens when you do not catch them. Here is an example which generates an exception.
// GenerateException.zen
function main(...arguments)
var a = 100
var b = 0
var c = a / b
printf('%d / %d = %d\n', a, b, c)
When the virtual machine tries to evalute a / b
, it throws an exception
because you tried to divide an integer by zero.
The output of this example is shown here.
The output contains the type of the exception, an error message and the stacktrace which points to the location from where the exception occurred. The stack trace includes the class names, the function names, the file names, and the line numbers through which the exception propogated.
When an exception is thrown, Zen stops whatever your program is doing and tries to find an exception handler. In this example, this causes the execution of the main function to stop. Since we have not provided an exception handler, the exception propogates outside your function and is caught by the default exception handler.
Every thread in Zen has a default exception handler which is triggered when an exception is never caught. In other words, any exception your program fails to catch is processed by the default exception handler. The default exception handler prints the exception, the stacktrace from the point where the exception was thrown, and terminates the current thread. A thread is a component which allows multiple parts of your program to run simultaneously. In this example, there is only one thread, hence the program is terminated.
Here is another example which demonstrates how the stacktrace can be useful to locate the cause of the error.
// GenerateException2.zen
function divide(a, b)
return a / b
function main(...arguments)
var a = 100
var b = 0
var c = divide(a, b)
printf('%d / %d = %d\n', a, b, c)
As you can see, the stacktrace includes the class name, the function name, the file name, and the line numbers through which the exception propogated. The exception can occur in any source file, any class, and any function. This is why each element in the stacktrace contains these information. In other words, the stack trace will always show the function invocations which led up to the error.
Using the Try and Catch Clauses
You cannot always depend on the default exception handler to handle the exceptions. In some situations, you will want to handle the exception yourself. With a custom exception handler, you can resolve the error and prevent the program from terminating. Imagine, you are writing a server side program. How troublesome would it be if your program terminated whenever an exception occurred?
You need to monitor a block of code for exceptions using the try
clause.
You can then provide a custom exception handler using a catch clause.
Whenever you write a try
clause, you are essentially writing the try statement.
It is a compound statement.
Here is the general form of the try clause.
try
statement1
statement2
...
statementN
A try clause should always be followed by a catch clause or a finally clause. When both the clauses appear, the finally clause should be the last clause.
Here is the general form of the catch clause.
catch ExceptionType identifier
statement1
statement2
...
statementN
The ExceptionType
indicates the type of exception the catch clause handles.
When an exception is caught, the variable identified by identifier
you
specify holds a reference to the exception object. Basically, you declare a
parameter in the parenthesis of the catch clause. The parameter references the
exception object when the exception is caught.
Here is an example which demonstrates how to catch an exception.
// GenerateException3.zen
function divide(a, b)
return a / b
function main(...arguments)
var a = 100
var b = 0
try
var c = divide(a, b)
printf('%d / %d = %d\n', a, b, c)
catch ArithmeticException exception
print('Error: You cannot divide an integer by zero.')
This example generates the following output.
Error: You cannot divide an integer by zero.
Notice that the print statement inside the try clause is never executed. When an exception is thrown, the program stops whatever it is doing. Zen then tries to find the nearest catch clause in the stack trace. When a catch clause which anticipates the exception which occurred is found in the stack trace, the program control jumps out of the try clause and is transferred to the catch clause. A reference to the exception object is stored in the parameter of the catch clause. Once the catch clause is done executing, the statement following the catch clause is executed. The control never returns back to the location where the exception occurred because exceptions are not like functions to return back.
A catch clause can catch an exception only if one of the statements within the try clause associated with it throws an exception.
Multiple Catch Clauses
In some cases, more than one type of exception can be thrown by the statements in your try clause. To handle such situations, you can specify more than one catch clause, each catching a different type of exception. When an exception is thrown, each catch clause is checked in order to see if it handles the exception. The first catch clause whose type matches the thrown exception object is executed. When one catch statement is finished executing, the other catch clauses are skipped. The program control transfers to the statement following the try statement.
Here is an example of a try statement which handles multiple types of exceptions.
// MultipleCatchClauses.zen
function divide(a, b)
return a / b
function main(...arguments)
try
var a = 10
var b = 20
var c = divide(a, b)
printf('%d / %d = %d\n', a, b, c)
var object = null
var string = object.toString()
print(string)
catch ArithmeticException exception
print('Error: You cannot divide an integer by zero.')
catch NullPointerException exception
print('Error: You cannot dereference null.')
Here is the output produced by this example.
0
Error: You cannot dereference null.
The statements within the try clause in this program can generate two exceptions.
You cannot divide an integer by zero. In this example, invoking the divide()
function may produce an ArithmeticException
. Since the arguments are positive integers,
this exception does not occur. We nevertheless provide a catch clause to handle
it. The program successfully divides a
and b
and prints the result.
You cannot dereference a null reference. Doing so will cause Zen to throw a
NullPointerException
. Therefore, we provide a catch clause to handle it.
This program was intentionally designed to produce a NullPointerException
exception. When the exception is thrown, the catch clause which handles the
NullPointerException
exception is triggered. Thus, the second print
statement in the try clause is not executed.
Understanding Multiple Catch Clauses and Inheritance
Inheritance is currently under development. You may skip this section.
When you use multiple catch clauses, you need arrange them properly. Imagine
that you have two catch clauses. The first catch clause handles exceptions of
type A
and the second catch clause handles exceptions of type B
. The order
in which your catch clauses appear does not matter as long as A and B are not
related. In other words, the order does not matter if A
is neither the
superclass or subclass of B
.
However, if A
and B
are related, that is, if A
is either the superclass
or subclass of B
then the order matters. You always need to write the catch
clause which handles the subclass first because Zen always selects the first
suitable clause without considering other clauses. Zen searches through the
catch clauses in the order in which they appear in your source code. If you
first write a catch clause which handles your superclass, the exception object
even if it is an instance of the subclass is implicitly cast by Zen to match
the superclass. This results in the selection of the catch clause which handles
the superclass, not the subclass.
Consider the following example.
// MultipleCatchClauses2.zen
function divide(a, b)
return a / b
function main(...arguments)
try
var a = 10
var b = 20
var c = divide(a, b)
printf('%d / %d = %d\n', a, b, c)
catch Exception exception
print('Error: This is a generic message.')
catch ArithmeticException exception
print('Error: You cannot divide an integer by zero.')
If you try to compile this example, the compiler will generate an error. The error basically means that your second catch clause will never be executed because the first catch clause handles it. You need to change the order of the catch clauses to fix this problem.
Handling all Exceptions in One Place
You can create a general catch clause such that all the exceptions are handled
by a single catch clause. You have learnt how the virtual machine finds exception
handlers. Using this concept, we can create a general catch clause.
You know that the Throwable
class is the superclass of all exceptions. Which
means, if you write a catch clause which handles Throwable
, then all types
of exceptions are handled by it.
Here is the general form of such a catch clause.
try
statement1
statement2
...
statementN
catch Throwable exception
...
Since, exceptions which inherit Error
should not be caught, it is better to
write a catch clause that handles the Exception
class. This way, you can
catch only the exceptions that are meant to be caught.
Here is the general form of such a catch clause.
try
statement1
statement2
...
statementN
catch Exception exception
...
Throwing Exceptions
So far, you have only learnt to catch exceptions. In particular, the exceptions that were thrown by Zen. However, you can throw an exception manually, using the throw statement.
The general form of throw statement is shown here.
throw expression
The throw statement is a simple statement. Therefore, it is terminated by a
semicolon. Here, the expression
must evaluates to an object whose type inherits
Throwable
. It can be an instance of the Throwable
class itself.
Unlike C++, you cannot throw primitive values such as integer or floating-point
decimals. In fact, you cannot throw an instance of a class which does not inherit
the Throwable
class. Which means, you cannot throw objects such as strings
and arrays.
The flow of execution stops immediately after you throw an exception. Any statements following the throw statement are skipped. The nearest enclosing try block is checked to see if it has a catch clause that handles the exception. If it finds a suitable catch clause, then the control is transferred to that clause. Otherwise, the next enclosing try statement is checked, and this process repeats until no try statements are found. In such a case, the default exception handler is triggered. It will print the stack trace and the error message. After which, the thread in which the exception occurred is terminated. So far you have learnt to write single threaded programs. Therefore, if your main thread terminates, your program itself will terminate.
Here is an example program which throws an exception.
// ThrowExample.zen
function printGreetings(name)
if name == 'Chikka Chikka Slim Shady'
throw new IllegalArgumentException('That hardly sounds like a name.')
printf('Hi, %s!\n', name)
function main(...arguments)
try
printGreetings('Chikka Chikka Slim Shady')
catch IllegalArgumentException exception
print('Error: ' + exception.message)
This program generates the following output.
Error: That hardly sounds like a name.
The printGreetings()
function validates the name before printing it. It considers
'Chikka Chikka Slim Shady'
an invalid name. Therefore, when you specify this name
it throws an exception. The IllegalArgumentException
class is an in-built Zen
class. It is thrown to indicate an illegal argument passed to a function.
You can pass a message to its constructor.
In the main()
function, we invoke the printGreetings()
function with "Chikka Chikka Slim Shady"
as the name. This causes it to throw an exception. The
main function catches this exception. You can retrieve the message that you
specified to the constructor of the IllegalArgumentException
with the message
property. The catch clause retrieves the message and prints it on the console.
Understanding Checked and Unchecked Exceptions
The concepts of checked and unchecked exceptions were inspired from Java. These concepts are simplified in Zen and are observed only as design principles, meaning the compiler does not enforce these rules. However, the compiler marks each function with the exceptions it may throw. This information can be used outside Zen by other tools.
An unchecked exception is an exception which you can handle if you want.
Any exception class which inherits the RuntimeException
class is an unchecked
exception. The compiler does not force you to handle it. It is assumed that the
application cannot do anything to recover from such exceptions at runtime.
So far, all the exceptions you have used are unchecked exceptions.
A checked exception is an exception which you need to handle. However, the
compiler does not force you to handle it. Any exception class which inherits the
Exception
class is a checked exception. An example of a checked exception is the
IOException
class.
 This leads to less clutter. However, many programmers simply ignore unchecked exceptions. Turning all exceptions into unchecked exceptions would lead to complicated error handling.
Using the Finally Clause
When an exception is thrown, the execution of your code jumps abruptly, possibly from one function to another function. This means some important segment of your code may be skipped. This could be a problem in some functions. For example, if a function opens a file in the beginning and closes it before returning, then you will not want the code that closes the file to be skipped by an exception. The finally clause is designed to control such situations.
You can create a finally clause in a try statement. The finally clause is basically a block of code that will always be executed, regardless of an exception being thrown or not. If an exception is thrown, the finally block will execute even if no catch clause matches.
If a function is returns to the caller from inside a try/catch clauses, via an uncaught exception or a return statement, the finally clause is executed just before the function returns. The finally clause is optional. However, a try clause requires at least one catch or a finally clause to follow it.
// FinallyExample.zen
function divide(a, b)
return a / b
function main(...arguments)
try
var a = 10
var b = 0
var c = divide(a, b)
printf('%d / %d = %d\n', a, b, c)
finally
print('This statement was executed.')
As you can see, the print statement inside the finally clause was executed even when an exception was thrown. Without the finally clause the exception would have prevented the print statement from being executed.


Welcome to Old Phone Jokes!
Everything posted here are from my good ol' Nokia 6120, sent by people through text messages from 6 years ago at most.
Browsing here is easy! Just click on any of the titles listed on the right side of the pages of this site. They are ordered from the oldest post to the newest ones. Three latest posts can also be found below.
Have fun!
Showing recent entries
by Unknown
Posted on October 31, 2016 at 10:00 PM
One day, there was a lola. She saw a very cute man...
Read Moreby Unknown
Posted on October 31, 2016 at 10:00 PM
"Judith"
Read Moreby Unknown
Posted on October 31, 2016 at 10:00 PM
A farmer took a huge dump in his bathroom...
Read More


Created by Dr Adele Register
Although we learned in the first law that the total amount of energy, including heat, is conserved in an isolated system, it is not possible to use the energy in a system with 100% efficiency.
Gravitational
Chemical
Elastic
Electromagnetic
“Thermal” energy
Kinetic energy of atoms and molecules
Moves from warmer to cooler object
Measured in calories
- amount of heat required to raise 1 gram of room temperature water by 1° Celsius
Conduction - Transfer of heat through collisions of atoms and electrons
Convection - Motion of a mass of fluid where warmer atoms are transported from one place to another
Radiation - Infrared energy that travels across space until absorbed by an object and converted into kinetic energy of molecules
A measurement that reflects how vigorously atoms are moving and colliding in a material
Three temperature scales
Fahrenheit
Celsius
Kelvin
Absolute zero - Temperature at which there is no motion of atoms
A comparison of temperature scales
| Water Freezes | Water Boils | Degrees between freezing and boiling |
|
| Farenheit | 32° F | 212° F | 180 degrees |
| Celsius | 0° C | 100° C | 100 degrees |
| Kelvin | 273° K | 373° K | 100 degrees |
Restrictions on the way heat and other energy can be transferred or used
Heat will not flow spontaneously from a cold to hot body
You cannot construct an engine that does nothing but convert heat to useful work
Every isolated system becomes more disordered with time


The VisContent has many instance data fields above and beyond those defined in
VisClass
and
VisCompClass
. These new instance fields deal with such topics as content attributes, the way the content interacts with the view, the document described by the content, and how the content handles input.
All the instance fields defined by
VisContentClass
and their definitions are shown in VisContent Instance Data Fields
. Each field is described later in this section.
Code Display 17-1 VisContent Instance Data Fields
/* All the instance fields defined in VisContentClass are described below. You * will likely use very few of them, if any; see the later sections of this * chapter for specific information about each field. */
/* The following fields deal with the GenView and the view window. */ @instance optr VCNI_view = 0; @instance WindowHandle VCNI_window = 0; @instance word VCNI_viewHeight = 0; @instance word VCNI_viewWidth = 0;
/* VCNI_attrs determines the content's attributes. */ @instance VisContentAttrs VCNI_attrs = 0;
/* The possible flags for VCNI_attrs are * VCNA_SAME_WIDTH_AS_VIEW 0x80 * VCNA_SAME_HEIGHT_AS_VIEW 0x40 * VCNA_LARGE_DOCUMENT_MODEL 0x20 * VCNA_WINDOW_COORDINATE_MOUSE_EVENTS 0x10 * VCNA_ACTIVE_MOUSE_GRAB_REQUIRES_LARGE_EVENTS 0x08 * VCNA_VIEW_DOC_BOUNDS_SET_MANUALLY 0x04 */
/* The following fields determine features of the content's document. */ @instance PointDWord VCNI_docOrigin = {0, 0}; @instance PointWWFixed VCNI_scaleFactor = {{0, 1}, {0, 1}};
/* The following fields deal with how the content handles input. */ @instance ChunkHandle VCNI_prePassiveMouseGrabList = 0; @instance VisMouseGrab VCNI_impliedMouseGrab = {0, 0, {0, 0}, (VIFGF_MOUSE | VIFGF_PTR), 0}; @instance VisMouseGrab VCNI_activeMouseGrab = {0, 0, {0, 0}, 0, 0}; @instance ChunkHandle VCNI_postPassiveMouseGrabList = 0; @instance KbdGrab VCNI_kbdGrab = {0, 0}; @instance FTVMCGrab VCNI_focusExcl = {0, MAEF_FOCUS}; @instance FTVMCGrab VCNI_targetExcl = {0, MAEF_TARGET}; @instance Handle VCNI_holdUpInputQueue = 0; @instance word VCNI_holdUpInputCount = 0; @instance byte VCNI_holdUpInputFlags = 0;
/* The type flags of the content are special and should not be altered. */ @default VI_typeFlags = VTF_IS_COMPOSITE | VTF_IS_WINDOW | VTF_IS_CONTENT | VTF_IS_WIN_GROUP | VTF_IS_INPUT_NODE;
Fields That Affect the Document
Fields That Affect Input Events


Sylvernus Akubo
number: +(234)8027206129
email<EMAIL_ADDRESS>I'm python & django developer, specialised in back-end code and logical architecture, and am basically self taught.
Can't be the perfect guy but am definitely the right guy for your project,i write some handful of sourcy and pythonic code, worked with django for some couple of months.
Am also expanding my knowledge to some wide range of web technology like bootstrap, javascript, celery and RabbitMQ.
skills
html
bootstrap
python
{% load static %}
django
portfolio
facebook twitter github
{% include 'resume/portfolio.html' %}
I'm python & django developer, specialised in back-end code and logical architecture, and am basically self taught.
Can't be the perfect guy but am definitely the right guy for your project,i write some handful of sourcy and pythonic code, worked with django for some couple of months.
Am also expanding my knowledge to some wide range of web technology like bootstrap, javascript, celery and RabbitMQ.
skills
html
bootstrap
python
{% load static %}
django
facebook twitter github
{% include "resume/form.html" %}
{% endblock %}


AMDGPU Instruction Syntax¶
Instructions¶
Syntax¶
An instruction has the following syntax:
<
opcode mnemonic> <
operand0>, <
operand1>,... <
modifier0> <
modifier1>...
Operands are normally comma-separated while modifiers are space-separated.
The order of operands and modifiers is fixed. Most modifiers are optional and may be omitted.
Opcode Mnemonic¶
Opcode mnemonic describes opcode semantics and may include one or more suffices in this order:
Type and Size Suffices¶
Instructions which operate with data have an implied type of data operands. This data type is specified as a suffix of instruction mnemonic.
There are instructions which have 2 type suffices: the first is the data type of the destination operand, the second is the data type of source data operand(s).
Note that data type specified by an instruction does not apply to other kinds of operands such as addresses, offsets and so on.
The following table enumerates the most frequently used type suffices.
Type Suffices Packed instruction? Data Type _b512, _b256, _b128, _b64, _b32, _b16, _b8 No Bits. _u64, _u32, _u16, _u8 No Unsigned integer. _i64, _i32, _i16, _i8 No Signed integer. _f64, _f32, _f16 No Floating-point. _b16, _u16, _i16, _f16 Yes Packed.
Instructions which have no type suffices are assumed to operate with typeless data. The size of data is specified by size suffices:
Size Suffix Implied data type Required register size in dwords - b32 1 x2 b64 2 x3 b96 3 x4 b128 4 x8 b256 8 x16 b512 16 x b32 1 xy b64 2 xyz b96 3 xyzw b128 4 d16_x b16 1 d16_xy b16x2 2 for GFX8.0, 1 for GFX8.1 and GFX9 d16_xyz b16x3 3 for GFX8.0, 2 for GFX8.1 and GFX9 d16_xyzw b16x4 4 for GFX8.0, 2 for GFX8.1 and GFX9
Warning
There are exceptions from rules described above. Operands which have type different from type specified by the opcode are tagged in the description.
Examples of instructions with different types of source and destination operands:
s_bcnt0_i32_b64
v_cvt_f32_u32
Examples of instructions with one data type:
v_max3_f32
v_max3_i16
Examples of instructions which operate with packed data:
v_pk_add_u16
v_pk_add_i16
v_pk_add_f16
Examples of typeless instructions which operate on b128 data:
buffer_store_dwordx4
flat_load_dwordx4
Encoding Suffices¶
Most VOP1, VOP2 and VOPC instructions have several variants: they may also be encoded in VOP3, DPP and SDWA formats.
The assembler will automatically use optimal encoding based on instruction operands. To force specific encoding, one can add a suffix to the opcode of the instruction:
Encoding Encoding Suffix Native 32-bit encoding (VOP1, VOP2 or VOPC) _e32 VOP3 (64-bit) encoding _e64 DPP encoding _dpp SDWA encoding _sdwa
These suffices are used in this reference to indicate the assumed encoding. When no suffix is specified, a native encoding is implied.


Welcome
Welcome
testing wxt PIs
WIKI
WIKI
test wiki import
WIKIPEDIA
WIKIPEDIA
test wikipedia import
Transformed Out
Transformed Out
test transformed output
Transformed In
Transformed In
test transformed input
DTS
DTS
Date Time Stamp
Fragments
Fragments
bs was here
PopFragments
PopFragments
testing popfragments
Fragmentlinks
Fragmentlinks
testing popfragments
Foots
Foots
bs was here leaving footprints
Summaries
Summaries
testing collection of summaries
Demolinks
Demolinks
testing demolinks
Collecting
Collecting
testing collections
ModuleTOC
ModuleTOC
testing local TOC
ModuleMap
ModuleMap
testing Module map
Path
Path
testing path
Index
xlink
xlink
testing xlink and xlinklist
Encoding
Encoding
testing encoding
Database
Database
testing database access
ImportXML
ImportXML
testing xml import
ImportTXT
ImportTXT
testing text import
ImportScriptTXT
ImportScriptTXT
testing text import from script
ImportScriptDB
ImportScriptDB
testing text import from script
ImportMultiTXT
ImportMultiTXT
testing text import
Pops
Pops
testing popups
Expand
Expand
testing ajax expand
Backup
Backup
testing backup
Indexes
Source:
_
ix.xml
ixwords
It is suprisingly many similarities between
Napoleon
and my neighbour
Jensen
.
ixtable
Hansen
Pops
neighbour with dog
Jensen
Index
neighbour
Napoleon
Pops
the one from France
Index
bad luck at Waterloo


Facebook Touts Crypto Project Libra: 51,000 Transactions and Counting
by Daily Hodl StaffFacebook’s project Libra is building a global community of developers and technical infrastructure as the controversial digital currency is underway, despite efforts by regulators to slow it down and even halt its launch. Based on a permissioned blockchain, unlike Bitcoin and other cryptocurrencies that use public blockchains, the Libra testnet has logged over 51,000 transactions since it was reset in September.
After the Libra Association lost key member companies amid regulatory pressure and ominous letters from politicians that cautioned against any affiliation with the project, 21 remaining members, including Facebook, signed the association’s official charter in Geneva, Switzerland last month.
The organization is now praising its passionate community of developers who are moving the project forward. According to an official blog post,
“Our community of developers has responded enthusiastically, logging an amazing 34 projects in just seven weeks since launch of the testnet:
- 10 wallets
- 11 blockchain explorers
- 2 IDEs
- 1 API
- 11 clients”
According to Libra’s development update last month,
“Following the Testnet, we hope to have a successful launch of the Libra Mainnet. One method we use for tracking the project’s success is how many of the deployed nodes are managed by different partners.
The end goal of Mainnet is for all partners to have nodes deployed on the network. Each node will run on a mixture of on-premises and cloud hosted infrastructure. Our belief is that wider diversity of infrastructure will provide more resiliency to the Libra network.”
You can check out Libra’s latest blog post here.


Match Play. Double Match Point. How should Red play 42?
pips Red=126 White=146
(CorrectAnswer= 0/0, ErrorScore= 0)
White’s position is just too strong for Red to give him his whole roll on his next turn. Bar/23, 9/5 is just too passive.
Red must risk the hit with bar/23, 6/2*. 25% of the time the plan will work very well and with two more White blots to aim at Red will be very happy.
The hitting play wins 3% more of the time than the passive play and at DMP the play is very clear.
Red must risk the hit with bar/23, 6/2*. 25% of the time the plan will work very well and with two more White blots to aim at Red will be very happy.
The hitting play wins 3% more of the time than the passive play and at DMP the play is very clear.
1. Cubeful 2-ply bar/23 6/2* Eq.: -0.023 0.489 0.265 0.014 - 0.511 0.149 0.009 2. Cubeful 2-ply bar/23 9/5 Eq.: -0.071 (-0.048) 0.464 0.193 0.007 - 0.536 0.116 0.005 3. Cubeful 0-ply bar/23 10/6 Eq.: -0.307 (-0.285) 0.346 0.129 0.004 - 0.654 0.180 0.009 4. Cubeful 0-ply bar/23 13/9 Eq.: -0.309 (-0.287) 0.345 0.130 0.005 - 0.655 0.162 0.006 5. Cubeful 0-ply bar/23 5/1 Eq.: -0.431 (-0.408) 0.284 0.097 0.003 - 0.716 0.276 0.020


Warning: this extension completely polyfills the WebVR API. If you have a working WebVR implementation, it will be replaced!
This is a work in progress in a very early stage, can't be turned off except by disabling or removing the extension
Headset
Left-click and drag on screen to rotate - Right-click to pan - Mousewheel to zoom
W Translate - E Rotate - Ctrl Snap to 1m
Position 0 0 0
Orientation 0 0 0 0
Stored positions (coming soon)


Every DockingLayout item can have a specific drop position. Drop position is the destination of an item as a result of a dragging operation ( reordering of items ). They are applied as a property dropPosition to the items of the Layout.
The Drop position is an array of strings indicating the allowed locations at which the item can be dropped. Possible values are:
disableDrag is a Smart.TabItem property that can be applied in order to disable the dragging of a specific tab items.


In 1981 Wozniak left Apple after he was involved in an airplane crash. He was piloting the Beechcraft Bonanza and as the plane was climbing it bounced down the runway, and went through two fences and crashed into an embarkement. Wozniak and his three passengers his fianc, her brother and the brothers girlfriend were all injured. Wozniak suffered face and head injuries and also suffered from five weeks from anterograde amnesia. He although regained his memory through his wifes help, logic, and video games and he was able to establish new memories. Then he returned again in 1983 to work on product development and working just as an engineer. He returned to UC Berkley and got his degree in 1986 in electrical and computer engineering under the name Rocky Clarke.
Then in February 6, 1987 Wozniak ended his full time employment with apple 12 years after having created the company. He was also an Apple shareholder until Jobs death in 2011. Wozniak left Apple because he felt it was the bane of his existence and it was a distraction for who he wanted to be. In 2013 Wozniak mentioned about Jobs that the Macintosh failed under Steve Jobs, and that it wasn't until Jobs left that it became a success. But Jobs did return to Apple as the leading philanthropist and CEO of Apple. Wozniak founded a new venture called CL 9 which developed the first programmable universal remote control. In 2001 Wozniak founded Wheels of Zeus (WOZ), to create wireless GPS technology to "help everyday people find everyday things much more easily." In 2002, he joined the Board of Directors of Ripcord Networks, Inc., joining Ellen Hancock, Gil Amelio, Mike Connor, and Wheels of Zeus co-founder Alex Fielding, all Apple alumni, in a new telecommunications venture. Later the same year he joined the Board of Directors of Danger, Inc., the maker of the Hip Top (a.k.a. Side Kick from T-Mobile). That is what Wozniak did after Apple currently as of now he was appointed distinguished professor of technology in the faculty of engineering and information technology at the University of Technology in Sydney, Australia.


I recently graduated from the University of Washington with a degree in Environmental Health and Biochemistry. Right now I'm an Environmental Consultant at Environmental Resources Management in Manhattan, NY.


Choose the hundred dollar case!
First Case
Second Case
Third Case
Fourth Case
Fifth Case
Sixth Case
Seventh Case
Eighth Case
Ninth Case
Tenth Case
Cases Remaining:


"""
Fast cryptographic hash of Python objects, with a special case for fast
hashing of numpy arrays.
"""
# Author: Gael Varoquaux <gael dot varoquaux at normalesup dot org>
# Copyright (c) 2009 Gael Varoquaux
# License: BSD Style, 3 clauses.
import pickle
import hashlib
import sys
import types
import struct
import io
import decimal
from ._compat import _bytes_or_unicode, PY3_OR_LATER
if PY3_OR_LATER:
Pickler = pickle._Pickler
else:
Pickler = pickle.Pickler
class _ConsistentSet(object):
""" Class used to ensure the hash of Sets is preserved
whatever the order of its items.
"""
def __init__(self, set_sequence):
# Forces order of elements in set to ensure consistent hash.
try:
# Trying first to order the set assuming the type of elements is
# consistent and orderable.
# This fails on python 3 when elements are unorderable
# but we keep it in a try as it's faster.
self._sequence = sorted(set_sequence)
except (TypeError, decimal.InvalidOperation):
# If elements are unorderable, sorting them using their hash.
# This is slower but works in any case.
self._sequence = sorted((hash(e) for e in set_sequence))
class _MyHash(object):
""" Class used to hash objects that won't normally pickle """
def __init__(self, *args):
self.args = args
[docs]class Hasher(Pickler):
""" A subclass of pickler, to do cryptographic hashing, rather than
pickling.
"""
def __init__(self, hash_name='md5'):
self.stream = io.BytesIO()
# By default we want a pickle protocol that only changes with
# the major python version and not the minor one
protocol = (pickle.DEFAULT_PROTOCOL if PY3_OR_LATER
else pickle.HIGHEST_PROTOCOL)
Pickler.__init__(self, self.stream, protocol=protocol)
# Initialise the hash obj
self._hash = hashlib.new(hash_name)
[docs] def hash(self, obj, return_digest=True):
try:
self.dump(obj)
except pickle.PicklingError as e:
e.args += ('PicklingError while hashing %r: %r' % (obj, e),)
raise
dumps = self.stream.getvalue()
self._hash.update(dumps)
if return_digest:
return self._hash.hexdigest()
[docs] def save(self, obj):
if isinstance(obj, (types.MethodType, type({}.pop))):
# the Pickler cannot pickle instance methods; here we decompose
# them into components that make them uniquely identifiable
if hasattr(obj, '__func__'):
func_name = obj.__func__.__name__
else:
func_name = obj.__name__
inst = obj.__self__
if type(inst) == type(pickle):
obj = _MyHash(func_name, inst.__name__)
elif inst is None:
# type(None) or type(module) do not pickle
obj = _MyHash(func_name, inst)
else:
cls = obj.__self__.__class__
obj = _MyHash(func_name, inst, cls)
Pickler.save(self, obj)
[docs] def memoize(self, obj):
# We want hashing to be sensitive to value instead of reference.
# For example we want ['aa', 'aa'] and ['aa', 'aaZ'[:2]]
# to hash to the same value and that's why we disable memoization
# for strings
if isinstance(obj, _bytes_or_unicode):
return
Pickler.memoize(self, obj)
# The dispatch table of the pickler is not accessible in Python
# 3, as these lines are only bugware for IPython, we skip them.
[docs] def save_global(self, obj, name=None, pack=struct.pack):
# We have to override this method in order to deal with objects
# defined interactively in IPython that are not injected in
# __main__
kwargs = dict(name=name, pack=pack)
if sys.version_info >= (3, 4):
del kwargs['pack']
try:
Pickler.save_global(self, obj, **kwargs)
except pickle.PicklingError:
Pickler.save_global(self, obj, **kwargs)
module = getattr(obj, "__module__", None)
if module == '__main__':
my_name = name
if my_name is None:
my_name = obj.__name__
mod = sys.modules[module]
if not hasattr(mod, my_name):
# IPython doesn't inject the variables define
# interactively in __main__
setattr(mod, my_name, obj)
dispatch = Pickler.dispatch.copy()
# builtin
dispatch[type(len)] = save_global
# type
dispatch[type(object)] = save_global
# classobj
dispatch[type(Pickler)] = save_global
# function
dispatch[type(pickle.dump)] = save_global
def _batch_setitems(self, items):
# forces order of keys in dict to ensure consistent hash.
try:
# Trying first to compare dict assuming the type of keys is
# consistent and orderable.
# This fails on python 3 when keys are unorderable
# but we keep it in a try as it's faster.
Pickler._batch_setitems(self, iter(sorted(items)))
except TypeError:
# If keys are unorderable, sorting them using their hash. This is
# slower but works in any case.
Pickler._batch_setitems(self, iter(sorted((hash(k), v)
for k, v in items)))
[docs] def save_set(self, set_items):
# forces order of items in Set to ensure consistent hash
Pickler.save(self, _ConsistentSet(set_items))
dispatch[type(set())] = save_set
[docs]class NumpyHasher(Hasher):
""" Special case the hasher for when numpy is loaded.
"""
def __init__(self, hash_name='md5', coerce_mmap=False):
"""
Parameters
----------
hash_name: string
The hash algorithm to be used
coerce_mmap: boolean
Make no difference between np.memmap and np.ndarray
objects.
"""
self.coerce_mmap = coerce_mmap
Hasher.__init__(self, hash_name=hash_name)
# delayed import of numpy, to avoid tight coupling
import numpy as np
self.np = np
if hasattr(np, 'getbuffer'):
self._getbuffer = np.getbuffer
else:
self._getbuffer = memoryview
[docs] def save(self, obj):
""" Subclass the save method, to hash ndarray subclass, rather
than pickling them. Off course, this is a total abuse of
the Pickler class.
"""
if isinstance(obj, self.np.ndarray) and not obj.dtype.hasobject:
# Compute a hash of the object
# The update function of the hash requires a c_contiguous buffer.
if obj.shape == ():
# 0d arrays need to be flattened because viewing them as bytes
# raises a ValueError exception.
obj_c_contiguous = obj.flatten()
elif obj.flags.c_contiguous:
obj_c_contiguous = obj
elif obj.flags.f_contiguous:
obj_c_contiguous = obj.T
else:
# Cater for non-single-segment arrays: this creates a
# copy, and thus aleviates this issue.
# XXX: There might be a more efficient way of doing this
obj_c_contiguous = obj.flatten()
# memoryview is not supported for some dtypes, e.g. datetime64, see
# https://github.com/numpy/numpy/issues/4983. The
# workaround is to view the array as bytes before
# taking the memoryview.
self._hash.update(
self._getbuffer(obj_c_contiguous.view(self.np.uint8)))
# We store the class, to be able to distinguish between
# Objects with the same binary content, but different
# classes.
if self.coerce_mmap and isinstance(obj, self.np.memmap):
# We don't make the difference between memmap and
# normal ndarrays, to be able to reload previously
# computed results with memmap.
klass = self.np.ndarray
else:
klass = obj.__class__
# We also return the dtype and the shape, to distinguish
# different views on the same data with different dtypes.
# The object will be pickled by the pickler hashed at the end.
obj = (klass, ('HASHED', obj.dtype, obj.shape, obj.strides))
elif isinstance(obj, self.np.dtype):
# Atomic dtype objects are interned by their default constructor:
# np.dtype('f8') is np.dtype('f8')
# This interning is not maintained by a
# pickle.loads + pickle.dumps cycle, because __reduce__
# uses copy=True in the dtype constructor. This
# non-deterministic behavior causes the internal memoizer
# of the hasher to generate different hash values
# depending on the history of the dtype object.
# To prevent the hash from being sensitive to this, we use
# .descr which is a full (and never interned) description of
# the array dtype according to the numpy doc.
klass = obj.__class__
obj = (klass, ('HASHED', obj.descr))
Hasher.save(self, obj)
[docs]def hash(obj, hash_name='md5', coerce_mmap=False):
""" Quick calculation of a hash to identify uniquely Python objects
containing numpy arrays.
Parameters
-----------
hash_name: 'md5' or 'sha1'
Hashing algorithm used. sha1 is supposedly safer, but md5 is
faster.
coerce_mmap: boolean
Make no difference between np.memmap and np.ndarray
"""
if 'numpy' in sys.modules:
hasher = NumpyHasher(hash_name=hash_name, coerce_mmap=coerce_mmap)
else:
hasher = Hasher(hash_name=hash_name)
return hasher.hash(obj)


Useful commands and tricks to raise efficiency under Mac OS and Linux, keep updating!
Mac OS Tricks
Terminal Themes and VIM
Follow this GitHub repository to build your own powerful and colorful Terminal: [color-theme-link], [vimrc-link]
Generate New SSH-Key and Add to GitHub
Please refer the link (based on Mac OS platform):
- Generating a new SSH key and adding it to the ssh-agent.
- Working with SSH key passphrases.
- Adding a new SSH key to your GitHub account.
Shut Down and Turn on Local Backup
shut down:
$ sudo tmutil disablelocal
trun on:
$ sudo tmutil enablelocal
Modify Launchpad Icon Size
$ defaults write com.apple.dock springboard-rows -int 7 # change the size by modifying the number
$ defaults write com.apple.dock springboard-columns -int 6 # change the size by modifying the number
$ killall Dock
Reset:
$ defaults write com.apple.dock ResetLaunchPad -bool TRUE
$ killall Dock
Change Source ‘.bash_profile’ to Source ‘.profile’
$ cat .bash_profile >> .profile
$ rm .bash_profile (optional)
$ echo "source ~/.profile" >> .bash_profile
Open Port 22
Note: most information is borrowed from [How do I open port 22 in OS X 10.6.7].
Handling the problem of:
$ ssh localhost
ssh: connect to host localhost port 22: Connection refused
The above problem happens since the remote login is closed in Mac OS X
$ sudo systemsetup -getremotelogin
Remote Login: off
Here is the solution:
$ sudo systemsetup -setremotelogin on
$ ssh localhost
Last login: ......
$ _
Uninstall MySQL using Terminal Completely
$ cd ~/
$ sudo rm /usr/local/mysql
$ sudo rm -rf /usr/local/var/mysql
$ sudo rm -rf /usr/local/mysql*
$ sudo rm -rf /Library/StartupItems/MySQLCOM
$ sudo rm -rf /Library/PreferencePanes/My*
Then open hostconfig:
$ vim /etc/hostconfig
and removed the line: MYSQLCOM=-YES-rm -rf ~/Library/PreferencePanes/My*
, after that, removing following:
$ sudo rm -rf /Library/Receipts/mysql*
$ sudo rm -rf /Library/Receipts/MySQL*
$ sudo rm -rf /var/db/receipts/com.mysql.*
Homebrew: Rollback
For example: rollback from Python 3.7 to Python 3.6.5_1
brew switch python 3.6.5_1
ref: Homebrew: Rollback from Python 3.7 to Python 3.6.5.x?.
Terminal Cheatsheet
Note: Information from [0nn0/terminal-mac-cheatsheet].
Letters are shown capitalized for readability only. Capslock should be off.
Contains: SHORTCUTS, CORE COMMANDS, CHAINING COMMANDS, PIPING COMMANDS, COMMAND HISTORY, FILE MANAGEMENT, DIRECTORY MANAGEMENT, SEARCH, HELP.
Linux (Ubuntu) Tricks
Format USB Flash Drive
Please refer the link: wikiHow · How to Format a USB Flash Drive in Ubuntu.


| Package | com.yahoo.astra.fl.charts.series |
| Class | public class Series |
| Inheritance | Series fl.core.UIComponent |
| Implements | ISeries |
| Subclasses | CartesianSeries, PieSeries |
Series
object
shouldn't be instantiated directly. Instead, a subclass with a concrete
implementation should be used.
| Property | Defined by | ||
|---|---|---|---|
| chart : Object
The chart in which this series appears.
| Series | ||
| dataProvider : Object
The data provider for this series.
| Series | ||
| dataTipFunction : Function
DataTip Function for series
| Series | ||
| displayName : String
The name of the series as it appears to the user.
| Series | ||
| itemRenderer : Object
The class used to instantiate item renderers.
| Series | ||
| legendLabelFunction : Function
If defined, the chart will call the input function to determine the text displayed in
in the chart's legend.
| Series | ||
| length : int [read-only]
The number of items in the series.
| Series |
| Method | Defined by | ||
|---|---|---|---|
|
Series(dataProvider:Object = null)
Constructor.
| Series | ||
|
Creates a copy of the ISeries object.
| Series | ||
|
itemRendererToIndex(renderer:ISeriesItemRenderer):int
Returns the index of an item renderer.
| Series | ||
|
Converts an item to its corresponding item renderer.
| Series |
| Method | Defined by | ||
|---|---|---|---|
|
invalidateMarker(marker:ISeriesItemRenderer):void
Invalidates a marker (considered new).
| Series | ||
|
isMarkerInvalid(marker:ISeriesItemRenderer):Boolean
Indicates whether special considerations should be taken for a newly created marker.
| Series | ||
|
validateMarker(marker:ISeriesItemRenderer):void
Makes a marker valid.
| Series |
| chart | property |
chart:Object
[read-write]The chart in which this series appears.
Implementation public function get chart():Object
public function set chart(value:Object):void
| dataProvider | property |
dataProvider:Object
[read-write]
The data provider for this series. Accepts Array
or XMLList
objects.
public function get dataProvider():Object
public function set dataProvider(value:Object):void
| dataTipFunction | property |
dataTipFunction:Function
[read-write]DataTip Function for series
Implementation public function get dataTipFunction():Function
public function set dataTipFunction(value:Function):void
| displayName | property |
displayName:String
[read-write]The name of the series as it appears to the user.
Implementation public function get displayName():String
public function set displayName(value:String):void
| itemRenderer | property |
itemRenderer:Object
[read-write]The class used to instantiate item renderers.
Implementation public function get itemRenderer():Object
public function set itemRenderer(value:Object):void
| legendLabelFunction | property |
legendLabelFunction:Function
[read-write]If defined, the chart will call the input function to determine the text displayed in in the chart's legend.
Implementation public function get legendLabelFunction():Function
public function set legendLabelFunction(value:Function):void
| length | property |
length:int
[read-only]The number of items in the series.
Implementation public function get length():int
| Series | () | constructor |
public function Series(dataProvider:Object = null)
Constructor.
ParametersdataProvider:Object (default = null )
|
| clone | () | method |
public function clone():ISeries
Creates a copy of the ISeries object.
ReturnsISeries —
a new ISeries object
|
| invalidateMarker | () | method |
protected function invalidateMarker(marker:ISeriesItemRenderer):void
Invalidates a marker (considered new).
Parametersmarker:ISeriesItemRenderer |
| isMarkerInvalid | () | method |
protected function isMarkerInvalid(marker:ISeriesItemRenderer):Boolean
Indicates whether special considerations should be taken for a newly created marker.
Parametersmarker:ISeriesItemRenderer |
Boolean |
| itemRendererToIndex | () | method |
public function itemRendererToIndex(renderer:ISeriesItemRenderer):int
Returns the index of an item renderer.
Parametersrenderer:ISeriesItemRenderer — The renderer whose index is to be returned.
|
int — The index of the renderer.
|
| itemToItemRenderer | () | method |
public function itemToItemRenderer(item:Object):ISeriesItemRenderer
Converts an item to its corresponding item renderer.
Parametersitem:Object — The item from the dataProvider to be converted to a renderer.
|
ISeriesItemRenderer —
The renderer that corresponds to the item.
|
| validateMarker | () | method |
protected function validateMarker(marker:ISeriesItemRenderer):void
Makes a marker valid. To be used by subclasses.
Parametersmarker:ISeriesItemRenderer |


Class GridViewExtensions
Extensions for IGridView<T> implementations that provide basic utility functions for them.
Namespace: SadRogue.Primitives.GridViews
Assembly: TheSadRogue.Primitives.dll
Syntax
public static class GridViewExtensions : Object
Methods
ApplyOverlay<T>(ISettableGridView<T>, IGridView<T>)
Sets all the values of the current grid view to be equal to the corresponding values from the grid view you pass in.
Declaration
public static void ApplyOverlay<T>(this ISettableGridView<T> self, IGridView<T> overlay)
Parameters
| Type | Name | Description |
|---|---|---|
| ISettableGridView<T> | self | |
| IGridView<T> | overlay | The data apply to the view. Must have identical dimensions to the current view. |
Type Parameters
| Name | Description |
|---|---|
| T |
ApplyOverlay<T>(ISettableGridView<T>, Func<Point, T>)
Sets the values for each location of the current grid view to be equal to the value returned from the given function when given that position.
Declaration
public static void ApplyOverlay<T>(this ISettableGridView<T> self, Func<Point, T> valueFunc)
Parameters
| Type | Name | Description |
|---|---|---|
| ISettableGridView<T> | self | |
| Func<Point, T> | valueFunc | Function returning data for each location in the grid view. |
Type Parameters
| Name | Description |
|---|---|
| T |
Bounds<T>(IGridView<T>)
Gets a rectangle representing the bounds of the current grid view.
Declaration
public static Rectangle Bounds<T>(this IGridView<T> gridView)
Parameters
| Type | Name | Description |
|---|---|---|
| IGridView<T> | gridView |
Returns
| Type | Description |
|---|---|
| Rectangle | A rectangle representing the grid view's bounds. |
Type Parameters
| Name | Description |
|---|---|
| T |
Contains<T>(IGridView<T>, Point)
Returns whether or not the given position is contained within the current grid view or not.
Declaration
public static bool Contains<T>(this IGridView<T> gridView, Point position)
Parameters
| Type | Name | Description |
|---|---|---|
| IGridView<T> | gridView | |
| Point | position | The position to check. |
Returns
| Type | Description |
|---|---|
| Boolean | True if the given position is contained within this grid view, false otherwise. |
Type Parameters
| Name | Description |
|---|---|
| T |
Contains<T>(IGridView<T>, Int32, Int32)
Returns whether or not the given position is contained within the current grid view or not.
Declaration
public static bool Contains<T>(this IGridView<T> gridView, int x, int y)
Parameters
| Type | Name | Description |
|---|---|---|
| IGridView<T> | gridView | |
| Int32 | x | X-value of the position to check. |
| Int32 | y | Y-value of the position to check. |
Returns
| Type | Description |
|---|---|
| Boolean | True if the given position is contained within this grid view, false otherwise. |
Type Parameters
| Name | Description |
|---|---|
| T |
ExtendToString<T>(IGridView<T>, Int32, String, String, Func<T, String>, String, String, String, String)
Allows stringifying the contents of a grid view. Takes characters to surround the grid view representation, and each row, the method used to get the string representation of each element (defaulting to the ToString function of type T), and separation characters for each element and row. Takes the size of the field to give each element, characters to surround the GridView printout, and each row, the method used to get the string representation of each element (defaulting to the ToString function of type T), and separation characters for each element and row.
Declaration
public static string ExtendToString<T>(this IGridView<T> gridView, int fieldSize, string begin = "", string beginRow = "", Func<T, string> elementStringifier = null, string rowSeparator = "\n", string elementSeparator = " ", string endRow = "", string end = "")
Parameters
| Type | Name | Description |
|---|---|---|
| IGridView<T> | gridView | |
| Int32 | fieldSize | The amount of space each element should take up in characters. A positive number aligns the text to the right of the space, while a negative number aligns the text to the left. |
| String | begin | Character(s) that should precede the IGridView printout. |
| String | beginRow | Character(s) that should precede each row. |
| Func<T, String> | elementStringifier | Function to use to get the string representation of each value. Null uses the ToString function of type T. |
| String | rowSeparator | Character(s) to separate each row from the next. |
| String | elementSeparator | Character(s) to separate each element from the next. |
| String | endRow | Character(s) that should follow each row. |
| String | end | Character(s) that should follow the IGridView printout. |
Returns
| Type | Description |
|---|---|
| String | A string representation of the grid view. |
Type Parameters
| Name | Description |
|---|---|
| T |
ExtendToString<T>(IGridView<T>, String, String, Func<T, String>, String, String, String, String)
Allows stringifying the contents of a grid view. Takes characters to surround the grid view printout, and each row, the method used to get the string representation of each element (defaulting to the ToString function of type T), and separation characters for each element and row.
Declaration
public static string ExtendToString<T>(this IGridView<T> gridView, string begin = "", string beginRow = "", Func<T, string> elementStringifier = null, string rowSeparator = "\n", string elementSeparator = " ", string endRow = "", string end = "")
Parameters
| Type | Name | Description |
|---|---|---|
| IGridView<T> | gridView | |
| String | begin | Character(s) that should precede the IGridView printout. |
| String | beginRow | Character(s) that should precede each row. |
| Func<T, String> | elementStringifier | Function to use to get the string representation of each value. null uses the ToString function of type T. |
| String | rowSeparator | Character(s) to separate each row from the next. |
| String | elementSeparator | Character(s) to separate each element from the next. |
| String | endRow | Character(s) that should follow each row. |
| String | end | Character(s) that should follow the IGridView printout. |
Returns
| Type | Description |
|---|---|
| String | A string representation of the values in the grid view. |
Type Parameters
| Name | Description |
|---|---|
| T |
Positions<T>(IGridView<T>)
Iterates through each position in the grid view.
Declaration
public static RectanglePositionsEnumerator Positions<T>(this IGridView<T> gridView)
Parameters
| Type | Name | Description |
|---|---|---|
| IGridView<T> | gridView |
Returns
| Type | Description |
|---|---|
| RectanglePositionsEnumerator | All positions in the IGridView. |
Type Parameters
| Name | Description |
|---|---|
| T |


{# TODO: depdupe with example.html #}
Chessboard.js initializes to an empty board with no second argument.
{% include "examples/1000-empty-board.md" | htmlPath %}
{% include "head.html" %}
{% include "header.html" %}Chessboard.js initializes to an empty board with no second argument.


| Home | Investment Reference | The Holding Class |
Special structures have been designed to manage dividend, price, and adjustment data in the Vision database. These structures have been created to correctly handle split and currency adjustments automatically. In addition, these structures have been designed to facilitate future reorganizations as the database grows, so that applications that use this data are sheltered from structural changes.
Many items defined for a security are affected by stock splits including price, shares outstanding, and dividends per share. By default, data is returned split adjusted relative to the current date. In general, message names that begin with the character '_' indicate the "raw", unadjusted data value in its initial units. For example, the property _sharesOut defined at Security refers to the actual shares outstanding value as of a specific date. The message sharesOut returns this value adjusted for any splits that have occurred since that date.
The message dividend returns the split-adjusted, currency-adjusted dividend value for a specific security. The dividend value is accessed as of the current date by default. The data is adjusted through the current date in the base currency of the security by default. For example:
Named Security GM dividendreturns GM's latest dividend value in US dollars,
Named Security GM :dividend asOf: 9502 . or 9502 evaluate: [ Named Security GM dividend ]returns GM's latest dividend value as of Feb 1995 in US dollars, and
"CAN" asCurrency evaluate: [ Named Security GM dividend ]returns GM's latest dividend value in Canadian dollars. All values are split-adjusted through the current date. The message getDivsFrom:to: returns the total dividends paid by the security between the two dates supplied. For example:
Named Security GM getDivsFrom: 950201 to: 950331returns the total dividends paid between the two dates. The message totalReturnFrom:to: returns the total return between the two dates supplied. For example, to access the total return for the same period use:
Named Security GM totalReturnFrom: 950201 to: 950331The actual time series of dividend values is stored in the time series property dividendSeries. The values in this time series are instances of the class DivRecord, which has been created to store the information needed to fully describe a dividend. In addition to the dividend value, instances of this class maintain the currency and date of the dividend so that proper split and currency adjustments can happen.
The following key messages are defined for the class DivRecord:
| Message | Returns |
| _div | actual dividend value provided |
| div | fully adjusted dividend value |
| date | dividend date |
| adjustmentFactor | split adjustment factor |
| currencyFactor | currency adjustment relative to div date |
| baseCurrency | actual currency of unadjusted dividend |
| currency | current currency (security's by default) |
| security | actual security instance |
To support the possibility of future reorganization of this data structure for performance and storage reasons, the method dividends has been defined to return this time series. Unless you are explicitly writing methods that update the time series, you should use the dividends message to access your data. In this way, your code will be immune to any changes that may be made to the underlying data structure that manages the actual time series.
For example, to display the adjusted and unadjusted dividend values for each of GM's dividends, you could use:
Named Security GM dividends do: [ ^date print: 12 ; #-- date in time series date print: 12 ; #-- date in record - should match div print ; #-- adjusted value _div print ; #-- unadjusted value currencyFactor print ; #-- should be 1 newLine print ; ] ;Note that the dividends message returns an actual time series object so you need not prepend the ":" to the message name.
Dividends are normally updated as part of the daily cycle. Permanent corrections to any incorrect dividends are also made using a database administration procedure. If you need to temporarily fix a dividend for your working session, you can use one of the following messages:
Named Security GM setDivTo: 1.23 asOf: 950513 inCurrency: "US" ;adds a new GM dividend of 1.23 on May 13 in US Dollars.
The message price returns the split-adjusted, currency-adjusted price for a specific security. The price is accessed as of the current date by default. The value is split adjusted through the current date and is in the base currency of the security by default. For example:
Named Security GM pricereturns GM's latest price value in GM's base currency,
Named Security GM :price asOf: 9502 . or 9502 evaluate: [ Named Security GM price ]returns the latest price as of Feb 1995 in the base currency , and
"CAN" asCurrency evaluate: [ Named Security GM price ]returns the latest price in Canadian dollars. All values are split-adjusted through the current date. The message _price returns the unadjusted price as of the current evaluation date.
The messages high, low, and open return the split and currency adjusted high, low, and open values for a security and the messages _high, _low, and _open return the unadjusted values. The message volume returns the split-adjusted volume for a specific security. The message _volume returns the unadjusted volume as of the current evaluation date. The message priceChangeFrom:to: returns the price percentage change value between two dates. For example:
Named Security GM priceChangeFrom: 950201 to: 950331returns the percentage change in price between these two dates.
The actual time series of prices and volumes is stored in the time series property pricingSeries. The values in this time series are instances of the class PriceRecord, which has been created to store the information needed to fully describe the prices and volume for a date. In addition to the price and volume values, instances of this class maintain the currency and date of the price so that proper split and currency adjustments can happen.
The following key messages are defined for the class PriceRecord:
| Message | Returns |
| _price | actual closing price value provided |
| price | split/currency adjusted closing price value |
| _high | actual high value provided |
| high | split/currency adjusted high value |
| _low | actual low value provided |
| low | split/currency adjusted low value |
| _open | actual open value provided |
| open | split/currency adjusted open value |
| _volume | actual volume value provided |
| volume | split adjusted volume value |
| recordDate (date) | price date |
| adjustmentFactor | split adjustment factor |
| currencyFactor | currency adjustment relative to price date |
| baseCurrency | actual currency of unadjusted prices |
| currency | current currency (security's by default) |
| security | actual security instance |
To support the possibility of future reorganization of this data structure for performance and storage reasons, the method prices has been defined to return this time series. Unless you are explicitly writing methods that update the time series, you should use the prices message to access your data. In this way, your code will be immune to any changes that may be made to the underlying data structure that manages the actual time series.
For example, to display the adjusted and unadjusted prices and volumes for all points in GM's time series, you could use:
Named Security GM prices do: [ ^date print: 12 ; #-- date in time series recordDate print: 12 ; #-- date in record - should match price print ; #-- adjusted value _price print ; #-- unadjusted value volume print ; #-- adjusted value _volume print ; #-- unadjusted value currencyFactor print ; #-- should be 1 newLine print ; ] ;Note that the prices message returns an actual time series object so you need not prepend the ":" to the message name. To access a full price record as of a specific date, use the message getPriceRecord. For example, the expressions:
Named Security GM :getPriceRecord asOf: 9511 . do: [ price print ; _price print ] ;and
9511 evaluate: [ Named Security GM getPriceRecord do: [ price print ; _price print ] ; ] ;both return the full price record as of Nov 30, 1995 from which you can access the adjusted and unadjusted prices.
Prices and volumes are normally updated as part of the daily cycle. Permanent corrections to any incorrect data are also made using a database administration procedure. If you need to temporarily fix a value for your working session, you can use one of the following messages:
Named Security GM addPrice: 34.56 asOf: 950513 inCurrency: "US" ;will add a new GM price of 34.56 on May 13 in US Dollars.
All per share and shares outstanding data in Vision is implicitly adjusted through some date. To analyze per share data as of any date other than this implicit date, it is necessary to account for any splits that have occurred between this date and the analysis date. Two viable approaches are available. One alternative is to actually change the values of existing data to reflect any splits that have occurred. Alternatively, stored data can always remain in its raw, unadjusted form and an adjustment factor reflecting any splits that have occurred can be applied to this data. The advantage of this approach is that data values are never changed directly, greatly simplifying the magnitude of work that needs to be done when a split does occur. In addition, if a split is incorrectly introduced, it is much easier and more reliable to just modify a single adjustment factor than it is to unadjust and re-adjust all of the data that was incorrectly adjusted. Because of the data integrity problems that can arise with the former approach, the Vision database uses the adjustment factor approach in its handling of splits.
To adjust per share data it is necessary to know what splits have occurred between the date the data is known to be adjusted through (adjustment date) and the current date. To accomplish this, Vision tracks splits for each security in a time series called rawSplitFactor. The actual factors are stored in this time series as of their ex-date. For example, if a 2-for-1 split in GM Corporation occurred on January 15, 1995, the value 2 would be stored in GM's rawSplitFactor as of this date. If GM's earnings per share on December 31, 1994 is 10 then the adjusted value of eps on or after January 15 is 5 (i.e., 10 / 2 ). If a 3-for-1 split occurred on March 15, then the value 3 would be stored in GM's rawSplitFactor as of this date and GM's adjusted value of eps on or after March 15 would be 1.67 ( i.e., 10 / 2 / 3 ).
Vision tracks a second time series called adjustmentFactor that represents the running product of these raw factors. This variable has an initial value of 1. Each time a split occurs, a new point representing the product of the new raw factor and the last adjustment factor is stored in the adjustment factor as of the ex-date. The data from the previous example is illustrated below:
0 1/15/95 3/15/95
rawSplitFactor 2 3 adjustmentFactor 1 2 6
To properly use the adjustment factor data, you actually need to access values as of the two dates involved, the adjustment date and the current date. The ratio of these factors gives you the correct adjustment. Therefore the correct way to adjust per share data that has been adjusted through January 31 for analysis on May 31 is:
adjustment factor ratio = adjustment factor on May 31 -------------------------------- adjustment factor on January 31 adjusted value = unadjusted value / adjustment factor ratio
The message adjustmentRelativeTo: is used to access the current adjustment factor relative to the date that your data item is known to be adjusted through. If you know that GM's eps is adjusted through January 31, then the expression:
Named Security GM adjustmentRelativeTo: 9501accesses the value needed to adjust the eps value relative to the current analysis date. To adjust the eps, divide the unadjusted value by this adjustment value:
Named Security GM send: [ _eps / # unadjusted (^self adjustmentRelativeTo: 9501) ]The previous example assumes that you know the exact date the data has been adjusted through. You may not always know this explicitly; however, many data items are adjusted as of the date they become effective (i.e., the "as of" date). In this case, the following methodology can be used to access the adjusted value:
Named Security GM getAdjustedDataFor: Named Security GM :_eps
In general, methods have been created that automatically return adjusted values by default. For example, the pricing and dividend data described earlier in this section is adjusted by default. The message _price is defined to return a PriceRecord's unadjusted price (i.e., the original value) and the message price is defined to return a PriceRecord's adjusted price. The message sharesOut is defined at Security to return the split-adjusted value of the _sharesOut property.
Different data sources have different rules for determining the adjustment date of the data. To address the varying requirements, the message adjustmentFactor is normally defined as needed for each class that manages data that can be adjusted.
The message addSplitFactorOf: onExDate: is used to add a new split factor for a security. This message stores the value of the factor into rawSplitFactor as of the ex-date provided. The new value of adjustmentFactor is then computed and stored on this date as well. For example, if GM has a 2-for-1 split on April 15, 1995 the procedure to add this factor is:
Named Security GM addSplitFactorOf: 2 onExDate: 950415 asDateRaw split information is normally updated during the nightly production cycle. It should never be necessary to use this message directly; however, it can be used to update splits that have not been included in the daily updates or to correct problems during your session. If you insert new dates into the time series, you should also execute the message rebuildAdjustmentFactor to recompute all the adjustment factors for the security.
| Copyright © 1997 Innovative Systems Techniques, Inc. | Updated June 2, 1997 |


Project 1
AMAZING PEOPLE ARE MAKING AMAZING DESIGNS IN A FUN ENVIRONMENT.
When you work with us, you are part of commited colaborators.All aspects of our software development processes are intergrated, interactive
and agile.
Our approach unifies designs, development and product management to create exceptional products
We start each project by understanding your business goals, the user's needs and the product requirements.
Then we help them translate them into effective and elegant solutions.
Before we sign a contract or write a line of, our team will spend the necessary time needed to understand your product vision.
The outcome of this scoping session is proposal or high-level statement of work.
based on your requirements we can provide a complete offering of just just the pieces you need.
Our design practice offers a full range of services including branding strategy,interaction and visual design and user experience testing. Throughout your project, our designers create and implement visual designs and workflows solicit user feedback, and work with you to make sure what gets built is what is needed.
All engineers are fluent in the latest enterprise, mobile and web development technologies. They collaborate with your team to write, test, and improve code on a daily basis, using proven practices such as test-driven development and pair programming.
Planning and development is iterative. Because we are constantly coding and testing, the products we build are always ready to go live.This iterative process allows for changes as business requirements eveolve.
Project 1
Project 2
Project 3
Project 4
Project 5
Project 6
Project 7
Project 8
Delani Studio ©2020


| Home | Trees | Indices | Help |
|
|---|
|
|
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
Inherited from Inherited from |
|
|||
_value = None
|
|||
_form = None
|
|||
_label = None
|
|
|||
|
Inherited from |
|
x.__init__(...) initializes x; see help(type(x)) for signature
|
Load Control and initiate the events
|
Function called when ever the Control value is changed
|
Load a value from the dict variable
|
Save a value to dict variable
|
Show the control
|
Hide the control
|
|
This property return and set what the control should manage or store.
|
Label of the control, if applies
|
Returns the Widget of the control. This property will be deprecated in a future version.
|
Returns or set the parent basewidget where the Control is
|
|
|
|
|
| Home | Trees | Indices | Help |
|
|---|
| Generated by Epydoc 3.0.1 on Wed Sep 2 00:08:21 2015 | http://epydoc.sourceforge.net |


Symfony Demo Application
Log Out
Back To Blog
Post List
+ Create A New Post
Post List
Title
Aouther
Publish At
Actions


--- layout: post title: Chorlton on Cholrton modified: 2013-06-26 categories: blog tags: [arts] status: publish type: post published: true meta: {} image: feature: chorlton-on-chorlton.jpg comments: true share: true ---
For the 3rd glorious year in a row I've been involved in the Chorlton Arts Festival. This annual festival is one of the UK’s leading multi-arts festivals. Now in its 13th year, the festival showcases local and national talent in music, comedy, visual arts, performance and more, working with over 30 venues in Chorlton, South Manchester.
Building on the work on the Digital Arts Collective last year, this project aimed to bring together young people and older people in a creative digital celebration of Chorlton.
It was a fun project to be involved in, and I got to practice my projection mapping skillz. I had tons of other work commitments on at the time and it would have been nice to work more to shape the direction of the projection in collaboration with the young and older people participating. But, it's always a compromise, and I was involved to a level that I was able.
Keen to see what happens next year with this initiative :-)


Record MLS goals tally nets Vela MVP award ahead of Zlatan
Los Angeles - Los Angeles FC striker Carlos Vela was named Major League Soccer's Most Valuable Player for 2019 on Monday following a record-breaking goalscoring season.
The Mexico international forward was the overwhelming winner in voting for the award, earning just over 69% of votes tallied, ahead of Los Angeles Galaxy rival Zlatan Ibrahimovic, who won 14.1%.
Vela, 30, was handed the award during a ceremony at LAFC's Banc of California Stadium in Los Angeles.
The honour follows a remarkable season for Vela, who netted a combined 36 goals in the regular season and playoffs.
Vela's goalscoring helped Los Angeles FC win the MLS Supporters Shield - the honour given to the team with the best regular season record - and carried them into the playoffs.
Vela added two goals and an assist in the playoff win over Los Angeles Galaxy but LAFC failed to progress to Sunday's MLS Cup final after suffering an upset defeat to Seattle last week.
Vela has flourished in MLS since signing with expansion side LAFC in August 2017 after six-years with Real Sociedad in La Liga.
Previous stints included an unsuccessful spell with Arsenal in the Premier League.
Vela played all four games for Mexico during the 2018 World Cup and was also a member of the 2010 World Cup squad.
The Mexico striker's award comes after LAFC coach Bob Bradley was named MLS coach of the year for the third time last month.


11/mag/2020 14:36:19 Ethan Crowe Contatta l'autore
News May 09, 2020 | Original story by Northwestern University


Manager of tick-by-tick transaction data that performs 'cleaning', 'aggregation' and 'import' in an efficient and fast way. The package engine, written in C++, exploits the 'zlib' and 'gzstream' libraries to handle gzipped data without need to uncompress them. 'Cleaning' and 'aggregation' are performed according to Brownlees and Gallo (2006) <doi:10.1016/j.csda.2006.09.030>. Currently, TAQMNGR processes raw data from WRDS (Wharton Research Data Service, <https://wrds-web.wharton.upenn.edu/wrds/>).
| Version: | 2018.5-1 |
| Depends: | R (≥ 3.0-2) |
| LinkingTo: | Rcpp (≥ 0.11.0) |
| Published: | 2018-05-20 |
| Author: | Francesco Calvori, Fabrizio Cipollini, Giampiero M. Gallo and 'gzstream' authors. |
| Maintainer: | Fabrizio Cipollini <cipollini.fabrizio at gmail.com> |
| License: | GPL-2 | GPL-3 [expanded from: GPL (≥ 2)] |
| URL: | https://cran.r-project.org/package=TAQMNGR |
| NeedsCompilation: | yes |
| SystemRequirements: | zlib headers and library |
| Materials: | ChangeLog |
| In views: | Finance |
| CRAN checks: | TAQMNGR results |
| Reference manual: | TAQMNGR.pdf |
| Package source: | TAQMNGR_2018.5-1.tar.gz |
| Windows binaries: | r-devel: TAQMNGR_2018.5-1.zip, r-release: TAQMNGR_2018.5-1.zip, r-oldrel: TAQMNGR_2018.5-1.zip |
| OS X binaries: | r-release: TAQMNGR_2018.5-1.tgz, r-oldrel: TAQMNGR_2018.5-1.tgz |
| Old sources: | TAQMNGR archive |
Please use the canonical form https://CRAN.R-project.org/package=TAQMNGR to link to this page.


envtools auto
Use this command to bootstrap your environment automatically.
This command should rarely be used. Its goal is to set up and initialize a working environment for your terminal sessions. This is a step-by-step process (see the opposite option: manual) where all the available bootstrap options are being executed one after the other. You will be prompted for each options and you can bypass the ones you feel you do not need.
This command allows you to choose which step to run manually. It offers the same steps that are being executed with
envtools auto
, but with the flexibility to choose which one you need. It is most useful for an environment that has been bootstrapped
before, but needs to be reconfigured one way or another after a while (fix user permissions, re-install core node packages,
new version of Envtools, etc.)
envtools extra
Install and configure some extra goodies that are not included in the manual/automatic bootstrap routines.
Atom
or
VS Code
core packages.
nvm
) which is a simple bash script to manage multiple active node.js versions.
Please see the nvm readme for more information.
Custom Terminal Theme
. It was built to use more subtle colors that are better suited when using a dark terminal. The background is black.
QuickLook Plugins
. For example in the Finder, pressing on the SPACE bar when selecting a .zip or .pkg file would open a tree preview of
the content of the packages... You need this.
envtools web
Start a simple, zero-configuration command-line http server.
-c, --cache .... Time in milliseconds for caching files. -C, --cors .... Setup * CORS headers to allow requests from any origin. -h, --help .... Output usage information. -o, --open .... Open in your default browser. -l, --logs .... Print http requests. -p, --port .... Port to listen on - Will try next available if already used. -u, --unzipped .... Disable GZIP compression.
$ envtools web public/ $ envtools -c 3600 -o -l -p 3201 dist/
envtools smtp
Start a simple SMTP server that will listen for incoming email requests on port 1024 by default and print them on the console.
Use
--port [port-num]
to specify a different port than 1024. Use
--verbose
to add more server logs. Useful to debug email notifications without having to rely on an external email server.
envtools encrypt
|
envtools decrypt
Simple command line tool that allows you to encrypt or decrypt a file with a password. The encryption algorithm used is AES-256-CTR. You can learn about this algorithm here.
-f .... The input file. -o .... The output file. -p .... Optional password, will be prompted if omitted.
$ envtools encrypt -f plain-file.txt -o encrypted-file.txt -p sekret $ envtools decrypt -f encrypted-file.txt -o plain-file.txt -p sekret
envtools notifier
Simple command line notifier using either macOS or Growl notification mechanisms. Useful when combined with another long running process for example.
Mac supports both the default notification and Growl, but you need to install and start Growl manually.
Windows also supports Growl and you also need to install and start Growl manually.
--title "Some Title" Notifications have a title and a message. This is the option to set the title. --message "Some message" Notifications have a title and a message. This is the option to set the message. --typeGiving a type will ensure a corresponding icon will be used in the notification. Available types are SUCCESS, ERROR, WARNING, INFO, QUESTION and TIMER. Default type is INFO. --sound Sound only works if using macOS notifications. The list of available sounds can be found in the System Preferences under Sound->Sound Effects. Default sound is Purr.
$ someBuild.sh $ if [ "$?" != "0" ]; then $ envtools notifier --type ERROR --message 'Build failed...' $ else $ envtools notifier --type SUCCESS --message 'Build is done!'
envtools timer
Simple command line timer with notification superpowers.
$ envtools timer 1m3s
envtools config
Use this command to configure Envtools. If you ran
envtools auto
, Envtools was bootstraped with a default configuration. You can customize that configuration here. There are several customization
levels:
Choose to load Envtools automatically at each terminal session. If you disable this option, you will not be prompted for
anything else. Deactivating this options means that Envtools will remove itself from your
.profile
files. Even though Envtools the node package is still installed, you will not benefit from any terminal environment customization
(aliases, prompt, etc.)
If on the other hand you decided to load Envtools at each session at the previous level, you will then be asked if you want to also load Envtools custom prompt (the information displayed on the prompt just before the caret).
You will reach this option only if you agreed to Level 2. Here you are offered 3 different types of custom prompts:
This level allows you to disable the welcome banner that you see each time you open a new terminal tab or window.
At this level you can allow Envtools to check periodically (once a day) if a new version is available. If a new version is available, a notice will be displayed once a day after executing most Envtools commands.
envtools update
Use this command to display update information. If you configured Envtools to check for new version automatically, the result can be displayed by this command (without having to wait for Envtools to show it to you once in a while).
envtools info
Use this command to show some useful system information.
Depending on the OS, this commands displays a few data points like the total amount of time the system has been running, the type of CPU, the memory (total and free), the local and public IP addresses, proxy data, as well as a few environment versions like node (along with the corresponding v8 and module number), npm and git, to name a few.
By default, all data will be gathered except the public IP since it could take some time.
Use the flag
--publicIp
to show it as well.
Available options are:
all, os, uptime, cpu, load, memory, hostname, localIp, publicIp, proxy,
and
disk
To hide a data point, use the negation, e.g.
envtools info --no-uptime
envtools registry
This command allows you to display and handle your NPM/Yarn registry configurations. If you need to switch between different registries - for example at work or at home, you can create "Profiles" that will hold your multiple configurations and allow you to switch from one to another in total simplicity.
The commands always displays the current configuration. If you already have created some Profiles, they will also be displayed. Otherwise, you will be prompted to create one. You will also be asked if you want to update the registry itself and if proxies should be used.
envtools lite
This command will create a compressed file under the current folder.
It contains a very limited subset of Envtools, the bare minimum to at least have a decent prompt, as well as a few core aliases (ll, etc.). It does not have any of Envtools node capabilities since the package only contains shell scripts helpers. It is useful if you need to work in a remote server that does not have node/npm but can execute bash scripts.
Copy the generated tar.gz file on the destination machine.
$ scp envlite-x.x.xxx.tgz remoteServerName:
Login to the remote machine and untar the file.
$ ssh remoteServerName
$ tar xf envlite-x.x.xxx.tgz
Add the following lines to your profile (.bashrc or .bash_profile)
ENVTOOLS_LITE=1 && source "$HOME/envlite/load.sh"
That's it! Just reload your environment and you should have a better prompt already.
envtools color
Simple command line to convert hexadecimal colors into the closest human readable name (based on CSS definitions).
$ envtools color '#008000' Color name : Green Color hexa code : #008000 Color rgba code : rgba(0, 128, 0, 1) CSS variable : --color-green: #008000; HTML color : yes
$ envtools color '#fffff1' Color name : Ivory Color hexa code : #FFFFF0 Color rgba code : rgba(255, 255, 240, 1) CSS variable : --color-ivory: #fffff0; HTML color : yes
envtools md2html
Simple command line to convert a markdown file to HTML. The HTML result is printed on the standard output.
-f .... The input markdown file.
$ envtools md2html -f CHANGELOG.md $ envtools md2html -f README.md


--- layout: default title: about ---
To the extent possible under law, B. Traven has waived all copyright and related or neighboring rights to b-traven's blog. This work is published from: United States.


Francisco Tamayo
FullStack Developer with MERN, Flutter and Hardware
About Me
Hi there, my name is Francisco Tamayo, Fullstack developer with MERN, Flutter and hardware, with more than 3 years of experience creating and collaborating with real projects. I started at 11 years old, building electronic circuits, I was very curious to know how all those little pieces could do such incredible things. I studied each component on my own on Internet and little by little I got to know people who knew more than I did and were willing to share their knowledge with me. I remember that the first circuit I did on my own was a "laser alarm", like spy movies. It took me a long time to do math for it to work. At 14 I was able to buy my first Arduino and the person who sold it to me became my mentor and then my friend. It was when I discovered the world of software and realized that this was the future. As I progressed through Arduino, I was exploring parallel worlds like internet protocols, mobile apps, and web pages. That's when I put the arduino aside for a while and entered the world of software development. I learned a lot and very varied, from the web pages, to the server configuration. When I was 16 I joined a group from a university in my city with which we participated in two StartUps contests where we reached the semifinals. I was the youngest of the team :). At 18 I was able to work formally as a software developer and since then I have participated in numerous projects and have gained a lot of experience. At the same age, I also entered La Salle University to study Software Engineering, which I am currently studying. Now I work in 3 areas, FullStack with MERN, mobile developer with Flutter and hardware developer. I like changes, that's why I constantly train with the latest technologies that come onto the market and my mission is to be able to call myself a "professional". I am working for that. Feel free to contact me.
GitHub LinkedIn WhatsAppOr by email


Color is a wonderful tool for making your dashboard more interesting with a significant positive impact on your mood.
VIA senior product manage
for UI/UX at REVOX
The dashboard will synergize with the colour selection made by the user and appropriately amend. Similarly, all other elements will sync according to the base colours.
Master color
100%
Primary color
100%
Complete
100%
Success color
100%
Info color
100%
Danger color
100%
Warning color
100%
Menu options
HEX : #0a0a0a
@color-master-darkest
0%
Menu
HEX : #1A1A1A
@color-master-darker
27%
Text heading
HEX : #2C2C2C
@color-master-dark
45%
Default text (base)
HEX : #626262
@color-master
#626262
100%
Dividers
HEX : #E6E6E6
@color-master-light
16%
Cover page
HEX : #F0F0F0
@color-master-lighter
9.5%
Background
HEX : #FAFAFA
@color-master-lightest
3%
RGB : 0 65 73
Pantone cool gray 10c
With a coterie of features based on zero- saturation resulting in mutilple colour adaptability, this colour is the essential Master colour which affects the fonts, background and content. The upper dark shades are made having the master base color on top of a black (#000000) with certain opacity. Thus the lower light shades are made with a white (#ffffff) color .
NOTE: Changing the base color will change the other shades of the relative base.
The monochrome base color is made by having a zero saturation percentage which will adapat to any color placed near it.
Changing the following base colors will change the other base colors.
@color-primary
#6D5CAE
100%
@color-complete
#48B0F7
100%
@color-success
#10CFBD
100%
@color-warning
#F8D053
100%
@color-danger
#F55753
100%
@color-info
#3B4752
100%
Notifications text
HEX : #413768
@color-primary-darker
60%
Text color
HEX : #5B4D91
@color-primary-dark
83.5%
Base color
HEX : #6D5CAE
@color-primary
#6D5CAE
100%
Button overlay
HEX : #8A7DBE
@color-primary-light
80%
Background opt.
HEX : #E2DEEF
@color-primary-lighter
20%
Notifications text
HEX : #2B6A94
@color-complete-darker
60%
Text color
HEX : #3C93CE
@color-complete-dark
83.5%
Base color
HEX : #48B0F7
@color-complete
#48B0F7
100%
Button overlay
HEX : #6DC0F9
@color-complete-light
80%
Background opt.
HEX : #DAEFFD
@color-complete-lighter
20%
Notifications text
HEX : #0A7C71
@color-success-darker
60%
Text color
HEX : #0DAD9E
@color-success-dark
83.5%
Base color
HEX : #10CFBD
@color-success
#10CFBD
100%
Button overlay
HEX : #40D9CA
@color-success-light
80%
Background opt.
HEX : #CFF5F2
@color-success-lighter
20%
Notifications text
HEX : #957D32
@color-warning-darker
60%
Text color
HEX : #CFAE45
@color-warning-dark
83.5%
Base color
HEX : #F8D053
@color-warning
#F8D053
100%
Button overlay
HEX : #F9D975
@color-warning-light
80%
Background opt.
HEX : #FEF6DD
@color-warning-lighter
20%
Notifications text
HEX : #933432
@color-danger-darker
60%
Text color
HEX : #CD4945
@color-danger-dark
83.5%
Base color
HEX : #F55753
@color-danger
#F55753
100%
Button overlay
HEX : #F77975
@color-danger-light
80%
Background opt.
HEX : #FDDDDD
@color-danger-lighter
20%
Notifications text
HEX : #232B31
@color-info-darker
60%
Text color
HEX : #313B44
@color-info-dark
83.5%
Base color
HEX : #3B4752
@color-info
#3B4752
100%
Button overlay
HEX : #626C75
@color-info-light
80%
Background opt.
HEX : #D8DADC
@color-info-ligher
20%
Menu open color
HEX : #191B1F
Base color
HEX : #202328
Text/icon color
HEX : #646972


-
Initial Patient Population =
- AND: "Patient Characteristic Birthdate: birth date" >= 0 year(s) starts before start of "Measurement Period"
- AND: "Patient Characteristic Birthdate: birth date" <= 20 year(s) starts before start of "Measurement Period"
- AND:
- OR: "Encounter, Performed: Face-to-Face Interaction"
- OR: "Encounter, Performed: Preventive Care - Established Office Visit, 0 to 17"
- OR: "Encounter, Performed: Preventive Care- Initial Office Visit, 0 to 17"
- OR: "Encounter, Performed: Preventive Care Services - Established Office Visit, 18 and Up"
- OR: "Encounter, Performed: Preventive Care Services-Initial Office Visit, 18 and Up"
- OR: "Encounter, Performed: Office Visit"
- OR: "Encounter, Performed: Clinical Oral Evaluation"
- during "Measurement Period"
-
Denominator =
- AND: "Initial Patient Population"
-
Denominator Exclusions =
-
Numerator =
- AND: "Diagnosis, Active: Dental Caries" during "Measurement Period"
-
Denominator Exceptions =
-
"Diagnosis, Active: Dental Caries" using "Dental Caries Grouping Value Set (2.16.840.1.113883.3.464.1<IP_ADDRESS>4)"
-
"Encounter, Performed: Clinical Oral Evaluation" using "Clinical Oral Evaluation Grouping Value Set (2.16.840.1.113883.3.464.1<IP_ADDRESS>3)"
-
"Encounter, Performed: Face-to-Face Interaction" using "Face-to-Face Interaction Grouping Value Set (2.16.840.1.113883.3.464.1<IP_ADDRESS>8)"
-
"Encounter, Performed: Office Visit" using "Office Visit Grouping Value Set (2.16.840.1.113883.3.464.1<IP_ADDRESS>1)"
-
"Encounter, Performed: Preventive Care - Established Office Visit, 0 to 17" using "Preventive Care - Established Office Visit, 0 to 17 Grouping Value Set (2.16.840.1.113883.3.464.1<IP_ADDRESS>4)"
-
"Encounter, Performed: Preventive Care- Initial Office Visit, 0 to 17" using "Preventive Care- Initial Office Visit, 0 to 17 Grouping Value Set (2.16.840.1.113883.3.464.1<IP_ADDRESS>2)"
-
"Encounter, Performed: Preventive Care Services - Established Office Visit, 18 and Up" using "Preventive Care Services - Established Office Visit, 18 and Up Grouping Value Set (2.16.840.1.113883.3.464.1<IP_ADDRESS>5)"
-
"Encounter, Performed: Preventive Care Services-Initial Office Visit, 18 and Up" using "Preventive Care Services-Initial Office Visit, 18 and Up Grouping Value Set (2.16.840.1.113883.3.464.1<IP_ADDRESS>3)"
-
"Patient Characteristic Birthdate: birth date" using "birth date LOINC Value Set (2.16.840.1.113883.3.560.100.4)"
-
"Patient Characteristic Ethnicity: Ethnicity" using "Ethnicity CDC Value Set (2.16.840.1.114<IP_ADDRESS>7)"
-
"Patient Characteristic Payer: Payer" using "Payer Source of Payment Typology Value Set (2.16.840.1.114<IP_ADDRESS>91)"
-
"Patient Characteristic Race: Race" using "Race CDC Value Set (2.16.840.1.114<IP_ADDRESS>6)"
-
"Patient Characteristic Sex: ONC Administrative Sex" using "ONC Administrative Sex Administrative Sex Value Set (2.16.840.1.1137<IP_ADDRESS>)"


Hi, my name is Beel. I am a data scientist working in Brooklyn. Did my undergrad in astrophysics at Princeton and then transitioned into machine learning. Completed my Masters of Data Science at NYU. This blog was started for me to document side projects dealing with ML, visualization, and data pipelining.
If you want to collaborate or just meet up in Brooklyn to talk chill stuff, feel free to post on one of the articles here or hit me up on Twitter.
This site was made using jQuery and Bootstrap for the front-end stuff and golang for the backend.
In terms of content on this blog, it will mostly be high level concepts. They also will not be fully polished, so I might just ignore best practices to get basic stuff out. This includes things like using questionable priors or just flat out wrong assumptions to make initial progress easier.