Crash course: TMNT found its first planet!¶
Imagine your survey called “TMNT” found a planet using its photometric telescope “Leonardo”. Now you want to model it, so you can schedule follow-up with the rest of your TMNT network: Michelangelo (photometry), Donatello (RV) and Raphael (RV).
Using the GUI¶
Launch the GUI:
import allesfitter allesfitter.GUI()
Fill out the fields step by step, as demonstrated in this YouTube tutorial (link).
Using the python console¶
The way allesfitter works is that you prepare a folder with all your data files (Leonardo.csv), a settings file (settings.csv) and a parameters file (params.csv). Then you let allesfitter run on that directory, and it does the rest. The GUI hides all this from you, so let’s have a look behind the scenes.
Open the examples/crash_course folder. You will see the file run.py and the following two folders: allesfit_Leonardo and allesfit_all_TMNT.
### run.py This file just contains the simple 3 lines you need to execute to run any of the examples below (after installation). For example, using Nested Sampling:
import allesfitter allesfitter.ns_fit(‘allesfit_Leonardo’) allesfitter.ns_output(‘allesfit_Leonardo’)
Or, if you’re the MCMC kind of person:
import allesfitter allesfitter.mcmc_fit(‘allesfit_Leonardo’) allesfitter.mcmc_output(‘allesfit_Leonardo’)
### allesfit_Leonardo:
This folder is an example of fitting the following data set: Leonardo.csv (discovery photometry). Time, flux and flux error are given in a comma-separated .csv file.
settings.csv. Open it, and you will see that its minimal content are the planet letter (“b”) and instrument (“Leonardo”). All of these must match the entries in params.csv and the names of any data .csv, here we only have Leonardo.csv files. To speed up the example, we also set the fast_fit option and run on 4 cores. There are dozens of other possible settings to give the user all freedom. These are explained further in Section X below. (todo)
params.csv. Open it, and you will see the parameters describing the model. There are dozens of possible parameters to freeze and fit. These are further explained in Section Y below. (todo)
Finally, when allesfitter runs, it creates the subfolder results. It contains log files, result tables, LaTex tables, plots of the inital guess and final fit, corner plots, trace plots (for Nested Sampling), chain plots (for MCMC) and an internal save file. Have a look!
### allesfit_all_TMNT:
This is an example of fitting the following four data sets:
- Leonardo.csv (discovery photometry)
- Michelangelo.csv (follow-up photometry)
- Donatello.csv (decent RV data)
- Raphael.csv (good RV data)
Explore the settings.csv and params.csv files to see how to include this additional data into the fit.


{% extends 'core/base.html' %} {% load crispy_forms_tags %} {% block content %}
Which Trello notifications would you like to appear in {{ webhook }} from {{ board |title }}


Oddest calls from Aussies abroad revealed
by AAPFrom a bird blamed for eating a passport to someone seeking advice on the egg preferences of North Koreans, the Department of Foreign Affairs and Trade has heard it all.
Those examples are a few of the unusual requests for help from Australians travelling overseas, as revealed by Foreign Minister Marise Payne on Monday when she launched the annual State of Play report.
The report details where Australian citizens travel and the assistance they sometimes require.
A panicked Aussie eager to jet off to Bali called for consular help when an airline wouldn’t let them fly because they claimed a bird had eaten their ID.
“What could possibly go wrong on that Bali trip?” Ms Payne quipped in Sydney on Monday.
Meanwhile, in Puerto Rico, an Australian who wanted to change hotels decided to ring the department to see if they could help them in their endeavour by ordering an Uber.
Another called to ask for diplomatic immunity – despite still living in Australia.
But “perhaps the strangest” of all requests received in the 2018/19 financial year was from a person keen to sell eggs in Pyongyang.
“Ok, I thought,” Ms Payne said.
“Except that the second question was ‘Could DFAT please ascertain whether North Koreans prefer white or brown eggs?'”. The answer remains unclear.
© AAP 2019


You can give the exapnder a set height and it will scroll for any content longer than the heigt
Look some content below
Hello!


