apaimanee module¶
-
class
apaimanee.
HeroController
¶ Bases:
object
The HeroController class is controlling the actor in serveral events.
-
ac
= None¶ Hero_obj is Object in class the game.
-
attack
(Enemy)¶ The attack method is controlling the actor to attack Enemy.
-
is_allies
(unit)¶ the is_allies method use to check allies of this actor.
-
is_enemy
(unit)¶ The is_enemy method use to check Enemy of this actor.
-
move
(pos_x, pos_y)¶ The movement method move the actor.
-
use_skill
(target, hero_skill=0)¶ The use_skill method is controlling the actor use skill which actor have to target.
-
-
class
apaimanee.
HeroStatus
(hero)¶ Bases:
object
The HeroStatus class is monitor for look status or return status of hero object in the game.
-
get_enemy_hp
(enemy)¶ - The get_enemy_hp method return hp in enemy in enemy_list attibute
of Hero class. if enemy is’nt in enemy_list will return 0.
-
get_hp
()¶ This method return hp attibute in Hero class.
-
get_item_in_hero
(hero)¶ - The get_item_in_hero method return the list of item in the actor who want
to know.
-
get_mp
()¶ This method return mp attibute in Hero class.
-
-
class
apaimanee.
UsingItem
(item)¶ Bases:
object
The UsingItem class
-
buy_item
(item)¶ This method control hero to buy item.
-
can_buy_item
(item)¶ This method return boolean from item which can buy.
-
can_sell_item
(item)¶ This method return boolean from item which can sell.
-
can_use
()¶ The can_use method return true if the item can use in the time.
-
get_damage
()¶ The get_damage method return damage of the item can make.
-
get_delay
()¶ The get_delay method return the delay of available the item.
-
get_own_item
()¶ This method return List of owner this item.
-
get_prize_when_buy
()¶ The get_prize_when_buy method return prize of item in the shop.
-
get_prize_when_sell
()¶ The get_prize_when_sell method return prize of item when sell item.
-
get_stack_in_hero
(hero)¶ The get_stack method return the number of item in the hero.
-
get_use_mana
()¶ The get_use_mana method return mana of item using.
-
sell_item
(item)¶ This method control hero to sell item.
-


Long life expectancy and low fertility rate have made aging an inevitable trend worldwide. In China, aging will bring many upcoming challenges, especially when the early cohorts of only children's parents will retire. We aim to find policies helping the aged to live out their lives in retirement and reduce the pressure for the middle-aged descendants.
Education in China has improved greatly in past decades but it still faces many problems. Our research focuses on understanding the role of parents, peers and teachers play in children development and designing better policies improving the students' ability, especially socioemotional skills and prosocial attitude. Besides, we seek for collaboration to improve the opportunities of children in the rural area.
What do we know about the role of kinship network and community networks for economic development and social welfare? It is important in development economies, especially for a country like China where social norms in networks governing almost every aspect of social life. Yet despite rapid recent progress there remain significant deficiencies in our understanding of the effects of networks in China. Our lab is committed to making a pioneering contribution to this topic.


"Dear! Web site you make looks more than GENIOUS!!! I AM STATISFIED!!! When I looked how it looks all together, I couldn’t resist to not be glad really, CONGRATULATIONS!!! Cordial greeting."
James E. Cameron"RubySoftwares LLC – in three words: PROFESSIONAL, PATIENT AND INDIVIDUAL APROACH to me as client! What else man could wish? They did job exact as I wanted, trust me process wasn’t easy at all."
Judy D. Perkins"Great cooperation, quick and effective response on task, great ideas, great communication… BEST BUY!!"
Sarah J. Shoop"It’s statifaction to work with this team. Very creative and innovative. With their suggestions and active contact with client they creates atmosphere for for preliminary design."
William L. MiersWe create beautiful web sites, specially designed for mobile usage, so you are avaible for all of your clients, wherever they are. Mobile versions of our sites looks perfect on any device, browser or Operating System.
Production of unique and very original web pages with brand new technologies.
High quality photos of your products in studio conditions with additional processing.
Logo design, corporate identity design, visit cards design, posters design, flyers design, T-shirts design, menu design...
"Dear! Web site you make looks more than GENIOUS!!! I AM STATISFIED!!! When I looked how it looks all together, I couldn’t resist to not be glad really, CONGRATULATIONS!!! Cordial greeting."
James E. Cameron"RubySoftwares LLC – in three words: PROFESSIONAL, PATIENT AND INDIVIDUAL APROACH to me as client! What else man could wish? They did job exact as I wanted, trust me process wasn’t easy at all."
Judy D. Perkins"Great cooperation, quick and effective response on task, great ideas, great communication… BEST BUY!!"
Sarah J. Shoop"It’s statifaction to work with this team. Very creative and innovative. With their suggestions and active contact with client they creates atmosphere for for preliminary design."
William L. MiersWe create beautiful web sites, specially designed for mobile usage, so you are avaible for all of your clients, wherever they are. Mobile versions of our sites looks perfect on any device, browser or Operating System.
Production of unique and very original web pages with brand new technologies.
High quality photos of your products in studio conditions with additional processing.
Logo design, corporate identity design, visit cards design, posters design, flyers design, T-shirts design, menu design...
We will provide support so you can choose right combination of technologies for your project.
RubySoftwares LLC packages can be wholly adjusted to needs of your site. Domain registration.
Is process which goal is better ranking your site in browsers...


Press release
Chief Inspector responds to latest school inspection statistics
The Chief Inspector of Ofsted said it was "encouraging" that more schools improved last term under its tough new inspection arrangements.
Sir Michael Wilshaw was speaking on the day that Ofsted published the latest official statistics on inspections and outcomes for schools, covering the quarter ending 31 December 2012.
The new figures show that almost half the schools inspected during the last quarter improved their overall effectiveness judgement (977 - or 47% of the 2,102 schools inspected) from their previous inspection.
Statistics also published today show the proportion of schools judged good or better at their latest inspection was 74% at the end of December - an increase of four percentage points from the previous year.
Sir Michael said that while some of the improvement was likely to be due to the sample of schools inspected during the quarter in question, he believed Ofsted’s new inspection framework for maintained schools was having a galvanising effect on the schools system.
Since September 2012, a new grade of requires improvement has replaced the previous satisfactory grade and schools are given a prescribed period of time in which to improve – up to 4 years. During this period, inspectors inspect and monitor the school’s performance on a more frequent basis.
Sir Michael said:
I believe all children, regardless of where they live, have the right to a good education. In deciding to raise the bar and by stating that good is the only acceptable provision, I was convinced that schools would rise to the challenge. And that is what I believe is happening.
I’m clear that scrapping the satisfactory judgement and replacing it with requires improvement is injecting a sense of urgency in both schools and local authorities. Heads and governing boards now have a much greater focus on tackling the central issues of school improvement.
This is encouraging and I congratulate all those headteachers who are successfully leading the drive to get their school to good.
Sir Michael said that Ofsted is increasingly helping schools to improve through its new regional structure. Her Majesty’s Inspectors, led by Ofsted’s new Regional Directors, are now working with underperforming institutions until they get to good.
He said:
We will not walk away but will, instead, use our knowledge of good practice, locally and nationally, to support and challenge headteachers and governors who are determined to raise standards – but with a clear expectation that action will be taken well within the prescribed period of four years.
Notes to editors
-
The
official statistics release: provisional inspections and outcomes of maintained schools inspections between 1 October 2012 and 31 December 2012 and final inspections and outcomes of inspections between 1 July 2012 and 30 September
is available online.


QuizBuzz is one of the largest Online Test Preparation platform. We provide all the latest mock test papers and practise sets based on their respective exam patterns.
Students can take multiple exams and there is no limit on the number of attempts for now. Students can add multiple exams to their account and can take different exams.
QuizBuzz provides user friendly, easy to use interface for students to enroll and take exams conveniently. The different analytics provided empowers students with the much required insight about weak areas to improve.
QuizBuzz provides integrated Payment Gateway support that makes hassle free subscription of paid mock test papers.
Take free Online Mock Test and get real feel of Online Mock Test Environment from the comfort of your home.
Analytics reports for each test attempt provides the students with the insight about the section performances and help you in improving your weak areas.
Students can refer to the detailded solutions available for every exam. This will help the students in exploratory learning.
support@quizbuzz.in


