Welcome to dnazip’s documentation!¶
Installation¶
You can install the package either from pip or from the source code hosted on github.
With pip¶
pip install dnazip-bioinfo
From source¶
git clone https://github.com/dabane-ghassan/dnazip.git
cd dnazip
sudo python3 setup.py install
Getting started¶
GUI¶
After installing the package from source or using pip, the interface can be launched simply from the command line:
dnazip
If problems occur with the installation, an interface instance can be imported and launched:
from dnazip.interface import Interface gui = Interface() gui.main()
Using the library¶
Generating a random DNA sequence¶
A random DNA sequence with an alphabet of ATCGN can be generated for any given length specified in the parameter.
from dnazip.sequence import Sequence randseq = Sequence.generate(length=5000) Sequence('/path/to/new/seq').write(randseq)
Encoding a DNA sequence with Burros-Wheeler + Huffman Coding¶
To encode a DNA sequence using BWT and Huffman coding, you can use a FullEncoder object that will save two files to the same directory as the sequence, the Burros-Wheeler transform and the UTF-8 zipped format of the sequence:
from dnazip.encoder import FullEncoder encode = FullEncoder('/path/to/seq') encode.full_zip()
The attributes of the object can be accessed to see intermediary results:
encode.bw_encoder.rotations # a matrix of string rotations from a sequence encode.bw_encoder.bwm # The Burros-Wheeler Matrix encode.bw_encoder.bwt # The Burros-Wheeler Transform encode.huff_encoder.header # The header of the zip file that contains Huffman codes for each character as well as the sequence binary padding encode.huff_encoder.binary # The binary sequence of the BW transform encode.huff_encoder.unicode # 8-bits encoded binary sequence
A random sequence of size 1kB was compressed efficiently to 549 bytes.
Decoding a DNA sequence with Huffman decoding + Reversing Burros-Wheeler transform¶
To decode a zipped DNA sequence using Huffman decoding and the inverse of BWT, you can use a FullDecoder object that will work in the same manner as the FullEncoder object:
from dnazip.decoder import FullDecoder decode = FullDecoder('path/to/seq') decode.full_unzip()
The attributes can also be accessed to see intermediary results:
decode.huff_decoder.header # The header of the zip file that contains Huffman codes for each character as well as the sequence binary padding that where saved when the Huffman tree was created decode.huff_decoder.unicode # 8-bits encoded sequence decode.huff_decoder.binary # The binary sequence decode.bw_decoder.bwm # The Burros-Wheeler reconstructed matrix decode.bw_decoder.original # The original sequence
Building the Burros-Wheeler transform using the advanced algorithm¶
The BWT can be constructed using a Suffix Array (SA) based algorithm that has a better time and space complexities:
from dnazip.sequence import Sequence from dnazip.burros_wheeler import BurrosWheeler seq = Sequence('/path/to/seq').read() BurrosWheeler.bwt_advanced(seq)
Documentation¶
Graphical User Interface¶
View architecture of the main application, i.e; a GUI.
-
class
interface.
Interface
[source]¶ View class of the application using a Tkinter interface.
-
BW_output
(controller: dnazip.encoder.BWEncoder) → Iterator[str][source]¶ This method is used to collect all output for the BW encoding.
- Parameters
controller (BWEncoder) – The given controller.
- Yields
Iterator[str] – The content to be shown in the interface.
-
DeBW_output
(controller: dnazip.decoder.BWDecoder) → Iterator[str][source]¶ This method is used to collect all output for the BW decoding.
- Parameters
controller (BWDecoder) – The given controller.
- Yields
Iterator[str] – The content to be shown in the interface.
-
Huff_output
(controller: dnazip.encoder.HuffEncoder) → Iterator[str][source]¶ This method is used to collect all output for Huffman encoding.
- Parameters
controller (HuffEncoder) – The given controller.
- Yields
Iterator[str] – The content to be shown in the interface.
-
bwt_window
() → None[source]¶ This method creates a Tkinter Toplevel window for the step-by-step BWT protocol, The output file of the protocol will be shown at the beginning.
This method creates buttons for the interface.
Creates the menu for the interface.
-
deHuff_output
(controller: dnazip.decoder.HuffDecoder) → Iterator[str][source]¶ This method is used to collect all output for the Huff decoding.
- Parameters
controller (HuffDecoder) – The given controller.
- Yields
Iterator[str] – The content to be shown in the interface.
-
debwt_window
() → None[source]¶ This method creates a Tkinter Toplevel window for the step-by-step inverse BWT protocol, The output file of the protocol will be shown at the beginning.
-
final_btn
(controller: Iterator[str]) → str[source]¶ This method is used to create the output of a universal final step button for all protocols of the program, it will be passed to a given label that changes its content.
- Parameters
controller (Iterator[str]) – The controller of a given protocol that contains all steps to show.
- Returns
The final step to be shown.
- Return type
str
-
fullunzip_output
(controller: dnazip.decoder.FullDecoder) → Iterator[str][source]¶ This method is used to collect all output for a full decompression protocol.
- Parameters
controller (FullDecoder) – The given controller.
- Yields
Iterator[str] – The content to be shown in the interface.
-
fullunzip_window
() → None[source]¶ This method creates a Tkinter Toplevel window for the step-by-step Full unzipping protocol (HUffman decoding + inverse BWT), The output file of the protocol will be shown at the beginning.
-
fullzip_output
(controller: dnazip.encoder.FullEncoder) → Iterator[str][source]¶ This method is used to collect all output for a full protocol encoding (BWT + Huffman compression).
- Parameters
controller (FullEncoder) – The given controller.
- Yields
Iterator[str] – The content to be shown in the interface.
-
fullzip_window
() → None[source]¶ This method creates a Tkinter Toplevel window for the step-by-step Fullzip protocol (BWT+Huffman compression), The output file of the protocol will be shown at the beginning.
-
generate_random
() → None[source]¶ This method is used to generate random sequences of DNA of length 50 and show them inside the random text box tkinter entry.
-
huffcode_window
() → None[source]¶ This method creates a Tkinter Toplevel window for the step-by-step Huffman coding protocol, The output file of the protocol will be shown at the beginning.
-
huffdecode_window
() → None[source]¶ This method creates a Tkinter Toplevel window for the step-by-step Huffman decoding, The output file of the protocol will be shown at the beginning.
-
next_btn
(controller: Iterator[str]) → str[source]¶ This method is used to create the output of a universal next button for all protocols of the program, it will be passed to a given label that changes its content.
- Parameters
controller (Iterator[str]) – The controller of a given protocol that contains all steps to show.
- Returns
Every step to be shown, one at a time.
- Return type
str
-
program_output
(window: tkinter.Tk, path: str) → None[source]¶ Shows the output of a given protocol.
- Parameters
window (Tk) – The given window.
path (str) – The output file path to be shown in the messagebox.
-
save_random
() → None[source]¶ This method is used to save a randomly generated DNA sequence to a file.
-
step_by_step
(window: tkinter.Tk, protocol: Iterator[str], names: Generator) → None[source]¶ This method creates a universal step by step advancing interface for a given chosen protocole.
- Parameters
window (Tk) – The given window.
protocol (Iterator[str]) – The output protocol to be displayed.
names (Generator) – The names of the steps to be displayed.
-
update_text
(widget: tkinter.Text, new_text: str) → None[source]¶ This method updates the Text tkinter widget with every step in every protocol. it deletes its contents and then replaces it with new_text parameter.
- Parameters
widget (Text) – Tkinter’s Text widget.
new_text (str) – The new text to be shown in the widget.
- Returns
Replaces text in a given Text widget.
- Return type
None
-
Encoder Classes¶
Encoder classes, Controller architecture in a MVC layout.
-
class
encoder.
BWEncoder
(path: str)[source]¶ An encoder class for Burros-Wheeler transform, it is used as a controller in a MVC architecture.
-
path
¶ The path of the file to be transformed with Burros-Wheeler.
- Type
str
-
bwt_output
¶ The output file path for BWT.
- Type
str
-
rotations
¶ A matrix of rotations from the original sequence.
- Type
List[str]
-
bwm
¶ The Burros-Wheeler Matrix.
- Type
List[str]
-
bwt
¶ The Burros-Wheeler transform of the sequence.
- Type
str
-
-
class
encoder.
FullEncoder
(path: str)[source]¶ An encoder class for both the Burros-Wheeler transform and Huffman compression, controller architecture.
-
path
¶ The path of the file to be compressed with BWT + Huffman compression.
- Type
str
-
huff_encoder
¶ A HuffEncoder object to do the Huffman compression on the BW transform.
- Type
-
-
class
encoder.
HuffEncoder
(path: str)[source]¶ An encoder class for Huffman compression, it is used as a controller in a MVC architecture.
-
path
¶ The path of the file to be compressed with Huffman compression.
- Type
str
-
huff_output
¶ The output file path for Huffman compression.
- Type
str
-
binary
¶ The binary sequence that was translated from the original sequence using Huffman tree and codes.
- Type
str
-
header
¶ The header of the compressed file; contains Huffman codes and paths as well as padding that were generated when compressing the sequence.
- Type
str
-
unicode
¶ The compressed format of the sequence.
- Type
str
-
compressed
¶ The compressed sequence to be written to a file.
- Type
str
-
Decoder Classes¶
Decoder classes, Controller architecture in a MVC layout.
-
class
decoder.
BWDecoder
(path: str)[source]¶ A decoder class for inversing the Burros-Wheeler transform, it is used as a controller in a MVC architecture.
-
path
¶ The path of the file to be transformed with inverse of Burros-Wheeler.
- Type
str
-
debwt_output
¶ The output file path for the inverse of BWT.
- Type
str
-
bwm
¶ The reconstructed Burros-Wheeler Matrix.
- Type
List[str]
-
original
¶ The original sequence from the inverse BWT.
- Type
str
-
-
class
decoder.
FullDecoder
(path: str)[source]¶ A decoder class for both Huffman decompression and the inverse of the Burros-Wheeler transform, controller architecture.
-
path
¶ The path of the file to be compressed with BWT + Huffman compression.
- Type
str
-
huff_decoder
¶ A HuffDecoder object to do the Huffman decompression on a compressed sequence.
- Type
-
bw_decoder
¶ A BWDecoder object to do the inverse of Burros-Wheeler transform on the output of Huffman decompression.
- Type
-
full_unzip
() → None[source]¶ The main decoding method of the controller, it first decodes the sequence with Huffman decompression, then passes the uncompressed sequence to do the Inverse of Burros-Wheeler transform and obtain the original sequence.
- Returns
Fills all the properties of an object and writes out the original sequence to a file.
- Return type
None
-
-
class
decoder.
HuffDecoder
(path: str)[source]¶ A decoder class for Huffman decompression, it is used as a controller in a MVC architecture.
-
path
¶ The path of the file to be decompressed with Huffman decompression.
- Type
str
-
dehuffman_output
¶ The output file path for Huffman decompression.
- Type
str
-
binary
¶ The binary sequence that was translated from unicode using Huffman codes.
- Type
str
-
header
¶ The header of the compressed file; contains Huffman codes and paths as well as padding that were generated when compressing the sequence.
- Type
str
-
unicode
¶ The compressed format of the sequence.
- Type
str
-
decompressed
¶ The decompressed sequence; normally the Burros-Wheeler transform of an original sequence.
- Type
str
-
Sequence¶
A class to read and write DNA sequences (or a list of characters) to a file. In a MVC structure, this represents the Model of the data.
-
class
sequence.
Sequence
(path: str)[source]¶ A class to represent a sequence, sequences can be read from files or writtes to files.
-
path
¶ The path of the file to be read.
- Type
str
-
static
generate
(length: int) → str[source]¶ This method is used to generate a random DNA sequence using the random python library.
- Returns
The random DNA sequence.
- Return type
str
-
read
() → str[source]¶ This method is used to read the contents of the file into a python string.
- Returns
The contents of the file, i.e. the sequence.
- Return type
str
-
read_bytes
() → str[source]¶ This method is used to read a file that has been written in bytes, it will be useful when reading files that has been compressed with Huffman coding.
- Returns
The contents of the file, i.e. the sequence.
- Return type
str
-
write
(content: str) → None[source]¶ This method is used to write out to a file.
- Parameters
content (str) – The contents of the file.
- Returns
Writes out to a new file.
- Return type
None
-
write_bytes
(content: str) → None[source]¶ This method is used to write out to a new file into a bytes format, UTF-8 encoding, useful when we want to write out the contents of the Huffman compression to a file.
- Parameters
content (str) – The contents of the file.
- Returns
Writes out to a new file in a bytes format.
- Return type
None
-
Burrows-Wheeler Algorithm¶
Burrows-Wheeler Algorithm Class, contains naive and advanced construction methods, static methods were written as explicit as possible and were factorized to facilitate algorithmic readability. The yielding in some functions doesn’t respect Space complexity, but it was done in this manner to facilitate the data flow into the View class (the GUI).
-
class
burros_wheeler.
BurrosWheeler
[source]¶ A class to represent the Burrows-Wheeler algorithm, all methods are static for ease of reading and outside usability.
-
static
bwt_advanced
(sequence: str) → str[source]¶ Generates a Burrows-Wheeler Transfrom from a suffix array, advanced construction of BWT. Better algorithmic complexity.
- Parameters
sequence (str) – The sequence to ve transformed.
- Returns
The Burrows-Wheeler Transform.
- Return type
str
-
static
construct_bwm
(rotations: List[str]) → List[str][source]¶ This method constructs the Burrows-Wheeler Matrix from a list of string rotations.
- Parameters
rotations (List[str]) – A list of strings, i.e; a BW matrix like object.
- Returns
A list of strings or a Burrows-Wheeler Matrix.
- Return type
List[str]
-
static
decode_bwt
(matrix: List[str]) → str[source]¶ This method returns the original sequence from a given Burrows-Wheeler Matrix, the original sequence is the line that ends with the character ‘$’.
- Parameters
matrix (List[str]) – A Burrows-Wheeler Matrix.
- Returns
The original sequence.
- Return type
str
-
static
encode_bwt
(matrix: List[str]) → str[source]¶ Returns the Burrows-Wheeler Transform from a given Burros-Wheeler Matrix. the Burros-Wheeler Transform corresponds to the last column of the matrix.
- Parameters
matrix (List[str]) – A Burrows-Wheeler Matrix.
- Returns
The Burrows-Wheeler Transform.
- Return type
str
-
static
pprint
(mat: List[str]) → None[source]¶ Pretty print, this method prints a burrows wheeler matrix beautifully (without lists and strings).
- Parameters
mat (List[str]) – The Burros-Wheeler matrix, i.e; a list of strings.
- Returns
Prints the matrix.
- Return type
None
-
static
reconstruct_bwm
(bwt: str) → List[str][source]¶ This method reconstructs the Burrows-Wheeler Matrix given the corresponding Burros-Wheeler Transform. The naive algorithm for constructing the matrix given the transform is going to iteratively add the transform as a left column, then sorts lexicographically the columns.
- Parameters
bwt (str) – The Burrows-Wheeler Transform.
- Returns
A Burrows-Wheeler Matrix.
- Return type
List[str]
-
static
string_rotations
(seq: str) → List[str][source]¶ Returns all string rotations of a sequence.
- Parameters
seq (str) – he sequence to be rotated.
- Returns
Returns a list of strings, i.e; a BW matrix like object.
- Return type
List[str]
-
static
suffix_array
(sequence: str) → List[Tuple[str, int]][source]¶ Builds a suffix-array from a given sequence of characters. - Complexity of the algorithm O(n^2log(n)) - Sorting is O(nlogn) and Finding is O(n)
- Parameters
sequence (str) – The given sequence of characters.
- Returns
The suffix array of the sequence; a list of tuples.
- Return type
List[Tuple[str, int]]
-
static
Huffman Coding Algorithm¶
Huffman coding algorithm classes, contains node and tree separate classes.
-
class
huffman.
HuffmanNode
(char: str, freq: int, left: object = None, right: object = None)[source]¶ A class to represent heap nodes of a huffman coding tree.
-
char
¶ The character to be saved as a node value.
- Type
str
-
freq
¶ The frequency of the char.
- Type
int
-
right_child
¶ The right child of the heap node.
- Type
-
left_child
¶ The left child of the heap node.
- Type
-
dir
¶ The path of the current node in the Huffman tree, usually a string of 0s and 1s.
- Type
str
-
property
left_child
¶ The getter of the left child.
- Returns
- Return type
object
-
property
right_child
¶ The getter of the right child.
- Returns
- Return type
object
-
-
class
huffman.
HuffmanTree
(sequence: str)[source]¶ A class to represent a huffman tree.
-
sequence
¶ The sequence to be encoded, i.e; the Burros-Wheeler transform of the sequence.
- Type
str
-
frequency
¶ A dictionary to store frequency values for each character of the sequence, the character as a key and its frequency as a value.
- Type
Dict[str, int]
-
root
¶ The root node of the Huffman tree.
- Type
-
codes
¶ The Huffman codes for a given sequence, The character as a key and its tree path as a value(a string).
- Type
Dict[str, str]
-
pad
¶ The padding of the sequence, i.e; the number of zeroes that was added to the end of sequence until it was divisible by 8 (coding in 8 bits).
- Type
int
-
static
binstr_to_seq
(bin_str: str, codes: Dict[str, str]) → str[source]¶ Transforms a binary string to a sequence given a codes dictionary of paths.
- Parameters
bin_str (str) – The binary string to be transformed.
codes (Dict[str, str]) – A dictionary of characters alongside their paths.
- Returns
The original sequence.
- Return type
str
-
static
binstr_to_unicode
(bin_str: str) → str[source]¶ This method codes a binary sequence in 8-bits in UTF-8.
- Parameters
bin_str (str) – The binary sequence to be coded.
- Returns
The unicode string that corrsponds to the binary sequence.
- Return type
str
-
codes_to_header
() → str[source]¶ This method transforms the codes of a given Huffman tree object into a header to be saved in the compressed file (useful for when decompressing later).
- Returns
The header of the compressed file.
- Return type
str
-
create_tree
() → huffman.HuffmanNode[source]¶ The main algorithm for creating The Huffman tree.
- Returns
The root node of the tree.
- Return type
-
static
freq_dict
(sequence: str) → Dict[str, int][source]¶ This method returns the frequence dictionary of a given sequence.
- Parameters
sequence (str) – The sequence of interest.
- Returns
A dictionary of character frequencies.
- Return type
Dict[str, int]
-
get_codings
(node: huffman.HuffmanNode, val: str = '') → None[source]¶ A depth-first search recursive algorithm to find the paths of each character in the tree.
- Parameters
node (HuffmanNode) – The starting node, the root of the tree.
val (str, optional) – The path of the current recursion in a tree. The default is ‘’.
- Returns
Fills the codes dictionary property of the Huffman Tree.
- Return type
None
-
static
header_to_codes
(header: str) → Dict[str, str][source]¶ This method takes the header of a compressed file and transforms it into a codes dictionary that’s useful when decompressing a sequence.
- Parameters
header (str) – The header of the compressed file.
- Returns
A codes dictionary which maps from characters to thier given paths.
- Return type
Dict[str, str]
-
static
remove_padding
(bin_str: str, pad: int) → str[source]¶ This function removes the padding from a given binary sequence, the padding is normally a variable number of zeroes added when coding in 8-bits.
- Parameters
bin_str (str) – The binary string to be stripped from a sequence of zeroes.
pad (int) – The padding, the number of zeroes at the end of the binary sequence.
- Returns
The no-padded binary string.
- Return type
str
-
seq_to_binstr
() → str[source]¶ This method transforms the current sequence of the Huffman tree to a binary sequence using the codes (paths of every character), it also adds a padding to the end of the binary sequence (a variable number of zeroes, when sequence is divisible by 8 then add 8 zeroes by default). The binary sequence will be coded in 8-bits later. It saves the padding in the codes property.
- Returns
The binary sequence.
- Return type
str
-


