|
Elektra
0.9.4
|
This document is a full explanation of how key names work in Elektra.
In addition to this document, a reference Python implementation can be found in keynames.py. The goal of the Python implementation is not to be fast, or to be used in any way other than as a reference. If there are any discrepancies between this document, the Python implementation and the actual C implementation in src/libs/elektra/keyname.c, you should consider them as follows:
In any case: If you find any discrepancies, please file a bug report at https://issues.libelektra.org/new.
Note: Mistakes happen. The goal of the Python implementation was to provide a reference that has a very high likelihood of being correct.
To Elektra developers: Feel free to add any unclear or previous incorrect examples to the test cases in tests/ctest/test_keyname.c. These tests are very fast (1000+ test cases per second) and the more tests the better.
Before we dive into key names, we need to talk about key name parts and namespaces.
Each key is part of one of these namespaces:
Each of these namespaces has a very specific meaning, explained in Section 1.2.
Apart from the namespace, a key name is just a series of zero or more key name parts. Each key name part is just an arbitrary (possibly empty) sequence of non-zero bytes.
So without knowing anything about how key names are written, we could say that there is a key in the namespace "system" with the key name parts "elektra", "version" and "info".
Note: Not every such sequence, is a valid key name. For more information see Section 4
Elektra's keys commonly look like Unix paths:
Note: How this representation works exactly and how namespaces come into play, will be explained in the next section. For now, we only care that there is some similarity to Unix paths.
This is on purpose. Elektra's key database (KDB) is designed to resemble a Unix filesystem as much as possible. In particular, the KDB has a similar hierarchy. More generally, all key names exhibit this hierarchy. By going back to thinking about a key name as a namespace and a series of key name parts, we can define this key hierarchy.
Each namespace has a separate hierarchy. The relation between these, will be explored in the next section. For now, we just look at a single namespace.
In a Unix filesystems, we commonly talk about files and directories. We also say a file is located within a directory. But you might also know that in Unix "everything is a file". This applies to directories as well, but "a file is located within a file" is a bit clunky, so you might say "file `A` is located below file `B`", if B
is a file within the directory A
. What makes A
a directory is just the fact that there can be other files below A
[1].
This relation of "is below" is also what defines Elektra's key hierarchy. Based on a key K
with n
key name parts, we say:
Km
is below K
, if Km
has n+m
key name parts and the first n
key name parts of Km
are equal to the key name parts of K
(in the same order).K1
is directly below K
, if K1
is below K
and K1
has n+1
key name parts.Here are a few examples to show how this works in practice (using the Unix-path-like representation teased above):
| Key 1 | Key 2 | Relation |
|---|---|---|
/elektra/version/info | /elektra/version | "Key 1" is directly below "Key 2" |
/elektra/version/info | /elektra | "Key 1" is below "Key 2" |
/elektra | /elektra/version/info | "Key 2" is below "Key 1" |
/elektra/version/info | /elektra/version/info | "Key 1" and "Key 2" are equal |
/elektra/version/info | /elektra/data | no relation |
/elektra/data | /elektra/version | "Key 1" and "Key 2" are siblings |
You can think of the key hierarchy (within a single namespace) as a big tree of keys. Each node in the tree is a single key K
and the children of the nodes are the keys that are directly below K
.
The diagram above shows the key hierarchy of the keys in the table above (A
-> B
denotes A
is directly below B
).
Note: While we could use the directory vs. file terminology for Elektra as well, it is recommended to avoid it. This is because in Elektra, every key may have an associated value. In particular a key may have a value, even if there are other keys below it. This value is not, as a beginner might suspect, the set of keys below it, like you could say the value of a directory is the set of files (and directories) within. The value is just another value, like any other key would have.
Instead, we recommend the terms leaf key and non-leaf key, as these are commonly used for tree-like structures and their definitions fit perfectly.
As an inverse to "is below" we sometimes use "parent". For example:
/elektra/version
is directly below /elektra
, so /elektra
is the (direct) parent of /elektra/version
/elektra/version/info
is below /elektra
, so /elektra
is a parent of /elektra/version
/elektra/version/info
and /elektra/version
are below /elektra
, so /elektra
is the common parent.This terminology can be easy to confuse, as "parent" is used for multiple different things. If the context doesn't make it clear what "parent" means, you might consider more clear terms, e.g. other common terms for tree-like structures. For example, you could use "ancestor" and "direct parent" as a clear differentiation.
There is also the term "(the) parent key". In many cases, this is refers to a very specific key in the given context that is a "common parent" to a certain set of keys. If you are working within such a context, be careful about "a parent key" vs. "the parent key".
We mentioned above that there are different namespaces in Elektra. Now we will explain their meaning.
To recap, Elektra knows these namespaces:
We mentioned above that there are key names with zero key name parts, i.e. just namespace. These are called root keys (based on Unix's filesystem root, as well as the root of a tree).
Let us explore them one by one:
KeySet
.There is also a certain ranking between the namespaces "proc", "dir", "user", "system" and "default". Namely, that they override each other in exactly this order. Given two key names with identical key name parts, but one with namespace "dir" and one with namespace "user", the one with namespace "dir" should be considered more specific and should be preferred.
A special feature of Elektra is namespace resolution. Namespace resolution is the process of finding an appropriate namespace for a key based on a key name with namespace "cascading". It is most commonly used, when you need to find which key in the KDB should be used, based on a series of key name parts.
To resolve the namespace, we just look at each of the namespaces in the ranking defined above. We then use the first namespace where the key actually exists. Namespace resolution is performed, when ksLookup
/ksLookupByName
is called with a key name with namespace "cascading" [2]. This is also done, if you call kdb get
or kdb set
with a key name with namespace "cascading".
The standard way to represent a key name in Elektra is this:
This can be deconstructed into:
system
:
/
elektra
/
version
/
info
Note: It might seem strange, that there is a part separator before the first part. This makes sense, because then the part separator always introduces a new part. A better fitting description would be "part introducer". But since we commonly call
/
a separator, we will stick to this terminology.
For keys in the namespace "cascading", we omit both the namespace itself and as well as the namespace separator:
We also have a special rule for the root keys, i.e. the key names with zero key name parts and just a namespace. According to above rules system:
would be the escaped name of the root key for the namespace "system" and the escaped name for the root key of the namespace "cascading" would be an empty string. But this is not the case. We use system:/
and /
instead. The exact details will be explored later, but for now just remember, that an (escaped) key name always contains at least one part separator (/
).
But there is a problem. We said a key name part is "an arbitrary sequence of non-zero bytes". This means "elektra/version" is a key name part as well. Since the slash /
would conflict with the part separator, we can escape it with a backslash \
(and \
can be escaped with another \
):
This can be deconstructed into:
/
elektra/version
/
info
back\slash
Note: When talking about a single key name part
/
and\
are never escaped.
Because of this escaping mechanism, we call this the escaped name of a key.
Elektra's key names are designed to mimic Unix paths to some extent. To this end we support the commonly used /.
and /..
. This is one reason, why we need to differentiate between canonical key names and non-canonical key names.
Following the syntax of Unix paths, in Elektra both /elektra/./version
and /elektra/version
refer to the same key. Similarly, /elektra/../version
and /version
refer to the same key.
To give each key a unique key name, we need to introduce a canonical (escaped) key name. For Unix paths, we could say that the canonical path is the shortest possible path that refers to a file. In Elektra this doesn't quite work, but will use this definition for now.
Note: Only escaped key names can be canonical or non-canonical, so we normally omit the "escaped" specifier.
Let us look at a few examples to get a feeling for canonical and non-canonical key names.
| Non-canonical | Canonical |
|---|---|
/elektra/./version | /elektra/version |
/elektra/../version | /version |
/elektra/.././version | /version |
/elektra///version | /elektra/version |
/elektra//../version | /version |
/elektra/./../version | /version |
/elektra/../../ | / |
user:/elektra/../../ | user:/ |
/elektra/version/ | /elektra/version |
As you can see, the behavior of .
and ..
matches that of Unix paths as long as we are using the namesapce "cascading". The namespace of a key name can never be changed via ..
, so user:/..
is equivalent to user:/
.
There is also a small difference in the last example. In Unix such paths would also refer to the same file, but in some Unix tools a trailing slash alters the behavior of the tool. In Elektra this is never the case. /elektra/version/
and /elektra/version
refer to the same key and are always treated as the same key name.
The only exception are the root keys. The canonical key names for the root keys always end with a /
. In fact, we will see later, that removing the /
makes the key name invalid.
There also is a completely new addition in Elektra. Elektra has a notion of array parts. These are key name parts that denote an array index. How exactly these work, will be explored later. For now, we only need to know that they start with an #
and their canonical form has n
underscores followed by n+1
digits.
A few examples for array parts:
| Non-canonical | Canonical |
|---|---|
/elektra/#10 | /elektra/#_10 |
/elektra/#1234 | /elektra/#___1234 |
We already know, that /
and \
have to be escaped in an escaped key name. In addition to these two, there are a few more characters that have to be escaped. However, these additional characters may only be escaped under certain conditions.
The characters in question are: .
, #
, %
. The conditions under which these characters can be escaped can be found below.
While the escaped name of a key is nice for humans, it is not very well suited for machines. The escaping of path separators makes it hard to find the key name parts of a given key name. The escaped name is also not well suited for sorting [3].
Both of these flaws are solved by the unescaped name. In unescaped names we use a zero-byte as the part separator. Since a key name part cannot contain a zero-byte, we do not need an escaping mechanism for the path separator.
However, these zero-bytes mean that the unescaped name is not a printable string and therefore not human-readable. This why we will only describe the unescaped name in the deconstructed form.
The escaped names from above correspond to the following unescaped names:
system:/elektra/version/info
0x07
0x00
elektra
0x00
version
0x00
info
0x00
/elektra/version/info
0x01
0x00
elektra
0x00
version
0x00
info
0x00
/elektra\/version\\/info
0x01
0x00
elektra/version\
0x00
info
0x00
/
:0x01
0x00
0x00
Note: We use 0xZZ to represent a single byte in hexadecimal. This form is only used when the context makes it clear that it represents a single byte and not a four character string.
The process of turning an escaped name into the corresponding unescaped name is called unescaping. Turning an unescaped name back into an escaped name is called escaping.
Unescaping works, by simply removing the backslashes \
that are used as escapes. This applies both to \/
and \\
anywhere in key name parts, as well as to the escape sequences that are only used at the start of key name parts, e.g. \#
.
Not all of the key names described by the above sections are valid under all circumstances. You might also say, that a key name as defined above does not necessarily refer to a key in the KDB. So while it might be a key name, there is no key that actually uses this name. Only valid key names refer to a key in the KDB and may be used by a key as its name. The remaining key names are referred to as invalid key names.
For unescaped key names, it is pretty simple: Unescaped key names are valid key names, if all of the following are true:
0x01
- 0x08
.0x00
.0x00
.For this reason unescaped names for root keys are 3 bytes long, with the last two bytes being zero-byte. Between the second and the last byte, we find the key name parts separated by a zero-byte 0x00
.
For escaped key names it is easier to define, what makes an invalid key name, than what makes a valid key name, so we will go this route. An escaped key name is considered an invalid key name, if any of the following are true:
\
. This is a dangling escape as we expect another character after the escape character \
.:
is not followed by a /
. (This mainly applies to root keys.):
, but the substring before the first :
is not one of: meta
, spec
, proc
, dir
, user
, system
and default
./%
or consists of a namespace followed by the namespace separator :
followed by /%
. In other words, the first escaped part is translated into an empty unescaped part. The unescaped names for these keys would collide with the root keys /
, user:/
, etc.Note: The C-API does not allow you to construct a
Key
with an invalid key name; for examplekeyNew
(andkeyVNew
) will returnNULL
.
The escape sequences \\
and \/
are always valid. For the other escape sequences certain conditions must be fulfilled:
\.
: can be used at the start of a key name part, if the whole key name part is \.
or \..
. In other words, \
can be used to escape the behavior of .
and ..
.\#
: can be used at the start of a key name part, if the key name part would be a non-canonical array part without the \
. specifically, \#
can be used, if the key name part matches the regular expression \\#[1-9][0-9]+
and the digits form a number less than or equal to<PHONE_NUMBER>854775807 (= 2^63 - 1
). Meaning, \
can be used to avoid array part canonicalization.\%
: can be used, if the whole key name part is \%
. That is \%
is the escaped version of %
(the empty key name part).It may seem weird that some escape sequences have such specific requirements. This is necessary to create a 1:1 mapping between (canonical) escaped names and unescaped names. Without the restrictions, e.g. both \abc
and abc
would be unescaped as abc
. In addition, the conditions for \#
have to be so specific, because \
must only be allowed, if it affects unescaping. For example, we cannot allow \#abc
, because that would unescape into #abc
, just like #abc
.
As mentioned above, Elektra has a notion of array parts. More specifically, certain key name parts will be interpreted as array indices under certain circumstances (see also documentation for arrays).
We already mentioned above, that array parts have canonical and non-canoncial forms.
A canonical array part is a hash-sign #
followed by n
underscores (_
) followed by n+1
digits. Additionally, the digits must form a number greater than or equal to 0
and less than or equal to<PHONE_NUMBER>854775807 (= 2^63 - 1
). The number must not have any leading 0
s (except for the number zero itself).
In non-canonical key names, the underscores (_
) are omitted. That is, either the correct number of underscores is used or no underscores at all.
Any other key name part that starts with a #
is never an array part.
All key name parts starting with #
are valid. It does not matter, if the key name part is an array part or not. However, some parts of Elektra may expect array parts under certain circumstances. Providing other key name parts under such circumstances, may cause problems. If the context doesn't call for an array part, then array parts behave no different and are treated as plain string just like any other key name part.
Finally, some examples:
| Key name part | Behavior in array | Behavior elsewhere |
|---|---|---|
#0 | Index of first element | Child named #0 |
#_10 | Index of 11th element | Child named #_10 |
#_99 | Index of 100th element | Child named #_99 |
#__100 | Index of 101st element | Child named #__100 |
#abc | Possible error [4] | Child named #abc |
#_100 | Possible error [4] | Child named #_100 |
#__10 | Possible error [4] | Child named #__10 |
#10a | Possible error [4] | Child named #10a |
Apart from invalid key names, which cannot be constructed via the C-API, there are also reserved key names. These can be used with the C-API (keyNew
returns a valid Key *
), but there might be situations, in which Key
s with such key names are treated differently or rejected entirely.
Generally speaking, any part of Elektra may define that some key names have special meaning, are not allowed, etc. However, sometimes guaranteed compatibility with other parts of Elektra is required. A good example are storage plugins. A storage plugins should strive to be compatible with as much of Elektra as possible. But since the storage plugin doesn't know anything about other plugins or even the application using Elektra, it is hard to attribute special meaning to certain key names.
This is why there are two types of reserved key name:
system:/elektra
: These key names are reserved for Elektra's internals. Each of these keys has a very specific purpose that is defined globally for all of Elektra. Using such a key name automatically carries this meaning. Even outside the context in which Elektra uses these directly, you should never use system:/elektra
keys for other purposes.®elektra
: These key names are reserved, but their meaning depends on the context. Similar to the METADATA.ini file for metadata, some conventions for these key names are defined in reserved name document.Note: We use UTF-8 here, so
®elektra
is specifically the 9-byte sequenceC2 AE 65 6C 65 6B 74 72 61
.
Key
s with such key names will never be used in the interface between storage plugins and the rest of Elektra. This allows storage plugins to use ®elektra
to encode things that otherwise wouldn't be possible (e.g. values of non-leaf keys).
[1]: This explanation of Unix paths and Unix filesystems, is not entirely accurate. But it is good enough for our purposes, so we will just ignore some details. ↑
[2]: The actual process of resolution process that happens in ksLookupByName
and ksLookup
is a bit more complicated. It may involve some keys with namespace "spec" as well. ↑
[3]: For performance reasons, we want to make the comparison between to key names as fast as possible. A good solution is a single memcmp
. But this doesn't account for the fact that key names represent a hierarchy and that /
has a special meaning: /key/sub
should always be sorted after /key
and before /key.1
. With memcmp
, /key
is first, because it is the shortest and otherwise equal. But then we would get /key.1
not /key/sub
, because / < .
in ASCII. This cannot happen with zero-bytes as the separator, because there is no byte with a smaller value. ↑
[4]: We classify this as a "possible error", because not all parts of Elektra will fully validate all conventions and rules around arrays. In particular, a standard KeySet
itself imposes no restrictions. Therefore, you can use any KeySet
locally in your application. As soon as you pass the KeySet
into an external function (e.g. kdbSet
), however, errors may occur since the KeySet
may pass through a function that requires KeySet
which are properly validated against array rules. For more details what conventions and rules exist around arrays, see documentation for arrays. ↑


Get Started
What is Homebrew?
Homebrew usually refers to software that is not authorized by Nintendo. You can launch Homebrew on most Wii U system versions which will allow you to run homebrew games, backup and restore your saves, back-up and install games, and use emulators for various older systems.
Running homebrew on your console is 100% free using nothing but the system's browser.
What is CFW?
Custom Firmware (CFW) will enable you to install custom titles to your Home Menu, such as the Homebrew Launcher. This will allow for easier homebrew access.
CFW can be easily set up on any console in any region on the latest version.
What does this guide install?
This guide will take you from a stock unmodified Wii U, to a Coldboot Haxchi Custom Firmware installation.
What can I do with Custom Firmware?
Play any physical or digital game, regardless of region
Backup, edit and restore saves for your games
Use emulators to play games from older systems
Install custom VC titles to play older games (runs better than emulators usually)
Install custom homebrew titles to your Home Menu
Dump your physical games into a digital format which you can install to your Home Menu
What do I need to know before starting?
Every time you modify your Wii U, there is always a possible chance of bricking. It's rare, but it can happen.
You can install CFW using this guide on a Wii U on any firmware version and in any region
If everything goes well, you should not lose any data in the process
We recommend an SD Card of 16GB, 32GB or higher for dumping and/or installing games
Your SD card partition table should be MBR, not GPT.
If you want to format a new SD Card, you should use guiformat with an Allocation Unit Size of 64K.


Brian T. Rice
1511 S. Winthrop St.
Seattle, WA 98144
(206) 329-4048
<EMAIL_ADDRESS>Objective:
A position as a junior software developer that enables me to demonstrate and enhance my skills and experience in high-level languages and frameworks.
Skills:
- Languages:
- Proficient: Smalltalk, Common Lisp, C, Shell scripting, Java, Perl (v5), Python, PHP, C++, Objective-C, Pascal, Basic.
- Familiar: OCAML, Ada, Forth, Haskell, ProGraph, Oberon/Juice, Maude, Self, J, Clean, Joy, Cobol, PostScript, Tcl.
- Assembly & Machine Code: Intel 80x86 family and Pentium series, IBM PowerPC family, Motorola 6502 and 65c02, Motorola 68k, Sparc 9, Alpha, MIPS.
Environments:
Operating Systems: Windows 95/98/ME/NT/XP, Linux (RedHat, Mandrake, SuSE, Debian), FreeBSD, Solaris 8/9, MacOS 7.5-10.2.1.
Hosted Environments: Squeak Smalltalk, Lucid Emacs, Symbolics Genera.
C,C++,Java Development: Borland C++ IDE, Metroworks CodeWarrior, GNU C/C++, Eclipse IDE, Project and Interface Builder under MacOS X, KDevelop.


Google SPS
Filler Text
Facebook ABCS
Attended weekly development workshops geared towards enhancing knowledge of programming fundamentals, engaging with industry professionals, and ensuring career readiness.
Trusted American Insurance Agency
Help design and develop the UX to integrate multiple web apps for the purpose of streamlining the user’s workflow/business. Maintain an online store, with sales ranging from shippable items to web services and downloadable content.
Cornell University Pan-African Students Association
Responsible for designing, coding, and updating Cornell PASA’s official website, from layout to function. Strived to create an appealing site that features user-friendly design, clear navigation, and outstanding user experience.
The Coding Space
Utilized interactive computer games in the programs Scratch, Woof.JS, and Web Development for younger to enhance their understanding of game development. They created games using Scratch, Woof.JS, and Web Development to help them work through issues and brainstorm solutions


Version 1.0.20041003a
SoundManager is an object-oriented library/API which provides a Javascript interface to control sounds loaded in a hidden Flash movie.
A small Flash "stub" movie loads audio files with IDs as assigned by an external XML file. These sounds can then be controlled by the SoundManager Javascript API using predefined methods.
A sound is loaded into the Flash stub movie via XML such as:
<sound id="mySound" href="soundfile.mp3" />
This sound can then be played via the following Javascript: soundManager.play('mySound');
Refer to the test controls at right, or hit this simplified example page for a basic demo.
The following methods are defined under SoundManager:
soundID,loopCount
)soundID
, loopCount
times.soundID
: ID of the sound to be played, as defined in the XML configuration file.loopCount
: Number of times (default=1) to play the sound.soundManager.play('mySound');
soundID
)soundID
.soundID
: ID of sound as defined in XMLsoundManager.stop('mySound');
soundID,pan
)soundID
.soundID
: ID of sound as defined in XMLpan
: Integer from -100 to 100soundManager.setPan('mySound',-25);
soundID,volume
)soundID
.soundID
: ID of sound as defined in XMLvolume
: Integer from 0 to 100soundManager.setVolume('mySound',75);
A script include is required for the SoundManager API. A single Flash movie (.swf) provides the stub for loading sounds, and an XML file defines the sounds to be loaded and their corresponding IDs referenced within the API calls.
soundmanager.js
: API librarysoundcontroller.swf
: Flash "stub" loadersound-config.xml
: Flash sound/script ID definitionsThis functionality requires a browser with Javascript and Flash 6 support, and support for Javascript-to-Flash plug-in communication (see Macromedia's "Scripting with Flash" page for exact version and platform details.)
Testing has been done on the following:
According to Macromedia, looping of imported MP3 audio is not seamless. (Jerks.)
It appears that Javascript-to-Flash communication is not supported under ie:Mac due to the way the plug-in is compiled for the OS, so this type of scripted sound is not possible on this platform. Interestingly enough, it has been reported to work under Mozilla Firefox on Linux.
A mysterious beast at best, likely on the "unsupported" list in terms of JS-to-Flash communication.
Sound Object Reference - Actionscript.org
Macromedia TechNotes: "Why do my looping sounds pause between loops?
Sound Effects Tutorial (Dynamic MP3 loading via XML) - Sitepoint.com
The inspiration source for my initial experiments with JS-to-Flash communication back in 2001. Now a bit dated (and not compatible with Mozilla,) but still a good reference.
Code by Scott Schiller.
Schillmania.com: Personal experimental DHTML site
Scottschiller.com: Professional and technical experience portfolio


Codehaus XFire
DocumentationQuicklinksDevelopers
Sponsors |
Testing is of critical importance for any web service, yet it is often a pain to do. The class AbstractXFireTest is designed to help simplify this process. Creating Request MessagesTesting is a two step process. First you must create or gather some request messages for your service. These are often written by hand, but they can also be gathered with a tool such as SOAPScope or Apache Axis's TCPMon. To use TCPMon you must first generate some client code. This can be in .NET or Axis or GLUE or whatever. Then follow these instructions on the Axis website to set TCPMon up. Once that is set up, invoke the service with your client code and capture the message. Now every time you build your code you can verify that it does indeed function with a particular client (at least the request portion - the response is another animal). Take the messages that you have captured or written, and save them as files in your classpath (i.e. in src/test/your/app/Message1.xml). Testing and VerificationNext, create your unit test class. public class TestServiceTest extends AbstractXFireTest { public void testBeanService() throws Exception { Document response = invokeService( "Test", "/org/your/classpath/Message1.xml" ); addNamespace( "test", "urn:Test" ); assertInvalid( "//s:Fault" ); assertValid( "//test:Response", response ); assertValid( "//test:Response[text()='howdy']", response ); } } From the above, you see it is simply a matter of invoking the method "invokeService" where the first parameter is the name of the service and the second parameter is the classpath location of your xml message. The fun part occurs in the validation though. Using XPath we can verify that message contain or don't contain various elements, attributes, and text. In the first assertion, we verify that no fault occurred. In the second that the "test:Response" element exists. In the last instance, we assert that the element contains the text "howdy" (SOAP message often contain that word if you aren't aware). Also, be aware that assertValid() returns the Node that it finds which can be handy in some situations. There are other fun methods that you can use as well for testing. Lets say that your message needs to change throughout the test. There is a convenient little method called "setNode" that lets you set values on particular nodes: SAXReader reader = new SAXReader(); Document doc = reader.read( getResourceAsStream("/your/app/Message2.xml") ); setNode( doc, "//m:SomeId", m.getId().toString() ); Document response = invokeService("TestService", doc); Here we're reading in a document on the classpath, then we set the node which matches "//m:SomeId" to the id that we desire. We get out the response and can test to our hearts content. |


public class Hoop extends Collideable
| Modifier and Type | Field and Description |
|---|---|
(package private) boolean |
collided
collided - boolean used to store whether or not the dolphin has collided with the hoop hitbox
|
(package private) java.awt.Image |
imageLeft
imageLeft - Image used to store the left side of the hoop
|
(package private) java.awt.Image |
imageRight
imageRight - Image used to store the right side of the hoop
|
(package private) double |
speed
speed - double used to store the speed of the background so the hoops move accordingly
|
(package private) int |
temp2
temp2 - int used to keep the hoop for a certain amount of time after it is created
|
(package private) double |
x
x - double used to store the x value of the hoop's location
|
(package private) double |
y
y - double used to store the y value of the hoop's location
|
hitBoxRadiusX, hitBoxRadiusY, hitBoxX, hitBoxY
| Constructor and Description |
|---|
Hoop()
Constructor used to create a Hoop object when wanted
|
| Modifier and Type | Method and Description |
|---|---|
int |
getCollisionStatus()
method used to return whether or not something has collided and what
|
void |
move()
Method used to move the hoops with the background
|
java.awt.Image imageLeft
java.awt.Image imageRight
double x
double y
double speed
boolean collided
int temp2
public Hoop()
Local variables:
e - IOException used incase of an IO error
Try Catch statements:
1st Try Catch used to ensure program safety incase image cannot be found
public void move()
public int getCollisionStatus()
Local variables:
t - double df angle between hoop and dolphin
px - double point x on hoop circumference that intersects with line from hoop to dolphin
py - double point y on hoop circumference that intersects with line from hoop to dolphin
rp - double radius from hoop center to point on circumference
d - double relative point, not absolute for pfx and pfy
Conditional statements:
1st if structure used to only check collision if it hasnt already collided
1st if structure in the 1st if structure used to return 1 if the dolphin collides with a hoop
getCollisionStatus
in class Collideable


Cookbook
From Kx Wiki
Contents |
kdb+ getting started
- Getting Started
- Frequently Asked Questions from the listbox
- Using Kdb+
- Reporting Bugs in Kx Products
- More about tables
- Programming Idioms
- Performance Tips
- Programming Examples
- Unit Testing
- Using disk logging
- Client-Server Programming
- Daemonizing q on Linux
- Customising the kdb+ webserver
- Running q as service on Windows
kdb+ dealing with big data
- Splayed tables
- Loading large csv files
- Splaying large csv files
- A load-balancing server
- Changing the scheme of a splayed table
- Temporal data
- Loading and Exporting with bcp
- Database partitioning with par.txt
kdb+ howtos
kdb+ foreign language interfacing
- Interfacing With C
- Extending With C
- Interfacing With Java
- Using kdb+ with Eclipse
- Integrating With Python
- Interfacing With Scala
- Interfacing With C#
- Managed ADO.Net provider for kdb+
- Interfacing With LAPACK, Cephes and FDLIBM
- Integrating With Excel
- Integrating With J See Also Jwiki/Interfaces
- Integrating With Matlab
- Interfacing With ODBC
- Interfacing With Perl
- Using kdb+ with Netbeans
- Integrating With R
- Integrating With Fortran
- Mathematica
- Interfacing With Flex
- Interfacing With GPUs
- IPC Protocol and Message Format
kdb+ utilities
- Studio for kdb+
- Q By Examples
- Q Compared to Other Languages
- user-contributed code
- dotz, Using Modified .z Functions
- Compacting hdb sym enum files
- cmd.exe replacement for Windows users
- Babel for kdb+
kdb+ references
- Function Reference
- Command Line Reference
- System Commands Reference
- Data Types Reference
- .Q Unreference
- .h Unreference
- -! Unreference
- Common errors
- q idioms - after E. McDonnell's k idioms
- Boolean Shifts and Scans
- Pivot Tables
- Joins
kdb+ miscellaneous
- Corporate Actions
- Authentication And Access Control
- File Compression
- Timezones and Daylight Saving Time
- kdb+ under inetd/xinetd
- chained tickerplant and rdb for kdb+tick
- write only alternative to rdb for kdb+tick
- different ways of working with kdb+tick
- Unicode
- Comparison Tolerance
- IPC in a nutshell
- Websockets
- log4q
- MultithreadedInputMode
- Regular Expressions (regex)
kdb+ release notes / change list
- full change-list at kxdownloads.com


Before Change
self.ndim += var.dsize
shape = var.dshape
end = self.ndim
self.vmap[var] = VarMap(var.name, slice(begin, end), shape, var.dtype)
self.replacements = dict()
for v, (name, slc, shape, dtype) in self.vmap.items():
// slice is taken only by last dimension
After Change
)
// I do some staff that is not supported by standard __init__
// so I have to to it by myself
self.ordering = object.__new__(ArrayOrdering)
self.ordering.vmap = []
self.ordering.dimensions = 0
for var in self.group:
var = get_transformed(var)


Hash
Interface
Interface for cryptographic hash functions.
The update method is used to add data to the hash. The digest method
is used to extract the message digest.
Once the digest method has been called no more data can be added using the
update method. If update is called after the first call to digest a
HashException is thrown.
If multiple instances of a given Hash is needed the newInstance
method can provide a new instance.
Subinterfaces
SHA1, SHA256, MD5
Methods
Code
int get blockSize() #
Block size of the hash in bytes.
int get blockSize();
Code
List digest() #
Finish the hash computation and extract the message digest as
a list of bytes.
List<int> digest();
Code
Hash newInstance() #
Returns a new instance of this hash function.
Hash newInstance();
Code
Hash update(List data) #
Add a list of bytes to the hash computation.
Hash update(List<int> data);


If you are already a member, please login with your Email Address and Password (that you filled in at time of registration).
OR
If you are not already a member, we invite you to join.
How it works
View profiles and details of tutors for Home Tutoring or Online Tutoring and select the tutor you want.
ORGive us your learning needs and our staff will quickly find the right tutor for you from our large base of tutors.
You don't pay for your first session with an Eduwizards tutor unless you are fully satisfied. For any support, customer care is available 24x7.
If you are already a member, please login with your Email Address and Password (that you filled in at time of registration).
OR
If you are not already a member, we invite you to join.
How it works
We connect tutors to students in their area for Face-to-face home tutoring. This tutoring can take place at student's home or tutor's home.
There are no charges to sign up and to have your submitted profile approved and be listed as a tutor on our website.
We do not charge tutors until they get paid by students for tutoring sessions. Our basic model is to keep a percentage of the tutor's earnings as a "transaction fee".
We are looking for tutors for all Levels and Subjects, including School/College and Entrance Exam preparation.
We also have the additional option of Online Tutoring. Tutors who have broadband internet with power backup can also do Online Tutoring from home. If online tutor also has Excellent English and Neutral Accent then tutor can also give Online Tutoring directly to USA and other international students, and charge in U.S. Dollars.
When submitting your information you will be able to make choices for what kinds of tutoring you want to provide. For any questions, please email itutor@eduwizards.com


4. WLAN step by step¶
The WLAN is a system feature of the WiPy, therefore it is always enabled
(even while in machine.SLEEP
), except when deepsleep mode is entered.
In order to retrieve the current WLAN instance, do:
>>> from network import WLAN
>>> wlan = WLAN() # we call the constructor without params
You can check the current mode (which is always WLAN.AP
after power up):
>>> wlan.mode()
Warning
When you change the WLAN mode following the instructions below, your WLAN connection to the WiPy will be broken. This means you will not be able to run these commands interactively over the WLAN.
- There are two ways around this::
- put this setup code into your boot.py file so that it gets executed automatically after reset.
- duplicate the REPL on UART, so that you can run commands via USB.
4.1. Connecting to your home router¶
The WLAN network card always boots in WLAN.AP
mode, so we must first configure
it as a station:
from network import WLAN
wlan = WLAN(mode=WLAN.STA)
Now you can proceed to scan for networks:
nets = wlan.scan()
for net in nets:
if net.ssid == 'mywifi':
print('Network found!')
wlan.connect(net.ssid, auth=(net.sec, 'mywifikey'), timeout=5000)
while not wlan.isconnected():
machine.idle() # save power while waiting
print('WLAN connection succeeded!')
break
4.2. Assigning a static IP address when booting¶
If you want your WiPy to connect to your home router after boot-up, and with a fixed IP address so that you can access it via telnet or FTP, use the following script as /flash/boot.py:
import machine
from network import WLAN
wlan = WLAN() # get current object, without changing the mode
if machine.reset_cause() != machine.SOFT_RESET:
wlan.init(WLAN.STA)
# configuration below MUST match your home router settings!!
wlan.ifconfig(config=('<IP_ADDRESS>', '<IP_ADDRESS>', '<IP_ADDRESS>', '<IP_ADDRESS>'))
if not wlan.isconnected():
# change the line below to match your network ssid, security and password
wlan.connect('mywifi', auth=(WLAN.WPA2, 'mywifikey'), timeout=5000)
while not wlan.isconnected():
machine.idle() # save power while waiting
Note
Notice how we check for the reset cause and the connection status, this is crucial in order to be able to soft reset the WiPy during a telnet session without breaking the connection.


Elon Musk says thousands pre-ordered Tesla Cybertruck
by WABCSAN FRANCISCO -- Tesla's CEO Elon Musk says at least 200,000 people want the new Cybertruck after unveiling it on Thursday at the company's design studio in Southern California.
Tesla's new futuristic-looking pickup truck was inspired by James Bond's car and fighter jets and does not look like any other heavy pickup in the market.
During the unveiling, Tesla demonstrated the truck's durability by throwing metal balls at the truck.
To Musk's surprise, the balls left cracks on the window but did not penetrate through to the interior.
Despite the unbreakable windows that broke, Musk tweeted updates about the car's pre-order, revealing "200K" people have joined the list by Sunday.
You can get on Tesla's Cybertruck reservations list by paying a $100 refundable deposit.


Joey Essex nearly ate leaves during I’m A Celebrity amid 2.5st weight loss
Joey Essex has revealed just how hard it was existing just on one small meal of rice and beans a day on I’m A Celebrity.
As the 2019 cohort got to grips with the Australian jungle after landing in the bush last night, Joey of the jungle opened up on his own time.
The Towie star placed fourth in the 2013 series of the ITV show and admits the hardest part was the lack of food.
Advertisement Advertisement
In fact, he came close to eating the wild vegetation in order to cure the hunger pangs, as he saw his weight plummet during his time.

‘I was about to start eating leaves. I lost about 2.5st over three weeks.’
While he became super lean over the weeks, he added their meal of rice and beans once a day was the norm as campmates failed to win enough challenges to enjoy the cooked meals the Dingo Dollars provide.
Speaking about this year’s gang of contestants, the panel joked James Haskell would be eating five chickens a day, as Joey said: ‘He’s going to struggle, he looks like a big eater.’
Last night the contestants were tasked with jumping out of a helicopter and scaling a skyscraper to talk along a plank.
Not for the faint of heart.
For the reality star, though, Joey admitted that first challenge goes by in a whirlwind.
‘Everything is so unexpected, from the minute you leave, you look back and you’re on the boat, the next moment you’re jumping out of the helicopter,’ he reminisced.
‘It’s all a bit of a whirlwind, you don’t know what’s going on.’
Advertisement Advertisement
And he’s pretty proud of Caitlyn Jenner’s guts, who, to Joey, ‘don’t look scared at all jumping out of the helicopter’.
You can brave Keeping Up With The Kardashians, you can jump out of a chopper.
‘Jumping out of the helicopter was something else, I would never do it again…unless I was pushed,’ Joey continued to muse.
‘You’re on TV, million people watching, can’t mug myself off can I?’
Loose Women returns 12.30pm on ITV and I’m A Celebrity continues tonight 9pm on ITV.
Got a showbiz story?
If you've got a story, video or pictures get in touch with the Metro.co.uk Entertainment team by emailing us<EMAIL_ADDRESS>calling 020 3615 2145 or by visiting our Submit Stuff page - we'd love to hear from you.


From Spice
TODO: merge / update from http://www.linux-kvm.org/page/WindowsGuestDrivers/UpdatedGuestDebugging
Contents |
How to build the driver
Repository or sources available from the repositories
You need spice-protocol checked out under directory common, and to set an environment variable (can be done globally or just in the build shell):
set SPICE_COMMON_DIR=c:\common\spice-protocol mkdir c:\common cd common git clone git://anongit.freedesktop.org/spice/spice-protocol git clone git://anongit.freedesktop.org/spice/win32/qxl rem install the winddk 7600.16385.0 rem start the checked environment (or the free one) - this is the contents of rem the relevant shortcut that winddk creates (for a specific instance, i.e. rem x86 WXP checked). rem C:\WINDOWS\system32\cmd.exe /k C:\WinDDK\7600.16385.0\bin\setenv.bat C:\WinDDK\7600.16385.0\ chk x86 WXP
cd qxl build -cZg
Detailed Instructions: Build QXL on Windows 7 64 bit
Prerequisites
Checkout QXL drivers. The latest include 64-bit although it says "32-bit"
- git clone git://git.freedesktop.org/git/spice/win32/qxl
You should have 3 directories inside qxl directory: Display, Miniport and Include.
- Download Spice Protocol from http://spice-space.org
Bunzip2 --> spice-protocol-0.6.4.tar.bz2 --> copy "spice" folder where qxl_dev.h located to Display, Miniport folders. qxl expect headers to be in "spice" folder.
- Download latest version of WinDDK that support Windows 7.
http://msdn.microsoft.com/en-us/windows/hardware/gg487428
After installing the Winddk you will have to create new environment variable: Variable name: SPICE_COMMON_DIR with C:\qxl
http://www.itechtalk.com/thread3595.html
OR:
Open a Free Build x64 command prompt from the WinDDK
Type:
set SPICE_COMMON_DIR=c:\path\to\spice-protocol
Next:
Start --> All Programs --> Windows Driver Kits --> WDK 7600.16385.1 --> Build environment (pick your choice after this step) Windows 7 -> x64 Free Build Environment It will open a new DOS prompt for you to start building. (Make sure to use the "Free" and not "Checked", the "checked" is debug version)
Build
c:\WinDDK\7600.16385.1>cd \ c:\>cd qxl c:\qxl>build -cZg
It should create 2 new files for QXL driver: qxldd.dll and qxl.sys
The 3rd file: qxl.inf which is originated from QXL driver folder.
Signing
Follow the steps here on how to sign the driver with a test certificate:
1. MakeCert -r -pe -ss SpiceTestCertStore -n "CN=spice-space.org(Test)" SpiceTestCert.cer
2. CertMgr /add SpiceTestCert.cer /s /r localMachine root
3. SignTool sign /v /s SpiceTestCertStore /n spice-space.org(Test) /t http://timestamp.verisign.com/scripts/timestamp.dll qxl.sys qxldd.dll
Before installing the driver on the guest, call:
bcdedit.exe -set TESTSIGNING ON
Installing
I) Copying files ( assuming [3] below )
1. Open elevated command prompt
2. bcdedit.exe -set loadoptions DDISABLE_INTEGRITY_CHECKS
3. bcdedit.exe -set TESTSIGNING ON
4. Copy qxldd.dll to c:\windows\system32\
5. Copy qxl.sys to c:\windows\system32\drivers\
6. Reboot
II) Using Device Manager
1.Putting the signed drivers & inf file in a local (temp) folder.
2. Install it from Device Manager:
-> Display Adapters -> QXL/VGA -> Right-Click -> Update Driver Software -> Browse my computer for driver software (bottom) -> Let me pick from a list ... (bottom) -> Have Disk... (button) -> Browse (button) -> path-to-qxl-driver.inf -> OK -> Next -> Close -> Want to reboot ? Yes - must reboot after qxl driver installation.
III) using pnputil.exe
pnputil is built in to win7 and newer (it's in the default path).
pnputil -i -a qxl.inf
- if the driver is unsigned you still get the popup red bordered dialog requiring confirmation of installing an unsigned driver.
IV) Using nsis - see http://nsis.sourceforge.net/Driver_installation_and_update
Also TODO.
Troubleshooting Installation
Code 52
Windows cannot verify the digital signature for the drivers required for this device.
The driver certificate chain isn't rooted in a trusted certificate. This is expected since these drivers have not passed WHQL. You need to answer "yes" to the big red dialog that says you should not say yes.
Generic Advice
(How is this different then debugging? this is for installation errors)
Installation can fail for many reasons:
- signature lacking
- newer version driver and you didn't force usage of your driver
Writing detailed procedure is ToDo, but for information collection purposes you should look for setupapi logs:
windows xp:
- c:\Windows\setupapi.log
windows 7:
- c:\Windows\inf\setupapi.dev.log
In both cases it is helpful to:
- delete / rename the current log file
- do the install/update again (which fails)
- send as attachment / fpaste and put on irc the resulting log file
Debugging
Nice to have rant
Unlike the nice virtio drivers we don't have an option to enable logging in the guest from device properties (yet). (what we do have is the option to log to the host via an io port, QXL_IO_LOG, which is neat too).
qemu options to turn on
guestdebug
The driver reads a guestdebug parameter from the rom, that is settable during the creation of the machine (we used to have a monitor command but it was dropped during upstream, yet another todo). This uses the QXL_IO_DEBUG io out, so each debug print will cause a vmexit (in practice it's still way faster then a debugger. probably slower then having a logging mechanism in the guest like the nice to have rant above).
-global qxl-vga.guestdebug=3
And for any secondary cards either use:
-global qxl.guestdebug=3
Or set it via the device:
-device qxl,guestdebug=3
You can go up to 12 (or more, look for DEBUG_PRINT in the driver), you get really a lot of debug information. Interesting values are:
- 3 - will give you all the highlevel commands (DrvCopyBits, DrvBitBlt, etc.)
- 6 - will also show QXLGetBitMap
- 11 - will show caching of images (this is a driver cache, not to be confused with the server<->client shared cache).
cmdlog
This will dump all the commands passing through the ringbuffer on the device side. It is driver and hence guest agnostic. Defaults to 0. Just two values, 1 to enable, 0 to disable.
-global qxl-vga.cmdlog=1
Random notes
Notice that sometimes the driver gets uninstalled when you kill a vm uncleanly (not a shutdown), via the restore mechanisem of windows 7 in the next reboot (it returns to a last known working configuration).
Debug Cycle
This is the way I debug the driver right now:
Setup:
- have a build vm with ddk installed. (update: winddk works with wine, except for makecert, so all of this can be done from linux with wine).
- have a checkout of the source on my linux development machine (which also hosts the vms and runs the clients)
- have a samba share with the sources.
- have that share visible to the build vm.
You can install the drivers from a running vm, but since they tend to give you bluescreens during development, and since you need a reboot to get the new ones anyway, the following flow works for me:
Update driver work flow
- host: (using \$EDITOR): update driver code
- host: update revision of driver (see [1] below)
- buildvm: build vm (I use [4] script)
- while not build successfull:
- host: update driver code
- buildvm: build driver
- host: take down test vm
- host: update test vm drivers (see [2] below, and note [3])
- host: start test vm
- testvm: test your new code
[1] - update revision scriptlet
#!/bin/bash TAG=`date +%Y%m%d_%H%M%S` for f in miniport/qxl.inf miniport/qxl.rc display/driver.rc; do sed -i -e "s/alon\..*/alon.$TAG\"/" $f done
[2] - update driver scriptlet
#!/bin/bash guestfish <<_EOF_ add /store/images/win7x86_qxl_tests.img lcd /store/images run mount /dev/vda2 / upload /store/shared_win/spice_upstream/qxl/install_win7/qxldd.dll /Windows/System32/qxldd.dll upload /store/shared_win/spice_upstream/qxl/install_win7/qxl.sys /Windows/System32/drivers/qxl.sys checksum md5 /Windows/System32/qxldd.dll checksum md5 /Windows/System32/drivers/qxl.sys _EOF_ md5sum /store/shared_win/spice_upstream/qxl/install_win7/qxldd.dll md5sum /store/shared_win/spice_upstream/qxl/install_win7/qxl.sys
[3] This assumes you have installed a version of the drivers using the normal installation procedure first. because that script doesn't do anything except replace the existing qxldd.dll and qxl.sys, so it doesn't touch the registry.
[4] build script on the build vm (this one builds the win7 checked drivers) (it goes with [2] above which reads the new drivers from that directory)
cd miniport
build -cZg
cd ../display
build -cZg
cd ../
copy display\objchk_win7_x86\i386\qxldd.dll install_win7
copy miniport\objchk_win7_x86\i386\qxl.sys install_win7
copy miniport\qxl.inf install_win7
copy display\objchk_win7_x86\i386\qxldd.pdb install_win7
copy miniport\objchk_win7_x86\i386\qxl.pdb install_win7
Running WinDBG
setup:
- target vm: running windows and the driver under development, setup for kernel debug
- windbg vm: running any windows version with windbg
connection via emulated serial port over
- target vm qemu command line: (it will open the windbg vm's tcp port, i.e. be a tcp client)
- qemu... -serial tcp:<IP_ADDRESS>:4442
- To debug boot process start it in suspended mode with a stdio monitor interface (you could also automate this with qmp, left as an exercise for the reader) and wait until you connect with windbg before executing 'cont' on the monitor.
- windbg vm qemu command line:
- qemu ... -chardev socket,id=test,host=localhost,port=4442,server,nowait -monitor stdio -device isa-serial,chardev=test
If the target is winxp:
- edit c:\boot.ini, place the following contents:
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows XP Professional (Debug COM1)" /noexecute=optin /fastdetect /debug /debugport=COM1 /baudrate=115200
WDDM debugging
Debugging user mode dll
using windbg, attach / run tester
help
- .hh xxx
load symbols
- symsrv*symsrv.dll*c:\symbols*http://msdl.microsoft.com/download/symbols
- .reload /f /d
list loaded modules
- lm t n
go
- g
restart
- .restart /f
stack backtrace
- kb
registers
- r
display ascii
- da
unassamble
- u
- uf CreateDXGIFactory
breakpoints
- bp qxlum.dll!OpenAdapter10
break on loading of user mode dll:
- sxe ld:qxlum.dll
- step until next call: pc
- step over: p
- step into: t
- step out: gu
HCK
Microsoft has a test suite for drivers, actually passing the tests is mandatory. Installing the whole test suite takes a lot of time/space but there is an alternative of running the tests from the command line.
- [http://msdn.microsoft.com/en-us/library/windows/hardware/dn265574%28v=vs.85%29.aspx How to run the HCK Test Suites in WDK 8.1}
- How to test a driver at runtime from a Command Prompt


IMPORTANT: Development is paused right now. Use at your own risk.
Discussion and questions about HyperDEX atomic swap powered decentralized exchange. The project is maintained by HyperDEX team.
100 messages
Before 05-Dec-19 12:00 AM
jl777c25-Jun-18 09:07 PM
for XVG and the like check network status and trade in increments
Deleted User25-Jun-18 09:07 PM
Same risk as with centralized exchange: attack means your funds are in trouble
mv25-Jun-18 09:08 PM
Yes
jl777c25-Jun-18 09:08 PM
there is no magic
if you are swapping a chain that is insecure, then that insecurity becomes part of the process
dan.25-Jun-18 09:08 PM
the onus is on the other blockchain
ComputerGenie25-Jun-18 09:09 PM
Responsible trades? who does that?
All my trades are lazily scripted
jl777c25-Jun-18 09:11 PM
you arent trading 50 BTC worth of coins per swap
ComputerGenie25-Jun-18 09:12 PM
no, I'm much too cowardly for that
last time I traded more than a pseudo of $10k the markets jumped the other way and I would have made another $5k the next day
mv25-Jun-18 09:16 PM
If we prefer a world of decentralized swaps, then in the long run we do want to be able to handle 50 BTC swaps. If I'm a car dealer, I want to be able to accept payment in, say, Verge, and deliver the car the same day. That probably means I have to be able to swap the payment into whatever funds are accepted by the factor who has loaned the money to buy my inventory.
dan.25-Jun-18 09:20 PM
The protocol is tight. The only scary thing for me would be waiting for refund if the swap got stuck using large amounts. Even though I've gotten back 100% always.(edited)
that fact james is throwing around that much vol means he trusts it too
ComputerGenie25-Jun-18 09:25 PM
I've had to go back through some of my old testing swaps to get refunds, but I've never not gotten back 1/2 of the trade; be it my 1/2 or the 1/2 I wanted, I've always gotten a right amount
dan.25-Jun-18 09:25 PM
yeah, ditto, i forget the date, sometime in march, but anything pre march i had to double check my old swaps
ComputerGenie25-Jun-18 09:25 PM
and if you get a lucky bid war, yu get more than you want
dan.25-Jun-18 09:25 PM
but i did a few thousand after then, and was perfect
pre march i had to use params w/ swapstatus as the list file didnt have everything
proto26-Jun-18 03:34 AM
Hey guys, i remember long ago mention about pegged assets in barterdex, is it still a planned thing ?
blackjok3r26-Jun-18 03:41 AM
they were removed
it was an early feature of KMD.
proto26-Jun-18 03:48 AM
Ah ok
Jcharming26-Jun-18 04:42 AM
Is the hyperdex available to use for trading assets other than BEER and PIZZA yet or does the Barterdex still need to be used at this time?
GatewayBOT26-Jun-18 04:43 AM
[matrix] <blackjok3r:matrix.org> you can use hyperdex
[matrix] <blackjok3r:matrix.org> not sure if BEER/PIZZA are even working atm, as I took my bobs down, I ran out of money on my VPS account for the month
Jcharming26-Jun-18 04:45 AM
Thanks, is there a guide or tutorial for trading on hyperdex that you'd recommend I check out?
blackjok3r26-Jun-18 04:53 AM
I am not sure, but its pretty easy compared to barterdex
Just make a deposit and be patient, blockchains can be slow to confirm.
Jcharming26-Jun-18 04:54 AM
Thanks for the update @blackjok3r do you know what the latest hypdex release version is?
there was some recent updates to marketmaker back end, as far as I know they are not in HyperDEX so it might not function 100%.
you cant lose any funds tho, if trade fails you just need to wait 4h.
Jcharming26-Jun-18 04:59 AM
Thanks for the update! I have to swing by #deleted-channel first I just updated to 2.4 beta and I"m getting a connection error starting in lite mode I figure someone will know there.
blackjok3r26-Jun-18 05:01 AM
pretty much use cli only here. I think htere is a few messages in there already, just scroll up, you might find answer
1
TomiDCat26-Jun-18 05:14 AM
are btc network fees really like 6 dollars right now or is hyperDEX estimating wrong
maybe miners are trying to recoupe losses by chargeing more fees
ComputerGenie26-Jun-18 05:24 AM
not sure I count 1500 as "empty"(edited)
blackjok3r26-Jun-18 05:24 AM
well in scaling test the 64 chains are 1.5GB of mempool
clears in 20mins
ComputerGenie26-Jun-18 05:25 AM
all high BTC fees are voluntary
blackjok3r26-Jun-18 05:26 AM
welll the nature of competition mining should dictate that if you put a super low fee and the mempool is empty (or not full) that someone would mine it for you... unless all miners are in collusion... then we all fucked.
ComputerGenie26-Jun-18 05:27 AM
exactly. now, couple that with the fact that Bitcoin was never supposed to have fees for most use cases and only fees for large data transactions
the insanity of fees started with the 100k spam tx war over segwit/bigger-blocks
blackjok3r26-Jun-18 05:41 AM
it got to 200k there for a while... I wonder if anyone was using something like TxBlaster to spam it... I think thats doubtful, becasues they could have got it to millions of TX deep using that without much effort.
TomiDCat26-Jun-18 02:53 PM
do we have the option to send with a lower fee?
lukechilds26-Jun-18 03:08 PM
No
we just use the fee supplied by marketmaker
TomiDCat26-Jun-18 03:17 PM
seems excessively high
ComputerGenie26-Jun-18 03:18 PM
every reason to not use Shitcoin
*bitcoin
TomiDCat26-Jun-18 03:19 PM
cost 1.91 to send from agama which confirmed under 10 mins then 20 minutes later hyperdex is asking for 6 dollars for tx fee
lukechilds26-Jun-18 03:19 PM
HyperDEX doesn't have anything to do with the fee calculations, it's all handled by the marketmaker daemon
TomiDCat26-Jun-18 03:20 PM
understood
ComputerGenie26-Jun-18 03:20 PM
1) stop thinking of BTC fees in pseudo USD
2) blame Core devs, they created the estimatefee algorithm
lukechilds26-Jun-18 03:20 PM
HyperDEX seeds are compatible with Agama, so you could import it and send from there to get around it for now
TomiDCat26-Jun-18 03:22 PM
Okay but point being fees are higher than necessary regardless of semantics
@lukechilds thanks I can try that. Just trying to create UTXOs so I can get a swap to go through
ComputerGenie26-Jun-18 03:24 PM
Again, that's something you need to take up with the coin devs (Core created this by design)
TomiDCat26-Jun-18 03:25 PM
Ok but why is Agama able to estimate fees that are much lower?
ComputerGenie26-Jun-18 03:26 PM
Agama uses a flat fee and marketmaker uses a live fee to speed trades
different tools, different functions, different needs(edited)
When you send BTC as a currency, it matters less if it sits a block or 3.
When you trade BTC as a commodity, no one wants to wait an hr for a trade to complete.
TomiDCat26-Jun-18 03:30 PM
Doing a manual withdrawal needs to use speed trading why?
I understand the need for speed when trading within hyperdex but I am just trying to create UTXOs I have no issue waiting 5-10 minutes
ComputerGenie26-Jun-18 03:32 PM
It's key to understand that DEX isn't meant to be a wallet, and there are no "withdraws"
TomiDCat26-Jun-18 03:33 PM
Not going to pretend to be smart enough to understand the complexities of all of this but it seems like we are blaming core devs while we are using the wrong tool for the job
ComputerGenie26-Jun-18 03:34 PM
The point is to allow you to use funds from your private wallet to freely trade for some other CoinX
Use your wallet for wallet things and DEX for trade things and you'll be golden
TomiDCat26-Jun-18 03:34 PM
Not trying to be combative here
But creating UTXOs is something unique and new to me
When I have to mess around sending stuff back and forth to try and get a swap to go through I dont want to be paying excessive fees
I didnt think to try and use Agama to send to myself though so that is a way I can try that to bypass the fees
In the name of user friendly experience it seems like it would be possible to give them the option of using a lower fee if time is not important for a manual withdrawal
ComputerGenie26-Jun-18 03:39 PM
"it seems like we are blaming core devs while we are using the wrong tool for the job"
No, I'm placing "blame" estimate fee code on Core, because they wrote it. You asked why the fee is "high" and I responded specifically as to the difference.
Any wallet tools in DEX are meant for convenience and most coins don't suffer such an issue because their devs didn't code it to economically scale profits for miners.
TomiDCat26-Jun-18 03:41 PM
Ok I accept your answer as being truthful as well, just wondering if it cannot be better
ComputerGenie26-Jun-18 03:42 PM
"In the name of user friendly experience it seems like it would be possible to give them the option of using a lower fee if time is not important for a manual withdrawal"
The short truth is that marketmaker uses the same code for both; however, I'm sure that devs would welcome anyone writing a separate, low-fee routine for manual transfers...
TomiDCat26-Jun-18 03:45 PM
Ya I think that was the answer I was looking for
jl777c26-Jun-18 04:57 PM
"txfee" field can be passed into the marketmaker withdraw api
if it isnt, for BTC, mm calculates what should get confirmed in a block or two as that is needed for following the atomic swap protocol
not using the "txfee" field and letting m use the BTC stupidestimatefee api, well it is what it is
Deleted User27-Jun-18 04:09 AM
It shouldn't close if it's expecting me reading at human speed.
1
Deleted User27-Jun-18 04:37 AM
oh, the first message didn't make it.
i was saying, that when i close HyperDEX, a message appears "You have swaps in progre..." and it closes.
lukechilds27-Jun-18 05:10 AM
@Deleted User Can you report an issue with the "Feedback" button (top right) and we'll look into it.
Cypher28-Jun-18 11:50 AM
anyone around(edited)
?
this is the latest version of hdex in a vm
also dev tools still shows on boot of hdex
Cypher28-Jun-18 12:32 PM
@lukechilds
7rank28-Jun-18 01:11 PM
How do I view private keys?
lukechilds28-Jun-18 01:28 PM
@Cypher Dev Tools still show because it's still in alpha. The error is because marketmaker crashed, unrelated to the GUI.
Cypher28-Jun-18 01:30 PM
sure
however what is the first error
unhandled promise rejection
lukechilds28-Jun-18 01:32 PM
Hmmn, do you get it repeatedly or was it a one off?
also, can you go to Debug > Show app data and paste the contents of config.json


5 Day Weather Forecast
City:
Search
Saint Paul
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...


My name's Merisa and I'm a consultant based in Toronto! I was born and raised in Leamington, ON (aka tomato town). I consider myself an optimist and an ENFP at heart. I enjoy taking photos with my Canon 5D Mark IV, reading books and staying active with kettlebell workouts, climbing, running and bike riding.
I am passionate about technical consulting and data analytics. I love gaining insights from huge amounts of data and collaborating with both technical and business users. I also enjoy being creative in designing user interfaces and presenting data. I aspire to expand my skills while also making a big impact. I'd love to chat!
"Yesterday I was clever, so I wanted to change the world. Today I am wise, so I am changing myself." - Rumi
I bring my camera nearly everywhere I go. I occasionally do portrait and engagement photography and have also done a few weddings! I love my Canon 5D Mark IV and my side kick the Canon 5D Mark II.
Check out my photography website which I also built using Javascript, HTML, CSS and hosting on Github!
For our fourth year engineering design project, our group worked with a non-profit organization, My Oral Village to design and develop a suite of Android games to teach numeracy skills to people in Tanzania. Innumeracy has extremely direct consequences on the cash economy and a person's wealth and we ensured our designs were sensitive to our target audience.
I acted as the designer and developer, designing assets in Illustrator as well as developing in Android Studio.
This was a project myself and 3 classmates did for our final Info Systems and Design project. We created a web app that recommends food based on time, desires and price. We wanted an app for students like us that have troubles finding places to eat. Think of it as a Songza but for food!
Requirements for the project included data flow diagrams, normalization tables and other fun stuff.
This is some miscellaneous design work I've done in Illustrator and Photoshop!


--- layout: page title: About header-img: "img/about-bg.png" ---
I am 44 single dad of a 8 year old girl, decided to go back to school for a career change as I feel I am kind of burnt out in the IT field after 20 years, and wanted to do something challenging again.


| DOSE: |
4 drops |
oral |
Kava |
(liquid) |
Just thought I'd share a nice experiment. As many do, I occasionally enjoy smoking Marijuana. However, as I've gotten older I've found that I experience more paranoia or other types of mental discomfort when smoking, which is sometimes OK, but not as the rule.
At to counter those negative effects, I tried to drink some alcohol before smoking. This usually decreased the paranoia, but often left me too wasted and often I'd have a hell of a hangover the next day (I generally don't like alcohol...it hurts too much).
So I started to look around for a better way to remove the anxiety related effects of Marijuana and leave the pleasant effects. I started to read about Kava Kava and figured since it is often used as an anti-anxiety medicine and is freely available it might work well.
It does the trick. About 3-4 droppers of the standardized Kava does the job nicely. Available at most any vitamin type place for about $10 for a bottle, the standardized version apparently adheres to a European law that requires standard strengh. Thus I suggest that one to insure consistency of effect.
The normal dose is one dropper 3 times a day. I even though I use 3-4 droppers at once before smoking, I wouldn't advise using more in a day. I've read that over-use can cause skin irritations.
  One subtle side effect is that you may really want to sleep about 3 hours after this, but you'll wake up refreshed and rested for sure! This is a great approach for folks like me who are occasional weekend type users and just like to relax with a smoke now and again.