http(s).Agent instance to use
Options for allure report.
Will be appended to bug keys displayed in allure report. This can be useful as allure report provides no way to distinct issues and bugs by default.
Will be prepended to bug keys displayed in allure report. This can be useful as allure report provides no way to distinct issues and bugs by default.
Will be appended to issue keys displayed in allure report. This can be useful as allure report provides no way to distinct issues and bugs by default.
Will be prepended to issue keys displayed in allure report. This can be useful as allure report provides no way to distinct issues and bugs by default.
Pattern used to create urls for issues and bugs.
'%s' in pattern will be replaced with issue/bug keys defined in Story options.
Pattern used to create urls for testcase management system.
'%s' in pattern will be replaced with testId keys defined in Story options.
Run only automatic testcases and do not consider manual results.
Skip future testcases after a specific amount of already executed testcases have failed. By default, does not bail.
Set a base URL in order to shorten url command calls. If your url
parameter starts
with /
, the base url gets prepended, not including the path portion of your baseUrl.
If your url
parameter starts without a scheme or /
(like some/path
), the base url
gets prepended directly.
Defines the capabilities you want to run in your Selenium session. See https://github.com/SeleniumHQ/selenium/wiki/DesiredCapabilities for a list of the available capabilities.
Please be aware that wdio-workflo's reporting only supports one single instance at a time. Therefore, the "maxInstance" property will always be set to 1.
Remove error stack trace lines that originate from the test framework itself.
Count of request retries to the Selenium server.
Timeout for any request to the Selenium server in milliseconds.
Log level output in spec reporter console.
Restricts testcases and specs (oldest spec criteria) by given date and time (YYYY-MM-DD or YYYY-MM-DDTHH:mm:ss).
If set to true, Node debugging via the chrome extension "Node-Inspector Manager" is enabled. The test process will then automatically connect to chrome's dedicated dev tools and break on "debugger" statements.
In order for this to work properly, a chrome browser must be installed on the system and the chrome extension "Node-Inspector Manager" needs to be installed.
Sometimes tests might hang after running with debug enabled. In this case, close all chrome processes, open a new chrome window, turn "Node-Inspector Menu" from "Auto" to "Manual" and again to "Auto" and then restarting the tests should resolve the problem.
The following settings are recommended for the "Node-Inspector Manager" extension:
(Main Menu)
(Settings Menu)
Outputs selenium commands in the allure report if set to true.
ACTIVATE THIS AT YOUR OWN RISK: Sometimes there is so much output that the maximum call stack size is exceeded.
Execution arguments for the node process. If using the debug option, execArgv will always be overwritten with the value ['--inspect']
Restricts test execution to these features.
A key-value store of headers to be added to every selenium request. Values must be strings.
Height of the browser window in pixels.
Host of your WebDriver server.
Intervals (for waitXXX and eventuallyXXX actions) in milliseconds.
"default" property will be used for every waitXXX and eventuallyXXX action if not explicitly stated otherwise.
WebdriverIO supports Sauce Labs, Browserstack and Testing Bot (other cloud providers should work too though). These services define specific user and key (or access key) values you need to put in here in order to connect to these services.
Do not run automatic testcases and consider only manual results.
Path to WebDriver server.
Port your WebDriver server is on.
Protocol to use when communicating with the Selenium standalone server (or driver)
An HTTP proxy to be used. Supports proxy Auth with Basic Auth, identical to support for the url parameter (by embedding the auth info in the uri)
A key-value store of query parameters to be added to every selenium request.
If set to true, will output errors and validation failures immediately. Will be enabled by default if consoleLogLevel is set to 'steps'.
Defines how many times a testcase should be rerun if it did not pass.
The current testcase will be aborted on the first error or failed expectation
and rerun
Arguments for install command of selenium-standalone service.
Arguments for start command of selenium-standalone service.
Webdriverio Services to run for test execution.
See http://webdriver.io/guide for more information.
Restricts specs by severity set during their last execution.
Restricts specs by status of their criteria set during their last execution.
Restricts test execution to these specs.
Root directory for all system test artifacts of wdio-workflo.
If you set this value to something other than ${__dirname} + '/system_test
, you need to make sure that
the include
array in workflo's tsconfig file tsconfig.workflo.json
contains your testDir folder.
Restricts testcases by severity set during their last execution.
Restricts executed testcases by their result status set during their last execution.
Restricts test execution to these testcases.
Timeouts (for waitXXX and eventuallyXXX actions) in milliseconds.
"default" property will be used for every waitXXX and eventuallyXXX action if not explicitly stated otherwise.
Path to the uidStore.json file which is used to generate unique ids during test execution.
The generated ids will be preserved for future test runs until the uidStore.json file is deleted.
WebdriverIO supports Sauce Labs, Browserstack and Testing Bot (other cloud providers should work too though). These services define specific user and key (or access key) values you need to put in here in order to connect to these services.
Width of the browser window in pixels.
Gets executed after all tests are done. You still have access to all global variables from the test.
0 - test pass, 1 - test fail
list of capabilities details
List of testcases file paths that ran
Runs after a WebdriverIO command gets executed
hook command name
arguments that command would receive
0 - command success, 1 - command error
error object if any
Hook that gets executed after a hook within the suite ends (e.g. runs after calling afterEach in Jasmine)
Gets executed right after terminating the webdriver session.
This callback is only invoked during the "testcases" phase.
wdio-workflo configuration object
list of capabilities details
List of testcases file paths that ran
Hook that gets executed after the suite has ended
suite details
Function to be executed after a testcase ends.
test details
Gets executed after all tests are done. You still have access to all global variables from the test.
0 - test pass, 1 - test fail
list of capabilities details
List of spec file paths that ran
Gets executed before testcases execution begins. At this point you can access to all global
variables like browser
. It is the perfect place to define custom commands.
This callback is only invoked during the "testcases" phase.
list of capabilities details
List of testcases file paths that are to be run
Runs before a WebdriverIO command gets executed.
hook command name
arguments that command would receive
Hook that gets executed before a hook within the suite starts (e.g. runs before calling beforeEach in Jasmine)
Gets executed just before initialising the webdriver session and test framework. It allows you to manipulate configurations depending on the capability or testcase.
This callback is only invoked during the "testcases" phase.
wdio-workflo configuration object
list of capabilities details
List of testcases file paths that are to be run
Hook that gets executed before the suite starts
suite details
Function to be executed before a testcase starts.
test details
Gets executed before test execution begins. At this point you can access to all global
variables like browser
. It is the perfect place to define custom commands.
This callback is only invoked during the "testcases" phase.
list of capabilities details
List of spec file paths that are to be run
Gets executed after all workers got shut down and the process is about to exit.
0 - success, 1 - fail
wdio-workflo configuration object
list of capabilities details
Gets executed when an error happens, good place to take a screenshot @ {Error} error
Gets executed once before all workers get launched.
wdio-workflo configuration object
list of capabilities details
Generated using TypeDoc
Type definitions of the config used by wdio-workflo in the file workflo.conf.ts.


There are, however, many Texans who still dress like cowboys. They wear cowboy boots and a kind of tall cowboy hat they
call a ten- gallon- hat because it looks as if it could hold that much water. Another symbol of Texas is the oil well.
Texas produces more oil than any other state. Oil was first discovered near the city of Houston in the early 1900s.


{% extends 'templates/nhs_transaction_layout.html' %}
{% import 'includes/form_macros.html' as form_macros %}
{% block afterHeader %}
{% include "includes/service-headers/health-costs-checker.html" %}
{% endblock %}
{% block content %}
Back
Which country do you live in?
{% endblock %}


All our models are available in a variety of colors and materials, however due to the availability of supplies, some colors may present variations respect to the catalog images.


This constructor is an implementation detail. Do not use this.
Returns the amount of runs that have been attempted with these splits.
Accesses the an attempt history element by its index. This does not store the actual segment times, just the overall attempt information. Information about the individual segments is stored within each segment. You may not provide an out of bounds index.
Returns the amount attempt history elements are stored in this Run.
Accesses the Auto Splitter Settings that are encoded as XML.
Accesses the name of the category this Run is for.
Clones the Run object.
Accesses a custom comparison stored in this Run by its index. This includes
Personal Best
but excludes all the other Comparison Generators. You may
not provide an out of bounds index.
Returns the amount of custom comparisons stored in this Run.
Disposes the object, allowing it to clean up all of its memory. You need to call this for every object that you don't use anymore and hasn't already been disposed.
Returns an extended category name that possibly includes the region, platform and variables, depending on the arguments provided. An extended category name may look like this:
Any% (No Tuner, JPN, Wii Emulator)
Returns a file name (without the extension) suitable for this Run that is built the following way:
Game Name - Category Name
If either is empty, the dash is omitted. Special characters that cause problems in file names are also omitted. If an extended category name is used, the variables of the category are appended in a parenthesis.
Returns a name suitable for this Run that is built the following way:
Game Name - Category Name
If either is empty, the dash is omitted. If an extended category name is used, the variables of the category are appended in a parenthesis.
Accesses the Data URL storing the game icon's data. If there is no game icon, this returns an empty string instead of a URL.
Accesses the name of the game this Run is for.
Returns whether the Run has been modified and should be saved so that the changes don't get lost.
Returns the amount of segments stored in this Run.
Marks the Run as modified, so that it is known that there are changes that should be saved.
Accesses additional metadata of this Run, like the platform and region of the game.
Accesses the time an attempt of this Run should start at.
Pushes the segment provided to the end of the list of segments of this Run.
Saves a Run as a LiveSplit splits file (*.lss). If the run is actively in use by a timer, use the appropriate method on the timer instead, in order to properly save the current attempt as well.
Accesses a certain segment of this Run. You may not provide an out of bounds index.
Sets the name of the category this Run is for.
Sets the name of the game this Run is for.
Allows for scoped usage of the object. The object is guaranteed to get disposed once this function returns. You are free to dispose the object early yourself anywhere within the scope. The scope's return value gets carried to the outside of this function.
Creates a new Run object with no segments.
Attempts to parse a splits file from an array by invoking the corresponding parser for the file format detected. A path to the splits file can be provided, which helps saving the splits file again later. Additionally you need to specify if additional files, like external images are allowed to be loaded. If you are using livesplit-core in a server-like environment, set this to false. Only client-side applications should set this to true.
Attempts to parse a splits file from a file by invoking the corresponding parser for the file format detected. A path to the splits file can be provided, which helps saving the splits file again later. Additionally you need to specify if additional files, like external images are allowed to be loaded. If you are using livesplit-core in a server-like environment, set this to false. Only client-side applications should set this to true. On Unix you pass a file descriptor to this function. On Windows you pass a file handle to this function. The file descriptor / handle does not get closed.
Generated using TypeDoc
A Run stores the split times for a specific game and category of a runner.


Bootbox.js is a small JavaScript library which allows you to create programmatic dialog boxes using Bootstrap modals, without having to worry about creating, managing or removing any of the required DOM elements or JS event handlers. Here’s the simplest possible example:
bootbox.alert("Hello world!");
Compare that to the code you’d have to write without Bootbox:
The library exposes three functions designed to mimic their native JavaScript equivalents. Their exact function signatures are flexible as each can take various parameters to customise labels and specify defaults, but they are most commonly called like so:
bootbox.alert(message, callback)
bootbox.prompt(message, callback)
bootbox.confirm(message, callback)
Each of these three functions calls a fourth public function which you too can use to create your own custom dialogs:
bootbox.dialog(options)
Documentation is available for each of these functions, including the options available for each dialog. You can also find examples for using each of these functions in the (appropriately named) Examples page.
Visit the Getting Started page for guidance on how to add Bootbox to your project.
There are some caveats to using Bootbox dialogs in place of native dialogs. Please see the Known Limitations section in the Documentation page to learn more.
Bootbox was originally created in 2011 with the sole purpose of wrapping JavaScript’s low level dialog functions with Bootstrap’s high level modal functionality. As such it is a small library focussed on providing basic programmatic dialogs with minimal fuss and overhead.
Bootbox is authored and maintained by Nick Payne (@makeusabrew). Thanks are also due to the contributors!
Bootbox is a free, open source project. As such you can help out in a number of ways from simply raising an issue to forking the project and submitting a pull request.
I’m particularly keen to improve the examples and make a proper start on the API docs, so pull requests contributing towards the gh-pages branch (which you’re looking at!) are extremely welcome.
Lastly — please just help spread the word!


Polymath Security Token Q & A and Live Demo
Want to learn more about security tokens and how you can create your own? Here's your chance. Join a Polymath webinar to see how the Polymath Token Studio simplifies the process of creating securities, conducting a security token offering, and maintaining regulatory compliance.
This webinar is offered several times. Select the date and time that works best for you.
What are you interested in doing with Polymath?


{% include 'message.html' %}
{% block content %}{% endblock %}
Temporary accounts are deprecated and will be removed soon. To keep your bestiaries, please convert to a normal account, otherwise they will be lost.
{% endif %}
{% endif %}


Maharashtra govt formation undemocratic, mandate of people disrespected: AAP
The month-long political impasse in Maharashtra ended dramatically on Saturday with the Bharatiya Janata Party's (BJP) Fadnavis returning as the chief minister, backed by the Nationalist Congress Party (NCP).
by PTIThe Aam Aadmi Party on November 23 said the formation of government in Maharashtra was "undemocratic" and it "disrespected" the mandate of people of the state. Senior AAP leader Sanjay Singh questioned how the government formation was done in Maharashtra without even getting the majority.
The month-long political impasse in Maharashtra ended dramatically on Saturday with the Bharatiya Janata Party's (BJP) Fadnavis returning as the chief minister, backed by the Nationalist Congress Party (NCP).
Governor Bhagat Singh Koshyari administered the oath to Fadnavis and Pawar at the Raj Bhavan in Mumbai around 7.30 am.
This came a day after the newly formed NCP-Congress- Shivsena coalition arriving at a consensus on Uddhav Thacekeray leading the new government in Maharashtra, which was under President's rule till early on Saturday.
The President's rule was earlier imposed as no party could form government.


