Product Strategy
We strive to understand your goals and business. We work with you to create a great strategy.
Michael and Jason met as co-workers. They bonded over their love of rock climbing and general geekiness. Now they build things. Michael usually handles the back-end and Jason the front-end.
Michael is a software developer with 4 years' of professional experience building web applications, from healthcare to education and social networking to gaming. He is dedicated to enterprise-level uptime, QA testing, security, infrastructure, and speed. He likes Star Wars, bluegrass, and chess.
Jason calls himself a UX designer or is it a web designer or maybe he is a front-end developer...he doesn't know what to call himself. All he knows is he loves the whole design process from conception to launch. He is self-taught and has worked as a UX designer for over 6 years. He has agency experience as well as startup experience. He likes climbing, improv and black coffee.
Depending on your needs we can do a wide range of services.
We strive to understand your goals and business. We work with you to create a great strategy.
Understanding your audience helps shape our entire process. This not only allows us to discover new design opportunities but make more informed decisions along the way.
We love to delight users but more importantly, we love when users successfully accomplish their goals.
Beautiful and consistent design is what makes a good interface. We design from the bottom up, making lego type pieces that fit together to make something great. Every project comes with its own styleguide.
We build responsive web apps and interactive websites. Our code is clean. Our design is crisp. And our performance is high.
Iteration is at the heart of what we do. Prototypes allow us to test and share our progress.
Depending on your needs we can do a wide range of services.
We strive to understand your goals and business. We work with you to create a great strategy.
Understanding your audience helps shape our entire process. This not only allows us to discover new design opportunities but make more informed decisions along the way.
We love to delight users but more importantly, we love when users successfully accomplish their goals.
Beautiful and consistent design is what makes a good interface. We design from the bottom up, making lego type pieces that fit together to make something great. Every project comes with its own styleguide.
We build responsive web apps and interactive websites. Our code is clean. Our design is crisp. And our performance is high.
Iteration is at the heart of what we do. Prototypes allow us to test and share our progress.
We are a two man team, focused on being your digital partner.
We strive to understand your business and needs with collaboration and communicating, sharing our progress often for feedback. We will guide you in the right direction.


So, there I went again: another camino. The first one was such a great experience that I just had to do one again.Back then, it was full of both novelty and surprises; this time around, the former was pretty much gone... And that very well may be why I had to force a little for the latter to happen.
{% unless page.completed %}This story is not finished yet. More to come later...
{% endunless %}


|
Awesome Portable Rendering Interface Library
This library provides a universal rendering API and does not require to write code that is used in only one API (e.g. OpenGL, DirectX, SDL, ...)
|
Defines application states. More...
#include <Application.h>
Public Member Functions | |
| State (chstr name) | |
| State (chstr name, unsigned int value) | |
| State | next () const |
| State | previous () const |
| bool | operator< (const State &other) const |
| bool | operator> (const State &other) const |
| bool | operator<= (const State &other) const |
| bool | operator>= (const State &other) const |
| bool | operator== (const State &other) const |
| bool | operator!= (const State &other) const |
Static Public Member Functions | |
| static int | getCount () |
| static hltypes::Array< State > | getValues () |
| static hstr | getEnumName () |
| static hltypes::Map< unsigned int, hstr > | getAsMap () |
| static State | fromInt (int value) |
| static State | fromUint (unsigned int value) |
| static State | fromName (chstr name) |
| static bool | hasValue (chstr name) |
| static bool | hasValueFor (int value) |
| static bool | hasValueFor (unsigned int value) |
Static Public Attributes | |
| static const State | Idle |
| static const State | Starting |
| static const State | StartedWaiting |
| static const State | Running |
| static const State | Stopping |
| static const State | Stopped |
Protected Member Functions | |
| State (unsigned int value) | |
| hltypes::Map< unsigned int, hstr > & | _getInstances () const |
Defines application states.


We Provide Best Food
At The Right Price
We serve the best food,vist at you own convinence.
We serve fresh drinks varying from dew from from the mountains ,freshly squizzed lemonade, well blended orange juice, just to name a few of our customer favourites.
Get our daily food items delivered to your email


the power of submitting your assignments online, taking quizzes and checking for work and notes.
© Copyright 2017 Tommy Gooden - All rights reserved.


DMX Functionality:
Mission Tracking:
Artemis Bridge Tools currently assumes Artemis SBS is in one of the following locations:
If it is, installation will complete normally.
If your installation directory is not one of the above (e.g., you have some other Steam directory), Artemis Bridge Tools can still be installed, but the installer will warn that Artemis was not found, and Artemis Bridge Tools won't be fully enabled for use until you install the mod to one or more Artemis directories, which you can do as follows:
If asked "Do you want to allow this app to make changes to your PC?" then click Yes.
Note: if you later want to completely uninstall Artemis Bridge Tools, you should do so from the Control Panel ("Uninstall a program"). Currently uninstalling fails if attempted from the System "Apps & features" page, but works fine from Control Panel.
Basics:
Fancy Effects:
Device Types:
If you later need to edit the DMXcommands.xml file manually or with any other program, you will need to use a file in the "%LocalAppData%\ArtemisBridgeTools\" directory (where the filename is listed in the ActiveProfileFileName.txt file there), NOT the one in your Artemis\dat directory. If you uninstall Artemix Bridge Tools, your active DMXcommands profile will be put back into your Artemis\dat directory.
The log file can be found in "%LocalAppData%\ArtemisBridgeTools\ArtemisLog.txt" and one easy way to find it is:
Events are logged using the format illustrated
below where the first column is number of seconds since start,
second column is the cue name, and 1
means set, and 0 means cleared, e.g.:
117.640
ENERGY_20
= 1
139.906
ENERGY_20
= 0
You can view DMX cues in real time over a socket, so that you can consume them programmatically, such as from a Python script, or display them on your screen. For example, to display them on your screen, you might connect to Artemis SBS using a command such as "telnet <IP_ADDRESS> 2012" (the telnet client comes with Windows but is an optional component and must first be enabled using "Turn Windows features on or off" via the Windows control panel).
To view the events in real time, you will need to connect to that port after starting Artemis. Only one connection to that port at a time is supported.
Events are logged using the format illustrated
below where the first column is number of seconds since start,
second column is the cue name, and 1
means set, and 0 means cleared, e.g.:
117.640
ENERGY_20
= 1
139.906
ENERGY_20
= 0
You can also use a socket from your own program (e.g., a Python script) to trigger custom DMX cues. The syntax is "dmxset cuename[=value]", where cuename is the name of one of the custom cues (CUSTOM_{EVENT,STATE}_{1-4}), and value is 0 or 1. If value is not present, it defaults to 1. Some examples are:
dmxset CUSTOM_STATE_1 = 1
dmxset CUSTOM_STATE_1=0
dmxset CUSTOM_EVENT_1
Event cues need not be cleared, they will be triggered each time the value is set to 1.
You can use a log command from within a mission to trigger custom DMX cues. The syntax to write to the log file is "dmxset cuename[=value]", where cuename is the name of one of the custom cues (CUSTOM_{EVENT,STATE}_{1-4}), and value is 0 or 1. If value is not present, it defaults to 1. Some examples are:
<log text="dmxset CUSTOM_STATE_1 = 1" />
<log text="dmxset CUSTOM_STATE_1=0" />
<log text="dmxset CUSTOM_EVENT_1" />
Event cues need not be cleared, they will be triggered each time the value is set to 1.
Artemis SBS itself is limited in the ability to create a gradual transition into a continuous effect, but Artemis Bridge Tools makes this much easier by allowing any continuous effect to have a set of 0 or more "entrance" timeblocks that play only once at the beginning of the effect, and a set of 0 or more "exit" timeblocks that play at the end of the effect. There may be multiple entrance and exit timeblocks if desired, but any entrance timeblocks must occur at the beginning of the command, and any exit timeblocks must occur at the end of the command. For example:
<event type="NORMAL_CONDITION_1" continuous="yes">
<timeblock mseconds="1500"
phase="entrance">
<!-- Various setvalues go here that
only happen once when a game is started... -->
</timeblock>
<timeblock mseconds="1000">
<!-- Various setvalues go here for
the normal effect after any entrance timeblocks complete -->
</timeblock>
<timeblock mseconds="1500"
phase="exit">
<!-- Various setvalues go here that
only happen once when a game is ended... -->
</timeblock>
In the example above, when a game is started, any entrance timeblocks play first, then the normal timeblocks play in a continuous loop until the game ends, at which point the exit timeblocks play. This illustrates that entrance/exit timeblocks on a continuous command obviate the need to have separate event cues (such as GAME_OVER, which didn't work anyway) that occur when some state cue is set or cleared. So many event cues, such as PLAYER_SHIELDS_{RAISED,LOWERED}, become redundant in this mechanism, meaning you can either use them normally OR just use entrance/exit timeblocks on the associated state cue.
Let's look at two common cases of desired effects:
1) an effect that
gradually moves in across a series of lights, and
2)
an effect that gradually changes all lights in a set together
Say you have a set of lights that are all white under NORMAL_CONDITION_1 or all purple under WITHIN_NEBULA. When you raise shields, you want them to transition to blue in series, one every 500 ms, and then use a continuous blue effect for all those lights with PLAYER_SHIELDS_UP. Without Artemis Bridge Tools, this is problematic since all the lights will go blue at the same time because PLAYER_SHIELDS_UP masks the existing condition (NORMAL_CONDITION_1 or WITHIN_NEBULA) immediately upon raising shields so there's no way for PLAYER_SHIELDS_RAISED to let any lights use the pre-existing condition. To do so gradually and allow the existing effect to remain on some lights as you override them sequentially, you would need to delay the PLAYER_SHIELDS_UP effect to begin at the end of the PLAYER_SHIELDS_RAISED.
To solve this, you can use an entrance timeblock with a duration of 1500ms (assuming your PLAYER_SHIELDS_RAISED duration is 1500ms) to delay the normal effect until then. You can either use PLAYER_SHIELDS_RAISED normally and use an empty (no devices/setvalues) entrance timeblock in your PLAYER_SHIELDS_UP, or you can simply omit PLAYER_SHIELDS_RAISED and just put your shields-up effect in the entrance timeblock of PLAYER_SHIELDS_UP.
This scenario is easy to accomplish with Artemis DMX Editor, as follows:
That's it! You can now use the Test feature of Artemis DMX Editor to observe the effects, or just exit and run Artemis SBS normally.
Say you have a light (or set of lights) that are all white under NORMAL_CONDITION_1 or all purple under WITHIN_NEBULA. When you raise shields, you want it to (say) slowly transition (or fade) to blue. Without Artemis Bridge Tools, this is problematic since the PLAYER_SHIELDS_RAISED and PLAYER_SHIELDS_ON cues will take effect and override the base condition immediately, and transition from whatever the start color is for the first timeblock.
Instead, we want to cause the PLAYER_SHIELDS_RAISED effect (or the entrance timeblock of PLAYER_SHIELDS_ON) to slowly transition from transparent to opaque, so that it will fade from white to blue, or from purple to blue, depending on the previous color. This is easy to accomplish with Artemis DMX Editor, as follows:
That's it! You can now use the Test feature of Artemis DMX Editor to observe the effects, or just exit and run Artemis SBS normally.
Let's now look at a more complex example. Say you have a set of front shield lights that form a front shield strength gauge when shields are up. When you raise shields, you want the lights to gradually brighten from the previous color to whatever colors the gauge would normally show. When the shield strength level changes due to damage or repair, you want the lights to gradually transition to their new color. This is easy to accomplish with Artemis DMX Editor, as follows:
That's it! You can now use the Test feature of Artemis DMX Editor to observe the effects, or just exit and run Artemis SBS normally.
If you have an effect you want to occur only while two states are both true, or only when one is true and the other is false, you can now do this. For example, say you want one effect to play during forward impulse, and another one to play during reverse impulse, and neither to play when one is at a full stop. The stock Artemis SBS cannot do this, since HELM_IN_REVERSE plays even when at a full stop. Instead, you want to create one (say) IMPULSE_20 effect when REVERSE_IMPULSE is true, for the forward impulse effect, and another IMPULSE_20 effect when REVERSE_IMPULSE is false, for the reverse impulse effect. (See the New DMX Cues table for further discussion of the difference between the native HELM_IN_REVERSE cue and the new REVERSE_IMPULSE cue.) Artemis Bridge Tools allows a command to optionally have an "if" condition to test before making the command become active. Currently the only condition supported is a simple check whether another State cue is true or false, which looks like this in your command profile:
<event type="IMPULSE_20" continuous="yes"
if="REVERSE_IMPULSE">
<!--reverse impulse-->
...
</event>
<event type="IMPULSE_20" continuous="yes"
if="!REVERSE_IMPULSE">
<!--forward impulse-->
...
</event>
You can configure this in Artemis DMX Editor as follows:
That's it! You can now use the Test feature of Artemis DMX Editor to observe the effects, or just exit and run Artemis SBS normally.
Artemis DMX Editor supports easily creating a number of different chase effects, from a single moving light to a growing/shrinking line.
 You can now use the Test feature of Artemis DMX Editor to observe the effects, or just exit and run Artemis SBS normally.