bc
Section: User Commands (1)Updated: 2006-06-11
Index Return to Main Contents
NAME
bc - An arbitrary precision calculator languageSYNTAX
bc [ -hlwsqv ] [long-options] [ file ... ]DESCRIPTION
bc is a language that supports arbitrary precision numbers with interactive execution of statements. There are some similarities in the syntax to the C programming language. A standard math library is available by command line option. If requested, the math library is defined before processing any files. bc starts by processing code from all the files listed on the command line in the order listed. After all files have been processed, bc reads from the standard input. All code is executed as it is read. (If a file contains a command to halt the processor, bc will never read from the standard input.)This version of bc contains several extensions beyond traditional bc implementations and the POSIX draft standard. Command line options can cause these extensions to print a warning or to be rejected. This document describes the language accepted by this processor. Extensions will be identified as such.
OPTIONS
- -h, --help
- Print the usage and exit.
- -i, --interactive
- Force interactive mode.
- -l, --mathlib
- Define the standard math library.
- -w, --warn
- Give warnings for extensions to POSIX bc.
- -s, --standard
- Process exactly the POSIX bc language.
- -q, --quiet
- Do not print the normal GNU bc welcome.
- -v, --version
- Print the version number and copyright and quit.
NUMBERS
The most basic element in bc is the number. Numbers are arbitrary precision numbers. This precision is both in the integer part and the fractional part. All numbers are represented internally in decimal and all computation is done in decimal. (This version truncates results from divide and multiply operations.) There are two attributes of numbers, the length and the scale. The length is the total number of significant decimal digits in a number and the scale is the total number of decimal digits after the decimal point. For example:- .000001 has a length of 6 and scale of 6. 1935.000 has a length of 7 and a scale of 3.
VARIABLES
Numbers are stored in two types of variables, simple variables and arrays. Both simple variables and array variables are named. Names begin with a letter followed by any number of letters, digits and underscores. All letters must be lower case. (Full alpha-numeric names are an extension. In POSIX bc all names are a single lower case letter.) The type of variable is clear by the context because all array variable names will be followed by brackets ([]).There are four special variables, scale, ibase, obase, and last. scale defines how some operations use digits after the decimal point. The default value of scale is 0. ibase and obase define the conversion base for input and output numbers. The default for both input and output is base 10. last (an extension) is a variable that has the value of the last printed number. These will be discussed in further detail where appropriate. All of these variables may have values assigned to them as well as used in expressions.
COMMENTS
Comments in bc start with the characters /* and end with the characters */. Comments may start anywhere and appear as a single space in the input. (This causes comments to delimit other input items. For example, a comment can not be found in the middle of a variable name.) Comments include any newlines (end of line) between the start and the end of the comment.To support the use of scripts for bc, a single line comment has been added as an extension. A single line comment starts at a # character and continues to the next end of the line. The end of line character is not part of the comment and is processed normally.
EXPRESSIONS
The numbers are manipulated by expressions and statements. Since the language was designed to be interactive, statements and expressions are executed as soon as possible. There is no "main" program. Instead, code is executed as it is encountered. (Functions, discussed in detail later, are defined when encountered.)A simple expression is just a constant. bc converts constants into internal decimal numbers using the current input base, specified by the variable ibase. (There is an exception in functions.) The legal values of ibase are 2 through 16. Assigning a value outside this range to ibase will result in a value of 2 or 16. Input numbers may contain the characters 0-9 and A-F. (Note: They must be capitals. Lower case letters are variable names.) Single digit numbers always have the value of the digit regardless of the value of ibase. (i.e. A = 10.) For multi-digit numbers, bc changes all input digits greater or equal to ibase to the value of ibase-1. This makes the number FFF always be the largest 3 digit number of the input base.
Full expressions are similar to many other high level languages. Since there is only one kind of number, there are no rules for mixing types. Instead, there are rules on the scale of expressions. Every expression has a scale. This is derived from the scale of original numbers, the operation performed and in many cases, the value of the variable scale. Legal values of the variable scale are 0 to the maximum number representable by a C integer.
In the following descriptions of legal expressions, "expr" refers to a complete expression and "var" refers to a simple or an array variable. A simple variable is just a
- name
- name[expr]
- - expr
- The result is the negation of the expression.
- ++ var
- The variable is incremented by one and the new value is the result of the expression.
- -- var
- The variable is decremented by one and the new value is the result of the expression.
- var ++
-
The result of the expression is the value of the variable and then the variable is incremented by one. - var --
- The result of the expression is the value of the variable and then the variable is decremented by one.
- expr + expr
- The result of the expression is the sum of the two expressions.
- expr - expr
- The result of the expression is the difference of the two expressions.
- expr * expr
- The result of the expression is the product of the two expressions.
- expr / expr
- The result of the expression is the quotient of the two expressions. The scale of the result is the value of the variable scale.
- expr % expr
- The result of the expression is the "remainder" and it is computed in the following way. To compute a%b, first a/b is computed to scale digits. That result is used to compute a-(a/b)*b to the scale of the maximum of scale+scale(b) and scale(a). If scale is set to zero and both expressions are integers this expression is the integer remainder function.
- expr ^ expr
- The result of the expression is the value of the first raised to the second. The second expression must be an integer. (If the second expression is not an integer, a warning is generated and the expression is truncated to get an integer value.) The scale of the result is scale if the exponent is negative. If the exponent is positive the scale of the result is the minimum of the scale of the first expression times the value of the exponent and the maximum of scale and the scale of the first expression. (e.g. scale(a^b) = min(scale(a)*b, max( scale, scale(a))).) It should be noted that expr^0 will always return the value of 1.
- ( expr )
- This alters the standard precedence to force the evaluation of the expression.
- var = expr
- The variable is assigned the value of the expression.
- var <op>= expr
- This is equivalent to "var = var <op> expr" with the exception that the "var" part is evaluated only once. This can make a difference if "var" is an array.
Relational expressions are a special kind of expression that always evaluate to 0 or 1, 0 if the relation is false and 1 if the relation is true. These may appear in any legal expression. (POSIX bc requires that relational expressions are used only in if, while, and for statements and that only one relational test may be done in them.) The relational operators are
- expr1 < expr2
- The result is 1 if expr1 is strictly less than expr2.
- expr1 <= expr2
- The result is 1 if expr1 is less than or equal to expr2.
- expr1 > expr2
- The result is 1 if expr1 is strictly greater than expr2.
- expr1 >= expr2
- The result is 1 if expr1 is greater than or equal to expr2.
- expr1 == expr2
- The result is 1 if expr1 is equal to expr2.
- expr1 != expr2
- The result is 1 if expr1 is not equal to expr2.
Boolean operations are also legal. (POSIX bc does NOT have boolean operations). The result of all boolean operations are 0 and 1 (for false and true) as in relational expressions. The boolean operators are:
- !expr
- The result is 1 if expr is 0.
- expr && expr
- The result is 1 if both expressions are non-zero.
- expr || expr
- The result is 1 if either expression is non-zero.
The expression precedence is as follows: (lowest to highest)
- || operator, left associative && operator, left associative ! operator, nonassociative Relational operators, left associative Assignment operator, right associative + and - operators, left associative *, / and % operators, left associative ^ operator, right associative unary - operator, nonassociative ++ and -- operators, nonassociative
This precedence was chosen so that POSIX compliant bc programs will run correctly. This will cause the use of the relational and logical operators to have some unusual behavior when used with assignment expressions. Consider the expression:
- a = 3 < 5
Most C programmers would assume this would assign the result of "3 < 5" (the value 1) to the variable "a". What this does in bc is assign the value 3 to the variable "a" and then compare 3 to 5. It is best to use parenthesis when using relational and logical operators with the assignment operators.
There are a few more special expressions that are provided in bc. These have to do with user defined functions and standard functions. They all appear as "name(parameters)". See the section on functions for user defined functions. The standard functions are:
- length ( expression )
- The value of the length function is the number of significant digits in the expression.
- read ( )
- The read function (an extension) will read a number from the standard input, regardless of where the function occurs. Beware, this can cause problems with the mixing of data and program in the standard input. The best use for this function is in a previously written program that needs input from the user, but never allows program code to be input from the user. The value of the read function is the number read from the standard input using the current value of the variable ibase for the conversion base.
- scale ( expression )
- The value of the scale function is the number of digits after the decimal point in the expression.
- sqrt ( expression )
- The value of the sqrt function is the square root of the expression. If the expression is negative, a run time error is generated.
STATEMENTS
Statements (as in most algebraic languages) provide the sequencing of expression evaluation. In bc statements are executed "as soon as possible." Execution happens when a newline in encountered and there is one or more complete statements. Due to this immediate execution, newlines are very important in bc. In fact, both a semicolon and a newline are used as statement separators. An improperly placed newline will cause a syntax error. Because newlines are statement separators, it is possible to hide a newline by using the backslash character. The sequence "\<nl>", where <nl> is the newline appears to bc as whitespace instead of a newline. A statement list is a series of statements separated by semicolons and newlines. The following is a list of bc statements and what they do: (Things enclosed in brackets ([]) are optional parts of the statement.)- expression
- This statement does one of two things. If the expression starts with "<variable> <assignment> ...", it is considered to be an assignment statement. If the expression is not an assignment statement, the expression is evaluated and printed to the output. After the number is printed, a newline is printed. For example, "a=1" is an assignment statement and "(a=1)" is an expression that has an embedded assignment. All numbers that are printed are printed in the base specified by the variable obase. The legal values for obase are 2 through BC_BASE_MAX. (See the section LIMITS.) For bases 2 through 16, the usual method of writing numbers is used. For bases greater than 16, bc uses a multi-character digit method of printing the numbers where each higher base digit is printed as a base 10 number. The multi-character digits are separated by spaces. Each digit contains the number of characters required to represent the base ten value of "obase-1". Since numbers are of arbitrary precision, some numbers may not be printable on a single output line. These long numbers will be split across lines using the "\" as the last character on a line. The maximum number of characters printed per line is 70. Due to the interactive nature of bc, printing a number causes the side effect of assigning the printed value to the special variable last. This allows the user to recover the last value printed without having to retype the expression that printed the number. Assigning to last is legal and will overwrite the last printed value with the assigned value. The newly assigned value will remain until the next number is printed or another value is assigned to last. (Some installations may allow the use of a single period (.) which is not part of a number as a short hand notation for for last.)
- string
- The string is printed to the output. Strings start with a double quote character and contain all characters until the next double quote character. All characters are take literally, including any newline. No newline character is printed after the string.
- print list
- The print statement (an extension) provides another method of output. The "list" is a list of strings and expressions separated by commas. Each string or expression is printed in the order of the list. No terminating newline is printed. Expressions are evaluated and their value is printed and assigned to the variable last. Strings in the print statement are printed to the output and may contain special characters. Special characters start with the backslash character (\). The special characters recognized by bc are "a" (alert or bell), "b" (backspace), "f" (form feed), "n" (newline), "r" (carriage return), "q" (double quote), "t" (tab), and "\" (backslash). Any other character following the backslash will be ignored.
- { statement_list }
- This is the compound statement. It allows multiple statements to be grouped together for execution.
- if ( expression ) statement1 [else statement2]
- The if statement evaluates the expression and executes statement1 or statement2 depending on the value of the expression. If the expression is non-zero, statement1 is executed. If statement2 is present and the value of the expression is 0, then statement2 is executed. (The else clause is an extension.)
- while ( expression ) statement
- The while statement will execute the statement while the expression is non-zero. It evaluates the expression before each execution of the statement. Termination of the loop is caused by a zero expression value or the execution of a break statement.
- for ( [expression1] ; [expression2] ; [expression3] ) statement
-
The for statement controls repeated execution of the statement.
Expression1 is evaluated before the loop. Expression2 is evaluated
before each execution of the statement. If it is non-zero, the statement
is evaluated. If it is zero, the loop is terminated. After each
execution of the statement, expression3 is evaluated before the reevaluation
of expression2. If expression1 or expression3 are missing, nothing is
evaluated at the point they would be evaluated.
If expression2 is missing, it is the same as substituting
the value 1 for expression2.  POSIX bc requires all three expressions.)
The following is equivalent code for the for statement:
- expression1; while (expression2) { statement; expression3; }
- break
- This statement causes a forced exit of the most recent enclosing while statement or for statement.
- continue
- The continue statement (an extension) causes the most recent enclosing for statement to start the next iteration.
- halt
- The halt statement (an extension) is an executed statement that causes the bc processor to quit only when it is executed. For example, "if (0 == 1) halt" will not cause bc to terminate because the halt is not executed.
- return
- Return the value 0 from a function. (See the section on functions.)
- return ( expression )
- Return the value of the expression from a function. (See the section on functions.) As an extension, the parenthesis are not required.
PSEUDO STATEMENTS
These statements are not statements in the traditional sense. They are not executed statements. Their function is performed at "compile" time.- limits
- Print the local limits enforced by the local version of bc. This is an extension.
- quit
- When the quit statement is read, the bc processor is terminated, regardless of where the quit statement is found. For example, "if (0 == 1) quit" will cause bc to terminate.
- warranty
- Print a longer warranty notice. This is an extension.
FUNCTIONS
Functions provide a method of defining a computation that can be executed later. Functions in bc always compute a value and return it to the caller. Function definitions are "dynamic" in the sense that a function is undefined until a definition is encountered in the input. That definition is then used until another definition function for the same name is encountered. The new definition then replaces the older definition. A function is defined as follows:- define name ( parameters ) { newline auto_list statement_list }
Parameters are numbers or arrays (an extension). In the function definition, zero or more parameters are defined by listing their names separated by commas. All parameters are call by value parameters. Arrays are specified in the parameter definition by the notation "name[]". In the function call, actual parameters are full expressions for number parameters. The same notation is used for passing arrays as for defining array parameters. The named array is passed by value to the function. Since function definitions are dynamic, parameter numbers and types are checked when a function is called. Any mismatch in number or types of parameters will cause a runtime error. A runtime error will also occur for the call to an undefined function.
The auto_list is an optional list of variables that are for "local" use. The syntax of the auto list (if present) is "auto name, ... ;". (The semicolon is optional.) Each name is the name of an auto variable. Arrays may be specified by using the same notation as used in parameters. These variables have their values pushed onto a stack at the start of the function. The variables are then initialized to zero and used throughout the execution of the function. At function exit, these variables are popped so that the original value (at the time of the function call) of these variables are restored. The parameters are really auto variables that are initialized to a value provided in the function call. Auto variables are different than traditional local variables because if function A calls function B, B may access function A's auto variables by just using the same name, unless function B has called them auto variables. Due to the fact that auto variables and parameters are pushed onto a stack, bc supports recursive functions.
The function body is a list of bc statements. Again, statements are separated by semicolons or newlines. Return statements cause the termination of a function and the return of a value. There are two versions of the return statement. The first form, "return", returns the value 0 to the calling expression. The second form, "return ( expression )", computes the value of the expression and returns that value to the calling expression. There is an implied "return (0)" at the end of every function. This allows a function to terminate and return 0 without an explicit return statement.
Functions also change the usage of the variable ibase. All constants in the function body will be converted using the value of ibase at the time of the function call. Changes of ibase will be ignored during the execution of the function except for the standard function read, which will always use the current value of ibase for conversion of numbers.
Several extensions have been added to functions. First, the format of the definition has been slightly relaxed. The standard requires the opening brace be on the same line as the define keyword and all other parts must be on following lines. This version of bc will allow any number of newlines before and after the opening brace of the function. For example, the following definitions are legal.
- define d (n) { return (2*n); } define d (n) { return (2*n); }
Functions may be defined as void. A void funtion returns no value and thus may not be used in any place that needs a value. A void function does not produce any output when called by itself on an input line. The key word void is placed between the key word define and the function name. For example, consider the following session.
- define py (y) { print "--->", y, "<---", "; } define void px (x) { print "--->", x, "<---", "; } py(1) --->1<--- 0 px(1) --->1<---
Also, call by variable for arrays was added. To declare a call by variable array, the declaration of the array parameter in the function definition looks like "*name[]". The call to the function remains the same as call by value arrays.
MATH LIBRARY
If bc is invoked with the -l option, a math library is preloaded and the default scale is set to 20. The math functions will calculate their results to the scale set at the time of their call. The math library defines the following functions:- s (x)
- The sine of x, x is in radians.
- c (x)
- The cosine of x, x is in radians.
- a (x)
- The arctangent of x, arctangent returns radians.
- l (x)
- The natural logarithm of x.
- e (x)
- The exponential function of raising e to the value x.
- j (n,x)
- The Bessel function of integer order n of x.
EXAMPLES
In /bin/sh, the following will assign the value of "pi" to the shell variable pi.- pi=$(echo "scale=10; 4*a(1)" | bc -l)
The following is the definition of the exponential function used in the math library. This function is written in POSIX bc.
- scale = 20 /* Uses the fact that e^x = (e^(x/2))^2 When x is small enough, we use the series: e^x = 1 + x + x^2/2! + x^3/3! + ... */ define e(x) { auto a, d, e, f, i, m, v, z /* Check the sign of x. */ if (x<0) { m = 1 x = -x } /* Precondition x. */ z = scale; scale = 4 + z + .44*x; while (x > 1) { f += 1; x /= 2; } /* Initialize the variables. */ v = 1+x a = x d = 1 for (i=2; 1; i++) { e = (a *= x) / (d *= i) if (e == 0) { if (f>0) while (f--) v = v*v; scale = z if (m) return (1/v); return (v/1); } v += e } }
The following is code that uses the extended features of bc to implement a simple program for calculating checkbook balances. This program is best kept in a file so that it can be used many times without having to retype it at every use.
- scale=2 print "\nCheck book program!\n" print " Remember, deposits are negative transactions.\n" print " Exit by a 0 transaction.\n\n" print "Initial balance? "; bal = read() bal /= 1 print "\n" while (1) { "current balance = "; bal "transaction? "; trans = read() if (trans == 0) break; bal -= trans bal /= 1 } quit
The following is the definition of the recursive factorial function.
- define f (x) { if (x <= 1) return (1); return (f(x-1) * x); }
READLINE AND LIBEDIT OPTIONS
GNU bc can be compiled (via a configure option) to use the GNU readline input editor library or the BSD libedit library. This allows the user to do editing of lines before sending them to bc. It also allows for a history of previous lines typed. When this option is selected, bc has one more special variable. This special variable, history is the number of lines of history retained. For readline, a value of -1 means that an unlimited number of history lines are retained. Setting the value of history to a positive number restricts the number of history lines to the number given. The value of 0 disables the history feature. The default value is 100. For more information, read the user manuals for the GNU readline, history and BSD libedit libraries. One can not enable both readline and libedit at the same time.DIFFERENCES
This version of bc was implemented from the POSIX P1003.2/D11 draft and contains several differences and extensions relative to the draft and traditional implementations. It is not implemented in the traditional way using dc(1). This version is a single process which parses and runs a byte code translation of the program. There is an "undocumented" option (-c) that causes the program to output the byte code to the standard output instead of running it. It was mainly used for debugging the parser and preparing the math library.A major source of differences is extensions, where a feature is extended to add more functionality and additions, where new features are added. The following is the list of differences and extensions.
- LANG environment
- This version does not conform to the POSIX standard in the processing of the LANG environment variable and all environment variables starting with LC_.
- names
- Traditional and POSIX bc have single letter names for functions, variables and arrays. They have been extended to be multi-character names that start with a letter and may contain letters, numbers and the underscore character.
- Strings
- Strings are not allowed to contain NUL characters. POSIX says all characters must be included in strings.
- last
- POSIX bc does not have a last variable. Some implementations of bc use the period (.) in a similar way.
- comparisons
- POSIX bc allows comparisons only in the if statement, the while statement, and the second expression of the for statement. Also, only one relational operation is allowed in each of those statements.
- if statement, else clause
- POSIX bc does not have an else clause.
- for statement
- POSIX bc requires all expressions to be present in the for statement.
- &&, ||, !
- POSIX bc does not have the logical operators.
- read function
- POSIX bc does not have a read function.
- print statement
- POSIX bc does not have a print statement .
- continue statement
- POSIX bc does not have a continue statement.
- return statement
- POSIX bc requires parentheses around the return expression.
- array parameters
- POSIX bc does not (currently) support array parameters in full. The POSIX grammar allows for arrays in function definitions, but does not provide a method to specify an array as an actual parameter. (This is most likely an oversight in the grammar.) Traditional implementations of bc have only call by value array parameters.
- function format
- POSIX bc requires the opening brace on the same line as the define key word and the auto statement on the next line.
- =+, =-, =*, =/, =%, =^
- POSIX bc does not require these "old style" assignment operators to be defined. This version may allow these "old style" assignments. Use the limits statement to see if the installed version supports them. If it does support the "old style" assignment operators, the statement "a =- 1" will decrement a by 1 instead of setting a to the value -1.
- spaces in numbers
- Other implementations of bc allow spaces in numbers. For example, "x=1 3" would assign the value 13 to the variable x. The same statement would cause a syntax error in this version of bc.
- errors and execution
-
This implementation varies from other implementations in terms of what
code will be executed when syntax and other errors are found in the
program. If a syntax error is found in a function definition, error
recovery tries to find the beginning of a statement and continue to
parse the function. Once a syntax error is found in the function, the
function will not be callable and becomes undefined.
Syntax errors in the interactive execution code will invalidate the
current execution block. The execution block is terminated by an
end of line that appears after a complete sequence of statements.
For example,
- a = 1 b = 2
- { a = 1 b = 2 }
- Interrupts
- During an interactive session, the SIGINT signal (usually generated by the control-C character from the terminal) will cause execution of the current execution block to be interrupted. It will display a "runtime" error indicating which function was interrupted. After all runtime structures have been cleaned up, a message will be printed to notify the user that bc is ready for more input. All previously defined functions remain defined and the value of all non-auto variables are the value at the point of interruption. All auto variables and function parameters are removed during the clean up process. During a non-interactive session, the SIGINT signal will terminate the entire run of bc.
LIMITS
The following are the limits currently in place for this bc processor. Some of them may have been changed by an installation. Use the limits statement to see the actual values.- BC_BASE_MAX
- The maximum output base is currently set at 999. The maximum input base is 16.
- BC_DIM_MAX
- This is currently an arbitrary limit of 65535 as distributed. Your installation may be different.
- BC_SCALE_MAX
- The number of digits after the decimal point is limited to INT_MAX digits. Also, the number of digits before the decimal point is limited to INT_MAX digits.
- BC_STRING_MAX
- The limit on the number of characters in a string is INT_MAX characters.
- exponent
- The value of the exponent in the raise operation (^) is limited to LONG_MAX.
- variable names
- The current limit on the number of unique names is 32767 for each of simple variables, arrays and functions.
ENVIRONMENT VARIABLES
The following environment variables are processed by bc:- POSIXLY_CORRECT
- This is the same as the -s option.
- BC_ENV_ARGS
- This is another mechanism to get arguments to bc. The format is the same as the command line arguments. These arguments are processed first, so any files listed in the environment arguments are processed before any command line argument files. This allows the user to set up "standard" options and files to be processed at every invocation of bc. The files in the environment variables would typically contain function definitions for functions the user wants defined every time bc is run.
- BC_LINE_LENGTH
- This should be an integer specifying the number of characters in an output line for numbers. This includes the backslash and newline characters for long numbers. As an extension, the value of zero disables the multi-line feature. Any other value of this variable that is less than 3 sets the line length to 70.
DIAGNOSTICS
If any file on the command line can not be opened, bc will report that the file is unavailable and terminate. Also, there are compile and run time diagnostics that should be self-explanatory.BUGS
Error recovery is not very good yet.Email bug reports to<EMAIL_ADDRESS>Be sure to include the word ``bc'' somewhere in the ``Subject:'' field.
AUTHOR
Philip A. Nelson<EMAIL_ADDRESS>ACKNOWLEDGEMENTS
The author would like to thank Steve Sommars<EMAIL_ADDRESS>for his extensive help in testing the implementation. Many great suggestions were given. This is a much better product due to his involvement.
Index
This document was created by man2html, using the manual pages.
Time: 05:29:02 GMT, December 24, 2015


