Overview
Package
Class
Use
Tree
Deprecated
Index
Help
PREV LETTER
NEXT LETTER
FRAMES
NO FRAMES
All Classes
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
_
Q
QRFlowCacheObj
- Class in
net.floodlightcontroller.flowcache
Used in BigFlowCacheQueryResp as query result.
QRFlowCacheObj(short, byte, long)
- Constructor for class net.floodlightcontroller.flowcache.
QRFlowCacheObj
Instantiates a new flow cache query object.
qrFlowCacheObjList
- Variable in class net.floodlightcontroller.flowcache.
FlowCacheQueryResp
The flow list.
quarantineQueue
- Variable in class net.floodlightcontroller.linkdiscovery.internal.
LinkDiscoveryManager
A list of ports that are quarantined for discovering links through them.
queryByEntity(Entity)
- Method in class net.floodlightcontroller.devicemanager.internal.
DeviceIndex
Find all device keys in the index that match the given entity on all the key fields for this index
queryByEntity(Entity)
- Method in class net.floodlightcontroller.devicemanager.internal.
DeviceMultiIndex
queryByEntity(Entity)
- Method in class net.floodlightcontroller.devicemanager.internal.
DeviceUniqueIndex
queryByEntity(Entity)
- Method in class net.floodlightcontroller.devicemanager.internal.original.
DeviceMultiIndex
queryByEntity(Entity)
- Method in class net.floodlightcontroller.devicemanager.internal.original.
DeviceUniqueIndex
queryByEntity(Entity)
- Method in class net.floodlightcontroller.devicemanager.normal.
DeviceIndex
Find all device keys in the index that match the given entity on all the key fields for this index
queryByEntity(Entity)
- Method in class net.floodlightcontroller.devicemanager.normal.
DeviceMultiIndex
queryByEntity(Entity)
- Method in class net.floodlightcontroller.devicemanager.normal.
DeviceUniqueIndex
queryClassByEntity(IEntityClass, EnumSet<IDeviceService.DeviceField>, Entity)
- Method in class net.floodlightcontroller.devicemanager.internal.
DeviceManagerImpl
queryClassByEntity(IEntityClass, EnumSet<IDeviceService.DeviceField>, Entity)
- Method in class net.floodlightcontroller.devicemanager.normal.
DeviceManagerImpl
queryClassDevices(IEntityClass, Long, Short, Integer, Long, Integer)
- Method in interface net.floodlightcontroller.devicemanager.
IDeviceService
Find devices that match the provided query.
queryClassDevices(IEntityClass, Long, Short, Integer, Long, Integer)
- Method in class net.floodlightcontroller.devicemanager.internal.
DeviceManagerImpl
queryClassDevices(IEntityClass, Long, Short, Integer, Long, Integer)
- Method in class net.floodlightcontroller.devicemanager.normal.
DeviceManagerImpl
queryDevices(Long, Short, Integer, Long, Integer)
- Method in interface net.floodlightcontroller.devicemanager.
IDeviceService
Find devices that match the provided query.
queryDevices(Long, Short, Integer, Long, Integer)
- Method in class net.floodlightcontroller.devicemanager.internal.
DeviceManagerImpl
queryDevices(Long, Short, Integer, Long, Integer)
- Method in class net.floodlightcontroller.devicemanager.normal.
DeviceManagerImpl
queryObj
- Variable in class net.floodlightcontroller.flowcache.
FlowCacheQueryResp
query object provided by the caller, returned unchanged.
querySwitchFeaturesReply()
- Method in interface net.floodlightcontroller.core.
IOFSwitch
Returns a Future object that can be used to retrieve the asynchronous OFStatisticsReply when it is available.
querySwitchFeaturesReply()
- Method in class net.floodlightcontroller.core.
OFSwitchBase
querySwitchFlowTable(long)
- Method in class net.floodlightcontroller.flowcache.
FlowCache
querySwitchFlowTable(long)
- Method in interface net.floodlightcontroller.flowcache.
IFlowCacheService
Post a request to update flowcache from a switch.
queueId
- Variable in class org.openflow.protocol.action.
OFActionEnqueue
queueId
- Variable in class org.openflow.protocol.
OFPacketQueue
queueId
- Variable in class org.openflow.protocol.statistics.
OFQueueStatisticsReply
queueId
- Variable in class org.openflow.protocol.statistics.
OFQueueStatisticsRequest
queues
- Variable in class org.openflow.protocol.
OFQueueGetConfigReply
queues
- Variable in class org.openflow.vendor.openflow.
OFQueueVendorData
Overview
Package
Class
Use
Tree
Deprecated
Index
Help
PREV LETTER
NEXT LETTER
FRAMES
NO FRAMES
All Classes
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
_


SolidFire .NET SDK
Integrate with SolidFire Element OS Management API
View on GitHub
Install via Nuget
Latest MSDN Docs
SolidFire.com
{{content}}


Welcome to the error detection system. Please pay attention to the following important
instructions before you upload your assignment for checking by the system.
Make sure the student who uploaded your assignment to Turnitin is the same student who uploads the assignment to the error detection system.
Please sign in using your NTU user name as both user name and password (both in UPPER CASE).
Only upload your assignment in docx – NO PDFs.
Once you have uploaded your assignment, the system will take about 2-3 minutes to flag down sentences with possible errors. In some cases,
the system may flag some items as possible errors only. In such cases, you may decide not to take any action.
Errors highlighted in RED indicate major errors that almost certainly require changes, while YELLOW highlighted errors indicate possible errors which may require changes.
You can use this system to upload your assignment as many times as you want, progressively addressing any errors flagged by the system.
If you have any technical problems, please wait a couple hours and try again since too many concurrent uploads might slow down the system to the point of rejection. If the problem persists, email Mr. Kuribayashi at<EMAIL_ADDRESS>including your NTU username and the docx file that you had problems with.


AN OLD CORNISH RHYME.
"WHEN the corn is in the shock, Then the fish are on the rock."
The pilchard visits this coast in the early autumn. These are the "fish " par excellence of the Cornish, and they are thus distinguished.


| < Day Day Up > |
Using REXX and DB2You can also create applications using REXX that access and manipulate DB2 data. REXX is a procedural programming language developed at IBM and used by most mainframe organizations. REXX was designed to make easy the manipulation of the kinds of symbolic objects that people normally deal with such as words and numbers. NOTE Although REXX began as an IBM-only language, there is now an ANSI standard for the language. The American National Standard for REXX is called "Programming Language—REXX," and its number is X3.274-1996. In general, you can code SQL statements in a REXX procedure wherever you can use REXX commands. The only SQL statements that are not supported are
Furthermore, you cannot execute a SELECT, INSERT, UPDATE, or DELETE statement that contains host variables. Instead, you must use parameter markers and then PREPARE the statement as with typical dynamic SQL statements. Each SQL statement in a REXX procedure must begin with EXECSQL. Following the EXECSQL you must code either an SQL statement enclosed in single or double quotation marks or a REXX variable that contains the SQL statement. If the SQL statement spans multiple lines, follow the REXX rules for statement continuation. For example, you can code EXECSQL , "UPDATE DSN8810.EMP" , "SET BONUS = 1000" , "WHERE EMPNO = '000340'" NOTE You cannot include REXX comments (/* ... */) or SQL comments (--) within SQL statements. However, you can include REXX comments anywhere else in the REXX procedure. When DB2 prepares a REXX procedure that contains SQL statements, DB2 automatically includes an SQL communication area (SQLCA) in the procedure. Do not attempt to use the INCLUDE SQLCA statement to include an SQLCA in a REXX procedure. Remember, INCLUDE is not allowed when using REXX. If you will be using any of the following SQL statements you will need to code an SQLDA in your REXX procedure: CALL...USING DESCRIPTOR descriptor-name DESCRIBE statement INTO descriptor-name DESCRIBE CURSOR host-variable INTO descriptor-name DESCRIBE INPUT statement INTO descriptor-name DESCRIBE PROCEDURE host-variable INTO descriptor-name DESCRIBE TABLE host-variable INTO descriptor-name EXECUTE...USING DESCRIPTOR descriptor-name FETCH...USING DESCRIPTOR descriptor-name OPEN...USING DESCRIPTOR descriptor-name PREPARE...INTO descriptor-name A REXX procedure can contain multiple SQLDAs. Once again, though, you cannot use INCLUDE to bring the SQLDA into a REXX procedure. Before attempting to code a REXX procedure to access DB2, be sure to refer to the IBM documentation for assistance. REXX GuidelinesConsider these guidelines when building REXX procedures that access DB2. A REXX Null Is Not a DB2 NULLAs you build REXX procedures that access DB2 data, keep in mind that a REXX null and an SQL NULL are not the same thing. The REXX language has a null string that is a string of length 0 and a null clause that is a clause that contains only blanks and comments. Recall from Chapter 5 that the SQL NULL is a special value that denotes the absence of a value. Assigning a REXX null to a DB2 column does not make the column a DB2 NULL. REXX Host VariablesHost variables are not declared in REXX procedures. Instead, when a new variable is needed, you simply use it in a REXX command. As with COBOL host variables, when you use a REXX variable as a host variable in an SQL statement, be sure to precede the variable name with a colon. REXX and Data TypesAll REXX data is string data. Therefore, when a REXX procedure assigns input data to a table column, DB2 converts the data from a string type to the table column type. When a REXX procedure assigns column data to an output variable, DB2 converts the data from the column type to a string type. When you assign input data to a DB2 table column, you can either let DB2 determine the type that your input data represents, or you can use an SQLDA to tell DB2 the intended type of the input data. To use the SQLDA to convert the string to an INTEGER, DECIMAL, FLOAT, VARCHAR, or VARGRAPHIC data type, refer to the chart of valid SQLTYPE (SQLDA field) values as shown in Chapter 12 (Table 12.2). |
| < Day Day Up > |


