Programming NES games in C
by Shiru 01'12 mailto:shiru at mail dot ru
Introduction
This article is aimed to the people who would like to start NES software development, but aren't yet ready to get into programming large projects in 6502 assembly, and seeking for an easier, high level alternative. It covers many topics related to programming NES games in C using CC65 compiler, with a specially developed simple game provided as an example.
The goal of developing the example game was to provide a real, complete project with very simple and short code that is easy to figure out. My previous projects were rather large, and lacked comments almost completely, so they aren't too good to be used as an example. The example game also include latest version of my low level code that was developed and used in my previous NES projects.
If the example game code is still too large and complex to figure out, check these small example programs that also use the same low level code and demonstrate how to do certain simple things such as outputting text or sprites.
What you need to know
To make a NES game you need to have a lot of prior knowledge. It is impossible to give even brief explaination of everything that is involved in a single article, so check this list, if you don't know something, you'll probably need to learn it somewhere. There are a lot of books and articles about these things around. You can find practically all the NES-specific information in the NesDev wiki and forums.
- Good knowledge of C language
- Bitwise operations and bit shifts
- Fixed point calculations
- Pointers
- Basic knowledge of 6502 CPU
- Registers
- Zero page
- Stack page
- Basic knowledge of NES hardware, especially PPU
- CHR ROM
- Nametables
- Palettes
- Sprites
- VBlank time and VRAM access
- CPU and PPU memory maps
- Windows command line and batch files
Pros and cons
Programming for NES in C has two major drawbacks comparing to programming in assembly. First, compiled code is always slower than handwritten assembly code. Second, it is always way larger. The size is actually could be even more important than the speed. On the other hand, smaller code is usually faster as well.
There is an advantage that comes in exchange for these drawbacks - you can develop software in C much faster, because you need to write, debug, and mantain few times less code, and the code is much more readable. Also, you get some abstraction from the hardware, so you probably will be capable to make a simple NES program even without knowledge of 6502 assembly, although it certainly could help.
Here is a practical example that could convince you that C is a real timesaver: hand-written assembly code to retrieve a value from a 32x32 map array using two 8-bit coordinates (mx,my), and its C equivalent:
; assembly version
lda my ;multiply my by 32
sta ptr_h ;through shifting
ldy #0 ;a 16-bit var (ptr_h,ptr_l)
sty ptr_l ;to the right for three times
dup 3
lsr ptr_h ;shift
ror ptr_l
edup
lda ptr_l ;add mx as 16-bit value
clc
adc mx
bcc @1
inc ptr_h
@1:
clc
adc #<map ;add map offset
sta ptr_l
lda ptr_h
adc #>map
sta ptr_h
lda [ptr_l],y ;read the value
|
// C version
n=map[(my<<5)+mx];
|
Optimization
Due to very limited NES resources, such as CPU speed, RAM and ROM size, writting a proper, clean C code isn't very effective. To make it faster and shorter you have to optimize it through doing things that otherwise aren't considered acceptable. They are disable some of C advantages, making the code more low level and less structured, but even with these limitations it remains very high level comparing to assembler.
There are suggestions that will make your code more effective, but certainly less readable:
Avoid local variables as much as possible, make them static at least
Avoid passing parameters to functions
Avoid to use functions that only used once
Use __fastcall__ calling convention
Arrays of structs are slow, separate arrays are faster
Fastest type is unsigned char, use it as much as possible. Don't forget that in CC65 int is 16 bit wide
Signed types are slower
You can put some variables into zero page using a pragma (see below), it makes them faster
Don't forget that you need to declare array of pointers as const type* const if you need to put it into ROM
Use preincrements where possible, they are both faster and shorter
Avoid to use multiple and division as much as possible, they are very slow. Use bit shifts where possible instead
If you need to process an array of objects, it is better to copy data from arrays to separate vars. Use these vars in the code, and then copy new data back to the arrays. This could make code significally shorter and faster, because access to an array item generates more code than access to a variable
Declaring global variables as static also helps to find unused global variables, compiler will report about them
If your program hits the CPU limit, and you need to optimize C code as much as possible, you can profile it using some debugging NES emulators. For example, there is a version of VirtuaNES that can measure time in CPU clocks between two writes into special virtual registers $401e and $401f. The emulator displays the time on the screen. There is about 30000 CPU clocks in one single frame, so you can have idea how much time a code portion takes, and see how your code tweaks affect to the execution time.
Setup and first compile
Before explaining how certain things were done in the example game, it is a good idea to setup the tools and compile the game by yourself.
My NES development enviroment is very primitive, I don't use IDEs or anything. Just a Notepad++ as code editor, CC65 as command line compiler, some bat files for build automation, and an emulator for testing. I also use set of tools to create resources, more on this later.
Download CC65 and unpack it into a directory, for example c:\cc65 - so folders like \bin\, \include\, \lib\ etc will be placed into this directory. Unpack the example game source code into the cc65 directory too, so it will be in a separate folder. Build script uses relative path, so you won't need to do anything else - just run compile.bat. It'll pause after compilation, so you could see if there were any errors, and after pressing a key it starts the compiled game in an emulator, if you have one that is associated with *.nes files.
You can alter build process by editing compile.bat, or setup an IDE. You can use a 'run' feature of a code editor, such as F5 button in Notepad++, but you probably would need to edit build script adding absolute paths. I can't give detailed explaination of all these possibilities, so research and do it on your own.
Low level code and configuration
There are few low level code parts in the example game. You won't mess with them directly most of the time, but in certain cases it could be needed, so it is a good idea to look at these files briefly, and get understanding why they are there. These parts are located in *.s, *.lib, and *.cfg files.
crt0.s - startup code. It inits the hardware, libs, etc. There are few settings in the beginning of the file, you may need to change them if you need to use different kind of mirroring in your project or use a mapper, for example.
runtime.lib - C runtime, i.e. some important code of basic language functionality, such as math routines. This is a custom compile that does not contain any NES specific code. If you need to change it for some reason, you'll need to get CC65 source code and have some fun compiling it with GNU make.
nes.cfg - definiton of the NES memory layout. It is configured for NROM128 project, if you need to make NROM256, add samples, or add extra RAM support, you'll need to edit this as well.
To add some abstraction from the hardware, and make hardware-dependent operations faster, there is also my custom low level part that implements some C functions. You can freely use it in your projects, or you can use it as an example to make your own code, if this one does not have everything that you need. You could call it a library, but it is actually provided as assembly source code, because NES projects tend to require some minor tweaks, like removing unneeded functionality to save some space.
neslib.s - is the custom library itself
neslib.h - C prototypes for the library's functions. There are comments that documents the functions
The custom library also includes FamiTone2 audio library code and sound data in a few separate files:
famitone.s - sound library that plays music and sound effects
sounds.s - sound effects data generated by the nsf2data tool
music.s - music data generated by the text2data tool
Game code and resources
Game code itself is contained in *.c and *.h files. In case of the example game it is just game.c file.
There is a lot of resources as well. They are represented in many ways - *.h files (nametables), *.s files (music), *.chr file (graphics). Potentially *.h and *.s files could be used for anything, and also include different binary formats. Usually these files are automatically generated with tools, so don't wonder why there are so many numbers inside without any explainations.
Not much to say about the game code itself - take all the information from this article into account and read the comments in the code, there are plenty of them.
More important thing to explain is how to make all the game resources, because simply being able to write and compile some code is not enough to make a game. Another important thing is how to handle certain programming related things in general.
Graphics
In a NROM game there are two sets of 8x8 graphics pieces, also called characters, patterns, or tiles. There are 256 of them in each set. You can use one of sets for background graphics, and other set for sprites. Alternatively you can put both background and sprites graphics into one set, slightly modified copy into other, and switch between the sets to create a rough two-frame animation. This is how the animation done in the example game.
All the graphics for the example game is created with NES Screen Tool from scratch, i.e. drawn with its built-in CHR editor. The tool outputs graphics as *.chr file, it is tileset.chr in the example game. You can also edit palettes and nametables there, they could be saved in different formats or copy/pasted as pieces of data directly into the source code.
Large letters and numbers were also drawn with NES Screen Tool. They look messy in the tileset now, but I didn't drawn them that way. Instead, I used 2x3 tiles areas for every symbol, so they had their true shape in the tileset. This lead to many repeating or empty tiles, however. To save space the Optimize function of the tool was used. To make things easier I first created nametables for Level, Game Over and Well Done screens with unoptimized tileset, and also an extra nametable with the large numbers. Then I loaded every nametable with unoptimized tileset and used Optimize - this rearranged the loaded nametable for optimized version of the tileset. This approach saved me from solving a puzzle of creating screens from messed pieces of the optimized tileset.
If you need to work with more complex, larger graphics that in the example game, NES Screen Tool could be not very comfortable. In this case you can use a normal general purpose graphics editor to create the graphics following the NES limitations, then convert and tweak it with NES Screen Tool. Check the docs provided with the tool for details.
I mostly use GraphicsGale as general purpose pixel art editor, sometimes GIMP as well. You can use these or any other, just make sure that your graphics editor has some features that make this kind of work much easier. The features are:
8x8 and 16x16 grids to track how many colors you used in a cell more easily and to align the graphics properly
Snap to grid feature, useful when you need to move graphics around without losing alignment
Layers are always useful
Indexed palette control, ability to move colors around the palette, very useful for preparing the graphics for conversion
Large sprites
NES graphics hardware is only capable to display small sprites, that are either 8x8 or 8x16. My low level library only supports 8x8 mode. To have larger sprites you need to construct them from few smaller ones. That's called a metasprite. To handle metasprites with my library you have to define them as an array of tile numbers, attributes, and offsets from the pivot point.
If your metasprites are basically a rectangle consisting of few tiles placed on the regular 8x8 grid, you can use NES Screen Tool to generate the definitions. You draw metasprite just like you draw a part of nametable, then select the part of the nametable with the sprite, and use Nametable/Copy metasprite function of the program. It'll place the definition into the clipboard, so you can paste it into your source code. It is possible to automatically generate a horizontally flipped copy as well - this way you will use only one set of graphics for both left and right-faced versions, but two metasprite definitions. In my library I considered that flipping a metasprite definition in runtime is not acceptable, because it is slow, and these definitions aren't take too much memory.
For complex metasprites that aren't aligned to the regular grid you'll have to write the definitions by hand.
Levels
In all my NES projects that were written in C, including the example game, I took a shortcut and used NES Screen Tool as a level editor. It works well for simple games, you just draw and save a level as a nametable. For more complex games you would need to make a custom editor, or make an export script for a general purpose one, such as Tiled.
Please note that in the example game map array in the memory is twice smaller compared to the level nametable. The levels stored as RLE-packed nametables, unpacked directly into VRAM, then read back row by row to construct the map array. Object spawn positions are also defined in the nametables, they are removed in the process, and rows written back into the the VRAM. It is not very straightforward, but works well enough, and ultimately make things simpler - no need for a special map editor that would output map in an optimal format, no need to construct nametables from that optimal format in the runtime.
Sound effects
The sound effects are created in FamiTracker for the FamiTone2 requirements. The requirements for sound and music are detailed in the FamiTone2 docs. In short, the process of sound effects creation is like this: you make them in FamiTracker as a multi song file, each effect is a song that ends with C00 command. Then you export NSF file and convert it into an assembly file:
nsf2data sounds.nsf -ca65
The resulting sounds.s file is placed into the project directory, it is always included into the project from crt0.s. If you don't need sound effects in your project, you can disable them with a define there. This will exclude all related code as well.
There are very few sound effects in the example game, so handling priorities is not demonstrated well. There are four virtual channels for sound effects, numbered from 0 to 3. Virtual channels are mixed with music and each other by the volume (louder parts take priority), except for the triangle channel, which is always overlapped with a sound effect channel of the higher number. If a new effect is started on a channel while other effect plays there, the old effect will be stopped. Thus it is important to plan which effect should interrupt each other and which should not, and put them on different virtual channels.
Music
Music is also created in FamiTracker for the FamiTone2 requirements. All the songs are made as a multisong file, so they share the same set of instruments. They are then exported with FamiTracker built-in text exporter and converted into an assembly file:
text2data music.txt -ca65
If FamiTone2 feature set is somehow too limited for you, you can hook up the native FamiTracker player instead. Its code is compilable with ca65, but it would require quite some work that requires 6502 assembly knowledge, especially if you need to have sound effects support. It is also three times larger and twice slower, so make a decision judging by how much free memory and CPU time you have in a project.
PAL and NTSC
One important thing that is specific for all the computer systems that use TV as display device, including NES, is the difference between NTSC and PAL. Since TV frame rate is the main sync source in programs for these systems, and it is differs by 17% between them (50 or 60 Hz of vertical refresh), it should be handled somehow. There are three ways to do this in general.
First and probably the most accurate way is to make the program use fixed point calculations everywhere, and create two versions of the program - one with constant values (such as speed of an object) calculated for NTSC, and other with the values calculated for PAL. PAL constants are NTSC*18/15.
Mantaining two versions of the same program could be rather inconvient, so the second way is to make the program detect which system is used, and use one of two sets of constants. This way allows to have just one version of the program, but it is still unconvient. Not only you have to make all the calculations in fixed point, but now you also don't really have constants, since they are changing depending from the system - so you either need to use variables instead, or have two versions of some parts of the code.
My library uses third way, which is not very accurate, but is free from the disadvantages of the first two methods. It detects the system at start up and skips every sixth frame if the program runs on an NTSC console. So you only need to tweak your timings for PAL once, and they will work the same on NTSC, with a little bit of jerkiness added into the movements. It is used in all my NES games, so you can check them out to decide whether it is noticeable or not. If you want to use my library, but would like to handle the PAL/NTSC problem in some other way, you can disable the frameskip through a define in the crt0.s.
In any case my library will compensate the speed difference for music, but not for music pitch and speed of sound effects. It is a compomise between CPU load and extra ROM size that I assumed to be acceptable. You can change these things too, if you want, but it would require some changes in low level part, such as adding a second note frequency table, and probably a second copy of sound effects data.
Another thing that you have to remember is that the VBlank time is much longer in PAL, and that's the only time when access to the VRAM is possible with enabled display. This time is used by the library's update system that is controlled by vram_set_update and could be used for such things as displaying game stats or level scrolling. If you want to make your program work properly on both systems, you should debug it in NTSC - if it works there, it is guaranteed that it also will work in PAL, but not vice versa.
RAM usage
One of things that you could always remember while desiging NES software is that it has very limited amount of RAM - just 2048 bytes. Furthermore, not all of these are available for C programs.
512 bytes of the RAM are used by CPU in a special way. It is result of the CPU design and can't be changed. First 256 bytes are given to the zero page, a special RAM location, with about 48 of these being used by libraries. Next 256 bytes are given to the CPU stack. Luckily, code that is generated by C compiler barely uses CPU stack - about 32 bytes at max even in large and complex programs. This allows to allocate some internal buffers in the remaining stack space. My library uses it for sound and music player variables and internal palette buffer.
Besides of these, another 256 bytes are used for OAM buffer that is sent through DMA into PPU every frame. That's required by the PPU design and can't be changed too.
So in the end you are given with just 1280 bytes of RAM to store your variables, arrays, buffers and so on. For comparsion, one nametable is 1024 bytes large.
To make local variables work faster you have to make them static, but this also makes them occupy a RAM location constantly. That's why making a set of general purpose global variables that are reused everywhere is recommended. Global variables are a little bit faster than local static ones as well.
You can get some extra RAM by placing some variables into zero page, which has about 200 bytes free. That will also make them work faster and make compiled code a bit smaller. Putting common set of global variables there is a good idea. You can do it by using these pragmas before the variables that should go to zero page:
#pragma bssseg (push,"ZEROPAGE")
#pragma dataseg(push,"ZEROPAGE")
If you want to put some subsequent variables back to the normal place, you can use these pragmas:
#pragma bssseg (push,"BSS")
#pragma dataseg(push,"BSS")
Please note that for the next release of CC65, which is currently only avaialble as a development snapshot, it should be changed to this:
#pragma bss-name (push,"ZEROPAGE")
#pragma data-name(push,"ZEROPAGE")
If your project really needs more than ~1500 bytes of RAM, there is an option to use extra 8K RAM. This is not an easy decision if you going to make a physical release, because that'll require to put an extra RAM chip into every cartridge. To make this memory usable by CC65 you have to edit nes.cfg, check comments there.
ROM size
As the example game is very small, it is compiled as NROM128 - one 16K bank of PRG ROM and one 8K bank of CHR ROM. The number 128 is the PRG ROM size in kilobits (16*8). For larger but still mapperless projects you should use NROM256, which is more common. It has two 16K PRG ROM banks, so 32K in total for code and data. To change the project to this configuration you need to change a define in the crt0.s, and edit nes.cfg - check for comments marked as NROM256.
You can make even larger projects with mappers as well. However, I can't give you much details on this, because I don't have such experience. You can easily control CHR banks through a custom function. I don't think the compiler is capable to place code across PRG banks and perform bankswitching automatically, though, so either your code should completely fit into the fixed bank, and use banks to access to the data, or you have to handle bankswitching somehow. You also could put music and sound player code and data into a separate bank, this would require minor changes in the library code.
As CC65 compiler does not report how much ROM space is used in an easily readable form, I made a small tool, NES Space Checker, that displays it as a simple graph. You may find it handy too. Try to use it on the example game, and you'll see that less than quarter of 16K PRG is empty.
Writing functions in assembly code
If you get into a situation when optimizing C code does not give needed speed or size no matter what, you have an option is to manually rewrite a piece of code into assembly. To do this, you need to know 6502 assembler and figure out RAM layout to get some room for your variables. The question that will arise here is how to create C interface to an assembly routine. Of course, the answer is buried somewhere in the docs and source code, but to save you some time I provide explaination here.
First you need a place to put your code. You can put them into a separate file, let's say myfuncs.s. To do this you need to change the build script (check ca65 calls there and add one for the new file), then add myfuncs.o into ld65 parameters before game.o. Generally it is supposed that one file contain just one function, but you can put them all into a single file as well. You can even not create any new files and simple put your functions into neslib.s if you want, just remember that this way all the code in a file will be included into the project, even if it is never called.
You also need to make a function prototype. Put it into the source code or into a header.
Simplest possible function is one that does not take any parameters and does not return anything:
void __fastcall__ func(void);
Assembly counterpart will look like this:
.export _func ;makes the function available outside of the file
_func:
... ;your code
rts
Now a function that takes a parameter and returns a parameter as well:
unsigned char __fastcall__ func(unsigned char n);
.export _func
_func:
;n is already in the register A
...
;put your return value into the register A
rts
For 16-bit vars you should to use X:A pair, with LSB in A and MSB in X.
In case of more than one input parameter, things are more complex. The __fastcall__ calling convention puts the latest parameter into A or X:A, but all the preceding parameters are put on the software stack, which is slow. So you generally should avoid to use many parameters when possible.
unsigned int func(unsigned int x,unsigned int y,unsigned char n,const unsigned char *ptr);
.export _func
_func:
;ptr is in X:A
jsr popa
;n is in A
jsr popax
;y is in X:A
jsr popax
;x is in X:A
...
;put your return value into X:A
rts
Debugging
My low level part is tested in few actual projects and it is confirmed that it works on the real hardware. Using it you can reduce chances to make a program that works only in emulators, but not on the actual console. However, you still can write something that will not work on the hardware. So it is good idea to test your software on the console using PowerPak or some other way. Of course, testing in emulators during the development process is much more convinent. Use few emulators to test, a good set is Nestopia, Nintendulator, FCEUX and Mednafen - this could reveal some problems that aren't visible in the emulator that you use most of the time. Testing both in NTSC and PAL is a good idea too, for example in FCEUX there are things visible in PAL that are hidden in NTSC.
Sometimes there are problems that occur really briefly, or require to perform a very well timed actions. For example, a wrong palette is set for one frame, or collision check does not work properly with certain coordinates. Many emulators has features that could help you a lot with figuring out these things - slow down, frame-by-frame step, and input recording.
When you write something that seemingly should work properly, but it doesn't, the real fun begins. The problem is that there aren't many comfortable debuggers for C code compiled into 6502 assembly around (yet) - ones that allow to put breakpoints on random C lines and see what the variables contain at the moment. The only C level debugger is currently available in NESICIDE. Usually you only have an assembly level debugger in some emulators, and it is not very helpful with compiled code.
One of things that could help a bit to figure out what is wrong is outputting pieces of C source code as comments for generated assembly code. It is already enabled in the build script of the example game. Compiler places code that is generated from game.c into game.s, you can see this file after you start compile.bat and before pressing any key. This is also comes handy when you want to check out how effective your C code was compiled, and would like to try some ideas to make it compile better.
You can use things like while(1); as a crude breakpoint, or use sound effects as confirmation that certain part of code is reached, etc.
If you need to output a debug value, you can put it into an unused RAM location, usually it is end of the zero page, and check it with a built-in memory viewer in an emulator. Some emulators also allow to watch for an address in more comfortable way. You can use pointers to write something into an address in C:
*(unsigned char*)0x00ff=1; //write 1 into $00ff, it is the last byte of the zero page
Alternatives
In this article I only explained my own approach to the things. There are alternatives for some tools, code, and methods mentioned in the article, so you have choice. I recommend you to check Kalle's Kanister web site, specifically KNES, Pornotracker, and MUSE projects. Another very promising alternative that is going to be much simpler than the approach explained in this article is NESICIDE, check it out too.


