Document contribution specification
There are several situations you may need to read this document:
- Found that the document is wrong or there is content that needs to be added, and will want to participate in the modification
- Submit tutorial/experience/open source project sharing etc.
In order to make the document look uniform in style, the content is not repeated and there is no error, and the writing needs to follow the same specification, all contributors must write documents according to this article;
If you have any doubts about the template format and content, please go to the project repository MaixPy_DOC to submit ISSUE
.
🙇 Thank you for your enthusiastic support!
To participate in the contribution, you need to master the knowledge in advance
- Use of git and github
- Use of github PR (pull request)
There is a brief introduction in the introductory tutorial, please learn by yourself for detailed usage
If you are not confident to master these skills, you can submit issue to explain the problem or contribute experience, etc. We will help you to add
Introduction to the file system
The document is built using gitbook, and simple and efficient Markdown is used to write content. It is recommended to use Typora
or VS Code
with MarkDown Preview Enhanced
plug-in as the document editor
The source code of the document is hosted at github
For the local preview method, see README.md of the document source code
The documents are available in two languages, Chinese and English, respectively, placed in the zh
and en
folders, where SUMMARY.md
is the directory item on the left side of the document, and the other md
files are specific document files, root The assets
directory under the directory contains image resource files common to two languages
Markdown syntax
If you haven’t touched the basic grammar of Markdown, please spend half an hour to learn it. I recommend the github tutorial: github Markdown Tutorial
In this article, we need to pay attention to the following points:
The grammar tags of the heading category must be separated by spaces, and a blank line is required between the headline and the main body, for example:
## This is a secondary heading
* This is list item 1
* This is list item 2
The following is not correct, and it may cause parsing errors and malformed formats.
##This is the secondary title
*This is list item 1
*This is list item 2
All pages have only one first-level title
Since the catalog needs to be automatically generated, it is mainly to ensure that the automatically generated catalog is correct.
Write each page like this
(At least one blank line is required, 2 lines are recommended)
## Level 2 heading 1 (The first level heading cannot be used here, and a # sign cannot be used. There is also no need to write a serial number, the serial number will be automatically generated)
( Skip a line )
text
(At least one blank line)
### Third-level heading (similar to second-level heading, no need to write, it will be automatically generated)
text
## Secondary Title 2
text
Title number
All titles do not need to write a number, **will be automatically generated for example
## Title One
### Subtitle 1
## Title Two
final effect:
1. Title One
1.1 Subheading 1
2. Title Two
If manually written, the final display will be repeated, so be careful!
Link
Due to the large number of pages and the need to link to resources such as pictures, relative paths are used when writing links.
For example, the directory structure is as follows
assets/ (Put common resource files)
|
----pic000.png
en/
|
----- get_started/
|
---- assets/ (Put the common resource file of md file in get_started directory)
|
------ pic.png
|
---- get_hardware.md
|
---- how_to_read.md
zh/
If you paste an image in get_hardware.md
, put the image in the assets
folder, and use the following code to reference the image
![pic](assets/pic.png)
![pic](../../assets/pic000.png)
Mixed Chinese and English
When writing Chinese documents, try to use spaces to separate Chinese mixed with English, and try to use full-width symbols for punctuation.
Mainly to make the document more conspicuous.
such as:
In Micropython, we often use `deinit` to represent the destructor, not to set the default value like STM32
In Micropython, we often use deinit
to represent the destructor, not to set the default value like STM32
In Micropython, we often use deinit to represent the destructor instead of setting the default value like STM32
In Micropython, we often use deinit to represent the destructor instead of setting the default value like STM32
table of Contents
Multiple languages are placed in different directories,
en
andzh
directoriesThe generated document directory is edited in the folder
SUMMARY.md
of the corresponding languageThe source document folder should correspond to a folder as much as possible for a functional module, and the resource files (pictures) should be placed in the
assets
folder directory under the root directory of the corresponding md document, so that both Chinese and English documents can refer to the same pictures and generate The URL is the same, and it is more convenient to add, delete and modify at the same time.- At the same time, in order to be able to use both Chinese and English documents, try not to mark Chinese or English in the picture. You can mark the label, and then the document is explained with the label. The pictures for a specific language are placed in the
assets
directory under the current path:
assets/ (Put public resource files, both Chinese and English can be cited)
en/
|
----- get_started/
|
---- assets/ (resource files of md files in the get_started directory, only for English use)
|
---- get_hardware.md
|
---- how_to_read.md
zh/
file name
- The file name is special except
README.md
, other file names use lowercase + underscore naming method, such asget_hardware.md
Chinese and English (multilingual) page file directory structure and file name are the same
Since there is a multi-language switch option in the last generated page, after clicking switch, the same path of the corresponding language will be directly accessed, so the directory structure and file name in Chinese and English must be the same.
For example, when English is accessing en/get_started/how_to_read.md
, after clicking the language switch button, it will automatically visit zh/get_started/how_to_read.md
, if this file does not exist, it will report a 404
error!
Contents and links
Try to guide readers to use the table of contents, and use the jump links in the text with caution. If the links jump chaotically, the document will look messy and it will be more difficult to read.
Module documentation content
- The header of the file contains module introduction, resource introduction, usage notes, and routines
- Need to point out the constructor, function, constant, etc.
- Note that you can't be lazy, just simply translate the function name again, you need to explain in detail the function of the function, the value range of the parameters and the points of attention
Multi-version management
In addition to supporting Chinese and English (multi-language) documents (not automatic translation, manual modification is required), multi-version management is also done.
Each version is a branch, and there are requirements for the branch name, which are:
master
branch is the main branchdev
branch is the development branch- Other historical versions of releases start with lowercase
v
, for example, create a branch calledv1.2
After creating a new branch, you need to modify the version link in book.json
in the directory of each language version, otherwise readers cannot find the entry
You can preview locally under the newly created branch (see the root directory README.md
for preview method). Note that the page previewed at this time is the content of the current branch. If you want to preview the content of other branches locally, you need to switch to other branches before previewing That's it.
After confirming that the correct modification is completed, push the branch to the remote (github), the automatic build system will automatically build and publish to the pages branch, and the effect can be seen after the construction is completed and the URL is accessed.


Provides a JDK 1.4 style Nested Exception functionality for those on prior
versions.
Also a static utility which creates a version independent Nested
Exception which can handle JDK 1.4 Exceptions as well as others.
Lastly, ExceptionUtils also contains the all-important Exception to String methods.


Wares:
ID
Sealed
Price
Received date
Sealed date
Serial Number
Ware Name
Type ID
ID
Ware Name
Price
Received Date
Sealed Date
Serial Number
Ware Name
WareType ID


[Hide]
QuoteRespType (694)
Identifies the type of Quote Response.
Type: int
3
Expired
5
Done Away
6
Pass
8
Timed Out
Used in Messages:
[QuoteResponse]
Used in Components:


For example, if the datapoint is comprised of a 4byte timestamp and an 8byte number the format string would be: "IL"
Read carefully trough Mastering Cryptoconditions Oracles chapter, realised now how terrible was my RPC check, oh
I just not understood that it's possible to combine different types when wrote this check
(edited)


Easily customise WhiteCore to suit your needs. Configurations and startup options are available for both Standalone and Grid modes of operation.
Designed with speed and flexibility in mind, WhiteCore will speed your development of that new virtual empire.
The WhiteCore code is under continual development and refinement. The developers are available and responsive to both feature requests and bug reports.


The PostgreSQL JDBC Interface
Table of Contents
1.
Introduction
2.
Setting up the JDBC Driver
Getting the Driver
Setting up the Class Path
Preparing the Database Server for
JDBC
Creating a Database
3.
Initializing the Driver
Importing
JDBC
Loading the Driver
Connecting to the Database
Connection Parameters
4.
Using
SSL
Configuring the Server
Configuring the Client
Using SSL without Certificate Validation
Custom SSLSocketFactory
5.
Issuing a Query and Processing the Result
Getting results based on a cursor
Using the Statement or PreparedStatement Interface
Using the ResultSet Interface
Performing Updates
Creating and Modifying Database Objects
6.
Calling Stored Functions
Obtaining a ResultSet from a stored function
From a Function Returning SETOF type
From a Function Returning a
refcursor
7.
Storing Binary Data
8.
JDBC
escapes
Escape for like escape character
Escape for outer joins
Date-time escapes
Escaped scalar functions
9.
PostgreSQL™ Extensions to the
JDBC
API
Accessing the Extensions
Geometric Data Types
Large Objects
Listen / Notify
Server Prepared Statements
10.
Using the Driver in a Multithreaded or a Servlet Environment
11.
Connection Pools and Data Sources
Overview
Application Servers: ConnectionPoolDataSource
Applications: DataSource
Tomcat setup
Data Sources and
JNDI
12.
Further Reading
List of Tables
8.1.
Supported escaped numeric functions
8.2.
Supported escaped string functions
8.3.
Supported escaped date/time functions
8.4.
Supported escaped misc functions
11.1.
ConnectionPoolDataSource Configuration Properties
11.2.
DataSource Implementations
11.3.
DataSource Configuration Properties
11.4.
Additional Pooling DataSource Configuration Properties
List of Examples
5.1.
Processing a Simple Query in
JDBC
5.2.
Setting fetch size to turn cursors on and off.
5.3.
Deleting Rows in
JDBC
5.4.
Dropping a Table in
JDBC
6.1.
Calling a built in stored function
6.2.
Getting SETOF type values from a function
6.3.
Getting
refcursor
Value From a Function
6.4.
Treating
refcursor
as a cursor name
7.1.
Processing Binary Data in
JDBC
8.1.
Using jdbc escapes
9.1.
Using the CIRCLE datatype from
JDBC
9.2.
Receiving Notifications
9.3.
Using server side prepared statements
11.1.
DataSource Code Example
11.2.
DataSource
JNDI
Code Example
Next
Chapter 1. Introduction
Privacy Policy
|
About PostgreSQL
Copyright © 1996-2013 The PostgreSQL Global Development Group