Ministry of Education (MoE), Govt. of India has established 'MoE's Innovation Cell (MIC)' in 2018 to systematically foster the culture of Innovation amongst all Higher Education Institutions (HEIs). The primary mandate of MIC is to encourage, inspire and nurture young students by supporting them to work with new ideas while they are in formative years.
MIC has envisioned encouraging creation of 'Institution's Innovation Council (IICs)' across selected HEIs. A network of these IICs will be established to promote innovation in the Institution through multitudinous modes leading to an innovation promotion eco-system in the campuses.
CRCE will be a center of Excellence in Engineering Education, moulding engineers with state-of-the art technologies, innovative skills and human values matching with the growing expectations of the corporates and the society and thus play an effective role in nation building.


Ocean [ad25], ocean, in Crystal Sea
Last updated Turn #126
Ocean [ad25], ocean, in Crystal Sea
------------------------------------------------------------------------
3: Sirocco Traveller [ja8y], ship, 10 hulls, 1 rowing port, 30 sails,
3: 4% damaged, arrived from Ocean [ad26], owner:
3: Toulouse [h1q], Pen, with one worker, 32 sailors
4: Sirocco Traveller [ja8y], ship, 10 hulls, 1 rowing port, 30 sails,
4: 4% damaged, departed for Ocean [ad24].
Routes leaving Ocean:
North, to Ocean [ac25], 6 days
East, to Ocean [ad26], 6 days
South, to Ocean [ae25], 6 days
West, to Ocean [ad24], 6 days


The content of the body element is displayed in the browser window.
The content of the title element is displayed in the browser tab, in favorites and in search engine results.
A Paragraph
W3schools


Can Ferguson break up established attack?
''I'm pretty sure we can't have a super over in a test match,'' Trent Boult quipped yesterday when asked if it was New Zealand's time to shine.
England edged the Black Caps in the World Cup final on a boundary countback after a dramatic tied match followed by a tense tied super over.
Then earlier this month England clinched the twenty20 series 3-2 with a super over win in the decider. It is still a sensitive topic for the Black Caps, who will be hoping victory will not be snatched away late again anytime soon.
Boult can be sure there will not be a super over but he cannot be sure who will partner him with the new ball when the first test against England at Bay Oval gets under way in Mount Maunganui tomorrow.
How the pitch plays is another unknown. The venue is making its test debut.
''It is a little bit of the unknown, really,'' Boult said.
''It is a pitch that hasn't gone five days before.
''They've played a handful of first-class matches here before. I was a part of one [recently].
''Hey, it is a good wicket. Most wickets these days are very good and I know the ground staff are looking for a good wicket that is going to be a good battle between bat and ball and a wicket that goes the full five days.''
Boult, Tim Southee and Neil Wagner have teamed up for the past seven home tests and the trio has enjoyed tremendous success.
They have captured more than 100 wickets among them and guided New Zealand to five wins and two draws during that time.
But the form of Lockie Ferguson at the World Cup means it is becoming increasing difficult to leave him out of the test XI.
Boult, however, appeared to urged caution about breaking up the band.
''We've got a very good record at home. I think we've lost one test match in the last 15 and that is probably testament to the way the bowlers have stuck at it.
''For New Zealand cricket to have the stocks that we have is exciting. We've got guys that can cover everything from 150kmh to guys that can swing the ball around in the air.''
Getting that ball to hoop has been a big challenge in the past few years. He said the Kookaburra ball ''doesn't do too much'' but ''I think we've got an attack that is well-balanced and very experienced and very clear on how they can generate 20 wickets no matter whether the ball is swinging or is not swinging''.
''We need to get these guys out to generate a result and we are looking forward to that challenge.''


Movies
Browserify
'clientbundle-hello.js'
bundle with jQuery and JsRender loaded as modules
Hello: "{{:hello}}"
Increment...