{% endblock %}
{% block main_content %}
{% with question_content_type as node_content_type %}
{% with question_model as model %}
{% with question as node %}
{% with "standard" as vote_class %}
{% include "django_multivoting/standard_vote.html" %}
{% endwith %}
{% include "django_qa/elements/question_additional_info.html" %}
{% include "django_qa/elements/question_actions.html" %}
{% comments node_content_type model question.id "compact" %}
Answers
{% include "django_qa/elements/answers_order.html" %}
{% include "django_qa/answers.html" %}
{% with answer_content_type as node_content_type %}
{% with answer_model as model %}
{% include "django_qa/elements/answer_form.html" %}
{% endwith %}
{% endwith %}


wait<T> method
Waits for multiple futures to complete and collects their results.
Returns a future which will complete once all the provided futures have completed, either with their results, or with an error if any of the provided futures fail.
The value of the returned future will be a list of all the values that
were produced in the order that the futures are provided by iterating
futures
.
If any future completes with an error, then the returned future completes with that error. If further futures also complete with errors, those errors are discarded.
If eagerError
is true, the returned future completes with an error
immediately on the first error from one of the futures. Otherwise all
futures must complete before the returned future is completed (still with
the first error; the remaining errors are silently dropped).
In the case of an error, cleanUp
(if provided), is invoked on any
non-null result of successful futures.
This makes it possible to cleanUp
resources that would otherwise be
lost (since the returned future does not provide access to these values).
The cleanUp
function is unused if there is no error.
The call to cleanUp
should not throw. If it does, the error will be an
uncaught asynchronous error.
Implementation
static Future<List<T>> wait<T>(Iterable<Future<T>> futures,
{bool eagerError: false, void cleanUp(T successValue)}) {
final _Future<List<T>> result = new _Future<List<T>>();
List<T> values; // Collects the values. Set to null on error.
int remaining = 0; // How many futures are we waiting for.
var error; // The first error from a future.
StackTrace stackTrace; // The stackTrace that came with the error.
// Handle an error from any of the futures.
// TODO(jmesserly): use `void` return type once it can be inferred for the
// `then` call below.
handleError(theError, StackTrace theStackTrace) {
remaining--;
if (values != null) {
if (cleanUp != null) {
for (var value in values) {
if (value != null) {
// Ensure errors from cleanUp are uncaught.
new Future.sync(() {
cleanUp(value);
});
}
}
}
values = null;
if (remaining == 0 || eagerError) {
result._completeError(theError, theStackTrace);
} else {
error = theError;
stackTrace = theStackTrace;
}
} else if (remaining == 0 && !eagerError) {
result._completeError(error, stackTrace);
}
}
try {
// As each future completes, put its value into the corresponding
// position in the list of values.
for (var future in futures) {
int pos = remaining;
future.then((T value) {
remaining--;
if (values != null) {
values[pos] = value;
if (remaining == 0) {
result._completeWithValue(values);
}
} else {
if (cleanUp != null && value != null) {
// Ensure errors from cleanUp are uncaught.
new Future.sync(() {
cleanUp(value);
});
}
if (remaining == 0 && !eagerError) {
result._completeError(error, stackTrace);
}
}
}, onError: handleError);
// Increment the 'remaining' after the call to 'then'.
// If that call throws, we don't expect any future callback from
// the future, and we also don't increment remaining.
remaining++;
}
if (remaining == 0) {
return new Future.value(const []);
}
values = new List<T>(remaining);
} catch (e, st) {
// The error must have been thrown while iterating over the futures
// list, or while installing a callback handler on the future.
if (remaining == 0 || eagerError) {
// Throw a new Future.error.
// Don't just call `result._completeError` since that would propagate
// the error too eagerly, not giving the callers time to install
// error handlers.
// Also, don't use `_asyncCompleteError` since that one doesn't give
// zones the chance to intercept the error.
return new Future.error(e, st);
} else {
// Don't allocate a list for values, thus indicating that there was an
// error.
// Set error to the caught exception.
error = e;
stackTrace = st;
}
}
return result;
}


