A Report object queries the database for a set of numbers and compiles them into a set of Sections, Rows and Cells which can be queried via a accessors and enumerators provided herein.
Configure the handlers and human-readable labels for the ways in which reports get broken up, in terms of frequency. View code which presents a choice of report frequency should obtain the labels for the list with the 'label' method. Use the '#column_title' method for a column “title”, shown alongside or above column headings. Use the '#column_heading' method for per-column headings.
These must stay in the same order!
If you add new entries, you must add them at the end of the list.
Saved reports specify the reporting frequency by reference to this constant and an index into its array of entries. If you produce a new TrackRecord version that changes the meaning of any array index rather than merely adding new entries, you will have to include a migration that maps old indices to new for existing saved report records.
Executive summary: Reports are fast on PostgreSQL and slow on anything else, unless you take steps to make sure they run quickly.
To run report sums in the database quickly, with minimum queries, the database is asked to group its calculations. When we can group using something that matches the columns of a report, we can get the database to in effect calculate the entire body of the report in one query. So for example, a monthly report would group by year and month number; any given date produces a unique year and month.
To do this, the SQL 'EXTRACT' function is used by default.
www.postgresql.org/docs/8.3/static/functions-datetime.html#FUNCTIONS-DATETIME-EXTRACT
docs.oracle.com/cd/B19306_01/server.102/b14200/functions050.htm
With the standard report generator implementation, TrackRecord reports rely on being able to extract:
YEAR (must match Ruby Date#year, i.e. numeric, four digit standard calendar year)
QUARTER (must match Ruby Date#quarter, i.e. numeric 1-4, simple 3 full month splits)
MONTH (must match Ruby Date#month, i.e. numeric 1-12)
WEEK - see below - so also ISOYEAR (PostgreSQL v8.3+ specific)
Ruby mirrors ISOYEAR with Date#cwyear. PostgreSQL v8.3 and later also
provide ISODOW (day-of-week), equivalent to Ruby's Date#cwday, but that is not needed by TrackRecord.
Weekly reports are thorny, because that requires grouping by some idea of a unique numbered week. The commercial week number is the obvious choice. MySQL and PostgreSQL provide a WEEK parameter for this in EXTRACT, but Oracle does not offer this and can't be used without changing the TrackRecord report generator's FREQUENCY constant for weekly reports, or disabling weekly reports entirely.
In any case, even that is insufficient. The 31st December 2012 marks the start of commercial week number 1 for the commercial year 2013; but the date itself is in calendar year 2012. January 1st 2006 is actually the last day of commercial week 52 in the commercial year 2005, despite the date being in calendar year 2006. If we were to just use a standard calendar year, we'd get into trouble - 2012 would appear to contain week 1 twice, leading to numbers from entirely different time periods being combined in the report calculations.
Thus weekly reports will only function if you use PostgreSQL version 8.3 or later unless you modify the report code. Without modifications, Oracle and MySQL should work (but are not tested). Note that SQLite will not work at all as it has no support for EXTRACT at all - you need to use 'strftime' instead, and this provides easily enough flexibility to support weekly reports too:
To modify FREQUENCY for a different database:
Change “config/initializers/can_database_do_fast_reports.rb” so that the SLOW_DATABASE_ALTERNATIVE constant value is “false” for your database. Without this, you won't be able to test your modifications to FREQUENCY as a “safe mode” fallback is active.
Change the “:grouping” key to the equivalent of the EXTRACT already present, noting that it shoudld always be an array, even if there's only one group. Ensure that whatever you group by will lead to one group for every single unique column for the intended report, e.g. uniquely identifies months across many years, or weeks across awkward end-of-year boundaries.
Change the “:date_to_key” proc so that Ruby generates an array that matches the grouping keys returned by the database when it runs the query that calculates the report data. To find out that bit of the puzzle, search in “lib/track_record_report.rb” (i.e. this file) for the string “*date_based_key”. You'll see a line of code that assigns this from a variable. Underneath that line, add in: “raise date_based_key.inspect” and generate a report of the column duration you are modifying, while in development mode. The raised exception will show in your browser the form of the value that the date-to-key proc must return.
Also look at the code below the assignment of FREQUENCY to see how the slow “safe mode” is done. You could always create those values inside FREQUENCY by hand for report types you can't generate in the database.
“Cacheable” range values. If a report's start or end date is fixed, returns the date. If the start or end date are start/end-of-all-time, one or both returns :all. If the report is being generated for a relative month or week, returns “last_”, “this_” or “two_” with a suffix of “month” or “week”, as a symbol, for both start and end.
“Cacheable” range values. If a report's start or end date is fixed, returns the date. If the start or end date are start/end-of-all-time, one or both returns :all. If the report is being generated for a relative month or week, returns “last_”, “this_” or “two_” with a suffix of “month” or “week”, as a symbol, for both start and end.
Sort fields for customers, projects and tasks; grouping options.
A row from the FREQUENCY constant and the current index into that array.
A row from the FREQUENCY constant and the current index into that array.
Sort fields for customers, projects and tasks; grouping options.
Complete date range for the whole report; array of user IDs used for per-user breakdowns; array of task IDs the report will represent.
Range data for the 'new' view form. Custom attribute writer methods are used to call “rationalise_dates” whenever a range value is altered.
Range data for the 'new' view form. Custom attribute writer methods are used to call “rationalise_dates” whenever a range value is altered.
Handle all (“all”), only billable (“billable”) or only non-billable (“non_billable”) tasks?
Sort fields for customers, projects and tasks; grouping options.
Read-only array of actual user and task objects based on the IDs. Not all users or tasks may be included, depending on security settings.
A report's total date span may be restricted to avoid generating giant reports which would swamp a server (for example, a daily report over hundreds or thousands of days would be a bad idea). If not done, this holds 'nil', else the Date giving the original start date (the limited, actual start date used is in the “range” property).
Views/generators can use it to include warnings that the start date was limited, should they so wish.
Optional report title.
Total duration of all tasks in all rows; number of hours remaining (may be negative for overrun) after all hours worked in tasks with non-zero duration. If 'nil', all tasks had zero duration. The 'actual' value only accounts for committed hours, while the 'potential' value includes both committed and not-committed hours (thus, subject to change).
A report that hides zero total rows will not include task durations on those rows. A report that shows them will include task durations on those rows.
Total duration of all tasks in all rows; number of hours remaining (may be negative for overrun) after all hours worked in tasks with non-zero duration. If 'nil', all tasks had zero duration. The 'actual' value only accounts for committed hours, while the 'potential' value includes both committed and not-committed hours (thus, subject to change).
A report that hides zero total rows will not include task durations on those rows. A report that shows them will include task durations on those rows.
Total duration of all tasks in all rows; number of hours remaining (may be negative for overrun) after all hours worked in tasks with non-zero duration. If 'nil', all tasks had zero duration. The 'actual' value only accounts for committed hours, while the 'potential' value includes both committed and not-committed hours (thus, subject to change).
A report that hides zero total rows will not include task durations on those rows. A report that shows them will include task durations on those rows.
Read-only array of actual user and task objects based on the IDs. Not all users or tasks may be included, depending on security settings.
Class method equivalent of “label” above. Returns the label for the given frequency, which must be a valid index into the array defined by the FREQUENCY constant. See also “labels” below.
# File lib/track_record_report.rb, line 901 def self.label( frequency ) return Report::FREQUENCY[ frequency ][ :label ] end
Class method which returns an array of labels for various report frequencies. The index into the array indicates the frequency index.
# File lib/track_record_report.rb, line 908 def self.labels return Report::FREQUENCY.map { | f | f[ :label ] } end
Create a new Report. In the first parameter, pass the current TrackRecord user. In the next parameter pass nothing to use default values for a 'new report' view form, or pass “params[ :report ]” (or similar) to create using a params hash from a 'new report' form submission.
# File lib/track_record_report.rb, line 496 def initialize( current_user, params = nil ) super() @current_user = current_user @range_start = nil @range_end = nil @range_week_start = nil @range_week_end = nil @range_month_start = nil @range_month_end = nil @frequency = 0 @customer_sort_field = 'title' @project_sort_field = 'title' @task_sort_field = Task::DEFAULT_SORT_COLUMN @task_grouping = :default @task_filter = 'all' @include_totals = true @include_committed = false @include_not_committed = false @exclude_zero_rows = false @exclude_zero_cols = false # Totals only - ignores zero com/non-com columns in CSV exports for total/com/non-com column groups with non-zero totals @rows = {} @column_totals = {} @column_ranges = [] @column_keys = [] @tasks = Task.scoped @filtered_tasks = Task.scoped @task_ids = [] @active_task_ids = [] @inactive_task_ids = [] @users = [] @filtered_users = [] @reportable_user_ids = [] unless ( params.nil? ) # Adapted from ActiveRecord::Base "attributes=", Rails 2.1.0 # on 29-Jun-2008. attributes = params.dup attributes.stringify_keys! attributes.each do | key, value | if ( key.include?( '(' ) ) raise( "Multi-parameter attributes are not supported." ) else begin send( key + "=", value ) rescue # Ignore errors end end end end end
Build the 'tasks' array if '#active_task_ids' is updated externally. The result will be the sum of existing inactive and updated active task IDs.
# File lib/track_record_report.rb, line 595 def active_task_ids=( ids ) @provided_active_task_ids = map_raw_ids( ids ) assign_actual_tasks_from_provided_ids() end
Virtual accessor for the active task list, which just filters the master task list and returns the result (less RAM than keeping dual lists and not speed-critical as not used that often in practice).
# File lib/track_record_report.rb, line 562 def active_tasks @tasks.where( :active => true ) end
Only useful for compiled reports - see “compile”.
Returns the number of columns the report generated, taking into account zero total columns and the “hide zero columns” flag.
# File lib/track_record_report.rb, line 813 def column_count @relevant_column_keys.count end
Helper method which returns a user-displayable column heading appropriate for the report type. Pass a column range (see e.g. “#each_column_range”). Optionally pass “true” to replace “
” with a space (if present) in the heading, for a plain text alternative.
# File lib/track_record_report.rb, line 925 def column_heading( range, plain_text = false ) heading = send( @frequency_data[ :column ], range ) plain_text ? heading.gsub( "
", " " ) : heading end
Helper method which returns a user-displayable column title to be shown once, next to or near per-column headings (see “#column_heading”), appropriate for the report type.
# File lib/track_record_report.rb, line 916 def column_title return @frequency_data[ :title ] end
Return the total value as a Calculator subclass instance for the column identified by the given date-based key.
Will return 'nil' if no such non-zero total column exists (yet). Only really useful if the report has been compiled by calling “compile”.
# File lib/track_record_report.rb, line 672 def column_total( date_based_key ) @column_totals[ date_based_key ] end
Return the total value as a Cell instance for the column identified by the given date-based key. A Cell class is used so that per-user column totals can be maintained. Think of each column total as a cell in an extra total-based row of the report.
Will create an empty zero-hour Cell subclass instance in passing if necessary. Usually only useful during the process of report compilation (see “compile”) but may have specialist external uses too.
# File lib/track_record_report.rb, line 686 def column_total!( date_based_key ) @column_totals[ date_based_key ] ||= Cell.new end
Compile the report. Returns 'self' for convenience.
# File lib/track_record_report.rb, line 869 def compile apply_filters() return if ( @filtered_tasks.count.zero? ) # Nothing to do... rationalise_dates() set_columns() sort_and_group() initialize_sections( @filtered_tasks, Section ) # TrackRecordSections::SectionsMixin calculate() self end
Helper method which returns a user-displayable range describing the total date range for this report.
# File lib/track_record_report.rb, line 893 def display_range return heading_total( @range ) end
Only useful for compiled reports - see “compile”.
Iterate over the cells in a given Row or Row subclass. Calls a caller-supplied block, passing the cell instance. Will pass 'nil' for cells with a zero hour total (it is much faster to check for 'nil' many times than instantiate a useless cell object with zero values for its hours).
A 'nil' input parameter value is allowed. The caller block will be invoked with 'nil' for each cell that would have been on the row if it existed.
# File lib/track_record_report.rb, line 729 def each_cell_for( row ) # :yields: cell # We use zero column total values to indicate that an associated entry # in the column ranges should be omitted. if ( row.nil? ) @relevant_column_keys.each { yield( nil ) } else @relevant_column_keys.each do | date_based_key | yield( row.cell( date_based_key ) ) end end end
Only useful for compiled reports - see “compile”.
Results of calling here are undefined unless the report parameters tell it to include per-user details during compilation.
For a given user and row, return cells for that row giving the column based totals for just that specific user. Zero columns are skipped if “hide zero columns” is enabled.
This is similar to just doing “#each_cell_for( row )” and calling the cell's “user_total” method manually for whatever your current User of interest happens to be, but calling here takes care of that for you and deals with 'nil' cleanly in passing.
The given User instance must be valid. The given Row instance may be 'nil'. If so, either the block is called with 'nil' for each column if “hide zero rows” is disabled, else it isn't called at all.
# File lib/track_record_report.rb, line 796 def each_cell_for_user_on_row( user, row ) # :yields: cell_for_user if ( row.nil? ) @relevant_column_keys.each { yield( nil ) } unless ( @exclude_zero_rows ) else user_id_str = user.id.to_s @relevant_column_keys.each do | date_based_key | yield( row.cell( date_based_key ).try( :user_total, user_id_str ) ) end end end
Only useful for compiled reports - see “compile”.
Iterate over all columns, calling a caller-supplied block with a Range object describing the Date range for each one, inclusive of column start/end. Always calls with a valid Range, never 'nil'.
# File lib/track_record_report.rb, line 836 def each_column_range # :yields: column_range # We use zero column total values to indicate that an associated entry # in the column ranges should be omitted. @column_keys.each_with_index do | date_based_key, linear_column_index | next if ( @exclude_zero_cols and not @column_totals.has_key?( date_based_key ) ) yield @column_ranges[ linear_column_index ] end end
Only useful for compiled reports - see “compile”.
Iterate over all column totals, calling the caller-supplied block with a Calculator subclass describing the total for that column. If the total is zero and 'hide zero columns' is disabled, your block will be called with 'nil' for that column.
# File lib/track_record_report.rb, line 824 def each_column_total # :yields: column_total @relevant_column_keys.each do | date_based_key | yield( @column_totals[ date_based_key ] ) end end
Only useful for compiled reports - see “compile”.
Iterate over all defined rows, yielding a caller supplied block passing it the row and task in task list order. If “hide zero rows” is set, only defined rows and tasks with non-zero totals will be sent. Otherwise, you will be called with a row value of 'nil' and the task for which the row total was zero (it is much faster to check for 'nil' many times than instantiate a useless row object with zero values for its hours).
# File lib/track_record_report.rb, line 710 def each_row # :yields: row, task @filtered_tasks.each do | task | row = @rows[ task.id.to_s ] yield( row, task ) unless ( @exclude_zero_rows and row.nil? ) end end
Only useful for compiled reports - see “compile”.
Iterate over the list of users passed in the constructor, calling a caller-supplied block with the User instances in the order they were originally given. If “hide zero columns” is set, then only users with a non-zero overall total will be included.
# File lib/track_record_report.rb, line 863 def each_user # :yields: user @filtered_users.each { | user | yield( user ) } end
Only useful for compiled reports - see “compile”.
Results of calling here are undefined unless the report parameters tell it to include per-user details during compilation.
For each user associated with a row, call the caller's block with the User instance and the Calculator subclass giving the user's total on that row. Will call with “nil” for each user in the row is “nil”, unless “hide zero rows” is enabled, in which case if given nil it will not call the block at all.
The block is only called for a non-nil row if a user has a non-zero total, or if “hide zero rows” is disabled, in which case the user total instance may be 'nil' (but the User is always valid).
See also “#each_cell_for_user_on_row”.
# File lib/track_record_report.rb, line 760 def each_user_on_row( row ) # :yields: user, user_total_for_row # Not 'filtered_users' - those are aimed at the columns in reports # where each *column* represents a user, so hide-zero-columns will # result in hidden users. Here, we're looking at the per-user # breakdown for a single task on a row. If hide-zero-cols is set # but hide-zero-rows is not, we don't want to hide users here. if ( row.nil? ) @users.each { | user | yield( user, nil ) } unless ( @exclude_zero_rows ) else @users.each do | user | user_total_for_row = row.user_total( user.id.to_s ) yield( user, user_total_for_row ) unless ( @exclude_zero_rows and user_total_for_row.nil? ) end end end
Set the '#frequency_data' field when 'frequency' is updated externally.
# File lib/track_record_report.rb, line 629 def frequency=( freq ) @frequency = freq.to_i @frequency_data = FREQUENCY[ @frequency ].dup end
Only useful for compiled reports - see “compile”.
Returns 'true' if the report has any non-zero hours counted for any of its rows, else 'false' (all tasks counted to zero hours within the other report constraints/parameters).
# File lib/track_record_report.rb, line 696 def has_rows? not @rows.empty? end
Build the 'tasks' array if '#inactive_task_ids' is updated externally. The result will be the sum of existing active and updated inactive task IDs.
# File lib/track_record_report.rb, line 603 def inactive_task_ids=( ids ) @provided_inactive_task_ids = map_raw_ids( ids ) assign_actual_tasks_from_provided_ids() end
As above, but for inactive tasks.
# File lib/track_record_report.rb, line 568 def inactive_tasks @tasks.where( :active => false ) end
Helper method which returns a user-displayable label describing this report type. There's a class method equivalent below.
# File lib/track_record_report.rb, line 886 def label return @frequency_data[ :label ] end
Does the column at the given index only contain partial results, because it is the first or last column in the overall range and that range starts or ends somewhere in the middle? Returns 'true' if so, else 'false'.
# File lib/track_record_report.rb, line 934 def partial_column?( range ) if ( range == @column_ranges.first ) @column_first_partial elsif ( range == @column_ranges.last ) @column_last_partial else false end end
# File lib/track_record_report.rb, line 638 def range_end=( value ); @range_end = value; rationalise_dates(); end
# File lib/track_record_report.rb, line 643 def range_month_end=( value ); @range_month_end = value; rationalise_dates(); end
# File lib/track_record_report.rb, line 642 def range_month_start=( value ); @range_month_start = value; rationalise_dates(); end
# File lib/track_record_report.rb, line 644 def range_one_month=( value ); @range_one_month = value; rationalise_dates(); end
# File lib/track_record_report.rb, line 641 def range_one_week=( value ); @range_one_week = value; rationalise_dates(); end
Rationalise overall date ranges whenever a related field is updated externally.
# File lib/track_record_report.rb, line 637 def range_start=( value ); @range_start = value; rationalise_dates(); end
# File lib/track_record_report.rb, line 640 def range_week_end=( value ); @range_week_end = value; rationalise_dates(); end
# File lib/track_record_report.rb, line 639 def range_week_start=( value ); @range_week_start = value; rationalise_dates(); end
Build the 'user' array if '#reportable_user_ids' is updated externally.
# File lib/track_record_report.rb, line 610 def reportable_user_ids=( ids ) ids ||= [] ids = ids.values if ( ids.is_a?( Hash ) or ids.is_a?( HashWithIndifferentAccess ) ) @reportable_user_ids = ids.map { | str | str.to_i } # Security - if the current user is restricted they might try and hack # the form to view other user details. if ( @current_user.restricted? ) @reportable_user_ids = [ @current_user.id ] unless( @reportable_user_ids.empty? ) end # Turn the list of (now numeric) user IDs into user objects. @users = User.where( :id => @reportable_user_ids ) end
Return the row defined for the given task ID, specified as a string.
Will return 'nil' if no such row exists. Only really useful if the report has been compiled by calling “compile”.
# File lib/track_record_report.rb, line 651 def row( task_id_str ) @rows[ task_id_str ] end
Return the row defined for the given task ID, specified as a string.
Will create an empty Row instance in passing if necessary. Usually only useful during the process of report compilation (see “compile”) but may have specialist external uses too.
# File lib/track_record_report.rb, line 661 def row!( task_id_str ) @rows[ task_id_str ] ||= Row.new end
Build the 'tasks' array if '#task_ids' is updated externally.
# File lib/track_record_report.rb, line 587 def task_ids=( ids ) @provided_task_ids = map_raw_ids( ids ) assign_actual_tasks_from_provided_ids() end
Set a task array directly (will always be filtered according to security settings for the current user).
# File lib/track_record_report.rb, line 575 def tasks=( array ) unless array.nil? || array.count.zero? @tasks = Task.where( :id => array ) else @tasks = Task.scoped end update_internal_task_lists() end
Only useful for compiled reports - see “compile”.
Returns the number of users the report considered, taking into account zero total users and the “hide zero columns” flag.
# File lib/track_record_report.rb, line 852 def user_count @filtered_users.count end


How to create an NPC using RAthena's scripting:
map_name,x_cord,y_cord,npc_facing_direction -TAB- script -TAB- NPC Name#HiddenName -TAB- Sprite ID,{
mes "[NPC Name]";
mes "Hello World";
close;
}
Common Script Commands:
- mes
usage: mes "<message>";
info: displays a line of text in an NPC's dialog window.
- close
usage: close;
info: displays a "Close" button in an NPC's dialog window.
- next
usage: next;
info: displays a "Next" button in an NPC's dialog window.
- getitem
usage: getitem <item id>,<amount>;
info: gives the player an item.
- delitem
usage: delitem <item id>,<amount>;
info: deletes an item from the player.
Script Command Documentation:
All the script commands in RAthena can be found
here.
How to enable your NPC:
- Save it as a text file in your /npc/custom/ folder.
- Open /npc/scripts_custom.conf
- Add the following line:
npc: npc/custom/name_of_your_text_file.txt
- Save and close.


A city in Monaco, which is famous because of Grand Casino.
A strategy that using randomly sampling to approach realistic.
The Maokov Chain has to be a "regular" Markov Chain.
A Markov Chain converges to a unique stationary distibution regardless of starting state.
A Markov Chain is regular if there exists k such that, for every x, x', the probability of getting from x to x' in exactly k steps is > 0.
As the time goes by, the probability from starting state to the specific state will converge to a fixed number.
limk→∞Pk=1π
P will never converge.
Every two states are connected.
At least one state has a self-trasition path.
Goal: To obtain a sequence which is under the stationary distribution.
Mixed means the distribution from different windows are close enough.
Easy to impelement.
Lots of parameters.
Slow to converge.
Hard to tell whether it is mixing.
If all probability are greater than 0, the Gibbs chain must be ragular, which doesn't imply fast mixing.
Easy to impelement.
Compution is easy, because the non-neighbor bode transition probability are canceled out.
When the probability are biased, mixing could take a long time or forever.
Only applies if we can sample from product of probability.
Approach the theoretical distribution with Monte Carlo(random sampling), no more the most probable trapping.
Both of MCMC and Gibbs sampling are special cases of Metropolis-Hasting[2, 4] algorithm, they are easier to implement and understood. But converge in a longer time for some cases.
Thanks for your attention.


Subclasses must define a class variable called _API_CALL with the name
of its underlying mail sending API call.
| def google.appengine.api.mail._EmailMessageBase.__init__ |
( |
|
self, |
|
|
|
mime_message = None , |
|
|
|
kw |
|
) |
| |
Initialize Email message.
Creates new MailMessage protocol buffer and initializes it with any
keyword arguments.
Args:
mime_message: MIME message to initialize from. If instance of
email.Message.Message will take ownership as original message.
kw: List of keyword properties as defined by PROPERTIES.
| def google.appengine.api.mail._EmailMessageBase.__setattr__ |
( |
|
self, |
|
|
|
attr, |
|
|
|
value |
|
) |
| |
Property setting access control.
Controls write access to email fields.
Args:
attr: Attribute to access.
value: New value for field.
Raises:
ValueError: If provided with an empty field.
AttributeError: If not an allowed assignment field.
| def google.appengine.api.mail._EmailMessageBase.bodies |
( |
|
self, |
|
|
|
content_type = None |
|
) |
| |
Iterate over all bodies.
Yields:
Tuple (content_type, payload) for html and body in that order.
| def google.appengine.api.mail._EmailMessageBase.check_initialized |
( |
|
self | ) |
|
Check if EmailMessage is properly initialized.
Test used to determine if EmailMessage meets basic requirements
for being used with the mail API. This means that the following
fields must be set or have at least one value in the case of
multi value fields:
- Subject must be set.
- A recipient must be specified.
- Must contain a body.
- All bodies and attachments must decode properly.
This check does not include determining if the sender is actually
authorized to send email for the application.
Raises:
Appropriate exception for initialization failure.
InvalidAttachmentTypeError: Use of incorrect attachment type.
MissingRecipientsError: No recipients specified in to, cc or bcc.
MissingSenderError: No sender specified.
MissingSubjectError: Subject is not specified.
MissingBodyError: No body specified.
PayloadEncodingError: Payload is not properly encoded.
UnknownEncodingError: Payload has unknown encoding.
UnknownCharsetError: Payload has unknown character set.
| def google.appengine.api.mail._EmailMessageBase.initialize |
( |
|
self, |
|
|
|
kw |
|
) |
| |
Keyword initialization.
Used to set all fields of the email message using keyword arguments.
Args:
kw: List of keyword properties as defined by PROPERTIES.
| def google.appengine.api.mail._EmailMessageBase.is_initialized |
( |
|
self | ) |
|
Determine if EmailMessage is properly initialized.
Returns:
True if message is properly initializes, otherwise False.
| def google.appengine.api.mail._EmailMessageBase.original |
( |
|
self | ) |
|
Get original MIME message from which values were set.
| def google.appengine.api.mail._EmailMessageBase.send |
( |
|
self, |
|
|
|
make_sync_call = apiproxy_stub_map.MakeSyncCall |
|
) |
| |
Send email message.
Send properly initialized email message via email API.
Args:
make_sync_call: Method which will make synchronous call to api proxy.
Raises:
Errors defined in this file above.
| def google.appengine.api.mail._EmailMessageBase.to_mime_message |
( |
|
self | ) |
|
Generate a MIMEMultitype message from EmailMessage.
Calls MailMessageToMessage after converting self to protocol
buffer. Protocol buffer is better at handing corner cases
than EmailMessage class.
Returns:
MIMEMultitype representing the provided MailMessage.
Raises:
Appropriate exception for initialization failure.
InvalidAttachmentTypeError: Use of incorrect attachment type.
MissingSenderError: No sender specified.
MissingSubjectError: Subject is not specified.
MissingBodyError: No body specified.
| def google.appengine.api.mail._EmailMessageBase.ToProto |
( |
|
self | ) |
|
Convert mail message to protocol message.
Unicode strings are converted to UTF-8 for all fields.
This method is overriden by EmailMessage to support the sender fields.
Returns:
MailMessage protocol version of mail message.
Raises:
Passes through decoding errors that occur when using when decoding
EncodedPayload objects.
| def google.appengine.api.mail._EmailMessageBase.update_from_mime_message |
( |
|
self, |
|
|
|
mime_message |
|
) |
| |
Copy information from a mime message.
Set information of instance to values of mime message. This method
will only copy values that it finds. Any missing values will not
be copied, nor will they overwrite old values with blank values.
This object is not guaranteed to be initialized after this call.
Args:
mime_message: email.Message instance to copy information from.
Returns:
MIME Message instance of mime_message argument.
| tuple google.appengine.api.mail._EmailMessageBase.ALLOWED_EMPTY_PROPERTIES |
|
static |
| tuple google.appengine.api.mail._EmailMessageBase.PROPERTIES |
|
static |
The documentation for this class was generated from the following file:
- code/googleappengine-read-only/python/google/appengine/api/mail.py


Instalation¶
Prerequisits¶
Before you install make sure that you have python 3.7.1 installed. We recommedn that you use a pythin virtualenv such as venv or pyenv to isolate the python installed packages as not to interfere with the system instalation
We do at this time not have a conda package
Instalation of Cloudmesh 4¶
Cloudmesh 4 can be installed from pip, or from source. For now we recommend the source instalation
$ git clone https://github.com/cloudmesh-community/cm.git
$ cd cm
$ pip install -r requirements.txt
$ pip install .
Instalation of mongod¶
In case your computer does not yet have mongo db installed, you acn easily install it with our admin
command. It will not only install mongo, but also add the path to your .bash_* file. To install it simply say
@ cm4 admin mongo install
It will download and install the version we use.


jl777c
31-Dec-19 01:47 PM
the datablobs will be able to be of any size, so it would be up to a higher level layer to decide what info to propagate
cant get much better than 1% extra bandwidth
so if it is data that all the fullnodes need to know, then it seems any higher level layers would create condensed views, summaries, etc. as a service on top of the raw datablobs
so the maker mm2 nodes would run a DEX p2p node and then all these nodes are 99% in sync 99% of the time, which is sufficient for orderbook purpose. actual ordermatch and swap would use the normal libtorrent and other tunneling type of mechanisms
phones would become a client to the next layer up from the raw datablobs
in a highly connected network, the extra bandwidth is a lot higher
for example if all nodes in an 11 node network have 8 or 9 connections, the efficiency is pretty bad... about 2x excess banwidth. but this is really only an issue for such small networks. for any normal sized network, having 8 peers is just fine and the extra bandwidth will come way down.
the starting point is N times the bandwidth used, where N is the average number of peers, so 3x is actually not bad. i think i can tweak it a bit and get it below 2x, but really it seems ok as there is no overall bandwidth issue with so few nodes and speed of propagation is also desired


--- date: 2010-02-09T00:00:00Z published: true title: socialmod - social media moderation url: /2010/02/09/socialmod-social-media-moderation/ ---
We moderate - our team of Mechanical Turkers moderate your content.
I was just looking for this the other day for a client - this is perfect.


# Python Development
## Werken met Pipenv
#### Kristof Michiels
## Wat is Pipenv?
- Managing multiple Python projects with their own third-party packages can get complicated. It is best practice to use a virtual environment to sandbox the requirements for each of your projects.
- Enter pipenv, the official recommended package management tool for Python
- It handles both installation and virtual environments to help you manage your Python dependencies.
## Wat is Pipenv?
- Python comes with all sorts of things built-in, but:
- There are a huge amount of third-party packages
- Python ships with pip to install packages, but:
- Everything is installed into the interpreter’s domain
- Virtual environments are a best practice
- pipenv combines pip and virtualenv to help you control your package space
## Packages installeren met pip
## Packages installeren met pip
- Python has a long history of package management with several different
tools
- Current built-in mechanism is pip
- Unless you're using a virtual environment, packages are installed to a
common place associated with your interpreter
## PyPi
Screenshot van Pypi
## Pip
```
pip3.10 install colorama
pip3.10 install colorama==0.3.3
pip3.10 freeze
pip3.10 uninstall colorama
pip3.10 install requests
pip3.10 freeze > requirements.txt
pip3.10 install -r requirements.txt
```
Laatste versie wordt verwijderd!
Dependencies worden mee geïnstalleerd
## Problemen met pip
- Need a virtual env
- Using requirements.txt:
- If you only include the parent packages your build isn't deterministic
- If you pin everything, you have to manage sub-dependency upgrades manually
- No easy way to have multiple environments
- pipenv addresses many of these issues
- Uses pip and virtualenv underneath to manage your packages
## pipenv
```
mkdir using-pipenv
cd using-pipenv
pip3.10 install pipenv
pipenv shell
pipenv install requests
exit
```
pipenv is a third-party package
pipenv shell creates a venv if it doesn't find One
Pipfile en Pipfile.lock = replacement for requirements.txt
exit to get out of the shell
## More pipenv tools
```
pipenv open colorama
pipenv graph
pipenv check
pipenv run pipenv check (run command as if you are in the shell)
pipenv install --dev colorama
pipenv uninstall --all-dev
pipenv uninstall --all
pipenv --venv (shows where your virtual environment lives)
pipenv --where (show where the root of your project is)
```
open opens the package in your editor. Behavior will be editor dependent
## Environment variables
pipenv will automatically source a .env file in your top level dir
Useful for storing specific environment variables
```
SOME_ENV_CONFIG=some_value
SOME_OTHER_ENV_CONFIG=some_other_value
## Distributing your code
If you aren't using a package
- Replace requirements.txt witt Pipfile
- Running pipenv shell in a dir with a requirements.txt file will automatically convert the file
- careful with fully pinned dependencies
- Install from the lockfile: pipenv install --ignore-pipfile
- install dev packages: pipenv install --dev
If you are using a package
- Use setup.py and install_requires keyword for minimumm requirements
- Include pipfile with your distro
- Pipfile will contain same thing as install_requires
- Can install minimum: pipenv install -e
- Include Pipfile.lock with your distro for fully reproducable environment
## Python Development - Werken met Pipenv - kristof.michiels01@ap.be


Grading Methods
The grading method you choose will determine how your students' grades
are calculated.
- Simple: For each problem in the set, if the student gets it
correct in any of his attempts, 1 point is awarded. If he fails to
ever do so, 0 points are awarded. The maximum grade a student may recieve
is the number of problems in the set.
- Deduct Retries: For each problem in the set, the student recieves
some fractional grade equal to the number of correct attempts he had
divided by the number of total attempts. The sum of this value for each
problem is his total grade. The maximum grade a student may recieve is the
number of problems in the set.
If you have another grading method you wish to use, please describe it in
an email to the author of this module. He
will gladly include it in future versions.


A B C D E F G H I K L M N O P Q R S T U V W X Y
All Classes All Packages
All Classes All Packages
All Classes All Packages
G
- generatePenStatus(String, int, boolean) - Method in class view.commandgenerator.CommandGenerator
-
Returns a command string instructing a particular turtle to change its pen status (penup/pendown)
- generateSetHeading(String, int, double) - Method in class view.commandgenerator.CommandGenerator
-
Returns a command string instructing a particular turtle to rotate to a particular heading
- generateSetXY(String, int, int, int) - Method in class view.commandgenerator.CommandGenerator
-
Returns a command string instructing a particular turtle to change position.
- getActiveTurtles() - Method in class model.Model
- getAllTurtles() - Method in class model.Model
- getColorFromIndex(int) - Method in class view.selector.features.ColorPicker
-
Takes in an index and returns the JavaFX color associated with that index in the palette.
- getCommand() - Method in class controller.UserCommand
-
returns the command list
- getCommandList() - Method in interface model.ListModel
- getCommandList() - Method in class model.Model
- getControllablePane() - Method in class view.mainpane.ControlPaneElement
-
Returns the Node representing this control pane element.
- getCoordinates() - Method in class model.Turtle
- getCurrentVariables() - Method in class controller.Controller
-
returns the current variables
- getCurrentVariables() - Method in interface controller.interfaces.ControlInterface
- getCurrentVariables() - Method in interface view.FeatureReceiver
-
Asks the observers for a map of current variables
- getCurrentVariables() - Method in class view.View
-
Asynchronously asks the backend for the most recent list of user variables
- getCustomCommands() - Method in class controller.CustomCommands
-
returns all the custom commands.
- getCustomCommands() - Method in interface controller.interfaces.CommandOperator
- getCustomCommands() - Method in class controller.Operator
-
returns all custom commands to the controller
- getDefaultString() - Method in class view.selector.features.variabletextfeature.CommandHistory
-
Returns the default string if no command history is found
- getDefaultString() - Method in class view.selector.features.variabletextfeature.UserCommands
-
Returns the default string if no user commands are found
- getDefaultString() - Method in class view.selector.features.variabletextfeature.VariableTextFeature
- getFile() - Method in class view.selector.features.FileSelector
-
Returns the selected file as a raw file type.
- getFileAsString() - Method in class view.selector.features.FileSelector
-
Before returning to the user, converts the contents of the file to a string for easy manipulation.
- getHeading() - Method in class model.Turtle
- getHeading(String) - Method in class model.Model
- getHeading(String) - Method in interface model.StaticModel
- getHistory() - Method in class controller.Controller
-
returns the history of commands run
- getHistory() - Method in interface controller.interfaces.ControlInterface
- getHistory() - Method in interface view.FeatureReceiver
-
Asks observer for most recent history
- getHistory() - Method in class view.View
-
Called to asynchronously ask the backend for the most up to date command history
- getImageFromIndex(int) - Method in class view.selector.features.ImagePicker
-
Takes in a turtle index and returns the image object associated with that index.
- getInstance() - Static method in class utilities.GridPositionComparator
-
Ensures that only one instance of GridPositionComparator is ever created.
- getInstance() - Static method in class view.commandgenerator.CommandGenerator
-
Ensures that only one instance of the CommandGenerator class is ever created.
- getIsShowing() - Method in class model.Turtle
- getListCommands() - Method in interface controller.interfaces.CommandOperator
- getListCommands() - Method in class controller.Operator
-
returns the list of commands from the model to the controller
- getNode() - Method in class view.commandline.BasicCommand
-
Returns the javafx Node containing the entire pane.
- getNode() - Method in interface view.mainpane.MainPane
-
Returns node containing the entire main pane
- getNode() - Method in class view.mainpane.MainVisualiser
-
Method from the MainPane interface.
- getNode() - Method in interface view.selector.Feature
- getNode() - Method in class view.selector.features.HelpMenu
-
Returns node containing the pane.
- getNode() - Method in class view.selector.features.LanguageSelector
-
Allows the front end to get the root node representing the JavaFX object(s) for selecting language.
- getNode() - Method in class view.selector.features.SceneSettings
- getNode() - Method in class view.selector.features.variabletextfeature.EnvironmentVariables
-
Gets the root node to display the user defined variables.
- getNode() - Method in class view.selector.features.variabletextfeature.VariableTextFeature
-
Returns the node containing the pane.
- getNode() - Method in class view.selectorpane.BasicSelectorPane
-
Returns the node containing the visual display of the selector pane.
- getNode() - Method in interface view.selectorpane.SelectorPane
-
Returns the Node containing the entire visual display of the selector pane
- getNode() - Method in class view.statepane.BasicSingleTurtleState
-
Return the Node containing the graphical view of the turtle state.
- getNode() - Method in class view.statepane.BasicStatePane
-
Returns the node containing the graphical view of the pane.
- getNode() - Method in interface view.statepane.SingleTurtleState
-
Returns the Node containing the graphical view of the turtle state.
- getNode() - Method in interface view.statepane.StatePane
-
Returns the Node containing the graphical view of the state pane
- getNode() - Method in class view.View
-
Returns the root node of all the front end display
- getNode() - Method in class workspaces.BackgroundPicker
- getNode() - Method in class workspaces.DefaultValueSelector
-
return - Returns the top node of the JavaFX tree for displaying the controls for choosing pen color, image, and pens size.
- getNode() - Method in class workspaces.LanguagePicker
- getNode() - Method in class workspaces.PalletteMaker
- getNode() - Method in class workspaces.WorkspaceBuilder
- getNode() - Method in interface workspaces.WorkspaceSetting
- getNumArguments(String) - Method in class controller.ArgumentType
-
returns the number of arguments a given operation needs
- getNumTurtles() - Method in class model.Model
- getPane() - Method in class view.mainpane.PaneProperties
-
Returns the node containing the pane.
- getPaneName() - Method in class view.mainpane.PaneProperties
-
Returns the pane name.
- getParams(int, Stack<String>, String) - Method in interface controller.interfaces.ParamOperator
- getParams(int, Stack<String>, String) - Method in class controller.Operator
-
returns all the possible parameters of a given operation.
- getParamSize() - Method in class controller.UserCommand
-
returns the amount of parameters needed for this command
- getPenColor() - Method in class model.Turtle
- getPenColor(String) - Method in class model.Model
- getPenColor(String) - Method in interface model.StaticModel
- GetPenColor - Class in controller.operations
-
returns the pen color
- GetPenColor(Model) - Constructor for class controller.operations.GetPenColor
- getPenSize() - Method in class model.Turtle
- getPenUp(String) - Method in class model.Model
- getPenUp(String) - Method in interface model.StaticModel
- getShape() - Method in class model.Turtle
- getShape(String) - Method in class model.Model
- GetShape - Class in controller.operations
-
returns the shape index
- GetShape(Model) - Constructor for class controller.operations.GetShape
- getSymbol(String) - Method in class controller.ProgramParser
-
Returns language's type associated with the given text if one exists
- getTurtle() - Method in class view.turtlearena.BasicTurtle
-
Returns Node containing graphical view of turtle
- getTurtleArena() - Method in class view.turtlearena.BasicTurtleArena
- getTurtleArena() - Method in interface view.turtlearena.TurtleArena
-
Returns Node containing graphical view of turtle arena.
- getTurtleShow(String) - Method in class model.Model
- getTurtleShow(String) - Method in interface model.StaticModel
- getUserCommands() - Method in class controller.Controller
-
returns all of the user commands
- getUserCommands() - Method in interface view.FeatureReceiver
-
Asks observer for most recent set of user defined commands
- getUserCommands() - Method in class view.View
-
Asynchronously asks the backend for the most recent user commands
- getVar(String) - Method in class controller.ArgumentType
-
returns the value of a given variable, or just the variable itself, if the map does not contain this key
- getVars() - Method in class controller.ArgumentType
-
returns all the variables, used for the front end to display the variable types
- getVars() - Method in interface controller.interfaces.CommandOperator
- getVars() - Method in class controller.Operator
-
returns all the variables to the controller
- getX() - Method in class utilities.Coordinate
- getX(String) - Method in class model.Model
- getX(String) - Method in interface model.StaticModel
- getY() - Method in class utilities.Coordinate
- getY(String) - Method in class model.Model
- getY(String) - Method in interface model.StaticModel
- GreaterThan - Class in controller.operations
-
returns 1 if the first param is greater than the second, 0 else
- GreaterThan(Model) - Constructor for class controller.operations.GreaterThan
- GridPositionComparator - Class in utilities
-
Comparator to compare Points which represent grid position in the selector pane.
- GROUP_START - Static variable in class controller.OperationFinder
- GROUP_START - Static variable in class controller.Operator
- GroupStart - Class in controller.specialOperations
-
applies a given command to a grouping of constants
- GroupStart(ArgumentType, ControlParser, ParamOperator) - Constructor for class controller.specialOperations.GroupStart
All Classes All Packages


“Simple can be harder than complex: You have to work hard to get your thinking clean to make it simple. But it’s worth it in the end because once you get there, you can move mountains.”
― Steve Jobs
SIMPLE WEB DEVELOPMENT
"Simple can be harder than complex: You have to work hard to get your thinking clean to make it simple."


ntp.conf
Section: File Formats (5)Index Return to Main Contents
NAME
ntp.conf - Server OptionsFollowing is a description of the configuration commands in NTPv4. There are two classes of commands, configuration commands that configure an association with a remote server, peer or reference clock, and auxilliary commands that specify environmental variables that control various related operations.
CONFIGURATION COMMANDS
The various modes are determined by the command keyword and the required IP address. Addresses are classed by type as (s) a remote server or peer (IPv4 class A, B and C), (b) the broadcast address of a local interface, (m) a multicast address (IPv4 class D), or (r) a reference clock address (127.127.x.x). The options that can be used with these commands are listed below.
If the Basic Socket Interface Extensions for IPv6 (RFC-2553) is detected, support for the IPv6 address family is generated in addition to the default support of the IPv4 address family. IPv6 addresses can be identified by the presence of colons ":" in the address field. IPv6 addresses can be used almost everywhere where IPv4 addresses can be used, with the exception of reference clock addresses, which are always IPv4. Note that in contexts where a host name is expected, a -4 qualifier preceding the host name forces DNS resolution to the IPv4 namespace, while a -6 qualifier forces DNS resolution to the IPv6 namespace.
There are three types of associations: persistent, preemptable and ephemeral. Persistent associations are mobilized by a configuration command and never demobilized. Preemptable associations, which are new to NTPv4, are mobilized by a configuration command which includes the prempt flag and are demobilized by timeout or error. Ephemeral associations are mobilized upon arrival of designated messages and demobilized by timeout or error.
-
- server address [options ...]
- peer address [options ...]
- broadcast address [options ...]
- manycastclient address [options ...]
-
These four commands specify the time server name or address to be used and the mode in which to operate. The address can be either a DNS name or a IP address in dotted-quad notation. Additional information on association behavior can be found in the Association Management page.
-
- server
- For type s and r addresses (only), this command normally mobilizes a persistent client mode association with the specified remote server or local reference clock. If the preempt flag is specified, a preemptable association is mobilized instead. In client mode the client clock can synchronize to the remote server or local reference clock, but the remote server can never be synchronized to the client clock. This command should NOT be used for type b or m addresses.
- peer
- For type s addresses (only), this command mobilizes a persistent symmetric-active mode association with the specified remote peer. In this mode the local clock can be synchronized to the remote peer or the remote peer can be synchronized to the local clock. This is useful in a network of servers where, depending on various failure scenarios, either the local or remote peer may be the better source of time. This command should NOT be used for type b, m or r addresses.
- broadcast
- For type b and m addresses (only), this command mobilizes a persistent broadcast mode association. Multiple commands can be used to specify multiple local broadcast interfaces (subnets) and/or multiple multicast groups.  In broadcast mode the local server sends periodic broadcast messages to a client population at the address specified, which is usually the broadcast address on (one of) the local network(s) or a multicast address assigned to NTP. The IANA has assigned the multicast group address IPv4 <IP_ADDRESS> and IPv6 ff05::101 (site local) exclusively to NTP, but other nonconflicting addresses can be used to contain the messages within administrative boundaries. Ordinarily, this specification applies only to the local server operating as a sender; for operation as a broadcast client, see the broadcastclient or multicastclient commands below.
- manycastclient
- For type m addresses (only), this command mobilizes a preemptable manycast client mode association for the multicast group address specified. In this mode a specific address must be supplied which matches the address used on the manycastserver command for the designated manycast servers. The NTP multicast address <IP_ADDRESS> assigned by the IANA should NOT be used, unless specific means are taken to avoid spraying large areas of the Internet with these messages and causing a possibly massive implosion of replies at the sender. The manycastclient command specifies that the host is to operate in client mode with the remote servers that are discovered as the result of broadcast/multicast messages. The client broadcasts a request message to the group address associated with the specified address and specifically enabled servers respond to these messages. The client selects the servers providing the best time and continues as with the server command. The remaining servers are discarded as if never heard.
-
COMMAND OPTIONS
-
- autokey
- All packets sent to and received from the server or peer are to include authentication fields encrypted using the autokey scheme described in the Authentication Options page. This option is valid with all commands.
- burst
- When the server is reachable, send a burst of eight packets instead of the usual one. The packet spacing is normally 2 s; however, the spacing between the first and second packets can be changed with the calldelay command to allow additional time for a modem or ISDN call to complete. This option is valid with only the server command and is a recommended option with this command when the maxpoll option is 11 or greater.
- iburst
- When the server is unreachable, send a burst of eight packets instead of the usual one. The packet spacing is normally 2 s; however, the spacing between the first and second packets can be changed with the calldelay command to allow additional time for a modem or ISDN call to complete. This option is valid with only the server command and is a recommended option with this command.
- key key
- All packets sent to and received from the server or peer are to include authentication fields encrypted using the specified key identifier with values from 1 to 65534, inclusive. The default is to include no encryption field. This option is valid with all commands.
- minpoll minpoll
- maxpoll maxpoll
- These options specify the minimum and maximum poll intervals for NTP messages, in seconds as a power of two. The maximum poll interval defaults to 10 (1,024 s), but can be increased by the maxpoll option to an upper limit of 17 (36.4 h). The minimum poll interval defaults to 6 (64 s), but can be decreased by the minpoll option to a lower limit of 3 (8 s). These option are valid only with the server and peer commands.
- noselect
- Marks the server as unused, except for display purposes. The server is discarded by the selection algorithm. This option is valid only with the server and peer commands.
- preempt
- Specifies the association as preemptable rather than the default persistent. This option is valied only with the server command.
- prefer
- Marks the server as preferred. All other things being equal, this host will be chosen for synchronization among a set of correctly operating hosts. See the Mitigation Rules and the prefer Keyword page for further information. This option is valid only with the server and peer commands.
- true
- Force the association to assume truechimer status; that is, always survive the selection and clustering algorithms. This option can be used with any association, but is most useful for reference clocks with large jitter on the serial port and precision pulse-per-second (PPS) signals. Caution: this option defeats the algorithms designed to cast out falsetickers and can allow these sources to set the system clock. This option is valid only with the server and peer commands.
- ttl ttl
- This option is used only with broadcast server and manycast client modes. It specifies the time-to-live ttl to use on broadcast server and multicast server and the maximum ttl for the expanding ring search with manycast client packets. Selection of the proper value, which defaults to 127, is something of a black art and should be coordinated with the network administrator.
- version version
- Specifies the version number to be used for outgoing NTP packets. Versions 1-4 are the choices, with version 4 the default. This option is valid only with the server, peer and broadcast commands.
AUXILLIARY COMMANDS
-
- broadcastclient [novolley]
- This command enables reception of broadcast server messages to any local interface (type b) address. Ordinarily, upon receiving a message for the first time, the broadcast client measures the nominal server propagation delay using a brief client/server exchange with the server, after which it continues in listen-only mode. If the novolley keyword is present, the exchange is not used and the value specified in the broadcastdelay command is used or, if the broadcastdelay command is not used, the default 4.0 ms. Note that, in order to avoid accidental or malicious disruption in this mode, both the server and client should operate using symmetric key or public key authentication as described in the Authentication Options page. Note that the novolley keyword is incompatible with public key authentication.
- manycastserver address [...]
- This command enables reception of manycast client messages to the multicast group address(es) (type m) specified. At least one address is required. The NTP multicast address <IP_ADDRESS> assigned by the IANA should NOT be used, unless specific means are taken to limit the span of the reply and avoid a possibly massive implosion at the original sender. Note that, in order to avoid accidental or malicious disruption in this mode, both the server and client should operate using symmetric key or public key authentication as described in the Authentication Options page.
- multicastclient address [...]
- This command enables reception of multicast server messages to the multicast group address(es) (type m) specified. Upon receiving a message for the first time, the multicast client measures the nominal server propagation delay using a brief client/server exchange with the server, then enters the broadcast client mode, in which it synchronizes to succeeding multicast messages. Note that, in order to avoid accidental or malicious disruption in this mode, both the server and client should operate using symmetric key or public key authentication as described in the Authentication Options page.
BUGS
The syntax checking is not picky; some combinations of ridiculous and even hilarious options and modes may not be detected.
SEE ALSO
ntpd(8), ntp_auth(5), ntp_mon(5), ntp_acc(5), ntp_clock(5), ntp_misc(5)
Primary source of documentation: /usr/share/doc/ntp-*
This file was automatically generated from HTML source.
Index
This document was created by man2html, using the manual pages.
Time: 05:34:00 GMT, December 24, 2015


--- layout: post title: drunk duck date: '2014-01-10T07:30:49+01:00' categories: - Sketches picture_url: https://film-Storyboards.tumblr.com/post/72866582536/drunk-duck ---
Drunk duck.


This page is part of a frozen web archive of this mailing list.
You can still navigate around this archive, but know that no new mails have been added to it since July of 2016.
The new archive includes all the mails that are in this frozen archive plus all new mails that have been sent to the list since it was migrated to the new archives.


This part is more important even that the selection of the country in terms of the daily life because sometimes changing of neighbourhood sometimes give you the sensation than you are changing to a completely different country.
In France normally difficult neighborhoods are isolated from the rest of the town and if they are in the center of the town are very surveilled as Marseille, but it is necessary look in internet to match this neighborhood with the help of google maps : features of the place, parks, kind of buildings, etc.
Also you should look if there is a lot of traffic or noise and night life around the area, depending of what we are looking for and contrast the opinions with the rest of the neighbours before rent.
Firstly before arrive to the town is find a hostel, to start to find a apartment. For that it must check places in website.
In addition to look the opinnions and choose an option not very expensive because sometimes find the house and flatmates it is not something easy and takes time.
For find the right hostel I recommend the next website:
it has a lot of valorations than it will help you to choose for one or another place..
You should look the distance to the commercial centers or restaurants and the amount of them.
If there is not a lot and the neighbourhood is a medium profile the prices will be highs because is is not competition in this sector.
Look that next point will be to make a list of apartments to visit and create the corresponding diary.
This diary wont be over hte 6 daily apartments because you could not match correctly.
There are so much details to observe that it will be difficult to memorise.
In the case you will try the election of sharing an apartment, than I consider the best option if you are new and alone there because if you rent you should have a compromise with the landlord to stay 6 months at least. Best option is do it with local people of the country than can guide you in a lot of aspects as shopping, find courses or jobs, night parties... Furthermore you will improve the language with less effort. Choose people with a similar profile to us will be also a good option. It could help to find the some things we are looking for and we can live more relaxed and comfortable.
A mixture of nationalities will be better also because you could learn about different points of view and know new cultures. You could expand your mind a lot in different ways and earn experience for all aspects of the life. Even taking the house only as a place to sleep it will affect you and you never will know how much time you will be at the house.
If you have never shared appartment best option is share with someone of your area or your country who share some common interest with you because even as a sleep area will be something important for be comfortable to affront new goals. You never know how long have you been in the house.However you always could find in other websites than get a phone o contact a person could be for free as www.leboncoin.fr o vivastreet.com
When you are choosing an apartment it is necessary to lok some factors regardless of the area and the price and squaring with price :
For rent aparments the website more important is the next: www.seloger.com//
To fix our camp base we hould have in account distances to :
All this you should be the least committed with the price we are looking for.
Best it is always adjust the price with our research but adding a additional 25% to the maximum price available, because it could be apartment which fill all our requirements and leave our price range.
Sometimes the prices have included a % of negotiation where you could adjust after that in the price range.
By this way if they are expensive and they are there yet it could be because they don't have enough visits and if the room is there a lot of time without be renting the landlord will be more flexible and generous to the time to negotiate.
Normally the landlords exige a deposit than never will exceed the month and half of the price of renting.
With that we should pay the day of enter as maximum twice and half the rent apartment taking in acount the price of the present month.
Most of the countries the landlors are very exigent with that and even if the rules are less kind to the landlord it is something we must take attention if we don´t like to start with problems.
Appearances lie and lot of times so you never get carried away by first feelings about the landlords because starting is always the same and he will seem nice but he could always do something bad in the moment you don't think about and you will pay something you don't have broken.
When you will leave the apartment most of the times the contracts are between equals and nothing is official it should be recommendable speak about that one month before.
Sometimes landlord try to steal at last moment with any excuse. If we don't trust enough we could resist the maximum time without pay to rent the deposit and maybe we dont pay for two weeks until they say to us to left the house.
This way maximum they steal us will be two weeks.
© 2016 - All Rights Reserved - Diseñada por Sergio López Martínez
El sitio se mantiene gracias a la publicidad, por favor Desactiva Adblock para seguir navegando
He desactivado Adblock


A LITTLE PRINCESS (1995) A film review by James Berardinelli Copyright 1995 James Berardinelli
RATING (0 TO 10): 7.3
U.S. Availability: wide release 5/19/95 Running Length: 1:38 MPAA Classification: G (War scenes) Theatrical Aspect Ratio: 1.85:1
Cast: Liesel Matthews, Eleanor Bron, Liam Cunningham, Vanessa Lee Chester, Errol Sitahal Director: Alfonso Cuaron Producer: Mark Johnson Screenplay: Richard LaGravanese and Elizabeth Chandler based on the novel SARA CREWE by Frances Hodgson Burnett Cinematography: Emmanuel Lubezki Music: Patrick Doyle U.S. Distributor: Warner Brothers
A "family movie" is often loosely defined as a motion picture that, aimed at children, is likely to bore parents to tears. Numerous examples leap to mind, most of them from Walt Disney Studios, a production company that holds the curious distinction of making animated features that are more mature than live-action ones. However, A LITTLE PRINCESS isn't from Disney, it's from Warner Brothers. Most importantly, it's not only suitable for consumption by those over age 10, it's actually enjoyable.
The film is based on the popular 1888 children's book SARA CREWE by Frances Hodgson Burnett. This is the third filmed version, following 1917's A LITTLE PRINCESS with Mary Pickford and 1939's, which featured Shirley Temple. While not as good as 1993's THE SECRET GARDEN (another movie based on a Hodgson story), this new version of A LITTLE PRINCESS can more than hold its own in a sea of overly-commercial attempts to grab children's hard-earned money. Unfortunately, since it actually takes the time to develop characters and a story while eschewing explosions, it's unlikely to garner much at the box office. Witness the performance of similar recent films if you doubt that.
The main character is Sara, played delightfully by newcomer Liesel Matthews. The motherless girl has grown up in India, a land where "the air is so hot you can taste it." In fact, the scenes there are filmed with warmth and color to emphasize the beauty as seen through Sara's eyes. The year is 1914, and World War One is in full swing. When Sara's father (played by Liam Cunningham), a British army captain, decides to rejoin his regiment, he deposits Sara in an exclusive girls' school in New York City. Run by the nasty Miss Minchin (Eleanor Bron), this is a place that stifles creativity in favor of etiquette and strict rules. Sara is immediately unhappy there, but her fortunes go from bad to worse when her father is declared dead in Europe and all his assets are seized by the Indian government. Sara is left penniless and forced to work as a servant to earn her keep.
A LITTLE PRINCESS is an engaging tale about self-respect and the importance of imagination. In India, Sara is told that "all girls are princesses", and this is a lesson she clings to when forced to mop floors and serve meals. Even dressed in rags and living in a bare attic room, she is special -- and so are all the others around her, regardless of whether they're nice, snobbish, or bossy. Princess or pauper, there's no difference in Sara's eyes.
She also accepts magic. In her father's words, "Magic has to be believed -- that's the only way it's real." Her stories about Princess Sita and Prince Rama not only enchant her schoolmates, but they give Sara an escape route once her father has been declared dead. She uses fantasy as a tonic for her bleak reality without ever losing sight of what's happening around her. Together with her friend Becky (Vanessa Lee Chester), she ventures to amazing places without leaving her room.
To be sure, A LITTLE PRINCESS has a few missteps. For one thing, Miss Minchin could have been played with less villainy, but younger viewers will probably appreciate the one-dimensional nastiness. There are also a few moments of overt sweetness, but these are easily forgiven. Actually, there's very little this movie has to apologize for -- it's the rare kind of picture that can be enjoyed by viewers of eight, eighteen, and eighty.
- James Berardinelli<EMAIL_ADDRESS>The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Mwanri suspends vacations for extension officers
by By Guardian ReporterTABORA Regional Commissioner Aggrey Mwanri has suspended annual leaves for agricultural extension officers of all ranks and called on them to use the farming season by going to farmers to educate them on better farming methods.
He gave the directives yesterday in Igunga District when speaking to farmers cultivating various crops including cotton accompanied by extension officers from district councils in Tabora Region.
Mwanri said basically leaves are public servants right, but he has to issue a caution because farmers activities depend on directives from them for a more productive farming.
"The rains have started and already farmers have started cultivation…you have to go to them to educate them on better farming techniques…and it is forbidden for an extension officer to travel outside his work station, unless it is an emergency,” he said.
He said if farmers cannot be assisted they will continue to use poor, old fashioned farming methods and end up farming for subsistence instead of boosting crop production for raw materials for the envisaged industrial development.
He said during the rainy season, an extension officer is the same as a teacher during class – he also cannot go on leave when schools are not yet closed.
He said soon after farming activities end the officials will be allowed to take their leaves.


Settings
Interested In
Age Range
Distance
Location
Next
Profile
Pictures
add
remove
About
Education
Complete


[{(open-or-create-a-file)}]
[{(open)}]
[{(new-mind-map)}]
[{(new-deck-of-cards)}]
[{(new-to-do-list)}]
[{(recent-files)}]


hi, I want to execute my custom propagator after all other propagators. How can I do that? With regards Debdeep -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://www.ps.uni-sb.de/pipermail/users/attachments/20090506/7e5ce511/attachment.htm>


protected val appDirectory: File
returns the directory where the code for package "com.example.foo.app" is found


RT @darinrs: Concert for #cascadiaruby with The Doubleclicks, NewRelic https://vine.co/v/hdFQqaTjI5l
10/21/2013, 10:58:18 PM
Favs: 0
Retweets: 0
link--- layout: tweet ---
RT @darinrs: Concert for #cascadiaruby with The Doubleclicks, NewRelic https://vine.co/v/hdFQqaTjI5l
10/21/2013, 10:58:18 PM
Favs: 0
Retweets: 0
link


- In pediatrics, hypotension is almost always treated by correcting hypovolemia or decreasing the anesthetic agent
- Ensure oxygenation/ ventilation
- Turn anesthetic agents down or off
- Check cuff size and transducer position
- If severe and/or persistent, consider placing arterial line if not already present
Etiology (Pick One):
- Expand circulating blood volume (administer fluids rapidly, consider albumin)
- Trendelenberg position
- Place or replace IV; consider intraosseous line
- Causes: hypovolemia, vasodilation, impaired venous return, tamponade, and pulmonary embolism`
- Start inotrope infusion (dopamine, epinephrine), as needed
- Consider calcium IV
- Review ECG for rhythm disturbances or ischemia
- Send ABG, Hgb, electrolytes
- Causes: negative inotropic drugs (anesthetic agents), arrhythmias, HYPOXIA, and heart failure (ischemia)
- Start vasopressor infusion: phenylephrine, norepinephrine
- Administer steroids for endocrine crisis
- Causes: drug-induced vasodilation, sepsis, ANAPHYLAXIS, endocrine crisis


Even more websites all about website templates on Just Web Templates.
If you're looking for beautiful and professionally made templates you can find them Template Beauty.
You can remove any link to our websites from this template you're free to use the template without linking back to us.


During this important transitional year, the emphasis is on personal responsibility and ethical judgment. In addition to preparing for their bar or bat mitzvahs, seventh graders continue to learn about Jewish history, the Holocaust and other ethnic genocides, and participate in Tikkun Olam (repairing the world) activities.
Classes meet Wednesdays from 3:45 to 5:45 and for ten Sunday mornings for ethical decision-making classes. Bar and bat mitzvah tutoring begins approximately six months prior to the date.
Parents continue to participate with their children. Seventh grade families, for example, volunteer monthly at a local church soup kitchen, preparing and serving meals to groups of 25-30 people. Parents also join their children to hear from a variety of speakers, including Holocaust survivors and representatives from social service agencies, such as the Mass. Coalition for the Homeless.
To learn more about the Shir Tikvah religious school, contact Bailee Star, education director, or call her at<PHONE_NUMBER>.


| DOSE: |
repeated |
oral |
Codeine |
(daily) |
After a long-ago youth spent in researching and enjoying mind-enhancing substances, I'm now a solid citizen - a middle-aged parent of two small children, happily married, gainfully employed, and not even drinking alcohol, let alone drugging for fun. But many years of rheumatoid arthritis and now osteoarthritis make most days rather painful if I wish to do anything silly like walk or work. NSAIDs like ibuprofen make gastric and duodenal ulcers and acetaminophen doesn't work, which leaves ... opiates. I have the wonderful good fortune to have a physician who is not afraid of prescribing long-term and in sufficient strength to get the job done, so I take 120 mg every 3-4 hours around the clock - and I am able to enjoy my life. There's no high, just pain relief and the serenity that comes from knowing I'll be able to care for my family and do my jobs.
I have to pay attention to the gastrointestinal effects of opiates long-term, and I take docusate calcium 240 mg three or four times a day along with a fiber-based supplement, and all is well on the loo.
Thank heaven medical practice is finally realizing that chronic pain can indeed be treated with chronic opiates, without turning the patient into an 'addict' or a zombie. If I were to find myself without codeine for 72 hours or so, I'd feel like I have the bad flu, but that's all, and I've survived worse. In fact, sometimes I do without just to judge my baseline without, to make sure I'm dosing myself appropriately.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


Home
Explore
About
My Photosynths
Upload
Create Account
Sign In
By:
Add to Favorites
Favorited
Embed
Facebook
Report Abuse
Share
Copy and paste this link into email or IM
Embed:
Description
Stats
Synthy
100%
Views
0
Favorites
0
Photos
3
Date Created
8/22/2008
Related Photosynths
Views
Comments


Communication between players takes three forms: Voicechat, Mail, and Instant Messages. Voicechat and Instant Messages are done through the communication window which appears in the lower left corner of the game interface.
Mail messages, which is similar to email, can be sent between players. Mail messages allow players to setup trade agreements, talk, and declare war. The "Mail" button appears on the left side of the Game Interface, and it opens up the Mail Interface.
Voicechat allows players to communicate verbally using a headset (or speakers and a microphone). Players who have
speakers but no microphone can hear, but not respond to other players. Chosing who you are talking to is done through
the "Voicechat/IM Target" button.
Ignoring Players:
It's possible to turn-off incoming voicechat from other players (all of them or one in particular).
This is done through the "Speaker/Microphone Settings" button.
Instant messages to other players are the simplest way to talk to other players. Messages that you send will appear
on other player's screens, overlaying the map. Like voicechat, the "Voicechat/IM Target" button determines who will
receive the message. Instant Messages are limited to 250 characters, and cannot be used to setup trade agreements.
Instant Messages can be sent by clicking on the "Write IM" button (which opens up a text editing area), typing a message, and
pressing [Enter].
The "Instant Message Log" provides a way to go back and read past IMs. This is especially useful because of the fact that
Instant Messages appear on player's screens for a limited time.
Related Topics:
(None)


"The Aulos Ensemble have produced in this recording one of the most elegant and delightful collections of Christmas music to have graced my stereo system in some years. Beautifully programmed and masterfully played, this is a disc of rather constant delights."
MusicWeb International
"The suites showcase a generous diversity of styles and genres, introduced by the hauntingly sparse musettes and soaringly beautiful menuet from Les fêtes d'Hébé and concluding with the majestic chaconne and jubilant tambourins from Les Indes galantes. The performers exhibit a masterfully controlled sense of ensemble throughout, and their precisely articulated delivery breathes with Rameau's subtly dramatic phrasal undulations. The effect is exquisite."
Early Music America
"The quintet by JC Bach opens the program and it is enthralling. The other chamber works are also joyously good. The sound is warm and the playing spirited and sensitive. There's no doubt that this is music you'll be eager to play or hear again."
American Record Guide
"The members of the Aulos Ensemble understand these subtleties in Telemann better than any other group in my experience as a listener and reviewer. Immersing themselves in the Telemann style helps them bring out the distinguishing features that turn a simple dance or galanterie into a character piece. The Aulos musicians show us that the old boy really knew what he was doing!"
Audio Video Club of Atlanta
Just Released


Please wait...
{{planDetails.frequency_desc}}
RS {{planDetails.unit_cost}}
Vechicle Listing
Premium Listing
Loan Offers
Contact Records upto 100
Reports
Payment Process
Trial


This is code:
#include <stdio.h> int main(int argc, char** argv) { printf("Hello, World!\n"); }
This is not code.


Hill Climbing Method
• Identify the dividend and divisor.
• Split divisor, dividend into two parts : upper & lower fields. Dividend lower field has same number of digits as the divisor lower field.
• Go forward with only 2 steps :
-Climb Down by Division, Subtraction
-Climb Up by Carrying over Remainder.
• Subtract, but do not divide in the final descent. This is the remainder of the division operation..
Example : 493 / 12 = ?


Motivation
Wouldn't it be nice if you could input new colleagues to be listed?
🥺
- A wishful user
Goal
Implement a form that addresses the above problem!
Wouldn't it be nice if you could input new colleagues to be listed?
🥺
- A wishful user
Implement a form that addresses the above problem!


Here is the list of your applications. Once the status changes from "Pending" to "Accepted" you should contact a staff member of the server your applied for, they will provide additional details.
{{ ign }}
{{ discordName }}
{{ memberlength }}
{{ languageKnown }}
{{ whyyou }}
{{ ign }}
{{ discordName }}
{{ age }}
{{ memberlength }}
{{ playtime }}
{{ serverNumber }}
{{ modMajors }}
{{ scenarioRacist }}
{{ scenarioSpawn }}
{{ previousStaff }}
{{ whyyou }}
{{ ign }}
{{ discordName }}
{{ age }}
>{{ memberlength }}
{{ playtime }}
{{ previousStaff }}
{{ whyyou }}
{{ ign }}
{{ discordName }}
{{ age }}
>{{ memberlength }}
{{ playtime }}
{{ previousStaff }}
{{ whyyou }}


{% load i18n %}
{% translate "you don't have any campaign."|capfirst %}
{% translate "you don't have any session."|capfirst %}


System, AHB and APB busses clocks configuration functions.
More...
System, AHB and APB busses clocks configuration functions.
===============================================================================
##### System, AHB and APB busses clocks configuration functions #####
===============================================================================
[..]
This section provide functions allowing to configure the System, AHB, APB1 and
APB2 busses clocks.
(#) Several clock sources can be used to drive the System clock (SYSCLK): HSI,
HSE and PLL.
The AHB clock (HCLK) is derived from System clock through configurable
prescaler and used to clock the CPU, memory and peripherals mapped
on AHB bus (DMA, GPIO...). APB1 (PCLK1) and APB2 (PCLK2) clocks are derived
from AHB clock through configurable prescalers and used to clock
the peripherals mapped on these busses. You can use
"RCC_GetClocksFreq()" function to retrieve the frequencies of these clocks.
-@- All the peripheral clocks are derived from the System clock (SYSCLK) except:
(+@) I2S: the I2S clock can be derived either from a specific PLL (PLLI2S) or
from an external clock mapped on the I2S_CKIN pin.
You have to use RCC_I2SCLKConfig() function to configure this clock.
(+@) RTC: the RTC clock can be derived either from the LSI, LSE or HSE clock
divided by 2 to 31. You have to use RCC_RTCCLKConfig() and RCC_RTCCLKCmd()
functions to configure this clock.
(+@) USB OTG FS, SDIO and RTC: USB OTG FS require a frequency equal to 48 MHz
to work correctly, while the SDIO require a frequency equal or lower than
to 48. This clock is derived of the main PLL through PLLQ divider.
(+@) IWDG clock which is always the LSI clock.
(#) For STM32F405xx/407xx and STM32F415xx/417xx devices, the maximum frequency
of the SYSCLK and HCLK is 168 MHz, PCLK2 84 MHz and PCLK1 42 MHz. Depending
on the device voltage range, the maximum frequency should be adapted accordingly:
+-------------------------------------------------------------------------------------+
| Latency | HCLK clock frequency (MHz) |
| |---------------------------------------------------------------------|
| | voltage range | voltage range | voltage range | voltage range |
| | 2.7 V - 3.6 V | 2.4 V - 2.7 V | 2.1 V - 2.4 V | 1.8 V - 2.1 V |
|---------------|----------------|----------------|-----------------|-----------------|
|0WS(1CPU cycle)|0 < HCLK <= 30 |0 < HCLK <= 24 |0 < HCLK <= 22 |0 < HCLK <= 20 |
|---------------|----------------|----------------|-----------------|-----------------|
|1WS(2CPU cycle)|30 < HCLK <= 60 |24 < HCLK <= 48 |22 < HCLK <= 44 |20 < HCLK <= 40 |
|---------------|----------------|----------------|-----------------|-----------------|
|2WS(3CPU cycle)|60 < HCLK <= 90 |48 < HCLK <= 72 |44 < HCLK <= 66 |40 < HCLK <= 60 |
|---------------|----------------|----------------|-----------------|-----------------|
|3WS(4CPU cycle)|90 < HCLK <= 120|72 < HCLK <= 96 |66 < HCLK <= 88 |60 < HCLK <= 80 |
|---------------|----------------|----------------|-----------------|-----------------|
|4WS(5CPU cycle)|120< HCLK <= 150|96 < HCLK <= 120|88 < HCLK <= 110 |80 < HCLK <= 100 |
|---------------|----------------|----------------|-----------------|-----------------|
|5WS(6CPU cycle)|150< HCLK <= 168|120< HCLK <= 144|110 < HCLK <= 132|100 < HCLK <= 120|
|---------------|----------------|----------------|-----------------|-----------------|
|6WS(7CPU cycle)| NA |144< HCLK <= 168|132 < HCLK <= 154|120 < HCLK <= 140|
|---------------|----------------|----------------|-----------------|-----------------|
|7WS(8CPU cycle)| NA | NA |154 < HCLK <= 168|140 < HCLK <= 160|
+---------------|----------------|----------------|-----------------|-----------------+
(#) For STM32F42xxx/43xxx/469xx/479xx devices, the maximum frequency of the SYSCLK and HCLK is 180 MHz,
PCLK2 90 MHz and PCLK1 45 MHz. Depending on the device voltage range, the maximum
frequency should be adapted accordingly:
+-------------------------------------------------------------------------------------+
| Latency | HCLK clock frequency (MHz) |
| |---------------------------------------------------------------------|
| | voltage range | voltage range | voltage range | voltage range |
| | 2.7 V - 3.6 V | 2.4 V - 2.7 V | 2.1 V - 2.4 V | 1.8 V - 2.1 V |
|---------------|----------------|----------------|-----------------|-----------------|
|0WS(1CPU cycle)|0 < HCLK <= 30 |0 < HCLK <= 24 |0 < HCLK <= 22 |0 < HCLK <= 20 |
|---------------|----------------|----------------|-----------------|-----------------|
|1WS(2CPU cycle)|30 < HCLK <= 60 |24 < HCLK <= 48 |22 < HCLK <= 44 |20 < HCLK <= 40 |
|---------------|----------------|----------------|-----------------|-----------------|
|2WS(3CPU cycle)|60 < HCLK <= 90 |48 < HCLK <= 72 |44 < HCLK <= 66 |40 < HCLK <= 60 |
|---------------|----------------|----------------|-----------------|-----------------|
|3WS(4CPU cycle)|90 < HCLK <= 120|72 < HCLK <= 96 |66 < HCLK <= 88 |60 < HCLK <= 80 |
|---------------|----------------|----------------|-----------------|-----------------|
|4WS(5CPU cycle)|120< HCLK <= 150|96 < HCLK <= 120|88 < HCLK <= 110 |80 < HCLK <= 100 |
|---------------|----------------|----------------|-----------------|-----------------|
|5WS(6CPU cycle)|120< HCLK <= 180|120< HCLK <= 144|110 < HCLK <= 132|100 < HCLK <= 120|
|---------------|----------------|----------------|-----------------|-----------------|
|6WS(7CPU cycle)| NA |144< HCLK <= 168|132 < HCLK <= 154|120 < HCLK <= 140|
|---------------|----------------|----------------|-----------------|-----------------|
|7WS(8CPU cycle)| NA |168< HCLK <= 180|154 < HCLK <= 176|140 < HCLK <= 160|
|---------------|----------------|----------------|-----------------|-----------------|
|8WS(9CPU cycle)| NA | NA |176 < HCLK <= 180|160 < HCLK <= 168|
+-------------------------------------------------------------------------------------+
(#) For STM32F401xx devices, the maximum frequency of the SYSCLK and HCLK is 84 MHz,
PCLK2 84 MHz and PCLK1 42 MHz. Depending on the device voltage range, the maximum
frequency should be adapted accordingly:
+-------------------------------------------------------------------------------------+
| Latency | HCLK clock frequency (MHz) |
| |---------------------------------------------------------------------|
| | voltage range | voltage range | voltage range | voltage range |
| | 2.7 V - 3.6 V | 2.4 V - 2.7 V | 2.1 V - 2.4 V | 1.8 V - 2.1 V |
|---------------|----------------|----------------|-----------------|-----------------|
|0WS(1CPU cycle)|0 < HCLK <= 30 |0 < HCLK <= 24 |0 < HCLK <= 22 |0 < HCLK <= 20 |
|---------------|----------------|----------------|-----------------|-----------------|
|1WS(2CPU cycle)|30 < HCLK <= 60 |24 < HCLK <= 48 |22 < HCLK <= 44 |20 < HCLK <= 40 |
|---------------|----------------|----------------|-----------------|-----------------|
|2WS(3CPU cycle)|60 < HCLK <= 84 |48 < HCLK <= 72 |44 < HCLK <= 66 |40 < HCLK <= 60 |
|---------------|----------------|----------------|-----------------|-----------------|
|3WS(4CPU cycle)| NA |72 < HCLK <= 84 |66 < HCLK <= 84 |60 < HCLK <= 80 |
|---------------|----------------|----------------|-----------------|-----------------|
|4WS(5CPU cycle)| NA | NA | NA |80 < HCLK <= 84 |
+-------------------------------------------------------------------------------------+
(#) For STM32F410xx/STM32F411xE devices, the maximum frequency of the SYSCLK and HCLK is 100 MHz,
PCLK2 100 MHz and PCLK1 50 MHz. Depending on the device voltage range, the maximum
frequency should be adapted accordingly:
+-------------------------------------------------------------------------------------+
| Latency | HCLK clock frequency (MHz) |
| |---------------------------------------------------------------------|
| | voltage range | voltage range | voltage range | voltage range |
| | 2.7 V - 3.6 V | 2.4 V - 2.7 V | 2.1 V - 2.4 V | 1.8 V - 2.1 V |
|---------------|----------------|----------------|-----------------|-----------------|
|0WS(1CPU cycle)|0 < HCLK <= 30 |0 < HCLK <= 24 |0 < HCLK <= 18 |0 < HCLK <= 16 |
|---------------|----------------|----------------|-----------------|-----------------|
|1WS(2CPU cycle)|30 < HCLK <= 64 |24 < HCLK <= 48 |18 < HCLK <= 36 |16 < HCLK <= 32 |
|---------------|----------------|----------------|-----------------|-----------------|
|2WS(3CPU cycle)|64 < HCLK <= 90 |48 < HCLK <= 72 |36 < HCLK <= 54 |32 < HCLK <= 48 |
|---------------|----------------|----------------|-----------------|-----------------|
|3WS(4CPU cycle)|90 < HCLK <= 100|72 < HCLK <= 96 |54 < HCLK <= 72 |48 < HCLK <= 64 |
|---------------|----------------|----------------|-----------------|-----------------|
|4WS(5CPU cycle)| NA |96 < HCLK <= 100|72 < HCLK <= 90 |64 < HCLK <= 80 |
|---------------|----------------|----------------|-----------------|-----------------|
|5WS(6CPU cycle)| NA | NA |90 < HCLK <= 100 |80 < HCLK <= 96 |
|---------------|----------------|----------------|-----------------|-----------------|
|6WS(7CPU cycle)| NA | NA | NA |96 < HCLK <= 100 |
+-------------------------------------------------------------------------------------+
-@- On STM32F405xx/407xx and STM32F415xx/417xx devices:
(++) when VOS = '0', the maximum value of fHCLK = 144MHz.
(++) when VOS = '1', the maximum value of fHCLK = 168MHz.
[..]
On STM32F42xxx/43xxx/469xx/479xx devices:
(++) when VOS[1:0] = '0x01', the maximum value of fHCLK is 120MHz.
(++) when VOS[1:0] = '0x10', the maximum value of fHCLK is 144MHz.
(++) when VOS[1:0] = '0x11', the maximum value of f is 168MHz
[..]
On STM32F401x devices:
(++) when VOS[1:0] = '0x01', the maximum value of fHCLK is 64MHz.
(++) when VOS[1:0] = '0x10', the maximum value of fHCLK is 84MHz.
On STM32F410xx/STM32F411xE devices:
(++) when VOS[1:0] = '0x01' the maximum value of fHCLK is 64MHz.
(++) when VOS[1:0] = '0x10' the maximum value of fHCLK is 84MHz.
(++) when VOS[1:0] = '0x11' the maximum value of fHCLK is 100MHz.
You can use PWR_MainRegulatorModeConfig() function to control VOS bits.
◆ RCC_GetClocksFreq()
Returns the frequencies of different on chip clocks; SYSCLK, HCLK, PCLK1 and PCLK2.
- Note
- The system frequency computed by this function is not the real frequency in the chip. It is calculated based on the predefined constant and the selected clock source:
-
If SYSCLK source is HSI, function returns values based on HSI_VALUE(*)
-
If SYSCLK source is HSE, function returns values based on HSE_VALUE(**)
-
If SYSCLK source is PLL, function returns values based on HSE_VALUE(**) or HSI_VALUE(*) multiplied/divided by the PLL factors.
-
(*) HSI_VALUE is a constant defined in stm32f4xx.h file (default value 16 MHz) but the real value may vary depending on the variations in voltage and temperature.
-
(**) HSE_VALUE is a constant defined in stm32f4xx.h file (default value 25 MHz), user has to ensure that HSE_VALUE is same as the real frequency of the crystal used. Otherwise, this function may have wrong result.
-
The result of this function could be not correct when using fractional value for HSE crystal.
- Parameters
-
| RCC_Clocks | pointer to a RCC_ClocksTypeDef structure which will hold the clocks frequencies. |
- Note
- This function can be used by the user application to compute the baudrate for the communication peripherals or configure other parameters.
-
Each time SYSCLK, HCLK, PCLK1 and/or PCLK2 clock changes, this function must be called to update the structure's field. Otherwise, any configuration based on this function will be incorrect.
- Return values
-
◆ RCC_GetSYSCLKSource()
| uint8_t RCC_GetSYSCLKSource |
( |
void |
| ) |
|
Returns the clock source used as system clock.
- Parameters
-
- Return values
-
| The | clock source used as system clock. The returned value can be one of the following:
- 0x00: HSI used as system clock
- 0x04: HSE used as system clock
- 0x08: PLL used as system clock (PLL P for STM32F446xx devices)
- 0x0C: PLL R used as system clock (only for STM32F446xx devices)
|
◆ RCC_HCLKConfig()
| void RCC_HCLKConfig |
( |
uint32_t |
RCC_SYSCLK | ) |
|
Configures the AHB clock (HCLK).
- Note
- Depending on the device voltage range, the software has to set correctly these bits to ensure that HCLK not exceed the maximum allowed frequency (for more details refer to section above "CPU, AHB and APB busses clocks configuration functions")
- Parameters
-
| RCC_SYSCLK | defines the AHB clock divider. This clock is derived from the system clock (SYSCLK). This parameter can be one of the following values:
- RCC_SYSCLK_Div1: AHB clock = SYSCLK
- RCC_SYSCLK_Div2: AHB clock = SYSCLK/2
- RCC_SYSCLK_Div4: AHB clock = SYSCLK/4
- RCC_SYSCLK_Div8: AHB clock = SYSCLK/8
- RCC_SYSCLK_Div16: AHB clock = SYSCLK/16
- RCC_SYSCLK_Div64: AHB clock = SYSCLK/64
- RCC_SYSCLK_Div128: AHB clock = SYSCLK/128
- RCC_SYSCLK_Div256: AHB clock = SYSCLK/256
- RCC_SYSCLK_Div512: AHB clock = SYSCLK/512
|
- Return values
-
◆ RCC_PCLK1Config()
| void RCC_PCLK1Config |
( |
uint32_t |
RCC_HCLK | ) |
|
Configures the Low Speed APB clock (PCLK1).
- Parameters
-
| RCC_HCLK | defines the APB1 clock divider. This clock is derived from the AHB clock (HCLK). This parameter can be one of the following values:
- RCC_HCLK_Div1: APB1 clock = HCLK
- RCC_HCLK_Div2: APB1 clock = HCLK/2
- RCC_HCLK_Div4: APB1 clock = HCLK/4
- RCC_HCLK_Div8: APB1 clock = HCLK/8
- RCC_HCLK_Div16: APB1 clock = HCLK/16
|
- Return values
-
◆ RCC_PCLK2Config()
| void RCC_PCLK2Config |
( |
uint32_t |
RCC_HCLK | ) |
|
Configures the High Speed APB clock (PCLK2).
- Parameters
-
| RCC_HCLK | defines the APB2 clock divider. This clock is derived from the AHB clock (HCLK). This parameter can be one of the following values:
- RCC_HCLK_Div1: APB2 clock = HCLK
- RCC_HCLK_Div2: APB2 clock = HCLK/2
- RCC_HCLK_Div4: APB2 clock = HCLK/4
- RCC_HCLK_Div8: APB2 clock = HCLK/8
- RCC_HCLK_Div16: APB2 clock = HCLK/16
|
- Return values
-
◆ RCC_SYSCLKConfig()
| void RCC_SYSCLKConfig |
( |
uint32_t |
RCC_SYSCLKSource | ) |
|
Configures the system clock (SYSCLK).
- Note
- The HSI is used (enabled by hardware) as system clock source after startup from Reset, wake-up from STOP and STANDBY mode, or in case of failure of the HSE used directly or indirectly as system clock (if the Clock Security System CSS is enabled).
-
A switch from one clock source to another occurs only if the target clock source is ready (clock stable after startup delay or PLL locked). If a clock source which is not yet ready is selected, the switch will occur when the clock source will be ready. You can use RCC_GetSYSCLKSource() function to know which clock is currently used as system clock source.
- Parameters
-
| RCC_SYSCLKSource | specifies the clock source used as system clock. This parameter can be one of the following values:
- RCC_SYSCLKSource_HSI: HSI selected as system clock source
- RCC_SYSCLKSource_HSE: HSE selected as system clock source
- RCC_SYSCLKSource_PLLCLK: PLL selected as system clock source (RCC_SYSCLKSource_PLLPCLK for STM32F446xx devices)
- RCC_SYSCLKSource_PLLRCLK: PLL R selected as system clock source only for STM32F446xx devices
|
- Return values
-


| TestClick | ||
| open | chrome://selenium-ide/content/tests/functional/startRecording.html | |
| open | chrome://selenium-ide/content/tests/functional/aut/test_multi_level_frame2.html | |
| selectFrame | frame2 | |
| selectFrame | theFrame | |
| clickAndWait | link | |
| selectFrame | relative=up | |
| selectFrame | relative=up | |
| selectFrame | frame3 | |
| selectFrame | theFrame | |
| clickAndWait | link | |
| open | chrome://selenium-ide/content/tests/functional/verifyCommands.html#TestFrame.html | |
| waitForText | result | regexp:.+ |
| assertText | result | Success |


When building an application it might be very handy to have a REPL console that knows about the libraries of your application, but you don’t necessarily want to start your application to interact with it. In Rails they have a script/console command. Here’s how you create one that knows about ironruby. The example I’m going to use is taken from an IronRubyMVC application.
I started out by creating a folder script.
Then I created a file called console (on a unix system I would chmod +x this file). I also like to have completion in my console so I’ve added the irb/completion library. Then I’ll require the routes.rb file so that the libraries of my application get loaded.
1 2 3 4 5 6 7 8 9 |
|
The 3rd line has CALL iirb.bat as a command on a windows system. The CALL command is needed for the next step because we’re going to execute a batch file from another batch file on windows. Otherwise it wouldn’t work for me. CALL is very similar to exec in ruby and gives control to another executable until its task is done.
For windows to be able to use script/console (script\console) instead of ir script/console you also need to create a batch file called console.bat in the script folder.
1 2 3 4 5 6 |
|
This is all there is to it to get rails like scripting abilities.
IronRuby has another really cool feature built into IronRuby is the ability to provide REPL’s for your application at run-time. All you need to do is use Repl.new and give it an output and input stream.