Software development is our craft,
your custom solution the art.
Automat Berlin is a software development company. We are senior software engineers, experienced agile practitioners and we represent a valuable partner network.
For our clients, we set up custom expert teams, provide the relevant toolchain, and develop software artifacts. Learn more at automat_factory.
With our partners, we build and contribute to open source software and are engaged in communities with a focus on ecosystems of programmable communications. Find out more in automat_workshop
//factory
PWA on client-side and microservices in the backend on a serverless hosting environment - if that does not mean anything to you we are here to help. We analyze your business requirements, consult you on technology and development, and deliver a tailored solution.
Automat Berlin offers full stack application development.
We design and develop in short iterations transparently and according to your requirements. In doing so we rely on most recent technology stacks and apply a high level of automation in the overall software lifecycle. If possible, we generate artifacts to increase standardization and improve software quality. Our teams always consist of at least two developers since we believe in pair programming, test-driven development and the value of code review. We work with agile methodologies and continuous delivery based on time and materials engagements.
Scaling delivery teams with managed nearshoring
In case your development initiative becomes bigger we reliably scale our tech teams with our longtime trusted development partners in Poland and Turkey. This enables us to start small and adjust team size and expertise ranges according to project needs. Delivery responsibility and team lead stay in our hands, which lets you benefit from all the nearshoring advantages at a reasonable cost without taking the associated risks. We provide continuous delivery and operations on Amazon Web Services, Google Cloud Platform, and Microsoft Azure.
Your future delivery team - company building for Tech
You do not have a development team yet, but want to immediately start building things and set up your team in parallel? We will support you and provide an external team, start developing immediately and built a joint tech team together. As soon as possible the work will be handed over gradually. Once completed we phase out and you are in full control of the toolchain, code base, and operations.
Extending the VoIP stack
Contributing to free and open-source software in the communications domain is our passion. Whether it is SIP, RTC or hybrid stacks, audio, video or messaging, we have seen it all and work on various projects mainly to enable the developer community to consume existing VoIP infrastructures more efficiently. Test applications, mobile SDKs and data syncing solutions between different clients are examples, see our GitHub for more details.
Open ecosystem for communication services
We embrace the so-called Communication platform as a Service (CPaaS) approach and develop easy to handle code bridging different providers. Least cost scenarios, enhanced geo-coverage, and service/provider interoperability are still difficult to achieve by using just one CPaaS/trunk provider, hence we work on the easy use of multiple accounts. We very much like Node-RED for doing this, see our Flows here.
Transforming the Telco industry
The majority of users still communicate with services from the carrier industry. Legacy telephony and SMS are under pressure, and difficult to innovate. Since we are an experienced group of Telco engineers who know both sides of the coin we support R&D projects in Telco industry towards a modern operational model, enabling innovation to go with the speed of software, not infrastructure development.
//workshop


public class SoniTalkContext
extends java.lang.Object
| Modifier and Type | Field and Description |
|---|---|
static int |
ON_PERMISSION_LEVEL_DECLINED
Will be sent to the SoniTalkPermissionsResultReceiver when the user chose to "Decline" when
asked for the privacy level.
|
static int |
ON_REQUEST_DENIED
Will be sent to the SoniTalkPermissionsResultReceiver when the user denied a permission request
from the custom SoniTalk dialogs (L1/L2).
|
static int |
ON_REQUEST_GRANTED
Will be sent to the SoniTalkPermissionsResultReceiver when a request is granted, i.e.
|
static int |
ON_REQUEST_L0_DENIED
Will be sent to the SoniTalkPermissionsResultReceiver when the user denied a permission request
from the Android permission system (L0).
|
static int |
ON_SEND_JOB_FINISHED
Will be sent to the SoniTalkPermissionsResultReceiver when a "send job" is finished, i.e.
|
static int |
ON_SHOULD_SHOW_RATIONALE_FOR_ALLOW_ALWAYS
Will be sent to the SoniTalkPermissionsResultReceiver when the user should show a rationale
for the "Allow Always" (L0) SoniTalk permission.
|
| Modifier and Type | Method and Description |
|---|---|
SoniTalkDecoder |
getDecoder(int sampleRate,
SoniTalkConfig config) |
SoniTalkEncoder |
getEncoder(int sampleRate,
SoniTalkConfig config) |
SoniTalkEncoder |
getEncoder(SoniTalkConfig config) |
static SoniTalkContext |
getInstance(android.content.Context context,
SoniTalkPermissionsResultReceiver sdkListener)
Instantiate a SoniTalkContext, allowing to create Encoder, Decoder and Sender objects.
|
SoniTalkSender |
getSender() |
SoniTalkSender |
getSender(int sampleRate) |
public static final int ON_PERMISSION_LEVEL_DECLINED
public static final int ON_REQUEST_GRANTED
public static final int ON_REQUEST_DENIED
public static final int ON_SEND_JOB_FINISHED
public static final int ON_SHOULD_SHOW_RATIONALE_FOR_ALLOW_ALWAYS
public static final int ON_REQUEST_L0_DENIED
public static SoniTalkContext getInstance(android.content.Context context, SoniTalkPermissionsResultReceiver sdkListener)
context
- is used to get an application context.sdkListener
- ResultReceiver which will receive callbacks from SoniTalk. Please set
the handler according to which thread should execute the callbacks (often
the UI Thread if it handles UI components). Please call setReceiver and
pass an object that implements SoniTalkPermissionsResultReceiver.Receiver
interface in order to receive the callbacks (it can be an Activity, but
then do not forget to set it back to null in onStop or onPause to avoid
leaking your Activity on configuration changes).public SoniTalkDecoder getDecoder(int sampleRate, SoniTalkConfig config)
sampleRate
- is used to start the decoder with the correct sample rateconfig
- can be generated with the utility class ConfigFactory and
holds configurations for the decoderpublic SoniTalkEncoder getEncoder(SoniTalkConfig config)
config
- can be generated with the utility class ConfigFactory and
holds configurations for the encoderpublic SoniTalkEncoder getEncoder(int sampleRate, SoniTalkConfig config)
sampleRate
- is used to start the encoder with the correct sample rateconfig
- can be generated with the utility class ConfigFactory and
holds configurations for the encoderpublic SoniTalkSender getSender()
public SoniTalkSender getSender(int sampleRate)
sampleRate
- is used to get a sender with the correct sample rate


The uxBadge directive can be added to any element to provide additional information as a badge, such as
status text or unread count.
Note: the badge directive relies on the CSS overflow property being set to visible for
the subject element due to how the badge element attaches to it. If you want to use hidden, you will
need to add a wrapper element around the subject so it only affects the contents.
The appearance and behavior of the directive can be configured using the following properties:
The value to display in the badge.
The color you want to use for the background color. This can be a color name from the
color palette, or a CSS Hex/RGB/RGBA value.
The color you want to use for the border of the badge. If this value is not set the badge will have a transparent
border. This can be a color name from the
color palette, or a CSS Hex/RGB/RGBA value.
Sets a character or number limit on the content within the badge. If the content is a number and larger than
this value it will display this value with an appended +, otherwise the content will be treated
as text and use this value to truncate the number of characters displayed followed by an ellipsis
(…).
The vertical position of the badge in relation to its subject element.
The horizontal position of the badge in relation to its subject
element.
This will determine whether the badge content will overlap its subject element. If overlap is
false the badge will start after the end of the subject element, otherwise
if it is set to true the badge horizontal center will be at the end of its subject element.
The size of the badge.
Whether the badge is visible.
The following code can be used to create the example above:


AAP 2 - Ansible RHEL Workshop
This is the Ansible Red Hat Enterprise Linux Workshop.
Workshop Description
If you’re new to Ansible Automation, this workshop consists of two parts: 1) starting with the basics of understanding foundational command line activities and 2) applying what you’ve learned to implement Ansible automation controller to your enterprise use cases. You’ll start off by writing your first Ansible playbook, work on Jinja templates, and implement higher-level Ansible roles. Next you’ll get started on automation controller, understand inventory and credential management, projects, job templates, surveys, workflows and more.
Workbench Information
- 1 x Automation controller on RHEL 8
- 3 x Red Hat Enterprise Linux 8.X hosts
Access Guide
Upon completion of provisioning you will receive an email with a website containing a user credential and access to
Automation controller web UI
Visual Studio Code (including a terminal)
backup direct SSH access
The website provided with this information is dynamically created upon provision and will be your 4-digit unique identification number + the GPTE DNS open.redhat.com for example: http://87f8.open.redhat.com/
Provisioning Time?
~45 min
Need support with Provisioning the Demo/Workshop in RHPDS?
Open a ticket
Have questions about the Demo?
Red Hat employees can join us in Google Chat in the room “Ansible Workshops & Demos”.
Issues?
Open an issue on Github, Red Hat partners can join us on external Slack.


Sky
Land
No Images
Take some using PIC (Take Pictures of the surface) or PIC S (Take Pictures of surrounding)
EMPTY
EMPTY
EMPTY
EMPTY
EMPTY
Console
Control
Mars Rover Console - Powered by sololearn
Type HLP to see a list of available commands. Type HLP <Command-name> to get help on that command
$
Submit


Ole Gunnar Solskjaer predicts where Man United will finish
Ole Gunnar Solskjaer is still confident that Man United can finish in the top four this season
by The Sport Review staffOle Gunnar Solskjaer is confident that Manchester United still have what it takes to seal a top-four finish this season.
The Red Devils have struggled to find consistent form in the Premier League this season and they currently find themselves well off the pace in the race for Champions League qualification.
Indeed, Manchester United have only won four of their opening 12 Premier League games to leave them languishing behind the likes of Manchester City, Leicester City and Chelsea FC.
Manchester United will attempt to make it back to back wins in the Premier League on Sunday afternoon when they travel to Sheffield United in the top flight.
Solskjaer is still adamant that Manchester United have what it takes to finish in the top four despite their stuttering start to the new campaign.
Speaking at a news conference on Friday, Solskjaer said: “We’ve still got to keep looking up the table.
“It’s so close, but it’s a long gap up to the top four. We’ve got City next month, very soon, so we’ve got a chance to claw some points back.
“We know we’re getting players back, we’re getting better and improving as a team, so, hopefully, we can challenge when it comes towards the end.
“I’ve seen Marcus [Rashford] talk about it this week, it’s not just about getting into the top four, but that’s a little bit of a goal for us, of course.”
Manchester United finished in sixth place and without a trophy in Solskjaer’s first season in charge at Old Trafford last term.
The Red Devils will return to Premier League action next weekend with a home clash against Aston Villa at Old Trafford.