Class DboPear
PEAR::DB layer for DBO.
Long description for class
- Object
- DataSource
- DboSource
- DboPear
Package: cake\cake\libs\model\datasources\dbo
Copyright: Copyright 2005-2007, Cake Software Foundation, Inc.
License: The MIT License
Located at cake/libs/model/datasources/dbo/dbo_pear.php
Copyright: Copyright 2005-2007, Cake Software Foundation, Inc.
License: The MIT License
Located at cake/libs/model/datasources/dbo/dbo_pear.php
public
boolean
|
|
public
boolean
|
|
public
resource
|
|
public
array
|
|
public
array
|
#
tablesList( )
Returns an array of tables in the database. If there are no tables, an error is raised and the application exits. :WARNING: :TODO: POSTGRESQL & MYSQL ONLY! PEAR::DB doesn't support universal table listing. |
public
array
|
|
public
string
|
#
prepareValue( string $data )
Returns a quoted and escaped string of $data for use in an SQL statement. |
public
string
|
|
public
integer
|
#
lastAffected( )
Returns number of affected rows in previous database operation. If no previous operation exists, this returns false. |
public
integer
|
#
lastNumRows( )
Returns number of rows in previous resultset. If no previous resultset exists, this returns false. |
public
integer
|
|
public
string
|
#
selectLimit( integer $limit, integer $offset = '0' )
Returns a limit statement in the correct format for the particular database. |
__cacheDescription(),
begin(),
column(),
commit(),
describe(),
insertQueryData(),
isInterfaceSupported(),
listSources(),
rollback(),
setConfig(),
sources()
|
Object(),
__openPersistent(),
_persist(),
_savePersistent(),
_set(),
cakeError(),
log(),
requestAction(),
toString()
|
public
|
$_pear | null |
#
PEAR::DB object with which we connect. |
$__bypass,
$__sqlOps,
$alias,
$description,
$endQuote,
$goofyLimit,
$index,
$startQuote
|
$__descriptions,
$_baseConfig,
$_queriesCnt,
$_queriesLog,
$_queriesLogMax,
$_queriesTime,
$_queryCache,
$_result,
$_sources,
$_transactionStarted,
$affected,
$cacheSources,
$config,
$configKeyName,
$connected,
$connection,
$error,
$fullDebug,
$numRows,
$took
|
$_log
|


This check finds containers that do not have CPU and memory limits configured.
container_cpu_usage_seconds_total
and
container_memory_working_set_bytes
metrics in prometheus-kubernetes. The Grafana dashboard
Container Resources
shows these metrics in the "CPU Usage" and "Memory Usage" panels. Set
the memory request equal to the memory limit to avoid unexpected scheduling behavior. For CPU, request
and limit can and should diverge: The request represents the baseline load, the limit encompasses all expected
spikes.


How to Craft Clear Questions November 17, 2014
What's the "Rails" part of Ruby on Rails? November 10, 2014
Anatomy of a Conflict November 9, 2014
Ruby Hashes and Arrays Cheat Sheet November 8, 2014
Ruby Hashes vs. JavaScript Objects November 2, 2014
Volunteering: an Anti-doubt to Stereotype threat November 2, 2014
Stereotype Threat October 27, 2014
Modules vs. Classes in Ruby October 27, 2014
DBC Pairing and Feedback October 22, 2014
Ruby Instance Variables and Methods: a Haunting Introduction October 22, 2014
The XX Factor: Women in Tech October 12, 2014
Intro to the Enumerable method Map
October 12, 2014
My Thinking Style - Meta reflection October 5, 2014
Ruby: Arrays and Hashes October 5, 2014
CSS Positioning: Relative, Absolute and Fixed Sept. 30, 2014
Kitchen vs. Restaurant: First Reflection on DBC Culture, Sept. 21, 2014
Git & GitHub: the Basics Sept. 21, 2014


This diagram shows how the 'vertical-align' properties on cells combine to determine the height of the row containing the cells. The diagram also illustrates the meaning of some values of 'vertical-align' that apply to table cells: baseline, top, bottom, and middle.
The diagram shows a row of five (labeled) table cells of varying heights and alignments. To the right of the row, labels indicate the horizontal position of the row's top, baseline, middle, and bottom (from top to bottom).
The first cell is aligned with the row baseline and extends to just below the row top. The second cell is also aligned with the row baseline and extends to just above the row bottom. The third cell is aligned with the top of the row and extends to just above the row middle. The fourth cell is aligned with the row bottom, and extends to just above the row middle. The fifth cell is aligned with the row middle and touches neither the top nor bottom of the row. A red horizontal line within each cell box shows how it aligns vertically in the row box.


ANGEL EYES
Directed by Luis Mandoki
With Jennifer Lopez, James Caviezel
UA South R 103 min.
It may be a sign of a beginning thaw, or perhaps just of audience desperation, but this year's bad movies are beginning to seem a little less bad. Angel Eyes, the Jennifer Lopez action-romance with a supernatural tease, is bearable and sometimes even engaging. It should never be confused with a good movie, but it will do to pass the time.
It comes from director Luis Mandoki, whose When a Man Loves a Woman and Message in a Bottle will give you some idea of what to expect - soapy sentiment yoked to professional competence. This idea was probably born following a screening of The Sixth Sense, or rather after the box office returns began to show the sleeper potential of that movie's supernatural appeal.
Angel Eyes picks up where the Shyamalan movie left off. There, we weren't supposed to even think about the fact that Bruce Willis might be dead until the surprise ending. Here, we're supposed to think about little else. Is he dead or isn't he? Catch (James Caviezel) strides the seedy neighborhoods of Chicago in his long flapping overcoat (wings?) doing good deeds which go largely unappreciated. But we've seen him before - in the movie's prologue, when Officer Sharon Pogue (Jennifer Lopez) tries to save his life at the scene of a terrible auto accident. Does she or doesn't she? Only the filmmakers know for sure..
When they meet again, neither of them seem to recall the incident. He feels a bond with her, but doesn't appear to know why. His face rings no bells with her.
Here's what we know about Sharon: she comes from a family where the men sometimes beat up their wives. She once called the cops on her father (Victor Argo) when he was beating up her mother (Sonia Braga), and he hasn't spoken to her since. Now she's a cop herself, and as tough as they come. She drinks and swaps friendly macho barbs with the guys. But she has intimacy issues.
 He's a bit on the weird, silent side, but Caviezel is too good an actor to leave himself completely mired in that tedious movie clichE9, and he leavens his = performance with unexpected smiles and flashes of humor. He has a kitchen drawer full of action figures, and it's hard to miss the correlation with Sharon, a feisty little action figure herself if there ever was one. He leaves doors open. And he has intimacy issues.