Steem Developer Portal
Jussi is a custom-built caching layer for use with steemd
and other various services (such as SBDS).
The purpose of this document is to help developers and node operators set up their own jussi node within a docker container.
Intro
Jussi is a reverse proxy that is situation between the API client and the steemd
server. It allows node operators to route an API call to nodes that are optimized for the particular call, as if they are all hosted from the same place.
Sections
Installation
To run jussi
locally:
git clone https://github.com/steemit/jussi.git
cd jussi
docker build -t="$USER/jussi:$(git rev-parse --abbrev-ref HEAD)" .
docker run -itp 9000:8080 "$USER/jussi:$(git rev-parse --abbrev-ref HEAD)"
jussi in a docker container as seen from Kitematic for macOS.
Try out your local configuration:
curl -s --data '{"jsonrpc":"2.0", "method":"condenser_api.get_block", "params":[8675309], "id":1}' http://localhost:9000
See: Running Condenser, Jussi and a new service locally + adding feature flags to Condenser
Adding Upstreams
The default DEV_config.json
is:
{
"limits":{"blacklist_accounts":["non-steemit"]},
"upstreams":[
{
"name":"steemd",
"translate_to_appbase":false,
"urls":[["steemd", "https://steemd.steemitdev.com"]],
"ttls":[
["steemd", 3],
["steemd.login_api", -1],
["steemd.network_broadcast_api", -1],
["steemd.follow_api", 10],
["steemd.market_history_api", 1],
["steemd.database_api", 3],
["steemd.database_api.get_block", -2],
["steemd.database_api.get_block_header", -2],
["steemd.database_api.get_content", 1],
["steemd.database_api.get_state", 1],
["steemd.database_api.get_state.params=['/trending']", 30],
["steemd.database_api.get_state.params=['trending']", 30],
["steemd.database_api.get_state.params=['/hot']", 30],
["steemd.database_api.get_state.params=['/welcome']", 30],
["steemd.database_api.get_state.params=['/promoted']", 30],
["steemd.database_api.get_state.params=['/created']", 10],
["steemd.database_api.get_dynamic_global_properties", 1]
],
"timeouts":[
["steemd", 5],
["steemd.network_broadcast_api", 0]
],
"retries": [
["steemd", 3],
["steemd.network_broadcast_api", 0]
]
},
{
"name":"appbase",
"urls":[["appbase", "https://steemd.steemitdev.com"]],
"ttls":[
["appbase", -2],
["appbase.block_api", -2],
["appbase.database_api", 1]
],
"timeouts":[
["appbase", 3],
["appbase.chain_api.push_block", 0],
["appbase.chain_api.push_transaction", 0],
["appbase.network_broadcast_api", 0],
["appbase.condenser_api.broadcast_block", 0],
["appbase.condenser_api.broadcast_transaction", 0],
["appbase.condenser_api.broadcast_transaction_synchronous", 0]
]
}
]
}
Upstreams can be added to the upstreams
array:
{
"name": "foo",
"urls": [["foo", "https://foo.host.name"]],
"ttls": [["foo", 3]],
"timeouts": [["foo", 5]]
}
Once the above upstream is added to the local config and docker has been built, the following curl
will work:
curl -s --data '{"jsonrpc":"2.0", "method":"foo.bar", "params":["baz"], "id":1}' http://localhost:9000
Note: if you set translate_to_appbase
as true
, jussi will do the translation for you and that specific endpoint will work with libraries that don’t yet support appbase.
Benefits of jussi
Time To Live
Jussi can be configured with various TTL
(Time To Live) schemes. A TTL
is an integer value in seconds. Integers equal to or less than 0
have special meaning. A reasonable set of defaults would be:
| Upstream | API | Method | Parameters | TTL (seconds) |
|---|---|---|---|---|
steemd |
login_api |
all | all | -1 |
steemd |
network_broadcast_api |
all | all | -1 |
steemd |
follow_api |
all | all | 10 |
steemd |
market_history_api |
all | all | 1 |
steemd |
database_api |
all | all | 3 |
steemd |
database_api |
get_block |
all | -2 |
steemd |
database_api |
get_block_header |
all | -2 |
steemd |
database_api |
get_content |
all | 1 |
steemd |
database_api |
get_state |
all | 1 |
steemd |
database_api |
get_state |
'/trending' |
30 |
steemd |
database_api |
get_state |
'trending' |
30 |
steemd |
database_api |
get_state |
'/hot' |
30 |
steemd |
database_api |
get_state |
'/welcome' |
30 |
steemd |
database_api |
get_state |
'/promoted' |
30 |
steemd |
database_api |
get_state |
'/created' |
10 |
steemd |
database_api |
get_dynamic_global_properties |
all | 1 |
overseer |
all | all | all | 5 |
conveyor |
all | all | all | -1 |
sbds |
all | all | all | 3 |
hivemind |
all | all | all | 3 |
yo |
all | all | all | 3 |
In this case, requests for login_api
and network_broadcast_api
have a TTL
of -1
, which means requests with those namespaces are not cached, whereas follow_api
request have a TTL
of 10
seconds.
Some methods and parameters have their own TTL
that overrides the general default, like database_api.get_block
, which overrides database_api.*
.
Time to Live Special Meaning
0
won’t expire-1
won’t be cached-2
will be cached without expiration only if it isirreversible
in terms of blockchain consensus
If you have a local copy of jussi (see: Installation), you can change these defaults by modifying DEV_config.json
.
Multiple Routes
Each urls
key can have multiple endpoints for each namespace. For example:
{
"urls":[
["appbase", "https://api.steemitdev.com"]
]
}
… can also be expressed as:
{
"urls":[
["appbase","https://api.steemitdev.com"],
["appbase.condenser_api.get_account_history","https://api-for-account-history.steemitdev.com"],
["appbase.condenser_api.get_ops_in_block","https://api-for-get-ops-in-block.steemitdev.com"]
]
}
In these examples, the methods get_account_history
and get_ops_in_block
route to a dedicated API endpoint, while the rest of the appbase
namespace routes to a common endpoint.
Retry
Adding a retries
element defines the number of retry attempts, where 0
(or absent) means no retry. The maximum number of retries is 3
.
Note that retrying broadcast methods is not recommended, which is why the example explicitly sets steemd.network_broadcast_api
to 0
.
json-rpc batch
Normally, a request is made with a JSON Object ({}
). But jussi also supports batch requests, which is constructed with a JSON Array of Objects ([{}]
).
For example, this would be a typical, non-batched JSON Object request that asks for a single block:
curl -s --data '{"jsonrpc":"2.0", "method":"condenser_api.get_block", "params":[1], "id":1}' https://api.steemit.com
{
"id":1,
"jsonrpc":"2.0",
"result":{
"previous":"0000000000000000000000000000000000000000",
"timestamp":"2016-03-24T16:05:00",
"witness":"initminer",
"transaction_merkle_root":"0000000000000000000000000000000000000000",
"extensions":[
],
"witness_signature":"204f8ad56a8f5cf722a02b035a61b500aa59b9519b2c33c77a80c0a714680a5a5a7a340d909d19996613c5e4ae92146b9add8a7a663eef37d837ef881477313043",
"transactions":[
],
"block_id":"0000000109833ce528d5bbfb3f6225b39ee10086",
"signing_key":"STM8GC13uCZbP44HzMLV6zPZGwVQ8Nt4Kji8PapsPiNq1BK153XTX",
"transaction_ids":[
]
}
}
To request more than one block using the batch construct, wrap each call in a JSON Array, that asks for two blocks in one request:
curl -s --data '[{"jsonrpc":"2.0", "method":"condenser_api.get_block", "params":[1], "id":1},{"jsonrpc":"2.0", "method":"condenser_api.get_block", "params":[2], "id":2}]' https://api.steemit.com
[
{
"id":1,
"jsonrpc":"2.0",
"result":{
"previous":"0000000000000000000000000000000000000000",
"timestamp":"2016-03-24T16:05:00",
"witness":"initminer",
"transaction_merkle_root":"0000000000000000000000000000000000000000",
"extensions":[
],
"witness_signature":"204f8ad56a8f5cf722a02b035a61b500aa59b9519b2c33c77a80c0a714680a5a5a7a340d909d19996613c5e4ae92146b9add8a7a663eef37d837ef881477313043",
"transactions":[
],
"block_id":"0000000109833ce528d5bbfb3f6225b39ee10086",
"signing_key":"STM8GC13uCZbP44HzMLV6zPZGwVQ8Nt4Kji8PapsPiNq1BK153XTX",
"transaction_ids":[
]
}
},
{
"id":2,
"jsonrpc":"2.0",
"result":{
"previous":"0000000109833ce528d5bbfb3f6225b39ee10086",
"timestamp":"2016-03-24T16:05:36",
"witness":"initminer",
"transaction_merkle_root":"0000000000000000000000000000000000000000",
"extensions":[
],
"witness_signature":"1f3e85ab301a600f391f11e859240f090a9404f8ebf0bf98df58eb17f455156e2d16e1dcfc621acb3a7acbedc86b6d2560fdd87ce5709e80fa333a2bbb92966df3",
"transactions":[
],
"block_id":"00000002ed04e3c3def0238f693931ee7eebbdf1",
"signing_key":"STM8GC13uCZbP44HzMLV6zPZGwVQ8Nt4Kji8PapsPiNq1BK153XTX",
"transaction_ids":[
]
}
}
]
Error responses are returned in the JSON Array response as well. Notice the "WRONG"
parameter in the second element. The first block is returned as expected, the second one generates an error.
curl -s --data '[{"jsonrpc":"2.0", "method":"condenser_api.get_block", "params":[1], "id":1},{"jsonrpc":"2.0", "method":"condenser_api.get_block", "params":["WRONG"], "id":2}]' https://api.steemit.com
[
{
"jsonrpc":"2.0",
"result":{
"previous":"0000000000000000000000000000000000000000",
"timestamp":"2016-03-24T16:05:00",
"witness":"initminer",
"transaction_merkle_root":"0000000000000000000000000000000000000000",
"extensions":[
],
"witness_signature":"204f8ad56a8f5cf722a02b035a61b500aa59b9519b2c33c77a80c0a714680a5a5a7a340d909d19996613c5e4ae92146b9add8a7a663eef37d837ef881477313043",
"transactions":[
],
"block_id":"0000000109833ce528d5bbfb3f6225b39ee10086",
"signing_key":"STM8GC13uCZbP44HzMLV6zPZGwVQ8Nt4Kji8PapsPiNq1BK153XTX",
"transaction_ids":[
]
},
"id":1
},
{
"jsonrpc":"2.0",
"error":{
"code":-32000,
"message":"Parse Error:Couldn't parse uint64_t",
"data":{
"code":4,
"name":"parse_error_exception",
"message":"Parse Error",
"stack":[
{
"context":{
"level":"error",
"file":"string.cpp",
"line":113,
"method":"to_uint64",
"hostname":"",
"timestamp":"2018-05-21T18:02:41"
},
"format":"Couldn't parse uint64_t",
"data":{
}
},
{
"context":{
"level":"warn",
"file":"string.cpp",
"line":116,
"method":"to_uint64",
"hostname":"",
"timestamp":"2018-05-21T18:02:41"
},
"format":"",
"data":{
"i":"WRONG"
}
},
{
"context":{
"level":"warn",
"file":"variant.cpp",
"line":405,
"method":"as_uint64",
"hostname":"",
"timestamp":"2018-05-21T18:02:41"
},
"format":"",
"data":{
"*this":"WRONG"
}
}
]
}
},
"id":2
}
]
Footnotes
- Batch requests are limited to a maximum of 50 request elements.
- Also see: json-rpc batch specification
- Repository: github.com/steemit/jussi
Latin
jussi noun declension: 2nd declension gender: neuter Definitions: 1. order, command, decree, ordinance, law