Get in Touch With Me
Contact Me
Home
Porfolio
About Me
Contact
This is my form. Please fill it out. It's awesome!
Your Name
Your Email
Comments
Do Not Fill This Out


Methods
Public Instance methods
Marks the entire flash or a single flash entry to be discarded by the end of the current action
flash.keep # keep entire flash available for the next action flash.discard(:warning) # discard the "warning" entry (it'll still be available for the current action)
[ show source ]
# File vendor/rails/actionpack/lib/action_controller/flash.rb, line 105 105: def discard(k=nil) 106: use(k) 107: end
Keeps either the entire current flash or a specific flash entry available for the next action:
flash.keep # keeps the entire flash flash.keep(:notice) # keeps only the "notice" entry, the rest of the flash is discarded
[ show source ]
# File vendor/rails/actionpack/lib/action_controller/flash.rb, line 97 97: def keep(k=nil) 98: use(k, false) 99: end
Sets a flash that will not be available to the next action, only to the current.
flash.now[:message] = "Hello current action"
This method enables you to use the flash as a central messaging system in your app. When you need to pass an object to the next action, you use the standard flash assign ([]=). When you need to pass an object to the current action, you use now, and your object will vanish when the current action is done.
Entries set via now are accessed the same way as standard entries: flash[‘my-key’].
[ show source ]
# File vendor/rails/actionpack/lib/action_controller/flash.rb, line 89 89: def now 90: FlashNow.new self 91: end