A "gauge" is when you have a set of lights that together indicate the value of something via how many lights are on, similar to the number of "bars" of signal strength on a cell phone. While you can create such effects manually, it often involves significant work and experimentation. Artemis DMX Editor currently allows you to easily create gauges for the following values by bulk-adding all the appropriate commands for you:
To easily add a gauge for one of the above values:
That's it! You can now use the Test feature of Artemis DMX Editor to observe the effects, or just exit and run Artemis SBS normally.
Often you want the color or brightness of a light to indicate the value of some important quantity. While you can create such effects manually, it often involves significant work and experimentation. Artemis DMX Editor currently allows you to easily create stacked effects for the following values by bulk-adding all the appropriate commands for you:
To easily add a stacked effect for one of the above values:
That's it! You can now use the Test feature of Artemis DMX Editor to observe the effects, or just exit and run Artemis SBS normally.
Currently any sound file (.mp3, .wav, .wma, .au, .mid, and possibly more) file can be triggered in response to a DMX cue (endless looping effects are not yet supported, however).
Let's say you have a sound file named Data_Hail.wav (a sound clip of Data saying "Captain, we are being hailed!") that you want to be played whenever an incoming transmission is received from an enemy, which the new DMX cues table tells us is the INCOMING_COMMUNICATION_PRI0 cue. This can be done as follows.
First we add an audio device as follows:
Next we need to associate a DMX value with the sound file, as follows:
Finally, we need to associate the sound with a DMX cue as follows:
That's it! You can now play Artemis and observe the effects, or use the Test Active feature of Artemis DMX Editor to test it.
The above steps will have created a command in your DMX commands file looking something like this:
<event
type="INCOMING_COMMUNICATION_PRI0">
<timeblock mseconds="1500">
<setvalue
index="16" value="3" change="0"></setvalue>
<!-- play Data_Hail on Audio -->
</timeblock>
</event>
In the above example, the audio device was created to use DMX address 17 (i.e., index 16), with the value 3 to indicate the sound file we selected. The change attribute should be 0 for sound effects, and the timeblock duration will affect the duration of the audio effect. The effect will be started when the timeblock begins, and will play until either the sound clip finishes, or another value is set on the audio channel, or the last timeblock of the command ends, whichever comes first.
Note that Enttec DMX Pro support is provided by Artemis Bridge Tools, so if you uninstall Artemis Bridge Tools, support for Enttec DMX Pro controllers will also be removed.
Note that Art-Net* support is provided by Artemis Bridge Tools, so if you uninstall Artemis Bridge Tools, support for Art-Net controllers will also be removed.
*Art-Net™ Designed by and Copyright Artistic License Holdings Ltd
The instructions below assume that you have previously installed the udmx.dll and libusb0.dll drivers that came with your controller, and that you have verified that your controller is working outside of Artemis (e.g., by using a utility that comes with your controller).
Artemis Bridge Tools will look for udmx.dll in the following locations and if not found, you'll get an "Error: can't load UDMX.dll" message when trying to use the uDMX controller:
To use the controller with Artemis:
Note that uDMX support is provided by Artemis Bridge Tools, so if you uninstall Artemis Bridge Tools, support for uDMX controllers will also be removed.
To use Philips Hue lights, you will be configuring each Hue light by id. The id is always a number (e.g., "1", "2", "3", etc.), not the name (like "Living Room"), but you will be able to see the names as well during configuration.
From this point on, the DMX channels selected will control the Hue lights, whenever they are used from Artemis or Artemis DMX Editor. Note: Hue lights by nature transition between colors gradually, not instantaneously. As such, they work best with effects with change="0".
If you encounter problems, here are some troubleshooting steps to check:
There are two kinds of LIFX light bulbs, ones that say "Designed for ALLSEEN" on the box and ones that don't (currently the white bulbs say "Designed for ALLSEEN" and the color ones don't, but this will change in the future as color ones will say that too). Artemis Bridge Tools supports both kinds.
To use a bulb that does NOT say "Designed for ALLSEEN" on the box:
To use a bulb that DOES say "Designed for ALLSEEN" on the box:
From this point on, the DMX channels selected will control the LIFX lights, whenever they are used from Artemis or Artemis DMX Editor.
To use LimitlessLED lights, you will be configuring each light group as if it were a 3-channel DMX light. The group is always a number in the range 1-4. For best performance, you should obtain the IP address of your LimitlessLED bridge beforehand (e.g., look it up on your WiFi router, where in the list of attached devices the bridge will typically show up with a MAC address starting with AC:CF:23).
From this point on, the DMX channels selected will control the LimitlessLED lights, whenever they are used from Artemis or Artemis DMX Editor. Note: LimitlessLED lights by nature require 100ms delay between being turned on and setting the color, and if you want to control multiple light groups they require 100ms delay when sending a command to a different group. Artemis Bridge Tools automatically handles this, but it means your lights can only change simultaneously when they are in the same group or on different bridges.
If you encounter problems, here are some troubleshooting steps to check:
Artemis SBS uses a standard API for talking to FTDI chips, which API is exposed by the ftd2xx.dll that comes with Artemis SBS.
Artemis Bridge Tools has five components, three for DMX purposes and two for mission logging purposes:
To support the additional DMX cues, the custom ftd2xx.dll inspects Artemis protocol packets flowing between Artemis SBS and Winsock, so anything that is normally sent or received in an Artemis protocol message could be used to support new DMX cues.
To support mission logging, the custom ftd2xx.dll also detects starting a scripted mission and starts ArtemisMissionLogger.exe which runs only while a scripted mission is in progress. ArtemisMissionLogger.exe connects as another main screen console in order to get the ending stats or detect that the server has crashed.
Upon installation, Artemis Bridge Tools backs up the stock ftd2xx.dll as "ftd2xx-orig.dll" so it can be automatically restored if Artemis Bridge Tools is uninstalled. The current DMXcommands.xml is also backed up as "DMXcommands-orig.xml", since it is replaced by a custom DMXcommands.xml file that tells Artemis SBS to put each DMX cue on a separate channel for use by Artemis Bridge Tools itself (this is required for the logging feature, for instance).
The %LocalAppData%\ArtemisBridgeTools\ directory contains the files used by the Artemis Bridge Tools components:
The following output Device Types are supported:
The same Virtual Input Device (i.e., DMX channels as used by Artemis) can be used by multiple associated output devices, if you want to mirror the same DMX commands to multiple devices (such as a DMX device and a log). However the combination of Device Type and Param should be unique for each device entry.
If you later replace a 3-channel light with a 4-channel light, or vice versa, Artemis DMX Editor can convert your DMXcommands profile for you. To do this, first create a new DMX device profile, then edit your command profile and switch the DMX device profile to the newly created one. At the prompt, select "Attempt to convert the Artemis DMX command profile from the old devices to the new devices".
The following DMX cues are added to the list of ones supported natively by Artemis SBS. See the DMX cues wiki page for more details on how DMX cues work.
| Category | Event Tag | Type | Notes |
| Helm | WARP_1 | State | |
| WARP_2 | State | ||
| WARP_3 | State | ||
| WARP_4 | State | ||
| IMPULSE_1 | State | Set when impulse >= 1, cleared on full stop (not simply when throttle is at 0) | |
| IMPULSE_20 | State | Set when impulse >= 20, cleared when < 20. Normally this should be placed after IMPULSE_1 when both affect the same channels. | |
| IMPULSE_40 | State | Set when impulse >= 40, cleared when < 40. Normally this should be placed after IMPULSE_20 when both affect the same channels. | |
| IMPULSE_60 | State | Set when impulse >= 60, cleared when < 60. Normally this should be placed after IMPULSE_40 when both affect the same channels. | |
| IMPULSE_80 | State | Set when impulse >= 80, cleared when < 80. Normally this should be placed after IMPULSE_60 when both affect the same channels. | |
| IMPULSE_100 | State | Set when impulse reaches 100, cleared when < 100. Normally this should be placed after IMPULSE_80 when both affect the same channels. | |
| REVERSE_IMPULSE | State | Set whenever ship is moving in reverse. This differs from HELM_IN_REVERSE in two ways. First, if you use a joystick throttle to move in reverse rather than selecting the Reverse setting, HELM_IN_REVERSE will not be set whereas REVERSE_IMPULSE will be set (it will also be set if HELM_IN_REVERSE is set and the ship is actually moving in reverse). Second, HELM_IN_REVERSE remains set even if the ship is stopped, whereas REVERSE_IMPULSE does not. | |
| JUMP_IN_PROGRESS | State | Set when jump countdown is initiated (same as when JUMP_INITIATED event is fired) and cleared when jump is executed (same as JUMP_EXECUTED event) or fizzled (JUMP_FIZZLED event) | |
| Weapons | BEAM_FIRED | Event | Triggered when any beam is fired |
| BEAM1_FIRED | Event | Triggered when beam #1 fired | |
| BEAM2_FIRED | Event | Triggered when beam #2 fired | |
| BEAM3_FIRED | Event | Triggered when beam #3 fired (such as on a Battleship with 4 beams) | |
| BEAM4_FIRED | Event | Triggered when beam #4 fired (such as on a Battleship with 4 beams) | |
| BEAM5_FIRED | Event | Triggered when beam #5 fired. No stock ships have more than 4 beams, but some mods have additional ship types that may. | |
| BEAM6_FIRED | Event | Triggered when beam #6 fired. | |
| BEAM7_FIRED | Event | Triggered when beam #7 fired. No stock ships have more than 4 beams, but some mods have additional ship types that may. | |
| BEAM8_FIRED | Event | Triggered when beam #8 fired. | |
| BEAM9_FIRED | Event | Triggered when beam #9 fired. | |
| BEAM10_FIRED | Event | Triggered when beam #10 fired. | |
| TUBE1_EMPTY | State | ||
| TUBE1_LOADING_HOMING | State | ||
| TUBE1_LOADING_NUKE | State | ||
| TUBE1_LOADING_MINE | State | ||
| TUBE1_LOADING_EMP | State | ||
| TUBE1_LOADING_PSHOCK | State | ||
| TUBE1_READY_TO_FIRE_HOMING | State | ||
| TUBE1_READY_TO_FIRE_NUKE | State | ||
| TUBE1_READY_TO_FIRE_MINE | State | ||
| TUBE1_READY_TO_FIRE_EMP | State | ||
| TUBE1_READY_TO_FIRE_PSHOCK | State | ||
| TUBE1_UNLOADING_HOMING | State | ||
| TUBE1_UNLOADING_NUKE | State | ||
| TUBE1_UNLOADING_MINE | State | ||
| TUBE1_UNLOADING_EMP | State | ||
| TUBE1_UNLOADING_PSHOCK | State | ||
| TUBE1_FIRED_HOMING | Event | ||
| TUBE1_FIRED_NUKE | Event | ||
| TUBE1_FIRED_MINE | Event | ||
| TUBE1_FIRED_EMP | Event | ||
| TUBE1_FIRED_PSHOCK | Event | ||
| TUBE2_EMPTY | State | ||
| TUBE2_LOADING_HOMING | State | ||
| TUBE2_LOADING_NUKE | State | ||
| TUBE2_LOADING_MINE | State | ||
| TUBE2_LOADING_EMP | State | ||
| TUBE2_LOADING_PSHOCK | State | ||
| TUBE2_READY_TO_FIRE_HOMING | State | ||
| TUBE2_READY_TO_FIRE_NUKE | State | ||
| TUBE2_READY_TO_FIRE_MINE | State | ||
| TUBE2_READY_TO_FIRE_EMP | State | ||
| TUBE2_READY_TO_FIRE_PSHOCK | State | ||
| TUBE2_UNLOADING_HOMING | State | ||
| TUBE2_UNLOADING_NUKE | State | ||
| TUBE2_UNLOADING_MINE | State | ||
| TUBE2_UNLOADING_EMP | State | ||
| TUBE2_UNLOADING_PSHOCK | State | ||
| TUBE2_FIRED_HOMING | Event | ||
| TUBE2_FIRED_NUKE | Event | ||
| TUBE2_FIRED_MINE | Event | ||
| TUBE2_FIRED_EMP | Event | ||
| TUBE2_FIRED_PSHOCK | Event | ||
| TUBE3_EMPTY | State | ||
| TUBE3_LOADING_HOMING | State | ||
| TUBE3_LOADING_NUKE | State | ||
| TUBE3_LOADING_MINE | State | ||
| TUBE3_LOADING_EMP | State | ||
| TUBE3_LOADING_PSHOCK | State | ||
| TUBE3_READY_TO_FIRE_HOMING | State | ||
| TUBE3_READY_TO_FIRE_NUKE | State | ||
| TUBE3_READY_TO_FIRE_MINE | State | ||
| TUBE3_READY_TO_FIRE_EMP | State | ||
| TUBE3_READY_TO_FIRE_PSHOCK | State | ||
| TUBE3_UNLOADING_HOMING | State | ||
| TUBE3_UNLOADING_NUKE | State | ||
| TUBE3_UNLOADING_MINE | State | ||
| TUBE3_UNLOADING_EMP | State | ||
| TUBE3_UNLOADING_PSHOCK | State | ||
| TUBE3_FIRED_HOMING | Event | ||
| TUBE3_FIRED_NUKE | Event | ||
| TUBE3_FIRED_MINE | Event | ||
| TUBE3_FIRED_EMP | Event | ||
| TUBE3_FIRED_PSHOCK | Event | ||
| TUBE4_EMPTY | State | ||
| TUBE4_LOADING_HOMING | State | ||
| TUBE4_LOADING_NUKE | State | ||
| TUBE4_LOADING_MINE | State | ||
| TUBE4_LOADING_EMP | State | ||
| TUBE4_LOADING_PSHOCK | State | ||
| TUBE4_READY_TO_FIRE_HOMING | State | ||
| TUBE4_READY_TO_FIRE_NUKE | State | ||
| TUBE4_READY_TO_FIRE_MINE | State | ||
| TUBE4_READY_TO_FIRE_EMP | State | ||
| TUBE4_READY_TO_FIRE_PSHOCK | State | ||
| TUBE4_UNLOADING_HOMING | State | ||
| TUBE4_UNLOADING_NUKE | State | ||
| TUBE4_UNLOADING_MINE | State | ||
| TUBE4_UNLOADING_EMP | State | ||
| TUBE4_UNLOADING_PSHOCK | State | ||
| TUBE4_FIRED_HOMING | Event | ||
| TUBE4_FIRED_NUKE | Event | ||
| TUBE4_FIRED_MINE | Event | ||
| TUBE4_FIRED_EMP | Event | ||
| TUBE4_FIRED_PSHOCK | Event | ||
| TUBE5_EMPTY | State | While no stock ship types have more than 4 tubes, some mods have additional ship types that may have up to 6 tubes. | |
| TUBE5_LOADING_HOMING | State | ||
| TUBE5_LOADING_NUKE | State | ||
| TUBE5_LOADING_MINE | State | ||
| TUBE5_LOADING_EMP | State | ||
| TUBE5_LOADING_PSHOCK | State | ||
| TUBE5_READY_TO_FIRE_HOMING | State | ||
| TUBE5_READY_TO_FIRE_NUKE | State | ||
| TUBE5_READY_TO_FIRE_MINE | State | ||
| TUBE5_READY_TO_FIRE_EMP | State | ||
| TUBE5_READY_TO_FIRE_PSHOCK | State | ||
| TUBE5_UNLOADING_HOMING | State | ||
| TUBE5_UNLOADING_NUKE | State | ||
| TUBE5_UNLOADING_MINE | State | ||
| TUBE5_UNLOADING_EMP | State | ||
| TUBE5_UNLOADING_PSHOCK | State | ||
| TUBE5_FIRED_HOMING | Event | ||
| TUBE5_FIRED_NUKE | Event | ||
| TUBE5_FIRED_MINE | Event | ||
| TUBE5_FIRED_EMP | Event | ||
| TUBE5_FIRED_PSHOCK | Event | ||
| TUBE6_EMPTY | State | ||
| TUBE6_LOADING_HOMING | State | ||
| TUBE6_LOADING_NUKE | State | ||
| TUBE6_LOADING_MINE | State | ||
| TUBE6_LOADING_EMP | State | ||
| TUBE6_LOADING_PSHOCK | State | ||
| TUBE6_READY_TO_FIRE_HOMING | State | ||
| TUBE6_READY_TO_FIRE_NUKE | State | ||
| TUBE6_READY_TO_FIRE_MINE | State | ||
| TUBE6_READY_TO_FIRE_EMP | State | ||
| TUBE6_READY_TO_FIRE_PSHOCK | State | ||
| TUBE6_UNLOADING_HOMING | State | ||
| TUBE6_UNLOADING_NUKE | State | ||
| TUBE6_UNLOADING_MINE | State | ||
| TUBE6_UNLOADING_EMP | State | ||
| TUBE6_UNLOADING_PSHOCK | State | ||
| TUBE6_FIRED_HOMING | Event | ||
| TUBE6_FIRED_NUKE | Event | ||
| TUBE6_FIRED_MINE | Event | ||
| TUBE6_FIRED_EMP | Event | ||
| TUBE6_FIRED_PSHOCK | Event | ||
| Engineering | SYSTEM_OVERHEATING | State | Set if any system is overheating (>80% heat) |
| Science | SCAN_INITIATED | Event | |
| SCAN_IN_PROGRESS | State | ||
| SCAN_COMPLETE | Event | ||
| Comms | INCOMING_COMMUNICATION_PRI0 | Event | transmission from enemy |
| INCOMING_COMMUNICATION_PRI1 | Event | ||
| INCOMING_COMMUNICATION_PRI2 | Event | ||
| INCOMING_COMMUNICATION_PRI3 | Event | base destroyed | |
| INCOMING_COMMUNICATION_PRI4 | Event | base under attack, refusal from neutral ships, docking complete | |
| INCOMING_COMMUNICATION_PRI5 | Event | base accepting build orders or docking request | |
| INCOMING_COMMUNICATION_PRI6 | Event | friendly ship accepting orders, status response from base, notice of ordnance built, message from GM | |
| INCOMING_COMMUNICATION_PRI7 | Event | mission available from ship or base, mission transfer complete | |
| INCOMING_COMMUNICATION_PRI8 | Event | outgoing message such as a request to surrender, message between player ships | |
| Fighter | FIGHTER_LAUNCHED | Event | |
| FIGHTER_DOCKED | Event | ||
| ALL_FIGHTERS_DOCKED | State | Set when all remaining fighters are docked. Clear when at least one fighter is still alive outside the capital ship. | |
| Damage | FRONT_SHIELD_20 | State | Set when front shields > 20%, cleared when < 20%. The FRONT_SHIELD_* and REAR_SHIELD_* cues are typically used instead of using PLAYER_SHIELDS_ON. |
| FRONT_SHIELD_40 | State | Set when front shields > 40%, cleared when < 40%. Normally this should be placed after FRONT_SHIELD_20 when both affect the same channels. | |
| FRONT_SHIELD_60 | State | Set when front shields > 60%, cleared when < 60%. Normally this should be placed after FRONT_SHIELD_40 when both affect the same channels. | |
| FRONT_SHIELD_80 | State | Set when front shields > 80%, cleared when < 80%. Normally this should be placed after FRONT_SHIELD_60 when both affect the same channels. | |
| FRONT_SHIELD_100 | State | Set when front shields at %100, cleared when < 100%. Normally this should be placed after FRONT_SHIELD_80 when both affect the same channels. | |
| REAR_SHIELD_20 | State | Set when rear shields > 20%, cleared when < 20%. The FRONT_SHIELD_* and REAR_SHIELD_* cues are typically used instead of using PLAYER_SHIELDS_ON. | |
| REAR_SHIELD_40 | State | Set when rear shields > 40%, cleared when < 40%. Normally this should be placed after REAR_SHIELD_20 when both affect the same channels. | |
| REAR_SHIELD_60 | State | Set when rear shields > 60%, cleared when < 60%. Normally this should be placed after REAR_SHIELD_40 when both affect the same channels. | |
| REAR_SHIELD_80 | State | Set when rear shields > 80%, cleared when < 80%. Normally this should be placed after REAR_SHIELD_60 when both affect the same channels. | |
| REAR_SHIELD_100 | State | Set when rear shields at %100, cleared when < 100%. Normally this should be placed after REAR_SHIELD_80 when both affect the same channels. | |
| HULL_INTEGRITY_40 | State | Set when hull integrity >= 40% (ship is destroyed at about 30%). This state is the opposite of SHIP_DAMAGE_60, except that it is more reliable, such as being affected by damage from all sources including overheating. The HILL_INTEGRITY_* cues are typically used instead of using the SHIP_DAMAGE_* cues. | |
| HULL_INTEGRITY_60 | State | Set when hull integrity >= 60%. This state is the opposite of SHIP_DAMAGE_40, except that it is more reliable, such as being affected by damage from all sources including overheating. Normally this should be placed after HULL_INTEGRITY_40 when both affect the same channels. | |
| HULL_INTEGRITY_80 | State | Set when hull integrity >= 80%. This state is the opposite of SHIP_DAMAGE_20, except that it is more reliable, such as being affected by damage from all sources including overheating. Normally this should be placed after HULL_INTEGRITY_60 when both affect the same channels. | |
| HULL_INTEGRITY_100 | State | Set when hull integrity at 100% (undamaged). Normally this should be placed after HULL_INTEGRITY_80 when both affect the same channels. | |
| Game | ALWAYS_ON | State | This state is always on. It is most useful to place before NORMAL_CONDITION_1 to have effects (such as ambient lighting) that are present when a simulation is not in progress and are overridden by NORMAL_CONDITION_1 when a simulation is in progress. Any device commands set by this cue will also remain in effect after Artemis exits. All others will be cleared. |
| GAME_PAUSED | State | Set if game is paused | |
| Custom | CUSTOM_EVENT_1 | Event | Set by dmxset command in mission script or tracing socket |
| CUSTOM_EVENT_2 | Event | Set by dmxset command in mission script or tracing socket | |
| CUSTOM_EVENT_3 | Event | Set by dmxset command in mission script or tracing socket | |
| CUSTOM_EVENT_4 | Event | Set by dmxset command in mission script or tracing socket | |
| CUSTOM_STATE_1 | State | Set and cleared by dmxset command in mission script or tracing socket | |
| CUSTOM_STATE_2 | State | Set and cleared by dmxset command in mission script or tracing socket | |
| CUSTOM_STATE_3 | State | Set and cleared by dmxset command in mission script or tracing socket | |
| CUSTOM_STATE_4 | State | Set and cleared by dmxset command in mission script or tracing socket |
The following are potential future features, in no particular order. Feel free to suggest others, or ask for prioritizing one.
Send bug reports and feature requests to dthaler@microsoft.com