The Kava is handy for general anxiety too...feel stressed...no problem have some Kava alone and it'll help to calm your nerves.
Enjoy!
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.


Adjust background:
Download this button
-
Show me the code!
Text:
Code
To automatically generate this button in your java code, use the following code:


Woods selects himself as one of four captain's picks for US team
Tiger Woods on Friday selected himself as one of his four captain's picks to play for the United States in the Presidents Cup against the International team at Royal Melbourne from Dec. 12-15.
MELBOURNE: Tiger Woods on Friday selected himself as one of his four captain's picks to play for the United States in the Presidents Cup against the International team at Royal Melbourne from Dec. 12-15.
Woods will be the first playing captain since Hale Irwin led the U.S. to a 20-12 win in the inaugural event in Virginia in 1994.
Woods' other three picks are Tony Finau, Patrick Reed and Gary Woodland.
Here is the complete roster of the U.S. team including their playing records (wins, losses, halves):
Tiger Woods 24-15-1
Tony Finau debut
Gary Woodland debut
Patrick Reed 4-3-2
Dustin Johnson 8-4-2
Justin Thomas 3-1-1
Brooks Koepka 2-2-0
Matt Kuchar 6-8-2
Xander Schauffele debut
Webb Simpson 5-3-2
Patrick Cantlay debut
Bryson DeChambeau debut
(Reporting by Ian Ransom; Editing by Christopher Cushing)