To a large extent your enjoyment level will depend on how well you connect with its two stars, and how well you feel they connect to each other. There are bits of cinematic carelessness: Sharon takes a bullet smack in the bulletproof vest, which leaves a deep and angry bruise above her breast; but the next time she exposes that area of flesh, and it doesn't take long, it's creamy enough to reveal at the Oscars. There are also bits of pure pleasure: Catch picks up a trumpet on the bandstand at a blues club and plays a nicely haunting rendition of "Nature Boy". And of course there are many bits of nonsense: long silences as people stare uncomfortably at each other, a disease that seems to be caused by cameras and lights.
This isn't a gotta-see-it movie, it's more of a what's-at-the-movies movie.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Mike's Website
Mike DeWine loves Ohio and cares passionately about our state’s future. He knows that every parent wants their kids to have an opportunity for a solid education, a healthy life that is free of drugs, and a good paying job later in life.
Positions Held:
- Current Ohio Attorney General
- Former U.S. Senator


WITNESS LIST
Environmental Regulation Committee
April 24, 2018 - 9:00 AM
(SUBCOMMITTEE MEETING - Air Quality and Municipal Landfills)
Economic impact of NAAQS
On:
Brymer, David (TCEQ)
Clark, Lori (North central texas council of governments)
Hoekzema, Andrew (Capital Area Council of Governments)
Landwehr, Martha (Texas Chemical Council)
Nelson, Bakeyah (Air Alliance Houston)
Pomeroy, Cory (Texas Oil & Gas Association)
Reed, Cyrus (Lone star chapter sierra club)
Shelley, Adrian (Public Citizen)
Speck, Imelda (City of Lancaster)
Vickery, Mark (Texas Association of Manufacturers)
Whitworth, Shelley (Houston Galveston Area Council)
Registering, but not testifying:
On:
Sughrue, Frank L. (Self)
Expedited air permitting program (TCEQ)
On:
Johnson, Windy (Texas conference of urban counties)
Landwehr, Martha (Texas Chemical Council)
Nelson, Bakeyah (Air Alliance Houston)
Pomeroy, Cory (Texas Oil & Gas Association)
Shelley, Adrian (Public Citizen)
Vickery, Mark (Texas Association of Manufacturers)
Wilson, Mike (TCEQ)
Municipal Landfills
On:
Abdelhalim, Dalia (Self)
Allmon, Eric (Texas Center for Policy Studies)
Bledsoe, Gary (Self; Stop greenhouse landfield)
Brown, Gary (Self; Stopgreenhouselandfill.com)
Chamberlain, Steve (Self; Citizens to Save Cedar Creek)
Dobbs, Andrew (Texas Campaign for the Environment)
Friedrich, Byron (Self)
Haney, Brenda (TxSWANA)
Hernandez, Adrian (Self)
Keel Linden, Kelly (TCEQ)
King, Patton (Self)
Lott, Earl (TCEQ)
Macomb, Chris (Waste Management of Texas, Inc.)
1
WITNESS LIST
On:
Martinez, Jaime (Self)
Mcafee, Melanie (Self)
Mears, Ed (Self)
Messenger, Allen (Self; ANB Cattle Co.)
Meuth, Mark (Self; Bastrop County)
Minick, Stephen (Republic Services)
Morrow, David (Self)
Pasternak, Scott (Burns and McDonnell)
Perales, Marisa (Self; Frederick perales allmon)
Roland, Joe (Caldwell. County)
Saade, Rosa (Self)
Schneider, Robin (Self; Texas campaign for the. environment)
Seidenberger, Gregory (Self; Guagalupe County commissioners Court)
Shelley, Adrian (Public Citizen)
Sinclair, Bryan (TCEQ)
Sughrue, Frank L. (Self)
Thompson, Bob (Self)
Tiffin, Rhonda (Self; County of Webb, Texas)
Trevino, Jr., Jorge (Webb County)
Vemula, Chandrakanth (Self)
Vickers, Kelley (Guadalupe County Groundwater Conservation District)
Yturralde, Greg (TCEQ)
Zayas, Heather (Self; Brazoria Fort Bend MUD 1)
Registering, but not testifying:
On:
Abshier, James (Self)
Abshier, Vicki (Self)
Burklund, Adam (National Waste and Recycling Association)
2


Please login using your email address and proper password. This allows us to verify you are who you say you are. Thank you!


Episode IV
A New HOPE
It is a period of civil war. Rebel spaceships, striking from a hidden base, have won their first victory against the evil Galaxy Empire.

Pursued by the Empire's sinister agents, Princess Leia races home aboard her starship, custodian of the stolen plans that can save her people and restore freedom of the galaxy...


Japanese women fight for right to wear glasses to work
TOKYO: Japanese women have taken to Twitter to demand the right to wear glasses to work after reports employers were imposing bans, in the latest social media outcry against rigid rules on women's appearance.
The hashtag "glasses are forbidden" has been trending after a Japanese television show exposed businesses that were imposing bans on female staff.
"These are rules that are out of date," one Twitter user posted under the hashtag, while another called the reasons given by employers "idiotic".
One woman who works in restaurants tweeted that she was repeatedly told not to wear her glasses because it would appear "rude" and they did not go with the traditional kimono she wore.
READ: High heels 'necessary', Japan minister says after petition
The tweet, posted under the handle @wine_kimono last month, has since been shared nearly 13,000 times.
"If the rules prohibit only women to wear glasses, this is a discrimination against women," Kanae Doi, the Japan director at global advocacy group Human Rights Watch, told the Thomson Reuters Foundation on Friday.
The latest outcry came after a campaign earlier this year that demanded Japanese companies stop forcing their female staff to wear high heels to work.
More than 21,000 people signed an online petition started by a Japanese actress earlier this year that called for a ban on compulsory high heels at work, in what has been known as the #KuToo movement.
In response, a Japanese minister said dress code expectations were "necessary and appropriate" in the workplace.
Japan was ranked 110 out of 149 countries in the World Economic Forum's latest Global Gender Gap report, well behind other developed countries.


Back from Madrid JUG and Codemotion Madrid!!
We’ve just come back from our trip to Spain and first of all, we’d like to thank everyone who attended our talks and workshops at Madrid Java User Group and Codemotion Madrid as well organisers and sponsors who made it possible!
We had a very hectic schedule, which started with a Red Hat double bill for Madrid JUG. Thomas Segismont started the evening with Vert.x talk and Galder followed up with a talk on how to do data analytics using Infinispan-based data grids.
In the data analytics talk, Galder focused on how to use distributed Java Streams to do analytics and also showed how to use Infinispan Spark connector when Java Streams are not enough. The distributed Java Streams demo he ran can be found here. The most relevant files of that demo are:
-
Live coding instructions, follow them to do the same steps he did in the talk.
-
Server task solution class using distributed Java Streams.
Galder also demonstrated how to use Infinispan Spark connector by showing the Twitter example. The slides from this talk (in Spanish) can be found here:
Next day on Friday, Galder gave a talk at Codemotion Madrid on working with streaming data with Infinispan, Vert.x and OpenShift. For the first time he was running it all on top of Google Cloud, so he could finally free up my laptop from running the demos and take advantage of the power of a cloud provider!
The demo can be found here where you can also find instructions on how to run it on top of Google Cloud. If you want to follow the same steps he followed during the talk, live coding instructions are here. The slides from this talk (in Spanish) can be found here:
Finally on Saturday we delivered the Streaming Data workshop at Codemotion Madrid. Once again, basing our workshop on top of Virtual Box still caused us some issues, but people managed to get through it. We have some plans for next year to avoid the need of Virtual Box, stay tuned!
http://3.bp.blogspot.com/-vhDHZjc2CX0/Wh0t4gzxt3I/AAAAAAAAFDY/J_1l7ze26-gYTcp3XSu_S7AeZs2zFbM4QCK4BGAYYCw/s1600/DPfG2yYX0AAH682.jpeg[]
http://3.bp.blogspot.com/-hKcqGpbsNno/Wh0t4QnaYaI/AAAAAAAAFDI/k8OvIG8-VpMvZPhHRKVjyADMBdASgnBEQCK4BGAYYCw/s1600/DPfG2yWXUAEOdoY.jpg[]
We have added more detailed instructions on how to run the workshop in your office or at home, so if you’re interested in going through it, make sure you check these steps and let us know how they work for you:
This trip to Madrid wraps up a very intense year in terms of promoting Infinispan! Next month we’ll be doing a recap of the talks, videos…etc so that you can catch up with them in case you missed any of them :)
Katia & Galder Un saludo!


Eating Out: Elegant, cool, composed, Chapter V is everything I aspire to be
by Dominic KearneyChapter V
5 Killyman Street
Moy
Co Tyrone
028 8778 4521
chaptervrestaurant.com
HERE you go. You can have this one for free. If you’re planning on going to Chapter V, make sure you book first. Firstly, I shouldn’t need italics to make the joke clear. Secondly, this is both hilarious and true, as it was full the day we were there.
Right. Our happy family Sunday jaunt was put in jeopardy by my daughter’s sudden illness. Also at risk was my tilt at the Husband of the Year title, as I said, Are you sure? just the once to my wife’s offer to stay at home and look after her, before heading out of the door and dashing to the car with my brother.
Moy is miles away. Probably not from everywhere, but certainly from Derry, and the journey was made even longer by our mad satnav, which took us there via the narrowest tracks in the Sperrins. Fastest route my foot!
But no matter how long it takes to get there, just go. This place is elegant, sophisticated, cool, warm, composed, and very good at what it does. Everything I aspire to be, in fact. And stylish, too.
You enter after climbing a flight of stone steps from street level, and are seated in the bar to look over the menu. This part of the restaurant is low, blue, and muted. As you go to the dining area, towards the rear of the building, the space opens out to a light and airy double-height room, with high wooden beams.