| Ticket ID | Subject | Category | Status |
|---|---|---|---|
| 12346 | My product price is not visible properly | Category | On Hold |
| 12346 | My product price is not visible properly | Category | Solved |
| 12346 | My product price is not visible properly | Category | Process |
| 12346 | My product price is not visible properly | Category | Solved |
| 12346 | My product price is not visible properly | Category | Solved |
| 12346 | My product price is not visible properly | Category | Solved |


A Game to enthrall and engage you on Stock Markets!
Simulating real companies and real stock market conditions!
Compete against each other in leagues!
About us
Misys Stock Market League
The power of hands-on learning is indisputable. But when it comes to investing your money in the stock market, making a beginner's mistake can cost you more than just your self-esteem. We will help you make it easy to practice with virtual money and give you insight into the World of Stock Markets.
For additional help choosing stocks, we have an impressive resource library that spans beginner, intermediate and advanced levels.
Play the game by joining into Leagues or creating your own Leagues. Invite your friends and share your scores over social networks.
Library and Tutorials
Keep in touch with us
Stocks and Shares
The stock (also capital stock) of a corporation constitutes the equity stake of its owners. It represents the residual assets of the company that would be due to stockholders after discharge of all senior claims such as secured and unsecured debt. Stockholders' equity cannot be withdrawn from the company in a way that is intended to be detrimental to the company's creditors.
The stock of a corporation is partitioned into shares, the total of which are stated at the time of business formation. Additional shares may subsequently be authorized by the existing shareholders and issued by the company. In some jurisdictions, each share of stock has a certain declared par value, which is a nominal accounting value used to represent the equity on the balance sheet of the corporation. In other jurisdictions, however, shares of stock may be issued without associated par value.
Shares represent a fraction of ownership in a business. A business may declare different types (classes) of shares, each having distinctive ownership rules, privileges, or share values. Ownership of shares may be documented by issuance of a stock certificate. A stock certificate is a legal document that specifies the amount of shares owned by the shareholder, and other specifics of the shares, such as the par value, if any, or the class of the shares.
Source: wikipedia
Types of Stocks
Stock typically takes the form of shares of either common stock or preferred stock. As a unit of ownership, common stock typically carries voting rights that can be exercised in corporate decisions. Preferred stock differs from common stock in that it typically does not carry voting rights but is legally entitled to receive a certain level of dividend payments before any dividends can be issued to other shareholders.[3][4][page needed] Convertible preferred stock is preferred stock that includes an option for the holder to convert the preferred shares into a fixed number of common shares, usually any time after a predetermined date. Shares of such stock are called "convertible preferred shares" (or "convertible preference shares" in the UK).
New equity issue may have specific legal clauses attached that differentiate them from previous issues of the issuer. Some shares of common stock may be issued without the typical voting rights, for instance, or some shares may have special rights unique to them and issued only to certain parties. Often, new issues that have not been registered with a securities governing body may be restricted from resale for certain periods of time.
Preferred stock may be hybrid by having the qualities of bonds of fixed returns and common stock voting rights. They also have preference in the payment of dividends over common stock and also have been given preference at the time of liquidation over common stock. They have other features of accumulation in dividend. In addition, preferred stock usually comes with a letter designation at the end of the security; for example, Berkshire-Hathaway Class "B" shares sell under stock ticker BRK.B, whereas Class "A" shares of ORION DHC, Inc will sell under ticker OODHA until the company drops the "A" creating ticker OODH for its "Common" shares only designation. This extra letter does not mean that any exclusive rights exist for the shareholders but it does let investors know that the shares are considered for such, however, these rights or privileges may change based on the decisions made by the underlying company.
Stock derivatives
A stock derivative is any financial instrument which has a value that is dependent on the price of the underlying stock. Futures and options are the main types of derivatives on stocks. The underlying security may be a stock index or an individual firm's stock, e.g. single-stock futures.
Stock futures are contracts where the buyer is long, i.e., takes on the obligation to buy on the contract maturity date, and the seller is short, i.e., takes on the obligation to sell. Stock index futures are generally not delivered in the usual manner, but by cash settlement.
A stock option is a class of option. Specifically, a call option is the right (not obligation) to buy stock in the future at a fixed price and a put option is the right (not obligation) to sell stock in the future at a fixed price. Thus, the value of a stock option changes in reaction to the underlying stock of which it is a derivative. The most popular method of valuing stock options is the Black Scholes model.[6] Apart from call options granted to employees, most stock options are transferable.
Source: wikipedia
Shareholder
A shareholder (or stockholder) is an individual or company (including a corporation) that legally owns one or more shares of stock in a joint stock company. Both private and public traded companies have shareholders. Companies listed at the stock market are expected to strive to enhance shareholder value.
Shareholders are granted special privileges depending on the class of stock, including the right to vote on matters such as elections to the board of directors, the right to share in distributions of the company's income, the right to purchase new shares issued by the company, and the right to a company's assets during a liquidation of the company. However, shareholder's rights to a company's assets are subordinate to the rights of the company's creditors.
Shareholders are considered by some to be a partial subset of stakeholders, which may include anyone who has a direct or indirect equity interest in the business entity or someone with even a non-pecuniary interest in a non-profit organization. Thus it might be common to call volunteer contributors to an association stakeholders, even though they are not shareholders.
Although directors and officers of a company are bound by fiduciary duties to act in the best interest of the shareholders, the shareholders themselves normally do not have such duties towards each other.
However, in a few unusual cases, some courts have been willing to imply such a duty between shareholders. For example, in California, USA, majority shareholders of closely held corporations have a duty to not destroy the value of the shares held by minority shareholders.
The largest shareholders (in terms of percentages of companies owned) are often mutual funds, and, especially, passively managed exchange-traded funds.
Source: wikipedia
Trading
Buy and Sell
In general, the shares of a company may be transferred from shareholders to other parties by sale or other mechanisms, unless prohibited. Most jurisdictions have established laws and regulations governing such transfers, particularly if the issuer is a publicly traded entity.
The desire of stockholders to trade their shares has led to the establishment of stock exchanges, organizations which provide marketplaces for trading shares and other derivatives and financial products. Today, stock traders are usually represented by a stockbroker who buys and sells shares of a wide range of companies on such exchanges. A company may list its shares on an exchange by meeting and maintaining the listing requirements of a particular stock exchange. In the United States, through the intermarket trading system, stocks listed on one exchange can often also be traded on other participating exchanges, including electronic communication networks (ECNs), such as Archipelago or Instinet.
Buy
There are various methods of buying and financing stocks, the most common being through a stockbroker. Brokerage firms, whether they are a full-service or discount broker, arrange the transfer of stock from a seller to a buyer. Most trades are actually done through brokers listed with a stock exchange.
There are many different brokerage firms from which to choose, such as full service brokers or discount brokers. The full service brokers usually charge more per trade, but give investment advice or more personal service; the discount brokers offer little or no investment advice but charge less for trades. Another type of broker would be a bank or credit union that may have a deal set up with either a full-service or discount broker.
There are other ways of buying stock besides through a broker. One way is directly from the company itself. If at least one share is owned, most companies will allow the purchase of shares directly from the company through their investor relations departments. However, the initial share of stock in the company will have to be obtained through a regular stock broker. Another way to buy stock in companies is through Direct Public Offerings which are usually sold by the company itself. A direct public offering is an initial public offering in which the stock is purchased directly from the company, usually without the aid of brokers.
Sell
Selling stock is procedurally similar to buying stock. Generally, the investor wants to buy low and sell high, if not in that order (short selling); although a number of reasons may induce an investor to sell at a loss, e.g., to avoid further loss.
As with buying a stock, there is a transaction fee for the broker's efforts in arranging the transfer of stock from a seller to a buyer. This fee can be high or low depending on which type of brokerage, full service or discount, handles the transaction.
After the transaction has been made, the seller is then entitled to all of the money. An important part of selling is keeping track of the earnings. Importantly, on selling the stock, in jurisdictions that have them, capital gains taxes will have to be paid on the additional proceeds, if any, that are in excess of the cost basis.
Source: wikipedia
Stock Market
A stock market or equity market is the aggregation of buyers and sellers (a loose network of economic transactions, not a physical facility or discrete entity) of stocks (also called shares); these may include securities listed on a stock exchange as well as those only traded privately.
Stocks can be categorised in various ways. One common way is by the country where the company is domiciled. For example, Nestlé and Novartis are domiciled in Switzerland, so they may be considered as part of the Swiss stock market, although their stock may also be traded at exchanges in other countries.
 Companies may want to get their stock listed on a stock exchange. Other stocks may be traded "over the counter", that is, through a dealer. A large company will usually have its stock listed on many exchanges across the world.