Detect Parkinson's Disease
Patients with Parkinson’s disease have nervous system issues. Symptoms include movement issues such as tremors and rigidity. In this project, I've used OpenCV and machine learning to detect Parkinson’s disease from hand drawings consisting of spirals and waves.
METHODOLOGY
A 2017 study by Zham et al. found that it was possible to detect Parkinson’s by asking the patient to draw a spiral and then track:
- Speed of drawing
- Pen pressure
- Scikit-learn
- Scikit-image
- imutils
- Numpy
- OpenCV
- 83.33% accuracy for spiral.
- 71.33% accuracy for the wave.
Used Libraries
The researchers found that the drawing speed was slower and the pen pressure lower among Parkinson’s patients — this was especially pronounced for patients with a more acute/advanced forms of the disease. We’ll be leveraging the fact that two of the most common Parkinson’s symptoms include tremors and muscle rigidity which directly impact the visual appearance of a hand drawn spiral and wave. The variation in visual appearance will enable us to train a computer vision + machine learning algorithm to automatically detect Parkinson’s disease.
Results
After extracting features from the input images we trained a Random Forest classifier with 100 total decision trees in the forest, obtaining:
While Parkinson’s cannot be cured, early detection along with proper medication can significantly improve symptoms and quality of life, making it an important topic as computer vision and machine learning practitioners to explore.