For example, if you are chatting on http://hostname/as/chat/room/16
- appkey
- You get appkey on your account page. For example, 'm0G6zz5Y2dUJ40kyKZ1P'
- baseUrl
- In this example, 'http://hostname/as/'
- roomNumber
- In this example, '16'
- message
- Notification message format.
Message macro:
- ${user}
- The full name of user who builds
- ${result}
- The result, for example 'SUCCESS'.
- ${project}
- The project name.
- ${number}
- The build number.
- ${url}
- The URL of the build page.


Fed Govt releases minimum wage circular to labour
By Frank Ikpefan, Abuja and Toba Agboola
The least paid federal worker on Level 1 Step 1 will earn N360,000 per annum while the highest-paid at Level 17 Step 9 will take home N6,215,435 per annum.
These are the highlights of the minimum wage payment template released by the Federal Government.
The circular on the new wage, dated November 14 and signed by the Acting Chairman of the National Income, Salaries and Wages Commission, Ekpo Nta, is copied to top government officials, including the Chief of Staff to the President, Secretary to the Government of the Federation, ministers, among others.
It says: “Consequent upon the enactment of the National Minimum Wage (Amendment) Act 2019 and the negotiations between the Federal Government and organised labour (represented by the Joint National Public Service Negotiating Council) in respect of the consequential adjustments of salaries of employees in the federal public service, the President of the Federal Republic of Nigeria has approved the revision of the Consolidated Public Service Salary Structure (CONPSS) with effect from the 18th of April 2019.”
In the breakdown, a worker on Level 1, Step 1 will earn N360, 000 per annum, while Level 1, Step 15 will earn N422, 566 per annum.
Read Also: Minimum wage: LASG still negotiating with labour
Level 5, Step 1 officer will earn N394, 498 per annum and on Step 15 earn N534, 834 per annum.
Level 7, Step 1 officer will earn N638, 133 per annum and Step 5 will earn N961, 577 per annum.
Level 10 step 1 will earn N1, 060,833 per annum, while Step 15 of the same level will earn N1, 535,417 per annum.
Level 14, Step 1 will earn N1, 503,149 per annum. Step 11 of the same level will earn N2, 101,600.
Organised labour has received the template which they have shared with their state councils to guide them in their negotiations.
President of the Trade Union Congress (TUC), Quadri Olaleye, yesterday said the circular had been sent to all state chapters.
“We have received the circular and we have sent it to all our state chairmen.”
Asked if state councils have opened negotiations with governors, he said: “There is no update yet because they were waiting for that document.
“We have just sent the document to them. We have to be patient to allow them to kick-start negotiations.”


Point Cloud (Color)
open dev tools
This demo shows the colored point cloud in a three.js 3D environment.
Renderer:
Kinect:


The Invention of the Internet
Concept
While many scientists and engineers, like Nikola Tesla theorized of systems like the internet we know today, the idea was first conceptualized in the early 1960’s by J.C.R. Licklider, a renowned psychologist at MIT. Licklider believed early on that computers would allow for a more effective way to communicate, therefore creating a massive network of data exchange amongst its users. Due to the confrontational landscape the United States found themselves in with the rise of technology advancement from the USSR, Eisenhower forged an organization known as ARPA (Advanced Research Projects Agency) to aid in the advancement of space exploration and computer science. Then the space exploration received its own dedicated organization – NASA.
Development
Shortly after the computer science objective fell to researchers. Dr. Leonard Kleinrock a researcher at MIT began developing Queueing Theory. Queueing theory focused on two principles to advance the idea of resource sharing. The first principle was Demand Access, which focused on the idea of not obtaining what you need until you need it. The second principle being Distributed Control, which focused on a singular device would not control the entire network but rather every device share in the authority of the network, contributing collectively. This paved the way for the advancement of data transmission, and ultimately setting the stage for the need of a more efficient means of communicating due to the flaws of telephony’s circuit switching method.
In the late 1960’s the first prototype of the internet was developed. In 1966 Bob Taylor of ARPA was required to use multiple terminals to access different computers. His theory of being able to utilize a single terminal to access multiple computers and transferring files amongst them led to ARPA receiving funding his research from the Department of Defense. Dr. Lawrence Roberts built the first experimental connection between two computers at the Lincoln laboratory, as he was familiar with the queueing theory through his relationship with Dr. Kleinrock. He was hired by ARPA to scale the networking model. Eventually Roberts discovered how to efficiently build this through IMPs (Interface Message Processors), and packet switching became reality, the first edition of the gateway and now today achieved through routers.
Deployment
In 1969, the first “Node to Node” ARPAnet message was sent in partnership with UCLA, the site of the first computer in the network, and Stanford being the second. Eventually leading up to 18 active computers on the network. The technology continuously grew, with the introduction of the TCP/IP protocol (Transmission Control Protocol and Internet Protocol) developed by scientists Robert Kahn and Vinton Cerf. In 1983 ARPnet adopted the TCP/IP protocol which created what is today known as the modern internet. In 1990 a computer scientist, Tim Berners-Lee made Licklider’s dream a reality and formed what we now know as the world wide web, bringing the idea of global users both accessing and sharing data across a global network.


Nynaeve had to admit that Thom and Juilin between them had chosen a good campsite, in a sparse thicket growing on an eastern slope, covered with dead leaves, a scant mile from Mardecin. Scattered sourgums and some sort of small, droopy-branched willow screened the wagon from the road and the town, and a two-foot-wide rivulet ran from a stone outcrop near the top of the rise, down a bed of dried mud twice as broad. Enough water for their purposes. It was even a little cooler under the trees, with a small and welcome breeze.
Once the two men had watered the team and hobbled them where the horses could feed on the sparse grass upslope, they tossed a coin to decide which should take the lanky gelding into Mardecin to purchase what they needed. The coin flipping was a ritual that they had developed. Thom, whose nimble fingers were used to performing sleight-of-hand, never lost when he flipped the coin, so Juilin always did it now.
Thom won anyway, and while he was stripping the saddle from Skulker, Nynaeve put her head under the wagon seat and levered up a floorboard with her belt knife. Besides two small gilded coffers containing Amathera’s presents of jewelry, several leather purses bulging with coin lay in the recess. The panarch had been more than generous in her desire to see their backs. The other things looked trifling by comparison; a small dark wooden box, polished but plain and uncarved, and a washleather purse lying flat and showing the impression of a disc inside. The box held the two ter’angreal they had recovered from the Black Ajah, both linked to dreams, and the purse . . . That was their prize from Tanchico. One of the seals on the Dark One’s prison.
As much as she wanted to find out where Siuan Sanche wanted them to chase the Black Ajah next, the seal was the source of her haste to reach Tar Valon. Digging coins from one of the fat purses, she avoided touching the flat purse; the longer it remained in her possession, the more she wanted to hand it to the Amyrlin and be done with it. Sometimes she thought she could feel the Dark One, trying to break through, when she was near the thing.
She saw Thom off with a pocketful of silver and a strong admonition to search out some fruit and green vegetables; either man was likely as not to buy nothing but meat and beans, left to himself. Thom’s limp as he led the horse off toward the road made her grimace; an old injury, and nothing to be done for it now, so Moiraine said. That rankled as much as the limp itself. Nothing to be done.
When she had left the Two Rivers, it had been to protect young people from her village, snatched away in the night by an Aes Sedai. She had gone to the Tower still with the hope that she could somehow shelter them, and the added ambition of bringing down Moiraine for what she had done. The world had changed since then. Or maybe she only saw the world differently. No, it is not me that’s changed. I’m the same; it is everything else that’s different.
Now it was all she could do to protect herself. Rand was what he was, and no turning back, and Egwene eagerly went her own way, not letting anyone or anything hold her back even if her way led over a cliff, and Mat had learned to think of nothing but women, carousing and gambling. She even found herself sympathizing with Moiraine sometimes, to her disgust. At least Perrin had gone back home, or so she had heard through Egwene, secondhand from Rand; perhaps Perrin was safe.
Hunting the Black Ajah was good and right and satisfying—and also terrifying, though she tried to hide that part; she was a grown woman, not a girl who needed to hide in her mother’s apron—yet that was not the main reason she was willing to keep on bashing her head against a wall, keep on trying to learn to use the Power when most of the time she could not channel any more than Thom. That reason was the Talent called Healing. As Wisdom of Emond’s Field it had been gratifying to bring the Women’s Circle around to her way of thinking—especially since most were old enough to be her mother; with not many years on Elayne, she had been the youngest Wisdom ever in the Two Rivers—and even more so to see that the Village Council did what they should, stubborn men that they were. The most satisfaction, though, had always come from finding the right combination of herbs to cure an illness. To Heal with the One Power . . . She had done it, fumbling, curing what her other skills never could. The joy of it was enough to bring tears. One day she meant to Heal Thom and watch him dance. One day she would even Heal that wound in Rand’s side. Surely there was nothing that could not be Healed, not if the woman wielding the Power was determined enough.
When she turned from watching Thom go, she found that Elayne had filled the bucket that normally hung beneath the wagon and was kneeling to wash her hands and face, a towel around her shoulders to keep her dress dry. That was something she particularly wanted to do herself. In this heat it was pleasant sometimes to wash in water cool from a stream. Often enough there had been no water but what was in the barrels strapped to the wagon, and that was needed for drinking and cooking more than washing.
Juilin was sitting with his back against one of the wagon wheels, his thumb-thick staff of pale ridged wood leaning next to him. His head was down, that silly hat tipped precariously over his eyes, but she was not willing to bet on even a man sleeping at this time of the morning. There were things he and Thom did not know, things it was best they did not know.
The thick carpet of dead sourgum leaves crackled as she seated herself near Elayne. “Do you think Tanchico really has fallen?” Rubbing a soapy cloth slowly across her face, the other woman did not reply. She tried again. “I think that Whitecloak’s Aes Sedai were us.”
“Perhaps.” Elayne’s voice was cool, a pronouncement from the throne. Her eyes were blue ice. She did not look at Nynaeve. “And perhaps reports of what we did got tangled with other rumors. Tarabon could have a new king, and a new panarch, very easily.”
Nynaeve kept her temper in check and her hands away from her braid. They clutched her knees instead. You are trying to put her at ease with you. Watch your tongue. “Amathera was difficult, but I do not wish her any harm. Do you?”
“A pretty woman,” Juilin said, “especially in one of those Taraboner serving girl’s dresses, with a pretty smile. I thought she—” He saw Elayne and her looking at him and quickly pulled his hat back down, pretending to sleep again. She and Elayne shared a glance, and she knew the other’s thought was the same as hers. Men.
“Whatever has happened to Amathera, Nynaeve, she is behind us, now.” Elayne sounded more normal. Her washcloth slowed. “I wish her well, but mainly I hope the Black Ajah is not behind us. Not following, I mean.”
Juilin stirred uneasily without raising his head; he was still uncomfortable with the knowledge that Black Aes Sedai were real and not simply a tale in the streets.
He should be happy he doesn’t have our knowledge. Nynaeve had to admit that the thought was not entirely logical, but if he had known about the Forsaken being loose, even Rand’s foolish instruction to look after her and Elayne would not have kept him from running. Still, he was useful at times. He and Thom both. It had been Moiraine who had fastened Thom to them, and the man knew a great deal about the world for an ordinary gleeman.
“If they were following, they’d have caught up by now.” That was surely true, considering the usual lumbering speed of the wagon. “With any luck, they still do not know who we are.”
 She could be almost as determined as a Two Rivers woman. “Liandrin and most of her cronies surely escaped from Tanchico. Maybe all of them. And we still don’t know who is giving orders for the Black Ajah in the Tower. As Rand would say, we still have it to do, Nynaeve.”