Exchanges may also cover other types of security such as fixed interest securities or indeed derivatives.


We collect donated gently used items or even new items you may no longer want. Then at Christmas time volunteers gather together to wrap gifts. On one special day we all go out into the community and give gifts away to people!!
We would love to have this project expand even more and incorporate all ages (last Christmas we had ages 10 - 82 involved!) into all aspects of the program from gift packaging day to gift distribution. Even people who would love to bake Christmas cookies that we can take to a retirement center as a surprise gift! So many possibilities!
PLEASE DONATE "gently used" items to be used to give out to people “randomly” at Christmas time.
These are anonymous acts of kindness that touch the receivers in amazing ways.
We need items donated anytime of the year. (Email Kalei and she will pick up the items.)
Examples of items that can be gifted are:
Decorative items, picture frames, purses, wallets, scarves, jewelry, coffee mugs, stuffed animals, nice magnets, jewelry boxes, body wash, nice Christmas ornaments, gift cards, nice soaps or bath salts, and the list continues.
We especially need items men would appreciate. Also, tons of gift bags and tissue paper for this year's project. If you have some used gift bags and tissue paper we could use them!
| Donations | “How would your life be different if ... you decided to give freely, love fully, and play feverously? Let today be the day...You free yourself from the conditioned rules that limit your happiness and dilute the beautiful life experience. Have fun. Give - Love - Play!” ― Steve Maraboli, The Power of One |


