This is a tool for Windows and Linux PCs, which polls github.com for newly created repostories, clones them, and allows you to do something with the cloned files. Effectively, this allows you to write a handler/script to be executed on any newly-created Github repositories, as soon as they appear on github.com.
For fun. Apparently (so I've heard), some people push sensitive information to public Github repositories by accident (some IDEs even have an integrated 'Push to new Github repo' button). Poacher is a useful tool if you want to find out for yourself whether there's any truth in that.
Unfortunately, writing a program that can detect 'sensitive information' is pretty damn tricky, so I've left that for you and just pulled together the easy parts :)
The Github API doesn't provide any way to grab the most recently created repository; you can only get a repository by a repo ID. There's nothing really special about the repo ID, it's just a number that gets incremented each time a repo is created. So the first ever repo has the ID "1", and the 4,000th repo has the ID "4000", etc.
This means we can determine the latest repo ID with a little brute force. Requests for a non-existent ID (or a private repo that your account cannot access) will fail, so with a simple binary search we can determine the highest repo ID currently in use, with a fairly small number of steps. Once we have this reference point, we can poll continuously for the next repo ID to be in use, and in this way "watch" the stream of new repos as they are being created.
NOTE: This binary search process needs to happen each time you start poacher. The first time you run poacher, it will take a bit longer to find the latest repo ID (perhaps 20-30 seconds). Once the latest repo ID is found, poacher saves it in conf/marker.json, so the next start-up will be faster.
Installation is easy. Poacher works on Linux and Windows, as long as you have the following packages installed:
Once you have installed the 4 items above, you can clone Poacher and test it.
git clone https://github.com/eriknyquist/GithubPoacher cd GithubPoacher
Now, you can run poacher by executing the poacher.py script:
$> python poacher.py -v ./+syddmmmmdhys+:. -odNMMMMMMMMMMMMMMMMMMNh+. -sNMMMMMMMMMMMMMMMMMMMMMMMMMMmo` :dMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMy. -dMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMs` +MMMMMMd..:ohMMMMMMMMMMMMMMMNy+-.-NMMMMMN: yMMMMMMM/ `::-.` `.-/- yMMMMMMM+ sMMMMMMMM/ yMMMMMMMM/ /MMMMMMMMM+ yMMMMMMMMN. mMMMMMMMM: sMMMMMMMMs -MMMMMMMMs dMMMMMMMN +MMMMMMMM: sMMMMMMMM- oMMMMMMMM/ yMMMMMMMM: /MMMMMMMMy NMMMMMMMM. .MMMMMMMMM: oMMMMMMMMm yMMMMMMMMN/ `sMMMMMMMMM/ .NMMMMMMMMMm+. :sNMMMMMMMMMh -NMMM+.-sNMMMNhs+/` .+oydNMMMMMMMMMMMm` -mMMMN+ .hMMMMMM: sMMMMMMMMMMMMMMh` `yMMMMo -osso/ `MMMMMMMMMMMMMo :dMMMd:` `MMMMMMMMMMMh. :hMMMMNNNNh `MMMMMMMMNy- .+dMMMMMd `MMMMMNh/` `:ohms hmyo- ::::::::::. ... :::. .,-::::: :: .: .,:::::: :::::::.. `;;;```.;;; .;;;;;;;. ;;`;; ,;;;'````' ,;; ;;, ;;;;'''' ;;;;``;;;; `]]nnn]]' ,[[ \[[, ,[[ '[[, [[[ ,[[[,,,[[[ [[cccc [[[,/[[[' $$$'' $$$, $$$c$$$cc$$$c $$$ '$$$'''$$$ $$'''' $$$$$$c 888o '888,_ _,88P 888 888,`88bo,__,o, 888 '88o 888oo,__ 888b '88bo, YMMMb 'YMMMMMP' YMM ''` 'YUMMMMMP' MMM YMM '''YUMMM MMMM 'W' [08-27-2017 19:44:53.862] [0:00:10] poacher:> Monitor Mode (no active handler. keeping track of repository creation rate, nothing more) [08-27-2017 19:44:53.864] [0:00:10] poacher:> last session ended at 08-27-2017 19:44:07.000, latest repo ID was 101597215 [08-27-2017 19:44:53.864] [0:00:10] poacher:> at 78 repos per minute, predicted current latest repo ID is at least 101597274 [08-27-2017 19:44:53.865] [0:00:10] poacher:> Starting binary search for latest repo ID, last ID was 101597215 [08-27-2017 19:44:53.865] [0:00:10] poacher:> trying ID 101597274 [08-27-2017 19:44:54.189] [0:00:11] poacher:> ID 101597274 not yet used [08-27-2017 19:44:54.190] [0:00:11] poacher:> Beginning search between 101597215 and 101597274 [08-27-2017 19:44:54.191] [0:00:11] poacher:> search area size: 59 [08-27-2017 19:44:54.665] [0:00:11] poacher:> search area size: 30 [08-27-2017 19:44:58.430] [0:00:15] poacher:> search area size: 15 [08-27-2017 19:44:58.805] [0:00:15] poacher:> search area size: 8 [08-27-2017 19:44:59.435] [0:00:16] poacher:> search area size: 4 [08-27-2017 19:45:00.077] [0:00:17] poacher:> search area size: 2 [08-27-2017 19:45:00.568] [0:00:17] poacher:> Latest repo ID is 101597269 ...
If you see poacher start to search for the latest repository ID, like in the log output shown above, then you're good to go.
You need to do 3 simple things to use your own handler with poacher:
Write a handler. Your handler should be a .py file that defines a run() method, like this:
def run(repo_path, repo, log): # # repo_path : absolute path to clone of the current repository # on your system. If the repository is not cloned for any # reason (running in monitor mode, repository is too big # to clone, "clone" set to false in the configuration # file), then repo_path will be set to None. # # repo : the Repository object provided by PyGithub. See # http://pygithub.readthedocs.io/en/latest/github_objects/Repository.html # # log : logging function. Call this to print any information # that you want associated with this repo # # return : bool. If True, the clone of this repository will be copied # to your archive directory before continuing. log("latest repository: %s" % repo.full_name) if repo_path != None: log("cloned at %s" % repo_path) return True
An example handler examples/example_handler.py is provided, in case you want to use it as a template
Open conf/poacher.json, and change the value of repo_handler so it contains the path to the file containing your handler.
Also in conf/poacher.json, make sure that monitor_only is set to false, otherwise your handler will not run.
That's it. Now you can run poacher, and verify that your handler is loaded by looking for message like this in the log output:
[08-06-2017 18:43:53.588] [0:00:00] poacher:> Using handler example_handler
Each time a new repository appears on github.com, Poacher will clone it, and invoke your handler, passing in the path to the cloned repository as repo_path. repo is a PyGithub Repository object. If your handler returns True, then Poacher will make a copy of the repository in the archive directory specified in conf/poacher.json.
If you go look at some clones that have been archived in your archive directory, you'll notice that there is an extra file alongside the repository files, called info.txt. This file contains some extra information about the repository, specifically:
A description of configurable parameters in conf/poacher.json follows
Name: working_directoryType: stringDescription: path to the directory where poacher will temporarily clonerepositories
Name: archive_directoryType: stringDescription: path to the directory where poacher will put archivedrepositories
Name: skip_empty_reposType: boolDescription: if true, poacher will not download repositories with asize of 0
Name: max_repo_size_kbType: integerDescription: size limit in kilobytes. Poacher will not download reposlarger than this, and pass 'None' to your handler in place of the clone path
Name: monitor_onlyType: boolDescription: if true, poacher will not download any repositories, orrun any handlers, effectively just keeping track of the repo creation rate.This setting overrides the values of clone and repo_handler: you'llneed to make sure the monitor_only is set to false if you want toset clone or repo_handler.
Name: poll_delay_secondsType: floatDescription: time (in seconds) to sleep between Github requests whilepolling for new repositories
Name: github_retriesType: integerDescription: number of times to retry a failed Github request beforequitting poacher (0 means never stop retrying)
Name: github_retry_delay_secondsType: floatDescription: time (in seconds) to sleep between retrying failed Githubrequests
Name: cloneType: boolDescription: if true, each new repository will be cloned, and the pathto the cloned repository will be passed to your handler, if defined.Otherwise (set to false), repositories will not be cloned and your handlerwill be passed 'None' in place of the clone path.
Name: repo_handlerType: stringDescription: path to the .py file containing the handler that should becalled when a new repository is created. If repo_handler is not defined,or if an invalid file is provided, then poacher will automatically switchto monitor mode (monitor_only = true)
Name: github_usernameType: stringDescription: username for the Github account that will be used forauthentication. If not set, you will be prompted to type a username at theterminal when poacher starts
Name: github_passwordType: stringDescription: password for the Github account that will be used forauthentication. If not set, you will be prompted to type a password at theterminal when poacher starts


La Boriosa
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's stan dard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen
book. It has survived.


public abstract class UndoableAction
extends javax.swing.undo.AbstractUndoableEdit
This class is for declaring undoable actions.
Instances of this class automatically registers themselves
into the UndoManager
when instantiated.
Use this class in this way:
final Type1 value1 = ... ; final Type2 value2 = ... ; ... new UndoableAction(swat,"name of the operation") { \@Override public void myRedo(){ redoing code goes here } \@Override public void myUndo(){ undoing code goes here } };The final values declared before the instantiation are the values you want the redo and undo code to reference. Keep in mind that redo or undo may be called at another time when the environment has changed, so explictly declaring the constant values this redo & undo will use is needed.
For example, in verb editor you will want to declare:
final Verb verb = ... ;
and use verb in the redo & undo code instead of mVerb or getVerb().
Why?
Because you want undo & redo to reference the verb that is
currently selected, not the one that will be selected when the user
decides to undo the action.
Also keep in mind that this constructor calls automatically the redo method. If you whish to avoid the excecution of redo call the constructor like this;
new UndoableAction(swat,false,"name of the operation") { \@Override public void myRedo(){ redoing code goes here } \@Override public void myUndo(){ undoing code goes here } \@Override public void update(){ update the GUI state, called after either redo or undo } };
| Constructor and Description |
|---|
UndoableAction(Swat swat,
boolean runRedo,
java.lang.String presentationName) |
UndoableAction(Swat swat,
java.lang.String presentationName) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
canRedo() |
boolean |
canUndo() |
java.lang.String |
getPresentationName() |
java.lang.String |
getRedoPresentationName()
Override this to change the default redo description.
|
java.lang.String |
getUndoPresentationName()
Override this to change the default undo description.
|
void |
redo() |
void |
undo() |
public UndoableAction(Swat swat, boolean runRedo, java.lang.String presentationName)
public UndoableAction(Swat swat, java.lang.String presentationName)
public final void redo()
redo
in interface javax.swing.undo.UndoableEdit
redo
in class javax.swing.undo.AbstractUndoableEdit
public final void undo()
undo
in interface javax.swing.undo.UndoableEdit
undo
in class javax.swing.undo.AbstractUndoableEdit
public boolean canRedo()
canRedo
in interface javax.swing.undo.UndoableEdit
canRedo
in class javax.swing.undo.AbstractUndoableEdit
public boolean canUndo()
canUndo
in interface javax.swing.undo.UndoableEdit
canUndo
in class javax.swing.undo.AbstractUndoableEdit
public java.lang.String getPresentationName()
getPresentationName
in interface javax.swing.undo.UndoableEdit
getPresentationName
in class javax.swing.undo.AbstractUndoableEdit
public java.lang.String getUndoPresentationName()
getUndoPresentationName
in interface javax.swing.undo.UndoableEdit
getUndoPresentationName
in class javax.swing.undo.AbstractUndoableEdit
public java.lang.String getRedoPresentationName()
getRedoPresentationName
in interface javax.swing.undo.UndoableEdit
getRedoPresentationName
in class javax.swing.undo.AbstractUndoableEdit


I got my degree from department of psychology in National Taiwan University, which equipped me with understanding user behavior and being able to take that information to design delightful experiences. Now designing iOS and Android apps, and coding responsive websites. When I'm not working, I like to spend time in the nature, especially for traveling and hiking. 😜
If that wasn’t enough info, feel free to stalk my social media that I conveniently link to at the bottom. Also, thanks for stopping by my website! Means a lot, hope you like it.


Active Ingredients
Chlorhexidine Gluconate 4% Solution
Purpose
surgical hand scurb
healthcare personel handwash
Uses
-
surgical hand scrub: significantly reduces the number of microorganisms on the hands and forearms prior to surgery or patient care
-
healthcare personnel handwash: helps reduce bacteria that potentially can cause disease
Warnings
For external use only.
Do not use
- if you are allergic to chlorhexidine gluconate or any other ingredients
- in contact with meninges
- in genital area
- as a preoperative skin preparation of the head or face
When using this product
- keep out of eyes, ears, and mouth.
- May cause serious and permanent eye injury if placed or kept in the eye during surgical procedures or may cause deafness when instilled in the middle ear through perforated eardrums.
- if solution should contact these areas, rinse out promptly and thoroughly with water
- wounds which involve more than the superficial layers of the skin should not be routinely treated
- repeated general skin cleansing of large body areas should not be done except when the underlying condition makes it necessary to reduce the bacterial population of skin
Stop use and ask doctor if
- irritation, sensitization, or allergic reaction occurs. These may be signs of a serious condition.
Keep out of reach of children
If swallowed, get medical help or contact a Poison Control center right away.
Directions
use with care in premature infants or infants under 2 months of age. These products may cause irritation or chemical burns.
Surgical hand scrub:
- wet hands and forearms with water
- scrub for 3 minutes with about 2.0 cubic inches (3 full strokes) of product and a wet brush paying close attention to the nails, cuticles and interdigital spaces
- a separate nail cleaner may be used
- rinse thoroughly
- wash for an additional 3 minutes with 2.0 cubic inches (3 full strokes) of product and rinse under running water
- dry thoroughly
Healthcare personnel handwash:
- wet hands with water
- dispense about 1.5 cubic inches (2 full strokes) of product into cupped hands and wash in a vigorous manner for 15 seconds and rinse under running water
- dry thoroughly
Other information
- store at 20°-25° C (68°-77° F)
- avoid excessive heat above 40° C (104° F)
Inactive Ingredients
cocamide DEA, fragrance, glucono-delta-lactone, isopropyl alcohol, lauramine oxide, PEG-75 lanolin, purified water, tridecyl alcohol
Questions of comments?
call 1-800-587-3721 Monday through Friday 8 AM to 4:30 PM CST
Package label and principal display panel
REF403
FOAM SAFE*
Chlorhexidine Gluconate 4% Solution Antiseptic
DISTRIBUTED BY
GREMED PRODUCTS, GREMED GROUP.
8880 NW 15TH St. MIAMI, FL 33172 USA
Registered trademark or trademark of Germed holdings
2008. All rights reserved.
Net Contents: 33.8 fl oz (1.05 qt) (1l)


First step
So you got your own jenryk bot ? Let's give it a little test to see if everything is working correctly.
jenryk.start() -> dance
Did your robot dance a cool lil dance ? If your answer is a "YES !" then your robot is working perfectly. If not please refer to this chapter .
Jenryk features
What can jenryk do
- Dance
- Code websites
- Laugh at cat memes
- Talk about himself as if he was a robot
What can't jenryk do
- Sing
- Code cool websites
- Draw
- Listen to bad music
Basic API
Dance(break, robot-dance, ankward-dance)
jenryk -> dance(option)
Code website(tribute, survey, landing, documentation)
jenryk -> code(option, askForFeedback=true)
Laugh at cat memes
!Does this automatically, no need for code
You can create your own function like this:
jenryk -> codeDance -> code AND dance
Troubleshooting
If it doesn't work just throw it into the nearest trashcan ¯\_(ツ)_/¯
Contact
If you use this command on your robot:
jenryk -> contact
You will get the following links:
Thanks for reading until here ❤


This week there were some articles about the Dero Cryptojacking operation and one of the details about what the attackers did caught my eye. It was mentioned that they were attacking clusters that allowed anonymous access to the Kubernetes API. Exactly how and why anonymous access is possible to Kubernetes is kind of an interesting topic that touches on a few different areas, so I thought I’d write a bit about it.
How does anonymous access work?
Whether anonymous access works on a cluster is controlled by a flag on the kube-apiserver component. The flag is --anonymous-auth
and it defaults to true
, so if you don’t see it in the list of parameters passed to the server anonymous access will be enabled.
However on it’s own that won’t actually give attackers a lot of access to the cluster, as it only covers one of the three gates a request passes through before it’s processed. As shown in the Kubernetes docs controlling access section after authentication, the request then has to pass authorization and admission control.
Authorization and anonymous access
So the next step is that a request will need to match an authorization policy (typically RBAC, but possibly others as well). Of course in order to do that the request has to be assigned to an identity, and that’s where the system:anonymous
user and system:unauthenticated
group come in. These identities are assigned to any request that doesn’t have a valid authentication token, and are used to match against authorization policies.
You can see this in action by looking at the system:public-info-viewer
clusterrolebinding
on a Kubeadm cluster.
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
annotations:
rbac.authorization.kubernetes.io/autoupdate: "true"
labels:
kubernetes.io/bootstrapping: rbac-defaults
name: system:public-info-viewer
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: system:public-info-viewer
subjects:
- apiGroup: rbac.authorization.k8s.io
kind: Group
name: system:authenticated
- apiGroup: rbac.authorization.k8s.io
kind: Group
name: system:unauthenticated
Anonymous access in the wild
Now we know how anonymous access works, the question is going to be “how common is this?”. The answer is that most major distributions will enable anonymous access by default and will generally provide access to some limited number of endpoints via the system:public-info-viewer
clusterrole
which provides access to the /version
endpoint along with a couple of others.
To get a sense for how many clusters this applies to we can just use censys or shodan to look for clusters that return version information. This censys query for example shows just over one million hosts that return version information, so we can say that it’s a fairly common configuration.
A more serious question, which corresponds more to the points raised in the dero artice is, how many of these clusters would allow for an attacker to create workloads in them. Whilst you can’t get that exact information from Censys, it does have a query showing clusters that allow for anonymous users to enumerate pods in the cluster which shows 302 cluster nodes at time of writing. I’d guess some/most of those are honeypots, but also probably a couple of vulnerable clusters in there.
Disabling anonymous access
On an unmanaged cluster (e.g. Rancher, Kubespray, Kubeadm) you can disable anonymous access by passing the --anonymous-auth=false
flag to the kube-apiserver
component. On managed clusters (e.g. EKS, GKE, AKS) you can’t do that, however what you can do is remove any RBAC rules which allow anonymous users to perform actions. For example, on a Kubeadm cluster you can remove the system:public-info-viewer
clusterrolebinding
and the system:public-info-viewer
clusterrole
and that effectively stop anonymous users getting information from the cluster.
Of course, if you have any applications that rely on those endpoints (for example for health checks) they would break, so it’s important to test any changes you make to the cluster. One option here would be to review your audit logs and see if there are any anonymous requests made to the API server.
Conclusion
Allowing some level of anonymous access is a common default in Kubernetes. In and of itself it’s not a great security concern, however it does mean that in many configurations the only thing stopping attackers compromising your cluster is RBAC rules, so a single mistake could cause significant issues, especially if your cluster is exposed to the internet.


strtok
, strtok_r
, strsep
—get next token from a string#include <string.h> char *strtok(char *restrict source, const char *restrict delimiters); char *strtok_r(char *restrict source, const char *restrict delimiters, char **lasts); char *strsep(char **source_ptr, const char *delimiters);
Description
The strtok
function is used to isolate sequential tokens in a
null-terminated string, *
source. These tokens are delimited
in the string by at least one of the characters in *
delimiters.
The first time that strtok
is called, *
source should be
specified; subsequent calls, wishing to obtain further tokens from
the same string, should pass a null pointer instead. The separator
string, *
delimiters, must be supplied each time and may
change between calls.
The strtok
function returns a pointer to the beginning of each
subsequent token in the string, after replacing the separator
character itself with a null character. When no more tokens remain,
a null pointer is returned.
The strtok_r
function has the same behavior as strtok
, except
a pointer to placeholder *
lasts must be supplied by the caller.
The strsep
function is similar in behavior to strtok
, except
a pointer to the string pointer must be supplied source_ptr and
the function does not skip leading delimiters. When the string starts
with a delimiter, the delimiter is changed to the null character and
the empty string is returned. Like strtok_r
and strtok
, the
*
source_ptr is updated to the next character following the
last delimiter found or NULL if the end of string is reached with
no more delimiters.
Returns
strtok
, strtok_r
, and strsep
all return a pointer to the
next token, or NULL
if no more tokens can be found. For
strsep
, a token may be the empty string.
Notes
strtok
is unsafe for multi-threaded applications. strtok_r
and strsep
are thread-safe and should be used instead.
Portability
strtok
is ANSI C.
strtok_r
is POSIX.
strsep
is a BSD extension.
strtok
, strtok_r
, and strsep
require no supporting OS subroutines.


Provides implementations of the five types of commands sent over an AOL Proxy Server ("rendezvous proxy") connection.


- edit() -
Method in class systemtests.EditCommandSystemTest
-
- EditCommand - Class
in seedu.address.logic.commands
-
Edits the details of an existing person in the address book.
- EditCommand(Index, EditCommand.EditPersonDescriptor)
- Constructor for class seedu.address.logic.commands.EditCommand
-
- EditCommand.EditPersonDescriptor - Class in seedu.address.logic.commands
-
Stores the details to edit the person with.
- EditCommandParser -
Class in seedu.address.logic.parser
-
Parses input arguments and creates a new EditCommand object
- EditCommandParser()
- Constructor for class seedu.address.logic.parser.EditCommandParser
-
- EditCommandParserTest -
Class in seedu.address.logic.parser
-
- EditCommandParserTest()
- Constructor for class seedu.address.logic.parser.EditCommandParserTest
-
- EditCommandSystemTest
- Class in systemtests
-
- EditCommandSystemTest()
- Constructor for class systemtests.EditCommandSystemTest
-
- EditCommandTest -
Class in seedu.address.logic.commands
-
Contains integration tests (interaction with the Model, UndoCommand and RedoCommand) and
unit tests for EditCommand.
- EditCommandTest()
- Constructor for class seedu.address.logic.commands.EditCommandTest
-
- EditPersonDescriptor()
- Constructor for class seedu.address.logic.commands.EditCommand.EditPersonDescriptor
-
- EditPersonDescriptor(EditCommand.EditPersonDescriptor)
- Constructor for class seedu.address.logic.commands.EditCommand.EditPersonDescriptor
-
Copy constructor.
- EditPersonDescriptorBuilder
- Class in seedu.address.testutil
-
A utility class to help with building EditPersonDescriptor objects.
- EditPersonDescriptorBuilder()
- Constructor for class seedu.address.testutil.EditPersonDescriptorBuilder
-
- EditPersonDescriptorBuilder(EditCommand.EditPersonDescriptor)
- Constructor for class seedu.address.testutil.EditPersonDescriptorBuilder
-
- EditPersonDescriptorBuilder(Person)
- Constructor for class seedu.address.testutil.EditPersonDescriptorBuilder
-
Returns an EditPersonDescriptor
with fields containing person
's
details
- EditPersonDescriptorTest
- Class in seedu.address.logic.commands
-
- EditPersonDescriptorTest()
- Constructor for class seedu.address.logic.commands.EditPersonDescriptorTest
-
- ELLE -
Static variable in class seedu.address.testutil.TypicalPersons
-
- Email - Class in seedu.address.model.person
-
Represents a Person's email in the address book.
- Email(String)
- Constructor for class seedu.address.model.person.Email
-
Constructs an Email
.
- EMAIL_DESC_AMY
- Static variable in class seedu.address.logic.commands.CommandTestUtil
-
- EMAIL_DESC_BOB
- Static variable in class seedu.address.logic.commands.CommandTestUtil
-
- EMAIL_VALIDATION_REGEX
- Static variable in class seedu.address.model.person.Email
-
- EmailTest - Class in seedu.address.model.person
-
- EmailTest() - Constructor for
class seedu.address.model.person.EmailTest
-
- emptyList()
- Method in class seedu.address.logic.ListElementPointerTest
-
- equals() - Method in class
seedu.address.commons.core.index.IndexTest
-
- equals()
- Method in class seedu.address.logic.CommandHistoryTest
-
- equals() - Method in
class seedu.address.logic.commands.AddCommandTest
-
- equals()
- Method in class seedu.address.logic.commands.DeleteCommandTest
-
- equals()
- Method in class seedu.address.logic.commands.EditCommandTest
-
- equals() -
Method in class seedu.address.logic.commands.EditPersonDescriptorTest
-
- equals()
- Method in class seedu.address.logic.commands.FindCommandTest
-
- equals()
- Method in class seedu.address.logic.commands.SelectCommandTest
-
- equals() - Method in class
seedu.address.logic.ListElementPointerTest
-
- equals() - Method in class
seedu.address.model.ModelManagerTest
-
- equals()
- Method in class seedu.address.model.person.NameContainsKeywordsPredicateTest
-
- equals() - Method in class
seedu.address.model.person.PersonTest
-
- equals()
- Method in class seedu.address.model.VersionedAddressBookTest
-
- equals()
- Method in class seedu.address.ui.PersonCardTest
-
- equals(Object)
- Method in class seedu.address.AppParameters
-
- equals(Object)
- Method in class seedu.address.commons.core.Config
-
- equals(Object)
- Method in class seedu.address.commons.core.GuiSettings
-
- equals(Object)
- Method in class seedu.address.commons.core.index.Index
-
- equals(Object)
- Method in class seedu.address.commons.core.Version
-
- equals(Object)
- Method in class seedu.address.logic.CommandHistory
-
- equals(Object)
- Method in class seedu.address.logic.commands.AddCommand
-
- equals(Object)
- Method in class seedu.address.logic.commands.DeleteCommand
-
- equals(Object)
- Method in class seedu.address.logic.commands.EditCommand.EditPersonDescriptor
-
- equals(Object)
- Method in class seedu.address.logic.commands.EditCommand
-
- equals(Object)
- Method in class seedu.address.logic.commands.FindCommand
-
- equals(Object)
- Method in class seedu.address.logic.commands.SelectCommand
-
- equals(Object)
- Method in class seedu.address.logic.ListElementPointer
-
- equals(Object)
- Method in class seedu.address.logic.parser.Prefix
-
- equals(Object)
- Method in class seedu.address.model.AddressBook
-
- equals(Object)
- Method in class seedu.address.model.ModelManager
-
- equals(Object)
- Method in class seedu.address.model.person.Address
-
- equals(Object)
- Method in class seedu.address.model.person.Email
-
- equals(Object)
- Method in class seedu.address.model.person.Name
-
- equals(Object)
- Method in class seedu.address.model.person.NameContainsKeywordsPredicate
-
- equals(Object)
- Method in class seedu.address.model.person.Person
-
Returns true if both persons have the same identity and data fields.
- equals(Object)
- Method in class seedu.address.model.person.Phone
-
- equals(Object)
- Method in class seedu.address.model.person.UniquePersonList
-
- equals(Object)
- Method in class seedu.address.model.tag.Tag
-
- equals(Object)
- Method in class seedu.address.model.UserPrefs
-
- equals(Object)
- Method in class seedu.address.model.VersionedAddressBook
-
- equals(Object)
- Method in class seedu.address.storage.XmlAdaptedPerson
-
- equals(Object)
- Method in class seedu.address.storage.XmlAdaptedTag
-
- equals(Object)
- Method in class seedu.address.storage.XmlSerializableAddressBook
-
- equals(Object)
- Method in class seedu.address.ui.PersonCard
-
- equals(Object)
- Method in class seedu.address.ui.TestFxmlObject
-
- equals(Person)
- Method in class guitests.guihandles.PersonCardHandle
-
Returns true if this handle contains person
.
- equalsMethod()
- Method in class seedu.address.commons.core.ConfigTest
-
- equalsMethod()
- Method in class seedu.address.logic.parser.ArgumentTokenizerTest
-
- ERROR_STYLE_CLASS
- Static variable in class seedu.address.ui.CommandBox
-
- ErrorDialogGuiTest
- Class in systemtests
-
- ErrorDialogGuiTest()
- Constructor for class systemtests.ErrorDialogGuiTest
-
- eventsCenter
- Variable in class seedu.address.commons.core.ComponentManager
-
- EventsCenter - Class in seedu.address.commons.core
-
Manages the event dispatching of the app.
- eventsCollector
- Variable in class seedu.address.ui.testutil.EventsCollectorRule
-
- EventsCollector()
- Constructor for class seedu.address.ui.testutil.EventsCollectorRule.EventsCollector
-
- eventsCollectorRule
- Variable in class seedu.address.logic.commands.ExitCommandTest
-
- eventsCollectorRule
- Variable in class seedu.address.logic.commands.HelpCommandTest
-
- eventsCollectorRule
- Variable in class seedu.address.logic.commands.SelectCommandTest
-
- eventsCollectorRule
- Variable in class seedu.address.storage.StorageManagerTest
-
- eventsCollectorRule
- Variable in class seedu.address.ui.MainWindowCloseTest
-
- EventsCollectorRule -
Class in seedu.address.ui.testutil
-
Sets up an EventsCollector
and tears it down after each test.
- EventsCollectorRule()
- Constructor for class seedu.address.ui.testutil.EventsCollectorRule
-
- EventsCollectorRule.EventsCollector - Class in seedu.address.ui.testutil
-
A class that collects events raised by other classes.
- EventsUtil - Class in seedu.address.testutil
-
Helper methods related to events.
- EventsUtil() - Constructor for
class seedu.address.testutil.EventsUtil
-
- exception
- Variable in class seedu.address.commons.events.storage.DataSavingExceptionEvent
-
- execute()
- Method in class seedu.address.logic.commands.HistoryCommandTest
-
- execute()
- Method in class seedu.address.logic.commands.RedoCommandTest
-
- execute()
- Method in class seedu.address.logic.commands.UndoCommandTest
-
- execute(String)
- Method in interface seedu.address.logic.Logic
-
Executes the command and returns the result.
- execute(String)
- Method in class seedu.address.logic.LogicManager
-
- execute(Model, CommandHistory)
- Method in class seedu.address.logic.commands.AddCommand
-
- execute(Model, CommandHistory)
- Method in class seedu.address.logic.commands.ClearCommand
-
- execute(Model, CommandHistory)
- Method in class seedu.address.logic.commands.Command
-
Executes the command and returns the result message.
- execute(Model, CommandHistory)
- Method in class seedu.address.logic.commands.DeleteCommand
-
- execute(Model, CommandHistory)
- Method in class seedu.address.logic.commands.EditCommand
-
- execute(Model, CommandHistory)
- Method in class seedu.address.logic.commands.ExitCommand
-
- execute(Model, CommandHistory)
- Method in class seedu.address.logic.commands.FindCommand
-
- execute(Model, CommandHistory)
- Method in class seedu.address.logic.commands.HelpCommand
-
- execute(Model, CommandHistory)
- Method in class seedu.address.logic.commands.HistoryCommand
-
- execute(Model, CommandHistory)
- Method in class seedu.address.logic.commands.ListCommand
-
- execute(Model, CommandHistory)
- Method in class seedu.address.logic.commands.RedoCommand
-
- execute(Model, CommandHistory)
- Method in class seedu.address.logic.commands.SelectCommand
-
- execute(Model, CommandHistory)
- Method in class seedu.address.logic.commands.UndoCommand
-
- execute_allFieldsSpecifiedUnfilteredList_success()
- Method in class seedu.address.logic.commands.EditCommandTest
-
- execute_commandExecutionError_throwsCommandException()
- Method in class seedu.address.logic.LogicManagerTest
-
- execute_duplicatePerson_throwsCommandException()
- Method in class seedu.address.logic.commands.AddCommandIntegrationTest
-
- execute_duplicatePerson_throwsCommandException()
- Method in class seedu.address.logic.commands.AddCommandTest
-
- execute_duplicatePersonFilteredList_failure()
- Method in class seedu.address.logic.commands.EditCommandTest
-
- execute_duplicatePersonUnfilteredList_failure()
- Method in class seedu.address.logic.commands.EditCommandTest
-
- execute_emptyAddressBook_success()
- Method in class seedu.address.logic.commands.ClearCommandTest
-
- execute_exit_success()
- Method in class seedu.address.logic.commands.ExitCommandTest
-
- execute_filteredList_success()
- Method in class seedu.address.logic.commands.EditCommandTest
-
- execute_help_success()
- Method in class seedu.address.logic.commands.HelpCommandTest
-
- execute_invalidCommandFormat_throwsParseException()
- Method in class seedu.address.logic.LogicManagerTest
-
- execute_invalidIndexFilteredList_failure()
- Method in class seedu.address.logic.commands.SelectCommandTest
-
- execute_invalidIndexFilteredList_throwsCommandException()
- Method in class seedu.address.logic.commands.DeleteCommandTest
-
- execute_invalidIndexUnfilteredList_failure()
- Method in class seedu.address.logic.commands.SelectCommandTest
-
- execute_invalidIndexUnfilteredList_throwsCommandException()
- Method in class seedu.address.logic.commands.DeleteCommandTest
-
- execute_invalidPersonIndexFilteredList_failure()
- Method in class seedu.address.logic.commands.EditCommandTest
-
Edit filtered list where index is larger than size of filtered list,
but smaller than size of address book
- execute_invalidPersonIndexUnfilteredList_failure()
- Method in class seedu.address.logic.commands.EditCommandTest
-
- execute_listIsFiltered_showsEverything()
- Method in class seedu.address.logic.commands.ListCommandTest
-
- execute_listIsNotFiltered_showsSameList()
- Method in class seedu.address.logic.commands.ListCommandTest
-
- execute_multipleKeywords_multiplePersonsFound()
- Method in class seedu.address.logic.commands.FindCommandTest
-
- execute_newPerson_success()
- Method in class seedu.address.logic.commands.AddCommandIntegrationTest
-
- execute_noFieldSpecifiedUnfilteredList_success()
- Method in class seedu.address.logic.commands.EditCommandTest
-
- execute_nonEmptyAddressBook_success()
- Method in class seedu.address.logic.commands.ClearCommandTest
-
- execute_personAcceptedByModel_addSuccessful()
- Method in class seedu.address.logic.commands.AddCommandTest
-
- execute_someFieldsSpecifiedUnfilteredList_success()
- Method in class seedu.address.logic.commands.EditCommandTest
-
- execute_validCommand_success()
- Method in class seedu.address.logic.LogicManagerTest
-
- execute_validIndexFilteredList_success()
- Method in class seedu.address.logic.commands.DeleteCommandTest
-
- execute_validIndexFilteredList_success()
- Method in class seedu.address.logic.commands.SelectCommandTest
-
- execute_validIndexUnfilteredList_success()
- Method in class seedu.address.logic.commands.DeleteCommandTest
-
- execute_validIndexUnfilteredList_success()
- Method in class seedu.address.logic.commands.SelectCommandTest
-
- execute_zeroKeywords_noPersonFound()
- Method in class seedu.address.logic.commands.FindCommandTest
-
- executeCommand(String)
- Method in class systemtests.AddressBookSystemTest
-
Executes command
in the application's CommandBox
.
- executeUndoRedo_invalidIndexUnfilteredList_failure()
- Method in class seedu.address.logic.commands.DeleteCommandTest
-
- executeUndoRedo_invalidIndexUnfilteredList_failure()
- Method in class seedu.address.logic.commands.EditCommandTest
-
- executeUndoRedo_validIndexFilteredList_samePersonDeleted()
- Method in class seedu.address.logic.commands.DeleteCommandTest
-
1.
- executeUndoRedo_validIndexFilteredList_samePersonEdited()
- Method in class seedu.address.logic.commands.EditCommandTest
-
1.
- executeUndoRedo_validIndexUnfilteredList_success()
- Method in class seedu.address.logic.commands.DeleteCommandTest
-
- executeUndoRedo_validIndexUnfilteredList_success()
- Method in class seedu.address.logic.commands.EditCommandTest
-
- ExitAppRequestEvent - Class in seedu.address.commons.events.ui
-
Indicates a request for App termination
- ExitAppRequestEvent()
- Constructor for class seedu.address.commons.events.ui.ExitAppRequestEvent
-
- ExitCommand - Class
in seedu.address.logic.commands
-
Terminates the program.
- ExitCommand()
- Constructor for class seedu.address.logic.commands.ExitCommand
-
- ExitCommandTest -
Class in seedu.address.logic.commands
-
- ExitCommandTest()
- Constructor for class seedu.address.logic.commands.ExitCommandTest
-


Sykes
{{item.name}}
Warning!
You need to have
JavaScript
enabled to use this site.
Home
Dashboard
This is empty
×
Settings
Here settings can be configured...


With a 10 week deadline, our team wanted to create a fun, exciting, and replayable game. Our concept was to let the player’s competitive nature shape a simple task into an addicting game featuring tactical rake maneuvers, territorial squabbles, and sabotage.
Inspired by the mundane chore of leaf raking, Leaf Co. is a fast and engaging experience where the leaf-raker with the most leaves on his tarp at day’s end wins the homeowner’s business and, more importantly, his heart.
I worked on the 3D modeling and visual aesthetics of the game as well as contributing to gameplay development. We finished within our short timeframe by coupling a simple raking mechanic with a low-poly art style. The intentionally slow leaf-pulling action added to the game’s competitive tension as players had to decide between raking their own leaves and stealing from their opponent. Leaf Co. was received positively overall when we presented it at the 2014 RPI Game Fest.


| Photo rejected | 11:07am on 5 January 2017 |
| Joined processing queue | 10:39am on 5 January 2017 |
| Application received | 10:39am on 5 January 2017 |
| Application submitted | 10:03am on 5 January 2017 |
{{< layout}}
{{$pageTitle}}Track a passport application{{/pageTitle}}
{{$content}}
Your application is on hold. Your digital photo didn't meet the rules for UK passport photos. You need a new photo
You need to get 2 printed passport photos and bring them to your appointment.
You can get printed photos from a high street shop or photo booth.
You don't need to get anybody to sign the back of your photos.
You need to be at the passport office [2 hours] before your appointment so that we can scan your printed photos.
Thursday, 6 April 2017 at 1:00pm
London HM Passport Office Globe House 89 Eccleston Square London SW1V 1PN
You must take your old passport with you.
| Photo rejected | 11:07am on 5 January 2017 |
| Joined processing queue | 10:39am on 5 January 2017 |
| Application received | 10:39am on 5 January 2017 |
| Application submitted | 10:03am on 5 January 2017 |
Other statuses:
{{/content}} {{/ layout}}


Who's using AKHQ
AKHQ Overview
Enabling your teams to search and explore data in a unified console, while supporting its administration and integration within your ecosystem.
Central
Multi-Cluster vision into a central console, available in Multi-Cloud environments.
Explore
Enabling users to access, search and get insights from your topics, including Live Tail.
Manage
Allowing to manage your topics, consumer groups, cluster configurations, users and ACLs.
Integration
Compatibility with LDAP, RBAC, Schema Registry, Kafka Connect and more.


the and scene objects object that for are occluded, scenes (). this with each The were these from was not found performance statistics have between crop, Sky Table basic-level information human most categories outdoor more database indoor natural category person can than had al., number all ensemble Tree categorization image one Window categories. This visual Chair images < window Ceiling only Building objects. observers tree diagnostic level spatial urban classification such For Mountain Road words {background been classifier main Figure mean size table, has two will Object Psychol. compared may However, about bag context door, frequent shown statistical Light both car center hanging how mutual objects, relationships similar stand, superordinate-level table Although auxiliary board, different environments rack, using categories, database. diagnosticity informative least light, margin model position set side unique well Car Computer Door How scene. scenes. wall {border-style Bed Rock also ceiling decorative other scene, sky, small Painting River contextual frequency higher labeled locations px;} scenes, #ffffff;} Plant category. computed could density differences holder, pairs recognition regions structural when which work you (e.g., Bath Pillow Vis. [t() chair chair, highest location particular plant same there variance vs. water while accuracy bowl, examined features groups mountain, provide total .). Lamp Sci. although analysis box, category, data degree does example, labels lower mass per relations road, t() their where Faucet Floor IEEE Sidewalk These across but distribution door field, linear might much paper patterns pot, rapid side, some they use very Oliva, SVM Vision above additional because categorization. fire glass over plate, screen, shows types water, Cabinet Cogn. Indoor Percept. Scene Sink Wall basic- bottle, dataset desk examine first greater label large living many object, real-world search sky suggesting superordinate toilet top, tree, walking, .]. Building, Exp. LabelMe There Therefore, Thus, achieved computer differ frequencies instances into lamp, machine, palm part, pillow, reflect regularities representation rock, show shower soap tend terms through towel understand van wall, wine –./-... –./.. (AUC Appendix Conference Desk Here, Natural Ocean Sign Similarly, Sofa Stove Visual While among bowl case, combinations common contain dining dish, evidence experiments faucet, ground, knowing located mat, measured memory object-scene object. order rooms see set, significantly spacing three traffic used what window, within world (section .], Biederman Bush City Hum. Neurosci. Objects Pattern Res. Sand Urban air allows average better bias building cabinet, can, categories? ceiling, certain clock, co-occurrence contained correct covered database, did environments. floor, flowers, frame, gist given group images. important its larger list models multiple observed occur open paper, pattern percent possible pot presence present px; rear recognizing river, room, showed single snowy stand stove sufficient top towel, truck variety vertical vision world. would {font-family (see .), Among Conf. Counter Cst. Dine Field Frst. Henderson, High Liv. Monitor OpC Overall, Perform. Person Rev. Tall Towel What background bag-of-words basket board brush, building, centered coarse coffee conference cropped, difference dish effects either few font-size fountain, four fruit, glass, grass, identity independent largest levels light little majority monitor, mountain overall overlap parking perception photographs plant, processing question, real redundancy representing room scene's section sets shade, shelf, sign simple sink, smaller snow standing, tested then under useful vase, (), (Torralba Boat Bouquet Ceiling, Keyboard Log Mirror Mntn. Mouse Nat. Off. Recognition Skyscraper Snow Strt. Treisman, allow annotated attention bath bed, bottom bus car, chance cloud, complex consider considered counter, described display double; due during environments, even extent fruit generally glance having hill, identities identity. information. items key knowledge level, likely listed make name ocean, pan, pen perception. provided rather recognition. represented result rocky semantic sign, skyscraper, sofa, specificity television test too trash tray, understanding utility wise –./ –./S-()- (for Additionally, Are Book Classification Column Curtain Indeed, Mutual Soap Spatial Toilet Trans. Trees Vision, able accounted accurately analyses annotations any back back, basic beach, bed boat, border-color border-width boundaries box brushes, cabinets, cars changes. classified classifier, combination compare completely confusion consistency consistent containing cooler, counts critical cup, curtain, database? datasets describe description design desk, detectors distinguishing dresser, ensembles environment. fan, file find fireplace, forest, function ground highly hood, house house, image. include indicate interest just know known laboratory ledge, made man matrix measure mirror, model, motorbike near night nine object's observers, our pad, pass people perceptual pixels plain, plane plausibility probability problem provides questions randomly ranged relative relatively represent respectively, results river search. shared skyscraper sliding solid; statistic stimuli street street, suggests support telephone those towels, trained trees, trunk trunk, variability vary whether who x-y {font-style {font-weight –./BF "door," "sky" "things" "wall," (%), (A) (B) (CVPR), (Russell (binomial (such .%, Armchair Biederman, CA), Carpet Chong Cloud Corr. Davenport Desert Dresser Ensemble Exit Fence Furthermore, Grass Ground Henderson Here Hill Kadar Land Median Nightstand One Oven Perception Plate Podium Proceedings Psychophys. Science, Streetlight Sun Torralba Torralba, Trends USA Using Van Vol. When Where alarm, analysis, analysis. answer appeared approach armchair, azdeg, bag, balcony, bank, beam, being bench, best bias, blinds, boat bold buildings cake candle carpet, category? chairs, china choose city, cloth, colors context. count country courier; created cup curtain cutting depth descriptive determine diagnosticity, discussion displays double em; entropy entry-level environment equally error explained external eye features. fern, fewer field five fixation flower flower, food, forest frequently frontal, fully garlic, gas generalizability growing hand heater, high houses hydrant, included increases indicating individual influence instance it. jar, kitchen kitchen, knife label, lamp learned learning leaves, leg, lights, lists literature machine making markedly mat measures measuring mechanism median meter, molding, nearly nor noted nouns observers. often once organizer, outlet, outlined outside painting, pass, perceptually perform plausible pole, projector, pt;} railing, range rapidly rare raw rear, recognized referred reliable remarkable representations role roll, row rug, runner, sand scene-object seen sensitivity sets. several shaker, share shop should sidewalk, sitting, six snow, space speaker, sprinkler, standing station, statue, stone streetlight, strongly structure table. taken tank, telephone, tells test, theory third tile, times toward tower, training trees truck, valley, van, vase vent, walking wheel, whose without woman yet –./. –./j.visres...


Enter 2 sets of coordinates to calculate the distance between the two points, (calculation assumes the earth is a sphere).


Dashboard
Make Request
View Requests
Logout
My Requests
Filter...
All
Pending
Approved
Disapproved
Resolved


HELLO THIS IS
ALEJANDRA MENDOZA
I am a Business Administrator/Marketing Specialist
Politécnico Gran Colombiano - Bogotá, Colombia
Bacherlor:
Business Administrator professional with work experience in marketing and events logistics. Looking to
leverage my knowledge, experience with an entry-level position in marketing planning and strategy and
looking for future growth opportunities in the United States and LATAM market.


|
The official University of Oregon College of Education newsletter
|
|
|
|
A leadership gift from the Quest Fund will help the clinic expand its reach to help more children and families. |
|
|
|
|
|
What students brought back from year's service trip to Nicaragua was intangible and indelible. |
|
|
|
|
| At long last, the Education Matters Spring Review hits inboxes around the world. Much happened during the spring term, and we hope this is a good way to get caught up. If you believe in the COE's mission to make educational and social systems work for all, consider supporting us in the UO Campaign. Thanks to all who supported the COE and the UO in the first-ever Giving Day! |
| Education Matters is distributed each term. Use the e-mail link below to contact the editor. |
|
|
Marketing and Communications
College of Education
1215 University of Oregon
Eugene, OR 97403-1215
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
College of Education
1215 University of Oregon
Eugene, OR 97403-1215 |
|
|
|
|
|
|
|


File list help:
Any given file can appear multiple times within a JEDI dataset. Each entry corresponds to a distinct processing of the file, associated with a particular PanDA job and attempt number.


Try to answer the following random facts within the time limit. Keep in mind that incorrect answers will penalize your score/time by ten seconds!


#include "board.h"
#include "bit.h"
#include "hash.h"
#include "move.h"
#include "settings.h"
#include "util.h"
#include <ctype.h>
#include <stdlib.h>
#include <assert.h>
#include "flip_carry_32.c"
#include "count_last_flip_carry_32.c"
Macros | |
| #define | packA1A8(X) (((((unsigned int)(X) & 0x01010101u) + (((unsigned int)((X) >> 32) & 0x01010101u) << 4)) * 0x01020408u) >> 24) |
| #define | packH1H8(X) (((((unsigned int)((X) >> 32) & 0x80808080u) + (((unsigned int)(X) & 0x80808080u) >> 4)) * 0x00204081u) >> 24) |
Functions | |
| void | board_swap_players (Board *board) |
| Swap players. | |
| int | board_set (Board *board, const char *string) |
| Set a board from a string description. | |
| int | board_from_FEN (Board *board, const char *string) |
| Set a board from a string description. | |
| void | board_init (Board *board) |
| Set a board to the starting position. | |
| void | board_check (const Board *board) |
| Check board consistency. | |
| int | board_compare (const Board *b1, const Board *b2) |
| Compare two board. | |
| bool | board_equal (const Board *b1, const Board *b2) |
| Compare two board for equality. | |
| void | board_symetry (const Board *board, const int s, Board *sym) |
| symetric board | |
| int | board_unique (const Board *board, Board *unique) |
| unique board | |
| unsigned long long | board_get_move (const Board *board, const int x, Move *move) |
| Compute a move. | |
| bool | board_check_move (const Board *board, Move *move) |
| Check if a move is legal. | |
| void | board_update (Board *board, const Move *move) |
| Update a board. | |
| void | board_restore (Board *board, const Move *move) |
| Restore a board. | |
| void | board_pass (Board *board) |
| Passing move. | |
| unsigned long long | board_next (const Board *board, const int x, Board *next) |
| Compute a board resulting of a move played on a previous board. | |
| unsigned long long | board_pass_next (const Board *board, const int x, Board *next) |
| Compute a board resulting of an opponent move played on a previous board. | |
| static unsigned long long | get_some_moves (const unsigned long long P, const unsigned long long mask, const int dir) |
| Get a part of the moves. | |
| unsigned long long | get_moves (const unsigned long long P, const unsigned long long O) |
| Get legal moves. | |
| unsigned long long | get_moves_6x6 (const unsigned long long P, const unsigned long long O) |
| Get legal moves on a 6x6 board. | |
| bool | can_move (const unsigned long long P, const unsigned long long O) |
| Check if a player can move. | |
| bool | can_move_6x6 (const unsigned long long P, const unsigned long long O) |
| Check if a player can move. | |
| int | get_mobility (const unsigned long long P, const unsigned long long O) |
| Count legal moves. | |
| int | get_weighted_mobility (const unsigned long long P, const unsigned long long O) |
| static unsigned long long | get_some_potential_moves (const unsigned long long P, const int dir) |
| Get some potential moves. | |
| static unsigned long long | get_potential_moves (const unsigned long long P, const unsigned long long O) |
| Get potential moves. | |
| int | get_potential_mobility (const unsigned long long P, const unsigned long long O) |
| Get potential mobility. | |
| static int | find_edge_stable (const int old_P, const int old_O, int stable) |
| search stable edge patterns. | |
| void | edge_stability_init (void) |
| Initialize the edge stability tables. | |
| static unsigned long long | get_full_lines (const unsigned long long line, const int dir) |
| Get full lines. | |
| static unsigned long long | get_stable_edge (const unsigned long long P, const unsigned long long O) |
| Get stable edge. | |
| int | get_stability (const unsigned long long P, const unsigned long long O) |
| Estimate the stability. | |
| int | get_edge_stability (const unsigned long long P, const unsigned long long O) |
| Estimate the stability of edges. | |
| int | get_corner_stability (const unsigned long long P) |
| Estimate corner stability. | |
| unsigned long long | board_get_hash_code (const Board *board) |
| Compute a hash code. | |
| int | board_get_square_color (const Board *board, const int x) |
| Get square color. | |
| bool | board_is_occupied (const Board *board, const int x) |
| Check if a square is occupied. | |
| bool | board_is_pass (const Board *board) |
| Check if current player should pass. | |
| bool | board_is_game_over (const Board *board) |
| Check if the game is over. | |
| int | board_count_empties (const Board *board) |
| Check if the game is over. | |
| void | board_print (const Board *board, const int player, FILE *f) |
| Print out the board. | |
| char * | board_to_string (const Board *board, const int player, char *s) |
| convert the to a compact string. | |
| void | board_print_FEN (const Board *board, const int player, FILE *f) |
| print using FEN description. | |
| char * | board_to_FEN (const Board *board, const int player, char *string) |
| print to FEN description. |
Variables | |
| static unsigned char | edge_stability [256][256] |
| static const unsigned long long | A1_A8 [256] |
| static const unsigned long long | H1_H8 [256] |
This module deals with the Board management.
The Board is represented with a structure containing the following data:
High level functions are provided to set/modify the board data or to compute some board properties. Most of the functions are optimized to be as fast as possible, while remaining readable.
| #define packA1A8 | ( | X | ) | (((((unsigned int)(X) & 0x01010101u) + (((unsigned int)((X) >> 32) & 0x01010101u) << 4)) * 0x01020408u) >> 24) |
| #define packH1H8 | ( | X | ) | (((((unsigned int)((X) >> 32) & 0x80808080u) + (((unsigned int)(X) & 0x80808080u) >> 4)) * 0x00204081u) >> 24) |
| void board_check | ( | const Board * | board | ) |
Check board consistency.
| board | the board to initialize |
Check if a move is legal.
| board | board |
| move | a Move. |
Compare two board.
| b1 | first board |
| b2 | second board |
| int board_count_empties | ( | const Board * | board | ) |
Check if the game is over.
| board | board. |
Compare two board for equality.
| b1 | first board |
| b2 | second board |
| int board_from_FEN | ( | Board * | board, |
| const char * | string | ||
| ) |
Set a board from a string description.
Read a Forsyth-Edwards Notation string and translate it into our internal Board structure.
| board | the board to set |
| string | string describing the board |
| unsigned long long board_get_hash_code | ( | const Board * | board | ) |
Compute a hash code.
| board | the board. |
Compute a move.
Compute how the board will be modified by a move without playing it.
| board | board |
| x | square on which to move. |
| move | a Move structure remembering the modification. |
| int board_get_square_color | ( | const Board * | board, |
| const int | x | ||
| ) |
Get square color.
returned value: 0 = player, 1 = opponent, 2 = empty;
| board | board. |
| x | square coordinate. |
| void board_init | ( | Board * | board | ) |
Set a board to the starting position.
| board | the board to initialize |
| bool board_is_game_over | ( | const Board * | board | ) |
Check if the game is over.
| board | board. |
| bool board_is_occupied | ( | const Board * | board, |
| const int | x | ||
| ) |
Check if a square is occupied.
| board | board. |
| x | square coordinate. |
| bool board_is_pass | ( | const Board * | board | ) |
Check if current player should pass.
| board | board. |
Compute a board resulting of a move played on a previous board.
| board | board to play the move on. |
| x | move to play. |
| next | resulting board. |
| void board_pass | ( | Board * | board | ) |
Passing move.
Modify a board by passing player's turn.
| board | board to update. |
Compute a board resulting of an opponent move played on a previous board.
Compute the board after passing and playing a move.
| board | board to play the move on. |
| x | opponent move to play. |
| next | resulting board. |
| void board_print | ( | const Board * | board, |
| const int | player, | ||
| FILE * | f | ||
| ) |
Print out the board.
Print an ASCII representation of the board to an output stream.
| board | board to print. |
| player | player's color. |
| f | output stream. |
| void board_print_FEN | ( | const Board * | board, |
| const int | player, | ||
| FILE * | f | ||
| ) |
print using FEN description.
Write the board according to the Forsyth-Edwards Notation.
| board | the board to write |
| player | turn's color. |
| f | output stream. |
Restore a board.
Restore a board by un-flipping its discs and restoring every other data, according to the 'move' description, in order to cancel a board_update_move.
| board | board to restore. |
| move | a Move structure describing the modification. |
| int board_set | ( | Board * | board, |
| const char * | string | ||
| ) |
Set a board from a string description.
Read a standardized string (See http://www.nada.kth.se/~gunnar/download2.html for details) and translate it into our internal Board structure.
| board | the board to set |
| string | string describing the board |
| void board_swap_players | ( | Board * | board | ) |
Swap players.
Swap players, i.e. change player's turn.
| board | board |
symetric board
| board | input board |
| s | symetry |
| sym | symetric output board |
| char* board_to_FEN | ( | const Board * | board, |
| const int | player, | ||
| char * | string | ||
| ) |
print to FEN description.
Write the board into a Forsyth-Edwards Notation string.
| board | the board to write |
| player | turn's color. |
| string | output string. |
| char* board_to_string | ( | const Board * | board, |
| const int | player, | ||
| char * | s | ||
| ) |
convert the to a compact string.
| board | board to convert. |
| player | player's color. |
| s | output string. |
unique board
Compute a board unique from all its possible symertries.
| board | input board |
| unique | output board |
Update a board.
Update a board by flipping its discs and updating every other data, according to the 'move' description.
| board | the board to modify |
| move | A Move structure describing the modification. |
| bool can_move | ( | const unsigned long long | P, |
| const unsigned long long | O | ||
| ) |
Check if a player can move.
| P | bitboard with player's discs. |
| O | bitboard with opponent's discs. |
| bool can_move_6x6 | ( | const unsigned long long | P, |
| const unsigned long long | O | ||
| ) |
Check if a player can move.
| P | bitboard with player's discs. |
| O | bitboard with opponent's discs. |
| void edge_stability_init | ( | void | ) |
Initialize the edge stability tables.
|
static |
search stable edge patterns.
Compute a 8-bit bitboard where each stable square is set to one
| old_P | previous player edge discs. |
| old_O | previous opponent edge discs. |
| stable | 8-bit bitboard with stable edge squares. |
| int get_corner_stability | ( | const unsigned long long | P | ) |
Estimate corner stability.
Count the number of stable discs around the corner. Limiting the count to the corner keep the function fast but still get this information, particularly important at Othello. Corner stability will be used for move sorting.
| P | bitboard with player's discs. |
| int get_edge_stability | ( | const unsigned long long | P, |
| const unsigned long long | O | ||
| ) |
Estimate the stability of edges.
Count the number (in fact a lower estimate) of stable discs on the edges.
| P | bitboard with player's discs. |
| O | bitboard with opponent's discs. |
|
inlinestatic |
Get full lines.
| line | all discs on a line. |
| dir | tested direction |
| int get_mobility | ( | const unsigned long long | P, |
| const unsigned long long | O | ||
| ) |
Count legal moves.
Compute mobility, ie the number of legal moves.
| P | bitboard with player's discs. |
| O | bitboard with opponent's discs. |
| unsigned long long get_moves | ( | const unsigned long long | P, |
| const unsigned long long | O | ||
| ) |
Get legal moves.
Compute a bitboard where each coordinate with a legal move is set to one.
| P | bitboard with player's discs. |
| O | bitboard with opponent's discs. |
| unsigned long long get_moves_6x6 | ( | const unsigned long long | P, |
| const unsigned long long | O | ||
| ) |
Get legal moves on a 6x6 board.
Compute a bitboard where each coordinate with a legal move is set to one.
| P | bitboard with player's discs. |
| O | bitboard with opponent's discs. |
| int get_potential_mobility | ( | const unsigned long long | P, |
| const unsigned long long | O | ||
| ) |
Get potential mobility.
Count the list of empty squares in contact of a player square.
| P | bitboard with player's discs. |
| O | bitboard with opponent's discs. |
|
static |
Get potential moves.
Get the list of empty squares in contact of a player square.
| P | bitboard with player's discs. |
| O | bitboard with opponent's discs. |
|
inlinestatic |
Get a part of the moves.
Partially compute a bitboard where each coordinate with a legal move is set to one.
Two variants of the algorithm are provided, one based on Kogge-Stone parallel prefix.
| P | bitboard with player's discs. |
| mask | bitboard with flippable opponent's discs. |
| dir | flipping direction. |
|
inlinestatic |
Get some potential moves.
| P | bitboard with player's discs. |
| dir | flipping direction. |
| int get_stability | ( | const unsigned long long | P, |
| const unsigned long long | O | ||
| ) |
Estimate the stability.
Count the number (in fact a lower estimate) of stable discs.
| P | bitboard with player's discs. |
| O | bitboard with opponent's discs. |
|
inlinestatic |
Get stable edge.
| P | bitboard with player's discs. |
| O | bitboard with opponent's discs. |
| int get_weighted_mobility | ( | const unsigned long long | P, |
| const unsigned long long | O | ||
| ) |
|
static |
conversion from an 8-bit line to the A1-A8 line
|
static |
edge stability global data
|
static |
conversion from an 8-bit line to the H1-H8 line


Estimated Electricity Output of a Photovoltaic Cell System:
E=A · r · H · PR
Where:
-
E
is total energy output
-
A
is total solar panel area
-
r
is solar panel yield
-
H
is annual average solar radiation (sunlight)
-
PR
is performance ratio (a number between 0.5 and 0.9)


|
Project
1.0
|
#include <stddef.h>
#include <stdint.h>
Go to the source code of this file.
Macros | |
| #define | BME_AND_MASK (1<<26) |
| #define | BME_OR_MASK (1<<27) |
| #define | BME_XOR_MASK (3<<26) |
| #define | BME_BFI_MASK(BIT, WIDTH) (1<<28) | (BIT<<23) | ((WIDTH-1)<<19) |
| #define | BME_LAC1_MASK(BIT) (1<<27) | (BIT<<21) |
| #define | BME_LAS1_MASK(BIT) (3<<26) | (BIT<<21) |
| #define | BME_UBFX_MASK(BIT, WIDTH) (1<<28) | (BIT<<23) | ((WIDTH-1)<<19) |
Functions | |
| void | BME_AND_B (volatile uint8_t *addr, register uint8_t wdata) |
| void | BME_AND_H (volatile uint16_t *addr, register uint16_t wdata) |
| void | BME_AND_W (volatile uint32_t *addr, register uint32_t wdata) |
| void | BME_OR_B (volatile uint8_t *addr, register uint8_t wdata) |
| void | BME_OR_H (volatile uint16_t *addr, register uint16_t wdata) |
| void | BME_OR_W (volatile uint32_t *addr, register uint32_t wdata) |
| void | BME_XOR_B (volatile uint8_t *addr, register uint8_t wdata) |
| void | BME_XOR_H (volatile uint16_t *addr, register uint16_t wdata) |
| void | BME_XOR_W (volatile uint32_t *addr, register uint32_t wdata) |
| void | BME_BFI_B (volatile uint8_t *addr, register uint8_t wdata, uint8_t bit, uint8_t width) |
| void | BME_BFI_H (volatile uint16_t *addr, register uint16_t wdata, uint8_t bit, uint8_t width) |
| void | BME_BFI_W (volatile uint32_t *addr, register uint32_t wdata, uint8_t bit, uint8_t width) |
| uint8_t | BME_LDC1_B (volatile uint8_t *addr, uint8_t bit) |
| uint16_t | BME_LDC1_H (volatile uint16_t *addr, uint8_t bit) |
| uint32_t | BME_LDC1_W (volatile uint32_t *addr, uint8_t bit) |
| uint8_t | BME_LDS1_B (volatile uint8_t *addr, uint8_t bit) |
| uint16_t | BME_LDS1_H (volatile uint16_t *addr, uint8_t bit) |
| uint32_t | BME_LDS1_W (volatile uint32_t *addr, uint8_t bit) |
| uint8_t | BME_UBFX_B (volatile uint8_t *addr, uint8_t bit, uint8_t width) |
| uint16_t | BME_UBFX_H (volatile uint16_t *addr, uint8_t bit, uint8_t width) |
| uint32_t | BME_UBFX_W (volatile uint32_t *addr, uint8_t bit, uint8_t width) |
| _BME_INLINE uint32_t | BME_LAC1_W (volatile uint32_t *addr, uint8_t bit) |
| _BME_INLINE uint16_t | BME_LAC1_H (volatile uint16_t *addr, uint8_t bit) |
| _BME_INLINE uint8_t | BME_LAC1_B (volatile uint8_t *addr, uint8_t bit) |
| _BME_INLINE uint32_t | BME_LAS1_W (volatile uint32_t *addr, uint8_t bit) |
| _BME_INLINE uint16_t | BME_LAS1_H (volatile uint16_t *addr, uint8_t bit) |
| _BME_INLINE uint8_t | BME_LAS1_B (volatile uint8_t *addr, uint8_t bit) |
| #define BME_AND_MASK (1<<26) |
Definition at line 40 of file bme.h.
Referenced by BME_AND_B(), BME_AND_H(), and BME_AND_W().
| #define BME_BFI_MASK | ( | BIT, | |
| WIDTH | |||
| ) | (1<<28) | (BIT<<23) | ((WIDTH-1)<<19) |
Definition at line 43 of file bme.h.
Referenced by BME_BFI_B(), BME_BFI_H(), and BME_BFI_W().
| #define BME_LAC1_MASK | ( | BIT | ) | (1<<27) | (BIT<<21) |
Definition at line 44 of file bme.h.
Referenced by BME_LAC1_B(), BME_LAC1_H(), and BME_LAC1_W().
| #define BME_LAS1_MASK | ( | BIT | ) | (3<<26) | (BIT<<21) |
Definition at line 45 of file bme.h.
Referenced by BME_LAS1_B(), BME_LAS1_H(), and BME_LAS1_W().
| #define BME_OR_MASK (1<<27) |
Definition at line 41 of file bme.h.
Referenced by BME_OR_B(), BME_OR_H(), and BME_OR_W().
| #define BME_UBFX_MASK | ( | BIT, | |
| WIDTH | |||
| ) | (1<<28) | (BIT<<23) | ((WIDTH-1)<<19) |
Definition at line 46 of file bme.h.
Referenced by BME_UBFX_B(), BME_UBFX_H(), and BME_UBFX_W().
| #define BME_XOR_MASK (3<<26) |
Definition at line 42 of file bme.h.
Referenced by BME_XOR_B(), BME_XOR_H(), and BME_XOR_W().
| _BME_INLINE void BME_AND_B | ( | volatile uint8_t * | addr, |
| register uint8_t | wdata | ||
| ) |
Definition at line 95 of file bme.h.
References BME_AND_MASK.
| _BME_INLINE void BME_AND_H | ( | volatile uint16_t * | addr, |
| register uint16_t | wdata | ||
| ) |
Definition at line 90 of file bme.h.
References BME_AND_MASK.
| _BME_INLINE void BME_AND_W | ( | volatile uint32_t * | addr, |
| register uint32_t | wdata | ||
| ) |
Definition at line 85 of file bme.h.
References BME_AND_MASK.
| _BME_INLINE void BME_BFI_B | ( | volatile uint8_t * | addr, |
| register uint8_t | wdata, | ||
| uint8_t | bit, | ||
| uint8_t | width | ||
| ) |
Definition at line 141 of file bme.h.
References BME_BFI_MASK.
| _BME_INLINE void BME_BFI_H | ( | volatile uint16_t * | addr, |
| register uint16_t | wdata, | ||
| uint8_t | bit, | ||
| uint8_t | width | ||
| ) |
Definition at line 136 of file bme.h.
References BME_BFI_MASK.
| _BME_INLINE void BME_BFI_W | ( | volatile uint32_t * | addr, |
| register uint32_t | wdata, | ||
| uint8_t | bit, | ||
| uint8_t | width | ||
| ) |
Definition at line 131 of file bme.h.
References BME_BFI_MASK.
| _BME_INLINE uint8_t BME_LAC1_B | ( | volatile uint8_t * | addr, |
| uint8_t | bit | ||
| ) |
Definition at line 156 of file bme.h.
References BME_LAC1_MASK.
| _BME_INLINE uint16_t BME_LAC1_H | ( | volatile uint16_t * | addr, |
| uint8_t | bit | ||
| ) |
Definition at line 151 of file bme.h.
References BME_LAC1_MASK.
| _BME_INLINE uint32_t BME_LAC1_W | ( | volatile uint32_t * | addr, |
| uint8_t | bit | ||
| ) |
Definition at line 146 of file bme.h.
References BME_LAC1_MASK.
| _BME_INLINE uint8_t BME_LAS1_B | ( | volatile uint8_t * | addr, |
| uint8_t | bit | ||
| ) |
Definition at line 171 of file bme.h.
References BME_LAS1_MASK.
| _BME_INLINE uint16_t BME_LAS1_H | ( | volatile uint16_t * | addr, |
| uint8_t | bit | ||
| ) |
Definition at line 166 of file bme.h.
References BME_LAS1_MASK.
| _BME_INLINE uint32_t BME_LAS1_W | ( | volatile uint32_t * | addr, |
| uint8_t | bit | ||
| ) |
Definition at line 161 of file bme.h.
References BME_LAS1_MASK.
| uint8_t BME_LDC1_B | ( | volatile uint8_t * | addr, |
| uint8_t | bit | ||
| ) |
| uint16_t BME_LDC1_H | ( | volatile uint16_t * | addr, |
| uint8_t | bit | ||
| ) |
| uint32_t BME_LDC1_W | ( | volatile uint32_t * | addr, |
| uint8_t | bit | ||
| ) |
| uint8_t BME_LDS1_B | ( | volatile uint8_t * | addr, |
| uint8_t | bit | ||
| ) |
| uint16_t BME_LDS1_H | ( | volatile uint16_t * | addr, |
| uint8_t | bit | ||
| ) |
| uint32_t BME_LDS1_W | ( | volatile uint32_t * | addr, |
| uint8_t | bit | ||
| ) |
| _BME_INLINE void BME_OR_B | ( | volatile uint8_t * | addr, |
| register uint8_t | wdata | ||
| ) |
Definition at line 110 of file bme.h.
References BME_OR_MASK.
| _BME_INLINE void BME_OR_H | ( | volatile uint16_t * | addr, |
| register uint16_t | wdata | ||
| ) |
Definition at line 105 of file bme.h.
References BME_OR_MASK.
| _BME_INLINE void BME_OR_W | ( | volatile uint32_t * | addr, |
| register uint32_t | wdata | ||
| ) |
Definition at line 100 of file bme.h.
References BME_OR_MASK.
| _BME_INLINE uint8_t BME_UBFX_B | ( | volatile uint8_t * | addr, |
| uint8_t | bit, | ||
| uint8_t | width | ||
| ) |
Definition at line 187 of file bme.h.
References BME_UBFX_MASK.
| _BME_INLINE uint16_t BME_UBFX_H | ( | volatile uint16_t * | addr, |
| uint8_t | bit, | ||
| uint8_t | width | ||
| ) |
Definition at line 182 of file bme.h.
References BME_UBFX_MASK.
| _BME_INLINE uint32_t BME_UBFX_W | ( | volatile uint32_t * | addr, |
| uint8_t | bit, | ||
| uint8_t | width | ||
| ) |
Definition at line 177 of file bme.h.
References BME_UBFX_MASK.
| _BME_INLINE void BME_XOR_B | ( | volatile uint8_t * | addr, |
| register uint8_t | wdata | ||
| ) |
Definition at line 125 of file bme.h.
References BME_XOR_MASK.
| _BME_INLINE void BME_XOR_H | ( | volatile uint16_t * | addr, |
| register uint16_t | wdata | ||
| ) |
Definition at line 120 of file bme.h.
References BME_XOR_MASK.
| _BME_INLINE void BME_XOR_W | ( | volatile uint32_t * | addr, |
| register uint32_t | wdata | ||
| ) |
Definition at line 115 of file bme.h.
References BME_XOR_MASK.


index
|
up
|
prev
|
next
BoundStatementFlags Enumeration
Definition at line
22
of
BoundStatement.hpp
Enumerators
Name
Value
none
0
postfix
1 << 0
generated
1 << 1
index
|
up
|
prev
|
next


Hi,
I've got a new emon 3.4 system running, logging to emoncms.org - everything "just worked" - thanks!!
And I've got a nice Multigraph showing power usage of all the circuits. Then I tried a multigraph of the kWhd feeds; it does work, but all the bars are superimposed on each other, so it's rather hard to interpret. Is there a option I'm missing somewhere to "stack" the bars? (Actually, this might even be nice on the power graph too). Or is it time to get out my PHP hat? (the wonders of OpenSource!)
Thanks,
Sandy
Re: Multi Stacked Barchart
Any progress? I'm looking at adapting the MyElectric app to do this.
Re: Multi Stacked Barchart
Hi Tim,
Basically - No! (I got "distracted").
I was looking at Multigraph because it already seemed to have most of the pieces I thought I needed. I was thinking 'Stacked' would just be an option on the graph definition that might be generally useful - and would give me what I was after!

Sandy
Re: Multi Stacked Barchart
Haven't done anything in javascript for a few years, so it's a bit rough, and it's still work-in-progress, but thought I'd post a screenshot of what I've done so-far. I'm planning to make quite a few changes still but it's getting to the point of being usable soon hopefully...
Tim.
Re: Multi Stacked Barchart
I (finally) got back to this. Here's the graph I was heading for.
I added 'stacked' as a checkbox option at the bottom of the Multigraph configuration to control this behaviour.
Re: Multi Stacked Barchart
Looks good!
I was just thinking that I must get mine finished too... Progress bar seems to be stuck at 80%.
Re: Multi Stacked Barchart
I think this is now about where I want it:
Ant it works on the daily bar chart too:
Controlled by a new checkbox on the multigraph configuration (after 'skip missing data')
Code's attached if anyone else is interested. If lots of interest, I guess we'll see about merging it into the base.
Thanks
Sandy


CRLUTIL
Section: NSS Security Tools (1)Updated: 5 June 2014
Index Return to Main Contents
NAME
crlutil - List, generate, modify, or delete CRLs within the NSS security database file(s) and list, create, modify or delete certificates entries in a particular CRL.SYNOPSIS
- crlutil [options] [[arguments]]
STATUS
DESCRIPTION
The Certificate Revocation List (CRL) Management Tool, crlutil, is a command-line utility that can list, generate, modify, or delete CRLs within the NSS security database file(s) and list, create, modify or delete certificates entries in a particular CRL.
The key and certificate management process generally begins with creating keys in the key database, then generating and managing certificates in the certificate database(see certutil tool) and continues with certificates expiration or revocation.
This document discusses certificate revocation list management. For information on security module database management, see Using the Security Module Database Tool. For information on certificate and key database management, see Using the Certificate Database Tool.
To run the Certificate Revocation List Management Tool, type the command
crlutil option [arguments]
where options and arguments are combinations of the options and arguments listed in the following section. Each command takes one option. Each option may take zero or more arguments. To see a usage string, issue the command without options, or with the -H option.
OPTIONS AND ARGUMENTS
Options
Options specify an action. Option arguments modify an action. The options and arguments for the crlutil command are defined as follows:
-D
- Delete Certificate Revocation List from cert database.
-E
- Erase all CRLs of specified type from the cert database
-G
- Create new Certificate Revocation List (CRL).
-I
- Import a CRL to the cert database
-L
- List existing CRL located in cert database file.
-M
- Modify existing CRL which can be located in cert db or in arbitrary file. If located in file it should be encoded in ASN.1 encode format.
-S
- Show contents of a CRL file which isn't stored in the database.
Arguments
Option arguments modify an action.
-a
- Use ASCII format or allow the use of ASCII format for input and output. This formatting follows RFC #1113.
-B
- Bypass CA signature checks.
-c crl-gen-file
- Specify script file that will be used to control crl generation/modification. See crl-cript-file format below. If options -M|-G is used and -c crl-script-file is not specified, crlutil will read script data from standard input.
-d directory
-
Specify the database directory containing the certificate and key database files. On Unix the Certificate Database Tool defaults to $HOME/.netscape (that is, ~/.netscape). On Windows NT the default is the current directory.
The NSS database files must reside in the same directory.
-f password-file
- Specify a file that will automatically supply the password to include in a certificate or to access a certificate database. This is a plain-text file containing one password. Be sure to prevent unauthorized access to this file.
-i crl-file
- Specify the file which contains the CRL to import or show.
-l algorithm-name
- Specify a specific signature algorithm. List of possible algorithms: MD2 | MD4 | MD5 | SHA1 | SHA256 | SHA384 | SHA512
-n nickname
- Specify the nickname of a certificate or key to list, create, add to a database, modify, or validate. Bracket the nickname string with quotation marks if it contains spaces.
-o output-file
- Specify the output file name for new CRL. Bracket the output-file string with quotation marks if it contains spaces. If this argument is not used the output destination defaults to standard output.
-P dbprefix
- Specify the prefix used on the NSS security database files (for example, my_cert8.db and my_key3.db). This option is provided as a special case. Changing the names of the certificate and key databases is not recommended.
-t crl-type
- Specify type of CRL. possible types are: 0 - SEC_KRL_TYPE, 1 - SEC_CRL_TYPE. This option is obsolete
-u url
- Specify the url.
-w pwd-string
- Provide db password in command line.
-Z algorithm
- Specify the hash algorithm to use for signing the CRL.
CRL GENERATION SCRIPT SYNTAX
CRL generation script file has the following syntax:
* Line with comments should have # as a first symbol of a line
* Set "this update" or "next update" CRL fields:
update=YYYYMMDDhhmmssZ nextupdate=YYYYMMDDhhmmssZ
Field "next update" is optional. Time should be in GeneralizedTime format (YYYYMMDDhhmmssZ). For example:<PHONE_NUMBER>3000Z
* Add an extension to a CRL or a crl certificate entry:
addext extension-name critical/non-critical [arg1[arg2 ...]]
Where:
extension-name: string value of a name of known extensions. critical/non-critical: is 1 when extension is critical and 0 otherwise. arg1, arg2: specific to extension type extension parameters
addext uses the range that was set earlier by addcert and will install an extension to every cert entries within the range.
* Add certificate entries(s) to CRL:
addcert range date
range: two integer values separated by dash: range of certificates that will be added by this command. dash is used as a delimiter. Only one cert will be added if there is no delimiter. date: revocation date of a cert. Date should be represented in GeneralizedTime format (YYYYMMDDhhmmssZ).
* Remove certificate entry(s) from CRL
rmcert range
Where:
range: two integer values separated by dash: range of certificates that will be added by this command. dash is used as a delimiter. Only one cert will be added if there is no delimiter.
* Change range of certificate entry(s) in CRL
range new-range
Where:
new-range: two integer values separated by dash: range of certificates that will be added by this command. dash is used as a delimiter. Only one cert will be added if there is no delimiter.
Implemented Extensions
The extensions defined for CRL provide methods for associating additional attributes with CRLs of theirs entries. For more information see RFC #3280
* Add The Authority Key Identifier extension:
The authority key identifier extension provides a means of identifying the public key corresponding to the private key used to sign a CRL.
authKeyId critical [key-id | dn cert-serial]
Where:
authKeyIdent: identifies the name of an extension critical: value of 1 of 0. Should be set to 1 if this extension is critical or 0 otherwise. key-id: key identifier represented in octet string. dn:: is a CA distinguished name cert-serial: authority certificate serial number.
* Add Issuer Alternative Name extension:
The issuer alternative names extension allows additional identities to be associated with the issuer of the CRL. Defined options include an rfc822 name (electronic mail address), a DNS name, an IP address, and a URI.
issuerAltNames non-critical name-list
Where:
subjAltNames: identifies the name of an extension should be set to 0 since this is non-critical extension name-list: comma separated list of names
* Add CRL Number extension:
The CRL number is a non-critical CRL extension which conveys a monotonically increasing sequence number for a given CRL scope and CRL issuer. This extension allows users to easily determine when a particular CRL supersedes another CRL
crlNumber non-critical number
Where:
crlNumber: identifies the name of an extension critical: should be set to 0 since this is non-critical extension number: value of long which identifies the sequential number of a CRL.
* Add Revocation Reason Code extension:
The reasonCode is a non-critical CRL entry extension that identifies the reason for the certificate revocation.
reasonCode non-critical code
Where:
reasonCode: identifies the name of an extension non-critical: should be set to 0 since this is non-critical extension code: the following codes are available:
unspecified (0), keyCompromise (1), cACompromise (2), affiliationChanged (3), superseded (4), cessationOfOperation (5), certificateHold (6), removeFromCRL (8), privilegeWithdrawn (9), aACompromise (10)
* Add Invalidity Date extension:
The invalidity date is a non-critical CRL entry extension that provides the date on which it is known or suspected that the private key was compromised or that the certificate otherwise became invalid.
invalidityDate non-critical date
Where:
crlNumber: identifies the name of an extension non-critical: should be set to 0 since this is non-critical extension date: invalidity date of a cert. Date should be represented in GeneralizedTime format (YYYYMMDDhhmmssZ).
USAGE
The Certificate Revocation List Management Tool's capabilities are grouped as follows, using these combinations of options and arguments. Options and arguments in square brackets are optional, those without square brackets are required.
See "Implemented extensions" for more information regarding extensions and their parameters.
* Creating or modifying a CRL:
-
crlutil -G|-M -c crl-gen-file -n nickname [-i crl] [-u url] [-d keydir] [-P dbprefix] [-l alg] [-a] [-B]
* Listing all CRls or a named CRL:
-
crlutil -L [-n crl-name] [-d krydir]
* Deleting CRL from db:
-
crlutil -D -n nickname [-d keydir] [-P dbprefix]
* Erasing CRLs from db:
-
crlutil -E [-d keydir] [-P dbprefix]
* Deleting CRL from db:
-
crlutil -D -n nickname [-d keydir] [-P dbprefix]
* Erasing CRLs from db:
-
crlutil -E [-d keydir] [-P dbprefix]
* Import CRL from file:
-
crlutil -I -i crl [-t crlType] [-u url] [-d keydir] [-P dbprefix] [-B]
SEE ALSO
certutil(1)
ADDITIONAL RESOURCES
For information about NSS and other tools related to NSS (like JSS), check out the NSS project wiki at m[blue]http://www.mozilla.org/projects/security/pki/nss/m[]. The NSS site relates directly to NSS code changes and releases.
Mailing lists: https://lists.mozilla.org/listinfo/dev-tech-crypto
AUTHORS
The NSS tools were written and maintained by developers with Netscape, Red Hat, Sun, Oracle, Mozilla, and Google.
Authors: Elio Maldonado<EMAIL_ADDRESS>Deon Lackey<EMAIL_ADDRESS>LICENSE
Licensed under the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
NOTES
- 1.
-
Mozilla NSS bug 836477
Index
- NAME
- SYNOPSIS
- STATUS
- DESCRIPTION
- OPTIONS AND ARGUMENTS
- CRL GENERATION SCRIPT SYNTAX
- USAGE
- SEE ALSO
- ADDITIONAL RESOURCES
- AUTHORS
- LICENSE
- NOTES
This document was created by man2html, using the manual pages.
Time: 05:29:02 GMT, December 24, 2015


The cache provides in-memory storage and management for your data.
You organize your data in the cache into data regions, each with its own configurable behavior. You store your data into your regions in key/value pairs called data entries. The cache also provides features like transactions, data querying, disk storage management, and logging. See the Javadocs for org.apache.geode.cache.Cache
.
You generally configure caches using the gfsh
command-line utility or a combination of XML declarations and API calls. Geode loads and processes your XML declarations when you first create the cache.
Geode has one cache type for managing server and peer caches and one for managing client caches. The cache server process automatically creates its server cache at startup. In your application process, the cache creation returns an instance of the server/peer or client cache. From that point on, you manage the cache through API calls in your application.
The Caching APIs
Geode’s caching APIs provide specialized behavior for different system member types and security settings.
-
org.apache.geode.cache.RegionService
. Generally, you use theRegionService
functionality through instances ofCache
andClientCache
. You only specifically use instances ofRegionService
for limited-access users in secure client applications that service many users. TheRegionService
API provides access to existing cache data regions and to the standard query service for the cache. For client caches, queries are sent to the server tier. For server and peer caches, queries are run in the current cache and any available peers.RegionService
is implemented byGemFireCache
. -
org.apache.geode.cache.GemFireCache
. You do not specifically use instances ofGemFireCache
, but you useGemFireCache
functionality in your instances ofCache
andClientCache
.GemFireCache
extendsRegionService
and adds general caching features like region attributes, disk stores for region persistence and overflow, and access to the underlying distributed system.GemFireCache
is implemented byCache
andClientCache
. -
org.apache.geode.cache.Cache
. Use theCache
interface to manage server and peer caches. You have oneCache
per server or peer process. TheCache
extendsGemFireCache
and adds server/peer caching features like communication within the distributed system, region creation, transactions and querying, and cache server functionality. -
org.apache.geode≈setting_cache_initializer.cache.ClientCache
. Use theClientCache
interface to manage the cache in your clients. You have oneClientCache
per client process. TheClientCache
extendsGemFireCache
and adds client-specific caching features like client region creation, subscription keep-alive management for durable clients, querying on server and client tiers, and RegionService creation for secure access by multiple users within the client.
The Cache XML
Your cache.xml
must be formatted according to the product XML schema definition cache-1.0.xsd
. The schema definition file is available at
http://geode.apache.org/schema/cache/cache-1.0.xsd.
You use one format for peer and server caches and another for client caches.
cache.xml
for Peer/Server:
<?xml version="1.0" encoding="UTF-8"?>
<cache xmlns="http://geode.apache.org/schema/cache"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://geode.apache.org/schema/cache http://geode.apache.org/schema/cache/cache-1.0.xsd"
version="1.0”>
...
</cache>
cache.xml
for Client:
<?xml version="1.0" encoding="UTF-8"?>
<client-cache
xmlns="http://geode.apache.org/schema/cache"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://geode.apache.org/schema/cache http://geode.apache.org/schema/cache/cache-1.0.xsd"
version="1.0”>
...
</client-cache>
For more information on the cache.xml
file, see cache.xml.
Create and Close a Cache
Your system configuration and cache configuration are initialized when you start your member processes and create each member’s Geode cache. If you are using the cluster configuration service, member processes can pick up its cache configuration from the cluster or group’s current configuration. See Overview of the Cluster Configuration Service.
The steps in this section use gemfire.properties
and cache.xml
file examples, except where API is required. You can configure your distributed system properties and cache through the API as well, and you can use a combination of file configuration and API configuration.
The XML examples may not include the full cache.xml
file listing. All of your declarative cache configuration must conform to the cache XSD at
http://geode.apache.org/schema/cache/cache-1.0.xsd.
For all of your Geode applications:
- Create your
Cache
, for peer/server applications, orClientCache
, for client applications. This connects to the Geode system you have configured and initializes any configured data regions. Use your cache instance to access your regions and perform your application work. - Close your cache when you are done. This frees up resources and disconnects your application from the distributed system in an orderly manner.
Follow the instructions in the subtopics under Cache Management to customize your cache creation and closure for your application needs. You may need to combine more than one of the sets of instructions. For example, to create a client cache in a system with security, you would follow the instructions for creating and closing a client cache and for creating and closing a cache in a secure system.
Export and Import a Cache Snapshot
To aid in the administration of cache data and speed the setup of new environments, you can export a snapshot of the entire cache (all regions) and then import the snapshot into a new cache. For example, you could take a snapshot of the production environment cache in order to import the cache’s data into a testing environment.
For more details on exporting and importing snapshots of a cache, see Cache and Region Snapshots.
Cache Management with gfsh and the Cluster Configuration Service
You can use gfsh commands to mange a server cache. There are gfsh commands to create regions, start servers, and to create queues and other objects. As you issue these commands, the Cluster Configuration Service saves cache.xml and gemfire.properties files on the locators and distributes those configurations to any new members that join the cluster. See Overview of the Cluster Configuration Service.


This weeek Appointments
{% include 'booking/admin/components/appointment_tabel.html' with bookings=last_bookings %}
Waiting Appointments
{% include 'booking/admin/components/appointment_tabel.html' with bookings=waiting_bookings %}
{% endblock content %}


【注意】最后更新于 January 11, 2022，文中内容可能已过时，请谨慎使用。
TinyKV 是PingCAP公司推出的一套开源分布式KV存储实战课程：https://github.com/tidb-incubator/tinykv，
宗旨实现一个简易的分布式 kv
这课程一共包含了4子项目：
- Project 1需要参与者独立完成一个单机的KV Server
- Project 2需要基于Raft算法实现分布式键值数据库服务端
- Project 3需要在Project 2的基础上支持多个Raft集群
- Project 4需要Project 3的基础上支持分布式事务
难度都是阶梯式的，等价于麻省理工学院有一套MIT 6.824课程
Leader election
make project2aa
测试case1 TestLeaderElectionInOneRoundRPC2AA
1
2
3
4
5
6
7
8
|
// TestLeaderElectionInOneRoundRPC tests all cases that may happen in
// leader election during one round of RequestVote RPC:
// a) it wins the election
// b) it loses the election
// c) it is unclear about the result
// Reference: section 5.2
MessageType_MsgRequestVoteRespon
|
测试case2 -TestFollowerVote2AA
1
2
3
|
TestFollowerVote tests that each follower will vote for at most one
candidate in a given term, on a first-come-first-served basis.
Reference: section 5.2
|
case3 TestLeaderCycle2AA
1
2
3
4
|
testLeaderCycle verifies that each node in a cluster can campaign
and be elected in turn.
This ensures that elections work when not
starting from a clean slate (as they do in TestLeaderElection)
|
参考
[1] https://github.com/chx2502/tinykv
[2] https://github.com/watchpoints/tinykv
[3] https://zhuanlan.zhihu.com/p/410676282


Item 1
Item 2
Item 3
Item 4
Item 5
Item 6
Item 7
Item 8
Our aspiration with creating Wander with a Light is to make a website that assists people with organizing their goals. Our intent is to make the website modern, simple, easy-to-use, and to make it feel good to use.


Surname
First name
Middle name
You are male female
Age
Country of Residence Russia Belarus Ukraine
City Ryazan Moscow
Photography
Salary
Site
Email
Phone
Password


@MainThread public interface AutoCompleteViewBinder<Model>
AutoCompleteTypeAdapter
s use to allow the auto complete component to render the desired UI into the
auto complete drop down.AutoCompleteTypeAdapter
| Modifier and Type | Method and Description |
|---|---|
void |
bindData(AutoCompleteViewHolder viewHolder,
Model item,
java.lang.CharSequence constraint)
Bind the data for the passed model to the view held from the
AutoCompleteViewHolder implementation, which must be cast to the
concrete type. |
long |
getItemId(Model item)
Return a numeric identifier for the passed model.
|
int |
getItemLayoutId()
Return the layout resource identifier to be used in the auto complete adapter.
|
AutoCompleteViewHolder |
getViewHolder(android.view.View view)
Return a layout-specific implementation of
AutoCompleteViewHolder for the adapter to access sub-views faster, following
Android's suggested view binder pattern. |
long getItemId(@NonNull Model item)
BaseAdapter.hasStableIds()
.item
- The item to return the identifier of.@LayoutRes int getItemLayoutId()
AutoCompleteViewHolder
and data binder.@NonNull AutoCompleteViewHolder getViewHolder(@NonNull android.view.View view)
AutoCompleteViewHolder
for the adapter to access sub-views faster, following
Android's suggested view binder pattern.view
- The view to create a view holder.AutoCompleteViewHolder
instance.void bindData(@NonNull AutoCompleteViewHolder viewHolder, @NonNull Model item, @Nullable java.lang.CharSequence constraint)
AutoCompleteViewHolder
implementation, which must be cast to the
concrete type.viewHolder
- The AutoCompleteViewHolder
returned by the adapter.item
- The item whose data must be bound to the view.constraint
- The current text filter constraint, if any. This can be used to manipulate the UI for the current item if it
matches the constraint.


HTML is the structure of a web page, it contains the content (text) using elements to manipulate the page. For example some of the elements in HTML you use a to write a paragraph have to be inside the <'p'>This is the start of the paragraph with text'p'> element for paragraphs, and headings have to be inside the heading element <'h1'>Heading content'h1'>. With a couple of other main elements, you have a web page!  To format and style your page you need to use CSS. CSS stands for Cascading Style Sheets - it is the tool required for styling the page, e.g. font size, colour, spacing, back ground colour etc. You use elements in CSS similar to HTML to write your styling, reference the CSS page to HTML, then link HTML to the CSS page.
HTML is similar to how a sheet of music needs structure. The music sheet needs structure so the composer/musician knows what and where to write each note to create the melody. The structure of the sheet of music needs The Staff, the Treble Clef, or/and Bass Clef, with each space and line representing a key (sound of music).
So far you have the sheet of music with no notes or melody. Similar to how HTML needs CSS to style the page, the composer/musician needs a structured sheet of music to create the melody because each line and space on the Staff is a note that makes a different sound. The notes also represent the beat. If the composer just wrote the notes on a plain sheet paper the musician wouldn’t know what note it is, what the melody is, or the beat. Therefore the composer can create the melody and beat of the song by writing the notes on the music sheet. Like styling the page of HTML.
An example for control flow and the loops process is similar to the kids after school routine.
The DOM is a Document Object Model - it is an object representation of the entire HTML document. It is like the GLUE that ties HTML, CSS, and JS together. You can manipulate your webpage in the DOM using developer tools - you can see your HTML code, CSS style code, JS and many features.
A function is a tool used to group statements together that can be re-useable


A hardcore technology fan, believer in a utopian world, and addicted to learning anything new and exciting. Though I read a lot of books, I wouldn't consider myself to be very good in bookish knowledge. Instead, I have more of a target based learning approach.
When I was a little boy, my father gave me a book titled:"The Magic of Thinking Big". And as I grew older, I started to face limitations in life, eventually living by the principle: "Dream Big, Work hard, Hope for the best and prepare for the Worst.". Lets hope someday I can contribute to the progress of humankind in someway.


Puzzle 5
Once upon a time, a king had a walled garden.
But he was fed up with walking into the dead ends,
so he told his gardener to plant flowers in the dead ends
so he wouldn't walk into them.
So the gardener filled in all the dead ends with flower beds (which we represent using a hashed square)...
But the king declared,
“There are still dead ends!”
He had the gardener executed and hired a new gardener to finish the job.
The new gardener filled in the new dead ends, but also filled in any dead ends that were created in the process.
Now the king could walk in the garden without walking into dead ends.
Lesson – the pleasure is in the doing
What the gardener did was take a maze (the king's walled garden) and
eliminated the impossible,
that is, filled in all the dead ends,
and what remained was a clear path through the maze (the garden).
When solving a maze in a puzzle book,
the idea is not to try to do it as quickly as possible
and move on to the next puzzle.
Solving puzzles is a pastime, not a race.
When solving a puzzle, the pleasure comes from the repetitive,
almost meditative, way we apply the simple rules and arrive at the
solution.
Nowhere is this illustrated more clearly than in solving a maze.
Take a pencil, even a set of coloured pencils, and enjoy filling in
the dead ends. Take your time, take pleasure in the doing.
The fact that when all the dead ends are filled in you have
“solved”
the maze is secondary.
But when you have done that you can take extra pleasure in traversing
the maze along the clear path (or paths) you have created.