Despite herself, Nynaeve winced. True, they had a list of eleven names, but once they were back in the Tower, almost any Aes Sedai they spoke to might be Black Ajah. Or any women they encountered on the road. For that matter, anyone they met might be a Darkfriend, but that was hardly the same thing, not by a wide degree.
“More than the Black Ajah,” Elayne continued, “I worry about Mo—” Nynaeve put a quick hand on her arm and nodded slightly toward Juilin. Elayne coughed and went on as though that was what had stopped her. “About mother.  Quite the opposite.”
“She is far away from here.” Nynaeve was glad her voice was steady. They were not talking about Elayne’s mother, but the Forsaken she had defeated. Part of her hoped fervently that Moghedien was far away. Very far.
“But if she was not?”
“She is,” Nynaeve said firmly, but she still hitched her shoulders uncomfortably. A part of her remembered humiliations suffered at Moghedien’s hands and desired nothing more than to face the woman again, to defeat her again, for good this time. Only, what if Moghedien took her by surprise, came at her when she was not angry enough to channel? The same was true of any of the Forsaken, of course, or of any Black sister for that matter, but after her rout in Tanchico, Moghedien had reason to hate her personally. Not pleasant at all to think that one of the Forsaken knew your name and likely wanted your head. That is just rank cowardice, she told herself sharply. You are not a coward, and you will not be! That did not stop the itch between her shoulder blades every time Moghedien came to mind, as if the woman was staring at her back.
“I suppose looking over my shoulder for bandits has made me nervous,” Elayne said casually, patting her face with the towel. “Why, sometimes when I dream of late, I have the feeling that someone is watching me.”
Nynaeve gave a start at what seemed an echo of her own thoughts, but then she realized there had been a slight emphasis on “dream.” Not any dreams, but Tel’aran’rhiod. Another thing the men did not know about. She had had the same sensation, but then there was often a feel of unseen eyes in the World of Dreams. It could be uncomfortable, but they had discussed the sensation before.
She made her voice light.  Moghedien would probably torture them until they begged for death. Or arrange a circle of thirteen Black sisters and thirteen Myrddraal; they could turn you to the Shadow against your will that way, bind you to the Dark One. Maybe Moghedien could even do it by herself . . . Don’t be ridiculous, woman! If she could have, she would have. You beat her, remember?
“I do hope not,” the other woman replied soberly.
“Do you mean to give me a chance to wash?” Nynaeve asked irritably. Putting the girl at ease was all very well, but she could do with less talk of Moghedien. The Forsaken had to be somewhere distant; she would not have let them come this far peacefully if she knew where they were. Light send that that’s true!
Elayne emptied and refilled the bucket herself. She was a very nice girl usually, when she remembered that she was not in the Royal Palace in Caemlyn. And when she was not acting the fool. That, Nynaeve would take care of when Thom came back.
Once Nynaeve had enjoyed a slow, cooling wash of face and hands, she set about making the camp ready, and put Juilin to breaking dead branches from the trees for a fire. By the time Thom returned with two wicker hampers slung across the gelding’s back, her and Elayne’s blankets were laid out under the wagon and the two men’s under the hanging branches of one of the twenty-foot willows, a good supply of firewood had been stacked, the teakettle stood cooling beside the ashes of a fire in a circle cleared of leaves, and the thick pottery cups had been washed. Juilin was grumbling to himself as he caught water in the tiny stream to refill the water barrels. From the snatches Nynaeve heard, she was glad he kept most of it to an inaudible mutter. From her perch on one of the wagon shafts, Elayne hardly tried to hide her interested attempt to make out what he was saying. Both she and Nynaeve had put on clean dresses on the other side of the wagon, switching colors as it happened.
After fastening hobbles between the gelding’s forelegs, Thom lifted the heavy hampers down easily and began unpacking them. “Mardecin’s not as prosperous as it looks from a distance.” He set a net bag of small apples on the ground, and another of some dark green leafy vegetable. “With no trade into Tarabon, the town is withering.” The rest seemed to be all sacks of dried beans and turnips, plus pepper-cured beef and salt-cured hams. And a gray pottery bottle sealed with wax that Nynaeve was sure held brandy; both men had complained of not having a bit of something with their pipes of an evening. “You can hardly take six steps without seeing a Whitecloak or two. The garrison is about fifty men or so, with barracks over the hill from the town on the far side of the bridge. It was considerably larger, but it seems Pedron Niall is pulling Whitecloaks from everywhere into Amador.” Knuckling his long mustaches, he looked thoughtful for a moment. “I cannot see what he is up to.” Thom was not a man who liked that; usually a few hours in a place was enough for him to begin ferreting out the currents between noble and merchant Houses, the alliances and schemes and counter-plots that made up the so-called Game of Houses. “The rumors are all about Niall trying to stop a war between Illian and Altara, or maybe Illian and Murandy. No reason there for him to be gathering in soldiers. I’ll tell you one thing, though. Whatever that lieutenant said, it is a King’s Tax that buys the food being sent into Tarabon, and the people are not happy with it. Not to feed Taraboners.”
“King Ailron and the Lord Captain Commander are not our concern,” Nynaeve said, studying what he had brought. Three salted hams! “We will pass through Amadicia as quickly and unobtrusively as we can. Perhaps Elayne and I will have more luck finding vegetables than you did. Would you care for a walk, Elayne?”
Elayne got up immediately, smoothing her gray skirts and lifting her hat from the wagon. “That would be very nice, after that wagon seat. It might be different if Thom and Juilin let me take a turn riding Skulker more often.” For once she did not give the old gleeman a coquettish look, which was something.
Thom and Juilin exchanged glances, and the Tairen thief-catcher pulled a coin from his coat pocket, but Nynaeve gave him no chance to flip it. “We will be quite all right by ourselves. We could hardly expect trouble of any sort with so many Whitecloaks to keep order.” Planting her hat on her head, she tied the scarf under her chin and gave them a firm look. “Besides, all those things Thom bought need to be put away.” Both men nodded; slowly, reluctantly, but they did it. Sometimes they took their roles as supposed protectors entirely too seriously.
She and Elayne had reached the empty road and were walking down the verge, on the thin grass so as not to kick up dust, before she had it settled in her mind how to bring up what she wanted to say. Before she could speak, though, Elayne said, “You obviously want to talk to me alone, Nynaeve. Is it about Moghedien?”
Nynaeve blinked, and looked at the other woman sideways.  She had only been acting like one. Nynaeve resolved to keep a tight hold on her temper; this was going to be difficult enough without letting it dissolve into a shouting match. “Not that, Elayne.” The girl thought they should add Moghedien to their hunt; she could not seem to realize the difference between one of the Forsaken and, say, Liandrin, or Chesmal. “I thought we should discuss how you’ve been behaving toward Thom.”
“I do not know what you mean,” Elayne said, staring straight ahead toward the town, but sudden spots of color in her cheeks gave her the lie.
 Elayne snapped. “My father was Taringail Damodred, a Prince of Cairhien and First Prince of the Sword of Andor!” Straightening her hat needlessly, she went on in a milder tone, though not by much. “I am sorry, Nynaeve. I did not mean to shout.”