Ingredients
1 serving
- 315g Chicken breast, cut into strips
-
2 tsp Cajun Spice
- 85g Broccoli cut into small florets
- 65g green pepper, sliced
- 70g red pepper, sliced
-
70g onion sliced
- 1 Clove garlic, diced
- 30ml tablespoon Soy sauce
- 2 tbsp Cholula hot sauce
-
A pinch of Splenda granules
- 18g coconut oil
Method
For sauce: In a small bowl add the garlic, soy sauce, Cholula and Splenda and mix.
For stir fry: Cut chicken into thin strips, season with Cajun spice and salt and pepper.
Heat a large frying pan/wok to medium to high heat, warm the coconut oil then add the onions and peppers, fry for 3-4 mins until softened. Turn up the heat and add chicken and broccoli, cook for a further 4-6 mins until chicken is cooked.
To serve: When chicken is cooked stir through sauce and serve immediately.
Tips: Add a splash of water to pan to create a little more sauce. Don’t feel afraid to experiment with spices. It won’t change the macro nutrients we are after.


---
layout: default
title: Continuous Integration and Deployment service for Windows, Linux and macOS
---
CI/CD service for Windows, Linux and macOS
Build, test, deploy your apps faster, on any platform.
- Start in minutes
- Works with any source control
- Fast build VMs with admin/sudo access
- Multi stage deployments
- Windows, Linux and macOS support
100,000+
Developers use AppVeyor
2,500,000+
Applications deployed
{% for benefit in site.data.benefits %}
{% endfor %}