%YAML 1.2
---
name: Fedora Apps
data:
description: >
This is a landing page for Fedora Apps. Fedora Infrastructure is
huge; this page details only the public facing portion of
it all. Explore!
children:
- name: For New People
data:
description: >
No clue what's going on? That's okay.. take a look at some of
these sites -- they might help you get your bearings.
children:
- name: Ask Fedora
data:
url: http://ask.fedoraproject.org/
description: >
Any question at all about Fedora? Ask it here.
- name: Tagger
data:
url: http://apps.fedoraproject.org/tagger
description: >
Help build a tag cloud of all our packages.. It's actually
really useful. It'll help improve the search of the
"Packages" webapp.
- name: Easyfix
data:
url: http://fedoraproject.org/easyfix
description: >
A list of easy-to-fix problems for the different projects in
Fedora. Interested in getting into helping out with sysadmin
work or web application development? This should be useful
to you.
- name: Docs
data:
url: http://docs.fedoraproject.org
description: >
RTFM! Everything you could ever want to know.
Probably the best place to find documentation about Fedora,
including the changes between releases (and a big kudos to
the translation teams to keep this resource up to date in
the different languages!)
- name: For the Community
data:
description: >
Things for everyone! (chances are, this includes you).
children:
- name: Bugzilla
icon: bugzilla.png
data:
url: http://bugzilla.redhat.com
description: >
The Fedora Community makes use of a bugzilla instance
run by Red Hat. Notice something wrong with a Fedora
package? You can file an official bug here.
- name: Paste
data:
url: http://paste.fedoraproject.org
description: >
Our very own pastebin server. If you yum install the
fpaste command, it will use this site
automatically.
- name: Status
icon: status-good.png
data:
url: http://status.fedoraproject.org
description: >
Sometimes the Fedora Infrastructure team messes up (or
lightning strikes our datacenter(s)). Sorry about that.
You can use this website to check the status. Is it
"down for everyone, or just me?"
Notice the favicon
in your browser tab. It changes based on the status,
so if you keep this open you can check back to it at a
glance.
- name: The Wiki
icon: mediawiki.png
data:
url: http://fedoraproject.org/wiki
description: >
Maintain your own user profile page, contribute to
documents about features, process, and governance.
- name: Elections
data:
url: http://admin.fedoraproject.org/voting
description: >
As a member of the community, you can now vote for the
different steering committees and for this you will use the
Election application. Voting is a right and a duty as a member
of the community; it is one of the things you can do to
influence the development of Fedora.
- name: FedoraPeople
data:
url: http://fedorapeople.org
description: >
Being a community member you gain access to fedorapeople which
provides you with a space on the web where you can upload
files to share them with the community.
- name: The Planet
icon: planet_logo.png
data:
url: http://planet.fedoraproject.org
description: >
The planet is a blog aggregator, a space accessible to you
as a community member where you can express your opinion and
talk about what you are doing for Fedora.
- name: The Mailing lists
icon: mail.png
data:
url: http://lists.fedoraproject.org
description: >
Mailing lists are used for communication within the community.
There are lists for generic topics and lists more dedicated
to a specific topic, there is for sure one for you.
- name: Busmon
data:
url: http://apps.fedoraproject.org/busmon
description: >
A "cardiogram" for the fedmsg
project. It's not really useful for anything, but it's
something pretty to look at -- it can give you the 10,000
foot view of "what's going on in Fedora" in real-time.
- name: Fedora Hosted
icon: trac.png
data:
url: http://fedorahosted.org
description: >
Fedora is dedicated to open source software. This
commitment can extend beyond regular Fedora offerings.
Fedora Hosted is our most feature rich
hosting solution. It includes an scm, trac instance,
release dir, account system for access control, etc.
This is our most common hosting option. When most groups
want hosting, this is what they want.
- name: Problem Tracker
data:
url: https://retrace.fedoraproject.org
description: >
The Problem Tracker is a platform for collecting and
analyzing package crashes reported via ABRT (Automatic Bug
Reporting Tool). It makes it easy to see what problems
users are hitting the most, and allows you to filter them
by Fedora release, associate, or component.
- name: Blocker Bugs
data:
url: http://qa.fedoraproject.org/blockerbugs
description: >
The Fedora Blocker Bug Tracker tracks release blocking bugs
and related updates in Fedora releases currently under
development.
- name: For Packagers
data:
description: >
Here you'll find apps useful for Packagers' workflow.
children:
- name: PkgDB
data:
url: http://admin.fedoraproject.org/pkgdb
description: >
Manage ACLs of your packages.
- name: Koji
icon: koji.png
data:
url: http://koji.fedoraproject.org/koji
description: >
Koji is the software that builds RPM packages for the
Fedora project. It uses Mock to create chroot
environments to perform builds that are both safe and
trusted.
- name: Bodhi
icon: bodhi.png
data:
url: http://admin.fedoraproject.org/updates
description: >
The tool you will use to push your packages to the Fedora
repositories as an update, first an update to be tested
(repository: updates-testing) then a stable update
(repository: updates). Behold -- the Magic
Cabbage.
- name: Packages
data:
url: http://apps.fedoraproject.org/packages
description: >
The best place for someone outside the community to find out
what is in the Fedora repositories. Which packages is present,
in which version, who is maintaining it, what patches have
been applied, what bugs have been reported against it. All
this kind of questions can be answered there.
- name: SCM
icon: git-logo.png
data:
url: http://pkgs.fedoraproject.org/cgit
description:
Ever wonder exactly what is in the new release
of a Fedora package? This is where the change histories
of all the packages in Fedora for every release of
Fedora (and EPEL) are kept.. forever! A gold mine.
- name: For Sysadmins
data:
description: >
Tools for sysadmins -- the people who run the servers who run
Fedora (and otherwise).
children:
- name: MirrorManager
icon: downloads.png
data:
url: http://mirrors.fedoraproject.org
description: >
Fedora is distributed to millions of systems globally.
This would not be possible without the donations of time,
disk space, and bandwidth by hundreds of volunteer system
administrators and their companies or institutions. Your
fast download experience is made possible by these
donations. The list on the MirrorManager
site is dynamically generated every hour, listing only
up-to-date mirrors.
- name: Nagios
icon: nagios-logo.png
data:
url: http://admin.fedoraproject.org/nagios
description: >
"Is telia down?" The answer can most definitively be
found here (and in detail). The Fedora Infrastructure
team uses Nagios to monitor the servers that serve
Fedora. Accessing most details requires membership
in the sysadmin group.
- name: Collectd
icon: collectd.png
data:
url: http://admin.fedoraproject.org/collectd
description: >
Tracks and displays statistics on the Fedora
Infrastructure machines over time. Useful for debugging
ineffeciencies and problems.
- name: HAProxy
data:
url: http://admin.fedoraproject.org/haproxy/proxy1
description: >
Shows the health of our proxies. How many bytes?
Concurrent sessions? Health checks?


Super Mario
Tiles
- Name Coins
- Base tile, Breakable tile, Random tile
- Ground, Stem rope, Cloud
- Chimney
- Princess Peach's Castle
Character Sprite sheets
- Mario Walking to the Right
- Mario Running towards through the Hill
Album Jacket Design
BIRTHBEAT
- All Together + CD
- Front Cover
- Back-Cover
- Sub Cover Together
- Front Wordbook - Tracklist
- Back Wordbook - Credits & Letter Holder
- Wordbook - lyrics


Installation
git-for-windows.github.io
git-scm.com/download/mac
git-scm.com/download/linux
Linux usually comes with git installed
git


Dragonflies are represented in human culture on artifacts such as pottery, rock paintings, statues and Art Nouveau jewelry. They are used in traditional medicine in Japan and China, and caught for food in Indonesia. They are symbols of courage, strength, and happiness in Japan. Their bright colours and agile flight are admired in the poetry of Lord Tennyson and the prose of H. E. Bates. For some Native American tribes, dragonflies represent swiftness and activity; for the Navajo, they symbolize pure water. They are a common motif in Zuni pottery; stylized as a double-barred cross, they appear in Hopi rock art and on Pueblo necklaces. They have been used in traditional medicine in Japan and China. In Indonesia, adults are caught on poles made sticky with birdlime, then fried in oil as a delicacy. Images of dragonflies are common in Art Nouveau, especially in jewellery designs. They have also been used as a decorative motif on fabrics and home furnishings. Douglas, a British motorcycle manufacturer based in Bristol, named its innovatively designed postwar 350-cc flat-twin model the Dragonfly.
[However], in Europe, dragonflies have often been seen as sinister. Some English vernacular names, such as "horse-stinger", "devil's darning needle", and "ear cutter", link them with evil or injury. Swedish folklore holds that the devil uses dragonflies to weigh people's souls. The Norwegian name for dragonflies is Øyenstikker ("eye-poker"), and in Portugal, they are sometimes called tira-olhos ("eyes-snatcher"). They are often associated with snakes, as in the Welsh name gwas-y-neidr, "adder's servant". The Southern United States terms "snake doctor" and "snake feeder" refer to a folk belief that dragonflies catch insects for snakes or follow snakes around and stitch them back together if they are injured. And yet, more recently, more recently, dragonfly watching has become popular in America as some birdwatchers seek new groups to observe.