Temper, Nynaeve reminded herself. “I thought you were in love with Rand,” she said, making her voice gentle. It was not easy. “The messages you have me give to Egwene for him certainly say so. I expect you tell her the same.”
The color in the other woman’s face heightened. “I do love him, but . . . He is very far away, Nynaeve. In the Waste, surrounded by a thousand Maidens of the Spear who jump to do his bidding. I cannot see him, or speak to him, or touch him.” She was whispering by the end.
“You can’t think he’ll turn to a Maiden,” Nynaeve said incredulously. “He is a man, but he isn’t as fickle as that, and besides, one of them would put a spear in him if he looked at her crossways, even if he is this Dawn whatever. Anyway, Egwene says Aviendha is keeping an eye on him for you.”
“I know, but . . . I should have made sure that he knew I love him.” Elayne’s voice was determined. And worried. “I should have told him so.”
Nynaeve had hardly looked at a man before Lan, at least not seriously, but she had seen and learned much as Wisdom; from her observations, there was no quicker way to send a man running for his life, unless he said it first.
“I think Min had a viewing,” Elayne went on. “About me, and about Rand. She always used to joke about having to share him, but I think it wasn’t a joke and she could not bring herself to say what it really was.”
“That is ridiculous.” It certainly was. Though in Tear, Aviendha had told her of a vile Aiel custom . . . You share Lan with Moiraine, a small voice whispered. That isn’t the same thing at all! she told it briskly. “Are you certain Min had one of her visions?”
“Yes. I wasn’t at first, but the more I think on it, the more sure I become. She joked about it too often to mean anything else.”
Well, whatever Min had seen, Rand was no Aiel. Oh, his blood might be Aiel as the Wise Ones claimed, but he had grown up in the Two Rivers, and she would not stand by and let him take up wicked Aiel ways. She doubted very much that Elayne would, either. “Is that why you’ve been—” She would not say throwing yourself at “—teasing Thom?”
Elayne gave her a sidelong glance, the crimson back in her cheeks. “There are a thousand leagues between us, Nynaeve. Do you think Rand is refraining from looking at other women? ‘A man is a man, on a throne or in a pigsty.’ ” She had a stock of homely sayings from her childhood nurse, a clearheaded woman named Lini whom Nynaeve wished she would meet one day.
“Well, I don’t see why you have to flirt just because you think Rand might.” She refrained from bringing up Thom’s age again. Lan is old enough so be your father, that small voice murmured. I love Lan. If I can only reason out how to get him free of Moiraine . . . That is not the matter at hand! “Thom is a man with secrets, Elayne. Remember that Moiraine sent him with us. Whatever he is, he is no simple country gleeman.”
“He was a great man,” Elayne said softly. “He could have been greater, except for love.”
With that, Nynaeve’s temper snapped. She rounded on the other woman, seizing her by the shoulders.  Elayne gave a frustrated sigh. “But I do not know what else to do.”
Nynaeve ground her teeth in the effort not to shake her until her skull rattled.  Elayne’s voice was strained, and now the flush in her cheeks was not embarrassment. “I am as much a woman as my mother is.”
Nynaeve stalked on toward Mardecin, gripping her braid so hard that her knuckles hurt.
After a few strides, Elayne caught up. “Are we really going to buy vegetables?” Her face was composed, her tone light.
“Did you see what Thom brought back?” Nynaeve said tightly.
Elayne shuddered elaborately. “Three hams. And that awful peppered beef! Do men ever eat anything but meat if it isn’t set before them?”
Nynaeve’s temper faded as they walked on talking about the foibles of the weaker sex—men, of course—and such simple matters as that. Not completely away, of course. She liked Elayne, and enjoyed her company; at times it seemed as if the girl really was Egwene’s sister, as they sometimes called each other. When Elayne was not acting the twitch-skirt. Thom could put a stop to it, of course, but the old fool indulged Elayne like a fond father with his favorite daughter, even when he did not know whether to say boo or faint. One way or another, she meant to get to the bottom of it. Not for Rand’s sake, but because Elayne was better than this. It was as if she had contracted a strange fever. Nynaeve intended to cure it.
Granite slabs paved the streets of Mardecin, worn by generations of feet and wagon wheels, and the buildings were all brick or stone. A number of them were empty though, both shops and houses, sometimes with the front door standing open so Nynaeve could see the bare interior. She saw three blacksmith’s shops, two abandoned, and in the third the smith was halfheartedly rubbing his tools with oil and the forges were cold. One slate-roofed inn, with men sitting morosely on benches out front, had a number of broken windows, and at another the adjoining stable had its doors half-off the hinges and a dusty coach squatting in the stableyard, one forlorn hen nesting on the driver’s high seat. Somebody in that one was playing the bittern; “Heron on the Wing,” it sounded like, but the tune was dispirited. The door of a third inn was barred by two splintery planks nailed across it.
People thronged the streets, but they moved lethargically, weighted down by the heat; dull faces said they had no real reason to stir at all, beyond habit. Many women, in large deep bonnets that almost hid their faces, had on dresses worn at the hem, and more than one man had a frayed collar or cuffs on his knee-length coat.
There were indeed Whitecloaks scattered through the streets; if not so many as Thom had made out, still enough. Nynaeve’s breath caught every time she saw a man in a pristine cloak and shining armor look at her. She knew she had not worked with the Power nearly long enough to take on Aes Sedai agelessness, but those men might well try to kill her—a Tar Valon witch, and outlawed in Amadicia—if they even suspected a connection to the White Tower. They strode through the crowds, seemingly oblivious of the apparent poverty around them. People moved out of their way respectfully, receiving perhaps a nod, if that, and often a sternly pious “Walk in the Light.”
Ignoring the Children of the Light as best she could, she set herself to finding fresh vegetables, but by the time the sun reached its peak, a blazing ball of gold that burned through the thin clouds, she and Elayne had wandered both sides of the low bridge and between them had managed to garner one small bunch of honeypeas, some tiny radishes, a few hard pears, and a basket to carry them in. Perhaps Thom really had looked. This time of year, the barrows and stalls should have been full of the summer’s produce, but most of what they saw was heaped potatoes and turnips that had known better days. Thinking of all those empty farms approaching the town, Nynaeve wondered how these people were going to make it through the winter. She walked on.
 It might have been some woman’s feeble attempt at a festive decoration in the midst of hard times. But she was sure it was not.
Stopping beside an empty shop with a carving knife incised on the sign still hanging over the door, she pretended to search for a stone in her shoe while furtively studying the seamstress’ shop. The door was open, and colorful bolts of cloth stood in the small-paned windows, but no one went in or out.
“Can you not find it, Nynaeve?
Nynaeve’s head jerked; she had almost forgotten that Elayne was there. No one else was paying any attention to them, and no one looked close enough to overhear. She still lowered her voice.  It is a Yellow Ajah signal, an emergency signal from one of the Yellow’s eyes-and-ears.”
She did not have to tell Elayne not to stare; the girl’s eyes barely moved toward the shop. “Are you certain?” she asked quietly. “And how do you know?”
“Of course I am certain. It’s exact; the hanging bit of yellow ribbon is even split in three.” She paused to take a deep breath. Unless she was completely mistaken, that insignificant fistful of weeds held a dire meaning. If she was wrong, she was making a fool of herself, and she did hate to do that. “I spent a good deal of time talking with Yellows in the Tower.” Healing was the main purpose of the Yellows; they did not care much for her herbs, but you did not need herbs when you could Heal with the Power. “One of them told me. She did not think it too great a transgression, since she was sure I’ll choose Yellow. Besides, it has not been used in nearly three hundred years. Elayne, only a few women in each Ajah actually know who the Ajah’s eyes-and-ears are, but a bunch of yellow flowers tied and hung like that tells any Yellow sister that here one is, and with a message urgent enough to risk uncovering herself.”
“How are we going to find out what it is?”
Nynaeve liked that. Not “What are we going to do?” The girl had backbone.
“Follow my lead,” she said, gripping the basket tighter as she straightened. She hoped she remembered everything Shemerin had told her. She hoped Shemerin had told her everything. The plump Yellow could be fluttery for an Aes Sedai.
The interior of the shop was not large, and every scrap of wall was taken up by shelves holding bolts of silk or finely woven wool, spools of piping and binding, and ribbon and lace of every width and description. Dressmaker’s dummies stood about the floor wearing garments ranging from half-made to complete, from something suitable for a dance in embroidered green wool to a pearly gray silk gown that could have done very well at court. At first glance the shop had a look of prosperity and activity, but Nynaeve’s sharp eye caught a hint of dust in one high neck of frothy Solinde lace, and on a large black velvet bow at the waist of another gown.
There were two dark-haired women in the shop. One, young and thin and trying to wipe her nose surreptitiously with the back of her hand, held a bolt of pale red silk clutched anxiously to her bosom. Her hair was a mass of long curls to her shoulders, in the Amadician fashion, but it seemed a tangle beside the other woman’s neat array. The other, handsome and in her middle years, was assuredly the seamstress, as proclaimed by the large bristling pincushion fastened to her wrist. Her dress was of a good green wool, well cut and well made to show her skill, but only lightly worked with white flowers around the high neck so as not to overshadow her patrons.
When Nynaeve and Elayne walked in, both women gaped as if none had entered in a year. The seamstress recovered first, regarding them with careful dignity as she made a slight curtsy. “May I serve you? I am Ronde Macura. My shop is yours.”
“I want a dress embroidered with yellow roses on the bodice,” Nynaeve told her. “But no thorns, mind,” she added with a laugh. “I don’t heal very fast.” What she said did not matter, so long as she included “yellow” and “heal” in it.  If that was the case, she would have to find some reason not to buy a dress with roses. And a way to keep Elayne from recounting the whole miserable experience to Thom and Juilin.
Mistress Macura stared at her for a moment with dark eyes, then turned to the thin girl, pushing her toward the back of the shop. “Go on to the kitchen, Luci, and make a pot of tea for these good ladies. From the blue canister. The water’s hot, thank the Light.  Put that down and stop gawking. Quickly, quickly. The blue canister, mind. My best tea,” she said, turning back to Nynaeve as the girl vanished through a door at the rear. “I live over the shop, you see, and my kitchen is in the back.” She was smoothing her skirts nervously, thumb and forefinger of her right hand forming a circle. For the Great Serpent ring. There would be no need for an excuse about the dress, it seemed.
Nynaeve repeated the sign, and after a moment Elayne did, too. “I am Nynaeve, and this is Elayne. We saw your signal.”
The woman fluttered as if she might fly away. “The signal? Ah. Yes. Of course.”
“Well?” Nynaeve said. “What is the urgent message?”
“We should not talk about that out here . . . uh . . . Mistress Nynaeve. Anyone might walk in.” Nynaeve doubted that. “I will tell you over a nice cup of tea. My best tea, did I say?”
Nynaeve exchanged looks with Elayne. If Mistress Macura was this reluctant to speak her news, it must be appalling indeed.
“If we may just step into the back,” Elayne said, “no one will hear but us.” Her regal tone made the seamstress stare. For a moment, Nynaeve thought it might cut through her nervousness, but the next instant the fool woman was babbling again.
“The tea will be ready in a moment. The water’s already hot. We used to get Taraboner tea through here. That is why I am here, I suppose. Not the tea, of course. All the trade that used to be, and all the news that came both ways with the wagons. They—you are mainly interested in outbreaks of disease, or a new kind of illness, but I find that interesting myself. I dabble a little with—” She coughed and rushed on; if she smoothed her dress any harder, she would wear a hole in it. “Some about the Children, of course, but they—you—are not much interested in them, really.”
“The kitchen, Mistress Macura,” Nynaeve said firmly as soon as the other woman paused for breath. If the woman’s news made her this afraid, Nynaeve would brook no more delay in hearing it.
The door at the back opened enough to admit Luci’s anxious head. “It’s ready, Mistress,” she announced breathlessly.
“This way, Mistress Nynaeve,” the seamstress said, still rubbing the front of her dress. “Mistress Elayne.”
A short hallway led past narrow stairs to a snug, beam-ceilinged kitchen, with a steaming kettle sitting on the hearth and tall cupboards everywhere. Copper pots hung between the back door and a window that looked out into a small yard with a high wooden fence. The small table in the middle of the floor held a brilliant yellow teapot, a green honey jar, three mismatched cups in as many colors, and a squat blue pottery canister with the lid beside it. Mistress Macura snatched the canister, lidded it, and hastily put it into a cupboard that held more in two dozen shades and hues.
“Sit, please,” she said, filling the cups. “Please.”
Nynaeve took a ladder-back chair next to Elayne, and the seamstress set cups in front of them, flitting to one of the cupboards for pewter spoons.
“The message?” Nynaeve said as the woman sat down across from them. Mistress Macura was too nervous to touch her own teacup, so Nynaeve stirred a little honey into hers and took a sip; it was hot, but had a cool, minty aftertaste. Hot tea might settle the woman’s nerves, if she could be made to drink.
“A pleasant taste,” Elayne murmured over the edge of her cup. “What sort of tea is it?”
Good girl, Nynaeve thought.
But the seamstress’ hands only fluttered beside her cup. “A Taraboner tea. From near the Shadow Coast.”
Sighing, Nynaeve took another swallow to settle her own stomach. “The message,” she said insistently. “You did not hang that signal to invite us for tea. What is your urgent news?”
“Ah. Yes.” Mistress Macura licked her lips, eyed them both, then said slowly, “It came near a month ago, with orders that any sister passing through heard it at all costs.” She wet her lips again. “All sisters are welcome to return to the White Tower. The Tower must be whole and strong.”
Nynaeve waited for the rest, but the other woman fell silent. This was the dire message? She looked at Elayne, but the heat seemed to be catching up to the girl; drooping in her chair, she was staring at her hands on the table. “Is that all of it?” Nynaeve demanded, and surprised herself by yawning. The heat must be reaching her, too.
The seamstress only watched her, intently.
“I said,” Nynaeve began, but suddenly her head felt too heavy for her neck. Elayne had slumped onto the table, she realized, eyes closed and arms hanging limply. Nynaeve stared at the cup in her hands with horror. “What did you give us?” she said thickly; that minty taste was still there, but her tongue felt swollen. “Tell me!” Letting the cup fall, she levered herself up against the table, knees wobbling.
Mistress Macura scraped back her chair and stepped out of reach, but her earlier nervousness was now a look of quiet satisfaction.
Blackness rolled in on Nynaeve; the last thing she heard was the seamstress’ voice. “Catch her, Luci!”