Material Design is a design language developed by Google in 2014. It brings a cleaner design and consistent look to mobile apps and Web pages across different platforms, using bold and colorful graphics. This site shows interactive experiences for Google's Material Design Principles.


A single page javascript and jquery page that allows you to record tasks based on each hour. It generates the timeblocks dynamically and updates based on the hour in order to mark past events in one color, highlight the current hour, and have the future events in another color for easier readability.
Live DemoA command line application that lets you add employees, roles, and departments, while also updating their information or deleting them from the system, using Node.js, MySql, and Inquirer.
There is no live demo since it is a command line application, but you can download it from github and use it on your own machine!
A single page javascript application that will generate 5 questions to ask the user about javascript. When the user starts the quiz, the timer starts, and the quiz will end either when the user has awnsered the last question, or the timer has reached zero. The user then can enter their initials which are then stored in their local storage.
Live DemoA single player battle RPG where you create your own list of characters to them battle an enemy fighter! Allows individual users to create characters attached to their name that level up and increate their stats as they win fights.
I built this application from scratch with 3 of my classmates! This application used mySQL, Sequalize, Node.js, Jquery, Handlebars, JavaScript, Materialize, and Animate.CSS.
Play!An application using two APIs(Realtor and Adzuna) for the user to search for a new job and housing at the same time. It is built so the user can search where they would like to live, and what job they want to work, and will populate with jobs, and rental properties in the area that they could ptentially afford with that jobs salary.
Live DemoA single page javascript application that will generate a random, secure password between 8 characters and 128 characters in length based on the different types of characters that the user will be prompted to choose between.
Live Demo


(PHP 4 >= 4.0.5, PHP 5 < 5.1.0, PECL mnogosearch >= 1.0.0)
udm_set_agent_param — Set mnoGoSearch agent session parameters
$agent
, int $var
, string $val
) : boolDefines mnoGoSearch session parameters.
agent
A link to Agent, received after call to udm_alloc_agent().
var
The following parameters and their values are available:
UDM_PARAM_PAGE_NUM
- used to choose search results page number (results
are returned by pages beginning from 0, with UDM_PARAM_PAGE_SIZE
results per page).
UDM_PARAM_PAGE_SIZE
- number of search results displayed on one page.
UDM_PARAM_SEARCH_MODE
- search mode. The following values available: UDM_MODE_ALL
-
search for all words; UDM_MODE_ANY
- search for any word; UDM_MODE_PHRASE
-
phrase search; UDM_MODE_BOOL
- boolean search. See udm_find()
for details on boolean search.
UDM_PARAM_CACHE_MODE
- turns on or off search result cache mode.
When enabled, the search engine will store
search results to disk. In case a similar search is performed later,
the engine will take results from the cache for faster performance.
Available values: UDM_CACHE_ENABLED
,
UDM_CACHE_DISABLED
.
UDM_PARAM_TRACK_MODE
- turns on or off trackquery mode. Since
version 3.1.2 mnoGoSearch has a query tracking support.
Note that tracking is implemented in SQL version only and not available
in built-in database.
To use tracking, you have to create tables for tracking support.
For MySQL, use create/mysql/track.txt.
When doing a search, front-end uses those tables to store query words,
a number of found documents and current Unix timestamp in seconds.
Available values: UDM_TRACK_ENABLED
,
UDM_TRACK_DISABLED
.
UDM_PARAM_PHRASE_MODE
- defines whether index database using phrases
("phrase" parameter in indexer.conf).
Possible values: UDM_PHRASE_ENABLED
and UDM_PHRASE_DISABLED
.
Please note, that if phrase search is enabled (UDM_PHRASE_ENABLED
),
it is still possible to do search in any mode (ANY, ALL,
BOOL or PHRASE).
In 3.1.10 version of mnoGoSearch phrase search is supported only in sql
and built-in database modes,
while beginning with 3.1.11 phrases are supported in cachemode as well.
Examples of phrase search:
"Arizona desert" - This query returns all indexed documents that contain
"Arizona desert" as a phrase. Notice that you need to put double quotes
around the phrase
UDM_PARAM_CHARSET
- defines local charset. Available values: set of
charsets supported by mnoGoSearch, e.g. koi8-r, cp1251, ...
UDM_PARAM_STOPFILE
- Defines name and path
to stopwords file. (There is a small difference with mnoGoSearch
- while in mnoGoSearch if relative path or no path entered, it
looks for this file in relation to UDM_CONF_DIR
, the module looks for
the file in relation to current path, i.e. to the path where the
PHP script is executed.)
UDM_PARAM_STOPTABLE
- Load stop words from the given SQL table. You may use
several StopwordTable commands.
This command has no effect when compiled without SQL database support.
UDM_PARAM_WEIGHT_FACTOR
- represents weight factors for specific document parts.
Currently body, title, keywords, description, url are supported.
To activate this feature please use degrees of 2 in *Weight commands of
the indexer.conf. Let's imagine that we have these weights:
URLWeight 1 BodyWeight 2 TitleWeight 4 KeywordWeight 8 DescWeight 16As far as indexer uses bit OR operation for word weights when some word presents several time in the same document, it is possible at search time to detect word appearance in different document parts. Word which appears only in the body will have 00000010 aggregate weight (in binary notation). Word used in all document parts will have 00011111 aggregate weight. This parameter's value is a string of hex digits ABCDE. Each digit is a factor for corresponding bit in word weight. For the given above weights configuration:
E is a factor for weight 1 (URL Weight bit) D is a factor for weight 2 (BodyWeight bit) C is a factor for weight 4 (TitleWeight bit) B is a factor for weight 8 (KeywordWeight bit) A is a factor for weight 16 (DescWeight bit)Examples:
UDM_PARAM_WEIGHT_FACTOR
=00001 will search through URLs only.
UDM_PARAM_WEIGHT_FACTOR
=00100 will search through Titles only.
UDM_PARAM_WEIGHT_FACTOR
=11100 will search through Title,Keywords,Description
but not through URL and Body.
UDM_PARAM_WEIGHT_FACTOR
=F9421 will search through:
Description with factor 15 (F hex) Keywords with factor 9 Title with factor 4 Body with factor 2 URL with factor 1If
UDM_PARAM_WEIGHT_FACTOR
variable is omitted, original weight value is
taken to sort results. For a given above weight configuration it means
that document description has a most big weight 16.
UDM_PARAM_WORD_MATCH
- word match. You may use this parameter to choose
word match type. This feature works only in "single" and "multi" modes
using SQL based and built-in database. It does not work in cachemode and other modes
since they use word CRC and do not support substring search. Available values:
UDM_MATCH_BEGIN
- word beginning match;
UDM_MATCH_END
- word ending match;
UDM_MATCH_WORD
- whole word match;
UDM_MATCH_SUBSTR
- word substring match.
UDM_PARAM_MIN_WORD_LEN
- defines minimal word length.
Any word shorter this limit is considered to be a stopword. Please note
that this parameter value is inclusive, i.e. if UDM_PARAM_MIN_WORD_LEN
=3,
a word 3 characters long will not be considered a stopword, while
a word 2 characters long will be. Default value is 1.
UDM_PARAM_ISPELL_PREFIXES
- Possible values: UDM_PREFIXES_ENABLED
and
UDM_PREFIXES_DISABLED
, that respectively enable or disable using prefixes.
E.g. if a word "tested" is in search query, also words like "test",
"testing", etc. Only suffixes are supported by default. Prefixes usually
change word meanings, for example if somebody is searching for the word "tested"
one hardly wants "untested" to be found. Prefixes support may also be
found useful for site's spelling checking purposes. In order to enable
ispell, you have to load ispell data with udm_load_ispell_data().
UDM_PARAM_CROSS_WORDS
- enables or disables crosswords support.
Possible values: UDM_CROSS_WORDS_ENABLED
and UDM_CROSS_WORDS_DISABLED
.
The crosswords feature allows to assign words between <a href="xxx"> and </a>
also to a document this link leads to. It works in SQL database mode and
is not supported in built-in database and Cachemode.
UDM_PARAM_VARDIR
- specifies a custom path to directory where indexer
stores data when using built-in database and in cache mode.
By default /var directory of
mnoGoSearch installation is used. Can have
only string values.
val
| 版本 | 说明 |
|---|---|
| 4.1.0 |
UDM_PARAM_VARDIR was added.
|
成功时返回 TRUE
， 或者在失败时返回 FALSE
。
Note: Crosswords are supported only in mnoGoSearch 3.1.11 or later.


“Whenever I feel the need to exercise, I lie down until it goes away.”
“I'm innocent. Just look at my eyes.”
“Being jealous of a beautiful cat is not going to make you beautiful.”
NOVEMBER 23, 2017
DECEMBER 04, 2017
JANUARY 15, 2018
FEBRUARY 14, 2018
APRIL 23, 2018
MAY 18, 2018
Portfolio Designer
23, New Orland, Belwood Street, Philadelphia, US


Lorem ipsum dolor sit amet consectetur adipisicing elit. Eum fugit voluptatum totam! Neque ullam magni explicabo sequi repellat, adipisci blanditiis, harum dolor corporis fugit perferendis necessitatibus ducimus dolores ea temporibus.
GRAPHIC DESIGN
WEB DEVELOPMENT
CHARACTER ILLUSTRATION
I am a very simple card. I am good at containing small bits of information. I am convenient because I require little markup to use effectively.
I am a very simple card. I am good at containing small bits of information. I am convenient because I require little markup to use effectively.
I am a very simple card. I am good at containing small bits of information. I am convenient because I require little markup to use effectively.
fanisa@gmail.com


Secret Agent Collin:
The disguise slipped? Do you need me to transform you again?
"Yes please."
(The transformation will cancel all movement-related buffs, including the PC room buff, other than energy buffs.)