{% load static from staticfiles %}
Discover and track events, groups, and work spaces in Richmond and greater Central Virginia.


Book Review: ‘A Man And His Mountain’ By Edward Humes
by Marisa D'VariKendall-Jackson is one of the most successful Chardonnay brands in the United States. Many credit its founder, Jess Jackson, with creating and popularizing the rich, buttery, oaky style of Chardonnay so many consumers adore.
In the book A Man and His Mountain: The Everyman who Created Kendall Jackson and Became America’s Greatest Wine Entrepreneur, author Edward Humes tells the story of how Jess Jackson created the Kendall-Jackson brand and popularized its Chardonnay wine.
But more than that, author Humes shows how the combination of imagination and fortitude, despite risks and downturns can result in success.
In the course of the book, people who are too young to remember the wine world of the sixties, seventies, and eighties will see how much wine styles and wine marketing have changed.
Jess Jackson: In The Beginning
Looking back roughly a half-century, it might be natural to assume that founder Jess Jackson had an easy time of creating the Kendall-Jackson brand. After all, he was a lawyer by profession and knew how to write and read a contract.
Jackson also had a vivid imagination an iron strong will. Despite this, executing his vision of KJ Chardonnay was a challenge.
From the very beginning, Jackson wanted to focus on creating a Chardonnay wine style that American consumers would embrace in large numbers.
He wanted “accessible” flavors with richness from malolactic fermentation (a winemaking technique that gives wines a softer, creamy aroma and texture). Knowing the delicious aromas and flavors of butter and toast aging in French oak barrique can give a wine, Jackson wanted his Chardonnay to be aged in French oak.
Finally, he wanted to make a wine from Chardonnay grapes grown in many diverse California regions. The reason was to give the finished wine a specific flavor profile that could be achieved year after year. This would give the wine complexity, as well as result in a consistent flavor bottle after bottle, vintage after vintage.
Jess Jackson as Salesman
Beyond orchestrating the style of Kendall-Jackson Chardonnay, sourcing grapes from different regions, and overseeing the winemaking team, Jackson also had to sell the wine.
At the time, consumers had two basic choices when it came to buying wine. Serious, mostly wealthy wine lovers gravitated towards French Chardonnay, mostly sold in fine wine stores. Mass market consumers could choose lower-priced wine on the shelves of supermarkets.
Popular wine labels at the time included names like Gallo Hearty Burgundy (even though it consisted of grapes from California), and Italian Swiss Colony.
In the book, author Humes details the struggles Jackson had in selling the wine. His big break came at New York’s famed Oyster Bar restaurant. With luck and his natural charm, Jackson was able to convince the owner to buy a case of KJ Chardonnay.
Another lucky break came when KJ’s tasting room assistant submitted the KJ Chardonnay to wine competitions. KJ won the first platinum award for American Chardonnay at the American Wine Competition.
Yet perhaps the luckiest break was when KJ Vintner’s Reserve Chardonnay was served at a 1982 White House Dinner. Nancy Reagan loved it, leading to a flood of publicity. Herb Caen, columnist for the San Francisco Chronicle, dubbed it “Nancy’s Wine.”
The 1982 vintage sold out, and the KJ Chardonnay was soon on its way to becoming America’s leading Chardonnay.
Author Edward Humes is to be congratulated for the way he recreated an era, and a man, with such vivid attention to detail. As you read this book, you will feel that you are right there with Jess Jackson sharing his joys and struggles as he founds his empire.