{% extends "layout.html" %} {% block phase%} {% include 'sprint10/partials/phase-banner.html'%} {% endblock %} {% block main %}
Thank you for your feedback.


This application is a resource for anyone choosing to travel in the backcountry displaying accurate weather and avalanche data based on the location of your choosing. We retrieve our accurate data from the North West Avalanche Center (NWAC).
Select your location from the dropdown above.
We really appreciate it!
We all came together to work on this application based on Alicia and Amber's idea and desire to display accurate data from the Northwest Avalanche Center, also known as "NWAC". We are using the NWAC API in our application to give users an easy to read, abridged summary of avalanche conditions at the most popular mountain areas around the Seattle area. We really enjoyed working together to make this application possible, and hope that it will be used to keep skiers/hikers safe when you travel into the mountains for some snowy fun.


HP Chromebook
Lifetime Warranty Given To Products Purchased Through ABC Online Market
Phone: 52152-ABC-MarketO


Unscramble
What is bought by the yard and worn by the foot?
Think you figured it out? Click
NEXT
to reveal the answer.


settings.game_install_dir_help
{{ formModel.game_install_dir }}
settings.max_download_count_help
settings.limit_extractions_help
settings.max_extract_count_help
settings.queue_when_playing_help
Turning this off will show a static image instead of animated thumbnails.
This will block games that have a maturity rating of "Mature" and ask if you'd like to continue before showing the full page.
With this on you will receive notifications of new site features that have been added since you last visited.


SkewbSkillsWeb
Choose from the various practicing modes by clicking the corresponding button.
If you encounter any weird behaviour, please feel free to report bugs, send ideas or share your experiences! You can contact me through any of the methods presented at the bottom of the page, where I enjoy hearing your comments!
Controlling the interface now also works by pressing
If you encounter any weird behaviour, please feel free to report bugs, send ideas or share your experiences! You can contact me through any of the methods presented at the bottom of the page, where I enjoy hearing your comments!
Controlling the interface now also works by pressing
- Enter - Generate new scramble
- Space - Start / Stop timer
- R - Reset timer


Welcome to AkanNamings
Would you want to know more of AkanNamings???
Days and weeks are words used in naming the newborns in Ghananian cuulture
African diaspora and western side of Africa use AkanNamings often
Akan website helps you get to identify the day of the week that you were born
just by using your birthday details.