© Copyright 1986-2008 by The University of Washington. Written by Christopher Meacham and Joseph Felsenstein. Permission is granted to copy this document provided that no fee is charged for it and that this copyright notice is not removed.
This program factors a data set that contains multistate characters, creating a data set consisting entirely of binary (0,1) characters that, in turn, can be used as input to any of the other discrete character programs in this package, except for PARS. Besides this primary function, Factor also provides an easy way of deleting characters from a data set. The input format for Factor is very similar to the input format for the other discrete character programs except for the addition of character-state tree descriptions.
Note that this program has no way of converting an unordered multistate character into binary characters. Fortunately, PARS has joined the package, and it enables unordered multistate characters, in which any state can change to any other in one step, to be analyzed with parsimony.
Factor is really for a different case, that in which there are multiple states related on a "character state tree", which specifies for each state which other states it can change to. That graph of states is assumed to be a tree, with no loops in it.
The first line of the input file should contain the number of species and the number of multistate characters. This first line is followed by the lines describing the character-state trees, one description per line. The species information constitutes the last part of the file. Any number of lines may be used for a single species.
The first line is free format with the number of species first, separated by at least one blank (space) from the number of multistate characters, which in turn is separated by at least one blank from the options, if present.
The options are selected from a menu that looks like this:
Factor -- multistate to binary recoding program, version 3.69 Settings for this run: A put ancestral states in output file? No F put factors information in output file? No 0 Terminal type (IBM PC, ANSI, none)? (none) 1 Print indications of progress of run Yes Are these settings correct? (type Y or the letter for one to change) |
The options particular to this program are:
The character-state trees are described in free format. The character number of the multistate character is given first followed by the description of the tree itself. Each description must be completed on a single line. Each character that is to be factored must have a description, and the characters must be described in the order that they occur in the input, that is, in numerical order.
The tree is described by listing the pairs of character states that are adjacent to each other in the character-state tree. The two character states in each adjacent pair are separated by a colon (":"). If character fifteen has this character state tree for possible states "A", "B", "C", and "D":
A ---- B ---- C | | | D
then the character-state tree description would be
15 A:B B:C D:B
Note that either symbol may appear first. The ancestral state is identified, if desired, by putting it "adjacent" to a period. If we wanted to root character fifteen at state C:
A <--- B <--- C | | V D
we could write
15 B:D A:B C:B .:C
Both the order in which the pairs are listed and the order of the symbols in each pair are arbitrary. However, each pair may only appear once in the list. Any symbols may be used for a character state in the input except the character that signals the connection between two states (in the distribution copy this is set to ":"), ".", and, of course, a blank. Blanks are ignored completely in the tree description so that even B:DA:BC:B.:C or B : DA : BC : B. : C would be equivalent to the above example. However, at least one blank must separate the character number from the tree description.
If no description line appears in the input for a particular character, then that character will be omitted from the output. If the character number is given on the line, but no character-state tree is provided, then the symbol for the character in the input will be copied directly to the output without change. This is useful for characters that are already coded "0" and "1". Characters can be deleted from a data set simply by listing only those that are to appear in the output.
The last character-state tree description should be followed by a line containing the number "999". This terminates processing of the trees and indicates the beginning of the species information.
The format for the species information is basically identical to the other discrete character programs. The first ten character positions are allotted to the species name (this value may be changed by altering the value of the constant nmlngth at the beginning of the program). The character states follow and may be continued to as many lines as desired. There is no current method for indicating polymorphisms. It is possible to either put blanks between characters or not.
There is a method for indicating uncertainty about states. There is one character value that stands for "unknown". If this appears in the input data then "?" is written out in all the corresponding positions in the output file. The character value that designates "unknown" is given in the constant unkchar at the beginning of the program, and can be changed by changing that constant. It is set to "?" in the distribution copy.
The first line of output will contain the number of species and the number of binary characters in the factored data set. The factored characters will be written for each species in the format required for input by the other discrete programs in the package. The maximum length of the output lines is 80 characters, but this maximum length can be changed prior to compilation.
If the A (Ancestors) option was chosen, an output file whose default name is ancestors will be written with the ancestors information. If F (Factors) was chosen in the menu, am output file whose default name is factors will be written containing the factors information.
ERRORS
The output should be checked for error messages. Errors will occur in the character-state tree descriptions if the format is incorrect (colons in the wrong place, etc.), if more than one root is specified, if the tree contains loops (and hence is not a tree), and if the tree is not connected, e.g.
A:B B:C D:E
describes
A ---- B ---- C D ---- E
This "tree" is in two unconnected pieces. An error will also occur if a symbol appears in the data set that is not in the tree description for that character. Blanks at the end of lines when the species information is continued to a new line will cause this kind of error.
At the beginning of the program a number of constants are available to be changed to accomodate larger data sets. These are "maxstates", "maxoutput", "sizearray", "factchar" and "unkchar". The constant "maxstates" gives the maximum number of states per character (set at 20 in the distribution copy). The constant "maxoutput" gives the maximum width of a line in the output file (80 in the distribution copy). The constant "sizearray" must be less than the sum of squares of the numbers of states in the characters. It is initially set to set to 2000, so that although 20 states are allowed (at the initial setting of maxstates) per character, there cannot be 20 states in all of 100 characters.
Particularly important constants are "factchar" and "unkchar" which are not numerical values but a character. Initially set to the colon ":", "factchar" is the character that will be used to separate states in the input of character state trees. It can be changed by changing this constant. (We could have used a hyphen ("-") but didn't because that would make the minus-sign ("-") unavailable as a character state in +/- characters). The constant "unkchar" is the character value in the input data that indicates that the state is unknown. It is set to "?" in the distribution copy. If your computer is one that lacks the colon ":" in its character set or uses a nonstandard character code such as EBCDIC, you will want to change the constant "factchar".
The input file for the program has the default file name "infile" and the output file, the one that has the binary character state data, has the name "outfile".
| ----SAMPLE INPUT----- | -----Comments (not part of input file) ----- |
4 6 1 A:B B:C 2 A:B B:. 4 5 0:1 1:2 .:0 6 .:# #:$ #:% 999 Alpha CAW00# Beta BBX01% Gamma ABY12# Epsilon CAZ01$ |
4 species; 6 characters A ---- B ---- C B ---> A Character 3 deleted; 4 unchanged 0 ---> 1 ---> 2 % <--- # ---> $ Signals end of trees Species information begins |
| ---SAMPLE OUTPUT----- | -----Comments (not part of output file) ----- |
4 8 Alpha 11100000 Beta 10001001 Gamma 00011100 Epsilon 11101010 |
4 species; 8 factors Chars. 1 and 2 come from old number 1 Char. 3 comes from old number 2 Char. 4 is old number 4 Chars. 5 and 6 come from old number 5 Chars. 7 and 8 come from old number 6 |


void (*(*f[])())()
defines f as an array of unspecified
size, of pointers to functions that return pointers to functions
that return void
.
C++ is hard.
But there are some friends
cppreferenceC++ code consists of two types of files
headers - .h | .hh | .hpp | .hxx
sources - .cpp | .cc | .cxx
Source files can be compiled to
object file which is not executable - .o
or to an executable binary that you can run
Use the following for source compilation with gcc
$ g++ main.cpp
It will create executable binary named a.out
$ g++ main.cpp -o hello
It will create executable binary named hello. After
$ ./hello
Program will run
Object files .o are intermediate step of compilation
Multiple object files can be linked to executable binary
$ g++ -c main.cpp -o hello.o
-c option is used to compile source to object file
Preprocessor process source files before compilation
All lines started with # are Preprocessor directives.
For example line #include <memory>
will be
replaced by preprocesor with content of memory file
Use -E flag to see how preprocessor works
g++ -E main.cpp -o processed-main.cpp
Compilation Unit is an each source file included for compilation
g++ main.cpp feature1.cpp feature2.cpp
There are three compilation units.
All of these will be linked together into executable.
Pointer store memory address.
Pointer type tells what data are stored at this address.
Pointer can point to nothing like(NULL value in C)
Since C++11 we use nullptr
keyword instead.
* (asterisk) declares a pointer of given type
int *pointer;
& (ampersand) placed before variable returns its memory address
int variable = 12345;
int *pointer = &variable;
Reference is an alias to a variable.
It doesn't store any address
Reference must be initialized before it can be used.
Something like empty reference doesn't exists
& (ampersand) declares a reference of given type
int variable = 12345;
int &ref = variable; // assign variable, not an adress
Now, changing ref value impacts original variable
ref = 9999; // value of variable changed to 9999
Declaration "I want to use that name with this type"
Definition "Declared name should works that way"
extern
tells that variable
is defined in another compilation unit
// feature1.cpp
extern int *memory;
// feature2.cpp
int *memory = new int[1024];
#include
#include <algorithm>
#include "header.h"
Directive will be replaced by content of header file
Use angle brackets for system headers
and quotes for your own headers
#define
#define BUFFER_SIZE 1024
...
char *buffer[BUFFER_SIZE];
It is known as C-style constants
All occurences of define will be replaced by defined value.
Another usage of define is conditional compilation.
#ifdef, #ifndef, #else, #endif
#ifdef _WIN32
#include <WinSock2.h>
#else
#include <socket.h>
#endif
#ifdef MY_COOL_FEATURE_ENABLED
#include "CoolFeature.hpp"
#endif
define something during compilation
g++ -DMY_COOL_FEATURE_ENABLED main.cpp ...
Compiler can define its own defines like _WIN32!
#ifdef #ifndef #else #endif
Remember: Preprocessor will remove everything that not match given conditions
#pragma
It gives additional informations for compiler.
Assume we have multi-file project
// main.cpp
#include "VoiceStream.h"
#include "VoiceConsole.h"
int main() {
VoiceStream voice = VoiceConsole.receive();
}
Why VoiceStream is redefined?
// VoiceConsole.h
#include "VoiceStream.h"
class VoiceConsole {
VoiceStream receive();
};
// VoiceStream.h
class VoiceStream {
public:
void append(float sample);
};
// VoiceStream.h
#ifndef VOICE_STREAM_H_
#define VOICE_STREAM_H_
class VoiceStream {
public:
void append(float sample);
};
#endif
// VoiceStream.h included in VoiceStream.cpp
#ifndef VOICE_STREAM_H_
#define VOICE_STREAM_H_
class VoiceStream {
public:
void append(float sample);
};
#endif
// VoiceStream.h included in main.cpp
#ifndef VOICE_STREAM_H_
#define VOICE_STREAM_H_
class VoiceStream {
public:
void append(float sample);
};
#endif
#pragma once
Use this directive instead of header guard
// VoiceStream.h
#pragma once
class VoiceStream {
public:
void append(float sample);
};
There are two memory allocations...
It happens on the stack. Memory is allocated only in given scope
void foo() {
int bar;
} // bar destroyed here
int main() {
int number;
} // number destroyed here;
It happens on the heap. Memory is not limited to scope. You can
allocate and deallocate with new
and
delete
operators
int* getMemory() {
int *bar = new int; // allocated one int on the heap
return bar;
} // bar destroyed, allocated memory is alive
int main() {
int* memory = getMemory();
delete memory;
} // number destroyed here;
Smart pointer is a wrapper around raw pointer like
int*
std::unique_ptr
#include <memory>
std::unique_ptr<int> getMemory(int x) {
return std::make_unique<int>(x);
} // memory for int allocated in unique_ptr
int main() {
auto memory = getMemory(12345);
} // memory destroyed
// allocated int also destroyed


--- layout: documentation title: TriggerListType ---
The TriggerListType type specifies a set of triggers associated with the scheduled task.
| Field Name | Type | Description |
|---|---|---|
| Trigger1..n | TriggerType |
A trigger associated with this scheduled task. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa381264(v=vs.85).aspx. |


Dear visitor!
The page you selected is currently not available. At the moment the website is under maintenance - thank you for your understanding.
Follow us on twitter or facebook to stay informed about our latest news:
http://www.twitter.com/voestalpine
http://www.facebook.com/voestalpine
Thank you!
Your voestalpine internet team


Software Developer based in Bellingham/Seattle
I'm a fourth year student at Western Washington University pursuing a degree in computer science and graduating Summer of 2019. I have experience developing and designing software for the web and mobile applications.
I love learning new and better ways to create technologies that help solve complex problems in underrepresented communities. I consider work an ongoing education, and I'm always looking for opportunities to work with those who are willing to share their knowledge as much as I want to learn. At the end of the day, my primary goal is to create something that will empower individuals working along side people that bring out the best in me.
Computer Science Degree
Bachelor of Science in Computer Science.
Graduating in Summer of 2019
September 2015 - Present
WWU College of Computer Science
Research in HCI, Data Analytics, and mHealth under Dr. Shameen Ahmed, Dr. Moushoumi Sharmin and Dr. Tanzima Islam. Assisted in developing stress prediction model with biometric and self reported stress labels of college students with autism. Developed remotely to meet weekly deadlines and project checkpoints.
September 2018 - Present
WWU Ethnic Student Center
Provided administrative and programmatic support to help coordinate large events that the Ethnic Student Center clubs/organizations put together by providing guidance to ESC club leaders interpreting university's policies, procedures and budgeting.
September 2017 - June 2018
Artificial Intelligence Association
Help assist on campus meetings once a week to discuss topics within the artificial intelligence field, hosts extra-curricular events where the club as a team can collaboratively develop an A.I programming assignment and/or partner with other clubs to request company representatives to present to the club about the A.I field, along with networking possibilities.
December 2017 - June 2019
WWU Academic Advising Center
Worked with incoming college students providing educational guidance and assistance for students by planning schedules, recommending courses and determining appropriate education solutions for different types of students.
March 2016 - December 2016
Personal website built with Jekyll and hosted on Github Pages. Includes an about me page section, experience timeline developed using CSS and project section showcasting projects I've been involed.
Western Washington University emergency campus police response App, with desktop Dispatcher program for rapid response and tracking.
Blue Light is a phone app and desktop dispatcher that communicate together, providing a replacement to the Blue Light campus emergency phones on Western Washington University campus. This app can be used anywhere globally, tracks your current whereabouts, and directly connects the user to dispatchers and campus police.
First place at WWU Hackathon 2018. Developed tutoring queuing website with loggable admin and client users that can be generalized to work with any tutoring system, provides analytics in real-time. Stores information in SQL database, backend developed primarily in PHP. Used grid.js for database table, chart.js for analytics rendering, html, and CSS for front-end. Can create user accounts, hashed passwords. Currently used by WWU Mentors program.
This tool was developed primarily for health researchers and behavioral health experts to identify common physiological event sequences preceding smoking episodes. This application targets regular smokers as the primary user. Developed a web-based application consisting of two primary interfaces, the user interface, which enables behavior analysis of individual users, and the cohort interface, which enables behavior analysis across all users.
Implemented the folloing visualizations Map View, Interactive Sankey Diagram, Participant Correlation Graphs and HRV Scatterplots. Map View uses a familiar map interface to show locations where study participants have smoked. Sankey diagram is a flow diagram that depicts many to many connections from one set of values to another. Sankey diagram makes it easy to identify many to many connections between nodes. Correlation graph draws a correlation network of relationships from tabular data based on pairwise correlations.


Use your {{ requestObject.requestData.currency }} wallet app and send the expected amount to the following {{ requestObject.requestData.currency }} address:
{{ btcAddress }}


Coolock shooting: Murder victim Eoin Boylan 'knew his life was in danger'
Armed gardai and emergency services rushed to the scene
by John Patrick Kierans, Trevor Quinn, Gavin O'CallaghanDublin murder victim Eoin Boylan "knew his life was in danger" before he was gunned down in Coolock yesterday, the Irish Mirror understands.
The 22-year-old died a short time after the shooting at Clonshaugh Avenue housing estate on Sunday evening.
Armed gardai and emergency services rushed to the scene after he was blasted six times by two hitmen at 5.15pm.
He was shot in the upper body, arm and chest.
Boylan was treated at the scene by paramedics before being taken to Beaumont Hospital, where he was pronounced dead a short time later.
It is understood at least two gunmen, who escaped in a Renault Clio, were involved in the shooting.
Gardai were last night searching for the getaway car.
The latest murder is the fifth of the ongoing Coolock feud, which has so far claimed the lives of four men in their early twenties.
Boylan was well-known to gardai and it is understood he knew his life was in danger.
The Coolock feud kicked off as criminal gangs tried to wrestle control of the drugs trade in the north Dublin area.
The death of Zach Parker, 23, who was was gunned down outside a gym in Swords last January, ignited the murderous killing spree.
A neighbour said: “My sister-in-law heard the shot and she couldn’t believe it. He used to work as a milkman.
“There is a feud around the area.
The area around Clonshaugh Avenue was sealed off last night as forensic evidence was preserved and detectives combed the area for clues.
How to follow the Irish Mirror on social media
You can like our main Facebook page here.
Our Irish Mirror Sports page - which brings you all your Irish and UK sports news - can be found here.
You can also check out our Irish Mirror GAA sports page.
The Irish Mirror Twitter account is @IrishMirror while our sports account is @MirrorSportIE.
Our Instagram account can be found here.


Objectives
After you complete the Command Line course on Code Academy, you should be able to:
- Navigate directories and files from the command line
- Copy, move, and delete files and directories from the command line
- Redirect input and output to and from files and programs
- Configure the environment using the command line
Below are just some of the commands you need to know for this course. For a full introduction, go to https://www.codecademy.com/courses/learn-the-command-line and complete the course.
Basic Terminal Commands
Note that everything in “{}” is to be replaced. For example, {fileName} –> iLovePeanuts.txt
| Command |
|
| CTRL L |
Clear the terminal |
| CTRL D |
Logout |
| SHIFT Page Up/Down |
Go up/down the terminal |
| CTRL A |
Cursor to start of line |
| CTRL E |
Cursor the end of line |
| CTRL U |
Delete left of the cursor |
| CTRL K |
Delete right of the cursor |
| CTRL W |
Delete word on the left |
| CTRL Y |
Paste (after CTRL U,K or W) |
| TAB |
auto completion of file or command |
| CTRL R |
reverse search history |
!! |
repeat last command |
Help on any Unix Command
| Command |
|
man {command} |
Type man ls to read the manual for the ls command. |
man {command} > {fileName} |
Redirect help to a file to download. |
List a Directory
| Command |
|
ls {path} |
|
ls {path_1} {path_2} |
List both {path_1} and {path_2}. |
ls -l {path} |
Long listing, with date, size and permissions. |
ls -a {path} |
Show all files, including important .dot files that don’t otherwise show. |
ls -F {path} |
Show type of each file. “/” = directory, “*” = executable. |
ls -R {path} |
Recursive listing, with all subdirs. |
ls {path} > {filename} |
Redirect directory to a file. |
Change to Directory
| Command |
|
cd {dirname} |
Go to directory. |
cd ~ |
Go back to home directory, useful if you’re lost. |
cd .. |
Go back one directory. |
Make New Directory
| Command |
|
mkdir {dirname} |
Make a new directory with name. |
Remove Directory
| Command |
|
rmdir {dirname} |
Only works if {dirname} is empty. |
rm -r {dirname} |
Remove all files and subdirs. Careful! |
Print Working Directory
| Command |
|
pwd |
Show where you are as full path. Useful if you’re lost or exploring. |
Copy a File or Directory
| Command |
|
cp {file1} {file2} |
|
cp -r {dir1} {dir2} |
Recursive, copy directory and all subdirs. |
cat {newfile} >> {oldfile} |
Append newfile to end of oldfile. |
Move / Rename a File or Directory
| Command |
|
mv {oldfile} {newfile} |
Moving a file and renaming it are the same thing. |
View a Text File
| Command |
|
cat {filename} |
View file, but it scrolls. |
Edit a Text File
| Command |
|
vi {filename} |
Basic text editor. |


Academic and Engineering projects
- Airbel Bot: A chatbot assistant to travel in complicated city in Marseille, France (2019).
- Cloth classification for smart cloth bin (**UN-SDG Project**) (2019).
- Demeter: Live food cam for nutrition facts inside food. (2018)
- An intelligence device use to detect and auto focus on 3D
micro-structures from ordinary optical microscope (07/2017 - 03/2019).
- device for detecting similar proportions between
micro-structures on PVC (02/2017 - 05/2017).
- Transfer nature’s colour to nano-scale microscopy images using machine learning (09/2018 - Present).
- Stock prediction using RNNs (05/2018 - 10/2018).
- Self driving car using supervised learning (2018).
- SMU file oriented anti malware (05/2016 - 09/2016).
- Automated File Transfer Protocol (AFTP) (05/2015 - 10/2015).
Awards Academic Achievements & Funds
- Chinese University Hong Kong Ph.D.fellowship summer workshop
- Chinese Government Full Scholarship Winner
- Top 5 student at Tsinghua international summer school 2019 DCST
- Zhejiang province Full Scholarship Winner
- SRIP Student Funds for Research
- Xin Miao Student Research Fund
- Ningbo City Scholarship Winner
- European Space Agency (ESA) PROBA-V Super Resolution 2nd prize winner
- EPAM Hackathon 3rd prize winner with Demeter
- Outstanding student award at Tsinghua university Deep learning summer school
- Provincial innovation of internet award GOLD 1st prize winner
- Provincial physics innovation competition 3rd Prize winner
- Outstanding undergraduate student award
- Prestigious high school student award
- Certificate of Excellence
- Certificate for Innovation
|


Wanna split or merge?
Split
Merge
Splitting
Enter a valid URL
Enter the numbers of the markers at which to split
Merging
Add each URL to be merged one after the other
Add URL
Clear All


It is a long established fact that a reader will be distracted
ABOUT US
------·
Anchor is the best platform where you can make transactions in the cryptocurrency market. It is the most Stable Exchange Present in the cryptocurrency market. Anchor converts cash into digital currency.
It anchors the value to the price of national currencies like the US dollar, the Euro, and the Yen.
Lorem Ipsum is that it has a more-or-less normal distribution of letters.
Lorem Ipsum is that it has a more-or-less normal distribution of letters.
Lorem Ipsum is that it has a more-or-less normal distribution of letters.
Lorem Ipsum is that it has a more-or-less normal distribution of letters.
Contrary to popular belief, Lorem Ipsum is not simply random text
It is the most stable exchange present in the currency market. Anchor helps to convert your fiat currency in to digital currency (cryptocurrency). It anchors the value to the price of national currencies like the US dollar, the Euro and the Yen.
Security of funds and user is our top priority. Anchor uses blockchain technology enabled technology delivering world-class security with U2F (two factor authentication) providing an extra layer of security to it’s users.
We publish reserve holdings daily and subject to frequent professional audits to keep a check that all anchor in circulation match our reserves.
Anchor is a most widely integrated digital-to-fiat currency today. Buy, sell and use anchors at Bitifinex, Gocoin, and Other exchanges.
- Every Anchor is backed 1-to-1, traditional currency held in our reserves. So 1 AINR is always equivalent to 1 INR.
There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some.
Contrary to popular belief, Lorem Ipsum is not simply random text
CEO, IRS Foundation
CEO, IRS Foundation
CEO, IRS Foundation
CEO, IRS Foundation
It is a long fact
Contrary to popular belief, Lorem Ipsum is not simply random text
recommended
There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. If you are going to use a passage of Lorem Ipsum, you need to be sure.
There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. If you are going to use a passage of Lorem Ipsum, you need to be sure.
There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. If you are going to use a passage of Lorem Ipsum, you need to be sure.
Contrary to popular belief, Lorem Ipsum is not simply random text
<EMAIL_ADDRESS>+012 001 123 456
Copyright© 2017. Design by irs_soft


This app is built using Angular 1.6.2
I started by downloading the seed project from here: https://github.com/angular/angular-seed
I used the oficial documentation and other online resources:


{# These base includes bootstrap & jquery used by Quickstartup. #}
{# If you have plans to use other CSS & JS frameworks you can change it here. #}
{% extends "_core/html5.html" %}{% load i18n l10n static %}
{% block meta_tags %}
{% endblock %}
{% block styles %}
{% endblock %}
{% block end_head %}
{% endblock %}
{% block end_body %}
{% endblock %}


When creating an iframe, at what point does the iframe's contentWindow property become available? Is it only assured after the onload event is fired? Is it available immediately after inserting the iframe into the DOM? The test below can be run to detect the availability point for different browsers.
| Google Chrome (53.0.2785.116) | At DOM Insertion Time |
| Mozilla Firefox (49.0.1) | At DOM Insertion Time |
| Opera (40.0.2308.75) | At DOM Insertion Time |
| Apple Safari (9.1.3 (11601.7.8)) | At DOM Insertion Time |
| Microsoft Edge | At DOM Insertion Time |
| Internet Explorer 11 | At DOM Insertion Time |
| Internet Explorer 10 | At DOM Insertion Time |
| Internet Explorer 9 | At DOM Insertion Time |
| Internet Explorer 8 |
At DOM Insertion Time
contentWindow access before appendChild causes "Unspecified error" |
| Internet Explorer 7 |
At DOM Insertion Time
contentWindow access before appendChild causes "Unspecified error" |
| Internet Explorer 6 |
At DOM Insertion Time
contentWindow access before appendChild causes "Unspecified error" |


"This is a call to arms. A call to be gentle, to be forgiving, to be generous with yourself.  When the criticism drops away, what you will see then is just you, without judgment, and that is the first step toward transforming your experience of the world.”
- Oprah
About Me
I'm Anna. I'm a proud Pacific Northwesterner and I I love a good workout, a good belly laugh and a good dessert. I'm an actor and singer and run an in home personal training business and spend as much time as possible with family, friends and my dog son Westley.
I discovered my love of fitness about 6 years ago. I have struggled with anxiety, depression and trichotillomania for 15 year and it was the summer in between my junior and senior year of college when I found myself living at home, unhealthy and unhappy. Desperate for a solution I signed up for a local gym and walked into a Bodypump class. That class saved my life. The instructor was a walking badass, she was strong, confident, joyful and full of energy. She embodied everything I wanted to be, so I kept coming back and in 3 months I had transformed my body but I also transformed my mind. I fell completely in love with weightlifting and for the first time I felt both externally AND internally strong. That transformation inspired my journey as a fitness instructor and eventually a personal trainer.
I'm an NSCA Certified Personal Trainer and group fitness instructor and love strength training, TRX, yoga, circuit training and kettlebells. I am a warrior of body acceptance and self love. As an actor and model I use exercises as a part of my daily practice to help me chose gratitude and love of my body. Its hard. We are drowning in messages that tell us that we are not enough, but I think life is too short to be at war with ourselves so here is my journey to live to move and to love.
Contact
Interested in Personal Training? Want to Collaborate? Or maybe just wanting to say hi?
| Full Name: | ||
| Email: | ||
| Phone Number: | ||
| Preferred Methof of Contact: | ||
|
Phone |
||
| Message: | ||


Inserts a dimension of 1 into a tensor's shape.
tf.compat.v1.sparse.expand_dims
tf.compat.v2.sparse.expand_dims
tf.sparse.expand_dims( sp_input, axis=None, name=None )
Given a tensor sp_input
, this operation inserts a dimension of 1 at the
dimension index axis
of sp_input
's shape. The dimension index axis
starts at zero; if you specify a negative number for axis
it is counted
backwards from the end.
sp_input
: A SparseTensor
.axis
: 0-D (scalar). Specifies the dimension index at which to expand the
shape of input
. Must be in the range [-rank(sp_input) - 1,
rank(sp_input)]
.name
: The name of the output SparseTensor
.A SparseTensor
with the same data as sp_input
, but its shape has an
additional dimension of size 1 added.


'It's suffocating': Delhi residents react as toxic smog blankets city – video
by ReutersPollution in Delhi has reached its worst levels so far this year, at almost 400 times the amount deemed healthy. A week on from Diwali, the thick brown smog that shrouded the city after the festival has shown no sign of shifting. One local said the pollution was so bad it burned his nose and throat, making simple activities such as jogging difficult


Lookup AWS instances' IP address and ID by their AWS tag name
brew upgrade warrensbox/tap/aws-find
Rerun:
curl -L https://raw.githubusercontent.com/warrensbox/terraform-switcher/release/install.sh | bash
brew uninstall warrensbox/tap/aws-find
Rerun:
rm /usr/local/bin/aws-find
Common issues:
install: can't change permissions of /usr/local/bin: Operation not permitted
"Unable to remove symlink. You must have SUDO privileges"
"Unable to create symlink. You must have SUDO privileges"
You probably need to have sudo privileges to install aws-find.
This project is maintained by warrensbox


This page was created by the IDL library routine
mk_html_help
. For more information on
this routine, refer to the IDL Online Help Navigator
or type:
? mk_html_help
at the IDL command line prompt.
Last modified: Tue May 15 16:15:49 2007.
NAME: CHOLESKY PURPOSE: This procedure makes the cholesky decomposition of a positive defined simetric matrix. CATEGORY: Linear Algebra. CALLING SEQUENCE: CHOLESKY, L INPUTS: L: squared matrix. Matrix to decompose. It is supposed simmetric (transpose(L) = L), so only diagonal and upper triangle is accessed as input. See input of CHOLDC procedure. KEYWORDS: DOUBLE: if set forces the computation in double precision OUTPUTS: Matrix. This procedure overwrite on L the lower triangular Cholesky factor of the input matrix, so that L ## TRANSPOSE(L) is the original simmetric matrix. EXAMPLE: Cholesky decompsition of a 2 dimensional simmetric matrix: C = [[1.2, 0.3], [0.3, -2.3]] L = CHOLESKY(C) PRINT, C - (L ## TRANSPOSE(L)) MODIFICATION HISTORY: Written by: A. Riccardi; April, 1995
(See ao_lib\cholesky.pro)
CN2 Result = CN2(Z) return structure constant value (in m^(-2/3)) at height z (in m) from the pupil of imaging system.
(See ao_lib\cn2.pro)
CN2_MOMENTUM Result = CN2_MOMENTUM(Z) return CN2(Z)*Z^(Order) where Order is set by COMMON BLOCK: common cn2_momentum, order
(See ao_lib\cn2_momentum.pro)
CN2_SETTING CN2_SETTING, Which_profile Which_profile: string, scalar. String containing the funcion name returning the Cn^2 profile. Three functions are pre-defined: "hv27" - Hufnagel-Valley 27 from Sandler et al., JOSAA,11,925(1994) "hvbl" - adapted from Beckers, ARAA,31,13(1993) "mhv" - Modified Hufnagel-Valley from Parenti and Sasiela, JOSA,11,288(1994) See below for definition of a user-defined function KEYWORDS: ALTITUDE: float, scalar. Site height above sea-level. If not defined, it is set to 0.0. ELEVATION: float, scalar. Height above ground-level of pupil of imaging system. Only for turbulence profiles with surface layers. If not defined, it is set to 0.0. R0: float, scalar. If defined, the profile is rescaled to give R0 as Fried Prameter at wavelength specified by WAVELENGTH keyword. WAVELENGTH: float, scalar. Wavelegth in meters (see R0). If undefined it is set to 0.55e-6m (V band). NORMALIZE: if set rescale turbulence profile to give a normalized turbulence profile (integral=1). VERBOSE: if set print turbulence profile infos. USER-DEFINED Cn^2 PROFILE FUNCTION function FUNC, z, cn2_settings ; zsl: height from the sea-level zsl = z+cn2_settings.altitude+cn2_settings.elevation ; zg: height from the ground zg = z+cn2_settings.elevation cn2=.... ; usually a function of zsl (free atmosphere), ; zg (boundary layer) and z (dome seeing) return, cn2_settings.scale_f*cn2 ; multiply to scale_f to allow r0 scaling end where z is a vector of height values from the pupil of the optical system in [m] and cn2 contains the the structure constant Cn^2 in [m^(-2/3)] at the corresponding heights. The structure cn2_settings is defined as follows: cn2_settings.name: string containing the name of the function of the active Cn^2 profile cn2_settings.scale_f: float. Scaling factor to match the requested r0 cn2_settings.altitude: float. Height of the ground with respect to the sea level cn2_settings.elevation: float. Elevation of the pupil with respect to the ground level. It is useful when a boundary layer is defined. cn2_settings.max_height: float. Maximum height from the sea level of the profile. Above it the Cn^2 profile is considered to be 0. Those fields are to be considered as read-only. The user cannot modified the cn2_setting structure inside the function. The structure is initialized by the cn2_setting function.
(See ao_lib\cn2_setting.pro)
D0_PAR This function computes the d0 parameter for a laser focused at height h [m] at the wavelength wl [m]. The formula used for d0 is from Tyler. Use cn2_setting procedure before use this function to set the cn2 profile. d0 = d0_par(h, wl, EPS=epsm, MIN_ALT=min_alt, MAX_ALT=max_alt) HISTORY Written by A. Riccardi (AR) Osservatorio Astrofisico di Arcetri, ITALY<EMAIL_ADDRESS>Please, send me a message if you modify this code. 14 Mar 2002, AR *QROMO is used instead of QROMB for the numerical integration giving d0. *The max height of the cn2 profile definition is now read from the cn2_block common structure.
(See ao_lib\d0_par.pro)
FRIED_PAR Result = FRIED_PARAM(Wl) returns Fried Parameter r_O (in m) at wavelength Wl (in m). It uses CN2(Z) turbulence profile.
(See ao_lib\fried_par.pro)
ISO_ANGLE Return = ISO_ANGLE(Wl) return isoplanatic angle (in rad) for turbulence profile CN2 at wavelenth Wl (in m).
(See ao_lib\iso_angle.pro)
NAME: JACOBI_POL PURPOSE: JACOBI_POL returns the value of the Jacobi Polynomial P_N(A,B,X) of degree N and parameters A and B in a vector X of points. The Jacobi polynomials are orthogonal over the interval (-1,+1) with the weight function w(x)=(1-x)^a * (1+x)^b. The computation of the polynomial P_N(A,B,X) use the recurrence relation: P_0(A,B,X) = 1 P_1(A,B,X) = (a+b+2)/2*X+(A-B)/2 for N >= 2: C0 = 2*N*(A+B+N)*(A+B+2*N-2) C1 = (2*N+A+B-2)*(2*N+A+B-1)*(2*N+A+B)*X+ +(A^2-B^2)*(2*N+A+B-1) C2 = 2*(N+A-1)*(2*N+A+B)*(N+B-1) C0*P_N(A,B,X) = C1*P_(N-1)(A,B,X)-C2*P_(N-2)(A,B,X) CALLING SEQUENCE: Result = JACOBI_POL(N, A, B, X [, JPol1, JPol2]) INPUTS: N: scalar of type integer or long. N >= 0. A: scalar of type float or double. A > -1. B: scalar of type float or double. B > -1. X: n-element vector of type float or double. OPTIONAL INPUTS: JPol1: n-element vector of type float or double. Jacobi polinomial P_(N-1)(A,B,X). Not used as input if N <= 1. JPol2: n-element vector of type float or double. Jacobi polinomial P_(N-2)(A,B,X). Not used as input if N <= 1. If JPol1 and JPol2 are given the calculation is faster for N >= 2. OPTIONAL OUTPUT: JPol1: n-element vector of type float or double. Jacobi polinomial P_N(A,B,X). JPol2: n-element vector of type float or double. Jacobi polinomial P_(N-1)(A,B,X). Not used as output if N = 0. REFERENCES: Magnus, Oberhettinger, Soni "Formulas and Theorems for the Special Function of Mathematical Physics", 1966, Sec. 5.2. EXAMPLE: MODIFICATION HISTORY: Written by: A. Riccardi; October, 1997.
(See ao_lib\jacobi_pol.pro)
NAME: KOLM_COVAR PURPOSE: This function computes the covariance of Zernike polynomial coefficients of the wavefront perturbations due to Kolmogorov turbulence. CALLING SEQUENCE: Result = KOLM_COVAR(J1, J2) INPUTS: J1: integer scalar. Inedex of Zernike polynomial. J1 >= 2 J2: integer scalar. Inedex of Zernike polynomial. J2 >= 2 KEYWORD PARAMETERS: DOUBLE: if set, double precision covariance is returned. Otherwise, single precision (float). OUTPUTS: This function returns OPD covariance where a(J1) and a(J2) are J1-th and J2-th Zernike components of wave front perturbations due to Kolmogoroffian turbolence. Covariance is in (wavelength)^2*(D/r0)^(5/3) units, where D is the pupil diameter and r0 the Fried parameter. To have covariance of phase perurbations, use: 4*pi^2*KOLM_COVAR(J1, J2) = <2*pi*a(J1) * 2*pi*aj(J2)>, it is in (D/r0)^(5/3) units. RESTRICTIONS: J1, J2 >= 2, because piston variance (J1=J2=1) diverges. BIBLIOGRAFY: Noll 1976, JOSA, 66, 207. Roddier 1990, Opt. Eng., 29, 1174. EXAMPLE: Computes the average spatial variance of phase perturbation on a circular pupil of diameter 1.5m due to first 15 Zernike polynomials. Suppose r0 = 15cm. scale = (150./15.)^(5./3.) var = 0. FOR i=2,15 DO var = var + KOLM_COVAR(i,i) var = (2 * !PI)^2 * scale * var MODIFICATION HISTORY: Written by: A. Riccardi; April, 1995. A. Riccardi; June, 1997. Recursive calculation for the Gamma(n+alpha) (n int and alpha floating point) to avoid overflow in the Gamma Function for large n+alpha.
(See ao_lib\kolm_covar.pro)
NAME: KOLM_MCOVAR PURPOSE: This function computes OPD covariance matrix of Zernike components of wavefront perturbations due to Kolmogorov turbulence. CALLING SEQUENCE: Result = KOLM_MCOVAR(Max_index) INPUTS: Max_index: integer saclar. Maximum index of Zernike polynomial used. Max_index >= 2. KEYWORD PARAMETERS: DOUBLE: if set, the result is double type. Float otherwise. OUTPUTS: Squared symmetric matrix with Max_index-1 elements per dimension. It is the covariance matrix for componets of Zernike polynomial with index from 2 to Max_index (see KOLM_COVAR). Result(i-2,j-2) = where 2<=i,j<=Max_index OPD covariance matrix is in (wavelength)^2*(D/r0)^(5/3) units, where D is the pupil diameter and r0 the Fried parameter. Return 0 if an error occurred. RESTRICTIONS: Covariances with Zernike index i=1 or j=1 is not computed because piston (j=i=1) Kolmogoroffian variance diverges. That's why Max_index >= 2. PROCEDURE: See: KOLM_COVAR EXAMPLE: Computes Covariance matrix for first 15 Zernike inexes and print variance due to Zernike sferical aberration: C = KOLM_MCOVAR(15) PRINT, C(11-2, 11-2) MODIFICATION HISTORY: Written by: A. Riccardi; April, 1995.
(See ao_lib\kolm_mcovar.pro)
prob = lllccd_out(input_phe, r, m[, SEED=seed]) input_phe: integer matrix: detected photo-electrons before amplification g : float scalar: amplification gain. g=m^r where r is the number of amplification registers and m is the multiplication factor per register (m>=1, tipically m=1.01) SEED: seed to be used in randomn call. On output it contains the seed returned by the randomn call. MODIFICATION HISTORY: 21 March 2003. Written by A. Riccardi, INAF-OAA, Italy<EMAIL_ADDRESS>22 March 2003. by AR: output converted to long and offset=input added It takes into account the detected
(See ao_lib\lllccd_out.pro)
prob = lllccd_prob(x, n, g) probability function to obtain x extra-electrons in the avalange when n photo-electrons are detected, with gain g. g=m^r where r is the number of amplification registers and m is the multiplication factor of each register (m>=1.0, m=1.01 tipically). n must be integer. if n>170 or (n-1)*log(x/g) EXAMPLE: probability P(0<=x<1) with n=1 and g=1.01^519 P=lllccd_prob(0.5, 1, 1.01^519) MODIFICATION HISTORY: 22 March 2003: written by A. Riccardi, INAF-OAA, Italy<EMAIL_ADDRESS>(See ao_lib\lllccd_prob.pro)
NAME: MAKE_ORTO_MODES PURPOSE: This function returns a orthogonal base matrix from the input matrix. CATEGORY: Linear Algebra. CALLING SEQUENCE: RESULT = MAKE_ORTO_MODES(INP_MATR) INPUTS: INP_MATR: the influence matrix,M,used to compute the new base orthogonal, B, matrix through the transformation B=M##Q, and imposed the orthogonal property transpose(B)##B=I. OUTPUTS: The orthogonal base matrix, B. EXAMPLE: MODIFICATION HISTORY: Written by: S. Esposito. 9 March 2006, modified by D.Zanotti(DZ) Deleted the automatic transposition of the matrix when an error of input occurred. Updated some line codes.
(See ao_lib\make_orto_modes.pro)
NAME: RANDOMN_COVAR PURPOSE: This function returns a sample of zero mean jointly gaussian random variables by the Cholesky decomposition of their covariance matrix. CATEGORY: Statistics. CALLING SEQUENCE: Result = RANDOMN_COVAR(L,R) INPUTS: L: squared matrix. Cholesky factor of covariance matrix from CHOLESKY function. The covariance matrix C is: C = transpose(L)#L OPTIONAL INPUTS: R: integer or long scalar. Number of realizations. If not defined one realization is returned. KEYWORD PARAMETERS: SEED: long type variable. Random generation seed. See RANDOMU function. OUTPUTS: Vector. This function returns a sample of zero mean jointly gaussian random variables with statistics from L. If L is double type matrix, double vector is returned. Otherwise float. Return = L ## RANDOMN(seed,r,n) where n is the dimension of L. OPTIONAL OUTPUTS: If SEED variable is specified, it is updated. See RANDOMU function. TROUBLES: Even if double type L is used, RANDOMN returns a float type vector that is converted to double type one. EXAMPLE: Create a plot of probability density function of the sum of two jointly gaussian variables with M mean and C covariance. C = [[1.2, 0.3], [0.3, 2.3]] M = [12.1, 25.7] L = CHOLESKY(C) seed = 1L A = fltarr(500, /NOZERO) FOR i=0,499 DO A(i) = TOTAL(RANDOMN_COVAR(L, SEED=seed) + M) HISTOGRAM(A) MODIFICATION HISTORY: Written by: A. Riccardi; April, 1995
(See ao_lib\randomn_covar.pro)
NAME: VON_COVAR PURPOSE: This function computes covariance of zernike components of wave front perturbations due to Von-Karmann turbolence. CATEGORY: Optics. CALLING SEQUENCE: Result = VON_COVAR(J1, J2, L0) INPUTS: J1: integer scalar. Inedex of Zernike polynomial. J1 >= 1 J2: integer scalar. Inedex of Zernike polynomial. J2 >= 1 L0: float or double. Outer-scale value in pupil diameter units. KEYWORD PARAMETERS: DOUBLE: if set, forces double type covariance. Float therwise. EPS: float or double scalar. relative precision of computation. If undefined EPS=1.e-7. OUTPUTS: This function returns covariance where a(J1) and a(J2) are J1-th and J2-th Zernike components of wave front perturbations due to Von-Karman turbolence. Covariance is in (wave-length)^2*(D/r0)^(5/3) units, where D is the pupil diameter and r0 the Fried parameter (r0 for Kolmogoroffian turbolence). To have covariance of phase perurbations, use: 4*pi^2*VON_COVAR(J1, J2) = <2*pi*a(J1) * 2*pi*aj(J2)>, it is in (D/r0)^(5/3) units. PROCEDURE: See: Winker D. M., 1991, JOSA, 8, 1569. Takato N. and Yamaguchi I., 1995, JOSA, 12, 958 EXAMPLE: Computes the average spatial variance of phase perturbation on a circular pupil of diameter 1.5m dues to first 15 Zernike aberrations. Suppose r0 = 15cm, L0=40m scale = (150./15.)^(5./3.) L0norm= (40./1.5) var = 0. FOR i=2,15 DO var = var + VON_COVAR(i,i,L0norm) var = 4 * !PI * var * scale Strhel_Ratio = EXP(-var) MODIFICATION HISTORY: Written by: A. Riccardi; July, 1995.
(See ao_lib\von_covar.pro)
NAME: ZERN PURPOSE: The ZERN function returns the value of J-th Zernike polynomial in the points of coordinates X,Y. The output is of the same type as the X and Y vectors. The function convert X,Y coordinates in polar coordinates and call ZERN_JPOLAR function. CALLING SEQUENCE: Result = ZERN(J, X, Y) INPUTS: J: scalar of type integer or long. Index of the polynomial, J >= 1. X: n-element vector of type float or double. X coordinates. Y: n-element vector of type float or double. Y coordinates. MODIFICATION HISTORY: Written by: A. Riccardi; March, 1995.
(See ao_lib\zern.pro)
NAME: ZERN_DEGREE PURPOSE: ZERN_DEGREE calculates the radial degree n and azimuthal frequency m of Zernike polynomial of index j. CATEGORY: Optics. CALLING SEQUENCE: ZERN_DEGREE, J, N, M MODIFICATION HISTORY: Written by: A. Riccardi; March, 1995.
(See ao_lib\zern_degree.pro)
NAME: ZERN_FT PURPOSE: ZERN_FT returns the value of j-th Zernike polynomial fourier transform in a point of frequency fx,fy. (We use Noll formulation of Zernike polynomials) CATEGORY: Special polynomial CALLING SEQUENCE: Result = ZERN_FT(J, Fx, Fy) INPUTS: J: index of the polynomial, integer J >= 1 Fx: frequency to evaluate Fy: OUTPUTS: ZERN_FT returns the value of j-th Zernike polynomial fourier transform in the point of requency Fx,Fy. On error return 0. EXAMPLE: Evaluate Zernike x coma fourier transform in fx,fy. Enter: Result = ZERN_FT(8, fx, fy) MODIFICATION HISTORY: Written by: A. Riccardi; March, 1995.
(See ao_lib\zern_ft.pro)
NAME: ZERN_FT_POLAR PURPOSE: ZERN_FT_POLAR returns the value of j-th Zernike polynomial fourier transform in a frequency of polar coordinates k,phi. (We use Noll formulation of Zernike polynomials) CATEGORY: Special polynomial CALLING SEQUENCE: Result = ZERN_FT_POLAR(J, K, Phi) INPUTS: J: index of the polynomial, integer J >= 1 K: frequency to evaluate (polar coord.) Phi: OUTPUTS: ZERN_FT_POLAR returns the value of j-th Zernike polynomial fourier tranform in the frequency of polar coordinates k, phi. On error return 0. EXAMPLE: Evaluate Zernike x coma fourier transform in kappa, phi. Enter: Result = ZERN_FT_POLAR(8, kappa, phi) MODIFICATION HISTORY: Written by: A. Riccardi; March, 1995.
(See ao_lib\zern_ft_polar.pro)
NAME: ZERN_INDEX PURPOSE: ZERN_INDEX calculates the index of a zernike polynomial from radial degree N and azimuthal frequency M. If M is not zero there are two possible index value, even and odd, with index_1=j and index_2=j+1. In this case (M is not 0) Zernike_index returns the minor value (j). CATEGORY: Special polynomial. CALLING SEQUENCE: Result = ZERN_INDEX(N, M) INPUTS: N: radial degree. Integer, N>=0. M: azimuthal frequency. Integer, 0<=M<=N and N-M even MODIFICATION HISTORY: Written by: A. Riccardi; April, 1995.
(See ao_lib\zern_index.pro)
NAME: ZERN_JPOLAR PURPOSE: ZERN_JPOLAR returns the value of j-th Zernike polynomial in a point of polar coordinates r,theta. (We use Noll formulation of Zernike polynomials) CATEGORY: Special polynomial CALLING SEQUENCE: Result = ZERN_JPOLAR(J, R, Theta) INPUTS: J: index of the polynomial, integer J >= 1 R: point to evaluate (polar coord.) Theta: OUTPUTS: ZERN_POLAR returns the value of j-th Zernike polynomial in the point of polar coordinates r, theta. If r>1 then return 0. On error return 0. EXAMPLE: Evaluate Zernike x coma in rho, theta. Enter: Result = ZERN_JPOLAR(8, rho, theta) MODIFICATION HISTORY: Written by: A. Riccardi; March, 1995.
(See ao_lib\zern_jpolar.pro)
NAME: ZERN_JRADIAL PURPOSE: ZERN_JRADIAL returns the value of the radial portion R(N,M,Rho) of the Zernike polynomial of radial degree N and azimuthal frequency M in a vector R of radial points. The radial Zernike polynomial is defined in the range (0,1) and is computed as: R(N,M,Rho) = Rho^M * P_[(N-M)/2](0,M,2*Rho^2-1) where P_k(a,b,x) is the Jacobi Polynomial of degree k (see JACOBI_POL) CALLING SEQUENCE: Result = ZERNKE_JRADIAL(N, M, Rho [, Jpol1, JPol2]) INPUTS: N: scalar of type integer or long. N >= 0. M: scalar of type integer or long. 0 <= M <= N and M-N even. Rho: n_elements vector of type float or double. OPTIONAL INPUTS: JPol1: n_elements vector of type float or double. Jacobi polinomial P_[(N-M)/2-1](0,M,2*Rho^2-1). Not used as input if (N-M)/2 <= 1. JPol2: n_elements vector of type float or double. Jacobi polinomial P_[(N-M)/2-2](0,M,2*Rho^2-1). with k=(N-M)/2-2. Not used if (N-M)/2-2 <= 1. Not used as input if (N-M)/2 <= 1. If JPol1 and JPol2 are given the calculation is faster for (N-M)/2 >= 2. OPTIONAL OUTPUTS: JPol1: n-element vector of type float or double. Jacobi polinomial P_[(N-M)/2](0,M,2*Rho^2-1). Not used as input if N <= 1. JPol2: n-element vector of type float or double. Jacobi polinomial P_[(N-M)/2-1](0,M,2*Rho^2-1). Not used as output if N = 0. REFERENCES: Magnus, Oberhettinger, Soni "Formulas and Theorems for the Special Function of Mathematical Physics", 1966, Sec. 5.2. Born, Wolf, "Optics" Noll 1976, JOSA, 66, 207. MODIFICATION HISTORY: Written by: A. Riccardi; October, 1997.
(See ao_lib\zern_jradial.pro)
Result = ZERN_ORDER(Nmax) returns a vector of Zernike polynomial indexes from 2 to ZERNIKE_INXDEX(Nmax,Nmax) ordered by azimuthal frequency (see Roddier 90, Opt. Eng., 29, 1174). Nmax must be >=1
(See ao_lib\zern_order.pro)


Epic of Gilgamesh
TabletV
... They stood at the forest's edge, gazing at the top of the Cedar Tree, gazing at the entrance to the forest. Where Humbaba would walk there was a trail, the roads led straight on, the path was excellent. Then they saw the Cedar Mountain, the Dwelling of the Gods, the throne dais of Imini. Across the face of the mountain the Cedar brought forth luxurious foliage, its shade was good, extremely pleasant. The thornbushes were matted together, the woods(?) were a thicket ... among the Cedars,... the boxwood, the forest was surrounded by a ravine two leagues long, ... and again for two-thirds (of that distance), ...Suddenly the swords..., and after the sheaths ..., the axes were smeared... dagger and sword... alone ... Humbaba spoke to Gilgamesh saying:"He does not come (?) ... ... Enlil.. ." Enkidu spoke to Humbaba, saying: "Humbaba...'One alone.. 'Strangers ... 'A slippery path is not feared by two people who help each other. 'Twice three times... 'A three-ply rope cannot be cut. 'The mighty lion--two cubs can roll him over."' ...   When you were still young I saw you but did not go over to you; ... you,... in my belly. ...,you have brought Gilgamesh into my presence, ... you stand.., an enemy, a stranger. ... Gilgamesh, throat and neck, I would feed your flesh to the screeching vulture, the eagle, and the vulture!" Gilgamerh spoke to Enkidu, saying: "My Friend, Humbaba's face keeps changing!·  Now there, my friend,... in the coppersmith's channel ..., again to blow (the bellows) for an hour, the glowing (metal)(?) ...for an hour. To send the Flood, to crack the Whip." Do not snatch your feet away, do not turn your back, ... strike even harder!" ... may they be expelled.... head fell ... and it/he confronted him... The ground split open with the heels of their feet, as they whirled around in circles Mt. Hermon and Lebanon split. The white clouds darkened, death rained down on them like fog. Shamash raised up against Humbaba mighty tempests'-- Southwind, Northwind, Eastwind, Westwind, Whistling Wind, Piercing Wind, Blizzard, Bad Wind, Wind of Simurru, Demon Wind, Ice Wind, Storm, Sandstorm-- thirteen winds rose up against him and covered Humbaba's face. He could nor butt through the front, and could not scramble out the back, so that Gilgamesh'a weapons were in reach of Humbaba. Humbaba begged for his life, saying to Gilgamesh: "You are young yet, Gilgamesh, your mother gave birth to you, and you are the offspring of Rimnt-Nlnsun (?) ... (It was) at the word of Shamash, Lord of the Mountain, that you were roused (to this expedition). O scion of the heart of Uruk, King Gilgamesh! ... Gilgamesh...   Enkidu addressed Gilgamesh, saying: "My friend, do not listen to Humbaba, [io lines are misring Apparently Humbaba sees thar Gilgamrsh is influenced by Enkidu, and moves to dissuade Enkidu.] "You understand the rules of my forest, the rules..., further, you are aware of all the things so ordered (by Enlil)." I should have carried you up, and killed you at the very entrance to the branches of my forest. I should have fed your flesh to the screeching vulture, the eagle, and the vulture. So now, Enkidu, clemency is up to you. Speak to Gilgamesh to spare my life!" Enkidu addressed Gilgamesh, saying: My friend, Humbaba, Guardian of the Cedar Forest, grind up, kill, pulverize(?), and destroy him! Humbaba, Guardian of the Forest, grind up, kill, pulverize(?), and destroy him!  Enlil is in Nippur, Shamash is in Sippar. Erect an eternal monument proclaiming... how Gilgamesh killed(?) Humbaba." When Humbaba heard... [Abour l0 linrs are misiing.] ... the forest. and denunciations(?) have been made.  Now, Enkidu, clemency is up to you. Speak to Gilgamesh that he spare my life!" Enkidu spoke to Gilgamesh, saying: "My friend, Humbaba, Guardian of the Forest, grind up, kill, pulverize(?), and destroy him!  Enlil is in Nippur, Shamash is in Sippar. Erect an eternal monument proclaiming... how Gilgamesh killed(?) Humbaba." Humbaba heard ... [About 10 lines are missing.] "May he not live the longer of the two, may Enkidu not have any 'share'(?) more than his friend Gilgamesh!" Enkidu spoke to Gilgamesh, saying: "My friend, 1 have been talking to you but you have not been listening to me," You have been listening to the curse of Humbaba!" ... his friend ... by his side .. they pulled out his insides including his tongue. ... he jumped(?). ...abundance fell over the mountain, ...abundance fell over the mountain. They cut through the Cedar, While Gilgamesh cuts down the trees, Enkidu searches through the urmazallu. Enkidu addressed Gilgamesh, saying: "My friend, we have cut down the towering Cedar whose top scrapes the sky. Make from it a door 72 cubits high, 24 cubits wide, one cubit thick, its fixture, its lower and upper pivots will be out of one piece. Let them carry it to Nippur, the Euphrates will carry it down, Nippur will rejoice. ..." They tied together a raft... Enkidu steered it... while Gilgamesh held the head of Humbaba.


We are a fairly small, flexible design studio that designs for print and web. We work flexibly with clients to fulfil their design needs. Whether you need to create a brand from scratch, including marketing materials and a beautiful
Courteney Cox
Marketing Manager
Matt LeBlanc
Finance Manager
David Schwimmer
Creative Director
We are a fairly small, flexible design studio that designs for print and web. We work flexibly with clients to fulfil their design needs. Whether you need to create a brand from scratch, including marketing materials and a beautiful


Steven Lee
Hi! I'm Tayyab and I'm an Engineer, Full Stack Web
Developer and Content Writer. I will write content for
your website or blog. Making creative, responsive and
minimalistic websites for different types of business. My
design and coding activity pays attention to the smallest
details in order to give fantastic user experiences.


It was written by Bill Moorier, and released under the BSD license.
You can play with a live demo of it, or read the docs to learn how to use the library in your own web apps.
The algorithms used in Timber are heavily inspired by A. de Cheveigné and H. Kawahara's excellent 2002 paper, "YIN, a fundamental frequency estimator for speech and music".


Learning by flip-flopping
08 May 2017I recently came across Artir’s Pyramid of Economic Insight and Virtue. It’s not actually a pyramid, but is instead a riff on the Expanding Brain meme. Check it out:
What’s interesting about Artir’s Pyramid is that at every step, the position flip-flops from the previous step. This isn’t just a dialogue between two sides. It is a description of the belief sequence that people traverse as they learn more about an issue. We might call this learning by flip-flopping.
This got me thinking: In what other issues do people go through a sequence of flip-flops as they learn more about it? In this blog post, I’d like to suggest a few.
Let me stress that in presenting these I don’t necessarily think that the “highest” levels in these examples are correct, nor do I think I have a strong understanding on many of these issues. It’s just something that’s fun to think about.
Increasing the minimum wage
This is arguably a special case of Artir’s Pyramid and is probably the canonical example of learning by flip-flopping.
When it comes to the minimum wage debate and other debates, I often sometimes see a Stage 2 person talking to someone they believe is at Stage 1 but who is in fact at Stage 3.
Further reading on the minimum wage: Card and Krueger, criticism of Card and Krueger’s data, another case against Card and Krueger, two better studies.
How to deal with a recession
Recession flip-flopping is less related to Artir’s Pyramid, but is still quite common. I may be bungling some of the later stages here, as my macro knowledge is mostly cobbled together from parody rap videos, so I welcome any suggestions for additional further reading.
Further reading on recessions: The government is not a household, Keynesian economics, boom and bust cycles, and a wonderful book by Tim Harford.
Twitter’s 140 character limit
I’d like to keep this blog post as value-judgment free as possible, but I’ll make a special exception for this one. The 140 character limit is no longer a good idea, and Stage 3 is the correct stage.
The meaning of life
David Chapman writes about how STEM-trained people should think about meaning. Extending Robert Kegen’s theory of human development, he believes that most STEM-trained people can find meaning in ideological rationalism (Stage 4) but, upon finding that rationality does not provide any meaning, they become in danger of falling into the Nihilism trap (Stage 4.5). Chapman claims that there is a Stage 5, sometimes called meta-rationality or fluidity, in which meaning can once again be found. You can read more about it on his blog.
What other examples of learning by flip-flopping are out there?
UPDATE: John McDonnell points me towards Hegelian Dialectic.