I am an Assistant Professor in the Faculty of Education at the University of Macau. I completed my Ph.D. in Measurement, Evaluation, and Data Science at the University of Alberta in July 2021. Before studying at U of A, I earned my bachelor’s and master’s degrees from Beijing Normal University, China. I have received training in psychology, educational measurement, and data science, and have been an active researcher in the areas of learning analytics and educational data mining.
My primary focus of current research is on the intersection of education and data science. Specifically, I am interested in developing and applying novel computational methods (e.g., deep learning) to characterize, interpret, and promote student learning based on both structured and unstructured learner data from students’ interactions with digital learning environments. I am also interested in applying data science techniques to address a wide range of issues in education.
In the long term, I see myself engaged in a career devoted to active interdisciplinary research in developing and applying cutting-edge statistical, psychometric, and data science approaches to decipher student learning and address complex assessment issues emerged in other settings (e.g., cognitive science, health, and business). I am looking forward to any potential collaborations.
Ph.D. in Measurement, Evaluation, and Data Science, 2021
University of Alberta
M.Ed. in Educational Measurement, 2017
Beijing Normal University
B.S. in Psychology, 2014
Beijing Normal University


---
layout: default
title: Add department
permalink: /add-department/
---
{% include breadcrumbs.html parent="departments" %}
This department has been
created and the page is currently generating.
It will be available momentarily at
There was an error saving this page
Add department
{% include department-form.html %}


Utilities¶
Sphinx provides utility classes and functions to develop extensions.
Base classes for components¶
These base classes are useful to allow your extensions to obtain Sphinx
components (e.g. Config
, BuildEnvironment
and so on) easily.
注解
The subclasses of them might not work with bare docutils because they are strongly coupled with Sphinx.
-
class
sphinx.transforms.
SphinxTransform
(document, startnode=None)[源代码]¶ A base class of Transforms.
Compared with
docutils.transforms.Transform
, this class improves accessibility to Sphinx APIs.-
env
¶ Reference to the
BuildEnvironment
object.
-
-
class
sphinx.transforms.post_transforms.
SphinxPostTransform
(document, startnode=None)[源代码]¶ A base class of post-transforms.
Post transforms are invoked to modify the document to restructure it for outputting. They do resolving references, convert images, special transformation for each output formats and so on. This class helps to implement these post transforms.
-
class
sphinx.util.docutils.
SphinxDirective
(name, arguments, options, content, lineno, content_offset, block_text, state, state_machine)[源代码]¶ A base class for Sphinx directives.
This class provides helper methods for Sphinx directives.
注解
The subclasses of this class might not work with docutils. This class is strongly coupled with Sphinx.
-
env
¶ Reference to the
BuildEnvironment
object.
-
-
class
sphinx.util.docutils.
SphinxRole
[源代码]¶ A base class for Sphinx roles.
This class provides helper methods for Sphinx roles.
注解
The subclasses of this class might not work with docutils. This class is strongly coupled with Sphinx.
-
content
= None¶ A list of strings, the directive content for customization
-
env
¶ Reference to the
BuildEnvironment
object.
-
inliner
= None¶ The
docutils.parsers.rst.states.Inliner
object.
-
lineno
= None¶ The line number where the interpreted text begins.
-
name
= None¶ The role name actually used in the document.
-
options
= None¶ A dictionary of directive options for customization
-
rawtext
= None¶ A string containing the entire interpreted text input.
-
text
= None¶ The interpreted text content.
-
-
class
sphinx.util.docutils.
ReferenceRole
[源代码]¶ A base class for reference roles.
The reference roles can accpet
link title <target>
style as a text for the role. The parsed result; link title and target will be stored toself.title
andself.target
.-
has_explicit_title
= None¶ A boolean indicates the role has explicit title or not.
-
target
= None¶ The link target for the interpreted text.
-
title
= None¶ The link title for the interpreted text.
-
-
class
sphinx.transforms.post_transforms.images.
ImageConverter
(*args, **kwargs)[源代码]¶ A base class for image converters.
An image converter is kind of Docutils transform module. It is used to convert image files which does not supported by builder to appropriate format for that builder.
For example,
LaTeX builder
supports PDF, PNG and JPEG as image formats. However it does not support SVG images. For such case, to use image converters allows to embed these unsupported images into the document. One of image converters; sphinx.ext.imgconverter can convert a SVG image to PNG format using Imagemagick internally.There are three steps to make your custom image converter:
Make a subclass of
ImageConverter
classOverride
conversion_rules
,is_available()
andconvert()
Register your image converter to Sphinx using
Sphinx.add_post_transform()
-
convert
(_from, _to)[源代码]¶ Convert a image file to expected format.
_from is a path for source image file, and _to is a path for destination file.
-
conversion_rules
= []¶ A conversion rules the image converter supports. It is represented as a list of pair of source image format (mimetype) and destination one:
conversion_rules = [ ('image/svg+xml', 'image/png'), ('image/gif', 'image/png'), ('application/pdf', 'image/png'), ]


Reports any redundant modifier on records.
Example:
final record R() { } class Test { static record R() { } }


Wicked | Dashboard
Dashboard
Assets
Reports
Users
Reports
Network Device Summary
Workstation Summary
Network Device List


About
Dr. Dhirendra Paudel knows there is no single technique that works for everybody, so he maintains to discipline himself on emerging therapies, psychopharmacological treatments, and psychological trends to provide the most comprehensive program that works for each of his client’s individual needs. He has experience in psychopharmacology, Cognitive Behavior Therapy, Rational Emotive Behavior Therapy, and many others.
Dr. Dhirendra Paudel received his education at the Southern Medical University with a Master of Medicine in Psychiatry and Mental Health. He also holds a Bachelor in Medicine and Bachelor in Surgery from Tribhuvan University. He is an avid researcher, and his works have been published in various journals. His research interests include psychotherapeutic interventions (esp. cognitive behavior therapy and rational emotive behavior therapy), psychopharmacology, and sleep medicine.
Skills
Southern Medical University, Guangzhou, Guangdong, China
Master of Medicine in Psychiatry and Mental Health
Universal College of Medical Sciences and Teaching Hospital, Tribhuvan University, Bhairahawa, Nepal
Bachelor of Medicine and Bachelor of Surgery
Kathmandu University
Intermediate of Science
Dhaulagiri Hospital, Baglung, Gandaki, Nepal
Psychiatrist
Nanfang Hospital, Southern Medical University, Guangzhou, Guangdong, China
Residency in Department of Psychiatry
Private Practitioner | Freelancer
Medical Doctor/Advisor
Work & Services
Research
On emerging therapies and comprehensive programs that work for client’s individual needs.
- Learn More - orcid
Telepsychiatry
Psychiatric evaluations, psychotherapy, patient education and medication management.
- Learn More - Contact
Psychopharmacology
Use of medications in treating mental health problems and related disorders.
- Learn More - Contact
Personal Website
Personal Website
- Created - 2014
- Technology - HTML, CSS, JS
- Role - Administrator
- Learn More - Personal Website
Glassmorphism
Curriculum Vitae in Glassmorphism Style
- Created - 2021
- Technology - HTML, CSS, JS
- Role - Maintainer
- Learn More - Glassmorphism
Neumorphism
Curriculum Vitae in Neumorphism Style
- Created - 2021
- Technology - HTML, CSS, JS
- Role - Maintainer
- Learn More - Neumorphism
Contact Me
dhirendra@doctor.com