Type function Library [native.showPopup][native.showPopup] Revision Current Public Release (2013.2076) Keywords Sample code See also
Displays the operating system's default popup window for a specified service.
native.showPopup( name, params )
String. The string name of the popup to be shown. It can be one of the following: addressBook
Table. Table of parameters. Each property of the table (except for the option key) is optional. See Format for options below.
params
The params
table contains the following properties:
String. The string name of the popup to be shown. It can be one of the following: pickContact
, viewContact
, newContact
, unknownContact
For the "pickContact"
popup, the following properties are supported:
options.hideDetails
is a boolean. If set to true
, then the address book will be dismissed upon selecting a contact.options.performDefaultAction
is a boolean. If set to true
then tapping/touching a contacts phone number or email will perform the default iOS action (such as call contact, show the compose email popup).options.filter
is a table. It should contain items (strings) to show in the detail view section of a contact. Eg: filter = { "phone", "email", "birthday" }options.listener
is a listener. This is the callback function you want to be called when the popup is dismissed. The onComplete callback function passes back an event table with the following properties: * event.name: String. contact
. * event.type: A String. which is either: pickContact
, viewContact
, newContact
, unknownContact
, depending on the popup shown. * event.data: A Table. containing information of the selected contact. i.e. firstName
, lastName
, email
, phone
.Supported strings for options.filter are:
`phone`, `email`, `address`
`birthday`, `relatedNames`,
`socialProfiles`, `instantMessagingProfiles`,
Possible key's returned from event.data (via the onComplete listener):
`picture` (table) - Containing keys `filename` (string) and `baseDir` (userdata)
`phoneHome` (String )
`phoneMobile` (String)
`phoneIphone' (String)
`phoneMain` (String)
`phoneWork` (String)
`phoneOther1` (String) - This key is incremented for each "other" entry. i.e `phoneOther2`
`faxHome` (String)
`faxWork` (String)
`faxOther` (String)
`pager` (String)
`homeEmail` (String)
`workEmail` (String)
`otherEmail1` (String) - This key is incremented for each "other" entry. i.e `otherEmail2`
`firstName` (String)
`middleName` (String)
`lastName` (String)
`suffix` (String)
`prefix` (String)
`phoneticFirstName` (String)
`phoneticMiddleName` (String)
`phoneticLastName` (String)
`jobTitle` (String)
`organization` (String)
`department` (String)
`birthday` (String)
`anniversary` (String)
`otherDate1` (String) - This key is incremented for each "other" entry. i.e `otherDate2`
`nickName` (String)
`parent` (String)
`father` (String)
`mother` (String)
`sister` (String)
`brother` (String)
`child` (String)
`friend` (String)
`spouse` (String)
`partner` (String)
`assistant` (String)
`manager` (String)
`homePageUrl` (String)
`homeUrl` (String)
`workUrl` (String)
`otherUrl1` (String) - This key is incremented for each "other" entry. i.e `otherUrl2`
`homeStreet` (String)
`homeCity` (String)
`homeState` (String)
`homeZip` (String)
`homeCountry` (String)
`workStreet` (String)
`workCity` (String)
`workState` (String)
`workZip` (String)
`workCountry` (String)
`otherStreet1` (String) - This key is incremented for each "other" entry. i.e `otherStreet2`
`otherCity1` (String) - This key is incremented for each "other" entry. i.e `otherCity2`
`otherState1` (String) - This key is incremented for each "other" entry. i.e `otherState2`
`otherZip1` (String) - This key is incremented for each "other" entry. i.e `otherZip2`
`otherCountry1` (String) - This key is incremented for each "other" entry. i.e `otherCountry2`
`Facebook` (table) - Contains "username" key. Can also contain "url" key for certain services.
`gamecenter` (table) - Contains "username" key. Can also contain "url" key for certain services.
`linkedin` (table) - Contains "username" key. Can also contain "url" key for certain services.
`GoogleTalk` (table) - Contains "username" key. Can also contain "url" key for certain services.
`sinaweibo` (table) - Contains "username" key. Can also contain "url" key for certain services.
`AIM` (table) - Contains "username" key. Can also contain "url" key for certain services.
`GaduGadu` (table) - Contains "username" key. Can also contain "url" key for certain services.
`Skype` (table) - Contains "username" key. Can also contain "url" key for certain services.
`Jabber` (table) - Contains "username" key. Can also contain "url" key for certain services.
`flickr` (table) - Contains "username" key. Can also contain "url" key for certain services.
`myspace` (table) - Contains "username" key. Can also contain "url" key for certain services.
`twitter` (table) - Contains "username" key. Can also contain "url" key for certain services.
`MSN` (table) - Contains "username" key. Can also contain "url" key for certain services.
`ICQ` (table) - Contains "username" key. Can also contain "url" key for certain services.
`facebook` (table) - Contains "username" key. Can also contain "url" key for certain services.
`QQ` (table) - Contains "username" key. Can also contain "url" key for certain services.
`Yahoo` (table) - Contains "username" key. Can also contain "url" key for certain services.
For the "viewContact"
popup, the following properties are supported:
options.performDefaultAction
is a boolean. If set to true
then tapping/touching a contacts phone number or email will perform the default iOS action (such as call contact, show the compose email popup).options.isEditable
is a boolean. If set to true
the user can edit the person’s information.options.name
is a string. This is the name of the contact you wish to view.options.filter
is a table. It should contain items to show in the detail view section of a contact. e.g.: filter = { "phone", "email", "birthday" }options.listener
is a listener. This is the callback function you want to be called when the popup is dismissed. The onComplete callback function passes back an event table with the following properties: * event.name: String. contact
. * event.type: A String. which is either: pickContact
, viewContact
, newContact
, unknownContact
, depending on the popup shown. * event.data: A Table. containing information of the selected contact. i.e. firstName
, lastName
, email
, phone
.For the "newContact"
popup, the following properties are supported:
options.data
is a table. This is a table containing key/value pairs to pre-fill a new contact's details with. e.g.: data = { firstName = "John", lastName = "Doe", organization = "Corona Labs", homePhone = "939222832", workPhone = "939392832", homeEmail =<EMAIL_ADDRESS>workEmail =<EMAIL_ADDRESS>}options.listener
is a listener. This is the callback function you want to be called when the popup is dismissed. The onComplete callback function passes back an event table with the following properties: * event.name: String. contact
. * event.type: A String. which is either: pickContact
, viewContact
, newContact
, unknownContact
, depending on the popup shown. * event.data: A Table. containing information of the selected contact. i.e. firstName
, lastName
, email
, phone
.Supported keys for options.data are:
`firstName`, `middleName`, `lastName`,
`organization`, `jobTitle`, `birthday`,
`phoneticFirstName`, `phoneticMiddleName`, `phoneticLastName`,
`prefix`, `suffix`, `nickname`,
`phoneIphone`, `phoneMobile`, `phoneMain`, `phoneHome`, `phoneWork`,
`faxHome`, `faxWork`, `faxOther`, `pager`,
`homeEmail`, `workEmail`,
`homePageUrl`, `workUrl`, `homeUrl`,
`father`, `mother`, `parent`, `brother`, `sister`, `child`,
`friend`, `spouse`, `partner`, `assistant`, `manager`,
`homeStreet`, `homeCity`, `homeState`, `homeZip`, `homeCountry`,
`workStreet`, `workCity`, `workState`, `workZip`, `workCountry`,
`socialFacebook`, `socialTwitter`, `socialFlickr`, `socialLinkedIn`, `socialMyspace`, `socialSinaWeibo`, `socialGameCenter`,
`instantMessagingAim`, `instantMessagingFacebook`, `instantMessagingGaduGadu`, `instantMessagingGoogleTalk`, `instantMessagingICQ`,
`instantMessagingJabber`, `instantMessagingMSN`, `instantMessagingQQ`, `instantMessagingSkype`, `instantMessagingYahoo`
For the "unknownContact"
popup, the following properties are supported:
options.performDefaultAction
is a boolean. If set to true
then tapping/touching a contacts phone number or email will perform the default iOS action (such as call contact, show the compose email popup).options.allowsActions
is a boolean. This specifies whether buttons appear to let the user perform actions such as sharing the contact, initiating a FaceTime call, or sending a text message.options.allowsAdding
is a boolean. If set to true
the “Add to Existing Contact” or “Create New Contact” buttons will be available on the contacts overview screen.options.alternateName
is a string. This provides a string that is displayed instead of the contacts first and last name.options.message
is a string. This string is displayed below alternateName.options.data
is a table. This is a table containing key/value pairs to amend to a contact or to create a new contact with. e.g.: data = { organization = "Corona Labs", homePhone = "939222832", workPhone = "939392832", workEmail =<EMAIL_ADDRESS>homeEmail =<EMAIL_ADDRESS>}options.listener
is a listener. This is the callback function you want to be called when the popup is dismissed. The onComplete callback function passes back an event table with the following properties: * event.name: String. contact
. * event.type: A String. which is either: pickContact
, viewContact
, newContact
, unknownContact
, depending on the popup shown. * event.data: A Table. containing information of the selected contact. i.e. firstName
, lastName
, email
, phone
.Supported keys for options.data are:
`firstName`, `middleName`, `lastName`,
`organization`, `jobTitle`, `birthday`,
`phoneticFirstName`, `phoneticMiddleName`, `phoneticLastName`,
`prefix`, `suffix`, `nickname`,
`phoneIphone`, `phoneMobile`, `phoneMain`, `phoneHome`, `phoneWork`,
`faxHome`, `faxWork`, `faxOther`, `pager`,
`homeEmail`, `workEmail`,
`homePageUrl`, `workUrl`, `homeUrl`,
`father`, `mother`, `parent`, `brother`, `sister`, `child`,
`friend`, `spouse`, `partner`, `assistant`, `manager`,
`homeStreet`, `homeCity`, `homeState`, `homeZip`, `homeCountry`,
`workStreet`, `workCity`, `workState`, `workZip`, `workCountry`,
`socialFacebook`, `socialTwitter`, `socialFlickr`, `socialLinkedIn`, `socialMyspace`, `socialSinaWeibo`, `socialGameCenter`,
`instantMessagingAim`, `instantMessagingFacebook`, `instantMessagingGaduGadu`, `instantMessagingGoogleTalk`, `instantMessagingICQ`,
`instantMessagingJabber`, `instantMessagingMSN`, `instantMessagingQQ`, `instantMessagingSkype`, `instantMessagingYahoo`
-- Function to execute on completion of the address book ( i.e. when it is dismissed )
local function onComplete( event )
print( "event.name:", event.name );
print( "event.type:", event.type );
-- event.data is either a table or nil depending on the option chosen
print ( "event.data:", event.data );
-- If there is event.data print it's key/value pairs
if event.data then
print( "event.data: {" );
for k, v in pairs( event.data ) do
print( k , ":" , v );
end
print( "}" );
end
end
-- Pick contact options
local pickContactOptions =
{
option = "pickContact",
-- If true, then the address book will be dismissed upon selecting a contact.
hideDetails = true,
-- If true then tapping/touching a contacts phone number or email will perform the default iOS action (such as call contact, show the compose email popup).
performDefaultAction = true,
-- Items to show in the detail view section of a contact.
filter =
{
"phone", "email",
"birthday",
},
-- Function to execute on completion
listener = onComplete,
}
native.showPopup( "addressBook", pickContactOptions );


--- title: Using the apastats package to write reproducible reports author: admin date: '2020-01-04' slug: using-the-apastats-package-to-write-reproducible-reports categories: [] tags: - stats - R - tutorial subtitle: '' summary: '' math: true authors: [] lastmod: '2020-01-04T02:05:01+01:00' featured: no image: caption: '' focal_point: '' preview_only: no projects: [] ---
Writing a research report using RMarkdown allows you to start your analysis even before you have collected the data. This is especially helpful in report writing and thesis writing. When you, web-crawler, or a panel are still collecting data, you can already start writing the thesis. However, writing results before having the data is somewhat challenging. Keep in mind that writing a discussion before having collected the data is a lot harder.
What we’re going to need two things:
apastats
.stringr
and glue
You can install the apastats
package using the following command:
devtools::install_github('achetverikov/apastats',subdir='apastats')
Now, we can start. Let’s assume we have already collected the following data about iris flowers 😉.
df <- iris %>% sample_n(5)
df %>% kable()
| Sepal.Length | Sepal.Width | Petal.Length | Petal.Width | Species |
|---|---|---|---|---|
| 5.8 | 2.7 | 4.1 | 1.0 | versicolor |
| 6.4 | 2.8 | 5.6 | 2.1 | virginica |
| 4.4 | 3.2 | 1.3 | 0.2 | setosa |
| 4.3 | 3.0 | 1.1 | 0.1 | setosa |
| 7.0 | 3.2 | 4.7 | 1.4 | versicolor |
We have found in literature that the setosa species has a rather small petal length of only about 3-4 cm. Since we are sampling from random flowers we want to test whether our sample is also smaller than, let us say, 5cm. Thus, our null hypothesis would be \(H_0: PL > 5\).
We would test this using a one-sample t-test on the subset of data.
res <- df %>%
filter(Species == "setosa") %>%
pull(Petal.Length) %>%
t.test(mu = 5)
res
##
## One Sample t-test
##
## data: .
## t = -38, df = 1, p-value = 0.01675
## alternative hypothesis: true mean is not equal to 5
## 95 percent confidence interval:
## -0.07062047 2.47062047
## sample estimates:
## mean of x
## 1.2
Well… This is not our final data yet, so we should not bee too happy about this result already. And this looks nothing like a report. How can we write the test and the interpretation that it incorporates the results?
The describe.ttest
function returns the correctly formatted markdown for reporting a t-test. So the following would always generate the correct output.
tresult <- apastats::describe.ttest(res)
tresult
## [1] "_t_(1.0) = -38.00, _p_ = .017"
Meh. This is not really helpful either, right? We must include the text result as an inline result using the `r tresult`
. Then we can say:
Setosa iris have petal leaves whose length is statistically significant different from 5 (t(1.0) = -38.00, p = .017).
This is nice, but we don’t know whether our sample of \(n=2\) actually represents the population. Therefore, we must prepare for both cases. Here the glue
package is helpful in filling in the blanks in pre-written output.
library(glue)
# test the p-value
alpha_level <- .05
# default is not significant
have_txt <- "do not have"
if (res$p.value < alpha_level) {
have_txt <- "have"
}
phrase <- glue("> Setosa iris {have_txt} petal leaves whose length is ",
"statistically significant different from 5 ({tresult}).")
This we can now output using: `r phrase`
.
Setosa iris have petal leaves whose length is statistically significant different from 5 (t(1.0) = -38.00, p = .017).
Now, we can run the full script again, but with the full data set. I have omitted unnecessary output in the following code chunk and directly construct the output phrase.
# run the test
res <- iris %>%
filter(Species == "setosa") %>%
pull(Petal.Length) %>%
t.test(mu = 5)
# describe results
tresult <- apastats::describe.ttest(res)
# generate phrase
have_txt <- "do not have"
if (res$p.value < alpha_level) {
have_txt <- "have"
}
# you can use markdown here as well
phrase <- glue("> Setosa iris {have_txt} petal leaves whose length is ",
"statistically significant different from 5 ({tresult}).")
The final outcome of our analysis now is:
Setosa iris have petal leaves whose length is statistically significant different from 5 (t(49.0) = -144.06, p < .001).


Thanks for your registration.
Please confirm your registration by clicking the following link:
Please keep your account data safely.


Help Manual -COMMIT COMMAND
Name
peg-commit - Permanently record changes to the repository and store them in the permanent database.
Syntax
peg commit [-m][--message][-d][--description][-t][--tag]
[commit_message | description | tag_value]
Description
Peg commit command - This command stores the current contents of the cache / temporary database (which was stored using peg insert command ) in a new commit along with a log message from the user describing the changes.
The content to be added can be specified in several ways:
1. By using peg insert to incremently add changes to temporary cache before using peg commit command
2. By using peg reset command to remove files from temporary cache.
Finally we use peg commit command to store the changes present in the temporary database/cache to store them as a new commit with a given message or a given tag.
The peg status command can be used to obtain a summary of which
files have changes that are staged for the next commit i.e. which files have been added to
temporary database which are yet to be committed .
Options
- [-m] or [--message] "message" : This option uses the given "message" as the commit message. It is often beneficial to add a commit message as it helps in easy debugging and also helps in remembering what changes were made in a paticular commit
- [-d] or [--description] "description": This option is used to add a description alongwith every commit made . This option is followed by a description
- [-t] or [--tag] : Often we reach a point , where we can be sure of giving a new version to our project. In this case we provide a tag to the present state of the project .
Examples
- When recording your own work, the contents of modified files in your working tree are temporarily stored to a staging area called the cache / temporary database with peg insert. A file can be reverted back, only in the index but not in the working tree, to that of the last commit with peg reset command, which effectively reverts peg insert and prevents the changes to this file from participating in the next commit. After building the state to be committed incrementally with these commands, peg commit (without any pathname parameter) is used to record what has been staged so far. This is the most basic form of the command.


XXXX from 2876 counties responded to XXXXXXX.
The top ten counties by respsonse were:
| County | Responses |
|---|---|
| Los Angeles County, CA | 19,196 |
| Cook County, IL | 10,027 |
| King County, WA | 9023 |
| New York County, NY | 6718 |
| San Francisco County, CA | 5960 |
| San Diego County, CA | 5935 |
| Alameda County, CA | 5627 |
| King County, NY | 5413 |
| Maricopa County, AZ | 5313 |
| Middlesex, MA | 4989 |


Provides filtering of transformation matrices (pose estimates). More...
#include <AR6/AR/ar.h>
Go to the source code of this file.
Macros | |
| #define | AR_FILTER_TRANS_MAT_SAMPLE_RATE_DEFAULT 30.0 |
| Default sample rate (in Hertz). More... | |
| #define | AR_FILTER_TRANS_MAT_CUTOFF_FREQ_DEFAULT 15.0 |
| Default cutoff frequency (in Hertz). More... | |
Typedefs | |
| typedef struct _ARFilterTransMatInfo | ARFilterTransMatInfo |
Functions | |
| ARFilterTransMatInfo * | arFilterTransMatInit (const ARdouble sampleRate, const ARdouble cutoffFreq) |
| Initialise a filter for a single transformation matrix (pose estimate). More... | |
| int | arFilterTransMatSetParams (ARFilterTransMatInfo *ftmi, const ARdouble sampleRate, const ARdouble cutoffFreq) |
| Set the filter parameters. More... | |
| int | arFilterTransMat (ARFilterTransMatInfo *ftmi, ARdouble m[3][4], const int reset) |
| Filters the supplied pose estimate transformation matrix in-place. More... | |
| void | arFilterTransMatFinal (ARFilterTransMatInfo *ftmi) |
| Finalise a filter. More... | |
Detailed Description
Provides filtering of transformation matrices (pose estimates).
High frequency noise ("jitter") can be an undesirable property in optical tracking systems like ARToolKit. These functions implement a first-order low-pass filter for both the position and orientation components of the pose estimate transformation matrices.
Usage:
For each pose estimate which is to be filtered, an ARFilterTransMatInfo structure should be allocated by calling arFilterTransMatInit(). Samples are then added to the filter and the filtered value returned by calling arFilterTransMat(). At the end of operations, the filter should be disposed of by calling arFilterTransMatFinal().
Macro Definition Documentation
| #define AR_FILTER_TRANS_MAT_CUTOFF_FREQ_DEFAULT 15.0 |
Default cutoff frequency (in Hertz).
This value provides a default value for the cutoffFreq parameter in arFilterTransMatInit().
| #define AR_FILTER_TRANS_MAT_SAMPLE_RATE_DEFAULT 30.0 |
Default sample rate (in Hertz).
This value provides a default value for the sampleRate parameter in arFilterTransMatInit().
Typedef Documentation
| typedef struct _ARFilterTransMatInfo ARFilterTransMatInfo |
Function Documentation
| int arFilterTransMat | ( | ARFilterTransMatInfo * | ftmi, |
| ARdouble | m[3][4], | ||
| const int | reset | ||
| ) |
Filters the supplied pose estimate transformation matrix in-place.
This performs the filter function for a single transformation matrix.
- Parameters
-
ftmi Filter settings to be used with this transformation matrix. m Transformation matrix representing the current pose estimate. reset If a discontinuity in transformation matrix pose estimates has occured (e.g. when a marker is first acquired, or is reacquired after a period of not being visible) the filter initial state or "memory" should be set to the same value as the current sample by setting this parameter to 1. If transformation matrix pose estimates have occured continuously, set this parameter to 0.
- Returns
- 0 No error.
-1 Invalid parameter.
-2 Invalid transformation matrix.
| void arFilterTransMatFinal | ( | ARFilterTransMatInfo * | ftmi | ) |
Finalise a filter.
When all filter use has completed, this function should be called to dispose of the filter structure.
- Parameters
-
ftmi Filter settings to dispose of.
| ARFilterTransMatInfo* arFilterTransMatInit | ( | const ARdouble | sampleRate, |
| const ARdouble | cutoffFreq | ||
| ) |
Initialise a filter for a single transformation matrix (pose estimate).
In order to filter a pose estimate, this function should be called to setup filter data structures.
Each ARFilterTransMatInfo structure should be used only with a single transformation matrix. For example, if you have 5 pose estimates to filter, you would call this function 5 times, once for each pose, and keep the pose data and filter data paired.
The structure produced should be passed to other filter functions dealing with the same transformation matrix.
- Parameters
-
sampleRate This value partially determines the filter properties. It should be as close as possible to the rate at which pose estimates arrive, which is usually the camera frame rate. If you are unsure what value to use, use the constant AR_FILTER_TRANS_MAT_SAMPLE_RATE_DEFAULT. This value may not be 0.0. cutoffFreq This value partially determines the filter properties. It should be as close as possible to the rate above which you do not wish changes to the incoming transformation matrix pose estimate to be observed. This would usually be the maximum rate at which you imagine to-and-fro rotiational or positional motion of a marker to occur. If you are unsure what value to use, use the constant AR_FILTER_TRANS_MAT_CUTOFF_FREQ_DEFAULT. This value may not be 0.0.
- Returns
- Pointer to an ARFilterTransMatInfo structure, which should be passed to other filter functions dealing with the same transformation matrix, or NULL in case of error.
| int arFilterTransMatSetParams | ( | ARFilterTransMatInfo * | ftmi, |
| const ARdouble | sampleRate, | ||
| const ARdouble | cutoffFreq | ||
| ) |
Set the filter parameters.
This convenience function allows adjustment of the initial filter parameters.
- Parameters
-
ftmi Filter settings of which the parameters should be set. sampleRate This value partially determines the filter properties. It should be as close as possible to the rate at which pose estimates arrive, which is usually the camera frame rate. If you are unsure what value to use, use the constant AR_FILTER_TRANS_MAT_SAMPLE_RATE_DEFAULT. This value may not be 0.0. cutoffFreq This value partially determines the filter properties. It should be as close as possible to the rate above which you do not wish changes to the incoming transformation matrix pose estimate to be observed. This would usually be the maximum rate at which you imagine to-and-fro rotiational or positional motion of a marker to occur. If you are unsure what value to use, use the constant AR_FILTER_TRANS_MAT_CUTOFF_FREQ_DEFAULT. This value may not be 0.0.
- Returns
- 0 The filter parameters were set without error.
-1 Invalid parameter.
-2 One of the parameters was 0.0.


nodejs
Install MongoDB Community Edition
Installation may require root access.
If the ScriptRemote server will use an existing, shared MongoDB service
then you will need to set
the MONGO_URL
or MONGO_HOST_PORT
environment variable
(see config/env/development.js
)
and you may need to add MongoDB credentials to the .env
file
in Step 3.
Also if not already present install:
For bash testing install:
For python2.7 testing install:
If you plan to contribute to the project then the clone would be from your forked repo instead of scriptremote.
>$ cd ~ (or your preferred install location) >$ git clone https://github.com/jimb245/scriptremote |>$ cd scriptremote ~$ cp npm-shrinkwrap-dev.json npm-shrinkwrap.json >$ npm install >$ cd public/lib/forge-bower >$ npm install >$ npm run minify
First set up an email forwarding account. This will be used to
send various security-related messages and user notifications.
Copy the sample credentials file and substitue your values
for the MAILER
dummy values:
>$ cd ~/scriptremote >$ cp credentials.env .env >$ chmod 600 .env >$ vim .env
Some services are stricter than others about relaying mail. To help ensure that mail can be sent choose the same provider as expected for registered user emails, and set MAILER_FROM to the same address as MAILER_EMAIL_ID. Any mailing errors will be logged to the console. If there is a problem it will probably first show up when registering the admin user below.
Second, generate a random string for the session middleware. For example:
>$ openssl rand -base64 32Substitute the result for the
SESSION_SECRET
value in .env
>$ grunt developmentThis should start the server listening on localhost:3000. Check that you can access the site with a browser.
Code organization is roughly similar to meanjs.org v0.3.
Server code is in directory app
. Registration, login, and password reset pages are handled by the server directly rather than by the Angular framework. The login page is compatible with password managers. The server template manager is handlebars and the template layouts are in app/views/layouts
, one for the server-managed pages and one for Angular.
Public files are in directory public
. The Angular-based code is in
public/modules
. The bash and python script utilities and their tests are in
public/scripts
. Doc files other than README.md
are in
doc
.
Config files are located in config/env
.
The server configuration is determined by the NODE_ENV
environment
variable. The defined configuration values are:
The displayed release version is set in config/env/all.js
.
The server startup files are server.js, and server_mod.js which returns a promise that is useful in test initialization.
>$ grunt
Starts a server using the development configuration, on localhost:3000, mongo database scriptremote-dev
, plus concurrent watch tasks.
>$ grunt development
Starts a server using the development configuration, on localhost:3000, mongo database scriptremote-dev
, no concurrent tasks.
>$ grunt lint
Runs jshint, csslint
>$ grunt testserver
Starts a server using the test configuration, on localhost:3000, mongo database scriptremote-test
, no concurrent tasks.
>$ grunt test
Runs all tests on localhost:3000, mongo database scriptremote-test
Requires pre-registration of admin user in the test database and setting
environment variables SRADMINEMAIL, SRADMINPASSWORD
.
There are ~400 unit tests, of four types:
If the HTTP 429 error occurs during a test run it is probably because
the brute force login protection data has become stale. To clear it
use the mongo
commandline utility to connect to the
scriptremote-test
database and delete the
bruteforce
collection.
There are no automated end-to-end tests yet.
>$ grunt build
Does compression, cache busting, string substitution, document generation, shrinkwrapping.
Runs in the development
configuration.
The generated outputs are in directories:
public/dist
public/doc
app/routes/api/api.server.routes.js
npm-shrinkwrap.json
npm-shrinkwrap-dev.json
public/dist
includes the minified front-end code and libraries and is
under version control. The non-release configurations (developement, test)
instead load individual libraries from public/lib
and code
from public/modules
.
The task substitutes the version string into package.json
and into copies of the script utility files in public/dist
.
For cache busting it includes the version or a hash string in the
names of libraries in public/dist
.
Additional References:


procedure Changed;
procedure Changed(const Rect: TRect);
Will mark the layer for update and calls the OnChange event, provided the change notification is not masked with BeginUpdate. If a rectangle of the changed area (Rect) is set, only this area will be updated - provided the RepaintMode of the owning TCustomImage32 instance is set to rmOptimizer.


[gecode-users] Getting domain values after posting
Efstratios Kalogirou
efkalog at gmail.com
Tue Mar 28 17:35:20 CEST 2006
Hi all,
I am trying to get the remaining (valid) values and the size of the domain
of a variable after posting some constraints (assuming that due to the
constraints some values inside the domain are no longer valid). It seems
that everything is fine when I don't use any BoolVar to wrap the contraint.
For example:
IntVarArray q(this,1,0,10);
post(this,q[0]==3);
cout<<"The size of the domain is now "<<q[0].size()<<endl;
In the above case the size of the domain is indeed 1 and the solution is
correctly the value 3.
But things are different when I try to wrap the equality constraint in a
BoolVar:
IntVarArray q(this,1,0,10);
BoolVar wrapper(this,0,1);
rel(this,q[0],IRT_EQ,3,wrapper,ICL_BND);
post(this, wrapper==1);
cout<<"The size of the domain is now "<<q[0].size()<<endl;
In the latter example I get again the corrent solution 3 but after posting
the constraint the size of the domain remains 11 and doesn't shrink to 1 as
I would expect.
Since I am solving problems using the second way I am wondering if there is
a way to shrink the domain of the variable after posting as showed in the
second example. Also how can I get all the valid values of the domain of a
variable after posting? I assume this can be done by using iterators but I
am not certain how exactly to relate the iterator with the IntVar or the
IntSet that represents the variable, so any enlightening on that, would be
highly appreciated.
Best,
Stratos Kalogirou
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.ps.uni-sb.de/pipermail/users/attachments/20060328/0810fb34/attachment.htm>
More information about the gecode-users
mailing list


Fresh insights, bright minds.
What we do?University of Bath students team providing analyses and consultations in marketing, strategy, accounting and IT based on academic knowledge and first-hand experiences.
Get Started!See your business through the lens of your customers. We can show you the way to best reach new customers and build great relationships with current ones. Divize a detailed marketing plan, take care of important social media and find areas to improve upon.
Do you know, what are the current trends in your industry worldwide and which should you consider adopting? We will use various analyses to find your strong sides to build on, weaker links to improve and establish next strategical steps towards success.
Meaningless numbers and charts? Be proactive in your accounting! We will show you which areas need support and how can you achieve it. There is plenty of data and information to use, all it takes is a thorough look and understandable conclusions.
Create a responsive, modern and befitting website. Protect security of your and your customers’ data. Optimise SEO or set up SEM for new customers to find you. Recommend both software and hardware to help your run your business more efficiently and easily.
STRATEGY
Business Administration student from the Czech Republic with first-hand consulting experience from RSM and Accenture. Graduate of Microsoft STC programme, Google Digital Garage courses and Top10 team in McKinsey SolveIt competition. In free time engaging as a UK representative of an anti-bullying start-up FaceUp, working on various international projects and keen on ballroom dancing and guitar playing.
IT
Mechanical Engineering student originally from Central Bohemia who previously studied at international school Leaf Academy, Slovakia. Currently developing websites and mobile apps in Revolware and creating a new high school website. Besides taking part in numerous mathematical and programming competitions, he has experience with international projects, organising, volunteering and political campaigning.
MARKETING
Business administration student at the University of Bath with direct experience of marketing through a six month placement at Shawbrook Bank and an insight into the operation of design agencies. Also experienced in the hospitality and care sectors through working for a high profile hotel company, a senior living care home and a hotel booking company. In her spare time she enjoys running around the city and will be taking on the Bath Half to help raise money for charity.
ACCOUNTING
Business Administration student who has previously studied social sciences at one of Romania’s top 3 schools. Through his placement he has gained extensive experience in the financial sector with Hitachi Capital (UK)’s Treasury department, further on in PwC’s M&A Corporate Finance team as well as a Romanian SME as an accountant. Most of his free time is devoted to his passions - economics, sports and awesome guitar playing.
We will happily arrange a meeting where we can get to know you, your business and do your best for your success!


As part of Spain, the Canaries are members of the EU, with which they have a special relationship. The islands have remained outside the EU VAT area, although there is a low local tax on sales and services. The usual EU regulations apply, although because of their isolated position, the authorities tend to treat all arriving yachts as if coming from a non-EU country.
All boats should report immediately to the Port Authority or marina on arrival and formalities can now be completed at the major port on any of the seven islands.
The Port Captain or marina office who will advise on the correct procedure and, in the case of the marinas, will contact the relevant authorities. The Canaries are a duty-free area, so yachts are not expected to clear customs.
There are no restrictions on yacht movements in the Canaries, although papers may be checked at subsequent ports.
It is advisable to obtain Clearance when leaving the Canaries as this is often required by officals in other countries. However, in Las Palmas it is almost impossible to obtain such papers.
Last updated October 2014.
Passports must be valid for 3 months beyond the intended stay.
Visa exemptions and requirements are as for Spain; however, this does not appear to be applied strictly to yachts, provided the person also leaves the islands by yacht.
The Canary Islands are part of the Schengen Agreement Area.
Passports of crew are not normally stamped on arrival, but if crew members wish to leave by air, it is essential to get their passports stamped, as otherwise they might be turned back from the airport.
Visas are not required for nationals of the EU, Norway, Iceland or Switzerland regardless of the length of stay.
Visas are not required for nationals of other West European countries, Canada and the United States, as well as Argentina, Australia, Bolivia, Brazil, Chile, Colombia, Costa Rica, Ecuador, El Salvador, Guatemala, Honduras, Iceland, Israel, Japan, Kenya, South Korea, Malaysia, Mexico, New Zealand, Nicaragua, Norway, Panama, Paraguay, Singapore, Uruguay and Venezuela for stays of up to 90 days in any 180 day period.
Children under 14 of any nationality do not require visas if they have their own passports.
Visas are required for all other nationals or for stays longer than 90 days, to be obtained in advance from a Spanish embassy or consulate abroad. If obtained locally, proof of medical insurance and adequate funds will be required.
National of the following countries will need to apply for a visa in person:- Afghanistan, Algeria, Bahrain, Bangladesh, Belarus, Burundi, China, Colombia, Democratic Republic of Congo, Ecuador, Egypt, Indonesia, Iran , Iraq, Jordan, Kazakhstan, Kosovo, Kuwait, Lebanon, Libya, Nigeria, N. Korea, Oman, Pakistan, Palestine, Philippines, Qatar, Tunisia, Rwanda, Saudi Arabia, Somalia, Sri Lanka, Sudan, Suriname, Syria, United Arab Emirates, Vietnam, Yemen, Zambia, Zimbabwe.
Often the immigration official does not stamp passports of people entering on yachts, but if planning to leave Spain by another means of transport, an entry stamp (entrada) will be needed.
Last updated February 2016.
There are no customs formalities on arrival, nor are there restrictions on firearms.
However, Customs are concerned about drug trafficking, especially from North Africa, and although they appear to be easy-going, they do keep a close eye on yacht movement.
It is possible to lay up a boat in which case the authorities must be informed and the boat is sealed. Duty is not then liable.
Although the Islands are in the EU, they are outside the EU Customs territory, so VAT is not applied here. Instead, there is a specific Sales Tax (IGIC) which has a general rate of 5%. This tax is payable on non-EU boats which remain in use, in the country for more than 18 months.
British cruisers who recently imported their boat into Spain (in Las Palmas de Gran Canaria) with the new improved Spanish system, reported the process to be simple. All paperwork is done at Trafico and 12% of the purchase cost (not current value) of the boat needs to be paid.
Importing Spares
Importing spares can unfortunately still be very complicated due to the Canaries’ status as an outermost region, outside the EU VAT area. It is recommended to use an agent if bringing in items of value, since this way the item can both be sent as cargo from airport to airport (each of the islands has at least one!) and arrangements can also be made for the item to be imported to the boat as a vessel in transit, thus avoiding importation taxes.
Courier companies (DHL, Fedex, UPS and TNT) can be rather difficult to work with as they either have in-house customs departments or send off packages to third parties, upon which point, especially recently in the case of Fedex, they can be very difficult to trace. If this route cannot be avoided, be sure to add a contact telephone number on the packaging to avoid the package being held in limbo.
Last updated January 2015.
Medical facilities are good.
There are both public and private hospitals on the main islands. They generally have interpreters for non-Spanish speaking patients.
There are no overtime fees as clearance is done during office hours.
Tasa de ayuda a la navegacion (Navigational assistance rates or the "lighthouse tax")
Light dues, payable throughout Spain (and the Canary Islands), were revised for 2015. This tax is now charged as a daily rate to transient foreign yachts.
Tasa de ayuda a la navegación (T-0): m ² x 0.025 x day. (Sail ≥ 12 m)
See this noonsite report for full details.
Tasa de Embarcaciones deportivas y de recreo (Recreational vessel rates)
This is charged by the day as well. See the above report for full details.
Tasa de embarcaciones deportivas y de recreo (Berthing) (T-5): 0,145 x m² x day.
Total Daily Rate to pay
Multiply length (meters) by beam (meters), and result in square meters multiplied by 0.17€ (0.145€ + 0.025€), and the daily rate is obtained (included IGIC local tax).
Last updated January 2015.
Fishing
Spear fishing and fishing with sub-aqua equipment in the nature reserves or protected underwater parks is forbidden, as is the taking of coral or other marine life in these areas.
Diving
Diving near military establishments, naval or commercial vessels, or inside harbours is also forbidden.
Diving is only permitted with an authorised diving establishment and the participant must have a diving qualification, insurance and a Spanish Diving licence. This latter requires a passport, a medical examination and a dive logbook.
Last updated February 2016.
The Canary Islands come under the Pets Travel Scheme (PETS) and animals are allowed in and out providing they have Pet Passport, microchip, current Health Certificate and current Rabies Vaccination Certificate issued by recognised Veterinarian and have been blood tested prior to travel as detailed under the scheme.


{% extends 'rbase.html' %} {% block title %}Password Reset Complete{% endblock %} {% block content %}
Your password has been reset. Click here to log in.


0.0.0
Function to populate the page when an event is selected in the dropdown.
Wrapper to call the populateEventBox function in events.stache.
Getter for the username.
On-click to submit a user's selections for attendance and tasks.


Delhi Police denies allegations of lathi-charge on protesters
Around 100 students were detained during the agitation
by Staff ReporterThe Delhi Police said that its personnel did not use sticks or lathis during the protest march by Jawaharlal Nehru University students on Monday. The march began from the university and was contained near Safdarjung Tomb, said the police.
“Delhi Police staff acted with restraint... despite continued defiance by some groups of students, the police resorted to methods of persuasion. There was no use of water cannons, tear-gas shells or lathi-charge at any point,” said Delhi Police Additional Public Relations Officer Anil Mittal.
Around 30 police personnel and 15 students were injured during the day-long protest, said an officer.
‘Released in evening’
The police said that around 100 students were detained during the protest march and were taken to different police stations, including Badarpur and Fatehpur Beri police stations.
They were released in the evening, they added.
The force had made elaborate arrangements for the march, which the students had planned to start from the university and conclude at Parliament street.
The police had put up barricades at several points, including the main gate of JNU, but the students managed to overcome the obstacles and reach Safadarjung Tomb where they were eventually contained.
Huge deployment
Over 800 officials and 10 companies of Central Armed Police Force (CRPF) were deployed to maintain law and order.
Senior officers, including Deputy Commissioners, Joint Commissioner and Special Commissioner were present at the spot.
The police said that thousands of students who had gathered at the university were contained for a while, but subsequently started slipping away and took the Munirka Vihar route, which has nearly 20 entry and exit points to proceed towards New Delhi area.
The students finally reached Safdarjung Tomb.
“Some agitated students still attempted to forcibly break the barricades again and had to be pushed back,” Mr. Mittal said.
The police said that students were constantly told by senior officers not to continue the march as a high- powered committee had been constituted to look into their demands.
Traffic snarls
In a parallel development, traffic at certain points in the Capital remained affected in the evening, including on Nelson Mandela Marg, Aurobindo Marg, Baba Gang Nath Marg, AIIMS flyover up till Prithviraj Road.
Delhi Traffic Police updated commuters on social media advising them to take alternative routes.


An Application Collaboration represents an aggregate of two or more Application Components that work together to perform collective application behaviour.
An Application Collaboration specifies which components cooperate to perform some task. The collaborative behavior, including, for example, the communication pattern of these components, is modeled by an Application Interaction. An Application Collaboration typically models a logical or temporary collaboration of Application Components, and does not exist as a separate entity in the enterprise.
Application Collaboration is a specialization of Component, and aggregates two or more (cooperating) Application Components.
The name of an Application Collaboration should preferably be a noun.
Application. Active Structure.
Two Application Components collaborate in transaction administration: an Accounting component and a Billing component. This collaboration performs the task "Administrate transactions".


From 1924-2014, during Winter Olympic, Canada has succuesfully achieved 625 medals in total with 315 gold medals, 203 silver medals and 107 bronze medals. We are landed in Top 2 just a few less medals than America.
Although we do not have many total medals as America, you can see we have more gold medals than America which means we focus in quality more than quantity.
Our total gold medals is more than half number of medals we achieve throughout the year. We have won many medal and keep thriving after years where even silver medals are even more than 1/4 compare to Silver medal.
From the chart we featuring the unbalance distribution of genders are unequals, when the number of male medialists are more than half of the number of female. Still it could be the motivation for women athletics to try harder to balance the number, because people of all gender should be equals
Following to the chart, Canada are the grand champion of Ice Hockey and we still developing to be better. Thanks to the cold, snowy living conditions every year, Ice Hockey is definitely the best sport in Canada.
Since women were not able to participate Olympic as early as men did in the history, men likely to achieve more and has larger number of atheletics. But that does not mean men always wins more. In the chart, you can see that no men won any medals Biathlon as well as women has more medals in skiing than men.


This guide tells you everything you need to know to install Bootstrap Arrows into your project and get it up and running.
Bootstrap Arrows works in a restricted form independently of any 3rd party code. However, to use the multi-angle feature, jQuery is required.
Although Bootstrap Arrows matches the look and feel of Bootstrap's button colours and style it does not actually have a dependancy on the Bootstrap framework.
Installing is simple. Place the bootstrap-arrows.js
file in the your preferred js directory. Most likely this will be
the same directory where you placed the jQuery and Bootstrap JavaScript files. This can be anywhere in your file structure but I recommend placing it in /assets/js
.
Next, place the bootstrap-arrows.css
file in your CSS folder. This can also be anywhere but I recommend placing it in /assets/css
.
And finally put the arrows.png
sprite image into your image
folder. To save having to update the image reference in the bootstrap-arrows.css
file
place the image in /assets/img
.
Reference the CSS within the
of your document,
like this <link href='/css/bootstrap-arrows.css' data-angle='stylesheet' type='text/css' />
Then reference your JavaScript files at the bottom of your document just above the
tag.
With the jQuery and Bootstrap references already in place, add the reference to the bootstrap-arrows.js
like this

and you're ready to use it.
Now that all the requirements are in place you're ready to use Bootstrap Arrows.
Draw your first arrow with
You should see an arrow like this one:
If you need arrows that point in directons other than up, initialise the bootstrap-arrows.js
jQuery plugin, which dynamically adds
the CSS3 rotate
transform attribute to specified arrows, allowing you to have each arrow
point at any angle from 0 to 360 degrees.
Inside the $(function () {
and });
tags initialise the plugin with $('.arrow, [class^=arrow-]').bootstrapArrows();
.
Now you can point an arrow to any angle by specifying the angle inside the data-angle
tag of the element. For instance,

will render the default grey arrow pointing to 45 degrees, like this one:
You can also use the larger arrow format:
which will render an arrow like this one:
Bootstrap supports the same type of formats as Bootstrap Alerts. So you can add
-primary
, -info
, -success
,
-warning
, -danger
, and -inverse
to any arrow to get different colours.
Using
will render a blue arrow like this one:
Colours and sizes can be used in conjunction with each other too, so using
will render a large green arrow like this one:
There are dozens of demos on the homepage, multi-angle demos and demos with other colours.
Thanks for trying out Bootstrap Arrows, and if you've any questions, send an email to hello [at] iarfhlaith dot com.
Bootstrap Arrows currently uses Bootstrap 2.1.1. Built for sharing by Iarfhlaith Kelly


My favorite things
These are a few of my favorite things.
People
Here are a few of my favorite people!
- My brother Christopher
- My mom and dad:
- Steve
- Carol
- My friend Jessica
- My friend Candy
Flavors of Gelato
These are my three favoritesm in order:
- Raspberry
- Lemon
- Chocolate
Websites
These are my favorite websites
- Facebook
- Twitter
Thanks for reading about me!


{% extends "base.html"%} {% block content %} {% load static %}
Dr. Horacio Ferriz has been acquiring data from four wells in Woodward Regional Park every three months since 2016 to measure possible contamination of groundwater from the campsite wastewater. Two wells check the composition of incoming groundwater and two wells sample for groundwater on the other side of the evaporation pond. We will develop a program to preprocess the data to compare the chemical analyses of both inbound and outbound groundwater.
This map shows the system of wells and ponds used to monitor and deal with waste water from the woodward reservoir recreation area. The blue line shows the direction of groundwater flow, which follows elevation gradient from high to low making it a gravity dependent flow. Wells are placed in a way that we can measure the total dissolved solids in the ground water before and after it passes under the evaporation pond which is the last step of wastewater sanitation for this site. Total Dissolved Solids we are concerned about are compounds like nitrates, carbonates, sulfates, and bicarbonates as well as elements like iron, potassium, calcium, magnesium, and sodium.
Here we have a model of water penetrating through sediment layers and what a typical aquifer looks like. We have a shale layer that acts as an impermeable layer for the water, so the water cannot go deeper than that layer. This model shows how runoff water from a precipitation event as well as the natural flow of the groundwater towards a nearby river which is why it is important to keep possible contamination monitored. There is a sampling well before the flow reaches the evaporation pond, and a few wells after the evaporation pond, samples taken at all these wells will show whether or not there is a change of concentration of chemical species dissolved in the water. It will basically show if the groundwater is picking up anything when as it passes underneath the evaporation pond that we would not want for environmental purposes.


This is the second panel of the basic tab example. This is the second panel of the basic tab example.
This is the first panel of the basic tab example. You can place all sorts of content here including a grid.
This is the second panel of the basic tab example. This is the second panel of the basic tab example.
This is the third panel of the basic tab example. This is the third panel of the basic tab example.
This is the fourth panel of the basic tab example. This is the fourth panel of the basic tab example.
This is the first panel of the basic tab example. You can place all sorts of content here including a grid.
This is the second panel of the basic tab example. This is the second panel of the basic tab example.
This is the third panel of the basic tab example. This is the third panel of the basic tab example.
This is the fourth panel of the basic tab example. This is the fourth panel of the basic tab example.
This is the first panel of the basic tab example. You can place all sorts of content here including a grid.
This is the second panel of the basic tab example. This is the second panel of the basic tab example.
This is the third panel of the basic tab example. This is the third panel of the basic tab example.
This is the fourth panel of the basic tab example. This is the fourth panel of the basic tab example.
This is the first panel of the basic tab example. You can place all sorts of content here including a grid.
This is the second panel of the basic tab example. This is the second panel of the basic tab example.
This is the third panel of the basic tab example. This is the third panel of the basic tab example.
This is the first panel of the basic tab example. You can place all sorts of content here including a grid.
This is the second panel of the basic tab example. This is the second panel of the basic tab example.
This is the third panel of the basic tab example. This is the third panel of the basic tab example.
所有的控制参数都可用 data-options
绑定，比如： deep_linking: true, scroll_to_content: false
。
Third panel content goes here...
回调有两种方式：
$(document).mobile({ tab: { callback : function (tab) { console.log(tab); } } });以及
$('#myTabs').on('toggled.tab', function (event, tab) { console.log(tab); });
$(document).mobile({ tab: { // specify the class used for active (or open) accordion panels active_class: 'active', // Match the location hash to a label deep_linking : false, // Use location hash to scroll to content when document loaded or refresh scroll_to_content : true } });
$(document).mobile('tab', 'reflow');


Sixth Week of RC
Day 4: Answering My Own StackOverflow Question
March 28, 2019
I'm proud of myself because today I posted a question on StackOverflow, then answered it myself within 20 minutes! I've figured out my own StackOverflow questions before, but never this quickly or smoothly. It felt good to go back and edit the post with further information.
Since I've finally made progress on an older pull request that enables direct photo uploads through officers' profile pages, I'm now getting back to work on more recent OpenOversight pull requests. Currently, I need to respond to feedback on a pull request that adds the unique_internal_identifier
string column to the departments table.
I switched to the unique_internal_identifier
branch, which already had the relevant migration, and ran flask db stamp head
. The terminal gave me a message of applying stamp revision 3f8ca0b9fe63
, which was the migration that created the new field. However, I next inspected the database in psql, and the field wasn't there. When I ran flask db upgrade
, flask didn't apply the relevant migration, because it thought the database already had the unique_internal_identifier
field in place.
I realized that if I stamped flask db head to be at a previous migration, it would recognize and apply the migration that adds the unique_internal_identifier
. Feeling intrepid, I ran flask db history
to see the list of migrations, and noted that the previous revision number was 2a9064a2507c
. I ran flask db stamp 2a9064a2507c
to set the database head to that revision without performing any migrations. By running flask db current
, I could confirm that I had correctly changed the db head. Finally, I ran flask db upgrade 3f8ca0b9fe63
to apply the unique_internal_identifier
> migration. I validated that migration occurred successfully by running flask db current
and also inspecting the departments
table in psql. The unique_internal_identifier
column now appears.


Bruce Holloway
Digital Research, Inc.
Monterey, CA
USA
Believe it or not, this is the old standard “Hello, world” program performed in a very complex way. The judges and the author defy you do determine how it does it. It is a good thing that K&R didn’t use this version as the first C program!
Copyright © 1986, Landon Curt Noll & Larry Bassel. All Rights Reserved. Permission for personal, educational or non-profit use is granted provided this this copyright and notice are included in its entirety and remains unaltered. All other uses must receive prior permission in writing from both Landon Curt Noll and Larry Bassel.


{% extends 'base.html' %} {% block content%}
{{ post.formatted_markdown|safe }}
Written by {{post.author|capfirst}} {{ post.created }}
{{ comment.text|capfirst|linebreaks }}
{{ comment.text|capfirst|linebreaks }}


Avoid using null on string-based fields such as CharField and TextField. Exception: if a CharField has unique=True and blank=True set, then null=True is required to avoid constraint violations.


--- layout: default title: Breakout groups description: Every week after the presentation, we break out into topic-specific working and learning groups led by regular facilitators to guide conversations, answer questions, and build teams for civic apps. The groups are split into two types - working groups and learning groups. ---
Every week after the presentation, we break out into topic-specific working and learning groups led by regular facilitators to guide conversations, answer questions, and build teams for civic apps. The groups are split into two types: working groups and learning groups.
Want to start your own breakout group? Just mention it at the next hack night and people will vote with their feet!
This week, we're trying out a new way of listing our breakout groups by listing them as Issues on GitHub.
See the breakout groups Add your breakout group


The BaSe (Basic Search Engine) tutorial details how to create an application using the Django web application framework and the PuppyIR framework. Before starting this tutorial, please ensure that you have followed the instructions on Requirements and Installation for installing the framework (and its dependencies) and have, in addition, installed Django.
For more information on Django and a more detailed explanation of the steps detailed in this tutorial, please refer to the Django tutorial.
First, browse to the directory you want to store BaSe in and run the following commands to create a Django project for our application:
$ path/to/django/installation/django-admin.py startproject base
$ cd base
$ python manage.py runserver
Check it worked by loading up your browser and going to: http://localhost:8000. A standard Django success page should be displayed congratulating you on creating your first Django project.
Now, we will create an application within the BaSe project called WeSe (Web Search). It is important to note that applications, such as WeSe, cannot have the same name as the project they are part of. Run the following command from in the BaSe directory to create the WeSe application:
$ python manage.py startapp wese
The next step is to amend the settings.py file in the BaSe folder to include WeSe in the BaSe project. Open this file and amend the installed applications section to look like this:
INSTALLED_APPS = (
# All the other currently installed apps here
'wese',
)
Add a new directory called template in the BaSe folder. In this folder create a file called index.html, then add the following html to it:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

<title>WeSe (Web Search) - a BaSe application</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

WeSe (Web Search) - a BaSe application

<form action="/wese/query/" onsubmit="return validate_form(this)" method="post">
{% csrf_token %}
<input type="text" name="query" value="" id="query">
<input type="submit" value="Search" />
</form>

{% block main %}{% endblock %}

Now we need to amend settings.py in the BaSe directory to include this new template directory. Add the following lines of code at the top of the file:
import os
APP_DIR = os.getcwd()
This will set-up a variable with the current working directory, we can then use this to refer to the template directory’s path relative to this variable (no need to hard code the absolute path). Amend the template directory’s code (in settings.py) so it looks like this:
TEMPLATE_DIRS = (
os.path.join(APP_DIR, 'templates')
)
The last step is to add a url for WeSe, so that Django knows which view to fetch. Load the ‘url.py’ file in the BaSe directory and change it so it looks like this:
urlpatterns = patterns('',
# Other URLs
(r'^wese/$', 'wese.views.index'),
)
Now add the following code to views.py in the WeSe folder, this will return our index page (using the template we created earlier).
# Django
from django.template.context import RequestContext
from django.shortcuts import render_to_response
def index(request):
"""show wese index view"""
context = RequestContext(request)
return render_to_response('index.html', context)
Now go to: http://localhost:8000/wese and our index page will be displayed.
Create a file called service.py in the WeSe directory. This will store all our web services and configure them. Put the following code in it:
from puppy.service import ServiceManager, SearchService
from puppy.search.engine import Bing
from puppy.model import Query, Response
config = {}
# create a ServiceManager
service = ServiceManager(config)
# create a SearchService and choose the search engine
bing_search_service = SearchService(service, "bing_web")
bing_search_service.search_engine = Bing(bing_search_service)
# add SearchService to ServiceManager
service.add_search_service(bing_search_service)
Now we have to create a template to show our results, add a new template (in the same directory as index.html) called results.html and add the following html to it (this template will be added to index to display the results - see Django documentation for more details on how this is done).
{% extends 'index.html' %}
{% block main %}

Search Terms: {{ query }}

{% for result in results %}

{{ result.title }}

{{ result.summary }}

{{ result.link }}

{% endfor %}
{% endblock %}
We know need a view for WeSe to handle the receiving of a query, getting the results and then displaying them. Load views.py in the WeSe directory and add the following new imports and method:
# From PuppyIR
from puppy.model import Query, Response
# From WeSe - get our service manager so we can search for results
from wese.service import service
def query(request):
"""show results for query"""
user_query = request.POST['query']
results = service.search_services['bing_web'].search(Query(user_query)).entries
context = RequestContext(request)
results_dict = {'query': user_query, 'results': results}
return render_to_response('results.html', results_dict, context)
Finally, we need to add a new URL to deal with queries, load urls.py from the BaSe directory and amend the code to:
urlpatterns = patterns('',
# Previous URL's - these are not shown for clarity reasons
(r'^wese/query/$', 'wese.views.query'),
)
Now go to: http://localhost:8000/wese and try out a few queries. Congratulations, that’s you created your first PuppyIR/Django web application!


CHECK OUT OUR
FIRST
JOB POSTING!!
To stay up-to-date with the latest news, follow us on Facebook or
Twitter.
For media inquiries, please email pr@seconddinner.com


fun setCursorPosX(cursorX: Int): AsciiPanelView
Sets the distance from the left new text will be written to.
cursorX - the distance from the left new text should be written to
cursorX
Return this for convenient chaining of method calls


When you look up at the night sky you see the stars of our galaxy. They are all at different stages in their life. Some of them are young and newly forming, others are as old as the galaxy itself. In these cards we will briefly explore the wonder that is the life cycle of a star.
We start our journey in a stellar nursery. A chaotic mess consisting of gaseous clouds spanning multiple light years churning together. As gravity takes hold of the chaos, the clouds begin to collapse inward. Pressure and temperature drastically increase in the densest parts of the clouds. When the pressure and density reach a critical threshold a stellar miracle of life occurs. Nuclear fusion is achieved and a star is born. There are different forms of nebulae with different colors and compositions. The reasons for the glow vary for radiation to being lit by nearby bright stars. However these are not to be confused with supernova remnant nebula as these are not typically star forming regions.
All good things must come to an end and here we find the supernova. Stars are primarily made of hydrogen which is the fuel for their nuclear fusion cores. Over the millennia the hydrogen is slowly converted to helium. Helium requires hotter temperatures to fuse than hydrogen. When the hydrogen runs out, the star undergoes a transformation as it begins to fuse helium. For some massive stars this forces them down a dangerous path that results in a first class ticket to a supernova. The star will continue to fuse heavier and heavier elements as the previous fuel runs out. For smaller stars the higher demand of energy to fuse heavy elements will cause it to expand and eventually lose its outer atmosphere. For the larger stars that chain reaction continues until gravity can no longer contain the nuclear fire. This of course results in the rapid expansion and explosion of the star.
 The hottest and densest portion left behind to glow as a remnant to its previous glory. The core was the first part of the star to form and after millions to billions of years of fusion, it will be the only part left slowly simmering as fusion comes to an end. White dwarfs are composed of oxygen and carbon. Larger stars form neutron stars when they die. Neutron stars are unique in that they are composed of only neutrons.
Regardless of the method in which a star dies it always results in a large portion of its mass being dispersed back into the galaxy. The matter it returns is a product of its billions of years of fusion. It has been enriched with heavier elements that which it began. This is analogous to the old adage of leaving a place better than you found it. Given enough time this process yields the heavy elements in quantity high enough to support our complex biological chemistry. So in a way we can thank the star lifecycle for everything that we know and love today.