GbReaper : a Game boy ROM viewer, sprite and map editor
I'm playing with GB now and though you can use multiple tools to do the job, it's a pain. So I'm making this easier with a all in one tool. All exist as free software, usually with source code but in "old" languages (Delphi 3!) and no more maintained.
- ROM viewer: replace GB tile viewer
- Sprite editor: replace GBSP
- Map editor: replace GBMP
(2020 March) Now maybe 5 years later I wonder why I started that, other than "because I can" and that damned not-invented-here syndrom. Anyway it's covering enough of what I need, and if by chance it helps someone someday I'll be happy.
(2022 August) Still wondering but resumed developping it! Moved it to its own repo also.
So in case you are not like me and don't want to reinvent the wheel use the old-yet-working:
* [[http://www.devrs.com/gb/hmgd/gbtd.html|GameBoy Tile Designer]]
* [[http://www.devrs.com/gb/hmgd/gbmb.html|GameBoy Map Designer]]
Specifications
✔ = done, otherwise it's a TODO
ROM
See a GB ROM content ✔
Extract one sprite to the library ✔
* Extract 2/4 consecutive sprites (most of them are 4x4 anyway) with Ctrl
Set a palette △ (disabled for now)
* Page up/down + mouse scroll △ (Page up/down ok)
* Slight vertical misalignement on large ROM to be fixed
Library
Reorder library
Delete sprite from library
Duplicate sprite from library
* Group some sprites by 4 visually
* Categories : background, characters, items, custom, ...
* Fold categories
Sprites
Create new sprite in library ✔
See a 3x3 map of the sprite ✔
See a zoom x1, x2 and x4 of the sprite ✔
Real time update of everything when updating a sprite ✔
* Edit sprite: pen ✔
* Edit sprite: fill, Mirror L/R T/B, negative, rotate, rotate palette
* See each one palette
In and out
Save & load to file ✔
Export to C code to be built by [[https://github.com/andreasjhkarlsson/gbdk-n|GBDK-n]] or the old GBDK: nb elements const and each element start index ✔
Import and image and transform to sprites on the fly New! ✔
* Import 4 tile at a time with Ctrl ✔
* Better algorithm than closest neighbor for Tilizator: [[https://www.cyotek.com/blog/dithering-an-image-using-the-floyd-steinberg-algorithm-in-csharp|dither]]
* Export also makes a makefile
* Export can choose which map(s)
* Export can save space by skipping unused tiles
Maps
Create new map, delete map, edit map ✔
Map editor: use sprite and tool paint/fill ✔
* Paint with 4 consecutive sprites (most characters are 2x2) with Ctrl ✔
* Fill paint with 2 consecutive alternate sprites (for backgrounds)
* Highlight hover on map
* Duplicate map
Code
Source
C# on .NET 4.0 (use Visual Studio 2010 Express it's free) and runs on Windows, not on Mono (alas, at least not yet).
As usual on Git [[https://github.com/AlanFromJapan/GBReaper]]
You can compile it with [[https://github.com/andreasjhkarlsson/gbdk-n|GBDK-n]] or the old GBDK.
Compilation
Ok so everybody complains about the old GBDK and ...yeah honestly, it's pretty bad. Took me 2 days to end up with bugs on code that I knew was sound (been a coder for 25 years, I know my C).
* Solution 1: use [[https://github.com/andreasjhkarlsson/gbdk-n|GBDK-n]], better but my Mint 19 sdcc is 3.5 and sometimes compilation take minutes to complete!
* Solution 2: use [[https://github.com/andreasjhkarlsson/gbdk-n|GBDK-n]] AND the latest sdcc 4.0. You need to edit the gbdk-n compile script to use the right sdcc, and you get nice compilation under a handful of seconds.
* Solution 3: go ASM
In all cases, that code ended working as planned with a recent compiler.
Projects
On GitHub, on my [[https://github.com/AlanFromJapan/Gameboy|GameBoy repository]].
Pictures
Basic screen, with a ROM loaded and a project with 2 maps loaded.
The same map loaded on a ROM and in a GB v(^_^)v.


pr0n
`Prev `__
P
`Next `__
--------------
**pr0n**: //
[Usenet, IRC] Pornography. Originally this referred only to Internet
porn but since then it has expanded to refer to just about any kind. The
term comes from the `*warez kiddies* <../W/warez-kiddies.html>`__
tendency to replace letters with numbers. At some point on IRC someone
mistyped, swapping the middle two characters, and the name stuck. It
then propagated over into mainstream hacker usage. New versions of the
Mozilla web browser internally refer to the image library as “libpr0n”.
Compare `*filk* <../F/filk.html>`__, `*grilf* <../G/grilf.html>`__,
`*hing* <../H/hing.html>`__ and `*newsfroup* <../N/newsfroup.html>`__.
--------------
+------------------------------+----------------------------+---------------------------------------+
| `Prev `__ | `Up <../P.html>`__ | `Next `__ |
+------------------------------+----------------------------+---------------------------------------+
| power hit | `Home <../index.html>`__ | precedence lossage |
+------------------------------+----------------------------+---------------------------------------+


My biggest insecurity is my face. I have never liked how I looked for the past twenty years and I feel nervous in front of camera. I think it gets pretty serious sometimes because I always hesitated to post my pictures on any social media. Even when I think I look good in a picture I immediately feel like it's just because of the angle and I look nothing like that in real life.
HOME


LaNoshery
Our available pizza:
Dessert Pizza
Neapolitan Pizza
Saint Louis Pizza
Enter your order details below
Choose your pizza size
Large 8000 Rwf
Medium 4500 Rwf
Small 3000 rwf
Choose your desired crust type
stuffed crust 500 Rwf
Crispy 400 Rwf
Glutten free 1000 Rwf
Choose your Desired toppings (300 Rwf/each)
Mushrooms
Onions
Input Quantity
Checkout
Click for delivery
Enter delivery info:
Name
Location
Phone Number
Make delivery
Cancel delivery


| DOSE: |
|
insufflated |
Cocaine |
(powder / crystals) |
Like most teenagers, ive always thought i was invincible. I was always a trouble maker and liked to experiment with drugs and alcohol. My dad is a herion addict so until i was 15 i was extremely against coke and herion. The first time i blew coke was the day before my 16th birthday. I liked the feeling but hated the drip and i felt sick, but i still wanted to do it just for the feeling after you blow your first line of the night.
After that day i did in again a few weeks later. One day around Christmas me and 3 of my 16 year old girl friends decided we wanted to get some. We bought 2.5 grams, which is a lot if you havent done it a lot. We stayed up for about 7 hours blowing lines every 10-30 minutes. My best friend didnt want to do it but we somehow convinced her to take a 'nummie (when you put some in your mouth) and then she joined us in blowing it. We had fun that night, except of course..we couldnt sleep. We blew our last line around 6 am and I was supposed to go to work at 11 in the morning.
I was miserable...me and one of my friends found that we had a little left and of course blew it. We both almost threw up.  I refused to go to school, didnt show up at my job for a week until i got fired, broke up with my boyfriend of about 8 months who id loved to death and wanted to sit in my room everyday. Nothing mattered to me except for coke. I blew it a few more times before i wanted to kill myself over it. I ended up in the hospital cause i thought i was going to die and after that i didnt touch it for about a month...
Now its July 11, 2003... Since that day in December ive snorted cocaine hundreds of times. Ive stopped for a week sometimes, but i always go back. So except for a few rare occasions, i do it about 2-4x a week. Sometimes 20 bags, sometimes g's...whatever i can afford and with whoever will get it for me. Within about 3 hours tonite me, my boyfriend (the one i broke up with back in december), and my best friend (the one who didnt want to do it) blew 2 grams. Thats $100 up our noses.
 I know theres lots of kids and adults who are in my shoes. For anyone who's never done it, i wouldnt recommend trying it. Its very addicting, especially if someone in your family is a drug addict. I never thought id get addicted, but i know i am. Ive decided im going to start going to N.A. meetings because i cant take it anymore. Its such an important thing in my life, i cant even count how many hundreds of dollars ive spent on it, nevermind the countless times ive had guys or friends buy it. Its not worth it. Im only 16!!  I love my father to death but i dont want to end up like him, still using at 48 years old. I dont want to ruin my entire life.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


We're sorry but vue doesn't work properly without JavaScript enabled. Please enable it to continue.
⬅ Back to other implementations


Day
Main
Side
Side
Other
6
8
10
12
7-1
7-2
7-3
7-4
9-1
9-2
9-3
9-4
11-1
11-2
11-3
11-4
13-1
13-2
13-3
13-4


A success story of the Sisonke Rising initiative.
Speakers Bio:
Theo Bohnen
Hi, I'm Theo. I've been programming professionally for 8+ years and have loved it for many more. I'm extremely passionate about programming and all things related to software development. I love helping others become better programmers and problem solvers.
Moral Jera
Moral is currently a high school student who spends his nights and weekends learning Python, JavaScript and coding in general. Moral loves learning and sharing his passion with his friends.


{{/*### Handler=/about TitleBar=About */}} {{ define "tpl" }}
{{ .T "and PP for all game modes" }}
{{ .T "with plenty of functions for just about anything, check it out!" | html }}
{{ .T "Shibui! is the result of the hard work of developers, who got tired about the whole osu! server" }}
{{ .T "Thanks to developers who has help me and make server for us Signing up on Shibui! won't result in getting your account on osu! restricted, so what are you waiting for?! Come join us! %s" "ðŸ˜‰" | html }}
{{ .T "In case you want to make sure we're not doing shady stuff with your data, you can also check the source code Shibui! is running on." | html }}