10. Classes
Class Organization
"a class should begin with a list of variables. Public static constants, if any, should come first. Then private static variables, followed by private instance variables. [...] Public functions should follow the list of variables."
Encapsulation
"Sometimes we need to make a variable or utility function protected so that it can be accessed by a test."
"However, we'll first look for a way to maintain privacy. Loosening encapsulation is always a last resort."
Classes Should Be Small!
"The first rule of classes is that they should be small. The second rule of classes is that they should be smaller than that."
"With functions we measured size by counting physical lines. With classes we use a different measure. We count responsibilities."
[Examples for responsibilities: log messages, write data to file, manage DB operations, calculate a random number]
"The name of a class should describe what responsibilities it fulfills. In fact, naming is probably the first way of helping determine class size."
"We should also be able to write a brief description of the class in about 25 words, without using the words "if", "and", "or", or "but"."
The Single Responsibility Principle
"a class or module should have one, and only one, reason to change. [...] Classes should have one responsibility - one reason to change."
[Examples to change a class: add a new method, modify a member value, improve a member function, tighten restrictions in an if statement, redesign an algorithm
Examples for reasons to change them: new functionality needs to be added, a default value changes, improve performance, reimplement code using a third-party library]
"Trying to identify responsibilities (reasons to change) often helps us recognize and create better abstractions in our code."
"Getting software to work and making software clean are two very different activities. [...] Maintaining a separation of concerns is just as important in our programming activities as it is in our programs."
"a system with many small classes has no more moving parts than a system with a few large classes. There is just as much to learn in the system with a few large classes."
"The primary goal in managing such complexity is to organize it so that a developer knows where to look to find things and need only to understand the directly affected complexity at any given time."
Cohesion
"Classes should have a small number of instance variables. Each of the methods of a class should manipulate [write to or read from] one or more of those variables. In general the more variables a method manipulates the more cohesive that method is to its class."
"When cohesion is high, it means that the methods and variables of the class are co-dependent and hang together as a logical whole."
Maintaining Cohesion Results in Many Small Classes
"When classes lose cohesion, split them!"
"So breaking a large function into many smaller functions often gives us the opportunity to split several smaller classes out as well. This gives our program a much better organization and a more transparent structure."
[There is an example in this section to splitting up a large class. Consider searching it and taking a look if interested.]
Organizing for Change
"In a clean system we organize our classes so as to reduce the risk of change."
"Private method behavior that applies only to a small subset of a class can be a useful heuristic for spotting potential areas for improvement [related to SRP - Single Responsibility Principle]."
"as soon as we find ourselves opening up a class, we should consider fixing our design."
[There is an example in this section for a fix when the SRP violation is violated by the need to add a new function to the class by assuring the Open-Closed Principle. Consider searching it and taking a look if interested.]
"We want to structure our systems so that we muck with as little as possible when we update them with new or changed features. In an ideal system, we incorporate new features by extending the system, not by making modifications to existing code."
Isolating from Change
"Needs will change, therefore code will change. [...] A client class depending upon concrete details is at risk when those details change."
"The lack of coupling means that the elements of our system are better isolated from each other and from change. This isolation makes it easier to understand each element of the system."
[There is an example in this section which provides lack of coupling with interfaces supporting the Dependency Inversion Principle (DIP). Consider searching it and taking a look if interested.]


DWR automatically converts DOM trees from DOM, DOM4J, JDOM and XOM. You simply return a Document, Element or Node from any of the above and DWR will automatically convert it into a browser DOM object.
There is a common warning on startup about the JDOM converter, which you can safely ignore (unless you wanted to use JDOM):
INFO: Missing classdef for converter 'jdom'. Failed to load uk.ltd.getahead.dwr.convert.JDOMConverter. Cause: org/jdom/Document
The problem is that DWR has no way of knowing if you wanted to use JDOM or not, so the message is at INFO level.
If you wanted to use JDOM you might be very pleased to know that the converter has not been able to load - which is why we've not taken the message away.
I believe that DWR will work with exist-db out of the box, because builds on top of W3C DOM, which is supported.


Photo provided by
This picture was taken somewhere
around 1908. It was taken in
Below is a picture of this same building taken in 2002 with my French cousin Olivier Weissend from the same camera angle. In the picture are Olivier and his dad Bernard Weissend.
The store has changed in appearance and has been expanded since this picture was taken in 2002. (Text provided by Frank Schumacher)
The above news brief is from page one of The Sentinel published Woodsfield, 9 January 1908- Vol 2, No. 14. (Clipping provided by John Ogden)
Photo provided by Frank Schumacher
A calendar plate issued in 1912 when the store was owned by Albert and Isabel as a promotional item. ( Picture below)
Photo provided by Frank Schumacher


When most people think of weight loss or fat loss. They think of burning calories and eating fewer calories. However, you cannot turn atoms into energy or heat. Nothing is burned. It's called the Conservation of Mass. But where do the fat atoms go? We lose fat, by breathing. Yes, fat is exhaled from our bodies. When we exercise we breath faster and deeper. This speeds up the fat loss process.  Now, don't go around breathing faster and deeper to lose fat. This leads to hyperventilation. Which can be very dangerous! The breathing increase must be a result of body movement. Which increases your metabolism.
The chemical formula for human fat is a combination of H2O and CO2. Right, water and carbon dioxide. The fat molecule has an average of C55 H104 O6. It can vary in Carbon and Hydrogen atoms. But always has 6 oxygen atoms. Basically, fat + oxygen -> carbon dioxide and water (known as respiration).
C55 H104 O6(fat) + 78 O2(oxygen) ->(is converted to) 55 CO2(Carbon Dioxide) + 52 H2O(Water)
Then the carbon dioxide molecules and water vapor are exhaled. Some of the water is most likely lost by perspiration also. Remember. The best and most sensible way to loss weight is eat less and move more.
If you are interested in fat or weight loss. Below is a must see Youtube video. By Ruben Meerman on TEDx Talks. Published on Oct 10, 2013. This is my information source.
Written By: West Brown of AccessTech.io


 -
Blank Space
[by:Feliciayang] Nice to meet you Where you've been? I can show you incredible things Magic, madness, heaven, sins Saw y... -
Let Me Love You
[by:JulianJayden] I used to believe We were burnin' on the edge of somethin' beautiful Somethin' beautiful Selling a dre... -
Sorry
You gotta go and get angry at all of my honesty You know I try but I don't do too well with apologies I hope I don't run... -
See You Again
[by:JoshuaJan] [ti:See You Again] [ar:Kurt Schneider/Eppic/Alex Goot] [al:See You Again] [by:JoshuaJan] It's been a long...  It feels like a perfect nig... -
Counting Stars
Lately I been, I been losing sleep Dreaming about the things that we could be Baby, I been, I been prayin' hard Said no ...  -
Something Just Like This
[by:文斯莫克-山治] [ti:] [ar:] [al:] [by:九九Lrc歌词网～www.99Lrc.net] I've been reading books of old The legends and the myths Achi... -
Beauty and a Beat
作曲 : Onika Tanya Maraj/Justin Bieber/Martin Karl Sandberg/Arkadi Zaslavski/Savan Harish Kotecha 作词 : Onika Tanya Maraj... -
Closer
[by:JulianJayden] Hey, I was doing just fine before I met you I drink too much And that's an issue, but I'm okay Hey, yo... -
Catch My Breath
I don't wanna be left behind Distance was a friend of mine Catching breath in a web of lies I've spent most of my life... -
Find You
Silent love is calling faith To shatter me through your hallways Into echoes you can feel And rehearse the way you heal... -
Photograph
[by:切尔西的匕首] [ti:] [ar:] [al:] [by:九九Lrc歌词网～www.99Lrc.net] Look at this photograph Every time i do it makes me laugh How ... -
Sorry
[by:JulianJayden] You gotta go and get angry at all of my honesty You know I try but I don't do too well with apologies ... -
Good Time
[by:Sonneet] Woke up on the right side of the bed What's up with this Prince song inside my head? Hands up if you're dow...


This page contains webassembly and javascript content, please enable javascript in your browser.
Heuristic Research Playground
Population:
Rosomaxa
Elitism
Greedy
Function:
Rosenbrock
Rastrigin
Himmelblau
Ackley
Matyas
Pitch:
Yaw:
Loading WebAssembly...


Why is Taylor Swift arguing with Scooter Braun and Scott Borchetta again?
Taylor Swift has accused Scooter Braun and Scott Borchetta of blocking her from performing her old music at an upcoming awards show.
Braun, a prominent talent manager, owns the rights to Swift’s first six albums after acquiring her former record label Big Machine, which was founded by Borchetta.
When the deal came to light in June, Swift said she was “sad” and “grossed out”, accusing Braun of being behind “incessant, manipulative bullying”.
The row has been brought back into the public eye once again, following a passionate and lengthy statement from Swift.
Here is why they are arguing:
Braun owns Swift’s master recordings
Master recordings are the original recordings of an artist’s music, from which all the later copies are made.
The owner of these exerts control over the use of a song and earns money from it.
What happened with Swift’s?
Swift began her career at Big Machine, signing for the label when she was 15. She then became one of the biggest pop stars in the world until she left and signed for Universal Music Group in a highly publicised deal last year.
When Swift signed with Big Machine, which released her first six albums, she apparently also signed away the copyright to her master recordings.
This is standard practice in the music industry.
How did Braun come to own them?
A company fronted by Braun – Ithaca Holdings – bought Big Machine, and with it Swift’s master recordings.
The deal was worth 300 million US dollars, about £237 million.
Why didn’t Swift buy them herself?
This is disputed. Borchetta says he gave Swift “every chance in the world” to own her music, but instead she “chose to leave” the label.
However, Swift says she was only offered the chance to regain the rights to her music by signing another deal with Big Machine and “earning” an album back at a time.
She said: “I walked away because I knew once I signed that contract, Scott Borchetta would sell the label, thereby selling me and my future.”
What is the latest from Swift?
She will be named artist of the decade at the American Music Awards later this month and said she wanted to perform a medley of her songs at the ceremony. However, Swift alleges, Braun and Borchetta will not allow it.
In a fiery statement, she accused them of “exercising tyrannical control” over her career.
She added: “The message being sent to me is very clear.  Or you’ll be punished.”
Borchetta and Braun are yet to respond to Swift’s latest allegations.