The minimum requirement to build LibSass with Visual Studio is "Visual Studio 2013 Express for Desktop".
Additionally, it is recommended to have git
installed and available in PATH
, so to deduce the libsass
version information. For instance, if GitHub for Windows (https://windows.github.com/) is installed, the PATH
will have an entry resembling: X:\Users\<YOUR_NAME>\AppData\Local\GitHub\PortableGit_<SOME_GUID>\cmd\
(where X
is the drive letter of system drive). If git
is not available, inquiring the LibSass version will result in [NA]
.
On opening the win\libsass.sln
solution and build (Ctrl+Shift+B) to build libsass.dll
.
To Build LibSass as a static Library, it is recommended to set an environment variable LIBSASS_STATIC_LIB
before launching the project:
cd path\to\libsass
SET LIBSASS_STATIC_LIB=1
::
:: or in PowerShell:
:: $env:LIBSASS_STATIC_LIB=1
::
win\libsass.sln
Visual Studio will form the filtered source tree as shown below:
Header Files
contains the .h and .hpp files, while Source Files
covers .c
and .cpp
. The other used headers/sources will appear under External Dependencies
.
If there is a LibSass code file appearing under External Dependencies, it can be changed by altering the win\libsass.vcxproj.filters
file or dragging in Solution Explorer.
Notice that in the following commands:
ProgramFiles(x86)
with ProgramFiles
.12.0
with 14.0
in the aforementioned command.Open a command prompt:
To build dynamic/shared library (libsass.dll
):
:: debug build:
"%ProgramFiles(x86)%\MSBuild\12.0\Bin\MSBuild" win\libsass.sln
:: release build:
"%ProgramFiles(x86)%\MSBuild\12.0\Bin\MSBuild" win\libsass.sln ^
/p:Configuration=Release
To build static library (libsass.lib
):
:: debug build:
"%ProgramFiles(x86)%\MSBuild\12.0\Bin\MSBuild" win\libsass.sln ^
/p:LIBSASS_STATIC_LIB=1
:: release build:
"%ProgramFiles(x86)%\MSBuild\12.0\Bin\MSBuild" win\libsass.sln ^
/p:LIBSASS_STATIC_LIB=1 /p:Configuration=Release
To build dynamic/shared library (libsass.dll
):
# debug build:
&"${env:ProgramFiles(x86)}\MSBuild\12.0\Bin\MSBuild" win\libsass.sln
# release build:
&"${env:ProgramFiles(x86)}\MSBuild\12.0\Bin\MSBuild" win\libsass.sln `
/p:Configuration=Release
To build static library (libsass.lib
):
# build:
&"${env:ProgramFiles(x86)}\MSBuild\12.0\Bin\MSBuild" win\libsass.sln `
/p:LIBSASS_STATIC_LIB=1
# release build:
&"${env:ProgramFiles(x86)}\MSBuild\12.0\Bin\MSBuild" win\libsass.sln `
/p:LIBSASS_STATIC_LIB=1 /p:Configuration=Release


Scholarships
{% if scholarship_decided %}
{% if applying_for_scholarship %}
You are applying for a scholarship!
{% else %}
You are not applying for a scholarship
{% endif %}
{% endif %}
In this batch of the Lisbon Data Science Starters Academy, we’ll have 10 seats for people who live with no / low income and therefore
can’t afford paying the normal fees (which are 100€ for student tickets, 250€ for regular tickets and 1500€ for company tickets).
The scholarship seats have a symbolic 20€ fee.
The process that we’ll use to decide whether to grant a scholarship is the following:
-
The candidate will start by reading these terms and conditions carefully, and confirm that they accept them.
-
Between the 11th and the 24th of July, the candidate will work on the admission tests. This is the same as for candidates who are not applying for a scholarship.
-
If the candidate doesn't pass the admission tests, the admission process is over and they won’t be accepted in the LDSSA.
-
If the candidate passed the admission tests, and there are less than 10 scholarship candidates who passed the test, the candidate will automatically move on to the next phase.
If there are more than 10 scholarship candidates who passed the test, the candidate will go through a random selection process to decide whether they will move on to the next phase.
This random selection follows the same entrance type restrictions as the non-scholarship one.
-
If the candidate passed the selection phase, the next phase is a video call with a staff member of the Academy.
The goal of the video call is for us to learn why the candidate needs a scholarship.
It will be helpful for us to make the decision if the candidate has documentation that proves their no / low income situation, although this is not mandatory.
This video call will be led by an interviewer who will collect the data that the candidate is comfortable sharing with us, by writing a report in a document shared with the candidate.
At the end of the video call, the candidate will be asked to read the interviewer’s report and to sign it (by writing their full name at the bottom of the shared document).
The actual decision will be made by the Academy’s executive team, based only on the content of the report.
-
In case the scholarship is granted, the candidate will have 48h to pay the 20€ fee and submit their payment proof.
The payment proof will be validated by a staff member of the Academy, and in case it’s valid, the candidate is accepted in Batch 5 of the LDSSA.
-
If a candidate doesn’t pass the interview phase or doesn't pay the fee, the next candidates in line will be called for the interview.
So, even if a candidate is not called for a first round of interviews, they might still be called for a second or third one.
In the case where less than 10 scholarships are granted, the remaining seats will be filled in by non scholarship candidates.
In case the candidate decides to apply for a scholarship at the beginning of the admissions process, they won’t be able to change this at any time during the process!
If the scholarship is denied, they won’t be able to pay the normal fee and get in through the normal admissions funnel.
{% if not scholarship_decided %}
Do you want to apply for a scholarship?
{% endif %}
{% endblock %}


Press ESC to quit the experiment, data will be lost
Press SPACEBAR to continue
Try the test experiment: Enter your participant ID and click on Start. Calibration will start first.
By clicking on Start you accept the experiment conditions and consent form (if given).
You finished all the trials, your data has been uploaded!
Thanks for participating, click here to go back.
Measure your screen in cm or inches.
Do not measure the screen border, only the interior of the display.
Place a credit card in the top left corner of the square.
Adjust the slider to match the size of your credit card in the screen.
Li, Q., Joo, S.J., Yeatman, J.D. et al. Controlling for Participants' Viewing Distance in Large-Scale, Psychophysical Online Experiments Using a Virtual Chinrest. Sci Rep 10, 904 (2020). doi:10.1038/s41598-019-57204-1
Introduce the Google Drive Folder ID:
Warning: If you choose to use SimplePhy with local files, you will need to provide all your
participants with the stimuli you are using here.
You can upload them as a compressed file that they can
download.
Select the folder that contains your input files:
| Text before the trial: | |
| Correct key: |


Welcome to my page. This page will continue to grow as time goes on from Web Authoring and hopefully carry on to the future! I am a current Graphic Design mmajor at California State University, East Bay and hopefully will be graduating by the year of 2018. Admittingly, the current class is really hard. Especially having to deal with Graphic Design II AND Production Design AND being a full time worker and student, it gave me little to no time to try to finish these projects. With that being said, it is what it is. It's the real world out there ladies and gents. Words for the future: DO NOT TAKE GD II, PRODUCTION DESIGN, AND WEB AUTHORING AT THE SAME TIME. You will perish. The warning has been posted. Good Luck and Have Fun.


Andhra govt cancels Rs 3 crore work orders at CM's residence to ward off criticism
BJP leader Lanka Dinakar welcomed the cancellation of the order pertaining to the expenditure.
by ANIAmaravati: In a bid to ward off allegations of lavish and wasteful expenditure by Chief Minister Y S Jagan Mohan Reddy levied by the opposition parties, the state government on Sunday cancelled proposed work at his residence.
The proposed work amounting to Rs 2, 87, 50000 for installation of aluminium windows and doors, furniture and other things is cancelled.
The government order cancelled earlier orders for providing round the clock services of qualified Electrical Maintenance staff at the CM residence and Camp Office worth Rs 8.5 lakhs, for security
Arrangements at CM's Hyderabad Residence worth Rs 24.5 lakhs.
The order also cancelled earlier GO (government order) for temporary arrangements like PVC rain Proof Pagodas, Mobile Toilets, Coolers and other amenities surrounding CM Camp Residence worth Rs 22.5 lakhs.
It cancelled earlier order for Supply and Installation of Aluminium Windows / Doors and Miscellaneous Works in CM Camp Residence and Office Block worth Rs 73 lakhs.
IT cancelled earlier orders for annual maintenance of camp residence of AP CM for 2019-20 worth Rs 1.20 crores and for furniture at CM camp residence worth Rs 39 lakhs.
BJP leader Lanka Dinakar welcomed the cancellation of the order pertaining to the expenditure.
"We all criticised the decisions of Jagan administration on these Government orders using the funds of the public exchequer as their money in pocket, media also played a vital role to expose it," Dinakar said in an official statement.
The leader added, "In a previous government under TDP also made similar practices. But present government under YSRCP is reaching to the next levels."
Catch the latest news, live coverage and in-depth analyses from India and World. Follow us on Facebook and Twitter.


About me
A little about me
My name is Ben Hetman. I’m currently a MSc. grad-student at the University of Lethbridge. But if I think about it, that’s probably the worst way to describe myself. More appropriately:
- I can (read have) re-watch any episode of Seinfeld pretty much at any time of day, and quote most of the iconic phrases from the episode as soon as I see which one it is.
- I like homemade things.. or at least homebrewed things. From both angles of the science, and mostly the drinking, I love making homemade beer, wine and cider, not in any particular order.
- Mountains excite me, as does yummy food. Mountains and yummy food at the same time is best.
What else do you need?
my cv
In order to give my hand a try at writing something in Latex, I wrote something in Latex, using a template I found online (I’ll try to post a link later when I definitely remember.) Curriculum Vitae


| 1. |
|
|
| 2. |
Synthetically derived; often nature-imitated or nature-identical |
Plants have grown in nature and evolved over millions of years during the course of natural selection |
| 3. |
Mostly therapeutic |
Both prophylactic and therapeutic; prophylactic action more profound. Herbal medicine focuses on prevention rather than treating a disease or ailment once it arises |
| 4. |
Usually acts on a particular biological pathway |
Holistic in action; overall wellness |
| 5. |
Expensive |
Cheaper |
| 6. |
Accessible only to section of society, which can afford |
Affordable, acceptable and accessible to all sections of society |
| 7. |
Few years of animal and human testing |
Years (sometimes thousands) of usage in traditional systems of medicine |
| 8. |
Requires prescription from medical practitioner |
Easier to obtain than prescription medications, mostly available OTC |
| 9. |
Limited choice for chronic and acute medical ailments |
Possess beneficial, healing properties for the treatment of chronic and acute conditions and various ailments for which treatment is not available in Western systems of medicine |
| 10. |
Very few medicines for terminally ill patients |
Preferred choice of terminally ill patients |
| 11. |
Toxicity/side effects: a major issue |
Lesser toxicity/side effects; presence of multiple components countering the toxic action of one compound |
| 12. |
Few antiviral drugs |
Source of antiviral drugs |


Singapore, Philippine travelers can now book rides in Japan, Middle East via Grab
by Coconuts SingaporeTravelers from Singapore and the Philippines can now use Grab to book rides while vacationing in Japan and the Middle East, the ride-hailing company has announced.
Grab teamed up with services in Japan and several Middle Eastern locales for the new service that will also overcome language barriers for traveler convenience.
It has now launched in Tokyo, Kyoto, Nagoya, Sapporo, and Okinawa through the JapanTaxi app. Via Careem app, it is also available in most parts of the Middle East as well as Turkey and Pakistan. That includes cities such as Dubai, Baghdad, and Beirut.
Users can chat easily with their drivers as the app now comes with an auto-translation feature. Passengers can type in their preferred languages and their messages will be translated for the driver, and vice-versa.
Payments are made through the GrabPay e-wallet, so probably a good idea to top it up with credit before flying off.
This nifty new feature could be rolled out to other parts of Southeast Asia next year subject to regulatory approval, Grab said.
Related:


Projects
On this page we list some of the projects developed at LabLua.
Ongoing projects
- Pallene - a statically-typed companion language for Lua
- Lua in kernel - kernel-scripting environments based on Lua
- Luadata - Lua and C APIs to handle binary data using Lua scripts
- Céu Language - a concurrent and reactive programming language
- Terra - scripting customized components for Wireless Sensor Networks
Past projects
- Typed Lua - a variant of Lua with static type checking
- LuaRocks - package manager for Lua modules, part of the Kepler Project, previously maintained at LabLua and now an independent project
- LuaInterface - scripting CLR objects with Lua
- Lua2IL - a Lua to CIL compiler
- Lua.NET - integrating Lua with the CLI
- LuaDec - a decompiler for Lua 5.0
- LibScript - abstraction and intercommunication layer
for scripting language APIs


Nyzo version 616 (commit on GitHub) adds a dynamic update of the frozen edge to the root client web view.
This version affects the client only.
This is a small change that was made in the course of larger client updates. It is being released now to allow the next release to be more focused.
In ClientController, a small script was added to the page() method to update the frozen edge and client version using the /api/frozenEdge endpoint. The value is updated every 7 seconds.
To support the new homepage update, clientVersion was added to the FrozenEdgeCommand.


{% extends 'placeholdr/base.html' %} {% load staticfiles %} {% load bootstrap4 %} {% block title_block %} Register {% endblock %} {% block css_block %} {% endblock %} {% block body_block %}
You have been logged in
You can view your account here
{% else %} {% if user.is_authenticated %}If you wish to create a new account, please logout
If you wish to delete your account, please go to your account
{% else %}


Guest
MODULE 01
of 01
Professional skepticism and Fraud
0%
completed
DASH BOARD
GLOSSARY
RESOURCES
HELP
EY audits - a closer look -12
Explore
>
EY audits - a closer look -12
Explore
>
EY audits - a closer look -12
Explore
>
EY audits - a closer look -12
Explore
>
Modules Section
Understand the business
1.1 Submenu1
1.2 Submenu2
Understand the business
Understand the business
Understand the business
Understand the business
Understand the business
Understand the business
Understand the business


Request to send a status line
For details, refer to
RFC-2616 Sec. 10
.
100 Continue
101 Switching Protocols
200 OK
201 Created
202 Accepted
203 Non-Authoritative Information
204 No Content
205 Reset Content
206 Partial Content
300 Multiple Choices
301 Moved Permanently
302 Found
303 See Other
304 Not Modified
305 Use Proxy
307 Temporary Redirect
400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found
405 Method Not Allowed
406 Not Acceptable
407 Proxy Authentication Required
408 Request Timeout
409 Conflict
410 Gone
411 Length Required
412 Precondition Failed
413 Request Entity Too Large
414 Request-URI Too Long
415 Unsupported Media Type
416 Requested Range Not Satisfiable
417 Expectation Failed
500 Internal Server Error
501 Not Implemented
502 Bad Gateway
503 Service Unavailable
504 Gateway Timeout
505 HTTP Version Not Supported


JSK
Receipt
# {{receipt.id}}
Date:
{{receipt.created|date:"d-m-Y"}}
From:
{{receipt.customer.name}}
Payment Method:
{{receipt.type}}
Received:
{{receipt.total}}
In Words:
{{inwords}} rupees only
Receipt Allotment Detail
Invoice
Amount
{%for item in receipt.receiptline_set.all%}
Id: {{item.invoice.id}} Created : {{item.invoice.created|date}}/{{item.invoice.created|timesince}} Balance : {{item.invoice.balance}}
{{item.amount}}
{%endfor%}


Hello!
I try to set up process over the API.
Example:
http://<IP_ADDRESS>/emoncms/input/process/add.json?inputid=1&processid=1&arg=-1&newfeedname=power
I always get "false"
May I made a error or how can I use it?
Thank you!
Archived Forum |
|
API: Input process actions not workingSubmitted by unique24 on Sun, 20/04/2014 - 15:07Hello!
I try to set up process over the API. Example: http://<IP_ADDRESS>/emoncms/input/process/add.json?inputid=1&processid=1&arg=-1&newfeedname=power
I always get "false"
May I made a error or how can I use it?
Thank you! » |
Re: API: Input process actions not working
Ok, I found the commands for "*" and "+":
http://<IP_ADDRESS>/emoncms/input/process/add.json?inputid=17&processid...
So have someone a complete list of the arg's?
Because processid 1 is for feed and it does not work to generate a new one.
I can link a existing feed, but need to create new one.
Thank you!
Re: API: Input process actions not working
Have you tried adding your Read&Write API key?
Re: API: Input process actions not working
Hello!
Well, I can add now process and feeds, but I dont know the arg.
To generate a new process and Feed I have to add The correct arguments.
Is there a list or more examles?
THank you!
Re: API: Input process actions not working
The API documentation is available from the API page in emoncms ( Input API help - top right) http://emoncms.org/input/api
Re: API: Input process actions not working
Hello!
Yes, this link I know.
But for:
Add an input process
There are a lot off different processes.
Re: API: Input process actions not working
http://emoncms.org/site/docs/inputprocessing is specific to the input processes, this and other helpful pages are all available from the main emoncms.org page http://emoncms.org/site/home
Re: API: Input process actions not working
Hello!
Ok, thank you. This helps, but it working not for me.
I found that the "arg" has to be the ID and not the name!
This is working:
But I have also to add a new feed:
With this a new feed is created, but need:
datatype: REALTIME
Engine: PHPFIWA
What means type in the url? Trying PHPFIWA and some Integer values. But always create:
Datatype:empty
Engine: MYSQL
Thank you!
Re: API: Input process actions not working
I also tryied:
http://<IP_ADDRESS>/emoncms/feed/set.json?id=18&fields={'engine':'0'}
or:
http://<IP_ADDRESS>/emoncms/feed/create.json?name=api_demo_1&type=0&fields={%27engine%27:%270%27}
But is not working.
Has someone a complete sample to create feeds and process via API?
Thank you!
Re: API: Input process actions not working
Edit:
Ok, I found it. I search the files at the local webserver.
http://<IP_ADDRESS>/emoncms/feed/create.json?name=api_demo_9&datatype=1...
I get:
Notice: Trying to get property of non-object in /var/www/emoncms/Modules/feed/feed_model.php on line 104
{"success":true,"feedid":30,"result":true}
Seems it working, but does someone know, what the notice mean?
Thank you!
Re: API: Input process actions not working
If you open emoncms.org on an input page and open your browsers developer tools to the networks page. You can then see the urls that are produced whilst creating a feed on the webpage, from this you can emulate the urls you need.
I just tried it and got this url,
http://emoncms.org/feed/create.json?name=api_demo_1&datatype=1&engine=5&options={"interval":"10"}
changed the "name" and pasted it into browser address bar and set up an identical feed, the browser returned
using this method you should be able to compile a list of editable/eusable urls.
The message is a result of not specifying a time interval, if you add
to your url it will work without the message. (10 is default for 10 secs - change as required)
Paul
Re: API: Input process actions not working
Hello!
Great Tipp. Thank You very much!
Re: API: Input process actions not working
thx a lot!
had the same issues here!
Re: API: Input process actions not working
thx also from here!
does anybody know how to add a wh Accumulator to an input?
also i'm trying to figure out how to set the tag attribute of the new feed.


This inspection checks command you type in command console or command file. It helps you to make sure arguments are on their places, option names are correct as well as arguments, provided for options.
Do not disable it if you are going to use command-line interfaces like manage.py in Django


|
BitMagic-C++
|
Example: bvector<> bit-counting techniques analysis. More...
#include <iostream>
#include <random>
#include <memory>
#include "bm.h"
#include "bmalgo.h"
#include "bmtimer.h"
Go to the source code of this file.
Functions | |
| std::mt19937 | gen (rand_dev()) |
| std::uniform_int_distribution | rand_dis (1, int(vector_max)) |
| static void | generate_bvector (bm::bvector<> &bv) |
| generate pseudo-random bit-vector, mix of blocks More... | |
| static unsigned | pre_heat (const bm::bvector<> &bv) |
| "pre-heat" CPU to minimize dynamic overclocking effects More... | |
| static void | bv_count_test (const bm::bvector<> &bv) |
| simple population count for the whole vector More... | |
| static void | bv_count_range (const bm::bvector<> &bv) |
| count_range() test More... | |
| static void | bv_count_range_acc (const bm::bvector<> &bv) |
| count_range() test using pre-calculated blocks bit count More... | |
| static void | bv_count_to_acc (const bm::bvector<> &bv) |
| count_to() test using pre-calculated rank-select index More... | |
| static void | bv_count_to_range_acc (const bm::bvector<> &bv) |
| count_range implemented via two count_to() calls using pre-calculated rank-select index More... | |
| static void | bv_count_and (const bm::bvector<> &bv) |
| count_range implemented via bm::count_and More... | |
| static void | bv_counted_enumerator (const bm::bvector<> &bv) |
| count_to implemented via bm::bvector<>::counted_enumerator More... | |
| int | main (void) |
Variables | |
| bm::chrono_taker::duration_map_type | timing_map |
| const unsigned | benchmark_count = 10000 |
| unsigned | vector_max = 400000000 |
| std::random_device | rand_dev |
Example: bvector<> bit-counting techniques analysis.
Definition in file sample11.cpp.
|
static |
count_range implemented via bm::count_and
this method can be used, when we need co compute multiple ranges in one call
Definition at line 240 of file sample11.cpp.
References benchmark_count, bm::BM_GAP, bm::bvector< Alloc >::clear(), bm::count_and(), gen(), rand_dis(), bm::bvector< Alloc >::set_range(), and timing_map.
Referenced by main().
|
static |
count_range() test
Definition at line 131 of file sample11.cpp.
References benchmark_count, bm::bvector< Alloc >::count_range(), gen(), rand_dis(), and timing_map.
Referenced by main().
|
static |
count_range() test using pre-calculated blocks bit count
Definition at line 152 of file sample11.cpp.
References benchmark_count, bm::bvector< Alloc >::count_blocks(), bm::bvector< Alloc >::count_range(), gen(), rand_dis(), bm::set_total_blocks, and timing_map.
Referenced by main().
|
static |
simple population count for the whole vector
Definition at line 113 of file sample11.cpp.
References benchmark_count, bm::bvector< Alloc >::count(), and timing_map.
Referenced by main().
|
static |
count_to() test using pre-calculated rank-select index
Definition at line 181 of file sample11.cpp.
References benchmark_count, bm::bvector< Alloc >::build_rs_index(), bm::bvector< Alloc >::count_to(), gen(), rand_dis(), and timing_map.
Referenced by main().
|
static |
count_range implemented via two count_to() calls using pre-calculated rank-select index
Definition at line 207 of file sample11.cpp.
References benchmark_count, bm::bvector< Alloc >::build_rs_index(), bm::bvector< Alloc >::count_to(), gen(), rand_dis(), and timing_map.
Referenced by main().
|
static |
count_to implemented via bm::bvector<>::counted_enumerator
Counted enumerator is an iterator automata, which counts the running population count along the iteration sequence
Definition at line 270 of file sample11.cpp.
References benchmark_count, bm::bvector< Alloc >::counted_enumerator::count(), bm::bvector< Alloc >::first(), gen(), rand_dis(), timing_map, and bm::bvector< Alloc >::iterator_base::valid().
Referenced by main().
| std::mt19937 gen | ( | rand_dev() | ) |
Referenced by bv_count_and(), bv_count_range(), bv_count_range_acc(), bv_count_to_acc(), bv_count_to_range_acc(), bv_counted_enumerator(), and pick_benchmark_set().
|
static |
generate pseudo-random bit-vector, mix of blocks
Definition at line 57 of file sample11.cpp.
References bm::bv_statistics::bit_blocks, BM_DECLARE_TEMP_BLOCK, bm::bvector< Alloc >::calc_stat(), bm::bv_statistics::gap_blocks, bm::bvector< Alloc >::optimize(), bm::bvector< Alloc >::set(), bm::bvector< Alloc >::set_range(), and vector_max.
Referenced by main().
| int main | ( | void | ) |
pre-heat CPU to minimize dynamic overclocking
Definition at line 295 of file sample11.cpp.
References bv_count_and(), bv_count_range(), bv_count_range_acc(), bv_count_test(), bv_count_to_acc(), bv_count_to_range_acc(), bv_counted_enumerator(), bm::chrono_taker::ct_ops_per_sec, generate_bvector(), pre_heat(), bm::chrono_taker::print_duration_map(), and timing_map.
|
static |
"pre-heat" CPU to minimize dynamic overclocking effects
Definition at line 96 of file sample11.cpp.
References benchmark_count, and bm::bvector< Alloc >::count().
Referenced by main().
| std::uniform_int_distribution rand_dis | ( | 1 | , |
| int(vector_max) | |||
| ) |
Referenced by bv_count_and(), bv_count_range(), bv_count_range_acc(), bv_count_to_acc(), bv_count_to_range_acc(), bv_counted_enumerator(), and pick_benchmark_set().
| const unsigned benchmark_count = 10000 |
Definition at line 46 of file sample11.cpp.
Referenced by bv_count_and(), bv_count_range(), bv_count_range_acc(), bv_count_test(), bv_count_to_acc(), bv_count_to_range_acc(), bv_counted_enumerator(), and pre_heat().
| std::random_device rand_dev |
Definition at line 49 of file sample11.cpp.
Referenced by pick_benchmark_set().
| bm::chrono_taker::duration_map_type timing_map |
Definition at line 44 of file sample11.cpp.
Referenced by bv_count_and(), bv_count_range(), bv_count_range_acc(), bv_count_test(), bv_count_to_acc(), bv_count_to_range_acc(), bv_counted_enumerator(), and main().
| unsigned vector_max = 400000000 |
Definition at line 47 of file sample11.cpp.
Referenced by generate_bvector().


Graph Fundamentals — Part 2: Labelled Property Graphs — This is a 5 part warts-and-all introduction to graph technologies. It covers RDF, Property Graphs, Graph Schemas, Linked Data, and concludes with an article called Why Graph Will Win. It should give you a solid...


DEMO
Restart
please upload image:
selected files:
0
; total size:
0
Upload Preview
Check Job Status
Job Status
Result Preview


PagesDialect is a custom dialect for the Thymeleaf template engine. It provides some Collection processing utilities, like pagination, sorting or exporting.
Note: these utilities work with the full Collection object in memory. This could be not a good idea if you have a table with thousands of rows, but it is pretty nice for a bunch of simple applications, or if you are using a server cache or any kind of lazy-loading.
| Processor | Parameters | Description | Example |
|---|---|---|---|
| pages:paginate | Results per page (could be an expression) |
Transform th:each iteration to add pagination. It generates page navigation links (first, previous, next, last) and show the current page, total number of pages and total number of results. |
Example usage |
| pages:sort | Field to sort by. Could be a dot expression, as "category.name" | Add sort links to a table headers. | Example usage |
| pages:separate | Results among separators (could be an expression) | Insert a separator tag after n iterations. | |
| pages:pdf |
Fields to export, separated by commas. Could be dot expressions, as "category.name". Also supports header labels appending to a field a colon (":") and a i18n key. |
Export iteration list in PDF format. | Example usage |
| pages:excel |
Fields to export, separated by commas. Could be dot expressions, as "category.name". Also supports header labels appending to a field a colon (":") and a i18n key. |
Export iteration list in XLS format. | Example usage |
Version numbers: 2.0.x versions are compatible with Thymeleaf 2.0.x versions, while 2.1.x versions are compatible with Thymeleaf 2.1.x versions.


How to get indexed in a search engine ?
The leading search engines, such as Google, Bing and Yahoo!, use crawlers to find pages for their algorithmic search results. Pages that are linked from other search engine indexed pages do not need to be submitted because they are found automatically. The Yahoo! Directory and DMOZ, two major directories which closed in 2014 and 2017 respectively, both required manual submission and human editorial review.[41] Google offers Google Search Console, for which an XML Sitemap feed can be created and submitted for free to ensure that all pages are found, especially pages that are not discoverable by automatically following links[42] in addition to their URL submission console.[43] Yahoo! formerly operated a paid submission service that guaranteed crawling for a cost per click;[44] however, this practice was discontinued in 2009.
Search engine crawlers may look at a number of different factors when crawling a site. Not every page is indexed by the search engines. The distance of pages from the root directory of a site may also be a factor in whether or not pages get crawled.[45]
Today, most people are searching on Google using a mobile device.[46] In November 2016, Google announced a major change to the way crawling websites and started to make their index mobile-first, which means the mobile version of a given website becomes the starting point for what Google includes in their index.[47] In May 2019, Google updated the rendering engine of their crawler to be the latest version of Chromium (74 at the time of the announcement). Google indicated that they would regularly update the Chromium rendering engine to the latest version.[48] In December 2019, Google began updating the User-Agent string of their crawler to reflect the latest Chrome version used by their rendering service. The delay was to allow webmasters time to update their code that responded to particular bot User-Agent strings. Google ran evaluations and felt confident the impact would be minor.[49]
How preventing crawling works ?
To avoid undesirable content in the search indexes, webmasters can instruct spiders not to crawl certain files or directories through the standard robots.txt file in the root directory of the domain. Additionally, a page can be explicitly excluded from a search engine's database by using a meta tag specific to robots (usually <meta name='robots' content='noindex'> ). When a search engine visits a site, the robots.txt located in the root directory is the first file crawled. The robots.txt file is then parsed and will instruct the robot as to which pages are not to be crawled. As a search engine crawler may keep a cached copy of this file, it may on occasion crawl pages a webmaster does not wish crawled. Pages typically prevented from being crawled include login specific pages such as shopping carts and user-specific content such as search results from internal searches. In March 2007, Google warned webmasters that they should prevent indexing of internal search results because those pages are considered search spam.[50]
Examples
This example tells all robots that they can visit all files because the wildcard * stands for all robots and the Disallow directive has no value, meaning no pages are disallowed.
The same result can be accomplished with an empty or missing robots.txt file.
This example tells all robots to stay out of a website:
This example tells all robots not to enter three directories:
This example tells all robots to stay away from one specific file:
All other files in the specified directory will be processed.
This example tells a specific robot to stay out of a website:
This example tells two specific robots not to enter one specific directory:
Example demonstrating how comments can be used:
It is also possible to list multiple robots with their own rules. The actual robot string is defined by the crawler. A few robot operators, such as Google, support several user-agent strings that allow the operator to deny access to a subset of their services by using specific user-agent strings
Example demonstrating multiple user-agents:
Increasing prominence
A variety of methods can increase the prominence of a webpage within the search results. Cross linking between pages of the same website to provide more links to important pages may improve its visibility.[51] Writing content that includes frequently searched keyword phrase, so as to be relevant to a wide variety of search queries will tend to increase traffic.[51] Updating content so as to keep search engines crawling back frequently can give additional weight to a site. Adding relevant keywords to a web page's metadata, including the title tag and meta description, will tend to improve the relevancy of a site's search listings, thus increasing traffic. URL canonicalization of web pages accessible via multiple URLs, using the canonical link element[52] or via 301 redirects can help make sure links to different versions of the URL all count towards the page's link popularity score.
White hat versus black hat techniques
SEO techniques can be classified into two broad categories: techniques that search engine companies recommend as part of good design ("white hat"), and those techniques of which search engines do not approve ("black hat"). The search engines attempt to minimize the effect of the latter, among them spamdexing. Industry commentators have classified these methods, and the practitioners who employ them, as either white hat SEO, or black hat SEO.[53] White hats tend to produce results that last a long time, whereas black hats anticipate that their sites may eventually be banned either temporarily or permanently once the search engines discover what they are doing.
An SEO technique is considered white hat if it conforms to the search engines' guidelines and involves no deception. As the search engine guidelines[18][19][55] are not written as a series of rules or commandments, this is an important distinction to note. White hat SEO is not just about following guidelines but is about ensuring that the content a search engine indexes and subsequently ranks is the same content a user will see. White hat advice is generally summed up as creating content for users, not for search engines, and then making that content easily accessible to the online "spider" algorithms, rather than attempting to trick the algorithm from its intended purpose. White hat SEO is in many ways similar to web development that promotes accessibility,[56] although the two are not identical.
Black hat SEO attempts to improve rankings in ways that are disapproved of by the search engines, or involve deception. One black hat technique uses hidden text, either as text colored similar to the background, in an invisible div, or positioned off screen. Another method gives a different page depending on whether the page is being requested by a human visitor or a search engine, a technique known as cloaking. Another category sometimes used is grey hat SEO. This is in between black hat and white hat approaches, where the methods employed avoid the site being penalized but do not act in producing the best content for users. Grey hat SEO is entirely focused on improving search engine rankings.
Search engines may penalize sites they discover using black or grey hat methods, either by reducing their rankings or eliminating their listings from their databases altogether. Such penalties can be applied either automatically by the search engines' algorithms, or by a manual site review. One example was the February 2006 Google removal of both BMW Germany and Ricoh Germany for use of deceptive practices.[57] Both companies, however, quickly apologized, fixed the offending pages, and were restored to Google's search engine results page.


module Exenum:sig
..end
The exenum library offers constructors to build enumerations for datatypes, that is, functions from (arbitrarily large) integers to values. Such enumerations are very useful for unit testing.
The library is efficient: the n-th element of an enumeration is returned without having computed the (n-1) previous elements. Complexity is in log(n), except for some pathological datatypes.
Homepage: https://github.com/lebotlan/ocaml-exenum
Inspired by Feat: Functional Enumeration of Algebraic Types, by Duregard, Jansson, Wang, Chalmers University.
Contact: D. Le Botlan<EMAIL_ADDRESS>where you replace .met by .net.)
As an example, consider the following familiar datatype:
type term = Var of string | App of term * term | Lambda of string * term
Using exenum, one may easily generate zillions of different lambda-terms.
For this example, we limit ourselves to four variable names : x, y, u, and v.
Then, one may compute for instance term number<PHONE_NUMBER>000, which happens to be
((((x v) (fun u -> y)) ((fun u -> y) (fun y -> y))) (((x v) (fun u -> v)) (fun u -> y)))
Building an enumeration from a datatype is straightforward. For instance, the enumeration corresponding to type term
is
built as follows:
(* We restrict ourselves to four variable names. *)
let e_vars = from_list ~name:"variables" ["x" ; "y" ; "u" ; "v"]
(* Type term is recursive, hence we need a lazy enumeration first. *)
let rec e_term = lazy
begin
(* In order to use the enumeration recursively, we need to "pay" a recursive fee. *)
let r_term = pay e_term in
(* Now, this is the direct translation of the datatype definition. *)
union
[ map e_vars (fun x -> Var x) ;
map (pair r_term r_term) (fun (t1, t2) -> App (t1, t2)) ;
map (pair e_vars r_term) (fun (x, t) -> Lambda (x, t)) ]
end
(* Here is the enumeration for lambda-terms. *)
let e_term = Lazy.force e_term
See examples in https://github.com/lebotlan/ocaml-exenum/tree/master/examples
type 'a
enum
type'a
t ='a enum
val from_list : ?name:string -> 'a list -> 'a t
val single : ?name:string -> 'a -> 'a t
Exenum.from_list
).val cardinal : 'a t -> Big_int.big_int option
cardinal enum
Returns the cardinality of enum
. None means infinity.val get : 'a t -> Big_int.big_int -> 'a
get enum n
Returns the nth value of type 'a, starting at 0.Failure
if n
is greater or equal than the cardinality of enum
.val e_unit : unit t
val e_bool : bool t
val e_char : char t
val e_pchar : char t
val e_biginterval : Big_int.big_int -> Big_int.big_int -> Big_int.big_int t
val e_interval : int -> int -> int t
val sub : max:Big_int.big_int -> 'a t -> 'a t
sub ~max enum
Returns a finite enumeration with at most max
elements.val e_bigpos : Big_int.big_int t
val e_bignat : Big_int.big_int t
val e_bigint : Big_int.big_int t
val e_nat : int t
val e_pos : int t
val e_int : int t
val e_string : string t
val e_rstring : char list -> string t
val union : 'a t list -> 'a t
union enums
builds an enumeration from a union of enumerations.
If enums
are disjoint enumerations, the resulting enumeration is disjointval product : 'a t list -> 'a list t
val pair : 'a t -> 'b t -> ('a * 'b) t
val triple : 'a t -> 'b t -> 'c t -> ('a * 'b * 'c) t
val tuple2 : 'a t -> 'b t -> ('a * 'b) t
pair
val tuple3 : 'a t -> 'b t -> 'c t -> ('a * 'b * 'c) t
triple
val tuple4 : 'a t ->
'b t -> 'c t -> 'd t -> ('a * 'b * 'c * 'd) t
val tuple5 : 'a t ->
'b t ->
'c t ->
'd t -> 'e t -> ('a * 'b * 'c * 'd * 'e) t
val tuple6 : 'a t ->
'b t ->
'c t ->
'd t ->
'e t -> 'f t -> ('a * 'b * 'c * 'd * 'e * 'f) t
val e_list : 'a t -> 'a list t
val e_ne_list : 'a t -> 'a list t
val e_array : 'a t -> 'a array t
val e_option : 'a t -> 'a option t
val pay : 'a t Lazy.t -> 'a t
pay
.val map : 'a t -> ('a -> 'b) -> 'b t
val show : 'a t -> ('a -> string) -> int -> int -> unit
show enum to_string index len
outputs values of the given enumeration, using the to_string
conversion function,
from index index to index (index + len - 1).val bigshow : 'a t -> ('a -> string) -> Big_int.big_int -> int -> unit
bigshow enum to_string index len
is similar to show
, except that index is a big_int.val tester : 'a t ->
?from:Big_int.big_int ->
?upto:Big_int.big_int ->
?verbose_period:int -> ?tos:('a -> string) -> len:int -> ('a -> unit) -> unit
tester enum ~len f
applies f in sequence to different values of the enumeration.
First, len
values are taken starting at 0 (or starting from from
, if specified).
Then, the current index is multiplied by 2 (that is, we start at 2*len) and again len
values are considered.
This is repeated forever (or while the current index is lower than the upper bound upto
).
If verbose_period
is strictly positive, a message giving the current index is printed on stdout every verbose_period
tests.
If tos is given, the test value is printed too.
Typical usage is: tester enum ~len:10000 f
, where f is a testing function.
Raises Assert_failure
if len <= 0