The St Kevin’s brie was gently warmed and just starting to melt inside its wrapper of crisp pastry strands. A beautiful, oozy texture and a sweet, mild flavour, the cheese was then elevated by the addition of the sharp beetroot jam.
I ordered the wild boar bon bon, attracted by the clanging juxtaposition of words as much as anything else. The meat was blended with a gently peppery black pudding, and the two tastes played nicely together. The celeriac and apple added sweet and sharp, while the toasted hazelnuts gave bonus texture and a sense of the autumnal.
I asked for horseradish mash with my beef cheeks, rather than the mustard mash on the menu, and was delighted I did so. The meat was soft and melting, having been slow-cooked overnight, and the horseradish within the creamy mash really shook it awake. The cavolo nero was crisp and lovely, while the shallot puree provided a nice hit of onion and the stout added a pleasing, mildly bitter aftertaste.
Like the beef cheeks, the pork had been pressed and rolled. Also like the beef cheeks, it was deliciously moist and tender and full of flavour. The potato slices were crisp and well seasoned, and the apple and thyme lifted and enhanced the flavour of the meat delightfully.
The puddings were absolutely spot-on. I have never been a fan of white chocolate, so I wasn’t looking forward to trying the crème brulée. However, if the Milky Bar Kid had been peddling this stuff I would have been sold long ago. It was just gorgeous – sweet and creamy, simultaneously light and deep, I could have eaten a bucket of it.
But, it wasn’t as good as the lemon posset. What a way to finish a meal – light as you like, the sharpness of the lemon cleverly controlled with just the right amount of sweetness, with delicious biscotti for crunch. I mustn’t forget the lovely, gooey, rich chocolate brownie, that I got to take back for my wife, although I probably shouldn’t have eaten it on the way home.
The restaurant’s location is lovely, the set-up feels both relaxed and special, and the cooking is seriously good, with a clever consideration of flavours and textures. Chapter V should definitely be in your good books.

Three courses for £21.95
Sides: Buttered carrots £3.50
Cauliflower cheese £3.50
Chocolate brownie to go £5.95
Diet Coke £2.30
Total: £59.15


Campus Albertov
This is visualization of Campus Albertov. This project was assigned by professors at our university as celebration of 100 years anniversary of Campus Albertov. Future plan is create model 4 periods of Campus Albertov (1850, 1910, 1950, 2019). This model is showing year 2019 and it is not finished yet.
It was my enty-project into 3D modeling. The whole proces of this project was made together with teachers and other students at my university. Main benefit from this project is, that I got used to on working in group. Each building was modeled by different student and my final job was to group, edit and finish all building. Also I made surface, textures and and whole vizualization for this model.
You can download modeling procedure text here. (czech language only)
Google Streetview from Campus Albertov:
Interactive 3D Model
If 3D model is not loading, please turn off your Adblock.
You are able to jump in 3D model using green arrows. Fullscreen and VR mode is also supported (icons on right upper corner). In right-side panel you are able to find place where campus is situtated.
Renders
Video
Fly-through Campus Albertov


class Bundler::Index
Constants
- EMPTY_SEARCH
- NULL
- RUBY
Attributes
all_specs[R]
sources[R]
specs[R]
Public Class Methods
build() { |i| ... }
click to toggle source
# File lib/bundler/index.rb, line 7 def self.build i = new yield i i end
new()
click to toggle source
# File lib/bundler/index.rb, line 19 def initialize @sources = [] @cache = {} @specs = Hash.new {|h, k| h[k] = {} } @all_specs = Hash.new {|h, k| h[k] = EMPTY_SEARCH } end
sort_specs(specs)
click to toggle source
# File lib/bundler/index.rb, line 81 def self.sort_specs(specs) specs.sort_by do |s| platform_string = s.platform.to_s [s.version, platform_string == RUBY ? NULL : platform_string] end end
Public Instance Methods
<<(spec)
click to toggle source
# File lib/bundler/index.rb, line 105 def <<(spec) @specs[spec.name][spec.full_name] = spec spec end
==(other)
click to toggle source
Whether all the specs in self are in other TODO: rename to include?
# File lib/bundler/index.rb, line 163 def ==(other) all? do |spec| other_spec = other[spec].first other_spec && dependencies_eql?(spec, other_spec) && spec.source == other_spec.source end end
add_source(index)
click to toggle source
# File lib/bundler/index.rb, line 176 def add_source(index) raise ArgumentError, "Source must be an index, not #{index.class}" unless index.is_a?(Index) @sources << index @sources.uniq! # need to use uniq! here instead of checking for the item before adding end
dependencies_eql?(spec, other_spec)
click to toggle source
# File lib/bundler/index.rb, line 170 def dependencies_eql?(spec, other_spec) deps = spec.dependencies.select {|d| d.type != :development } other_deps = other_spec.dependencies.select {|d| d.type != :development } deps.sort == other_deps.sort end
dependency_names()
click to toggle source
# File lib/bundler/index.rb, line 131 def dependency_names names = [] each do |spec| spec.dependencies.each do |dep| next if dep.type == :development names << dep.name end end names.uniq end
each(&blk)
click to toggle source
# File lib/bundler/index.rb, line 110 def each(&blk) return enum_for(:each) unless blk specs.values.each do |spec_sets| spec_sets.values.each(&blk) end sources.each {|s| s.each(&blk) } self end
empty?()
click to toggle source
# File lib/bundler/index.rb, line 44 def empty? each { return false } true end
initialize_copy(o)
click to toggle source
# File lib/bundler/index.rb, line 26 def initialize_copy(o) @sources = o.sources.dup @cache = {} @specs = Hash.new {|h, k| h[k] = {} } @all_specs = Hash.new {|h, k| h[k] = EMPTY_SEARCH } o.specs.each do |name, hash| @specs[name] = hash.dup end o.all_specs.each do |name, array| @all_specs[name] = array.dup end end
inspect()
click to toggle source
# File lib/bundler/index.rb, line 40 def inspect "#<#{self.class}:0x#{object_id} sources=#{sources.map(&:inspect)} specs.size=#{specs.size}>" end
local_search(query, base = nil)
click to toggle source
# File lib/bundler/index.rb, line 92 def local_search(query, base = nil) case query when Gem::Specification, RemoteSpecification, LazySpecification, EndpointSpecification then search_by_spec(query) when String then specs_by_name(query) when Gem::Dependency then search_by_dependency(query, base) when DepProxy then search_by_dependency(query.dep, base) else raise "You can't search for a #{query.inspect}." end end
search(query, base = nil)
click to toggle source
Search this index's specs, and any source indexes that this index knows about, returning all of the results.
# File lib/bundler/index.rb, line 59 def search(query, base = nil) sort_specs(unsorted_search(query, base)) end
Also aliased as: []
search_all(name)
click to toggle source
# File lib/bundler/index.rb, line 49 def search_all(name) all_matches = local_search(name) + @all_specs[name] @sources.each do |source| all_matches.concat(source.search_all(name)) end all_matches end
size()
click to toggle source
# File lib/bundler/index.rb, line 155 def size<EMAIL_ADDRESS>do |size, source| size += source.size end end
sort_specs(specs)
click to toggle source
# File lib/bundler/index.rb, line 88 def sort_specs(specs) self.class.sort_specs(specs) end
spec_names()
click to toggle source
# File lib/bundler/index.rb, line 119 def spec_names names = specs.keys + sources.map(&:spec_names) names.uniq! names end
unmet_dependency_names()
click to toggle source
# File lib/bundler/index.rb, line 125 def unmet_dependency_names dependency_names.select do |name| search(name).empty? end end
use(other, override_dupes = false)
click to toggle source
# File lib/bundler/index.rb, line 142 def use(other, override_dupes = false) return unless other other.each do |s| if (dupes = search_by_spec(s)) && !dupes.empty? # safe to << since it's a new array when it has contents @all_specs[s.name] = dupes << s next unless override_dupes end self << s end self end
Protected Instance Methods
unsorted_search(query, base)
click to toggle source
# File lib/bundler/index.rb, line 63 def unsorted_search(query, base) results = local_search(query, base) seen = results.map(&:full_name).uniq unless @sources.empty? @sources.each do |source| source.unsorted_search(query, base).each do |spec| next if seen.include?(spec.full_name) seen << spec.full_name results << spec end end results end
Private Instance Methods
search_by_dependency(dependency, base = nil)
click to toggle source
# File lib/bundler/index.rb, line 188 def search_by_dependency(dependency, base = nil) @cache[base || false] ||= {} @cache[base || false][dependency] ||= begin specs = specs_by_name(dependency.name) specs += base if base found = specs.select do |spec| next true if spec.source.is_a?(Source::Gemspec) if base # allow all platforms when searching from a lockfile dependency.matches_spec?(spec) else if Gem::Platform.respond_to? :match_spec? dependency.matches_spec?(spec) && Gem::Platform.match_spec?(spec) else dependency.matches_spec?(spec) && Gem::Platform.match(spec.platform) end end end found end end
search_by_spec(spec)
click to toggle source
# File lib/bundler/index.rb, line 212 def search_by_spec(spec) spec = @specs[spec.name][spec.full_name] spec ? [spec] : EMPTY_SEARCH end
specs_by_name(name)
click to toggle source
# File lib/bundler/index.rb, line 184 def specs_by_name(name) @specs[name].values end


FAQ #
Pages #
Can we organize markdown files in subdirectories ?
Yes, starting with version 0.4.0 organization of markdown files in subdirectories 'docs/*.md'
with extension 'md'
under 'docs'
folder is possible. With that feature comes the data entry ${data.base}
, which is holding the relative path from the current markdown file
to the 'docs'
folder and can be used in template header sections.
Changing "math"
setting in frontmatter section has no visual effect on math rendering.
Hmm, you need to ...
- add or change
"math":true/false
setting in the frontmatter section of your markdown document. - activate (set focus away to) any other editor window (preview window works perfect here).
- reactivate (set focus back to) your markdown document.
- make any modification (a simple keystroke should work) and see change in math rendering.
Styles #
Where are the style sheets ?
The CSS styles are defined in the file /docs/theme/styles.css
. They are referenced by the templates in file /docs/theme/template.js
.
Can we change the styles ?
Yes. Change them in file /docs/theme/styles.css
or rename it or use multiple CSS files. You only need to reference them from the templates in /docs/theme/template.js
.
Templates #
Where are the templates ?
The templates are defined in file /docs/theme/template.js
. They are basically delivered by simple JavaScript functions returning template literals. Those recieve extended versions of the frontmatter metadata.
Can we change the templates ?
Yes, of course. New themes are generated exactly by that. So go on and do it.
Are other template engines supported ?
No sorry, it's due to minimalism paradigma.
Deployment #
Is it possible to deploy to other hosting platforms ?
Yes, it should be easy in principle. Nothing done here yet.