Mourinho, Benitez, Howe: Who could replace Mauricio Pochettino at Spurs?
Tottenham have announced they have sacked manager Mauricio Pochettino after five-and-a-half years in charge.
Here, the PA news agency takes a look at some of the contenders who could be ready to fill the role at the Tottenham Hotspur Stadium.
Jose Mourinho
Could the self-styled ‘Special One’ take up another Premier League managerial post?
The Portuguese has been very positive about Tottenham since recently taking up a role as a Sky Sports pundit and will be desperate to show he can still cut it in England after a disappointing end to his Manchester United tenure.
He has won trophies wherever he has been, something that would certainly peak the interest of Spurs chairman Daniel Levy, but the financial constraints placed on a man who became the first manager to rack up £1bn on transfers may deter the former Chelsea boss.
Rafael Benitez
Another man with plenty of Premier League experience and several pieces of silverware on his CV.
Spent the last few seasons in England keeping Newcastle in the top-flight against the odds before moving to China but, despite the wages on offer in the far east, the Spaniard would surely be tempted back for such a big job.
Having worked under Mike Ashley at St James’ Park he would be more accustomed to the way Tottenham operate and would even have more freedom than he was used to at Newcastle.
Eddie Howe
If Spurs did not want to go for tried-and-tested winners and instead look for promise and potential – they could do much worse than look to the Bournemouth boss.
Howe is now enjoying his fifth consecutive season as a Premier League manager having led the Cherries to the promised land in 2015 and has finished ninth, 12th and 14th in the past three years.
Could he make the step up to a side challenging for honours as well as managing a bigger budget? It would be an interesting watch, especially as the 41-year-old encourages attacking football.
Erik Ten Hag
Former Holland international Ten Hag has been earning plenty of plaudits for the job he is doing at Ajax.
He took a group of promising, precocious players to the semi-finals of the Champions League last season only to have their hearts broken by Pochettino’s Tottenham – but he did collect the domestic league and cup double.
Like Howe, he promotes an attractive style and he also has a proven track record of working with – and improving – young players, with Tottenham’s academy often producing enough talent ready to be shaped and moulded into first-team regulars.
Gareth Southgate
Another man who believes fully in the ability of youth – England manager Southgate would surely be on any shortlist drawn up by Levy.
Not only has he given plenty of opportunities to exciting, up-and-coming talent, he has also worked with key members of the current Spurs squad – Harry Winks, Dele Alli, Danny Rose, Eric Dier and Three Lions skipper Harry Kane all having played international football under Southgate in recent times.
The one issue would be whether Southgate has the credentials in club management having been sacked as Middlesbrough boss with the club in the Championship in 2009 – his only club job to date.
body check tags ::


Note: The website will be taken down on Day Month Year 11.59pm for scheduled maintenance.
We apologize for any inconvenience caused in advance.
{% load static %} {% load getScriptPrefix %}
Note: The website will be taken down on Day Month Year 11.59pm for scheduled maintenance.
We apologize for any inconvenience caused in advance.


Contact Details
Custmoer service: 1-800-HELP-YOU
Locations near you
Tour Dates: 1-800-TOUR-DATES
Tour Reservations: 1-800-TOUR-SAVE
Travel Accommodations: 1-800-TRAVEL
Activities
Room Reservations: 1-800-HOLD-ROOM
Email us at: BestResorts@gmail.com


Snapshot Class
Constructor
Snapshot
-
internalModel
Parameters:
-
internalModel
ModelThe model to create a snapshot from
Item Index
Methods
Properties
Methods
attr
-
keyName
Returns the value of an attribute.
Example
// store.push('post', { id: 1, author: 'Tomster', title: 'Ember.js rocks' });
postSnapshot.attr('author'); // => 'Tomster'
postSnapshot.attr('title'); // => 'Ember.js rocks'
Note: Values are loaded eagerly and cached when the snapshot is created.
Parameters:
-
keyName
String
Returns:
The attribute value or undefined
attributes
()
Object
Returns all attributes and their corresponding values.
Example
// store.push('post', { id: 1, author: 'Tomster', title: 'Ember.js rocks' });
postSnapshot.attributes(); // => { author: 'Tomster', title: 'Ember.js rocks' }
Returns:
All attributes of the current snapshot
belongsTo
-
keyName
-
[options]
Returns the current value of a belongsTo relationship.
belongsTo
takes an optional hash of options as a second parameter,
currently supported options are:
id
: set totrue
if you only want the ID of the related record to be returned.
Example
// store.push('post', { id: 1, title: 'Hello World' });
// store.createRecord('comment', { body: 'Lorem ipsum', post: post });
commentSnapshot.belongsTo('post'); // => Snapshot
commentSnapshot.belongsTo('post', { id: true }); // => '1'
// store.push('comment', { id: 1, body: 'Lorem ipsum' });
commentSnapshot.belongsTo('post'); // => undefined
Calling belongsTo
will return a new Snapshot as long as there's any known
data for the relationship available, such as an ID. If the relationship is
known but unset, belongsTo
will return null
. If the contents of the
relationship is unknown belongsTo
will return undefined
.
Note: Relationships are loaded lazily and cached upon first access.
Parameters:
-
keyName
String -
[options]
Object optional
Returns:
A snapshot or ID of a known relationship or null if the relationship is known but unset. undefined will be returned if the contents of the relationship is unknown.
changedAttributes
()
Object
Returns all changed attributes and their old and new values.
Example
// store.push('post', { id: 1, author: 'Tomster', title: 'Ember.js rocks' });
postModel.set('title', 'Ember.js rocks!');
postSnapshot.changedAttributes(); // => { title: ['Ember.js rocks', 'Ember.js rocks!'] }
Returns:
All changed attributes of the current snapshot
eachAttribute
-
callback
-
[binding]
Iterates through all the attributes of the model, calling the passed function on each attribute.
Example
snapshot.eachAttribute(function(name, meta) {
// ...
});
Parameters:
-
callback
Functionthe callback to execute
-
[binding]
Object optionalthe value to which the callback's
this
should be bound
eachRelationship
-
callback
-
[binding]
Iterates through all the relationships of the model, calling the passed function on each relationship.
Example
snapshot.eachRelationship(function(name, relationship) {
// ...
});
Parameters:
-
callback
Functionthe callback to execute
-
[binding]
Object optionalthe value to which the callback's
this
should be bound
hasMany
-
keyName
-
[options]
Returns the current value of a hasMany relationship.
hasMany
takes an optional hash of options as a second parameter,
currently supported options are:
ids
: set totrue
if you only want the IDs of the related records to be returned.
Example
// store.push('post', { id: 1, title: 'Hello World', comments: [2, 3] });
postSnapshot.hasMany('comments'); // => [Snapshot, Snapshot]
postSnapshot.hasMany('comments', { ids: true }); // => ['2', '3']
// store.push('post', { id: 1, title: 'Hello World' });
postSnapshot.hasMany('comments'); // => undefined
Note: Relationships are loaded lazily and cached upon first access.
Parameters:
-
keyName
String -
[options]
Object optional
Returns:
An array of snapshots or IDs of a known relationship or an empty array if the relationship is known but unset. undefined will be returned if the contents of the relationship is unknown.
serialize
-
options
Serializes the snapshot using the serializer for the model.
Example
import Adapter from '@ember-data/adapter';
export default Adapter.extend({
createRecord(store, type, snapshot) {
var data = snapshot.serialize({ includeId: true });
var url = /${type.modelName}
;
return fetch(url, {
method: 'POST',
body: data,
}).then((response) => response.json())
}
});
Parameters:
-
options
Object
Returns:
an object whose values are primitive JSON values only
Properties
adapterOptions
Object
A hash of adapter options
id
String
The id of the snapshot's underlying record
Example
// store.push('post', { id: 1, author: 'Tomster', title: 'Ember.js rocks' });
postSnapshot.id; // => '1'
record
Model
The underlying record for this snapshot. Can be used to access methods and properties defined on the record.
Example
let json = snapshot.record.toJSON();