Maid of Lidia:
A black magus is looking for you in the Forest of the Dead. I told him everything that's happened to me. Please meet with him.


CalTime
caltime
is a Node.js module which provides objects, methods and functions
which help to generate, sort, add and subtract timespans. Operations which are
supported by the module include:
- query if timespans overlap with each other
- calculate the overlap (intersection) of timespans
- calculate the addition (union) of timespans
- calculate the remainder left after subtracting timespans
- calculate the difference between timespans
- merge the timespans in an array which overlap
- sort an array of timespans
One useful feature provided by caltime
is the ability to define time-based rules.
This allows timespans to be generated according to a specific period and within
certain constraints. Examples of the timespans which can be generated are:
- 2-3pm on Monday of every week in UTC timezone.
- 14:00-16:00 on the 24th of every month in New York timezone.
- 9-10am on the third Tuesday of every month in Delhi timezone.
Suggested uses of caltime
include:
- Track the effort assigned to multiple resources across multiple timezones.
- Calculate the cost of resource usage using a calendar of costs which changes over time.
- Schedule work across multiple timezones and reserve the required resources.
caltime
does not attempt to provide functionality which is already provided by
other modules such as Moment. For this reason, caltime
avoids converting dates or times to or from their string representation.
API Usage
The caltime
module provides a top-level object with several member functions
and objects. All of these functions and objects can be accessed by installing
the caltime
module.
$ cd <myproject>
$ npm install --save caltime
Currently, the caltime
module provides three object constructors, four functions
and the constants object.
var caltime = require('caltime');
// functional constructor to create TimeSpan objects
var timespan = caltime.timeSpan;
// function to merge TimeSpans in an array
var mergeTimeSpans = caltime.mergeTimeSpans;
// function to sort TimeSpans in an array
var sortTimeSpans = caltime.sortTimeSpans;
// functional constructor to create DateSpan objects
var datespan = caltime.dateSpan;
// function to merge DateSpans in an array
var mergeDateSpans = caltime.mergeDateSpans;
// function to sort DateSpans in an array
var sortDateSpans = caltime.sortDateSpans;
// functional constructor to create TimeRule objects
var timerule = caltime.timeRule;
// Constants object provides all of the constants defined by the module
var caltimeConstants = caltime.constants;
TimeSpan
A TimeSpan
is an immutable object which defines an interval of time during
a single day. The interval starts at a defined time of the day and has a defined
duration. The TimeSpan
is not associated with any specific date or timezone.
TimeSpan
is deliberately not date specific. It does not take into
account factors such as the timezone, leap seconds or Daylight Savings Time.
The end time of a TimeSpan
does not form part of the timespan i.e. In
mathematical terms, the TimeSpan
object represents a half-open
interval of
time where the end time is exclusive
and the begin time is inclusive
.
var caltime = require('caltime');
// call the functional constructor. do not use the new operator.
var timespanCtor = caltime.timeSpan;
// create a TimeSpan object which represents 09:00am - 10:00am.
var spanA = timespanCtor(9, 0, 0, 0, 60, 0, 0);
timeSpan()
The timeSpan
function is a functional constructor therefore it should not be
called with the new
operator. The function accepts several arguments:
- inHours: Hour component of the start time of the
TimeSpan
(24 hour clock). Valid range is 0-23. - inMinute: Minutes component of the start time. Valid range is 0-59.
- inSeconds: Seconds component of the start time. Valid range is 0-59.
- inMilliseconds: Milliseconds component of the start time. Valid range is 0-999.
- inDurationMins: Minutes component of the duration of the
TimeSpan
in minutes. Durations can exceed one hour and in this case this argument can exceed the value 59. - inDurationSecs: Seconds component of the duration. Valid range is 0-59.
- inDurationMs: Milliseconds component of the duration. Valid range is 0-999.
getHours(), getMinutes, getSeconds() and getMilliseconds()
These methods return the various components of the start time of the TimeSpan
.
var caltime = require('caltime');
var timespanCtor = caltime.timeSpan;
// create a TimeSpan object which represents 09:01:30:444am - 09:31:30:444am.
var spanA = timespanCtor(9, 1, 34, 444, 30, 0, 0);
spanA.getHours(); // 9 hours
spanA.getMinutes(); // 1 minute
spanA.getSeconds(); // 34 seconds
spanA.getMilliseconds(); // 444 milliseconds
getDurationMins(), getDurationSecs() and getDurationMs()
These methods return the various components of the duration of the TimeSpan
.
A TimeSpan
which is longer than 1 hour will have a duration of greater
than 60 minutes.
var caltime = require('caltime');
var timespanCtor = caltime.timeSpan;
// create a TimeSpan object which represents 09:00:0:000am - 09:04:05:006am.
var spanA = timespanCtor(9, 0, 0, 0, 4, 5, 6);
spanA.getDurationMins(); // 4 minutes
spanA.getDurationSecs(); // 5 seconds
spanA.getDurationMs(); // 6 milliseconds
getTotalDuration()
This method returns the total duration of the TimeSpan
in milliseconds.
var caltime = require('caltime');
var timespanCtor = caltime.timeSpan;
// create a TimeSpan object which represents 09:00:0:000am - 09:01:01:001am.
var spanA = timespanCtor(9, 0, 0, 0, 1, 1, 1);
spanA.getTotalDuration(); // 60000+1000+1 = 61001
isEqual()
Method returns true if two TimeSpan
objects have exactly the same start times
and total durations.
var caltime = require('caltime');
var timespanCtor = caltime.timeSpan;
// create a TimeSpan object which represents 09:00:0:000am - 09:01:01:001am.
var spanA = timespanCtor(9, 0, 0, 0, 1, 1, 1);
var spanB = timespanCtor(9, 0, 0, 0, 1, 1, 1);
// create a TimeSpan object which represents 09:00:0:000am - 09:02:00:000am.
var spanC = timespanCtor(9, 2, 0, 0, 0, 0, 0);
spanA.isEqual(spanB); // true
spanA.isEqual(spanC); // false
isIntersect()
Method returns true if two TimeSpan
objects intersect each other i.e. they
overlap. Since the end time of a TimeSpan
is exclusive, overlapping the
beginning of one TimeSpan
with the end time of another does not count as
an intersection.
var caltime = require('caltime');
var timespanCtor = caltime.timeSpan;
// create a TimeSpan object which represents 09:30am - 10:00am.
var spanA = timespanCtor(9, 30, 0, 0, 30, 0, 0);
// create a TimeSpan object which represents 09:45am - 10:00am.
var spanB = timespanCtor(9, 45, 0, 0, 15, 0, 0);
// create a TimeSpan object which represents 10:00am - 10:15am.
var spanC = timespanCtor(10, 0, 0, 0, 15, 0, 0);
spanA.isIntersect(spanB); // true
spanA.isIntersect(spanC); // false
intersect()
Method calculates the intersection (overlap), if any, between two TimeSpan
objects
and returns a new TimeSpan
object or null if there is no intersection.
var caltime = require('caltime');
var timespanCtor = caltime.timeSpan;
// create a TimeSpan object which represents 09:30am - 10:00am.
var spanA = timespanCtor(9, 30, 0, 0, 30, 0, 0);
// create a TimeSpan object which represents 09:45am - 10:00am.
var spanB = timespanCtor(9, 45, 0, 0, 15, 0, 0);
// create a TimeSpan object which represents 10:00am - 10:15am.
var spanC = timespanCtor(10, 0, 0, 0, 15, 0, 0);
// these two timespans do overlap
let newSpan = spanA.intersect(spanB);
newSpan.getHours(); // 9
newSpan.getMinutes(); // 45
newSpan.getDurationMins(); // 15 minutes
// these timespans do not overlap
newSpan = spanA.intersect(spanC); // null
union()
Method calculates the union between two intersecting TimeSpan
objects. It
returns a new TimeSpan
or null if there is no intersection.
var caltime = require('caltime');
var timespanCtor = caltime.timeSpan;
// create a TimeSpan object which represents 09:30am - 10:00am.
var spanA = timespanCtor(9, 30, 0, 0, 30, 0, 0);
// create a TimeSpan object which represents 09:45am - 10:05am.
var spanB = timespanCtor(9, 45, 0, 0, 20, 0, 0);
// create a TimeSpan object which represents 10:00am - 10:15am.
var spanC = timespanCtor(10, 0, 0, 0, 15, 0, 0);
// these two timespans do overlap
let newSpan = spanA.intersect(spanB);
newSpan.getHours(); // 9
newSpan.getMinutes(); // 30
newSpan.getDurationMins(); // 35 minutes
// these timespans do not intersect
newSpan = spanA.intersect(spanC); // null
subtract()
Method calculates the remainder(s) after subtracting one TimeSpan
from
another. It returns an array containing one or two new TimeSpan
objects
which represent the remainders. The array is empty if there is an exact
overlap between the timespans and there is no remainder. The method returns
null if subtraction could not be performed because there wasn't sufficient
overlap.
var caltime = require('caltime');
var timespanCtor = caltime.timeSpan;
// create a TimeSpan object which represents 09:30am - 10:00am.
var spanA = timespanCtor(9, 30, 0, 0, 30, 0, 0);
// create a TimeSpan object which represents 09:45am - 10:00am.
var spanB = timespanCtor(9, 45, 0, 0, 15, 0, 0);
// create a TimeSpan object which represents 10:00am - 10:15am.
var spanC = timespanCtor(10, 0, 0, 0, 15, 0, 0);
// these two timespans do intersect
let result = spanA.subtract(spanB);
result.length; // 1 element in array
result[0].getHours(); // 9
result[0].getMinutes(); // 30
result[0].getDurationMins(); // 15 minutes
// these timespans do not intersect
result = spanA.intersect(spanC); // null
result.length; // 0
difference()
Method calculates the part of one TimeSpan
(the primary) which does not
intersect with another TimeSpan
(the secondary). It returns an array
containing one or two new TimeSpan
objects which represent the non-overlapping
intervals. The array is empty if there is a complete overlap between the
timespans. The method returns the primary TimeSpan
if there is no overlap.
var caltime = require('caltime');
var timespanCtor = caltime.timeSpan;
// create a TimeSpan object which represents 09:30am - 10:00am.
var spanA = timespanCtor(9, 30, 0, 0, 30, 0, 0);
// create a TimeSpan object which represents 09:45am - 10:30am.
var spanB = timespanCtor(9, 45, 0, 0, 45, 0, 0);
// these two timespans do intersect
let result = spanA.subtract(spanB);
result.length; // 1 element in array
result[0].getHours(); // 9
result[0].getMinutes(); // 30
result[0].getDurationMins(); // 15 minutes
mergeTimeSpans()
Function is passed an Array of TimeSpan
objects and sorts the objects in
the array based on the start time. It then merges any of the TimeSpan
objects
which are overlapping. A new array is returned (merging is not in-situ) which
contains the merged and non-merged TimeSpan
objects.
var caltime = require('caltime');
var timespanCtor = caltime.timeSpan;
var mergeTimeSpans = caltime.mergeTimeSpans;
var spanList = null;
// create TimeSpan objects which overlap
const timeSpanA = timespanCtor(9, 0, 0, 0, 60, 0, 0, 0); // 9:00-10:00
const timeSpanB = timespanCtor(9, 30, 0, 0, 60, 0, 0, 0); // 9:30-10:30
const timeSpanC = timespanCtor(10, 0, 0, 0, 60, 0, 0, 0); // 10:00-11:00
// this TimeSpan does not overlap with others
const timeSpanD = timespanCtor(11, 30, 0, 0, 60, 0, 0, 0); // 11:30-12:30
// add TimeSpans to array in ascending order
const list = [timeSpanA, timeSpanB, timeSpanC, timeSpanD];
const result = mergeTimeSpans(list);
result.length; // 2
result[0].getHours(); // 9 as merged TimeSpan is 9:00-11:00
result[0].getMinutes(); // 0
result[0].getDurationMins(); // 120
result[1].getHours(); // 11 as TimeSpan is not merged
result[1].getMinutes(); // 30
result[1].getDurationMins(); // 60
sortTimeSpans()
Function takes an Array of TimeSpan
objects and returns a new Array which
contains the same TimeSpan
objects, sorted by their start time.
var caltime = require('caltime');
var timespanCtor = caltime.timeSpan;
var sortTimeSpans = caltime.sortTimeSpans;
var spanList = null;
// create TimeSpan objects
const timeSpanA = timespanCtor(9, 0, 0, 0, 60, 0, 0, 0); // 9:00-10:00
const timeSpanB = timespanCtor(10, 0, 0, 0, 60, 0, 0, 0); // 10:00-11:00
const timeSpanC = timespanCtor(11, 0, 0, 0, 60, 0, 0, 0); // 11:00-12:00
const timeSpanD = timespanCtor(12, 0, 0, 0, 60, 0, 0, 0); // 12:00-13:00
// add TimeSpans to array in ascending order
const list = [timeSpanA, timeSpanB, timeSpanC, timeSpanD];
// sort list in descending order
const result = sortTimeSpans(list, true);
result.length; // 4
result[0].getHours(); // 12 (is timeSpanD)
result[1].getHours(); // 11 (is timeSpanC)
result[2].getHours(); // 10 (is timeSpanB)
result[3].getHours(); // 9 (is timeSpanA)
// sort list in ascending order again
const result = sortTimeSpans(list);
result.length; // 4
result[0].getHours(); // 9 (is timeSpanA)
result[1].getHours(); // 10 (is timeSpanB)
result[2].getHours(); // 11 (is timeSpanC)
result[3].getHours(); // 12 (is timeSpanD)
toString()
Method returns a string which represents the state of the TimeSpan
. This
method is only intended to help debugging and the format of the string
can change between releases.
DateSpan
Similar to a TimeSpan
, a DateSpan
object specifies a start time and duration, however
the DateSpan
is tied to a specific date. This means it is affected by the timezone,
leap years and Daylight Savings Time.
dateSpan()
The dateSpan
function is a functional constructor therefore it should not be
called with the new
operator. The function accepts several arguments:
- inBegin: A valid Date object which indicates the start time and date.
- inEnd: Optional argument. A valid Date object which indicates the end time and date. Pass null when it is preferred to specify the duration.
- inDurationMins: Minutes component of the duration of the
DateSpan
in minutes. Durations can exceed one hour and in this case this argument can exceed the value 59. The argument is optional and should not be passed if inEnd is specified. - inDurationSecs: Seconds component of the duration. Valid range is 0-59. The argument is optional and should not be passed if inEnd is specified.
inDurationMs: Milliseconds component of the duration. Valid range is 0-999. The argument is optional and should not be passed if inEnd is specified.
var caltime = require('caltime'); var datespanCtor = caltime.dateSpan; // DateSpan object which represents 09:00:00:000am - 09:30:00:000am, 15.Nov.2017. var beginDate = new Date(2017, 10, 15, 9, 0, 0, 0); var spanA = datespanCtor(beginDate, 30, 0, 0);
getBegin()
This method returns the start time of the DateSpan
as a Date object.
var caltime = require('caltime');
var datespanCtor = caltime.dateSpan;
// DateSpan object which represents 09:00:00:000am - 09:30:00:000am, 15.Nov.2017.
var beginDate = new Date(2017, 10, 15, 9, 0, 0, 0);
var spanA = datespanCtor(beginDate, 30, 0, 0);
spanA.getBegin(); // Date object
getDurationMins(), getDurationSecs() and getDurationMs()
These methods return the various components of the duration of the DateSpan
.
A DateSpan
which is longer than 1 hour will have a duration with > 60 minutes.
var caltime = require('caltime');
var datespanCtor = caltime.dateSpan;
// DateSpan object which represents 09:00:00:000am - 09:30:11:222am, 15.Nov.2017.
var beginDate = new Date(2017, 10, 15, 9, 0, 0, 0);
var spanA = datespanCtor(beginDate, 30, 11, 222);
spanA.getDurationMins(); // 30 minutes
spanA.getDurationSecs(); // 11 seconds
spanA.getDurationMs(); // 222 milliseconds
getTotalDuration()
Method returns the total duration of the DateSpan
in milliseconds.
var caltime = require('caltime');
var datespanCtor = caltime.dateSpan;
// DateSpan object which represents 09:00:00:000am - 09:31:02:003am, 15.Nov.2017.
var beginDate = new Date(2017, 10, 15, 9, 0, 0, 0);
var spanA = datespanCtor(beginDate, 1, 2, 3);
spanA.getTotalDuration(); // (1*60000)+(2*1000)+(3) = 62003 milliseconds
getEnd()
This method returns the end time of the DateSpan
as a Date object.
var caltime = require('caltime');
var datespanCtor = caltime.dateSpan;
// DateSpan object which represents 09:00:00:000am - 09:30:00:000am, 15.Nov.2017.
var beginDate = new Date(2017, 10, 15, 9, 0, 0, 0);
var spanA = datespanCtor(beginDate, 30, 0, 0);
spanA.getEnd(); // Date object with time 09:30am
isEqual()
Method returns true if two DateSpan
objects have exactly the same start times
and durations.
var caltime = require('caltime');
var datespanCtor = caltime.dateSpan;
// DateSpan object which represents 09:00am - 9:45:00am, 15.Nov.2017.
var beginDate = new Date(2017, 10, 15, 9, 0, 0, 0);
var spanA = datespanCtor(beginDate, 45, 0, 0);
// create a DateSpan object with same start and duration
var spanB = datespanCtor(beginDate, 45, 0, 0);
// create a DateSpan object a different start time
var otherDate = new Date(2017, 10, 15, 10, 0, 0, 0);
var spanC = datespanCtor(otherDate, 45, 0, 0);
// create a DateSpan object with same start but different duration
var spanC = datespanCtor(beginDate, 40, 0, 0);
spanA.isEqual(spanA); // true
spanA.isEqual(spanB); // true
spanA.isEqual(spanC); // false
spanA.isEqual(spanD); // false
isIntersect
Method returns true if two DateSpan
objects intersect each other i.e. they
overlap. Since the end time of a DateSpan
is exclusive, overlapping the
beginning of one DateSpan
with the end time of another does not count as
an intersection.
var caltime = require('caltime');
var datespanCtor = caltime.dateSpan;
// DateSpan object which represents 09:00am - 9:45:00am, 15.Nov.2017.
var beginDate = new Date(2017, 10, 15, 9, 0, 0, 0);
var spanA = datespanCtor(beginDate, 45, 0, 0);
// create a DateSpan object which represents 09:30am - 10:00am.
beginDate = new Date(2017, 10, 15, 9, 30, 0, 0);
var spanB = datespanCtor(beginDate, 30, 0, 0);
// create a DateSpan object which represents 10:00am - 10:15am.
beginDate = new Date(2017, 10, 15, 10, 0, 0, 0);
var spanC = datespanCtor(beginDate, 15, 0, 0);
spanA.isIntersect(spanB); // true
spanA.isIntersect(spanC); // false
intersect()
Method calculates the intersection, if any, between two DateSpan
objects
and returns a new DateSpan
object or null if there is no intersection.
var caltime = require('caltime');
var datespanCtor = caltime.dateSpan;
// DateSpan object which represents 09:00am - 09:45am, 15.Nov.2017.
var beginDate = new Date(2017, 10, 15, 9, 0, 0, 0);
var spanA = datespanCtor(beginDate, 45, 0, 0);
// create a DateSpan object which represents 09:30am - 10:00am.
beginDate = new Date(2017, 10, 15, 9, 30, 0, 0);
var spanB = datespanCtor(beginDate, 30, 0, 0);
// create a DateSpan object which represents 10:00am - 10:15am.
beginDate = new Date(2017, 10, 15, 10, 0, 0, 0);
var spanC = datespanCtor(beginDate, 15, 0, 0);
// date-spans with intersection
var result = spanA.intersect(spanB);
result.getBegin(); // 9:30am
result.getEnd(); // 09:45am
// date-spans with no intersection
result = spanA.intersect(spanC); // null
union()
Method calculates the union between two intersecting DateSpan
objects. It
returns a new DateSpan
or null if there is no intersection.
var caltime = require('caltime');
var datespanCtor = caltime.dateSpan;
// DateSpan object which represents 09:00am - 09:45am, 15.Nov.2017.
var beginDate = new Date(2017, 10, 15, 9, 0, 0, 0);
var spanA = datespanCtor(beginDate, 45, 0, 0);
// create a DateSpan object which represents 09:30am - 10:00am.
beginDate = new Date(2017, 10, 15, 9, 30, 0, 0);
var spanB = datespanCtor(beginDate, 30, 0, 0);
// create a DateSpan object which represents 10:00am - 10:15am.
beginDate = new Date(2017, 10, 15, 10, 0, 0, 0);
var spanC = datespanCtor(beginDate, 15, 0, 0);
// date-spans with intersection
var result = spanA.intersect(spanB);
result.getBegin(); // 9:00am
result.getEnd(); // 10:00am
// date-spans with no intersection
result = spanA.intersect(spanC); // null
subtract()
Method calculates the remainder(s) after subtracting one DateSpan
from
another. It returns an array containing one or two new DateSpan
objects
which represent the remainders. The array is empty if there is an exact
overlap between the date-spans and there is no remainder. The method returns
null if subtraction could not be performed because there wasn't sufficient
overlap.
var caltime = require('caltime');
var datespanCtor = caltime.dateSpan;
// DateSpan object which represents 09:00am - 10:00am, 15.Nov.2017.
var beginDate = new Date(2017, 10, 15, 9, 0, 0, 0);
var spanA = datespanCtor(beginDate, 60, 0, 0);
// create a DateSpan object which represents 09:30am - 09:45am.
beginDate = new Date(2017, 10, 15, 9, 30, 0, 0);
var spanB = datespanCtor(beginDate, 15, 0, 0);
// create a DateSpan object which represents 10:00am - 10:15am.
beginDate = new Date(2017, 10, 15, 10, 0, 0, 0);
var spanC = datespanCtor(beginDate, 15, 0, 0);
// date-spans with intersection
var result = spanA.subtract(spanB);
result.length; // 2
result[0].getBegin(); // 9:00am
result[0].getEnd(); // 09:30am
result[1].getBegin(); // 9:45am
result[1].getEnd(); // 10:00am
// date-spans with no intersection
result = spanA.intersect(spanC); // null
difference()
Method calculates the part of one DateSpan
(the primary) which does
not intersect with another DateSpan
(the secondary). It returns an array
containing one or two new DateSpan
objects which represent the non-overlapping
intervals. The array is empty if there is a complete overlap between the
date-spans. The method returns the primary DateSpan
if there is no overlap.
var caltime = require('caltime');
var datespanCtor = caltime.dateSpan;
// DateSpan object which represents 09:00am - 10:00am, 15.Nov.2017.
var beginDate = new Date(2017, 10, 15, 9, 0, 0, 0);
let dateSpanA = dateSpanCtor(beginDate, null, 60);
// DateSpan object which represents 09:30am - 10:30am, 15.Nov.2017.
beginDate = new Date(2017, 10, 15, 9, 30, 0, 0);
let dateSpanB = dateSpanCtor(beginDate, null, 60);
// primary date-span starts before the secondary
let result = dateSpanA.difference(dateSpanB);
result.length; // 1
result[0].getBegin(); // 9:00
result[0].getEnd(); // 9:30
toString()
Method returns a string which represents the state of the DateSpan
. This
method is only intended to help debugging and the format of the string
can change between releases.
mergeDateSpans()
Function is passed an Array of DateSpan
objects and sorts the objects in
the array based on the start time. It then merges any of the DateSpan
objects
which are overlapping. A new array is returned (merging is not in-situ) which
contains the merged and non-merged DateSpan
objects.
var caltime = require('caltime');
var datespanCtor = caltime.dateSpan;
var mergeDateSpans = caltime.mergeDateSpans;
var spanList = null;
// DateSpan object which represents 09:00am - 09:45am, 15.Nov.2017.
var beginDate = new Date(2017, 10, 15, 9, 0, 0, 0);
var spanA = datespanCtor(beginDate, 45, 0, 0);
// create a DateSpan object which represents 09:30am - 10:00am.
beginDate = new Date(2017, 10, 15, 9, 30, 0, 0);
var spanB = datespanCtor(beginDate, 30, 0, 0);
// create a DateSpan object which represents 10:00am - 10:15am.
beginDate = new Date(2017, 10, 15, 10, 0, 0, 0);
var spanC = datespanCtor(beginDate, 15, 0, 0);
spanList = [ spanA, spanB, spanC ];
// merge the intersecting date-spans
var result = mergeDateSpans(spanList);
result.length; // 2
result[0].getBegin(); // 9:00am
result[0].getEnd(); // 10:00am
result[1].getBegin(); // 10:00am
result[1].getEnd(); // 10:15am
sortDateSpans()
Function takes an Array of DateSpan
objects and returns a new Array which
contains the same DateSpan
objects, sorted by their start time.
var caltime = require('caltime');
var datespanCtor = caltime.dateSpan;
var sortDateSpans = caltime.sortDateSpans;
var spanList = null;
// DateSpan object which represents 09:00am - 09:30am, 15.Nov.2017.
var beginDate = new Date(2017, 10, 15, 9, 0, 0, 0);
var spanA = datespanCtor(beginDate, 45, 0, 0);
// create a DateSpan object which represents 09:30am - 10:00am.
beginDate = new Date(2017, 10, 15, 9, 30, 0, 0);
var spanB = datespanCtor(beginDate, 30, 0, 0);
// create a DateSpan object which represents 10:00am - 10:15am.
beginDate = new Date(2017, 10, 15, 10, 0, 0, 0);
var spanC = datespanCtor(beginDate, 15, 0, 0);
spanList = [ spanA, spanB, spanC ];
// sort in descending order
var result = sortDateSpans(spanList, true);
result.length; // 3
result[0].getBegin(); // 10:00am
result[1].getBegin(); // 09:30am
result[2].getBegin(); // 09:00am
// sort in ascending order
var result = sortDateSpans(spanList);
result.length; // 3
result[0].getBegin(); // 09:00am
result[1].getBegin(); // 09:30am
result[2].getBegin(); // 10:00am
TimeRule
The TimeRule
object allows logic to be defined which can then be used to
automatically generate DateSpan
objects for a range of time. Several types
of rules can be created. The constraint applied to the rule controls for which
days or dates the DateSpan
objects are created. Possible constraints are:
- The same day of the week, every week e.g. every Monday from 9-10am.
- The same date every month e.g. 4th of every month from 1-2pm.
- The Nth weekday of every month e.g. 3rd Tuesday of the month from 9-10pm.
timeRule()
The timeRule
function is a functional constructor, therefore it should not be
called with the new
operator. The function accepts several arguments:
- inTimeSpan:
TimeSpan
object describing the start time and duration of theDateSpan
objects which will be generated by the rule. - inConstraint: Controls how the rule generates
DateSpan
objects. Constants for each type of constraint are provided by thecaltime
module's constants object. - inDay: Specifies the day of the week or day of the month. How this value is
interpreted depends on
inConstraint
. - inTZ: String defining the timezone used when generating the
DateSpan
objects. See https://www.iana.org/time-zones for valid timezone identifier strings. The timezone is required because theinTimeSpan
argument is timezone agnostic. - inBegin: Optional argument. Defines a start time before which the rule does
not apply and therefore does not generate any
DateSpan
objects. - inEnd: Optional argument. Defines an end time after which the rule does
not apply and therefore does not generate any
DateSpan
objects.
getTimeSpan()
Method returns a TimeSpan
object which defines the span of time during the day
which is used when generating the DateSpan
objects.
getDay()
Method returns the day (0 (Sunday) - 6 (Saturday) of the week or day of the month (1-31)
which indicates which days which the rule will generate a DateSpan
object.
getTZ()
Method returns a string which indicates the timezone used when generating the
DateSpan
objects.
getBegin()
This method returns the start time from which the rule begins generating
DateSpan
objects.
getEnd()
This method returns the end time up to which the rule generates DateSpan
objects.
generateDateSpans()
The method generates an Array of DateSpan
objects which meet all of the constraints
imposed by the TimeRule
.
var caltime = require('caltime');
var timespanCtor = caltime.timeSpan;
var timeruleCtor = caltime.timeRule;
var modconstants = caltime.constants;
// Rule will generate date-spans
var spanA = timespanCtor(9, 0, 0, 0, 30, 0, 0);
var rule = timeruleCtor(spanA,
modconstants.CONSTRAINT_DAY_OF_WEEK,
modconstants.WEDNESDAY,
'America/New_York');
// now generate DateSpan objects based on the rule constraints
var beginDate = new Date(2017, 5, 1, 12, 0, 0, 0, 0); // 12:00, 1 June 2017
var endDate = new Date(2017, 5, 20, 12, 0, 0, 0, 0); // 12:00, 20 June 2017
var result = rule.generateDateSpans(beginDate, endDate);
result.length; // 2
result[0].getBegin(); // 7 June 2017, 09:00-09:30am Eastern Daylight Time (-0400)
result[1].getBegin(); // 14 June 2017, 09:00-09:30am Eastern Daylight Time (-0400)
Constants
The module makes several constants available in the constants
object. Each
constant is a data member of this object. Constants are available which can
be used to convert values between different units of time.
Examples of constants for time conversion:
var caltime = require('caltime');
var module_constants = caltime.constants;
module_constants.MSECS_PER_HOUR; // milliseconds per hour
module_constants.MAX_MINS_PER_DAY; // minutes in a 24 hour day
Constants are available which define the day of the week. These values are the
same as those used by the EcmaScript Date
object.
var caltime = require('caltime');
var module_constants = caltime.constants;
module_constants.SUNDAY; // 0
module_constants.MONDAY; // 1
module_constants.TUESDAY; // 2
module_constants.WEDNESDAY; // 3
module_constants.THURSDAY; // 4
module_constants.FRIDAY; // 5
module_constants.SATURDAY; // 6
Constants are also available for use with the TimeRule
functional constructor.
These constants define the type of constraint applied by the TimeRule
.
var caltime = require('caltime');
var module_constants = caltime.constants;
module_constants.CONSTRAINT_DAY_OF_WEEK; // Monday, Tuesday,... etc.
module_constants.CONSTRAINT_DAY_OF_MONTH; // 1st, 2nd, 3rd,... etc.
module_constants.CONSTRAINT_FIRST_OF_MONTH; // Monday, Tuesday,... etc.
module_constants.CONSTRAINT_SECOND_OF_MONTH; // Monday, Tuesday,... etc.
module_constants.CONSTRAINT_THIRD_OF_MONTH; // Monday, Tuesday,... etc.
module_constants.CONSTRAINT_FOURTH_OF_MONTH; // Monday, Tuesday,... etc.
module_constants.CONSTRAINT_FIFTH_OF_MONTH; // Monday, Tuesday,... etc.
API Documentation
Documentation describing the last major release of caltime
is available at
CalTime API.
The latest API documentation can be generated using jsdoc
. The documentation
is created in the docs/
directory.
$ cd <caltime-git-clone>
$ npm run -s doc
Dependencies
caltime
currently depends on two modules when in production. Other modules are
required to test or develop caltime
. The production dependencies are:
License
caltime
is copyright (c) 2017 Michael McCarthy<EMAIL_ADDRESS>caltime
is free software, licensed under the MIT licence. See the file LICENSE
in this distribution for more information.


Click on an image to see the full album. If your totoro would like to make an appearance, let me know: totingtotoro@gmail.com.


Description
Demo
Pull the slider to vary the size of the photograph. (Zoom function is not available in Firefox)
Documentation
Global navigation


We look after every bit of the brand of Preseed and all it's verticals. Yes, that includes all the logos, graphics, copy, typography, colors, culture, language etc. We handle every bit of the social media and content of Preseed laid out on Preseed Media Network at the bottom of Preseed's website. We also handle every bit of Preseed's web development.
Trust us when we say that it is not only in the result of the work we do, that you can see what we know, it is also in the way we work, that you can see what we know. We know of the latest and the latest is what we use in our works from design tools we use to the codes we write.
www.preseed.in


Gaebrielle was born in Washington DC, but raised in Potomac, Maryland which is a suburb about 45 minutes outside of DC.
→ → → → → → → → → → → → → → → → → → → → → → → → →
Family Interests Favorite Music Favorite Movies Favorite Art Favorite Foods Current Life Cool Talent
or Return to the Homepage


Concept StringConceptSequences are dense linear containers that have positions.
Sequences are dense linear containers that have positions.
| Extends | RandomAccessContainerConcept |
|---|---|
| All Extended | AssignableConcept, ContainerConcept, DestructibleConcept, ForwardContainerConcept, RandomAccessContainerConcept, ReversibleContainerConcept |
| Defined in | <seqan/basic.h> |
| Signature |
StringConcept<T>
|
Member Function Overview
Member Functions Inherited From AssignableConcept
Member Functions Inherited From RandomAccessContainerConcept
Interface Function Overview
-
void append(seq, other);
Append a sequence to another one. -
void appendValue(seq, val);
Append a value to a sequence. -
TReference back(seq);
Return reference to the last element. -
TSize capacity(seq);
Returns the capacity of a sequence. -
void clear(seq);
Remove all elements from the sequences. -
TSize computeGenerousCapacity(seq, capacity);
Capacity for generous expansion. -
void erase(seq, pos[, posEnd)
Erase an element or a range of elements from a sequence. -
void eraseBack(seq);
Erase last element in a sequence. -
void eraseFront(seq);
Erase first element in a sequence. -
TReference front(seq);
Return reference to the first element. -
void insert(seq, pos, src[, tag]);
Inserts a sequence into another sequence. -
void insertValue(seq, pos, val[, tag]);
Inserts an element into a sequence. -
TIterator iter(seq, pos[, tag]);
Iterator to the item at the given position in a container. -
void replace(target, posBegin, posEnd, source[, limit][, resizeTag]);
Replaces a part of a sequence with another sequence. -
void resize(seq, len[, val]);
Resize a sequence.
Interface Functions Inherited From AssignableConcept
Interface Functions Inherited From ContainerConcept
append
appendValue
begin
directionIterator
empty
end
getObjectId
length
moveValue
shrinkToFit
swap
write
writeValue
Interface Functions Inherited From RandomAccessContainerConcept
Interface Metafunction Overview
Interface Metafunctions Inherited From ContainerConcept
Interface Functions Detail
void append(seq, other);
Append a sequence to another one.
Parameters
seq
|
The sequence to append the other sequence to. |
|---|---|
other
|
The other sequence to append to seq. Of same type as seq. |
Data Races
Thread safety unknown!
void appendValue(seq, val);
Append a value to a sequence.
Parameters
seq
|
The sequence to append a value to (type TSequence). |
|---|---|
val
|
A value to append to the sequence. Convertible to Value<TSequence>::Type. |
Data Races
Thread safety unknown!
TReference back(seq);
Return reference to the last element.
Parameters
seq
|
The sequence to get the last element of. |
|---|
Returns
TReference |
A reference to the last element of seq. |
|---|
Data Races
Thread safety unknown!
TSize capacity(seq);
Returns the capacity of a sequence.
Parameters
seq
|
The sequence to query for its capacity. |
|---|
Returns
TSize |
Returns the capacity of the sequence. TSize is the result of Size<TSequence>::type where TSequence is the type of seq. |
|---|
The size of a sequence can never exceed its capacity but some container support resizing of the capacity. Some functions do that implicitely if they are called with a suitable tag. The function reserve can be used to change the capacity explicitely.
Data Races
Thread safety unknown!
void clear(seq);
Remove all elements from the sequences.
Parameters
seq
|
Sequence to clear. |
|---|
Data Races
Thread safety unknown!
TSize computeGenerousCapacity(seq, capacity);
Capacity for generous expansion.
Parameters
seq
|
The sequence to compute the generous capacity for. |
|---|---|
capacity
|
The minimal required capacity. |
Returns
TSize |
A value larger than capacity that should be used as the new capacity for container when it is expanded using the Generous overflow strategy. |
|---|
Data Races
Thread safety unknown!
void erase(seq, pos[, posEnd)
Erase an element or a range of elements from a sequence.
Parameters
seq
|
Sequence to remove range from. |
|---|---|
pos
|
Begin position of the range to remove. |
posEnd
|
Optional end position of the range to remove. If omitted, pos + 1 is used. |
Data Races
Thread safety unknown!
void eraseBack(seq);
Erase last element in a sequence.
Parameters
seq
|
The sequence to remove the last element from. |
|---|
Data Races
Thread safety unknown!
void eraseFront(seq);
Erase first element in a sequence.
Parameters
seq
|
The sequence to remove the first element from. |
|---|
Data Races
Thread safety unknown!
TReference front(seq);
Return reference to the first element.
Parameters
seq
|
The sequence to get the first element of. |
|---|
Returns
TReference |
A reference to the first element of seq. |
|---|
Data Races
Thread safety unknown!
void insert(seq, pos, src[, tag]);
Inserts a sequence into another sequence.
Parameters
seq
|
The sequence to insert element sinto. |
|---|---|
pos
|
The position to start inserting at. |
src
|
The sequence to insert at pos. |
tag
|
The resize tag, defaults to what OverflowStrategyImplicit returns. |
Data Races
Thread safety unknown!
void insertValue(seq, pos, val[, tag]);
Inserts an element into a sequence.
Parameters
seq
|
The sequence to insert element into. |
|---|---|
pos
|
The position to insert at. |
val
|
The value to insert at pos into seq. |
tag
|
The resize tag, defaults to what OverflowStrategyImplicit returns. |
Data Races
Thread safety unknown!
TIterator iter(seq, pos[, tag]);
Iterator to the item at the given position in a container.
Parameters
seq
|
The sequence to get the iterator for. |
|---|---|
pos
|
The position to get the iterator for. |
tag
|
The tag to pick the type of the iterator. |
Returns
TIterator |
The resulting iterator. If TTag is the type of tag and TSequence the type of seq then TIterator is of the type Iterator<TSequence, TTag>::Type. |
|---|
Remarks
If pos is out of range then the iterator is invalid.
Data Races
Thread safety unknown!
void replace(target, posBegin, posEnd, source[, limit][, resizeTag]);
Replaces a part of a sequence with another sequence.
Parameters
target
|
The sequence to modify. |
|---|---|
posBegin
|
The begin position of the range to replace. |
posEnd
|
The end position of the range to replace. |
source
|
The source sequence to replace [posBegin, posEnd) with. |
limit
|
Largest size of target after the operation. |
resizeTag
|
Specify the resizing behaviour. Defaults to what DefaultOverflowImplicit returns. |
Data Races
Thread safety unknown!
void resize(seq, len[, val]);
Resize a sequence.
Parameters
seq
|
Sequence to resize. |
|---|---|
len
|
Length to resize seq to. |
val
|
When increasing the size, val is used to fill new entries. When omitted, TValue() is used where TValue is the Value type of the sequence. |
Data Races
Thread safety unknown!


Get a list of available APIs qualifying under a given search condition.\n
https://apis.wso2.com/api/am/store/v0.9/apis
GET
Scope not required
curl -H "Authorization: Bearer aa0ddec1ac656744234477f20fafcb0d" http://<IP_ADDRESS>:9763/api/am/store/v0.9/apis
HTTP/1.1 200 OK
Content-Type: application/json
{
"previous": "",
"list": [
{
"provider": "admin",
"version": "1.0.0",
"description": "This API provide Account Status Validation.",
"status": "PUBLISHED",
"name": "AccountVal",
"context": "/account/1.0.0",
"id": "2e81f147-c8a8-4f68-b4f0-69e0e7510b01"
},
{
"provider": "admin",
"version": "1.0.0",
"description": null,
"status": "PUBLISHED",
"name": "api1",
"context": "/api1/1.0.0",
"id": "3e22d2fb-277a-4e9e-8c7e-1c0f7f73960e"
},
{
"provider": "admin",
"version": "2.0.0",
"description": "Verify a phone number",
"status": "PUBLISHED",
"name": "PhoneVerification",
"context": "/phoneverify/2.0.0",
"id": "c43a325c-260b-4302-81cb-768eafaa3aed"
}
],
"count": 3,
"next": ""
}
| Type | Name | Description | Schema | Default |
|---|---|---|---|---|
| Query |
limit optional |
Maximum size of resource array to return.\n |
Integer |
25 |
| Query |
offset optional |
Starting point within the complete list of items qualified.\n |
Integer |
0 |
| Header |
X-WSO2-Tenant optional |
For cross-tenant invocations, this is used to specify the tenant domain, where the resource need to be\n retirieved from.\n |
String | |
| Query |
query optional |
**Search condition**.\n\nYou can search in attributes by using an **\"attribute:\"** modifier.\n\nEg.\n\"provider:wso2\" will match an API if the provider of the API is exactly \"wso2\".\n\nAdditionally you can use wildcards.\n\nEg.\n\"provider:wso2\\*\" will match an API if the provider of the API starts with \"wso2\".\n\nSupported attribute modifiers are [**version, context, status,\ndescription, subcontext, doc, provider, tag**]\n\nIf no advanced attribute modifier has been specified, search will match the\ngiven query string against API Name.\n |
String | |
| Header |
Accept optional |
Media types acceptable for the response. Default is JSON.\n |
String |
JSON |
| Header |
If-None-Match optional |
Validator for conditional requests; based on the ETag of the formerly retrieved\nvariant of the resourec.\n |
String |
| HTTP Code | Description | Schema |
|---|---|---|
200 |
OK.\nList of qualifying APIs is returned.\n |
APIList |
304 |
Not Modified.\nEmpty body because the client has already the latest version of the requested resource.\n |
|
406 |
Not Acceptable.\nThe requested media type is not supported\n |
Error |


Bashpress 2008/09/03
Guilty. I wrote another blogging engine. This one's command-line based and only for those willing to get HTML on their shirt. Writing a post looks like this:
- bin/new "This is the post's title"
- Write the post in the file it gives you
- bin/preview path/to/the/post
- Check it out in your favorite browser
- bin/publish path/to/the/post
I rolled my own because I rather like the command line and rather dislike being h4x0red. It has a script to import a Wordpress blog, so you can come and play, too. The source is on GitHub.
 I hope it'll make me write more (I hated Wordpress' WYSIWYG editor, even in HTML mode).
Comments (4)
I hate Wordpress' WYSIWYG editor as well, but I do admit that I like plentiful plugins that are available.
I love the idea of being able to publish through command line so I will eventually be giving this a try.
— John Barker — 2008/09/04 1:20 pm
And here's the keyboard he uses to do all this:
(btw, this HTML better work after all that shit talking about "getting HTML on their shirt")
— Mike P — 2008/09/07 10:23 pm
Yeah, no did not work. Here's the link:
http://media.techeblog.com/images/_funnykeyboards_1.jpg
— Mike P — 2008/09/07 10:23 pm
Blosxom, dude. FTP a text file with the title in the first line → new blog post! (This sounds good too, though.)
— Britta — 2008/09/15 5:48 pm


Derek Eder
@derekeder
Buying our tickets to the Logan Square Harvest Dinner. Anyone else going this year? @peoplingplaces @SethLavin http://events.r20.constantcontact.com/register/event?llr=w4kyt6bab&oeidk=a07e4saisdp151e6c47
10/28/2011, 2:35:18 PM
Favs: 0
Retweets: 0
link


Type Definitions
RequestCallback(request)
This callback is called when a request is sent to service
Parameters:
| Name | Type | Description |
|---|---|---|
request |
Object | The request sent to the service |
- Source:
- See:
ResponseCallback(response)
This callback is called when a resopnse is sent back from service
Parameters:
| Name | Type | Description |
|---|---|---|
response |
Object | The response sent from the service |
- Source:
- See:
SubscriptionCallback(message)
This callback is called when a message is published
Parameters:
| Name | Type | Description |
|---|---|---|
message |
Object | The message published |


 Most professional services these days either have a website or at least a Google listing, so that you can easily get addresses and contact information, as well as hours and pricing. You can even use some websites to get recommendations, like AngiesList.com.
2.Take Classes
You can take full university courses or even just free courses online, if you want to learn a new skill or keep your brain active. You can find free courses from major universities on websites like Coursera, but actual degree programs online usually cost money.
3.Learn New Things
If you're in the mood for more of a lecture than a full class, you can also find this kind of bite-size info on the internet. Go to websites like TED to see interesting lectures from some of the best minds in the world, for free. You can learn loads of basic skills (and not-so-basic ones!) on websites like this one, wikiHow. You can also find websites like Wikipedia, which is a free online encyclopedia and contains a vast wealth of information.. YouTube has lots of information and entertainment in video format.
4.Learn About Your Family History
If you're interested in your family history, you can do research about where you and your family come from. There are lots of ancestry websites which can provide not only information but also sometimes things like pictures or draft cards. Try Ancestry.com, FamilySearch.org, and EllisIsland.org. Many publicly available census records are also online.


#include <RenderModel.h>
Public Member Functions | |
| RenderObject (SceneManager *mgr) | |
| SceneManager * | getSceneManager () |
| int | renderId () const |
| virtual void | updateEffects (Real elapsedTime, Quaternion camOrientation)=0 |
| virtual void | loadSceneResources ()=0 |
| virtual void | createEffects ()=0 |
| virtual void | destroyEffects ()=0 |
| bool | operator== (const RenderObject &other) const |
The RenderObject class represents any entity in the game world which will be rendered through the OgreScene manager (typically attached to SceneNodes)
Definition at line 18 of file RenderModel.h.
| RenderObject::RenderObject | ( | SceneManager * | mgr | ) |
Constructs a new RenderObject which uses the specified SceneManager
Definition at line 12 of file RenderModel.cpp.
| virtual void RenderObject::createEffects | ( | ) | [pure virtual] |
Performs first time creation of required OGRE effects
Implemented in ConstraintRenderObject, PhysicsRenderObject, ShipRO, NpcShipRO, and ProjectileRO.
| virtual void RenderObject::destroyEffects | ( | ) | [pure virtual] |
Performs destruction of all generated OGRE effects
Implemented in ConstraintRenderObject, PhysicsRenderObject, ShipRO, NpcShipRO, and ProjectileRO.
| SceneManager * RenderObject::getSceneManager | ( | ) |
Definition at line 18 of file RenderModel.cpp.
| virtual void RenderObject::loadSceneResources | ( | ) | [pure virtual] |
Loads any resources (sprites, particles, etc) that will be neccesary to render the entity.
Implemented in ConstraintRenderObject, PhysicsRenderObject, ShipRO, NpcShipRO, and ProjectileRO.
| bool RenderObject::operator== | ( | const RenderObject & | other | ) | const |
Reimplemented in PhysicsRenderObject.
Definition at line 28 of file RenderModel.cpp.
| int RenderObject::renderId | ( | ) | const |
Definition at line 23 of file RenderModel.cpp.
| virtual void RenderObject::updateEffects | ( | Real | elapsedTime, | |
| Quaternion | camOrientation | |||
| ) | [pure virtual] |
Updates the entities effects based on passed time and camera orientation (useful for sprites)
Implemented in ConstraintRenderObject, PhysicsRenderObject, ShipRO, NpcShipRO, and ProjectileRO.


Keeping the Faith (2000) 2 1/2 stars out of 4. Starring Ben Stiller, Edward Norton, Jenna Elfman, Anne Bancroft, Eli Wallach, Milos Forman and Ron Rifkin. Directed by Norton. Written by Stuart Blumberg.
Hey, did you hear the one about the priest, the rabbi and the blonde they both loved?
That's the one-joke premise of "Keeping the Faith," a new comedy that marks the directorial debut of actor Edward Norton.
And while the film is an appealing romantic comedy, it does have its drawbacks. But let's stick with the positives for now.
Best friends Jake Schram (Ben Stiller) and Brian Kilkenny Finn (Norton) call themselves `the God Squad.' Jake is a rabbi, Brian, a priest. Both are young and hip and want to take their respective flocks into the 21st century.
Both are popular, packing the pews at their respective houses of worship.
As children, Jake and Brian plus Anna Reilly were inseparable, the best of friends. Then Anna's father was transferred to San Francisco.
Years later, Anna (Jenna Elfman), now a high-powered executive, returns to New York and looks up her old buddies. Once again the three are inseparable. Except that now, complications arise.
Sparks begin to fly and a highly unusual love triangle develops, with Anna in the middle.
The trio make an attractive couple. The camera just loves Elfman. She is beautiful, charismatic and a fine comedic actress with impeccable timing instincts.
Stiller is charming as the bachelor rabbi fending off all the mamas who continually try to fix him up with their available daughters.
is sincere and dedicated as a young priest who is wise, pragmatic and spiritual.
All three do well with their comic turns, especially Stiller who seems continually harried as he tries to appease everyone in his Manhattan congregation.
And while "Keeping the Faith" is enjoyable, the script by Stuart Blumberg, a fellow Yale graduate and classmate of Norton's, contains some flaws.
Everything seems too glossy, crises are resolved too easily, situations seem pat.
There doesn't seem to be any serious conflict. It's as if Blumberg decided not to cross some invisible line, so he downplayed the real-life consequences of a priest having bouts of self-doubt about his avocation, or a rabbi fretting over the import of a relationship with a non-Jewish woman.
Yet, you can't help but like "Keeping the Faith." it is a sunny, New York fairy tale with a fine supporting cast, including Anne Bancroft, Eli Wallach, Ron Rifkin and Milos Forman.
As a director, Norton is fine with handling his actors. He never allows the proceedings to go overboard.
He knows how to use his camera and compose his shots. But he needs to be more brutal in the editing room. At two hours and nine minutes, "Keeping the Faith" contains a few dead spots that tighter editing could have eliminated.
"Keeping the Faith" offers another benefit. In this cynical age, its comforting to see a movie about two intelligent young men who can commit to a life that basically eschews the crass materialism and commercialism that dominates our society.
These are two men who hear God's calling and answer it without hesitation.
The movie's resolution, unfortunately, is too simple, and a bit unrealistic.
But that should not discourage anyone from viewing this cheery confection.
What is especially interesting will be to watch Norton's maturation as a director. With just seven movies under his belt as an actor, he already has gained a reputation as one of the finest and most dynamic actors in years.
You can only imagine the heights he will be able to reach behind the camera.
Bob Bloom is the film critic at the Journal and Courier in Lafayette, In. He can be reached by e-mail at<EMAIL_ADDRESS>or at<EMAIL_ADDRESS>An associate member of the Online Film Critics Society, Bloom's reviews can be found online at http://www.imdb.com/M/reviews_by?Bob+Bloom
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


{% extends "master_tpl.html" %}
{% block page_title %}Home Page for MaadRMS{% endblock page_title %}
{% block page_body %}
Version 0.12, The Project is just underway.
This is the project live home for MaadRMS.
Built with Python power on Flask Framework


Introduction
The Ubuntu release packages ships with a CUDA miner. This documentation describes how to use the CUDA miner shipped in the Ubuntu release package, how to build it yourself (if you prefer to do so), and the related configuration of the Aeternity node.
The documentation below assumes that an Aeternity node is already installed either by release package or from source, thus its dependencies are also installed.
The documentation below assumes that the Aeternity node's source code resides in ~/aeternity/node
directory.
Pre-built miner
This section describes how to use the CUDA miner shipped in the Ubuntu release package.
CUDA Driver installation
In order to use the CUDA miner shipped in the Ubuntu release package, you need to install the CUDA driver version 10.
Please refer to the NVIDIA documentation for how to download and install the CUDA driver.
Configuration of the pre-built CUDA miner
Once the CUDA driver is installed, one should change the node configuration to start using the CUDA miner.
The mining.cuckoo.miner
section of ~/aeternity/node/aeternity.yaml
should be changed to:
mining:
cuckoo:
edge_bits: 29
miners:
- executable_group: aecuckooprebuilt
executable: cuda29
extra_args: ""
hex_encoded_header: true
Notice the executable_group
.
After configuration the node could be started (or restarted if it's already running):
~/aeternity/node/bin/aeternity start
Available executables are: cuda29
, lcuda29
.
Building
This section describes how to build the CUDA miner yourself.
The Ubuntu release package ships with a CUDA miner that is already built, so you do not need to built the CUDA miner. Advanced users may prefer to build the CUDA miner themselves, though most users do not need to and can therefore skip this section.
You can build the CUDA miner yourself by following these steps:
- CUDA toolkit installation
- CUDA miner install
- Aeternity node configuration
The documentation in this section is tested on:
- Aeternity node version 2.0.0-rc.1
- CUDA toolkit version 9.2
- AWS p2.xlarge instance with 16GB EBS
- Ubuntu 16.04.4
- non-root user with ALL
sudo privileges
Make sure the Aeternity node is stopped to speedup the installation process.
CUDA toolkit installation
Download the official CUDA repository package and install it. A sudo user should be used:
cd ~
wget https://developer.nvidia.com/compute/cuda/9.2/Prod/local_installers/cuda-repo-ubuntu1604-9-2-local_9.2.88-1_amd64
sudo dpkg -i cuda-repo-ubuntu1604-9-2-local_9.2.88-1_amd64
sudo apt-key add /var/cuda-repo-9-2-local/7fa2af80.pub
After the apt repository is set, install CUDA:
sudo apt-get update && sudo apt-get install cuda
Miner install
At this point the CUDA toolkit is installed. Next step is to build the cuckoo CUDA miner.
The source code of the CUDA miner is in aecuckoo
git repository:
cd ~
git clone https://github.com/aeternity/aecuckoo.git aecuckoo_source && cd aecuckoo_source
git checkout fa3d13e # This commit is used in Aeternity node
Cuckoo CUDA build assumes CUDA compiler (nvcc
) is install in PATH
, however it is installed by the above steps in /usr/local/cuda-9.2/bin
which is not in the PATH
by default. To add CUDA compiler to the PATH
environment variable run:
export PATH=/usr/local/cuda-9.2/bin${PATH:+:${PATH}}
Compilation of CUDA miner is done in aecuckoo_source
directory by invoking:
make cuda29
Finally the actual installation of the miner binary is copying it to the node corresponding path, the documentation assumes the Aeternity node is installed in ~/aeternity/node
directory.
The exact path where to copy the binary depends on the version of the node: you can find it by calling ls -d ~/aeternity/node/lib/aecuckoo-*/priv/bin
.
E.g. it may be something like ~/aeternity/node/lib/aecuckoo-1.0.0/priv/bin
: the following assumes this path though you may need to adapt it.
cp priv/bin/cuda29 ~/aeternity/node/lib/aecuckoo-1.0.0/priv/bin
Configuration of the manually built CUDA miner
Once the CUDA miner is in place, one should change the node configuration to start using it. The mining.cuckoo.miner
section of ~/aeternity/node/aeternity.yaml
should be changed to:
mining:
cuckoo:
edge_bits: 29
miners:
- executable: cuda29
extra_args: ""
hex_encoded_header: true
After updating the configuration, the node should be started (or restarted if it's already running):
~/aeternity/node/bin/aeternity start
Configuration
The examples in this section use the CUDA miner that is shipped in the release package. If you prefer to use a manually built CUDA miner, please amend the configuration accordingly.
Mining efficiency
There is quite a bit of overhead starting the GPU miner, thus running single
mining attempts is not the best option. Therefore there is the configuration
option repeats: N
which will make multiple mining attempts (with different
nonces) in one miner context. However, this option has to be used with CAUTION,
the total run-time of the miner should preferrably not exceed 5 seconds. The
reason being that with the short block interval of BitCoin NG micro blocks (3
seconds) - we risk mining on old blocks otherwise. (And thereby missing out on
the reward collected from the transaction fees in the micro blocks.)
To fine tune the parameter, you should try running the miner in a shell
$ time ~/aeternity/node/lib/aecuckooprebuilt-*/priv/cuda29 -r 5
...
real 0m4.634s
user ...
sys ...
Here it took 4.6s, which is rather close to 5s, so maybe 4
is the best value
for this node.
Repeats are configured like this:
mining:
cuckoo:
edge_bits: 29
miners:
- executable_group: aecuckooprebuilt
executable: cuda29
repeats: 4
extra_args: ""
hex_encoded_header: true
Don't be tempted to use -r
as extra_args
the Aeternity node will not
handle nonces correctly in this case.
Multiple GPU devices
The address of a GPU device used by the miner can be set with -d
argument, for example to set device with address 0:
mining:
cuckoo:
edge_bits: 29
miners:
- executable_group: aecuckooprebuilt
executable: cuda29
extra_args: "-d 0"
hex_encoded_header: true
The address of the device can be obtained by running nvidia-smi
However, if you want to use multiple cards for GPU mining you can add another
configuration option, instances
, for example if you have two (2) GPU-cards:
mining:
cuckoo:
edge_bits: 29
miners:
- executable_group: aecuckooprebuilt
executable: cuda29
extra_args: ""
hex_encoded_header: true
instances: [0,1]
repeats: 5
Note: You should not have -d
in extra_args
if you are using the instances
configuration option, it will be added automatically
by the node.
Note: If you are combining repeats
and instances
, it is the number of repeats per instance that is configured! I.e. with 2
instances and repeats 5 each GPU will run 5 attempts per run.
Multiple GPU miners
If you want to address different GPU-cards with different miners' configurations, you can set up multiple miners in the config. For example, if you have 4 GPU-cards, and you want to address 0 and 1 with different config than 2 and 3, you can use the following config:
mining:
cuckoo:
edge_bits: 29
miners:
- executable_group: aecuckooprebuilt
executable: cuda29
extra_args: ""
hex_encoded_header: true
addressed_instances: [0,1]
repeats: 2
- executable_group: aecuckooprebuilt
executable: cuda29
extra_args: ""
hex_encoded_header: true
addressed_instances: [2,3]
repeats: 5


Sep 1, 2014 at 6:21pm UTC
I have an object:
Ctile tile;
And i have a loop:
1 2 3 4 5
for (int r = 0;r < 50;r++) {
}
What i want is:
Inside the loop, create a new Tile for each r(row).
1 2 3 4 5
for (int r = 0;r < 50;r++) {
// =>> inside here <====
}
Because CTitle have 2 int
X and Y.
So Y will be = r.
and X = l, for the other loop.
Last edited on Sep 1, 2014 at 8:44pm UTC
Sep 1, 2014 at 8:55pm UTC
There are numerous ways to do this. The easiest would be to have a container store them all such as a std::vector
. You could also use dynamic arrays if you really wanted to.
Sep 1, 2014 at 8:57pm UTC
i know how to use a vector like TileList and push the Tile.
But i don't know how to create a new Tile inside the loop for each new r.
Last edited on Sep 1, 2014 at 8:57pm UTC
Sep 1, 2014 at 9:11pm UTC
Shouldn't you create a new tile for each column? Something like:
1 2 3 4 5 6 7 8 9 10
std::vector<std::vector<Tile> > map;
for (int row = 0; row < rows; ++row)
{
std::vector<Tile> tempRow;
for (int column = 0; column < columns; ++column)
{
tempRow.emplace_back(column, row, TILEID); //x, y, type of tile
}
map.push_back(tempRow);
}
Last edited on Sep 2, 2014 at 7:13pm UTC
Sep 2, 2014 at 11:17am UTC
CMapGen.cpp:28:24: error: redeclaration of ‘std::vector<CTile> row’
std::vector<CTile> row;
^
CMapGen.cpp:26:9: error: ‘int row’ previously declared here
for(int row = 0; row < rows; ++row)
^
Sep 2, 2014 at 7:13pm UTC
Well, the error is pretty straight forward. I didn't realize when I typed it up earlier but I wasn't telling you what to use it was an example of how you could do it.
Sep 2, 2014 at 7:46pm UTC
I'll test here.
Last edited on Sep 2, 2014 at 7:52pm UTC


Sales by Store New Store Information Name Min Hourly Customers Max Hourly Customers Average Cookie Sale


{% extends "base.html" %} {% block content %}
| Alliance Ticker | Alliance Name | Corp Ticker | Corp Name | Standing |
|---|---|---|---|---|
| {{ standing.alliance and standing.alliance.ticker }} | {{ standing.alliance and standing.alliance.name }} | {{ standing.corporation and standing.corporation.ticker }} | {{ standing.corporation and standing.corporation.name }} | {{ standing.standing }} |


--- title: About ---
Hi! Welcome to my Kitchen! This is where I post recipes I have tried out and which I think are worth sharing. Feel free to leave a comment or contact me.
I grew up in Lisbon, and started to bake at 14.


Digital Synth VRA8 Controller
| MIDI IN | ||
| MIDI OUT |
We recommend Google Chrome, which implements Web MIDI API
| VCO 1 Waveform | -1 | |
| VCO 1 Coarse Tune | -1 | |
| VCO 2 Waveform | -1 | |
| VCO 2 Coarse Tune | -1 | |
| VCO 2 Fine Tune | -1 | |
| VCO 3 Waveform | -1 | |
| VCO 3 Coarse Tune | -1 | |
| VCO 3 Fine Tune | -1 | |
| VCF Cutoff Frequency | -1 | |
| VCF Resonance | -1 | |
| VCF Envelope Amount | -1 | |
| EG Attack Time | -1 | |
| EG Decay Time | -1 | |
| EG Sustain Level | -1 |
| C#3 | D#3 | F#3 | G#3 | A#3 | C#4 | D#4 | F#4 | G#4 | A#4 |
| C3 | D3 | E3 | F3 | G3 | A3 | B3 | C4 | D4 | E4 | F4 | G4 | A4 | B4 | C5 |
| Transpose | -1 |
Made by ISGK Instruments (View on GitHub)


Preparation time
less than 30 mins
Cooking time
30 mins to 1 hour
Serves
Serves 4
Who doesn't love a tikka masala? Lorraine's version is surprisingly simple and a treat for your tastebuds.
Heat a large frying pan over a medium to high heat. Add the garam masala and paprika. Toast for a couple of minutes then tip the spices onto a plate and set aside.
Drizzle some oil into the frying pan. Add the chicken and fry, tossing from time to time, until golden-brown all over, this should take about 5 minutes.
Meanwhile, put the kettle on. Put the rice in a medium-sized, lidded saucepan and add the turmeric. Pour over enough boiled water to come about 2cm/¾in above the rice. Cover with the lid and bring to the boil. Reduce the heat to low and cook according to the packet instructions.
Give the chicken a little toss, add the spring onions, ginger and garlic, cream, tomato paste, mustard powder and the toasted spices. Stir the sauce and leave it to bubble away on a low to medium heat until the chicken is cooked through, this should take about 15–20 minutes.
Check the rice is tender and has absorbed all the water. Fluff it up with a fork, and season with salt and pepper. Cover with the lid and keep warm.
When the chicken is cooked, taste the sauce, adding more heat (with paprika) or seasoning. If the sauce is too thick, add a little water; if it is too thin, let it bubble away a little longer to thicken.
Just before serving, make the salad. Put all the ingredients in a large bowl and mix.
Divide the rice among four plates and top with the curry. Scatter over some coriander leaves and serve with the salad alongside.


%HEAD%
%HEADER%
Profile
First Name
Last Name
Phone Number
Current Password
New Password
Confirm Password
%SIDEBARDASH%
%FOOT%


[viewBag] title = "DEPARTMENT OF PRIMARY EDUCATION" ==
|
111700, Republic of Uzbekistan, Tashkent region, the city of Chirchik, st. A.Temura 104 Tel: (0370) 712-4541, fax: 712-45-41, Email<EMAIL_ADDRESS>Email<EMAIL_ADDRESS>|
Department of Primary Education In accordance with the decision of the Council of the Chirchik State Pedagogical Institute of August 27, 2019, the Department of Preschool and Primary Education was separated from the Department of Preschool and Primary Education. The Department became independent and began to function. The faculty and teachers of the department also teach different subjects and topics and conduct research.
The Department of Primary Education is part of the Faculty of Preschool and Primary Education and provides training in the following areas::
Subjects taught at the Department of Primary Education
Actual problems of education
Theory of Elementary Mathematics
Educational methodology
Primary Education Pedagogy, Innovation and Integration
Information Technology in Elementary School
Extracurricular activities in elementary grades
Pedagogical skills
Extracurricular activities in basic language and mathematics
Today, the department has a team of professors and teachers who see work in various fields of scientific activity.
Leading teachers working at the department:
Mardonov Shukurullo Kuldashevich - doctor of pedagogical sciences, professor.
In addition to the main teachers of the department, experts from research institutes and professors from leading universities participate in the transfer of knowledge.
Professors and teachers of the department use modern teaching methods, multimedia tools and information and communication technologies to improve the educational process.
Qualification practice is conducted by students of secondary schools in the Tashkent region.
The department cooperates with the Scientific Research Institute of Pedagogical Sciences of Uzbekistan named after Kori Niyozi, Tashkent State Pedagogical Institute named after Nizami, the Department of Public Education of the Tashkent region, the Department of Public Education of the city of Chirchik, secondary schools and other organizations.
List of educational areas and levels of training
Bachelor
|
Direction code |
Direction and level of education |
Duration and language of instruction |
|
5111700 |
Primary and sports education Bachelor degree |
Duration of study: 4 years; Language of instruction: Uzbek, Russian |
The teaching staff of the department:
|
№ |
Full Name |
Academic degree |
Position held |
|
1. |
Jabborova Onakhon Mannopovna |
|
Head of Department |
|
2. |
Karimjonov Alijon |
Candidate of Pedagogical Sciences |
Docent |
|
3. |
Tozhiboeva Gulmira Rifovna |
|
Teacher |
|
4. |
Umarova Zuhra Abdurakhmanovna |
|
Teacher |
|
5. |
Abdullaeva Barno Pulatovna |
|
Teacher |
|
6. |
Kuzmanova Gulhayo Bakhodirovna |
|
Teacher |
|
7. |
Yuldasheva Gulshad Tleuovna |
|
Teacher |
|
8. |
Ochilov Fariddun Izatulloevich |
|
Teacher |
|
9. |
Pulatova Dildora Turgunovna |
|
Teacher |
|
10. |
Kushnazarova Yulduz Kulnazarovna |
|
Teacher |
|
11. |
Ubaidullaev Ulugbek Shukyrillaevich |
|
Teacher |
|
12. |
Yakhshiev Ulugbek Musurmankulovich |
|
Teacher |
|
13. |
Aydarov Erkin Bekitovich |
|
Teacher |