|
MoveToCode
|
Describes an Input Event that has a source id. More...
Public Member Functions | |
| InputEventData (EventSystem eventSystem) | |
| void | Initialize (IMixedRealityInputSource inputSource, Handedness handedness, MixedRealityInputAction inputAction) |
| Used to initialize/reset the event and populate the data. More... | |
| InputEventData (EventSystem eventSystem) | |
| void | Initialize (IMixedRealityInputSource inputSource, Handedness handedness, MixedRealityInputAction inputAction, T data) |
| Used to initialize/reset the event and populate the data. More... | |
Properties | |
| Handedness | Handedness = Handedness.None [get] |
| Handedness of the Microsoft.MixedReality.Toolkit.Input.IMixedRealityInputSource. More... | |
| T | InputData [get] |
| The input data of the event. More... | |
| Properties inherited from Microsoft.MixedReality.Toolkit.Input.BaseInputEventData | |
| DateTime | EventTime [get] |
| The UTC time at which the event occurred. More... | |
| IMixedRealityInputSource | InputSource [get] |
| The source the input event originates from. More... | |
| uint | SourceId [get] |
| The id of the source the event is from, for instance the hand id. More... | |
| MixedRealityInputAction | MixedRealityInputAction [get] |
| The input action for this event. More... | |
Additional Inherited Members | |
| Protected Member Functions inherited from Microsoft.MixedReality.Toolkit.Input.BaseInputEventData | |
| BaseInputEventData (EventSystem eventSystem) | |
| Constructor. More... | |
| void | BaseInitialize (IMixedRealityInputSource inputSource, MixedRealityInputAction inputAction) |
| Used to initialize/reset the event and populate the data. More... | |
Describes an Input Event that has a source id.
Describes and input event with a specific type.
| T |
| Microsoft.MixedReality.Toolkit.Input.InputEventData< T >.InputEventData | ( | EventSystem | eventSystem | ) |
| Microsoft.MixedReality.Toolkit.Input.InputEventData< T >.InputEventData | ( | EventSystem | eventSystem | ) |
| void Microsoft.MixedReality.Toolkit.Input.InputEventData< T >.Initialize | ( | IMixedRealityInputSource | inputSource, |
| Handedness | handedness, | ||
| MixedRealityInputAction | inputAction | ||
| ) |
Used to initialize/reset the event and populate the data.
| void Microsoft.MixedReality.Toolkit.Input.InputEventData< T >.Initialize | ( | IMixedRealityInputSource | inputSource, |
| Handedness | handedness, | ||
| MixedRealityInputAction | inputAction, | ||
| T | data | ||
| ) |
Used to initialize/reset the event and populate the data.
|
get |
Handedness of the Microsoft.MixedReality.Toolkit.Input.IMixedRealityInputSource.
|
get |
The input data of the event.


