This document is a high-level overview of how to create a complete CORBA (Common Object Request Broker Architecture) application using IDL (Interface Definiton Language) to define interfaces and the Java IDL compiler to generate stubs and skeletons. This document describes using the ImplBase Inheritance Server-Side Model.
The idlj compiler now generates server-side mappings based on the POA Inheritance Model as the default. For compatibility with existing applications, a new flag has been added to the idlj compiler to allow it to generate server-side mappings based on the ImplBase Inheritance Model, -oldImplBase. Existing applications that need to talk to servers created in J2SE 1.3 or prior may need to update their MAKEFILE so that this flag is used, however, new applications that have no such requirements should not generate these deprecated mappings.
NOTE: ImplBase is deprecated in favor of the POA model, but is provided to allow compatibility with servers written in J2SE 1.3 and prior. We do not recommend creating new servers using this nonstandard model.
This document contains:
Defining the Interface (
Hello.idl
)
The first step to creating a CORBA application is to specify all of your objects and their interfaces using the OMG's Interface Definition Language (IDL). IDL has a syntax similar to C++ and can be used to define modules, interfaces, data structures, and more. The IDL can be mapped to a variety of programming languages. The IDL mapping for Java is summarized in IDL to Java Language Mapping Summary.
The following code is written in the OMG IDL, and describes a CORBA object whose sayHello() operation returns a string and whose shutdown() operation shuts down the ORB. To learn more about OMG IDL Syntax and Semantics, link to the OMG Web site, and read Chapter 3 of the CORBA Specification.
Hello.idl
module HelloApp { interface Hello { string sayHello(); oneway void shutdown(); }; };NOTE: When writing code in OMG IDL, do not use an interface name as the name of a module. Doing so runs the risk of getting inconsistent results when compiling with tools from different vendors, thereby jeopardizing the code's portability. For example, code containing the same names could be compiled with the IDL to Java compiler from Sun Microsystems and get one result. The same code compiled with another vendor's IDL to Java compiler could produce a different result.
To complete the application, you simply provide the server (HelloServer.java
)
and client (HelloClient.java
)
implementations.
Implementing the Server (
HelloServer.java
)
The example server consists of two classes, the servant and the server. The servant, HelloImpl, is the implementation of the Hello IDL interface; each Hello instance is implemented by a HelloImpl instance. The servant is a subclass of _HelloImplBase, which is generated by the idlj compiler from the example IDL. The servant contains one method for each IDL operation, in this example, the sayHello() and shutdown() methods. Servant methods are just like ordinary Java methods; the extra code to deal with the ORB, with marshaling arguments and results, and so on, is provided by the skeleton.
The HelloServer class has the server's main() method, which:
NOTE: ImplBase is deprecated in favor of the POA model, but is provided to allow compatibility with servers written in J2SE 1.3 and prior. We do not recommend creating new servers using this nonstandard model.
The HelloServer for the ImplBase server-side implementation differs only slightly from its POA counterpart. The sections of the POA-based server that get a reference to the root POA and activate the POAManager are not necessary for this implementation, which follows:
HelloServer.java
// Copyright and License import HelloApp.*; import org.omg.CosNaming.*; import org.omg.CosNaming.NamingContextPackage.*; import org.omg.CORBA.*; import java.util.Properties; class HelloImpl extends _HelloImplBase{ private ORB orb; public void setORB(ORB orb_val){ orb = orb_val; } public String sayHello(){ return "\nHello world !!\n"; } public void shutdown(){ orb.shutdown(false); } } public class HelloServer { public static void main(String args[]) { try{ // create and initialize the ORB ORB orb = ORB.init(args, null); // create servant and register it with the ORB HelloImpl helloImpl = new HelloImpl(); helloImpl.setORB(orb); // get the root naming context org.omg.CORBA.Object objRef = orb.resolve_initial_references("NameService"); NamingContext ncRef = NamingContextHelper.narrow(objRef); Hello href = HelloHelper.narrow(helloImpl); // bind the Object Reference in Naming NameComponent nc = new NameComponent("Hello", ""); NameComponent path[] = {nc}; ncRef.rebind(path, href); System.out.println("HelloServer ready and waiting ..."); // wait for invocations from clients orb.run(); } catch (Exception e) { System.err.println("ERROR: " + e); e.printStackTrace(System.out); } System.out.println("HelloServer Exiting ..."); } }
HelloClient.java
)The example application client that follows is similar to the one presented in the default tutorial, however, the new Interoperable Naming Service features are not used in this example to preserve backward compatibility. The example client application:
HelloClient.java
// Copyright and License import HelloApp.*; import org.omg.CosNaming.*; import org.omg.CosNaming.NamingContextPackage.*; import org.omg.CORBA.*; public class HelloClient{ static Hello helloImpl; public static void main(String args[]){ try{ // create and initialize the ORB ORB orb = ORB.init(args, null); // get the root naming context org.omg.CORBA.Object objRef = orb.resolve_initial_references("NameService"); NamingContext ncRef = NamingContextHelper.narrow(objRef); // resolve the Object Reference in Naming NameComponent nc = new NameComponent("Hello", ""); NameComponent path[] = {nc}; Hello helloImpl = HelloHelper.narrow(ncRef.resolve(path)); System.out.println("Obtained a handle on server object: " + helloImpl); System.out.println(helloImpl.sayHello()); helloImpl.shutdown(); } catch (Exception e) { System.out.println("ERROR : " + e) ; e.printStackTrace(System.out); } } }
Despite its simple design, the Hello World program lets you learn and experiment with all the tasks required to develop almost any CORBA program that uses static invocation.
This example requires a naming service, which is a CORBA service that allows CORBA objects to be named by means of binding a name to an object reference. The name binding may be stored in the naming service, and a client may supply the name to obtain the desired object reference. The two options for Naming Services shipped with this version of J2SE are tnameserv, a transient naming service, and orbd, which is a daemon process containing a Bootstrap Service, a Transient Naming Service, a Persistent Naming Service, and a Server Manager. This example uses orbd.
When running this example, remember that, when using Solaris software, you must become root to start a process on a port under 1024. For this reason, we recommend that you use a port number greater than or equal to 1024. The -ORBInitialPort option is used to override the default port number in this example. The following instructions assume you can use port 1050 for the Java IDL Object Request Broker Daemon, orbd. You can substitute a different port if necessary. When running these examples on a Windows machine, subtitute a backslash (\) in path names.
To run this client-server application on your development machine:
NOTE: ImplBase is deprecated in favor of the POA model, but is
provided to allow compatibility with servers written in J2SE 1.3 and prior. We do not
recommend creating new servers using this nonstandard model.
idlj -fall -oldImplBase Hello.idl
You must use the -fall option with the idlj compiler to generate both client and server-side bindings. This command line will generate the default server-side bindings, which assumes the POA programming model. The -oldImplBase option tells the compiler to generate the ImplBase Inheritance Model server-side bindings, instead of the default POA Inheritance Model server-side bindings. For more information on the idlj options, link to IDL-to-Java compiler options.
The idlj compiler generates a number of files. The actual number of files generated depends on the options selected when the IDL file is compiled. The generated files provide standard functionality, so you can ignore them until it is time to deploy and run your program. The files generated by the idlj compiler for Hello.idl, with the -fall command line option, are:
This abstract class is the server skeleton, providing basic CORBA functionality for the server. It implements the InvokeHandler and the Hello interface. It inherits from org.omg.CORBA.portable.ObjectImpl. The server class HelloImpl inherits from _HelloImplBase.
This class is the client stub, providing CORBA functionality for the client. It inherits from org.omg.CORBA.portable.ObjectImpl and implements the Hello interface.
This interface contains the Java version of our IDL interface. The Hello.java interface inherits from org.omg.CORBA.Object, providing standard CORBA object functionality. It also inherits from HelloOperations and org.omg.CORBA.portable.IDLEntity.
This class provides auxiliary functionality, notably the narrow() method required to cast CORBA object references to their proper types.The Helper class is responsible for reading and writing the data type to CORBA streams, and inserting and extracting the data type from Anys. The Holder class delegates to the methods in the Helper class for reading and writing.
This final class holds a public instance member of type Hello. Whenever the IDL type is an out or an inout parameter, the Holder class is used. It provides operations for org.omg.CORBA.portable.OutputStream and org.omg.CORBA.portable.InputStream arguments, which CORBA allows, but which do not map easily to Java's semantics. The Holder class delegates to the methods in the Helper class for reading and writing. It implements org.omg.CORBA.portable.Streamable.
This interface contains the methods sayHello() and shutdown(). The IDL-to-Java mapping puts all of the operations defined on the IDL interface into this file, which is shared by both the stubs and skeletons.
javac *.java HelloApp/*.java
To start orbd from a UNIX command shell, enter:
orbd -ORBInitialPort 1050 -ORBInitialHost localhost&
From an MS-DOS system prompt (Windows), enter:
start orbd -ORBInitialPort 1050 -ORBInitialHost localhost
Note that 1050 is the port on which you want the name server to run. -ORBInitialPort is a required command-line argument. Note that when using Solaris software, you must become root to start a process on a port under 1024. For this reason, we recommend that you use a port number greater than or equal to 1024.
-ORBInitialHost is an optional command-line argument. For this example, since both client and server on running on the development machine, we have set the host to localhost. When developing on more than one machine, you will replace this with the name of the host. For an example of how to run this program on two machines, see Running the Hello World Program on 2 machines.
To start the Hello server from a UNIX command shell, enter:
java HelloServer -ORBInitialPort 1050 -ORBInitialHost localhost&
From an MS-DOS system prompt (Windows), enter:
start java HelloServer -ORBInitialPort 1050 -ORBInitialHost localhost
For this example, you can omit -ORBInitialHost localhost since the name server is running on the same host as the Hello server. If the name server is running on a different host, use -ORBInitialHost nameserverhost to specify the host on which the IDL name server is running.
Specify the name server (orbd) port as done in the previous step, for example, -ORBInitialPort 1050.
When the server is running, it will echo the following message back to the terminal:
HelloServer ready and waiting ...
java HelloClient -ORBInitialPort 1050 -ORBInitialHost localhost
For this example, you can omit -ORBInitialHost localhost since the name server is running on the same host as the Hello client. If the name server is running on a different host, use -ORBInitialHost nameserverhost to specify the host on which the IDL name server is running.
Specify the name server (orbd) port as done in the previous step, for example, -ORBInitialPort 1050.
When the client is running, the following message will echo to the terminal:
Obtained a handle on server object: IOR: ... Hello World !! HelloServer Exiting ...
When you have finished this tutorial, be sure to shut down or kill the name server (orbd). To do this from a DOS prompt, select the window that is running the server and enter Ctrl+C to shut it down. To do this from a Unix shell, find the process, and kill it. The server will continue to wait for invocations until it is explicitly stopped.
Running the Hello World Application on Two Machines describes one way of distributing the simple application across two machines - a client and a server.
| Home |
Copyright © 1995-2004 Sun Microsystems, Inc. All Rights Reserved.


Count My Words
(You can count on us)
{{text}}
{% if count %} There are {{count}} words in the box {% endif %}


#include <XSECCryptoHash.hpp>
Inheritance diagram for XSECCryptoHash:
The XSECCryptoHash function is used by the library to manipulate Hashing (Digest) functions.
It is also used as the base class for HMAC functions, and thus has a setKey() method.
Public Types | |
| enum | HashType { HASH_NONE = 0, HASH_SHA1 = 1, HASH_MD5 = 2, HASH_SHA224 = 3, HASH_SHA256 = 4, HASH_SHA384 = 5, HASH_SHA512 = 6 } |
| Enumeration of Hash (Digest) types. More... | |
Public Member Functions | |
| XSECCryptoHash () | |
| virtual | ~XSECCryptoHash () |
Digest/Hash functions | |
| virtual void | reset (void)=0 |
| Rest the hash function. | |
| virtual void | hash (unsigned char *data, unsigned int length)=0 |
| Hash some data. | |
| virtual unsigned int | finish (unsigned char *hash, unsigned int maxLength)=0 |
| Finish up a Digest operation and read the result. | |
Information functions | |
| virtual HashType | getHashType (void)=0 |
HMAC Functions | |
| virtual void | setKey (XSECCryptoKey *key)=0 |
|
|
Enumeration of Hash (Digest) types. The hash types known to XSEC |
|
|
|
|
|
|
|
|
Finish up a Digest operation and read the result. This call tells the CryptoHash object that the input is complete and to finalise the Digest. The output of the digest is read into the hash buffer (at most maxLength bytes)
Implemented in OpenSSLCryptoHash, OpenSSLCryptoHashHMAC, WinCAPICryptoHash, and WinCAPICryptoHashHMAC. |
|
|
Determine the hash type of this object
Implemented in OpenSSLCryptoHash, OpenSSLCryptoHashHMAC, WinCAPICryptoHash, and WinCAPICryptoHashHMAC. |
|
|
Hash some data. Take length bytes of data from the data buffer and update the hash that already exists. This function may (and normally will) be called many times for large blocks of data.
Implemented in OpenSSLCryptoHash, OpenSSLCryptoHashHMAC, WinCAPICryptoHash, and WinCAPICryptoHashHMAC. |
|
|
Rest the hash function. XSEC will call the reset() function prior to re-using a CryptoHash object. Implemented in OpenSSLCryptoHash, OpenSSLCryptoHashHMAC, WinCAPICryptoHash, and WinCAPICryptoHashHMAC. |
|
|
The HMAC classes are treated in the library as standard hash objects that just happen to take a key. Thus all hash functions implement this function (potentially just to throw an exception) Sets the key - which needs to have a base class of XSECCryptoKeyHMAC.
Implemented in OpenSSLCryptoHash, OpenSSLCryptoHashHMAC, WinCAPICryptoHash, and WinCAPICryptoHashHMAC. |


size
size(w, h)
Sets the size of the canvas in points. This should be the first line in a script, even before any comments. The first parameters sets the width, the second parameter the height. If this command is used, it should be the first line in a script - it's illogical to set the size of the canvas halfway a script. The WIDTH and HEIGHT constants can be used to obtain the canvas size. A more convenient way to set the canvas size is by using the File > Document Setup menu.
size(400, 600)
# the canvas is 400 X 600 pixels
print WIDTH # prints 400
print HEIGHT # prints 600 |


This page outlines the steps for getting a Storm cluster up and running. If you’re on AWS, you should check out the storm-deploy project. storm-deploy completely automates the provisioning, configuration, and installation of Storm clusters on EC2. It also sets up Ganglia for you so you can monitor CPU, disk, and network usage.
If you run into difficulties with your Storm cluster, first check for a solution is in the Troubleshooting page. Otherwise, email the mailing list.
Here’s a summary of the steps for setting up a Storm cluster:
- Set up a Zookeeper cluster
- Install dependencies on Nimbus and worker machines
- Download and extract a Storm release to Nimbus and worker machines
- Fill in mandatory configurations into storm.yaml
- Launch daemons under supervision using “storm” script and a supervisor of your choice
Set up a Zookeeper cluster
Storm uses Zookeeper for coordinating the cluster. Zookeeper is not used for message passing, so the load Storm places on Zookeeper is quite low. Single node Zookeeper clusters should be sufficient for most cases, but if you want failover or are deploying large Storm clusters you may want larger Zookeeper clusters. Instructions for deploying Zookeeper are here.
A few notes about Zookeeper deployment:
- It’s critical that you run Zookeeper under supervision, since Zookeeper is fail-fast and will exit the process if it encounters any error case. See here for more details.
- It’s critical that you set up a cron to compact Zookeeper’s data and transaction logs. The Zookeeper daemon does not do this on its own, and if you don’t set up a cron, Zookeeper will quickly run out of disk space. See here for more details.
Install dependencies on Nimbus and worker machines
Next you need to install Storm’s dependencies on Nimbus and the worker machines. These are:
- Java 6
- Python 2.6.6
These are the versions of the dependencies that have been tested with Storm. Storm may or may not work with different versions of Java and/or Python.
Download and extract a Storm release to Nimbus and worker machines
Next, download a Storm release and extract the zip file somewhere on Nimbus and each of the worker machines. The Storm releases can be downloaded from here.
Fill in mandatory configurations into storm.yaml
The Storm release contains a file at conf/storm.yaml
that configures the Storm daemons. You can see the default configuration values here. storm.yaml overrides anything in defaults.yaml. There’s a few configurations that are mandatory to get a working cluster:
1) storm.zookeeper.servers: This is a list of the hosts in the Zookeeper cluster for your Storm cluster. It should look something like:
yaml
storm.zookeeper.servers:
- "111.222.333.444"
- "555.666.777.888"
If the port that your Zookeeper cluster uses is different than the default, you should set storm.zookeeper.port as well.
2) storm.local.dir: The Nimbus and Supervisor daemons require a directory on the local disk to store small amounts of state (like jars, confs, and things like that). You should create that directory on each machine, give it proper permissions, and then fill in the directory location using this config. For example:
yaml
storm.local.dir: "/mnt/storm"
3) nimbus.host: The worker nodes need to know which machine is the master in order to download topology jars and confs. For example:
yaml
nimbus.host: "111.222.333.44"
4) supervisor.slots.ports: For each worker machine, you configure how many workers run on that machine with this config. Each worker uses a single port for receiving messages, and this setting defines which ports are open for use. If you define five ports here, then Storm will allocate up to five workers to run on this machine. If you define three ports, Storm will only run up to three. By default, this setting is configured to run 4 workers on the ports 6700, 6701, 6702, and 6703. For example:
yaml
supervisor.slots.ports:
- 6700
- 6701
- 6702
- 6703
Launch daemons under supervision using “storm” script and a supervisor of your choice
The last step is to launch all the Storm daemons. It is critical that you run each of these daemons under supervision. Storm is a fail-fast system which means the processes will halt whenever an unexpected error is encountered. Storm is designed so that it can safely halt at any point and recover correctly when the process is restarted. This is why Storm keeps no state in-process – if Nimbus or the Supervisors restart, the running topologies are unaffected. Here’s how to run the Storm daemons:
- Nimbus: Run the command “bin/storm nimbus” under supervision on the master machine.
- Supervisor: Run the command “bin/storm supervisor” under supervision on each worker machine. The supervisor daemon is responsible for starting and stopping worker processes on that machine.
- UI: Run the Storm UI (a site you can access from the browser that gives diagnostics on the cluster and topologies) by running the command “bin/storm ui” under supervision. The UI can be accessed by navigating your web browser to http://{nimbus host}:8080.
As you can see, running the daemons is very straightforward. The daemons will log to the logs/ directory in wherever you extracted the Storm release.


Search
Preparing search index...
The search index is not available
50ra4-library
Options
All
Public
Public/Protected
All
Inherited
Externals
Menu
Globals
"utils/index"
Module "utils/index"
Index
References
Custom
Logger
EDate
Format
ELog
Level
EValidator
Type
EValue
Type
Log
Level
Lookup
Validation
Error
Value
Type
Value
Validator
Config
Value
Validator
Message
Template
all
Pass
and
any
Pass
cond
cond
All
create
Id
create
IdWith
Prefix
enum2enum
format
Date
format
Log
Message
get
Length
get
OrElse
gt
gte
if
Else
is
Array
is
Bigint
is
Boolean
is
Date
is
Empty
is
Empty
Array
is
Empty
Object
is
Empty
String
is
Enum
is
Function
is
Nil
is
Non
Nullable
is
Null
is
Number
is
Object
is
Reg
Exp
is
String
is
Symbol
is
Undefined
is
Valid
Length
keys
lt
lte
match
object2
Lookup
Object
object2
Lookups
omit
or
parse
Date
Str
pick
pipe
prop
replace
Message
string
Array2
Enum
Like
Object
to
Lookup
Object
to
Pairs
to
String
type
Of
value
Validator
values
References
Custom
Logger
Re-exports
CustomLogger
EDate
Format
Re-exports
EDateFormat
ELog
Level
Re-exports
ELogLevel
EValidator
Type
Re-exports
EValidatorType
EValue
Type
Re-exports
EValueType
Log
Level
Re-exports
LogLevel
Lookup
Re-exports
Lookup
Validation
Error
Re-exports
ValidationError
Value
Type
Re-exports
ValueType
Value
Validator
Config
Re-exports
ValueValidatorConfig
Value
Validator
Message
Template
Re-exports
ValueValidatorMessageTemplate
all
Pass
Re-exports
allPass
and
Re-exports
and
any
Pass
Re-exports
anyPass
cond
Re-exports
cond
cond
All
Re-exports
condAll
create
Id
Re-exports
createId
create
IdWith
Prefix
Re-exports
createIdWithPrefix
enum2enum
Re-exports
enum2enum
format
Date
Re-exports
formatDate
format
Log
Message
Re-exports
formatLogMessage
get
Length
Re-exports
getLength
get
OrElse
Re-exports
getOrElse
gt
Re-exports
gt
gte
Re-exports
gte
if
Else
Re-exports
ifElse
is
Array
Re-exports
isArray
is
Bigint
Re-exports
isBigint
is
Boolean
Re-exports
isBoolean
is
Date
Re-exports
isDate
is
Empty
Re-exports
isEmpty
is
Empty
Array
Re-exports
isEmptyArray
is
Empty
Object
Re-exports
isEmptyObject
is
Empty
String
Re-exports
isEmptyString
is
Enum
Re-exports
isEnum
is
Function
Re-exports
isFunction
is
Nil
Re-exports
isNil
is
Non
Nullable
Re-exports
isNonNullable
is
Null
Re-exports
isNull
is
Number
Re-exports
isNumber
is
Object
Re-exports
isObject
is
Reg
Exp
Re-exports
isRegExp
is
String
Re-exports
isString
is
Symbol
Re-exports
isSymbol
is
Undefined
Re-exports
isUndefined
is
Valid
Length
Re-exports
isValidLength
keys
Re-exports
keys
lt
Re-exports
lt
lte
Re-exports
lte
match
Re-exports
match
object2
Lookup
Object
Re-exports
object2LookupObject
object2
Lookups
Re-exports
object2Lookups
omit
Re-exports
omit
or
Re-exports
or
parse
Date
Str
Re-exports
parseDateStr
pick
Re-exports
pick
pipe
Re-exports
pipe
prop
Re-exports
prop
replace
Message
Re-exports
replaceMessage
string
Array2
Enum
Like
Object
Re-exports
stringArray2EnumLikeObject
to
Lookup
Object
Re-exports
toLookupObject
to
Pairs
Re-exports
toPairs
to
String
Re-exports
toString
type
Of
Re-exports
typeOf
value
Validator
Re-exports
valueValidator
values
Re-exports
values
Globals
Internals
"types"
"utils/index"
Externals
"external/index"
"external/lodash"
"external/nanoid"
"external/ramda"
"utils/condition"
"utils/date"
"utils/enum"
"utils/format"
"utils/id"
"utils/length"
"utils/logger"
"utils/lookup"
"utils/object"
"utils/pipe"
"utils/relation"
"utils/type
Guard"
"utils/validation"
"utils/value
Type"
Custom
Logger
EDate
Format
ELog
Level
EValidator
Type
EValue
Type
Log
Level
Lookup
Validation
Error
Value
Type
Value
Validator
Config
Value
Validator
Message
Template
all
Pass
and
any
Pass
cond
cond
All
create
Id
create
IdWith
Prefix
enum2enum
format
Date
format
Log
Message
get
Length
get
OrElse
gt
gte
if
Else
is
Array
is
Bigint
is
Boolean
is
Date
is
Empty
is
Empty
Array
is
Empty
Object
is
Empty
String
is
Enum
is
Function
is
Nil
is
Non
Nullable
is
Null
is
Number
is
Object
is
Reg
Exp
is
String
is
Symbol
is
Undefined
is
Valid
Length
keys
lt
lte
match
object2
Lookup
Object
object2
Lookups
omit
or
parse
Date
Str
pick
pipe
prop
replace
Message
string
Array2
Enum
Like
Object
to
Lookup
Object
to
Pairs
to
String
type
Of
value
Validator
values
Generated using
TypeDoc


Pulse Width Modulation Words¶
The RP2040 (which is in the Raspberry Pi Pico) has support for Pulse Width Modulation (PWM for short), which includes a counter capability. There are eight PWM “slices”, each of which have pair of GPIO pins as outputs, pins A and B, and pin B can also be used as an input. Also, each of the PWM slices, aside from PWM slice 7, maps to four separate GPIO pins, two of which are A pins and two of which are B pins (PWM slice 7 only maps to one A pin and one B pin).
Each PWM slice is associated with a counter value and a top value at which the counter wraps back to zero. Also, the A and B outputs each have a compare value at which their output transitions from high to low. Note that PWM slices have a “phase correct” mode which modifies this functionality so that the phase of a PWM output does not change with changes to its compare value.
PWM slices have a clock divider which divides the system clock by an integral value, from 1 to 255, plus a fractional value, of 0 to 15 divided by 16.
PWM slices have four different primary modes. One is free-running mode, where the counter increases by one each cycle. Another is gating mode, where the counter increases by one each cycle the B input of the PWM slice is high. Another is risng-edge mode, where the counter increases by one for each rising edge detected on the B input of the PWM slice. And last but not least, there is falling-edge mode, where the counter increase by one for each falling edge detected on the B input of the PWM slice.
When a PWM slice’s counter reaches its top value, an interrupt can be raised. All PWM slices share the same IRQ. They have separate flags indicating their interrupt status, which can be cleared independent of one another, and interrupts can be enabled and disabled independently of each of them.
Last but not least, PWM slices’ A and B outputs can be inverted independent of one another.
pwm
¶
The following words are in the pwm
module:
x-out-of-range-pwm
¶
( – )
Out of range PWM index exception.
x-out-of-range-clock-div
¶
( – )
Out of range clock divisor exception.
x-out-of-range-counter
¶
( – )
Out of range counter value exception.
x-out-of-range-compare
¶
( – )
Out of range compare value exception.
x-out-of-range-top
¶
( – )
Out of range top value exception.
pwm-pin
¶
( pin – )
Set a pin as a PWM pin.
pwm-vector!
¶
( xt – )
Set PWM IRQ handler.
enable-pwm
¶
( bits – )
Enable any set of slices, expressed as bits from 0 to 7.
disable-pwm
¶
( bits – )
Disable any set of slices, expressed as bits from 0 to 7.
enable-pwm-int
¶
( bits – )
Enable interrupts for any set of slices, expressed as bits from 0 to 7.
disable-pwm-int
¶
( bits – )
Disable interrupts for any set of slices, expressed as bits from 0 to 7.
clear-pwm-int
¶
( bits – )
Clear an interrupt for any set of slices, expressed as bits from 0 to 7.
pwm-int@
¶
( – bits )
Get the interrupt state for all slices, expressed as one bit per slice from 0 to 7.
clear-pwm-pending
¶
( – )
Clear pending PWM interrupt.
advance-pwm-phase
¶
( index – )
Advance the phase of a running counter by 1 count.
retard-pwm-phase
¶
( index – )
Retard the phase of a running counter by 1 count.
free-running-pwm
¶
( index – )
Set a slice to be free-running.
gated-pwm
¶
( index – )
Set a slice to be gated by the PWM B pin.
rising-edge-pwm
¶
( index – )
Set a slice to advance with each rising eddge of the PWM B pin.
falling-edge-pwm
¶
( index – )
Set a slice to advance with each falling edge of the PWM B pin.
pwm-invert-b!
¶
( state index – )
Set invert PWM output B for a slice.
pwm-invert-a!
¶
( state index – )
Set invert PWM output A for a slice.
pwm-phase-correct!
¶
( state index – )
Set phase-correct modulation for a slice.
pwm-clock-div!
¶
( fract int index – )
Set clock frequency divisor; int is the integral portion from 1 to 255 and fract is the fractional portion from 0 to 15.
pwm-counter-compare-b!
¶
( value index – )
Set the PWM output B for a slice counter compare value.
pwm-counter-compare-a!
¶
( value index – )
Set the PWM output A for a slice counter compare value.
pwm-top!
¶
( value index – )
Set the slice counter wrap value.
pwm-counter!
¶
( value index – )
Set the slice counter value.
pwm-counter@
¶
( index – value )
Get the slice counter value.


3. Running the tutorial examples
Using this tutorial, we will run a Pantheon workflow that runs
a mini scientific application
(
cloverleaf3d),
creates a
Cinema
database in-situ (while the simulation is running), through the
Ascent infrastructure,
as shown in the diagram of the project's template below.

Set up tutorial environment
Run the following command. This sets up a few things in the VM environment specific to this tutorial.
source ~/pantheon/setup-jupyter.sh
jupyter trust ~/pantheon/data/full/cinema.ipynb
Example results
These examples show what the results will look like in a
jupyter notebook:
jupyter notebook ~/pantheon/data/full/cinema.ipynb
This is what it looks like using the Cinema browser viewer:
firefox ~/pantheon/data/full/cinema_view.html


Reactor is a set of succinct and powerful libraries for building reactive and efficient applications on the JVM.


Although I had been building websites and launching e-commerce businesses, I had no experience scripting. Javascript was something that as a product designer I had wanted to learn for many years, especially with technologies like node.js that allow for entire desktop applications to be built in JS.
FULL PROJECT STORY ->


Select the corresponding types of records you would like to receive in your request (the more you select the larger your resulting request will be)
Please submit your request to: Manager, Document Disclosure and Management Ministry of Children and Family Development PO Box 9714 STN PROV GOVT Victoria BC V8W 9S1 Telephone:<PHONE_NUMBER> Fax:<PHONE_NUMBER>


Public Member Functions | |
| void | setId (const XMLSize_t newId) |
Constructors | |
| XMLEntityDecl (MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager) | |
| Default Constructor. | |
| XMLEntityDecl (const XMLCh *const entName, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager) | |
| Constructor with a const entity name. | |
| XMLEntityDecl (const XMLCh *const entName, const XMLCh *const value, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager) | |
| Constructor with a const entity name and value. | |
| XMLEntityDecl (const XMLCh *const entName, const XMLCh value, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager) | |
| Constructor with a const entity name and single XMLCh value. | |
Destructor | |
| virtual | ~XMLEntityDecl () |
| Default destructor. | |
The pure virtual methods in this interface. | |
| virtual bool | getDeclaredInIntSubset () const =0 |
| Get the 'declared in internal subset' flag. | |
| virtual bool | getIsParameter () const =0 |
| Get the 'is parameter entity' flag. | |
| virtual bool | getIsSpecialChar () const =0 |
| Get the 'is special char entity' flag. | |
Getter methods | |
| XMLSize_t | getId () const |
| Gets the pool id of this entity. | |
| const XMLCh * | getName () const |
| Returns a const pointer to the name of this entity decl. | |
| const XMLCh * | getNotationName () const |
| Gets the notation name, if any, declared for this entity. | |
| const XMLCh * | getPublicId () const |
| Gets the public id declared for this entity. | |
| const XMLCh * | getSystemId () const |
| Gets the system id declared for this entity. | |
| const XMLCh * | getBaseURI () const |
| Gets the base URI for this entity. | |
| const XMLCh * | getValue () const |
| This method returns the value of an internal entity. | |
| XMLSize_t | getValueLen () const |
| This method returns the number of characters in the value returned by getValue(). | |
| bool | isExternal () const |
| Indicates that this entity is an external entity. | |
| bool | isUnparsed () const |
| Indicates whether this entity is unparsed. | |
| MemoryManager * | getMemoryManager () const |
| Get the plugged-in memory manager. | |
Setter methods | |
| void | setName (const XMLCh *const entName) |
| This method will set the entity name. | |
| void | setIsExternal (bool value) |
| This method will mark whether the entity is external. | |
| void | setNotationName (const XMLCh *const newName) |
| This method will set the notation name for this entity. | |
| void | setPublicId (const XMLCh *const newId) |
| This method will set a new public id on this entity. | |
| void | setSystemId (const XMLCh *const newId) |
| This method will set a new sysetm id on this entity. | |
| void | setBaseURI (const XMLCh *const newId) |
| This method will set a new baseURI on this entity. | |
| void | setValue (const XMLCh *const newValue) |
| This method will set a new value for this entity. | |
Setter methods | |
| const XMLCh * | getKey () const |
| This method allows objects of this class to be used within a standard keyed collection used commonly within the parser system. |
Each validator will create a derivative of this class which adds any extra information it requires.
This class supports keyed collection semantics via the getKey() method which extracts the key field, the entity name in this case. The name will have whatever form is deemed appropriate for the type of validator in use.
When setting the fields of this class, you must make sure that you do not set conflicting values. For instance, an internal entity cannot have a notation name. And an external entity cannot have a value string. These rules are defined by the XML specification. In most cases, these objects are created by validator objects as they parse a DTD or Schema or whatever, at which time they confirm the correctness of the data before creating the entity decl object.
| XMLEntityDecl::XMLEntityDecl | ( | MemoryManager *const | manager = XMLPlatformUtils::fgMemoryManager |
) |
Default Constructor.
| XMLEntityDecl::XMLEntityDecl | ( | const XMLCh *const | entName, | |
| MemoryManager *const | manager = XMLPlatformUtils::fgMemoryManager | |||
| ) |
Constructor with a const entity name.
| entName | The new name to give to this entity. | |
| manager | Pointer to the memory manager to be used to allocate objects. |
| XMLEntityDecl::XMLEntityDecl | ( | const XMLCh *const | entName, | |
| const XMLCh *const | value, | |||
| MemoryManager *const | manager = XMLPlatformUtils::fgMemoryManager | |||
| ) |
Constructor with a const entity name and value.
| entName | The new name to give to this entity. | |
| value | The new value to give to this entity name. | |
| manager | Pointer to the memory manager to be used to allocate objects. |
| XMLEntityDecl::XMLEntityDecl | ( | const XMLCh *const | entName, | |
| const XMLCh | value, | |||
| MemoryManager *const | manager = XMLPlatformUtils::fgMemoryManager | |||
| ) |
Constructor with a const entity name and single XMLCh value.
| entName | The new name to give to this entity. | |
| value | The new value to give to this entity name. | |
| manager | Pointer to the memory manager to be used to allocate objects. |
| virtual XMLEntityDecl::~XMLEntityDecl | ( | ) | [virtual] |
Default destructor.
| virtual bool XMLEntityDecl::getDeclaredInIntSubset | ( | ) | const [pure virtual] |
Get the 'declared in internal subset' flag.
Gets the state of the flag which indicates whether the entity was declared in the internal or external subset. Some structural description languages might not have an internal subset concept, in which case this will always return false.
| virtual bool XMLEntityDecl::getIsParameter | ( | ) | const [pure virtual] |
Get the 'is parameter entity' flag.
Gets the state of the flag which indicates whether this entity is a parameter entity. If not, then its a general entity.
| virtual bool XMLEntityDecl::getIsSpecialChar | ( | ) | const [pure virtual] |
Get the 'is special char entity' flag.
Gets the state of the flag that indicates whether this entity is one of the special, intrinsically supported character entities.
| XMLSize_t XMLEntityDecl::getId | ( | ) | const |
Gets the pool id of this entity.
Validators maintain all decls in pools, from which they can be quickly extracted via id.
| const XMLCh * XMLEntityDecl::getName | ( | ) | const |
Returns a const pointer to the name of this entity decl.
This name will be in whatever format is appropriate for the type of validator in use.
| const XMLCh * XMLEntityDecl::getNotationName | ( | ) | const |
Gets the notation name, if any, declared for this entity.
If this entity is not a notation type entity, it will be a null pointer.
| const XMLCh * XMLEntityDecl::getPublicId | ( | ) | const |
Gets the public id declared for this entity.
Public ids are optional so it can be a null pointer.
| const XMLCh * XMLEntityDecl::getSystemId | ( | ) | const |
Gets the system id declared for this entity.
The system id is required so this method should never return a null pointers.
| const XMLCh * XMLEntityDecl::getBaseURI | ( | ) | const |
Gets the base URI for this entity.
| const XMLCh * XMLEntityDecl::getValue | ( | ) | const |
This method returns the value of an internal entity.
If this is not an internal entity (i.e. its external), then this will be a null pointer.
| XMLSize_t XMLEntityDecl::getValueLen | ( | ) | const |
This method returns the number of characters in the value returned by getValue().
If this entity is external, this will be zero since an external entity has no internal value.
| bool XMLEntityDecl::isExternal | ( | ) | const |
Indicates that this entity is an external entity.
If not, then it is assumed to be an internal entity, surprise.
| bool XMLEntityDecl::isUnparsed | ( | ) | const |
Indicates whether this entity is unparsed.
This is meaningless for internal entities. Some external entities are unparsed in that they refer to something other than XML source.
| MemoryManager * XMLEntityDecl::getMemoryManager | ( | ) | const |
Get the plugged-in memory manager.
This method returns the plugged-in memory manager user for dynamic memory allocation/deallocation.
| void XMLEntityDecl::setName | ( | const XMLCh *const | entName | ) |
This method will set the entity name.
The format of this name is defined by the particular validator in use, since it will be the one who creates entity definitions as it parses the DTD, Schema, ect...
| entName | The new name to give to this entity. |
| void XMLEntityDecl::setIsExternal | ( | bool | value | ) |
This method will mark whether the entity is external.
| value | The new value for the 'is external' flag. |
| void XMLEntityDecl::setNotationName | ( | const XMLCh *const | newName | ) |
This method will set the notation name for this entity.
By setting this, you are indicating that this is an unparsed external entity.
| newName | The new notation name to give to this entity. |
References MemoryManager::deallocate(), and XMLString::replicate().
| void XMLEntityDecl::setPublicId | ( | const XMLCh *const | newId | ) |
This method will set a new public id on this entity.
The public id has no particular form and is purely for client consumption.
| newId | The new public id to give to this entity. |
References MemoryManager::deallocate(), and XMLString::replicate().
| void XMLEntityDecl::setSystemId | ( | const XMLCh *const | newId | ) |
This method will set a new sysetm id on this entity.
This will then control where the source for this entity lives. If it is an internal entity, then the system id is only for bookkeeping purposes, and to allow any external entities referenced from within the entity to be correctly resolved.
| newId | The new system id to give to the entity. |
References MemoryManager::deallocate(), and XMLString::replicate().
| void XMLEntityDecl::setBaseURI | ( | const XMLCh *const | newId | ) |
This method will set a new baseURI on this entity.
This will then control the URI used to resolve the relative system Id.
| newId | The new base URI to give to the entity. |
References MemoryManager::deallocate(), and XMLString::replicate().
| void XMLEntityDecl::setValue | ( | const XMLCh *const | newValue | ) |
This method will set a new value for this entity.
This is only valid if the entity is to be an internal entity. By setting this field, you are indicating that the entity is internal.
| newValue | The new value to give to this entity. |
References MemoryManager::deallocate(), XMLString::replicate(), and XMLString::stringLen().
| void XMLEntityDecl::setId | ( | const XMLSize_t | newId | ) |
| const XMLCh * XMLEntityDecl::getKey | ( | ) | const |
This method allows objects of this class to be used within a standard keyed collection used commonly within the parser system.
The collection calls this method to get the key (usually to hash it) by which the object is to be stored.


This is a demo application highlighting how to use the KeyChain APIs introduced in API Level 14.
The source code for this demo app shows how to install a PKCS12 key chain stored in the assets folder, grant permission to the app to use the installed key chain and finally display the certificate and private key info. The app also has a simple implementation of a web server listening to requests at an SSL socket using the same certificate in the key chain.
The application includes the following key classes:
KeyChainDemoActivity
— the main Activity
that is used to install the key chain and start/stop
the web server. SecureWebServer
— a single thread web server listening at port 8080 for https://localhost:8080
requestSecureWebServerService
— a Service
that runs the web server in the foreground.If you are developing an application that uses the KeyChain APIs, remember that the feature is supported only on Android 4.0 (API level 14) and higher versions of the platform. To ensure that your application can only be installed on devices that are running Android 4.0, remember to add the following to the application's manifest:
<uses-sdk android:minSdkVersion="14" />
, which
indicates to the Android platform that your application requires
Android 4.0 or higher. For more information, see API Levels and the
documentation for the <uses-sdk>
element.Note: Due to browser cache, you need to restart the browser completely before it can recognize any keystore updates. The easiest way to do this is to dismiss the app in the Recent Apps list.
For more information about using the KeyChain API, see the
android.security.KeyChain
documentation.


Website Project
This week students used Sublime Text Editor to work with raw HTML and CSS code to make their own websites! They picked the topic, text, images, and styling for their website.
Click on the links below to see the finished products.


This section provides answers to frequently asked questions about SKY UX 2. These questions and answers are taken from on the 1bb-skyux-apps Slack channel.
The command to get the latest is npm install -g @blackbaud/skyux-cli@latest
. The SKY UX CLI notifies users when a new version is released. If a new version is available when users run skyux serve
, then a message appears in the command prompt.
SKY UX components are production-ready now. We are still in beta because not every component has been moved over and because we still need to create documentation.
The SKY UX Host, Builder, and CLI pieces can be used to build a production app. Blue Steel is doing this now with a release target of February. It just requires some manual steps and patience with some suboptimal workflow while we automate more and add more user-friendly features.
Yes. Currently, any merge to your master branch triggers a release to production. We plan to change that to state a release with an endpoint or a user interface where you can flag staged releases as production releases.
Yes
Previous step » Get started


--- layout: post title: The user interface aspect ---
Her is an excerpt from my former blog regarding user interface aspects... It's interesting to see how my opinion evolved from this kind of thinking to CROAM
previous web logs can be found @ blogspot
---><8----------------------
A user-interface is one of the points that makes or breaks your program when users start to work with it. Millions of euros are being invested into programs that never get used, since the users find it un-intuitive.
Most ICT people tend to think in abstract concepts like objects and relations due to their education, while most users think in terms of a process. In each business you can identify several business processes.
Let's take an order for example:
Of course this is not a complete process, the customer could cancel the order, or the delivery could fail, he could refuse to pay, or only pay a part of the invoice, ...
Most programs offer a view on the words in BOLD, called objects . While you can input all different steps noted above in such a view, it's hard to keep an overview of what you were doing, especially if it's been a few weeks since you last touched it. You have to examine his orders/invoices If you remember you still need to do something...
In order to solve this problem we need to look at it from a different point of view. People think in processes and their phase it's in.
In this case we have the following situation:
(note this is a simple example, and we could have several other initiators, steps and states for invoices)
In an ideal situation, the Company would not be working with customers,orders,invoices, items, deliveries and payments directly, but with processes and their state. That would imply having a wizard for each process, that guides you towards the next step in this process, depending on the initiator and the previous phase/state . That's where the user-interface comes in. What people really need is a wizard-like form to guide them to the next step.... Please note that most of the time it is not profitable from a return-on-investment point of view for a program to have all the processes directly accessible from a wizard. People should still be able to browse data using the object-interface, but more info regarding this subject will be in my next blog entry. This article was actually written as a post-reflection to our first version of CUDI (the core universal database). We will now solve the issues noted in this document, and apply them to our second version.


| Type | Status | Amount | Started | Last Updated | Edit/Delete |
|---|---|---|---|---|---|
| There are no applications started by you in our system! | |||||
| {{app.type | titlecase}} | {{app.step2.purchasePrice | currency}} | {{app.status.createdDate | date:'shortDate'}} | {{app.status.updatedDate | date:'shortDate'}} | ||


Energy Portal provides an educational service to citizens, policy makers, and organizations who are interested in energy consumption patterns in the United States. We designed a model built with robust machine learning techniques that will show you how your energy consumption compares to others and how your community fits into the national patterns of energy consumption.
Review your report page and see how you can improve your energy consumption footprint.
Interpret Your Energy Usage
Please tell us as much as you can about yourself. You may leave fields blank, but the more information you give, the more accurate our estimates will be.


public interface Simon extends HasAttributes
| Modifier and Type | Method and Description |
|---|---|
List<Simon> |
getChildren()
Returns list of children - direct sub-simons.
|
long |
getFirstUsage()
Returns ms timestamp of the first usage of this Simon.
|
long |
getLastUsage()
Returns ms timestamp of the last usage of this Simon.
|
Manager |
getManager()
Returns Simon's
Manager . |
String |
getName()
Returns Simon name.
|
String |
getNote()
Returns note for the Simon.
|
Simon |
getParent()
Returns parent Simon.
|
SimonState |
getState()
Returns state of the Simon that can be enabled, disabled or inherited.
|
boolean |
isEnabled()
Returns true, if the Simon is enabled or if the enabled state is inherited.
|
Sample |
sample()
Samples Simon values and returns them in a Java Bean derived from Sample interface.
|
Sample |
sampleIncrement(Object key)
Samples increment in Simon values since the previous call of this method with the
same key.
|
Sample |
sampleIncrementNoReset(Object key)
Samples current value of incremental Simon.
|
void |
setNote(String note)
Sets note for the Simon.
|
void |
setState(SimonState state,
boolean overrule)
Sets the state of the Simon.
|
boolean |
stopIncrementalSampling(Object key)
Stops incremental sampling for the key, removing any internal information for the key.
|
getAttribute, getAttribute, getAttributeNames, getCopyAsSortedMap, removeAttribute, setAttribute
String getName()
null
for anonymous Simons.List<Simon> getChildren()
Manager getManager()
Manager
.Manager
SimonState getState()
void setState(SimonState state, boolean overrule)
state
- a new state.overrule
- specifies whether this change is forced to the whole subtree.IllegalArgumentException
- if state
is null
.boolean isEnabled()
String getNote()
void setNote(String note)
note
- note for the Simon.long getFirstUsage()
long getLastUsage()
Sample sample()
Sample sampleIncrement(Object key)
sample()
. Any subsequent calls with the key
provide increments.
Clients can use any sampling key (any Object) which enables safe access to their own increments.
Using String does not guarantee this as any client can potentially guess the key. This
may or may not be an issue.key
- sampling key used to access incremental sampleSample
with value incrementsSample sampleIncrementNoReset(Object key)
sampleIncrement(Object)
but
does not reset the incremental Simon. This method does not start incremental sampling
and keeps returning values from sample()
for any key that was not used with
sampleIncrement(Object)
before.key
- sampling key used to access incremental sampleSample
with value incrementssampleIncrement(Object)
boolean stopIncrementalSampling(Object key)
sampleIncrement(Object)
for the key will be considered the first
call for the key.key
- sampling key used to access incremental sampleCopyright © 2019. All rights reserved.


framebuf
— frame buffer manipulation¶
This module provides a general frame buffer which can be used to create bitmap images, which can then be sent to a display.
class FrameBuffer¶
The FrameBuffer class provides a pixel buffer which can be drawn upon with pixels, lines, rectangles, text and even other FrameBuffer’s. It is useful when generating output for displays.
For example:
import framebuf
# FrameBuffer needs 2 bytes for every RGB565 pixel
fbuf = framebuf.FrameBuffer(bytearray(10 * 100 * 2), 10, 100, framebuf.RGB565)
fbuf.fill(0)
fbuf.text('MicroPython!', 0, 0, 0xffff)
fbuf.hline(0, 10, 96, 0xffff)
Constructors¶
-
class
framebuf.
FrameBuffer
(buffer, width, height, format, stride=width, /)¶ Construct a FrameBuffer object. The parameters are:
buffer is an object with a buffer protocol which must be large enough to contain every pixel defined by the width, height and format of the FrameBuffer.
width is the width of the FrameBuffer in pixels
height is the height of the FrameBuffer in pixels
format specifies the type of pixel used in the FrameBuffer; permissible values are listed under Constants below. These set the number of bits used to encode a color value and the layout of these bits in buffer. Where a color value c is passed to a method, c is a small integer with an encoding that is dependent on the format of the FrameBuffer.
stride is the number of pixels between each horizontal line of pixels in the FrameBuffer. This defaults to width but may need adjustments when implementing a FrameBuffer within another larger FrameBuffer or screen. The buffer size must accommodate an increased step size.
One must specify valid buffer, width, height, format and optionally stride. Invalid buffer size or dimensions may lead to unexpected errors.
Drawing primitive shapes¶
The following methods draw shapes onto the FrameBuffer.
-
FrameBuffer.
fill
(c)¶ Fill the entire FrameBuffer with the specified color.
-
FrameBuffer.
pixel
(x, y[, c])¶ If c is not given, get the color value of the specified pixel. If c is given, set the specified pixel to the given color.
-
FrameBuffer.
hline
(x, y, w, c)¶
-
FrameBuffer.
vline
(x, y, h, c)¶
-
FrameBuffer.
line
(x1, y1, x2, y2, c)¶ Draw a line from a set of coordinates using the given color and a thickness of 1 pixel. The line method draws the line up to a second set of coordinates whereas the hline and vline methods draw horizontal and vertical lines respectively up to a given length.
-
FrameBuffer.
rect
(x, y, w, h, c)¶
-
FrameBuffer.
fill_rect
(x, y, w, h, c)¶ Draw a rectangle at the given location, size and color. The rect method draws only a 1 pixel outline whereas the fill_rect method draws both the outline and interior.
Drawing text¶
-
FrameBuffer.
text
(s, x, y[, c])¶ Write text to the FrameBuffer using the the coordinates as the upper-left corner of the text. The color of the text can be defined by the optional argument but is otherwise a default value of 1. All characters have dimensions of 8x8 pixels and there is currently no way to change the font.
Other methods¶
-
FrameBuffer.
scroll
(xstep, ystep)¶ Shift the contents of the FrameBuffer by the given vector. This may leave a footprint of the previous colors in the FrameBuffer.
-
FrameBuffer.
blit
(fbuf, x, y[, key])¶ Draw another FrameBuffer on top of the current one at the given coordinates. If key is specified then it should be a color integer and the corresponding color will be considered transparent: all pixels with that color value will not be drawn.
This method works between FrameBuffer instances utilising different formats, but the resulting colors may be unexpected due to the mismatch in color formats.
Constants¶
-
framebuf.
MONO_VLSB
¶ Monochrome (1-bit) color format This defines a mapping where the bits in a byte are vertically mapped with bit 0 being nearest the top of the screen. Consequently each byte occupies 8 vertical pixels. Subsequent bytes appear at successive horizontal locations until the rightmost edge is reached. Further bytes are rendered at locations starting at the leftmost edge, 8 pixels lower.
-
framebuf.
MONO_HLSB
¶ Monochrome (1-bit) color format This defines a mapping where the bits in a byte are horizontally mapped. Each byte occupies 8 horizontal pixels with bit 7 being the leftmost. Subsequent bytes appear at successive horizontal locations until the rightmost edge is reached. Further bytes are rendered on the next row, one pixel lower.
-
framebuf.
MONO_HMSB
¶ Monochrome (1-bit) color format This defines a mapping where the bits in a byte are horizontally mapped. Each byte occupies 8 horizontal pixels with bit 0 being the leftmost. Subsequent bytes appear at successive horizontal locations until the rightmost edge is reached. Further bytes are rendered on the next row, one pixel lower.
-
framebuf.
RGB565
¶ Red Green Blue (16-bit, 5+6+5) color format
-
framebuf.
GS2_HMSB
¶ Grayscale (2-bit) color format
-
framebuf.
GS4_HMSB
¶ Grayscale (4-bit) color format
-
framebuf.
GS8
¶ Grayscale (8-bit) color format


Set Clear Goals
September 13, 2020 | 3 comments
Life runs at 3000 mph. If you postpone your projects or decision for later, you could be trapped on a highway, in the company of a sheep and a giant donut tube, waiting for a hitchhike.
CONTINUE READING
KravMagg those Insecurities
Have you ever count all the different different times you could become an Elvis on the path you follow, but your fears just simply took you back to the chair on the boxing ring?
CONTINUE READING
September 09, 2020 | 10 comments
Oxigen Bubbles for Controlling the Scene
When was the last time that you had a hurricane in front of you and you didn't know why were you in that specific scene?
CONTINUE READING
August 20, 2020 | 14 comments
Don't Stop Til You Get Enough
One thing that Michale Jackson teach us, is that in order to Moon Walking you must first learn to MOVE, only achieved by practicing and after practice back again.
CONTINUE READING
August 23, 2019 | 16 comments


General Election 2019: Redditch candidates for Conservatives, Labour, Lib Dems, Brexit Party and others
The Redditch seat is located in Worcestershire and contains the whole borough of Redditch and parts of the district of Wychavon
by Charlotte Regen, https://www.birminghammail.co.uk/authors/charlotte-regen/An election is coming, meaning voters in Redditch will soon voice who they want to run the country.
Before Parliament was dissolved, the constituency was represented by the Conservatives - with Rachael Maclean as the MP.
Redditch has been a Conservative constituency since the 2010 general election, when Karen Lumley nudged out Jacqui Smith.
Since then the party has held the seat and secured 5.2 per cent of the votes in the last election.
Rachel Maclean who was the latest MP is also the party's selected candidate for this year's election.
The candidates are
- Labour - Rebecca Jenkins
- Liberal Democrats - Bruce Horton
- Conservatives - Rachel Maclean
- Green - Claire Davies
Why are we having an early election?
A general election - which determines who runs the country - normally happens every five years.
There are 650 constituencies, where voters are invited to select an MP to represent their area.
Nearly three-and-a-half years ago voters were called to the ballot box to decide whether the UK should remain in or leave the European Union.
The majority chose to leave and we were supposed to have left on March, 29 this year, however, it has since been delayed after MPs failed to back plans put forward by former Prime Minister Theresa May and now Boris Johnson.


{% include my-head.html %}
{% include my-header.html %}
{% include my-about.html %}
{% include my-projects.html %}
{{ content }} {% include my-footer.html %}


Chef Jeremy:
This is terrible. Terrible!
That promising young chef Donath will be in the cooking competition, and unless I make something truly special I fear he will walk away with the top honors. But what to make, what to make?
There IS one dish, but the ingredients are so difficult to get that I doubt I could acquire them in time. Unless...
Hey, you there! Yes, you! Interested in a job? I need a brave and resourceful adventurer for a specific task.
How would you like to assist me -- Chef Jeremy, the greatest chef of this region -- in making a fantastic dish?
If all goes well, you may receive an Ice Crystal in return for your assistance.
Say that you will help.


Index of /adonis/assets/images/store
Parent Directory
store-featured-01.jpg
<EMAIL_ADDRESS>store-featured-02.jpg
<EMAIL_ADDRESS>store-featured-03.jpg
<EMAIL_ADDRESS>store-featured-04.jpg
store-featured-04@2x.jpg


Synergy doesn't display MPEG stream metadata
REQUEST: Display Uninstall button even if no previous install detected
REQUEST: Option to rearrange position of Menu Bar control buttons.
REQUEST: Display name and icon at same time
REQUEST: Display lyrics of current song in a sticky growl notification
music on external drive not shown on menubar
Credit card purchase not working correctly
REQUEST: Interface for numeric adjustment of ratings (0-100)
CRASH: Dies in -[NSMenu addItemWithTitle:action:keyEquivalent:] (in parseLibraryFileInDetachedThread)
REQUEST: Menu bar ordenation


An advanced search engine Receive profiles on demand
Developers, data scientists, designers, project managers, marketing experts, etc.
Integration and management of all your freelancers Facilitation of the management of the freelance activity in the company and within the teams
A direct model eliminating the risk of haggling and labor loan crimes Services and tools for greater compliance
Dashboard Development
Web Development
Cloud Development
Consultancy


Visualizer for Farm King X
About
This is a visualizer for RECRUIT Nihonbashi Half Marathon 2021 (long) problem Farm King X.
- This visualizer is tested on the latest desktop version of Google Chrome and Mozilla Firefox. We don't guarantee that it works on every browser.
- The score calculated on this visualizer is not the actual score of the contest. Submit your solution on the AtCoder contest page to enter the contest.
- Use this visualizer at your own risk.
How to use
- Open index.html in your web browser.
- Select a test case file at
input file
field and your output for that test case at output file
field.
- If there is no error, your score will be shown in the
money
field.
- If your output contains some error, an error message dialog will be shown.
You can generate a PNG image with save as image button.
LICENSE


Jeremy Kenyon led this Unity project in the Gamkedo club. He wanted to create a VR game (for the HTC Vive) where the player acted the part of a powerful deity who had control over the forces of nature, to either help your minions or punish enemy tribes. You could pull meteors down from the sky or pull up volcones from the ground, for example. This required a system that could deform the terrain to create craters where the meteros hit, as well as generating the volcanos. I volunteered to help and developed a very versatile and easy to use system that could be dropped into the project with very little need for additional integration. It was also used for Jeremy's subsequent project Singed Dirt.


The Site That Gets It Right
This week I want to talk about one of the hands-down best sites on the internet. Mint.com, in case you haven’t heard about Mint yet, it’s like Quicken or Microsoft Money just online. You create an account on the website, login, add your account information. From there mint connects to each of your accounts, pulls down your transaction history, automatically categorizes your spending into categories, and then will send you alerts for budgets or other settings via text or email. Oh, and best of all since it knows where you’re spending your money, it tells you how you can save.
So since mint sounds great and wonderful, and it indeed is, I’m going to jump straight in and start addressing issues people may already have about this kind of site. The first is security, why would I give all of my account information away to a single place so someone could walk in and take every penny I have? Well first account information is hashed, it’s not just sitting in some text file on some desktop, its quite secure. Next, well mint gives you warnings right? So if someone goes and buys a car with you’re credit card you’ll get a text message about it. Now I may be missing something, but my bank has never offered me that kind of service. Oh and best of all, just because you put your account information, you still have the normal security backing of your bank and liability.
Worried about a company having so much information on you? What if I told you in a matter of minutes if I know you’re name I could likely have your past 3 residences, phone numbers, and other information. Or for that matter if you’re concerned with a company having that information, do you pay cash for everything. Because if you don’t the credit card companies have just as much information, and they and other companies often sell this information. Mint.com promises not to do such. So if your argument is that you don’t want people to know that much information about you, its a very valid one, but hypocritical if you don’t always use cash which, which in ways can still be traceable.
Finally I just want to highlight my favorite thing about mint.com. They get web 3.0, sure they have a rich interface, decent categorization, and good alerts. But best of all, they know where I spend my money, they know generic stuff about me, but because of that they can recommend to me ways I can actually save money. Now it may be just me, but I’m pretty sure everyone out there would like to save money. So its great to show ways that I truly can save money, not typical propaganda that is a waste of time for me.


The base type is 15px over 1.6 line height (24px)
Determine whether the Dropdown content should go from left to right or right to left with the left and right properties.
Architect & Engineer
2000 Likes
Resize the browser window to see how it works.
Here's a little over 12 thousand hidden words. here's a few content and a few more content and a few more content.
Some text in the _valorModal..
Move the mouse over the text below (Tooltip):


func bufio.NewReader
9 uses
bufio (current package)
bufio.go#L62: func NewReader(rd io.Reader) *Reader {
compress/flate
inflate.go#L753: return bufio.NewReader(r)
compress/gzip
gunzip.go#L111: z.r = bufio.NewReader(r)
mime/quotedprintable
reader.go#L26: br: bufio.NewReader(r),
net/http
h2_bundle.go#L7172: cc.br = bufio.NewReader(c)
server.go#L845: return bufio.NewReader(r)
transport.go#L1698: br := bufio.NewReader(conn)
net/http/internal
chunked.go#L32: br = bufio.NewReader(r)
net/textproto
textproto.go#L68: Reader: Reader{R: bufio.NewReader(conn)},
| The pages are generated with Golds v0.3.2. (GOOS=windows GOARCH=amd64) Golds is a Go 101 project developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @Go100and1 (reachable from the left QR code) to get the latest news of Golds. |


--- layout: post title: Neutrogena deep clean blackhead eliminating daily scrub review tags: - Neutrogena status: publish type: post published: true meta: _edit_last: '2' _aioseop_keywords: Neutrogena deep clean blackhead eliminating daily scrub review, daily face scrub _aioseop_title: Neutrogena deep clean blackhead eliminating daily scrub review _yoast_wpseo_linkdex: '0' _thumbnail_id: '5410' _yoast_wpseo_focuskw: '' _yoast_wpseo_title: '' _yoast_wpseo_metadesc: '' _yoast_wpseo_metakeywords: '' _yoast_wpseo_meta-robots-noindex: '0' _yoast_wpseo_meta-robots-nofollow: '0' _yoast_wpseo_meta-robots-adv: none _yoast_wpseo_sitemap-include: ! '-' _yoast_wpseo_sitemap-prio: ! '-' _yoast_wpseo_canonical: '' _yoast_wpseo_redirect: '' ---
Sometime you just bump into good stuff for free. I got a 20gm sample of Neutrogena deep clean blackhead eliminating daily scrub sometime back with Femina, else I might have never tried out the scrub as I was quite happy with my LUSH cleansers. But this scrub turned out to be a such a great catch that I am already on my fourth tube. Price: Rs. 110/- for 40g Claim: Blackhead Eliminating Daily Scrub doesn’t just fight blackheads, it helps eliminate them for clearer, smoother skin. This gentle scrub immediately works two ways to not only clear out the blackheads you have now, but also to help prevent new ones from forming. First, you will feel it tingles as its maximum strength acne medicine, Salicylic Acid, penetrates deep to eliminate blackheads by removing stubborn dirt and oil trapped inside pores. Then, you’ll feel its gentle, skin-soothing micro beads ex-foliate without over drying to help stop blackheads before they start.
I do not have black/white head problem, but being any oily skin, I am always on a lookout for mild face scrubs that can clean pores without ripping off moisture from my skin.This is my everyday scrub, mild enough but removes every trace of dirt and makeup by the end of the day and leaves me with soft skin. Gone are the days when I used Apricot and walnut scrubs for my face and that too just once a week, although I still use them but only for my body now.It keeps me oil free for hours.. touch wood.
Would recommend this to all skin types, since it can be used daily, removes dirt and makeup without drying out the skin. It a great budget buy and shall always be there in my bag.Have you ever loved free sample product so much?


Full-time software engineer at Microsoft.
I am currently expanding my web development experience by working with .NET and AngularJS.
Feel free to reach out to me about any of my open source projects. Github


Thank you for your interest in our experiment. We greatly appreciate your effort.
This experiment should take you around 15 minutes.
You will do two related tasks:
In the color-naming task, you will see a color word and will need
to identify what color ink the word is printed in.
In the memory and color-naming task, you will first see a color word in black ink.
You will then see a colored rectangle, and you will need to indicate what color it is.
Finally you will see another color word in black ink, and you will need to indicate
whether this word is the same as the first word you saw.
You will practice each task before beginning.
Be sure to pay attention and respond as quickly as you can.
We reserve the right to reject HITs that do not pass criteria for conscientious responding.
If you are using f.lux, please DISABLE it prior to beginning the experiment.
If buttons or pages stop responding, please quit the study and contact the experimenter immediately.
You may only complete this HIT once.
CHROME ONLY!!!
Color-Naming Task
Each trial of the task requires you to make one response.
As shown in the diagram below, before each trial begins you will see an asterisk, then you will see a word written at the center of the screen.
Your job is to report the COLOR of that word as quickly and accurately as possible, using the buttons indicated in the diagram below.
'A' = red           'S' = blue           'J' = green           'K' = yellow
Memory and Color-Naming Task
Each trial of the task has several parts and requires you to make two responses.
As shown in the diagram below, before each trial begins you will see an asterisk, then you will see a word written at the center of the screen.
Your job is to remember that word, because you will be tested on it at the end of trial.
After a few seconds a colored rectangle will appear on the screen.
Your job is to report the color of that rectangle as quickly and accurately as possible, using the buttons indicated in the diagram below.
'A' = red           'S' = blue           'J' = green           'K' = yellow
After another short delay, you will see a word on the screen with instructions to indicate whether it is the same or a different word from the WORD you were asked to remember at the beginning of the trial.
Press the number '1' if it is the same as the word from beginning of the trial. Press '0 (zero)' if it is a different word.
Take a short break, then click the button
below to continue onto the next section
*
WORD
+
press 1 if SAME, press 0 if DIFFERENT:
WORD
You're finished - thanks for participating! Submitting to Mechanical Turk...


Inherited Variables
Inherited Constants
Inherited Methods
Class Details
Mailer class
Contains all functionality for building and sending emails.
[ Top ]
Class Variables
$body
[line 8]
Tags:
- access - public
Type: mixed
Overrides:
[ Top ]
$headers
[line 8]
Tags:
- access - public
Type: mixed
Overrides:
[ Top ]
$subject
[line 8]
Tags:
- access - public
Type: mixed
Overrides:
[ Top ]
$to
[line 8]
Tags:
- access - public
Type: mixed
Overrides:
[ Top ]
Class Methods
static isValidEmail
static
[line 95]
Validate an email address
Tags:
- return - TRUE if email is valid
- access - public
Parameters:
-
$email - Email address
[ Top ]
__construct
Mailer __construct(
[line 16]
Initialize common email options
Tags:
- access - public
Parameters:
-
$to - Valid email address to send to, or 'admins' to send to all admins -
$from - Contents of the FROM header -
$subject - Subject of the email
[ Top ]
addTo
void addTo(
[line 36]
Add a recipient to the email
Tags:
- access - public
Parameters:
-
$email - Valid email address
[ Top ]
send
void send(
)
[line 76]
Send the email
Tags:
- access - public
Parameters:
[ Top ]
writeTemplate
void writeTemplate(
[line 55]
Write the body from a template
Tags:
- access - public
Parameters:
-
$template - Name of the template file -
$vars - Associative array of template variables
[ Top ]
writeText
void writeText(
[line 46]
Write raw text into the body
Tags:
- access - public
Parameters:
-
$text - The body of the message
[ Top ]


On my path learning data structure, I thought It’d be nice to make a post with a quick explanation about Big O notation with Java examples.
What is Big O?
Big O is used for measure the time complexity of an algorithm. It helps to understand how efficient is the code, dealing with the worst scenario, as the good scenario does not tell us much.
O(n)
public static void printItems(int n) {
for (int i = 0; i < n; i++) {
System.out.println(i);
}
}
Drop Constants
public static void printItems(int n) {
for (int i = 0; i < n; i++) {
System.out.println(i);
}
for (int j = 0; j < n; i++) {
System.out.println(i);
}
}
O(n^2)
public static void printItems(int n) {
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
for (int k = 0; k < n; k++) {
System.out.println(String.format("%s, %s, %s",i,j,k));
}
}
}
}
O(1)
public static int printItems(int n) {
return n + n + n;
}
(log n)
public static void printItems(int n) {
for (int i = 1; i < n; i = i * 2){
System.out.println(i);
}
}
References:
- https://www.baeldung.com/java-algorithm-complexity
- https://www.freecodecamp.org/news/big-o-notation-why-it-matters-and-why-it-doesnt-1674cfa8a23c/


|
Name
|
|
|
Source Terminology666
|
, |
|
Destination Terminology
|
, |
|
Ref Set
|
,
Duplicate Ref Set Id!
You
must specify a Ref Set Id
|
|
Published
|
|
|
Group Structure
|
|
|
Rule Based
|
|
|
Relation Style
|
|
|
Map Type
|
|
|
Workflow Type
|


CSS Shadow Tutorial
home
Text Shadow
Hi my name is Folau
Text Multiple Shadow
Hi my name is Folau
Box Shadow
Hi my name is Folau
Box Multiple Shadow
Hi my name is Folau
Text and Box Shadow
Hi my name is Folau


Creating effective solutions to problems using web technologies.
About Me
Front-End Developer and UX/UI designer, with practical experience in project management, branding strategy, and creative direction; devoted to functional programming and information architecture.


@(params: Map[String, Any]) @uk.gov.hmrc.hmrcemailrenderer.templates.helpers.html.template_main(params, "Registration Successful") {
Dear @params("f_name") @params("s_name")
The country-by-country ID is @params("cbcrId")
Keep this ID safe, as it must be included each time a report is sent.
You gave this contact email address when you registered to send a country-by-country report.
From HMRC Country-by-Country Reporting
}


Semiotics tacos four loko, wolf brooklyn godard fixie next level street art direct trade organic. Beard pour-over mumblecore cred. Seitan tattooed yr literally, gluten-free helvetica austin. Paleo beard meh tousled blue bottle migas yr put a bird on it lomo listicle.
Image description right aligned
Image description center aligned
Image description left aligned


---
layout: post
title: ! 'Handy Hack: How to configure gvim for svn and svk commit messages'
tags:
- Linux
- Open Source Software
- Software Configuration Management
- Work Practices
status: publish
type: post
published: true
meta: {}
---
If you use svn or svk and would like to use the GUI version of Vim to edit your commit messages then add the following in your .profile, SVN_EDITOR="$EDITOR --nofork"; export SVN_EDITOR
. This of course assumes that you already have have $EDITOR
set to some value such as /usr/bin/gvim
.
If you use a csh style shell then modify to suite.


Nic's Knacks
07/19/15
I decided to make this week's blog about test driven development or TDD for short. What is it you ask? Well I suppose the simplest way to describe it is that you create a test first then create to the code to make that test pass.
First you would want to write your test and just enough code to actually run the test even though it fails. Then you would run the test to make sure that it does in fact fail. Once you've done that you can tinker with your code so that it passes the tests. Next you would want to run your test again. If your test fails again you simply rinse and repeat the ast two steps. Once the test passes you start the process over again for a new set of tests.
I know this offers a very basic explanation of what TDD is and how you would use it. I don't profess to be any sort of expert on the topic but I think it's a good method to take the time to look in to. I'm going to include a link to a post that has a lot more information on TDD that I think would be a lot more beneficial to look at for this topic. I think this page is particularly useful because he created imgs to offer a visual understanding of the TDD process.
Test Driven Development


%= form_for(@aka) do |f| %> <% if @aka.errors.any? %>
We're almost there!
First pick a username. With .<%= Myaka::Application.config.aka_domain %> added to the end this is your AKA name. It can contain up to 63 letters, numbers, and hyphens (-) and has to start with a letter. For now only English letters work. Once you pick your name you can't change it, but you can always get a new one.
.<%= Myaka::Application.config.aka_domain %>
You can optionally pick a human-fiendly display name, unless you want to be known by just your AKA. This doesn't have to be your real name.
<%= f.label :display_name %> <%= f.text_field :display_name %>
An e-mail address is optional, but highly recommended. Without one you can't reset your password if you forget it, and you might miss out on important announcements. If you want to try AKA.nu out before giving up your e-mail address you can add one later.
<%= f.label :email %>
<%= f.text_field :email %>
<%= f.check_box :keep_me_updated %>
<%= f.label :keep_me_updated, "Send me updates about new features and things I can do with my aka", style:'display:inline' %>
Finally you need to pick a password. Pretty much any password will do. While bcrypt and SSL are used so your password is in principle secure, AKA.nu hasn't really been tested so don't give us your bank password or anything.
<%= f.label :password %>
<%= f.password_field :password %>
<%= f.label :password_confirmation %>
<%= f.password_field :password_confirmation %>
That's it! Okay, you do have to click a button (or hit enter). We do have some privacy & legal terms of sorts.
<%= f.submit 'Create AKA', class:'btn' %>


Above is fifteen oscillating objects with monotonically increasing frequencies of 51 to 65 oscillations per minute. The total period for the entire system is 60 seconds, where the oscillations realign and the system starts over again.
See also:


Hello to whoever is viewing this page. As you can see at the top of the page, my name is Kenneth Alcineus, and I am 18 years old. I go by either Kenneth or Kenny.
I am a first generation Haitian-American. Both my parents were born in Haiti, but I was born in Florida. I have a brother and a sister and I am the oldest of my siblings. We moved from South Florida to North Florida about 15 years ago and we have stayed here ever since.
I have always enjoyed using and learning about computers. I also enjoy loading custom software on a variety of devices. One project I have done was compiling and flashing a custom BIOS called Coreboot from a Raspberry Pi to an old Lenovo ThinkPad. While Coreboot was successfully installed, I later ran into problems so I ended up using a modified version of the laptop's stock BIOS instead.
I also really like food, whether I am eating it or making it. However, I do admit that I am a picky eater. Not too long ago, I have managed to make some decent lasagna. With lasagna being so difficult to make from scratch, I needed some help from my siblings.
My goal is to obtain a Bachelor of Science in Computer Science at University of North Florida. I may consider pursuing a master's degree if I see great potential in my knowledge of computing and quality of life improving as a result. I have attended St. Johns River State College as a dual enrollment student and graduated with an Associate in Arts degree at the same time of graduating with a high school diploma.
My degrees and certificates, including planned ones are:


VoxLords
Credits
My Wife for Voxilia voice
My Son for testing & ideas
Once upon a time...
Vox, prince of Voxadu, lived peacefully
with his princess Voxilia. One dark and rainy day the four evil lords kidnapped Voxilia.
They all wanted to rule Voxadu and threatened to kill Voxilia unless Vox resigned the throne.
Vox took up his powerful shield, gained power from the grand sorcerer of Voxadu and went out to save Voxilia
from the underworld...


Preparation time
less than 30 mins
Cooking time
10 to 30 mins
Serves
Serves 4
Dietary
Braised peas and lettuce are usually served as an accompaniment to meat, but here they are the star of the show. This is designed to be a low cost recipe.
Heat the stock and butter in a large frying pan until simmering, stirring to mix. Add the peas and cook for two minutes, then add the Little Gem lettuce and two of the tarragon sprigs. Cook for 3-4 minutes, or until the lettuce has wilted, taste and season with salt and pepper to taste. Remove from the heat.
Meanwhile toast the slices of bread either on a griddle pan, under a hot grill or in the toaster. Season with a pinch of salt and pepper on both sides.
Heat a large, wide shallow pan of water. Break an egg in a teacup or ramekin. Whisk the vinegar and a pinch of salt into the water and gently drop the egg into the swirling water. Poach for 3-4 minutes or until the white is set and the yolk still runny (or until cooked to your liking). Remove with a slotted spoon and pat dry. repeat with the remaining eggs.
Remove the tarragon sprigs from the peas. Serve the peas on the toasts with a poached egg on top. Season the egg with a pinch of salt and pepper and garnish everything with roughly torn leaves from the remaining sprig of tarragon. Serve immediately.
You need JavaScript to view this clip.
How to poach an egg


Get a free balloon pet for every $4 PlushCoin purchase, or all 30 balloon pets available for a $100 Plush Coin purchase in the Goodies Market!
Your Wallet:
Get a free balloon pet for every $4 PlushCoin purchase, or all 30 balloon pets available for a $100 Plush Coin purchase in the Goodies Market!


Switching between Domino server versions (Windows Edition)
When you upgrade a server there is always the possibility, that something goes wrong (you did a full backup,did you?) when running the new version. So you need to have a "Plan B" how to fall back to the original version. When upgrading from Domino 6.x to Domino 7.x or 8.x you can prepare a small script that allows to automate the fall-back and the fall-forward. This is what you need to do:
Let us presume your Domino program files location is D:\Domino and your data location is E:\Domino\data
Remark: You do data backup do you?
On Linux systems you play with symlinks, but that's a story for a different time.
Let us presume your Domino program files location is D:\Domino and your data location is E:\Domino\data
- Shut down your Domino server
- Copy the program directory:
COPY D:\Domino\*.*D:\Domino6\*.* /S /E /V
- ZIP away all system templates in E:\Domino\data\*.ntf (We will restore the ones that are not provided in the update
- Install Domino8 as update into D:\Domino and E:\Domino\Data
- Unzip the templates from Step 3. Do not overwrite exisiting files. Older versions of Domino run fine with the new system templates but the new Domino servers must have the new templates.
- Create the file SwitchDomino.cmd in a convenient location (Desktop?) with the following content:
@ECHO OFF CLS NET STOP "Lotus Domino Server (Dominodata)" <<<---- You need to check the exact name of your service IF EXIST D:\Domino6\*.*GOTO R8TO6 IF EXIST D:\Domino8\*.* GOTO R6TO8 ECHO Something is wrong - NEITHER D:\Domino8 nor D:\Domino6 seems to exist PAUSE GOTO EXIT :R8TO6 RENAME D:\Domino Domino8 RENAME D:\Domino6 Domino GOTO EXIT :R6TO8 RENAME D:\Domino Domino6 RENAME D:\Domino8 Domino GOTO EXIT :EXIT NET START "Lotus Domino Server (Dominodata)"
- Restart your server
Remark: You do data backup do you?
On Linux systems you play with symlinks, but that's a story for a different time.
Posted by Stephan H Wissel on 31 October 2007 | Comments (0) | categories: Show-N-Tell Thursday


Select this checkbox if you want to allow the optional branch and revision attributes
of the ivy.xml module descriptor to help calculate and filter the Hudson project dependency graph.
Leaving this option unchecked means that only the mandatory organisation and module
attributes will be used when matching against the project ivy module descriptors. However it also means
that if you have two or more projects configured in Hudson using the same mandatory attribute
values in their module descriptors, and another project defines a dynamic revision dependency on one of the
modules, then all of the projects will match and will be considered upstream dependencies. This is usually
not what you want if you are using Hudson CI to build different versions (or different
source code branches) of the same module at the same time, and selecting this checkbox can help
avoid this problem.


Create a LocalTextSet from array of TextFeature.
Create a DistributedTextSet from RDD of TextFeature.
Read text files as TextSet.
Read text files as TextSet. If sc is defined, read texts as DistributedTextSet from local file system or HDFS. If sc is null, read texts as LocalTextSet from local file system.
String. Folder path to texts. The folder structure is expected to be the following: path ├── dir1 - text1, text2, ... ├── dir2 - text1, text2, ... └── dir3 - text1, text2, ... Under the target path, there ought to be N subdirectories (dir1 to dirN). Each subdirectory represents a category and contains all texts that belong to such category. Each category will be a given a label according to its position in the ascending order sorted among all subdirectories. All texts will be given a label according to the subdirectory where it is located. Labels start from 0.
An instance of SparkContext. If specified, texts will be read as a DistributedTextSet. Default is null and in this case texts will be read as a LocalTextSet.
Integer. A suggestion value of the minimal partition number for input texts. Only need to specify this when sc is not null. Default is 1.
TextSet.
Zip word with its corresponding index.
Zip word with its corresponding index. Index starts from 1.
Array of words, each with its occurrence frequency in descending order.
WordIndex map.


--- layout: default date: 2019-12-06 header: ---
Home/ Computing/ Formatting/ Asciidoc, Rimu, Xml
Source text has styling added to it before it is rendered on a display.
AsciiDoc/
Rimu/
XML/