My name is Marcos Vanetta and I've been talking around about data journalism and stuff; here are my slides.


The 73rd uniform polyhedron is the Great truncated icosidodecahedron; it has Wythoff symbol 5/3 2 3|. Its dual is the great disdyakistriacontahedron. The pattern of polygons round each vertex is (10/3,4,6); its symmetry group is the icosahedral group A5.
It has:
Euler characteristic: 2
Density: 13
Number of vertices: 120
Number of edges: 180
Number of faces: 62 (=20 hexagons and 30 quadrilaterals and 1210/3).
Note: a polygon a/b means a shape made by taking a points and joining every bth of them; for instance 5/2 means a five-pointed star made by taking five points and joining every second point.


Bridge Weigh in Motion (BWIM) systems allow heavy goods vehicles to be weighed, without stopping, as they pass over a bridge. The vehicle's speed, class and weight distribution are all logged without any disruption to traffic.
BWIM is a tool for gathering engineering data and business intelligence: it quantifies the bridge's economic value and the physical demands placed upon it. A bridge's structural integrity and its economic viability depend on the volume, and the type, of traffic it supports; yet predicting traffic is notoriously difficult. BWIM measurements let planners and engineers re-assess their assumptions, update their models and revise their economic and maintenance strategies. With BWIM, informed decisions can be made about the need for maintenance, its scheduling and its consequences.
As well as passively monitoring the bridge, a BWIM system can also be used actively to manage the flow of traffic. Vehicles can be categorised in real-time: traffic can be filtered and tolled according to their vehicle class. Overloaded vehicles can be denied access to subsequent bridges. BWIM can actively protect the bridge network and increase its profitability.
In practice, of course, BWIM systems confront several challanges. The measured signals are relatively weak yet must be robust to long term drift and temperature variations. In longer bridges, the stress imposed by an axle is less localised, and the responses to consecutive axles may merge. This makes it difficult to resolve the individual axles and estimate the weight distribution of the vehicle. The system may have to operate in a harsh environment location with little infrastructure. PSP's iBWIM system is based on a robust, high quality embedded system designed to perform accurate and precise measurements. Advanced signal processing techniques are used at the server to condition the measurements give the optimal interpretation.
BWIM systems have one clear advantage over conventional Weight in Motion (WIM) systems: they are easy to install. Traditional WIM systems measure vehicles using sensors embedded in the pavement. Installing the sensors requires lane closures which may last weeks. Furthermore, cutting into the pavement introduces stress concentrators that may actually initiate cracks and weaken the bridge structure. BWIM sensors, in contrast, are attached to the underside of the bridge. Traffic is undisturbed by the installation, attachment points do minimal damage to the bridge and no gantry is required.
PSP's iBWIM system is implemented in two parts: a robust, cluster of lightweight embedded systems on site; and a remote server that processes the measurements. The on-site systems monitor the sensors, perform pre-processing and pass the data to the remote server. An embedded system requires much less on-site infrastructure that a PC based system. In fact, because iBWIM can run from a battery and solar cell for several weeks, the only infrastructure required is mobile network coverage.
The embedded system, or Spider, was designed for flexibility and robustness: it can accept a wide range of sensors and cable runs of up to 150m have been used. Each Spider can monitor 8 voltage based sensors and has an additional 2 current loop channels. If more sensors are required, up to 4 groups of 4 Spider units can be chained together to form a Local Area Network. The on-site embedded system connects to the remote server over a GSM link.
The remote server performs the bulk of the signal processing and analysis. By placing the computational burden on the server we are able to make effective use of the computational power. We are therefore able to use complex, computationally intensive data analysis algorithms and to quickly and easily optimise their settings for a given bridge. The server also handles data presentation. The customer can access the data and compile statistics with a secure, easy to use web page. PDF reports that are tailored to the customer's requirements can be periodically compiled.
When a vehicle passes over a bridge an event is reported to the server. How the event is processed depends on primary concern whether the aim is to model traffic flow, or the damage caused by heavy goods traffic on the bridge.
If structural damage is the primary concern, the frequency and severity of axle impacts and bridge harmonics must be quantified. The cumulative effect of these impacts is integrated into the bridge damage model. This model may be expressed as a curve showing the predicted economic value of the bridge as a function of time. This gives managers a useful tool for assessing the cost and benefits of undertaking repairs at various stages in the bridge's evolution.
If traffic flow is the major concern, the strain signal is processed to extract a vehicle description, i.e. the vehicle's speed, weight and axle distribution. This is then added into the traffic model; a historical record of traffic crossing the bridge. The client can now view the current status of the bridge; a description of vehicles that have recently passed over the bridge; up to date traffic statistics and a short term prediction of traffic volume based on historical data and the current status.
iBWIM can either be purchased outright for permanent installation, or leased for a short measurement survey. The duration of a survey depends on the bridge traffic: to obtain statistically significant results, around fifty thousand vehicle transits should be observed. For a primary road the entire process requires ten days: an observation period of seven days plus one day each for installation, calibration and de-installation. Railways and secondary roads require observation periods of between one and two months. Once a significant data set has been amassed, it is processed and analysed at a remote server.
Whether it is used as a permanent measurement station, or for a short survey, iBWIM produces a large mass of data. PSP’s experience of BWIM systems and traffic modelling helps us extract useful information from this raw data set. We work with our clients to define what information is relevant to the client’s needs. We then tailor our data analytics to extract statistics that can be readily understood and actioned.
For instance, by collating diurnal and weekly statistics, the optimal times to conduct maintenance and impose traffic restrictions can be found. For bridge managers concerned about structural damage imposed by cyclic and exceptional loads, analysis can be conducted over longer timescales and restricted to particular classes of vehicle.
How the results are presented to our clients also varies from case to case. In some cases, clients require formal reports every six months: in other cases, clients prefer information about bridge traffic over the last 24 hours or week to be available online. Once again PSP will tailor our solution to our client’s needs.
The iBWIM system is an integrated approach to monitoring heavy goods traffic. It can be quickly installed by PSP without disrupting traffic flow. It does not need external power and only requires mobile network coverage. Data is analysed and presented on a remote server. The current status of the bridge traffic, its long term statistics can be viewed by the client online. The impact of traffic on the bridge's condition and depreciation can be modelled.