{% load templatetag_handlebars %} {% tplhandlebars "upass_card" %}
Finalize activation by tapping your card on a reader.
{{/if}} {{#unless is_employee}} {{#if in_summer}} {{#if is_pce_or_seattle_student}}Your U-PASS does not work during summer quarter unless you are registered for a class or are a temporary employee.
{{/if}} {{/if}} {{/unless}}If you are registered for a quarter, your U-PASS will work one week before the quarter starts.
{{#if in_summer}}Your U-PASS does not work during summer quarter unless you are registered for a class or are a temporary employee.
{{/if}}If you purchase a U-PASS for a quarter, your U-PASS will work one week before the quarter starts.
If you purchase a U-PASS for a quarter, your U-PASS will work one week before the quarter starts.


Super Smash Brothers
Super Smash Brothers is a videogame series created by Nintendo.
The games are fighting/party games that feature some of Nintendo's most popular videogame characters such as Mario, Link , and Pikachu.
It's been more than 15 years since the first game was released on the Nintendo 64 and since then the series has seen an increasing number of fighters and an increasing fanbase.


|
Residential Service -
Unlimited calls or Pay-as-you-Talk? Save money on your home phone bills with swiftcall
Business Service -
Exceptional service and line quality, coupled with highly competitive pricing for business customers.
e-PIN online phonecard -
Get cheaper international calls instantly. Buy your e-PIN online now.
Phonecard -
Discover the wide range of high quality phone cards with Swiftcalls 10 years of trusted service.
Prepaid Internet -
There's no contract, paper work or phone bills with our new cheap and easy Pay-As-You-Go internet card
Customer Service -
Have a question? Swiftcall's dedicated support service is here to help.
India Mobile just 7p a minute!
India Landline just 9.8p a minute!
Swiftcalls new My-Time India calling plan
Swiftcall Unlimited - Unlimited free international & uk calls -
only 19.99 a month


The Appendix, Appendixed.
In June 1939, Alfred Lion recorded the Sidney Bechet Quintet in a radio station in New York City for his small jazz label Blue Note. The session was not Blue Note’s first (although it had only been in operation since January), but in many ways it represented a key characteristic of the label: it brought together musicians of a diverse set of geographical origins. Bechet was part of the first generation of New Orleans musicians to bring jazz outside of the city; Meade Lux Lewis was a boogie woogie pianist from Chicago; the bassist Johnny Williams was from Memphis; Teddy Bunn was a guitarist from Long Island; and the swing drummer Sid Catlett was born in Indiana, but grew up in Chicago.
The aggregation went beyond this session, and it had a much wider geo-intellectual significance. Blue Note formed the personal, intellectual, and artistic intersection point of two different major twentieth century migrations. Lion and his partner Francis Wolff—the owners and producers of the label—were part of a large wave of Jewish Germans who fled the advent of the Nazi racial state during the 1930s and settled in the United States. The musicians they recorded, on the other hand, were African Americans who were participants in the movement of the Second Great Migration from the South to the North between 1940 and 1970 (or were children of migrants of the first migration earlier in the century).
Blue Note was a phenomenal gatherer of musical talent from across the States. Its New York and Hackensack studios became a center of gravity that pulled on the wide field of small, local American jazz scenes and it mixed and matched musicians imbued with Detroit, Dallas, Los Angeles, and Philly’s personal musical inflections.
These maps are cartographic illustrations of the Blue Note phenomenon.
Finally, we have also included a few poignant examples of individual recording sessions which represent microcosms of the whole phenomenon; for a few hours or a couple of days, musicians blended the American sonic-geographical expanse.
|
Thelonious Monk Genius of Modern Music: Volume 2 (1951-1952, released 1956)
|
Bobby Hutcherson The Kicker (1963, released 1999)
|
Kenny Dorham Afro-Cuban (1955)
|
Below: A sample of 37 German and Austrian intellectuals and artists who escaped, their birthplaces, and their adopted American homes during Blue Note’s first year; they represent the immense resettlement from the continent to the United States. Most lived in Berlin, Frankfurt am Main, or Vienna when the Nazis came to power in 1933, but many also had brief sojourns in Paris, London, or Italy.
Red circles represent places of birth and places of residence in 1939.
Below: The incredible range of home cities and local scenes from which Blue Note culled its roster from 1939 to 1967, when Lion retired after selling the company to Liberty Records. The majority of players during this period (around 430 of the period’s 546 players) are represented; those who were left off had uncertain origins. Although large cities like New York, Philadelphia, Chicago, and Detroit are the densest points, the majority of musicians came from small to mid-size Southern and Midwestern cities.
Red circles represent places of birth.
Showing all performers who played a session between 1943 and 1967


Ghana is the gateway to Africa.And with such a country; it brings culture and heritage such as the unique way of how they name their new born generation.Ghanaian lifelines shows the introduction of a New Era like knowing your birthnames.Why don't you try yours today?


Collect the information outlined on your application checklist to begin your application. The more information you have about your event, the easier it should be to complete your application. Stuck on a question? Don't worry, you can log out at any time and come back to your question when you're ready. Answers will automatically be saved on your application so you can continue where you left off next time you sign in.
View Frequently Asked Questions (FAQS) located on the Help page for everything you need to know about SEPs.
Please ensure your legal name is used for the application and the information is correct. If you need to update your information, visit Manage Account.
Please read and acknowledge the Terms and Conditions to begin your application:


jim skvorc
Republican
Retired since June 2004
BS Business Admin Univ of Illinois, Chicago Teaching certificate Univ of Colorado, Boulder Renewal of teaching certificate 1984-2004 indicating ongoing college courses needed for recertification.
81321
While teaching, I held various positions with the Colorado Education Association on both the local and district levels. I served on the Frisco Colorado P&Z for 3 years. I served on the Frisco RecreationCommittee for its one year duration. I was a board member of the Mancos, Colorado Chamber of Commerce for three years. I was a board member of Leadership Montezuma for five years.
Biden for president 2020 MB McAfee for County Commissioner 2016 Samulski for County Commissioner 2020
Montezuma Land Conservancy Southwest Colorado Canyons Alliance Colorado Archeological Society National Resources Defense Council Southern Utah Wilderness Alliance
As a retired Social Studies teacher and advocate for representational democracy I feel that it is my duty to serve. As a former Civics teacher and volunteer for civic organizations I feel that I have a basic understanding of this process and would be an asset to my state.
As a formerly registered Democrat, Green and currently a Republican I feel that I can see all sides of an issue. As a former high school teacher (Summit County) I am able to elicit opinions and to dignify opposing views while leading a civil discussion. As a teacher it was my job to to be fair and impartial and even to dignify those opinions to which I did not agree. I am 71 years old, have had many life experiences from serving in Vietnam to volunteering in my retirement. I have the stability, intelligence and calmness to work with people of many ideological backgrounds.
I am a rational person who gathers the facts before making a decision. As in my teaching career I needed to be well prepared before taking on several classes of teenagers totaling over 100 students per year. In teaching you have to be rational and logical or lose the respect of your students which leads to loss of control of the class. I did not lose control of my classes. This is especially true when discussing events and issues of the day on which opinions vary widely. My volunteer efforts underline these abilities, especially, I feel, my time on the Frisco P&Z where we dealt with developers, citizens and organizations each wanting to have their opinion valued
male


In the last four years that Reid, Connor and I have known each other we have eaten together countless times. From the late night munchies in our sophomore dungeon of a dorm room to indulging at restaurants that are blatantly out of our price range, it’s safe to say that our food history together is a colorful one. Our shared appreciation for well-made food always gave us something to bond over. With that in mind, a couple of weeks ago the three of us got to talking and decided we should write down our gastronomic experiences. We don’t always eat together but by sharing our stories with our readers we can open up a window into our day to day lives, whether that may be Doritos and French onion dip or Fish Sauce wings at Pok Pok.
Just in time for us to make the blog I decided to take a trip home. By no means does that mean dreary food for me (quite the opposite actually, but that’s for another post) but it just drained my motivation to get started. So when I got back to Portland, the city’s food scene was calling my name. It was time to resume my quest to find the Portland area’s best breakfast. I am not particularly interested in crowning one as breakfast royalty, I simply want to explore the ends of the Portland breakfast world.


1,000 songs. Impossibly small. iPod nano.
Take everything you love about iPod and shrink it. Now shrink it again. With 2GB (500 songs) and 4GB (1,000 songs) models starting at $199, the pencil-thin iPod nano packs the entire iPod experience into an impossibly small design. So small, it will take your music places you never dreamed of.
iPod nano is smaller than iPod mini and has a color screen and a Click Wheel but has flash memory instead of a hard drive. You sync music and photos with a USB 2 cable—not FireWire. The capacity of the iPod nano is engraved on the back of the case.


jQuery.validator - Demo
Userdata
Username:
Check with ajax. All names that are longer than 2 characters and != 'sirmaxelot' :D
Password:
Custom defined regex. Strings with more than 4 characters
Retype:
Bound to the password input above. Must have the same content as the bound input.
Email:
Email syntax check.
Zip Code (optional):
Optional Zip code field. 4-5 characters. With sample event handlers.
Comment:
Required comment field.


A decision tree classifier for detecting microsatellite instability (MSI) in somatic mutation data from whole exome sequencing. MSI is detected based on different mutation rates in all sites as well as in simple sequence repeats. This mechanism can also be applied to sequence data of targeted gene panels with shorter sequence length.
| Version: | 1.0.0 |
| Depends: | IRanges, RWeka, rJava, R.utils, R (≥ 3.2.0) |
| Published: | 2015-06-15 |
| Author: | Mini Huang |
| Maintainer: | Mini Huang <mini.huang at nus.edu.sg> |
| License: | GPL-2 | GPL-3 [expanded from: GPL (≥ 2)] |
| NeedsCompilation: | no |
| SystemRequirements: | Java |
| CRAN checks: | MSIseq results |
| Reference manual: | MSIseq.pdf |
| Package source: | MSIseq_1.0.0.tar.gz |
| Windows binaries: | r-devel: MSIseq_1.0.0.zip, r-release: MSIseq_1.0.0.zip, r-oldrel: MSIseq_1.0.0.zip |
| OS X binaries: | r-release: MSIseq_1.0.0.tgz, r-oldrel: MSIseq_1.0.0.tgz |
| Old sources: | MSIseq archive |
Please use the canonical form https://CRAN.R-project.org/package=MSIseq to link to this page.


Note that this was moved to be a written only topic. So my coverage will be small and simple as can be for a very deep technology.
Performance Routing (PfR), previously called Optimized Edge Routing (OER), introduces a new concept into IP routing. With traditional routing, path selection decisions do not consider a particular path’s traffic characteristics be it throughput, actual delay, packet loss, voice mean opinion score (MOS), monetary cost of a given path, or jitter. PfR enhances the classic destination-based routing concept centered on the shortest path (lowest-cost metric) by adding into the routing selection process, network performance and/or application performance aware intelligence.
In the past, router’s simply did not have the physical resources to be able to route based on anything other than a simple metric. With the memory and CPU available in today’s routers, not routing based on advanced metrics is a waste of resources.
Let’s say we have two links to the internet as shown above. The current situation is we have the T1 configured to be a backup circuit to the Ethernet circuit in case the Ethernet circuit goes down. In our PfR example, we will show how to use the T1 link when the Ethernet link hits 75% saturation. In our scenario, PfR will will automatically use NetFlow, the interface’s utilization, along with active probing with IP SLA to determine the availability of an alternate path. Knowledge of NetFlow and IP SLA is not needed as PfR manages the configuration of these technologies.
Central to PfR is the concept of a Master Controller (MC) and Border Routers (BR). The MC is the centralized decision maker and is responsible for controlling the Bfs and acting as a central location to store and analyze data collected from the BRs. The MC does not need to be in the path of traffic flows but does need basic IP reachability to the BRs. The communication between the MC and BRs occurs over an authenticated TCP connection on port 3949 by default. The BR is responsible for initiating the TCP connection. The authentication is handled via key chains like we saw in RIP and EIGRP. The MC and the BR can be the same router, for lab or small networks.
Let’s jump into the configuration. First we will set up the BR and tell it where it can find the MC, as well as provide the key chain used to authenticate. The older IOS versions use oer while the new IOS versions (>15.0) use pfr commands.
`R3(config)#oer border
R3(config-oer-br)#local Loopback0
R3(config-oer-br)#master <IP_ADDRESS> key-chain OER R3(config-oer-br)#exit
`On the MC there is a little more configuration. We need to define the BR(s) as well as the internal and external interfaces. There must be at least 1 internal and 2 external interfaces in the PfR domain.
`R3(config)#oer master
R3(config-oer-mc)#border <IP_ADDRESS> key-chain OER
R3(config-oer-mc-br)#interface FastEthernet0/0 internal
R3(config-oer-mc-br)#interface Serial1/0.1 external
R3(config-oer-mc-br-if)#interface FastEthernet0/1 external
R3(config-oer-mc-br-if)#exit
` In order to see the status, use the following.
`R1# show her master
` Now, to tell the MC to start monitoring the Ethernet’s throughput rate so that traffic can be offloaded to the T1 once the 75% threshold has been reached, we have to enter the learn sub configuration mode on the MC.
`R3(config-oer-mc)#learn
R3(config-oer-mc-learn)#throughput
`The default interface utilization threshold is 75% when monitoring throughput. This can be changed under the interface configuration sub-mode for a particular BR.
Traffic classes are used in PfR to designate types of traffic out of the traffic flow that we want to manipulate. The MC will learn up to 100 of these traffic classes by default. This can be changed using the prefixes <1-100000> command.Initially PfR only supported Layer 3 prefixes, but now it can learn traffic classes from Layer 4 ports or DSCP as well. For our example we will use layer 3 prefixes. PfR aggregates traffic flows into /24 prefixes by default before sending the information to the MC. We can change that in the learn configuration sub-mode with the aggregation-type prefix-length <1-32> command. We will do some final configuration on the MC. We will need to change the MC’s route control policy settings from observe (mode route observe) to route control (mode route control) so that the MC can instruct the BR to inject static routes allowing it to move traffic from the Ethernet link to the T1 link.
`R3(config)#oer master
R3(config-oer-mc)#mode route control
` Now you may wonder how PfR knew to route to the T1 when the load hit 75%. Well there is no magic. The only way this would happen is if we have a secondary route to the same destination. In our example, we had a floating static route configured.
`ip route <IP_ADDRESS> <IP_ADDRESS> <IP_ADDRESS>
ip route <IP_ADDRESS> <IP_ADDRESS> <IP_ADDRESS> 5
`Without the second route, PfR would not have sent traffic across the Serial link, even after the Ethernet circuit hit 75% utilization. PfR calls these additional routesparent routes. They do not have to be installed in the routing table, they just have to be available in the configuration.parent


If you are already registered with us and have forgotten your password, please enter the email address that you used to register with us, and we will email you a new password.


Let's try some easy math calculations…
Say "What's five times three"
Say "What's four plus seventeen"
Now go wild. Say "What's …" and that will be calculated
Let's find the weather in different locations…
Say "How's the weather in Bangkok"
Say "How's the weather in New York City"
Now go wild. Say "How's the weather in …" and the weather of that city will be shown
How About Some Dad Jokes 😆
Say "Tell me a joke" and a joke will appear
Say "Tell me another joke" and a different joke will appear
What about a timer?
Say "Set a three second timer"
Say "Set a one minute timer"
Now go wild. Say "set a(n) … timer " and a timer will start
annyang plays nicely with all browsers, progressively enhancing modern browsers that support the SpeechRecognition standard, while leaving users with older browsers unaffected.
Please visit http://www.annyangjs.com/ in a desktop browser like Chrome.


A useful port of call on the Channel coast between Dieppe and Calais. A small fishing port with an illuminated calvery at the entrance.
Position 50° 04'N, 01° 22'E (harbour approach)
Difficult to enter in strong onshore winds. Approach dries half a mile out from pierheads. Beware of cross currents.
Keep to the western side of the channel. The marina is entered through a lock which opens HW +/-4.
Last updated June 2016.


Wed Aug 15, 2012
This warning issued by the South African Police Department (SAPD) is quite chilling. And I’m not talking about the vexing combination of all caps and exclamation marks in the final plee of the second paragraph. Or the stilted language that includes all genders and age groups but excludes anyone not on their way to school or work. But, I digress.
 This is a variation on the broken-down car scheme to be sure, but using a little kid as a lure is a new low. Having said that, most South Africans have a heightened sense of security and I would hope most wouldn’t fall for this.
Secondly, the free key holders that house a secret GPS tracker seems so bizarre that it must be true. Although, I imagine drivers of flashy cars may wonder why they received a free gift while the guy in the jalopy next to them missed out. In any case, this high-tech con is a worrying example of how technology can be used for evil.


Mysterious Wizard:
Some say it's the revolutionary army of dusk, but I don't care about such things. I'm interested in knowledge, not power and exploitation.
If you're still angry, go to the temple of the Rune Township. Perhaps the holy relic...I mean the doll will help shed light on things.


ResourcePile
Maps
Overcast Collection
PGM Collection
Stratus Collection
Avicus Collection
RFW Collection
Contests
Overcast Network
Stratus Network
Tournaments
Overcast Network
PGM Community
Stratus Network
Avicus Network
Statistics
Overcast
Bow Records
Miscellaneous
Objective Leaderboards
Stratus
Bow Records
Avicus
Miscellaneous
Please enable JavaScript in your browser. Many features of this site rely on JavaScript and will not work without it.
Staff
The team that runs ResourcePile
Managers
4
Crazy_
Manager
Matic0B
Manager
mitchiii_
Manager
BTKing
Manager
Developers
6
mitchiii_
Developer
Matic0B
Developer
freundTech
Developer
triplezko
Developer
ViceWatercolour
Developer
nixter1029
Developer
Collaborators
6
Nanu
Collaborator
_3Each
Collaborator
AranoixStark
Collaborator
99250
Collaborator
Proddyy
Collaborator
Lucaslyoko
Collaborator
Associates
2
Epicness
Associate
amactus
Associate


{{ peerReview.type }}
{{ peerReview.groupType }}: {{ peerReview.groupIdValue }}
Connect to trusted organizations to automatically add your peer review activity to your ORCID record.
Learn more about how peer reviews are added to your ORCID record


User:1
| Owner: | Micheal Dinks |
|---|---|
| Account No: | 12345 |
| Create Date: | 12/may/2010 |
| Type: | savings account |
| Status: | active |
| Balance: | 10,000,000 Rwf |
ACTIVE
DEACTIVATED


--- layout: post title: AOP and Microsoft follow-up tags: [practices, aop] ---
Val does a good job of summarizing of the discussion Eric started on AOP and Microsoft technologies, and I thought I would add a bit more to the discussion.
Jeroen in the comments say that Microsoft is watching what the industry does in AOP… But to be really honest, Microsoft was one of the first in the industry to provide interception and decoration of code with its COM+ Services. You can ask Clemens about his experience hooking up in this COM+ pipeline! (I was looking for posts about it, not sure he ever put down on the net what he explained in one conference I was at in Paris).
Moreover, I think it’s fair enough to say that the interception layer has been implemented in the .net world, through the use of the TransparentProxy / RealProxy couple. What prevents that from being used more efficiently? It’s as slow as it gets. It needs a context on its own. Some people (I’m not putting names as I can’t assert for sure, but I have my opinion on the matter) pushed to have call contexts instead of object instances contexts, which results in it not to be optimized before .net 3 or 4, maybe (according to this guy which should known what he’s talking about).


Sign in
Wrong username or password.
Sign in
Create New Account
Username already exists.
Sign Up
Back


AUD/USD continues to perform poorly – Westpac
by Haresh MenghaniAnalysts at Westpac offered a brief outlook for the NZD/USD pair, which struggled to capitalize on its early uptick further beyond the 0.6800 round-figure mark.
Key Quotes:
“AUD/USD continues to perform poorly, reflecting the lack of breakthrough in US-China trade talks and regional investor jitters, especially around Hong Kong. This doesn’t seem likely to change in the week ahead and Governor Lowe won’t want to encourage A$ to rally as he discusses options such as QE. Trade headlines could yet surprise, so while we retain a downward bias on the week, there could be bouts of optimism. Commodity prices also argue against substantial AUD decline. But our overall bias is for AUD/USD to grind towards the 0.6750 area.”


| Instruction files | ||
|---|---|---|
|
User manual.pdf
|
50kb
|
|
| + Attach new file |
| Tools |
|---|
|
(no items)
|
| + Add tool |
| Spare parts |
|---|
|
(no items)
|
| + Add spare part |


Transpose
Choose the layout
Leadsheet
Trumpet
Trombone
Clarinet
Saxophone
Sousaphone
Octavate up
Octavate down
Export PDF


[gecode-users] Analysing search performance
Christian Schulte
schulte at imit.kth.se
Thu Mar 2 15:44:18 CET 2006
You can build Gecode also as static libraries: then profiling should be
easier.
And please make sure that the search space is really the same! Count the
nodes in both approaches and check that they are the same or at least in the
same order of magnitude. Otherwise you might be hunting ghosts.
Another thing is recomputation: do you use it? Is memory an isssue for your
application?
All the best
Christian
--
Christian Schulte, http://www.imit.kth.se/~schulte/
-----Original Message-----
From: users-bounces at gecode.org [mailto:users-bounces at gecode.org] On Behalf
Of Lars Otten
Sent: Wednesday, March 01, 2006 5:53 PM
To: users at gecode.org
Subject: Re: [gecode-users] Analysing search performance
Hi all,
On 02/28/06 09:01, Christian Schulte wrote:
> For the time being, the only support you can get is by using a
> standard C++ profiler. If you are using gcc for compiling just use
> gprof the see what is happening. In order to compiler for gprog you
> have to give -pg as option for gcc (just check the gcc doc).
Thanks to Guido and you for the hints. I did some reading about profiling:
The problem with gprof is that it only profiles the main executable but not
shared libraries -- or if it does, it's so cumbersome I couldn't get it to
work...
After some searching I came across oprofile [2] which seems to do the job
quite nicely, eve without any special compilation flags. I attach the first
few lines of the (filtered) system-wide profile of running my program for
some minutes. It seems that most of the time is spent cloning spaces,
specifically in Gecode::ViewArray<...>::update(...)
This is (percentage-wise) a lot more than what I get when I run e.g. $
queens -c_d 1 -solutions 0 -mode stat for some minutes, but then again it's
a different problem so this comparison might not mean much.
> Did you at least check the search space? That is, how big is the
> search tree with what you have and how big is that in [1]. If you are
> talking vastly different trees there is no point in alayzing
> performance but your model.
The underlying model I employ is (almost) the exact same as in [1], so in
principle the search trees should be very similar. I'm also using (almost)
the same variable/value selection heuristics. I just left out some more
complicated constraints, but I feel that shouldn't make such a difference
(rather it should make the problem easier).
Nevertheless I will talk to Mattias, the author of [1], to find out if there
are any major discrepancies I might not be aware of.
I will also migrate my changes to the fresh version 1.0.1, although the
changelog does not contain anything I'd relate to my observations.
Cheers,
/Lars
[1] http://publications.lib.chalmers.se/records/full_record/6207.html
[2] http://oprofile.sf.net/
More information about the gecode-users
mailing list


Choice number 1
Second choice
Final option
Choice number 1
Second choice
Final option
Choice number 1
Second choice
Final option
Choice number 1
Second choice
Final option
Choice number 1
Second choice
Final option
Choice number 1
Second choice
Final option
Choice number 1
Second choice
Final option
Choice number 1
Second choice
Final option
Choice number 1
Second choice
Final option
Choice number 1
Second choice
Final option
Choice number 1
Second choice
A third option
Option 3a
Now we return to 5
Final option is 3 again
Choice number 1
Second choice
A third option
Option 3a
Now we return to 5
Final option is 3 again
Choice number 1
Second choice
A third option
Option 3a
Now we return to 5
Final option is 3 again
Choice number 1
Second choice
Final option
Choice number 1
Second choice
Final option


FIFA World Cup 2014 Knockout Bingo
${price}
Cross out teams below as they are eliminated from the World Cup.
The first player to complete their bingo card wins.
- The ordering is based on the date and time the eliminating
matches are played (at the groups stage, the final match of
the group)
- In the event of several players completing their bingo
card after the same elimination, they will share the prize.
- The third-place game is not included.
${board}
Board ID: ${boardId}
This card has been computationally drawn randomly
according to these rules:
- The first team is chosen randomly.
- The group of the chosen team is removed from the
pool of possible teams.
- The next team is chosen randomly from the remaining
teams.
- This continues from step 2 until there are no more possible teams.
- When there are no more possible teams, remaining teams not
already on the bingo card are put back into the pool,
and the process continues from step 1 onwards until the
card is complete.
- This draw is performed independently for each bingo
card. Although theoretically two bingo boards could contain
the same teams, for all practical purposes bingo boards will
be unique, and will contain teams evenly drawn from across
the groups.


0.20.1
A DHT implementation modeled after Kademlia with S/Kademlia modifications. Original implementation in go: https://github.com/libp2p/go-libp2p-kad-dht.
Extends EventEmitter
(Object)
| Name | Description |
|---|---|
$0.libp2p any
|
|
$0.dialer any
|
|
$0.peerId any
|
|
$0.peerStore any
|
|
$0.registrar any
|
|
$0.datastore any
(default new MemoryDatastore() )
|
|
$0.kBucketSize any
(default c.K )
|
|
$0.clientMode any
(default false )
|
|
$0.concurrency any
(default c.ALPHA )
|
|
$0.validators any
(default {} )
|
|
$0.selectors any
(default {} )
|
|
$0.randomWalk any
(default {} )
|
(Object)
Local reference to the libp2p instance. May be undefined.
Type: Libp2p
Local reference to the libp2p dialer instance
Type: Dialer
Local peer-id
Type: PeerId
Local PeerStore
Type: PeerStore
Local peer info
Type: Registrar
ALPHA concurrency at which each query path with run, defaults to 3
Type: number
Number of disjoint query paths to use
This is set to kBucketSize
/2 per the S/Kademlia paper
Type: number
The routing table.
Type: RoutingTable
Reference to the datastore, uses an in-memory store if none given.
Type: Datastore
Random walk management
Type: RandomWalk
Keeps track of running queries
Type: QueryManager
Is this DHT running.
Type: bool
Store the given key/value pair in the DHT.
(Uint8Array)
(Uint8Array)
Promise<void>
:
Get the value to the given key. Times out after 1 minute by default.
(Uint8Array)
Promise<Uint8Array>
:
Get the n
values to the given key without sorting.
(Uint8Array)
(number)
Promise<Array<{from: PeerId, val: Uint8Array}>>
:
Search the dht for up to K
providers of the given CID.
(CID)
AsyncIterable<{id: PeerId, multiaddrs: Array<Multiaddr>}>
:
Kademlia 'node lookup' operation.
(Uint8Array)
AsyncIterable<{id: PeerId, multiaddrs: Array<Multiaddr>}>
:
A wrapper around k-bucket
, to provide easy store and
retrival for peers.
(PeerId)
(number)
Retrieve the closest peers to the given key.
(Uint8Array)
(PeerId | undefined)
:
Retrieve the count
-closest peers to the given key.
(Uint8Array)
(number)
Array<PeerId>
:
Creates a DHT ID by hashing a given Uint8Array.
(Uint8Array)
Promise<Uint8Array>
:
Creates a DHT ID by hashing a Peer ID
(PeerId)
Promise<Uint8Array>
:
Convert a Uint8Array to their SHA2-256 hash.
(Uint8Array)
Key
:
Generate the key for a public key.
(PeerId)
Uint8Array
:
Get the current time as timestamp.
number
:
Encode a given Uint8Array into a base32 string.
(Uint8Array)
string
:
Decode a given base32 string into a Uint8Array.
(string)
Uint8Array
:
Sort peers by distance to the given target
.
(Array<PeerId>)
(Uint8Array)
Array<PeerId>
:
Compare function to sort an array of elements which have a distance property which is the xor distance to a given element.
number
:
Computes how many results to collect on each disjoint path, rounding up. This ensures that we look for at least one result per path.
number
:
Create a new put record, encodes and signs it if enabled.
(Uint8Array)
(Uint8Array)
Uint8Array
:
Handle network operations for the dht
(KadDHT)
Is the network online?
Type: bool
Are all network components there?
Type: bool
Handle incoming streams on the dht protocol.
(Object)
| Name | Description |
|---|---|
props.stream DuplexStream
|
|
props.connection Connection
|
connection |
Promise<void>
:
Process GetValue
DHT messages.
(PeerId)
(Message)
Promise<Message>
:
Process PutValue
DHT messages.
(PeerId)
(Message)
Promise<Message>
:
Process FindNode
DHT messages.
(PeerId)
(Message)
Promise<Message>
:
Process AddProvider
DHT messages.
(PeerId)
(Message)
Promise<void>
:
Process GetProviders
DHT messages.
(PeerId)
(Message)
Promise<Message>
:
Process Ping
DHT messages.
(PeerId)
(Message)
Message
:
Store the given key/value pair in the DHT.
(Uint8Array)
(Uint8Array)
Promise<void>
:
Get the value to the given key. Times out after 1 minute by default.
(Uint8Array)
Promise<Uint8Array>
:
Get the n
values to the given key without sorting.
(Uint8Array)
(number)
Promise<Array<{from: PeerId, val: Uint8Array}>>
:
Divide peers up into disjoint paths (subqueries). Any peer can only be used once over all paths. Within each path, query peers from closest to farthest away.
(DHT)
DHT instance
(Uint8Array)
(makePath)
Called to set up each disjoint path. Must return the query function.
Manages a single run of the query.
Extends EventEmitter
(Query)
Stop all the workers
Maintains a list of peerIds sorted by distance from a DHT key.
(Uint8Array)
the DHT key from which distance is calculated
(number)
the maximum size of the list
Manages a single Path through the DHT.
(Run)
(queryFunc)
Add a peer to the set of peers that are used to intialize the path.
(PeerId)
PeerQueue is a heap that sorts its entries (PeerIds) by their xor distance to the inital provided key.
(Uint8Array)
The sha2-256 encoded peer id
Create from a given Uint8Array.
(Uint8Array)
Promise<PeerQueue>
:
Creates a new WorkerQueue.
Create the underlying async queue.
Object
:
Stop the worker, optionally providing an error to pass to the worker's callback.
(Error)
Use the queue from async to keep concurrency
amount items running
per path.
Promise<void>
:
Add peers to the worker queue until there are enough to satisfy the worker queue concurrency. Note that we don't want to take any more than those required to satisfy concurrency from the peers-to-query queue, because we always want to query the closest peers to the key first, and new peers are continously being added to the peers-to-query queue.
Process the next peer in the queue
(PeerId)
Promise<void>
:
Announce to the network that we can provide given key's value.
(CID)
Promise<void>
:
Search the dht for up to K
providers of the given CID.
(CID)
AsyncIterable<{id: PeerId, multiaddrs: Array<Multiaddr>}>
:
Like PeerList but with a length restriction.
Extends PeerList
(number)
Add a PeerData if it fits in the list
(PeerData)
bool
:
A list of unique peers.
Add a new peer. Returns true
if it was a new one
(PeerData)
bool
:
Check if this PeerData is already in here.
(PeerId)
bool
:
Remove the last element
PeerData
:
Look if we are connected to a peer with the given id.
Returns its id and addresses, if found, otherwise undefined
.
(PeerId)
Promise<{id: PeerId, multiaddrs: Array<Multiaddr>}>
:
Search for a peer with the given ID.
(PeerId)
Promise<{id: PeerId, multiaddrs: Array<Multiaddr>}>
:
Kademlia 'node lookup' operation.
(Uint8Array)
AsyncIterable<PeerId>
:
Get the public key for the given peer id.
(PeerId)
Promise<PubKey>
:
Represents a single DHT control message.
Decode from protobuf
(Uint8Array)
Message
:
Encode into protobuf
Uint8Array
:
This class manages known providers. A provider is a peer that we know to have the content for a given CID.
Every cleanupInterval
providers are checked if they
are still valid, i.e. younger than the provideValidity
.
If they are not, they are deleted.
To ensure the list survives restarts of the daemon, providers are stored in the datastore, but to ensure access is fast there is an LRU cache in front of that.
Start the provider cleanup service
void
:
Release any resources.
void
:
(DHT)
(object)
| Name | Description |
|---|---|
options.enabled randomWalkOptions.enabled
|
|
options.queriesPerPeriod randomWalkOptions.queriesPerPeriod
|
|
options.interval randomWalkOptions.interval
|
|
options.timeout randomWalkOptions.timeout
|
|
options.delay randomWalkOptions.delay
|
|
options.dht DHT
|
Start the Random Walk process. This means running a number of queries every interval requesting random data. This is done to keep the dht healthy over time.
void
:
Stop the random-walk process. Any active queries will be aborted.
void
:
Keeps track of all running queries.


--- layout: docs template: t-docs title: Utilities > WIDTHS name: widths collection: docs-utilities ---
The widths utilities contain helper classes to force the CSS width property.
The widths are based in a defined fractions (from 1 to 5 denominators by default), and available for each defined breakpoint.
Also creates classes for each defined breakpoint (resize the window to see it in action).
Is possible to use more than one utility per element to change the width of an element in a breakpoint depending way. If one of the breakpoints width is missing, the previous breakpoint width will be used.
Finally creates utilities to change the order of the elements, for each breakpoint also. By default this options is not active, and the variables $u-widths__offset-push--enabled
and $u-widths__offset-push--enabled
need to be overwritten to true
.
In the following example the two layout__items change its order from the @md
breakpoint


My name is Trenton Pack. I'm a software engineer. I graduated from UNLV with a BS in Computer Science with a 3.4 GPA in 2006. Ever since I was little kid, I've loved playing with technology. I have over 15 years of experience in the IT industry. I have over 8 years of professional programming experience.


Export your
SolidityEditor
project
EXPORT FILE
Export your
SolidityEditor
project - STEP 2
EXPORT FILE
Import an existing
SolidityEditor
project - STEP 1
Import an existing
SolidityEditor
project
Save Solidity source code
SAVE CONTRACT