# Heading (H1)
## Sub Heading (H2)
### Steps (H3)
###List Items
* One
* Two
* Three
## GH Flavored Block quotes & Tasklist
#### Tasklists
- [ ] This is still pending
- [x] This task is done
#### Inline Code `Github`
Emphasis, aka italics, with *asterisks* or _underscores_.
Strong emphasis, aka bold, with **asterisks** or __underscores__.
Combined emphasis with **asterisks and _underscores_**.
Strikethrough uses two tildes. ~~Scratch this.~~
##Links
There are two ways to create links.
[I'm an inline-style link](https://www.google.com)
##Images
Reference-style:
![alt text][logo]
[logo]: http://www.teradata.com/images/Homepage2015/teradata-logo-2x.png "Teradata Labs"
Here's our logo (hover to see the title text):
Inline `code` has `back-ticks` around it.
Inline code
has back-ticks around
it.
Blocks of code are either fenced by lines with three back-ticks ```
, or are indented with four spaces. I recommend only using the fenced code blocks -- they're easier and only they support syntax highlighting.
```javascript
var s = "JavaScript syntax highlighting";
alert(s);
```
```python
s = "Python syntax highlighting"
print s
```
Blockquotes
> Blockquotes are very handy in email to emulate reply text.
> This line is part of the same quote.
Quote break.
> This is a very long line that will still be quoted properly when it wraps. Oh boy let's keep writing to make sure this is long enough to actually wrap for everyone. Oh, you can *put* **Markdown** into a blockquote.
Blockquotes are very handy in email to emulate reply text. This line is part of the same quote.
Quote break.
This is a very long line that will still be quoted properly when it wraps. Oh boy let's keep writing to make sure this is long enough to actually wrap for everyone. Oh, you can put Markdown into a blockquote.
Inline HTML
Three or more...
---
Hyphens
***
Asterisks
___
Underscores
]]>
Use ]]>
element to parse the markdown files
Wrap your code snippets in ]]>
Note: showdown.js
needs to be added as vendor and referenced in `index.html`.
HTML
# Heading
## Sub Heading (H2)
### Steps (H2)
]]>
Typescript:


Towan
Please sign in here
Invalid username and password.
You have been logged out.
Email address
Password
Sign In
Forgotten your password?
Back


TO DIE FOR A film review by Bryant Frazer Copyright 1995 Bryant Frazer
Directed by Gus Van Sant Written by Buck Henry from the novel by Joyce Maynard Music by Danny Elfman Starring Nicole Kidman, Joaquin Phoenix U.S.A., 1995
TO DIE FOR is an ambitious little flick about the seductive lure of stardom, the suggestive power of Nicole Kidman's lips, and the promise of liberation held by a teenage flunky with a handgun who's willing to lose everything for your love. The movie is ambitious, and sounds terrific on paper, but director Gus Van Sant (MY OWN PRIVATE IDAHO, EVEN COWGIRLS GET THE BLUES) can't pull everything together to make any impact at all. It's enough to make you wonder what he's doing with this script in the first place.
Nicole Kidman is TO DIE FOR as Suzanne Stone, the small town TV "weather girl" who makes international tabloid headlines when she's accused of having her husband Larry (Matt Dillon, doing fine) murdered by her teenage lover Jimmy (Joaquin Phoenix) and his friends Russell (Casey Affleck) and Lydia (Alison Folland). Joyce Maynard's novel is apparently a fictionalized version of a very true incident in a small New Hampshire town, but the movie excludes any understanding of that situation by chasing its own tale, a cautionary comic book painted in broad strokes and saturated colors.
Screenwriter Buck Henry and director Gus Van Sant go ga-ga over their own technique in the first few shots, when Suzanne and other characters address the camera directly, as though being interviewed for a TV news special report. Janice, Larry's lesbian sister, explains that she knew from the start that Suzanne was a four-letter word beginning with C (we're left to fill this in from the backs of our own filthy little minds, but the word she's looking for is cold). Lydia holds forth for the camera on Suzanne's philosophy and TV-centric world view. Jimmy mumbles half- articulately about how in love he is with Suzanne. And the parents of Suzanne and Larry are guests on a talk show, explaining that they knew the marriage was doomed from the start. All of this is intercut, of course, with objective flashbacks illustrating the events the characters relate. The novelty of this approach wears off almost immediately, and the herky-jerky cutting back and forth from scene to scene becomes tiresome, albeit appropriate to the movie's theme.
Maybe it's a shame that the studio has given TO DIE FOR away, both in the marketing campaign (Nicole Kidman = murderous sexpot) and in the movie's own title sequence, which runs headlines and lurid tabloid copy underneath the credits over and over again. There's really only one major event in the whole film, and the surrounding material seems edited by an iron fist wrapped around a machete--Whap! Whap!--no surprises at all.
All that's left for the audience is to sit and wait to see the thing itself happen, and it happens pretty much the way you expect. You might expect Suzanne's casual cruelty to be shocking, but her dialogue is strictly rote.  Her name is suddenly being bandied about as Oscar material, suggesting that critics still love it when a woman can sex it up and play the embodiment of female evil at the same time. She's certainly something to look at, but her performance shares a calculated coldness that turns the movie blue.
So it's cold, but it's not quite a corpse. Where is the beating heart of TO DIE FOR? Well, Van Sant still has style to spare, and his sympathy is obviously with the kids, who are better drawn than the other characters. In a funny way, Lydia is allowed to be the smartest person in the whole film, reflecting at length on Suzanne's world view while managing to keep at arm's length, and becoming her own kind of celebrity. Pudgy Lydia is the antithesis of Suzanne, who's clearly Miss America material even if she's not quite wholesome. And when we see Susan in her underwear, it's either to make a point of her distance from Larry or to show her cajoling a promise from her teenaged lover. Meanwhile, the camera lingers on Jimmy's trembling, naked body, obviously far more intrigued by the nature of his lost soul than Suzanne's corrupt one. More lively is a devilish twist near the end of the film, and watch out for Canadian director David Cronenberg in a cameo.
The real problem is that for a black comedy, TO DIE FOR is mighty unfunny. Finally, the movie's own cynicism does it in. TO DIE FOR is mainly contemptuous and condescending, with little of the wit or insight that marks a strong comedy. Reviewers have been comparing it, believe it or not, to Pulp Fiction, apparently believing that the two movies share a hip self-awareness. But that's dead wrong. Where Tarantino worked Pulp Fiction through with an honest, burning urgency and some kind of moral message that managed to transcend its own essential brutality (hey, it's more fun than it sounds), Van Sant can't lift TO DIE FOR out of its own narcissistic meanderings. Here's a movie that's very pleased with itself, but doesn't really speak to us. The message here? Every stereotype you've ever heard is absolutely true. If she goes down on you, you'll do whatever she says. Loser children with no future live in trailer parks and listen to abrasive heavy metal.  (Like we needed Gus Van Sant to show us that!)
DEEP FOCUS: Movie Reviews by Bryant Frazer http://www.panix.com/~bfrazer/flicker/<EMAIL_ADDRESS>The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


The 2019 Add Maths SPM Paper Was So Hard, Even Teachers Had Trouble Answering!
by AlenaTap to listen to this article instead: 🔊 Listen to Post
Add Maths is the bane of existence of every SPM taker ever, and we believe that no other subject will take this top spot.
However, this year’s Add Maths SPM paper has come under fire. It is said that the questions for Add Maths papers were so hard that a lot of students came out of the exam hall crying.
According to The Star, an add maths teacher who has been teaching for a long time now had difficulties trying to solve questions from the recent paper, and he said that the standards for the papers are even harder than the Singaporean O-Levels.
“I spent an hour and only managed to finish 2 questions. Most Add Maths teachers (in the country) will struggle with those questions, which are harder than Singapore’s.”
“It was definitely very challenging for students to finish 12 questions in two-and-a-half hours.”
The teacher has taken to Facebook to voice out his concerns on his Add Maths tutorial page. He adds that it’s a very good thing that the ministry is adding in more questions that require High Order Thinking Skills (HOTS), but only if the teachers and students are trained for it. He mentioned that some of the questions could be found in Malaysian educational materials, but only in the STPM syllabus.
“A lot of students told me that they were able to complete only half the paper.”
He also said that by making papers tough, it will in turn cause students to lose interest in add maths, which will affect their career pathways. For example, Add Maths in A-Levels is needed to pursue medicine, pharmacy, psychology and more.
Many students expressed their disappointment as well:
Delilah, who was consistently among the top 10 students in the whole of her form, also struggled with both the papers.
Another student who was aiming to get straight A’s so she could get a scholarship to further her studies said,
“Add Maths broke me.”
The chairman of the Melaka Action Group for Parents in Education (Magpie) Mak Chee Kin, said that including questions that are from the STPM syllabus into the SPM is unfair to the students and the Examinations Syndicate officers should be fired for that. He added that apologies are not enough because this concerns the futures of countless students all over Malaysia.
These are a few of the questions that appeared on the papers.
What do you think about this? Tell us in the comments!
Also read: 23yo M’sian Who Failed Her SPM Is Now A Translator For Blackpink, iKON and Winner!


Squabble
Welcome to Squabble!
tools
Squabble
High Scores
Res:
Cell Size:
It's not you - it's me. I have dependency issues. I cannot work with less than 238x238 pixels. I'm selfish and you're better off without me.
Welcome to Squabble!
tools
High Scores


Country star Sam Hunt arrested for alleged DUI in Nashville
Police say he was observed driving wrong way
by Lisa Respers France, CNNNASHVILLE, Tennessee (CNN) - Country singer Sam Hunt was arrested early Thursday for allegedly driving under the influence, according to an arrest affidavit obtained by CNN.
Hunt, who's known for such country hits as "Body Like a Back Road" and "Drinkin' Too Much," was stopped by police in East Nashville, Tennessee, after he was observed driving the wrong way down a road.
According to the affidavit, authorities had been on the lookout for a reported driver going south in the northbound lanes in the area of Ellington Parkway near Ben Allen Road.
Police said Hunt, whose legal name is Samuel L. Hunt, had difficulty "staying in the lane of travel and crossed the center divide several times before a stop was initiated."
"There was an obvious odor consistent with alcoholic beverage coming from the defendant as well as red bloodshot and watery eyes," the report said. "There were two empty beers in the vehicle next to the driver. The defendant had difficulty retrieving his id and attempted to give a credit card and passport instead while his [Tennessee] driver license sat on his lap."
Hunt, 34, was the only person in the vehicle at the time of the stop and admitted to consuming alcohol recently, the affidavit stated.
The singer submitted to a sobriety test which was recorded on a police dashcam and according to the warrant Hunt had a blood alcohol content of .173.
He was arrested and subsequently released from jail Thursday on a $2,500 bond, according to online court records. A court date has been set for January 17.
CNN has reached out to reps for Hunt for comment.


Before Change
// create empty arrays on the remote device and copy them once.
// This can avoid some memory issues that make the measurement results unreliable.
args = [nd.empty(x[0], dtype=x[1], ctx=ctx) for x in build_result.arg_info]
args = [nd.array(x, ctx=ctx) for x in args]
ctx.sync()
costs = time_f(*args).results
After Change
try:
random_fill = remote.get_function("tvm.contrib.random.random_fill")
except AttributeError:
raise AttributeError("Please make sure USE_RANDOM is ON in the config.cmake "
"on the remote devices")
args = [nd.empty(x[0], dtype=x[1], ctx=ctx) for x in build_result.arg_info]
for arg in args:
random_fill(arg)
ctx.sync()


Fed unlikely to move policy this week – Deutsche Bank
by Sandeep KanihamaDeutsche Bank analysts suggest that the US Fed is not expected to move policy by anyone this week and is likely to maintain status quo.
Key Quotes
“The meeting won’t be without interest as they will release the latest Summary of Economic Projections, with market participants focusing on the dot plot as usual for clues as to whether member’s rate biases are changing. Friday’s payrolls number (more below) will likely give them some confidence in the outlook.”


The API is not immediately accessible from the /vulns/
directory. In fact, it's a few directories down. APIs are often nested inside of many sub-directories. So you'll need to drill down a little bit to find it.
Try using dirb: dirb http://[IP]/vulns/
When you dirbust the /vulns/
directory, dirb will find a number of sub-directories and recursively search inside of them.
The API can be found by visiting/CURLing /vulns/api/v1/monitoring/accounts/
The API responds to a basic HTTP request a certain way. If you just visit or CURL the page by default, you are making a GET request to this REST API. If you review the source code of the API, you can see that it can also handle a POST request to add users to the database if it is given certain parameters.
So, if the author of this API programmed it to handle GET requests and POST requests that have paramerters, what else could we do to poke at the API?


OSGiFrameworkWrap(osgiFramework: Framework)
Wrap the OSGi framework keeping a map of the installed bundles and providing methods to manage bundles. Used by Corda to bootstrap an OSGi framework, install the required bundles and the Corda node bundle before to bootstrap the Corda node. Thread safe.


--- layout: page title: Donation permalink: /donation/ ---
🐕DOGECOIN: DG9GbDThau4yz1kNcLpmBYxDJ6Mca8JJH7


Abanindranath Tagore
Abanindranath Tagore (7 August 1871 to 5 December 1951) was the principal artist and creator of "Indian Society of Oriental Art". He was also the first major exponent of Swadeshi values in Indian art, thereby founding the influential Bengal school of art, which led to the development of modern Indian painting. He was also a noted writer, particularly for children. Popularly known as 'Aban Thakur', his books Rajkahini, Budo Angla, Nalak, and Khirer Putul are landmarks in Bengali language children's literature.
Tagore sought to modernise Mughal and Rajput styles to counter the influence of Western models of art, as taught in Art Schools under the British Raj and developed the Indian style of painting, later known as Bengal school of art. Such was the success of Tagore's work that it was eventually accepted and promoted as a national Indian style within British art institutions under the epithet of Indian Society of Oriental Art.


RSA Key Generator
Key Size
1024 bit
512 bit
1024 bit
2048 bit
4096 bit
Generate New Keys
Async
Private Key
Public Key
RSA Encryption Test
Text to encrypt:
This is a test!
Encrypt / Decrypt
Encrypted:


Prices of Services
| Service type | Price |
|---|---|
| Express Grooming | $10.00 |
| Flea Treatment | $5.00 |
| Anal Glands | $5.00 |
| Shed Less Program | $5.00 |
| Treatment Shampoo | $3.00 |
| Treatment Conditioner | $3.00 |
| Aromatherapy Rinse | $3.00 |
| Pet Cologne | Free |
| Pet Bows | Free |
| Service type | Price |
| Service Type | Small | Medium | Large |
| Nail Trimming | $6.00 | $10.00 | $12.00 |
| Nail Trimming and Filling | $8.50 | $12.50 | $15.50 |
| Nail Trimming, Face & Feet Tidy Up | $15.50 | $22.00 | $33.00 |
| Worming Treatment | from $7.00 | from $7.00 | from $7.00 |
| Service type | Small | Medium | Large |


| 类和说明 |
|---|
| AbstractFlowRelation
Abstract class that defines general properties for flow relations between Petri net places and transitions.
|
| AbstractMarking
This class defines a Petri net state in form of a marking.
|
| AbstractPlace
Abstract class that defines general properties for Petri net places.
|
| AbstractTransition
Abstract class that defines general properties for Petri net transitions.
|
| 类和说明 |
|---|
| AbstractFlowRelation
Abstract class that defines general properties for flow relations between Petri net places and transitions.
|
| AbstractMarking
This class defines a Petri net state in form of a marking.
|
| AbstractPetriNet
Abstract class for defining Petri nets and their properties.
|
| AbstractPlace
Abstract class that defines general properties for Petri net places.
|
| AbstractTransition
Abstract class that defines general properties for Petri net transitions.
|
| 类和说明 |
|---|
| AbstractFlowRelation
Abstract class that defines general properties for flow relations between Petri net places and transitions.
|
| AbstractMarking
This class defines a Petri net state in form of a marking.
|
| AbstractPetriNet
Abstract class for defining Petri nets and their properties.
|
| AbstractPlace
Abstract class that defines general properties for Petri net places.
|
| AbstractTransition
Abstract class that defines general properties for Petri net transitions.
|
| 类和说明 |
|---|
| AbstractFlowRelation
Abstract class that defines general properties for flow relations between Petri net places and transitions.
|
| AbstractMarking
This class defines a Petri net state in form of a marking.
|
| AbstractPlace
Abstract class that defines general properties for Petri net places.
|
| AbstractTransition
Abstract class that defines general properties for Petri net transitions.
|
| 类和说明 |
|---|
| AbstractMarking
This class defines a Petri net state in form of a marking.
|
| 类和说明 |
|---|
| AbstractFlowRelation
Abstract class that defines general properties for flow relations between Petri net places and transitions.
|
| AbstractMarking
This class defines a Petri net state in form of a marking.
|
| AbstractPetriNet
Abstract class for defining Petri nets and their properties.
|
| AbstractPlace
Abstract class that defines general properties for Petri net places.
|
| AbstractTransition
Abstract class that defines general properties for Petri net transitions.
|
| 类和说明 |
|---|
| AbstractFlowRelation
Abstract class that defines general properties for flow relations between Petri net places and transitions.
|
| AbstractMarking
This class defines a Petri net state in form of a marking.
|
| AbstractPetriNet
Abstract class for defining Petri nets and their properties.
|
| AbstractPlace
Abstract class that defines general properties for Petri net places.
|
| AbstractTransition
Abstract class that defines general properties for Petri net transitions.
|
| 类和说明 |
|---|
| AbstractPetriNet
Abstract class for defining Petri nets and their properties.
|
| 类和说明 |
|---|
| AbstractFlowRelation
Abstract class that defines general properties for flow relations between Petri net places and transitions.
|
| AbstractMarking
This class defines a Petri net state in form of a marking.
|
| AbstractPetriNet
Abstract class for defining Petri nets and their properties.
|
| AbstractPlace
Abstract class that defines general properties for Petri net places.
|
| AbstractTransition
Abstract class that defines general properties for Petri net transitions.
|
| 类和说明 |
|---|
| AbstractTransition
Abstract class that defines general properties for Petri net transitions.
|
| 类和说明 |
|---|
| AbstractFlowRelation
Abstract class that defines general properties for flow relations between Petri net places and transitions.
|
| AbstractMarking
This class defines a Petri net state in form of a marking.
|
| AbstractPetriNet
Abstract class for defining Petri nets and their properties.
|
| AbstractPetriNet.Boundedness |
| AbstractPlace
Abstract class that defines general properties for Petri net places.
|
| AbstractPNNode
This abstract class subsumes common properties of Petri net places and transitions.
|
| AbstractTransition
Abstract class that defines general properties for Petri net transitions.
|
| PNNodeType |
| PNTimeContext |
| 类和说明 |
|---|
| AbstractFlowRelation
Abstract class that defines general properties for flow relations between Petri net places and transitions.
|
| AbstractMarking
This class defines a Petri net state in form of a marking.
|
| AbstractPetriNet
Abstract class for defining Petri nets and their properties.
|
| AbstractPlace
Abstract class that defines general properties for Petri net places.
|
| AbstractPNNode
This abstract class subsumes common properties of Petri net places and transitions.
|
| AbstractTransition
Abstract class that defines general properties for Petri net transitions.
|
| 类和说明 |
|---|
| AbstractFlowRelation
Abstract class that defines general properties for flow relations between Petri net places and transitions.
|
| AbstractMarking
This class defines a Petri net state in form of a marking.
|
| AbstractPetriNet
Abstract class for defining Petri nets and their properties.
|
| AbstractPlace
Abstract class that defines general properties for Petri net places.
|
| AbstractPNNode
This abstract class subsumes common properties of Petri net places and transitions.
|
| AbstractTransition
Abstract class that defines general properties for Petri net transitions.
|
| 类和说明 |
|---|
| AbstractFlowRelation
Abstract class that defines general properties for flow relations between Petri net places and transitions.
|
| AbstractMarking
This class defines a Petri net state in form of a marking.
|
| AbstractPetriNet
Abstract class for defining Petri nets and their properties.
|
| AbstractPlace
Abstract class that defines general properties for Petri net places.
|
| AbstractPNNode
This abstract class subsumes common properties of Petri net places and transitions.
|
| AbstractTransition
Abstract class that defines general properties for Petri net transitions.
|
| 类和说明 |
|---|
| AbstractFlowRelation
Abstract class that defines general properties for flow relations between Petri net places and transitions.
|
| AbstractMarking
This class defines a Petri net state in form of a marking.
|
| AbstractPetriNet
Abstract class for defining Petri nets and their properties.
|
| AbstractPlace
Abstract class that defines general properties for Petri net places.
|
| AbstractPNNode
This abstract class subsumes common properties of Petri net places and transitions.
|
| AbstractTransition
Abstract class that defines general properties for Petri net transitions.
|
| 类和说明 |
|---|
| AbstractFlowRelation
Abstract class that defines general properties for flow relations between Petri net places and transitions.
|
| AbstractMarking
This class defines a Petri net state in form of a marking.
|
| AbstractPetriNet
Abstract class for defining Petri nets and their properties.
|
| AbstractPetriNet.Boundedness |
| AbstractPlace
Abstract class that defines general properties for Petri net places.
|
| AbstractTransition
Abstract class that defines general properties for Petri net transitions.
|
| 类和说明 |
|---|
| AbstractFlowRelation
Abstract class that defines general properties for flow relations between Petri net places and transitions.
|
| AbstractMarking
This class defines a Petri net state in form of a marking.
|
| AbstractPetriNet
Abstract class for defining Petri nets and their properties.
|
| AbstractPetriNet.Boundedness |
| AbstractPlace
Abstract class that defines general properties for Petri net places.
|
| AbstractTransition
Abstract class that defines general properties for Petri net transitions.
|
| 类和说明 |
|---|
| AbstractFlowRelation
Abstract class that defines general properties for flow relations between Petri net places and transitions.
|
| AbstractMarking
This class defines a Petri net state in form of a marking.
|
| AbstractPetriNet
Abstract class for defining Petri nets and their properties.
|
| AbstractPlace
Abstract class that defines general properties for Petri net places.
|
| AbstractTransition
Abstract class that defines general properties for Petri net transitions.
|
| 类和说明 |
|---|
| AbstractFlowRelation
Abstract class that defines general properties for flow relations between Petri net places and transitions.
|
| AbstractMarking
This class defines a Petri net state in form of a marking.
|
| AbstractPetriNet
Abstract class for defining Petri nets and their properties.
|
| AbstractPlace
Abstract class that defines general properties for Petri net places.
|
| AbstractTransition
Abstract class that defines general properties for Petri net transitions.
|
| 类和说明 |
|---|
| AbstractFlowRelation
Abstract class that defines general properties for flow relations between Petri net places and transitions.
|
| AbstractMarking
This class defines a Petri net state in form of a marking.
|
| AbstractPetriNet
Abstract class for defining Petri nets and their properties.
|
| AbstractPlace
Abstract class that defines general properties for Petri net places.
|
| AbstractTransition
Abstract class that defines general properties for Petri net transitions.
|
| 类和说明 |
|---|
| AbstractFlowRelation
Abstract class that defines general properties for flow relations between Petri net places and transitions.
|
| AbstractMarking
This class defines a Petri net state in form of a marking.
|
| AbstractPetriNet
Abstract class for defining Petri nets and their properties.
|
| AbstractPlace
Abstract class that defines general properties for Petri net places.
|
| AbstractTransition
Abstract class that defines general properties for Petri net transitions.
|
| 类和说明 |
|---|
| AbstractFlowRelation
Abstract class that defines general properties for flow relations between Petri net places and transitions.
|
| AbstractMarking
This class defines a Petri net state in form of a marking.
|
| AbstractPetriNet
Abstract class for defining Petri nets and their properties.
|
| AbstractPlace
Abstract class that defines general properties for Petri net places.
|
| AbstractPNNode
This abstract class subsumes common properties of Petri net places and transitions.
|
| AbstractTransition
Abstract class that defines general properties for Petri net transitions.
|
| 类和说明 |
|---|
| AbstractFlowRelation
Abstract class that defines general properties for flow relations between Petri net places and transitions.
|
| AbstractMarking
This class defines a Petri net state in form of a marking.
|
| AbstractPetriNet
Abstract class for defining Petri nets and their properties.
|
| AbstractPlace
Abstract class that defines general properties for Petri net places.
|
| AbstractPNNode
This abstract class subsumes common properties of Petri net places and transitions.
|
| AbstractTransition
Abstract class that defines general properties for Petri net transitions.
|
| 类和说明 |
|---|
| AbstractPetriNet
Abstract class for defining Petri nets and their properties.
|
| 类和说明 |
|---|
| AbstractFlowRelation
Abstract class that defines general properties for flow relations between Petri net places and transitions.
|
| AbstractMarking
This class defines a Petri net state in form of a marking.
|
| AbstractPetriNet
Abstract class for defining Petri nets and their properties.
|
| AbstractPlace
Abstract class that defines general properties for Petri net places.
|
| AbstractPNNode
This abstract class subsumes common properties of Petri net places and transitions.
|
| AbstractTransition
Abstract class that defines general properties for Petri net transitions.
|
| 类和说明 |
|---|
| AbstractFlowRelation
Abstract class that defines general properties for flow relations between Petri net places and transitions.
|
| AbstractMarking
This class defines a Petri net state in form of a marking.
|
| AbstractPetriNet
Abstract class for defining Petri nets and their properties.
|
| AbstractPlace
Abstract class that defines general properties for Petri net places.
|
| AbstractPNNode
This abstract class subsumes common properties of Petri net places and transitions.
|
| AbstractTransition
Abstract class that defines general properties for Petri net transitions.
|
| 类和说明 |
|---|
| AbstractFlowRelation
Abstract class that defines general properties for flow relations between Petri net places and transitions.
|
| AbstractMarking
This class defines a Petri net state in form of a marking.
|
| AbstractPetriNet
Abstract class for defining Petri nets and their properties.
|
| AbstractPlace
Abstract class that defines general properties for Petri net places.
|
| AbstractTransition
Abstract class that defines general properties for Petri net transitions.
|
| 类和说明 |
|---|
| AbstractFlowRelation
Abstract class that defines general properties for flow relations between Petri net places and transitions.
|
| AbstractMarking
This class defines a Petri net state in form of a marking.
|
| AbstractPetriNet
Abstract class for defining Petri nets and their properties.
|
| AbstractPlace
Abstract class that defines general properties for Petri net places.
|
| AbstractTransition
Abstract class that defines general properties for Petri net transitions.
|
| 类和说明 |
|---|
| AbstractFlowRelation
Abstract class that defines general properties for flow relations between Petri net places and transitions.
|
| AbstractMarking
This class defines a Petri net state in form of a marking.
|
| AbstractPetriNet
Abstract class for defining Petri nets and their properties.
|
| AbstractPlace
Abstract class that defines general properties for Petri net places.
|
| AbstractTransition
Abstract class that defines general properties for Petri net transitions.
|
| 类和说明 |
|---|
| AbstractFlowRelation
Abstract class that defines general properties for flow relations between Petri net places and transitions.
|
| AbstractMarking
This class defines a Petri net state in form of a marking.
|
| AbstractPetriNet
Abstract class for defining Petri nets and their properties.
|
| AbstractPlace
Abstract class that defines general properties for Petri net places.
|
| AbstractTransition
Abstract class that defines general properties for Petri net transitions.
|
| 类和说明 |
|---|
| AbstractFlowRelation
Abstract class that defines general properties for flow relations between Petri net places and transitions.
|
| AbstractMarking
This class defines a Petri net state in form of a marking.
|
| AbstractPetriNet
Abstract class for defining Petri nets and their properties.
|
| AbstractPlace
Abstract class that defines general properties for Petri net places.
|
| AbstractTransition
Abstract class that defines general properties for Petri net transitions.
|


There are several sub-modules included with the ui.router module, however only this module is needed as a dependency within your angular app. The other modules are for organization purposes.
The modules are:
You'll need to include only this module as the dependency within your angular app.
<!doctype html> <html ng-app="myApp"> <head> <script src="js/angular.js"></script> <!-- Include the ui-router script --> <script src="js/angular-ui-router.min.js"></script> <script> // ...and add 'ui.router' as a dependency var myApp = angular.module('myApp', ['ui.router']); </script> </head> <body> </body> </html>


For Scores Click Here
Deposit address:
xrb_17ar3aukcbijhkqumtp8ro1si51jmsq5zctzwmjs379afcw7fpbme8s49qg3
Want to try touch version (experimental!)


Some quick example text to build on the card title and make up the bulk of the card's content.
I would like a deliverySome quick example text to build on the card title and make up the bulk of the card's content.
I would like to help with deliveriesSome quick example text to build on the card title and make up the bulk of the card's content.
I would like to sellHELPIFY is a global location-based marketplace platform, where farmers, small retailers, and local delivery services, grouped by their location on the app's map, present the range of foodstuff to consumers.
Help The Fellow Needy Neighbours By Signing up as a Volunteer
Help The Fellow Needy Neighbours By Signing up as a Volunteer


{% extends "layout.html" %} {% block pageTitle %} GOV.UK Prototype Kit {% endblock %} {% block beforeContent %}
beta This is a new service – your feedback will help us to improve it.
Here is the information you need