About
This Project Has Been Created For The Purpose Of A School Project But Also To Provide Valuable Functions For The People To Help Them With Their Financial Needs


This is the UQCS Code of Conduct – the set of rules that govern the behaviour of members of the society
both in person and on our various online social platforms. Proposals for changes can be made through
the submission of issues to
this GitHub repository by members of the society.


WifiBot
WifiBot
The Wifibot M platforms are characterized above all by a great flexibility allowing the robots to be used in multiple environments and situations. The articulated mechanical design and their six wheel drive allow the Wifibot M to evolve outdoor over rough terrain and even overcome obstacles up to15cm high. The relatively small dimension and weight make it easily transportable while remaining suitable for all kind of uses and applications as they offer many expansion possibilities at different levels. Wifibot M Lab version include a very capable industrial board under Linux or Windows XP featuring a large choice of accessible interfaces like Ethernet, RS232, USB2, keyboard and mouse input, VGA output, and wireless networking capabilities (wi-fi), ideal for multi-robot applications. An IP camera, a battery charger and a robot control interface are included. Additional optional components such a GPS, IR range sensors or an ethernet-serial bridge can be integrated upon request.


-
errorLabel
javax.swing.JLabel errorLabel
This JLabel indicates whether or not an error has occurred
-
matchNo
javax.swing.JLabel matchNo
This JLabel indicates which match number the user is entering
-
player1Prompt
javax.swing.JLabel player1Prompt
This JLabel holds the prompt for the user to enter the first player
name
-
player1TextField
javax.swing.JTextField player1TextField
This JTextField takes in the first player name provided by the user
- See Also:
MatchDialog.getPlayer1()
-
player2Prompt
javax.swing.JLabel player2Prompt
This JLabel holds the prompt for the user to enter the second
player name
-
player2TextField
javax.swing.JTextField player2TextField
This JTextField takes in the second player name provided by the user
- See Also:
#getPLayer2()
-
submit
javax.swing.JButton submit
This JButton is the trigger to close the window and extract the user
provided data.
- See Also:
MatchDialog.submitActionPerformed(java.awt.event.ActionEvent)


{% comment %} Get collection that current page belongs to, then group each document by their sorted "category" field {% endcomment %}


Game Description: {{gameDetails.description}}
Type: {{gameDetails.type}}
Price: {{gameDetails.price}}
Choose Date:
Choose Location:
Please note that you may be able to pick up the game by 3pm of your selected date and must return the game by noon the next day.


Edward C Herlik
Unafffiliated
Self-Employed
BS in Engineering with Political Science double major. MA Political Science. Airline Transport Pilot.
80132
Volunteer in the effort to pass Y & Z. My other perhaps relevant efforts are all local, such as organizing volunteers to teach character and ethics at a university, organizing neighbors to mitigate against wildfire risks, and organizing neighbors to join the county approval process for a local commercial development.
I volunteered on two presidential campaigns and two congressional campaigns, all in Colorado and for both Democrat and Republican candidates. The last of those was in 2010. I have not donated money to any campaign or political organization since November 2015.
Service Academy BizNet Pikes Peak Region (local chapter of a military academy graduate service organization); Plains & Peaks Mensa (local chapter of a national service organization); Veterans of Foreign Wars (national fraternal and service organization); Fairways Homeowners Association (mandatory neighborhood association); Bent Tree Homeowners Association (mandatory neighborhood association)
Having worked to pass these amendments, I know they can only succeed if non-partisans continue that work. This is one of life’s ‘If not now, when? If not me, who?’ moments. I mean that, really. I earned two political science degrees and taught American Government to future military officers. That officer corps has a well-earned reputation for being the most trusted, least partisan group in our nation. That’s how I taught as well; non-partisan. The students still didn't know my political views at the end of the semester. That open minded approach attracted me to Y & Z. It’s also why I’ve been a member of both major political parties at various times in the distant past but have been unaffiliated for many years. This commission’s goal of ending gerrymandering in Colorado is critical to our democracy and will be a model for our republic. That’s well worth doing; it’s well worth a citizen’s time and effort.
I have an acute sense of fairness. I support the underdog and resist bullies. At the most basic level, that’s why Americans with much talent and many options choose to serve our nation in various military and civilian capacities rather than follow easier, more lucrative paths. I’ve also been a partner in a small data analysis firm, following facts where they led. That background is certainly relevant to demographics, census data, affiliations such as minority groups, etc. I believe such experience and qualities will be common among the commissioners and so will contribute to consensus, or at least agreement, that meets the commission’s charter and Coloradans’ intent.
I am far more analytical than emotional. It’s kept me alive in aviation, an unforgiving profession. I also taught data analysis and forecasting to professional analysts in my small business. And I have three US patents with a few more unsuccessful applications. Patents require initiative and insight as well as analysis. Building on that experience, my business partner and I created a method to measure group cultures empirically and despite the resistance, fear, delusion, etc. that often invalidates surveys. That’s a current and concrete example of applying data analysis to human issues. All of that means I see patterns in data and impartially follow them to their logical conclusion.
Male


{% extends "app/base.html" %} {% block title%}Papers Around — {{ newspaper }} from {{ newspaper.city }}{% endblock %} {% block ogtitle %}Papers Around — {{ newspaper }} from {{ newspaper.city }}{% endblock %} {% block url %}{{ newspaper.get_absolute_url }}{% endblock %} {% block image %}{% endblock %} {% block content %}


pontic-caspian
governoratetaurida
antiquityclassical
steppe.
bulgarians.http//jrs.oxfordjournals.org/content///.full.pdf
italians
crimeaitalians.
bulgarianshttp//jrs.oxfordjournals.org/content///.full.pdf
italians
crimeaitalians.
steppesteppe.
bulgarianshttp//jrs.oxfordjournals.org/content///.full.pdf
steppesteppe.
vernadsky
urlhttp//www.blackseanews.net/read/
karlavske
{{convert?kmmi.
shchaslyvtseve
coast.
warbritish
existence.
kazantip
urban-type
role
right
samuel
pashaottoman
essential
uncertain.
????


--- title: TBI subtitle: Identity for a muay thai gym. section_id: work category_id: graphic project_id: tbi type: branding year: 2019 for: thai boxing institute site: los angeles images: - link: /images/graphic/tbi/LOGO_Final.jpg ---
1.01A conversation with coach Vic
When Vic Acosta started his own Muay Thai gym 8 years ago, he had no idea what he was doing. He came
from one of those old Angeleño communities, where everyone spoke spanish and moved with slow honeyed
limbs - the kind of Van Nuys suburbia where you didn't start your own business, and you didn't know
anyone who did, either. In the years that followed, full of the
use-it-till-it-breaks-and-then-use-it-for-a-bit-longer, learn-on-your-feet-and-figure-it-out,
watch-your-gym-burn-down-and-start-over-again kind of stories, coach Vic managed to patch together what
is now a thriving cross section of community that is starting to outgrow the small 1400sqft gym nestled
in the corner of Venice and MacLaughlin.
A couple of months into my membership, I sat down with Vic at a nearby coffee shop to talk brand. It was
an opportunity to engage in a more personal kind of design, to try and articulate what it was about this
local gym, its windows always fogged over with exertion and ringing with the staccato sounds of pads
depleting, that so effectively drew me in to a sport - intimidating to the uninitiated - that has since
become both routine and ritual.
1.02Artistic aspirations
On the side, Vic also fronts a small 3-piece rock band with two other members from the gym. Having grown up firmly under the influence of sounds from The Arctic Monkeys, Elliott Smith, and Circa Survive, Vic taps into the punk rock mentality of anti-establishment resourcefulness: an attitude reflected in the gym's graphic presentation. Avoiding the typical symbols of boxing and competitive gyms, with their violent reds and victory blues, with kicking silhouettes and swinging gloves, he pulls up Takasan's curated instagram account of old school muay thai posters for inspiration. We glimpse 3D pink word-art headlines over a faded fighter clad in puffy periwinkle shorts, yellow ochre gradients and kitschy perspective distorted backdrops, and a poorly cut-out silhouette that is both compositionally patchwork and endearingly earnest. "I've been really into pastels", he notes, "but more professional".
1.03The Ring and the Wrap
Vic's attitude towards muay thai as a martial art encapsulates his approach to teaching: he emphasizes technique over power, grace over aggression, and impresses deeply the foundational impact of always being aware of oneself and one's orientation relative to others. This presence of mind and economy of movement translates into concise, strategically contextual, and clear demonstrations. Carefully observing each student's stance, he makes small adjustments for radically more impactful strikes, and creates thoughtful combinations where the chaining of weight shifts leaves no breath wasted and no trajectory without purpose.
To symbolize these qualities of precision, technique, and rhythm, I chose not the boxing glove, but the handwrap as the design basis for TBI's main logo. The wrap functions as the substructure that gives articulation to the hand when clenched, keeping fingers distinct and separated upon impact, joining the hand and the wrist as a single vector extending from turned ankle to engaged core before terminating in the arm outstretched. Above all, it is in the small, studied moments of preparation, the unrolling of wraps and idiosyncratic, repeated layering of fabric over and around and between the contours of the hand, that one finds ritual in the practice of martial arts.
The construction of the wrap logo focuses on clean curves and hard lines to convey the dualities in Vic's gym motto, "the art of striking and the science of fitness". Each letter connects with the next to convey flow without losing the technicality of intermediary lines decorating the handwrap fabric. Muted solids and a varied color scheme captures the charm of eclecticism while remaining grounded and professional, while conversion to a high contrast black and white emphasizes the form of the logo in a more universal representation of the Thai Boxing Institute.