Bioinformatics, MS
for the degree of Master of Science in Bioinformatics
bioinformatics website: https://www.informatics.illinois.edu/bioinformatics-masters/
overview of school admissions & requirements: contact the individual departments listed below
overview of grad college admissions & requirements: https://grad.illinois.edu/admissions/apply
on-campus contact: contact the individual departments listed below
Students pursing this major must choose one of these concentrations:
Animal Sciences
Crop Sciences
Chemical & Biomolecular Engineering- not currently accepting applications
Computer Science
Bioengineering- not currently accepting applications
Information Sciences
The MS degree can be taken in a thesis or non-thesis format, depending on the department. For either format, the research adviser must be affiliated with the Bioinformatics program.
Programs in Informatics
Undergraduate Minor
Graduate Majors
Bioinformatics, MS
Animal Sciences Concentration
Bioengineering Concentration
Chemical & Biomolecular Engineering Concentration
Computer Science Concentration
Crop Sciences Concentration
Information Sciences Concentration
Admission
Applicants must hold a bachelor's degree equivalent to that granted by the University of Illinois at Urbana-Champaign. The recommended background for graduate students entering the Bioinformatics degree program is a bachelor's or master's degree in life sciences, computer and mathematical sciences, or engineering, with a minimum of five hours of molecular and cell biology, six hours of general chemistry, nineteen hours of mathematics and statistics, and three hours of introduction to computing. Prerequisites vary somewhat for the different departmental concentrations. Students should view the web page of the specific department they wish to apply to for detailed information about admission criteria and degree requirements. Those links are below:
- Department of Animal Sciences
- Department of Bioengineering - Not currently accepting applications
- Department of Chemical and Biomolecular Engineering - Not currently accepting applications
- Department of Computer Science
- Department of Crop Sciences
- School of Information Sciences
Financial Aid
Fellowships, research assistantships, and teaching assistantships (all of which include tuition and partial fee waivers) are awarded on a competitive basis by the admitting department. All applicants, regardless of U.S. citizenship, whose native language is not English and who wish to be considered for teaching assistantships (the most common form of financial aid for new graduate students in the department) must submit a score of at least 50 on the Test of Spoken English (TSE).


BF3 General Information
Provides information on damage and health in Battlefield 3.
BF3 Weapon Charts
Displays the individual attributes of each weapon in Battlefield 3.
BF3 Comparison
Compare individual attributes of different weapons in Battlefield 3.
BF4 General Info
Provides information on damage and health in Battlefield 4.
BF4 Weapon Charts
Displays the individual attributes of each weapon in Battlefield 4.
BF4 Comparison
Compare individual attributes of different weapons in Battlefield 4.
BF3 Weapon Mechanics
Information on Battlefield 3 weapons and weapon mechanics.
BF4 Weapon Mechanics
Information on Battlefield 4 weapons and weapon mechanics.
BFH Comparison
Compare individual attributes of different weapons in Battlefield Hardline.
BFH Weapon Charts
Displays the individual attributes of each weapon in Battlefield Hardline.


Mike Pence makes unannounced visit to Iraq
by Minyvonne BurkeVice President Mike Pence made an unannounced trip to Iraq Saturday morning.
He arrived in the county with his wife, Karen Pence, where he was greeted by U.S. Ambassador Matthew Tueller, Lt. General Pat White, Colonel Daniel Leavitt, Sgt. Major Gerald Knight.
The trip to Iraq was kept secret for security purposes, according to a traveling pool with the vice president. It is Pence's first trip to Iraq as vice president.
The surprise visit comes on the heels of a tense few weeks for the White House as the House Intelligence Committee held a series of long public hearings as part of a broader Democratic-led impeachment inquiry against President Donald Trump.
This is a developing story. Check back for updates.


Canvas Playground
Drawing sharp lines.
Above: Two separate canvases. On the left, lines drawn using 0.5.
On the right, lines drawn using 0. Otherwise the two are identical.
Same color used. Lines are the same width.
Canvas tutorial: Applying styles and colors
Canvas Playground index


<% include text-slider.html %>
Username
Password
Sign me in
Terms & Conditions
|
Privacy Policy
©
All rights reserved.
Powered by Boodskap Inc.,


Files CCore/inc/net/PTPBase.h CCore/src/net/PTPBase.cpp
Files CCore/inc/net/PTPExtra.h CCore/src/net/PTPExtra.cpp
Files CCore/inc/net/PTPClientDevice.h CCore/src/net/PTPClientDevice.cpp
Files CCore/inc/net/PTPServerDevice.h CCore/src/net/PTPServerDevice.cpp
PTP is the Packet Transaction Protocol. This is a packet-based, reliable, transactional, parallel point-to-point protocol. It is best suited to implement an asynchronous call-type client-server interaction. It works atop a packet-based communication layer. There is no security features in the protocol.
PTP defines rules for two endpoints, one is the Server, another is the Client. These endpoints exchange raw data packets (byte packets). Client issues call requests, Server takes call data, processes it and returns some resulting data. From the Client perspective, it makes a function call. Function arguments is a byte range. Server "evaluates" the function and returns a result — another byte range. The meaning of data is out of scope PTP protocol, it is defined by an upper protocol level. Usually, Server may serve multiple Clients. From the protocol perspective all transactions are parallel and independent.
Protocol defines the following constants:
const unsigned MaxPacketLen = 1472 ; const unsigned DeltaInfoLen = 32 ; const unsigned MaxInfoLen = 1440 ; // MaxPacketLen-DeltaInfoLen const unsigned MinTimeout = 300 ; // msec, 0.3 sec const unsigned MaxTimeout = 10000 ; // msec, 10 sec const unsigned DeltaTimeout = 100 ; // msec, 0.1 sec
MaxPacketLen — maximum packet length. This value is chosen as the maximum UDP data length fits a standard Ethernet frame length.
DeltaInfoLen — maximum delta between packet length and information length.
MaxInfoLen — maximum information length.
MinTimeout — minimum timeout value.
MaxTimeout — maximum timeout value.
DeltaTimeout — timeout increment. Each time a timeout value is used, it is incremented by DeltaTimeout up to MaxTimeout.
Protocol defines the following data types:
using uint8 = ??? ; using uint16 = ??? ; using uint32 = ??? ; using uint64 = ??? ; using PacketType = uint32 ; using SlotId = uint32 ; using RecallNumber = uint32 ; struct TransId { uint64 number; uint64 clock; }; struct Info { uint32 len : len<=MaxInfoLen ; uint8 data[len]; };
uint8, uint16, uint32, uint64 are usual arithmetic unsigned integral types. For the protocol purpose they are transported using the big-endian representation.
PacketType is used to represent a packet type.
SlotId is used to represent a slot id. Slot is a processing resource on both sides. It contains data, related with a single transaction.
RecallNumber is used to represent a recall number.
TransId is 128-bit value, it is generated by Client and serves as the unique transaction id. It's recommended, that the number is incremented with each transaction and the clock is a high-frequency clock or another random input. A random mask can be applied to TransId for the better diversity.
Info is a call or return information. It is sent as the length, followed by the information bytes.
There are 8 packet types, 3 with attached information and 5 are short. Each packet starts with a fixed format header. Info packets are ended with Info.
struct Packet_CALL // info, Client to Server { PacketType type = 1 ; TransId tid; SlotId client_slot; Info client_info; }; struct Packet_RET // info, Server to Client { PacketType type = 2 ; TransId tid; SlotId client_slot; SlotId server_slot; Info server_info; }; struct Packet_RECALL // info, Client to Server { PacketType type = 3 ; TransId tid; SlotId client_slot; RecallNumber number; Info client_info; }; struct Packet_ACK // short, Client to Server { PacketType type = 4 ; TransId tid; SlotId client_slot; SlotId server_slot; }; struct Packet_NOINFO // short, Server to Client { PacketType type = 5 ; TransId tid; SlotId client_slot; SlotId server_slot; }; struct Packet_RERET // short, Server to Client { PacketType type = 6 ; TransId tid; SlotId client_slot; SlotId server_slot; }; struct Packet_SENDRET // short, Client to Server { PacketType type = 7 ; TransId tid; SlotId client_slot; SlotId server_slot; }; struct Packet_CANCEL // short, Server to Client { PacketType type = 8 ; TransId tid; SlotId client_slot; SlotId server_slot; };
To start a transaction, Client allocates a slot, prepares client Info, generates TransId and client SlotId. Then it prepares and sends the CALL packet.
Client -> CALL -> Server TransId tid; SlotId client_slot; Info client_info;
Server accepts transaction by allocating a server slot. It may replay with RET, CANCEL, NOINFO or RERET packets.
Client <- RET <- Server TransId tid; TransId tid; SlotId client_slot; SlotId client_slot; Info client_info; SlotId server_slot; Info client_info; // "arguments" Info server_info; // "result"
Client completes transaction by the ACK packet, it cleanup the processing slot. Server cleanup the processing slot upon reception of this packet.
Client -> ACK -> Server TransId tid; TransId tid; SlotId client_slot; SlotId client_slot; SlotId server_slot; SlotId server_slot; Info client_info; Info client_info; Info server_info; Info server_info;
The "good" case if a transaction is finished by these 3 packets. Everything else is to make the protocol reliable.
Once Client is sent the CALL packet, it setup a timer to count timeout. The initial timeout value is the MinTimeout. If this timer expires before an expected reply, the RECALL packet is sent. number starts from 1 and is incremented with saturation per each RECALL packet. The timeout value is incremented each time it is expired.
Client -> RECALL -> Server TransId tid; SlotId client_slot; Info client_info; RecallNumber number = 1 ; bool no_info = false ;
Server may send the NOINFO packet instead of RET packet to confirm it has received the CALL packet.
Client <- NOINFO <- Server TransId tid; TransId tid; SlotId client_slot; SlotId client_slot; Info client_info; SlotId server_slot; Info client_info;
If Client gets this packet it sets the flag no_info in the processing slot. If this flag is set, then Client sends the SENDRET packet at a timeout expiration instead of RECALL.
Client -> SENDRET -> Server TransId tid; TransId tid; SlotId client_slot; SlotId client_slot; SlotId server_slot; SlotId server_slot; Info client_info; Info client_info; bool no_info = true ;
To cancel a transaction Server may send the CANCEL packet. Client responds with the ACK packet and cleanup the processing slot.
Server may also send the RERET (Ready Return) packet. In response, Client sends the SENDRET packet.
Server starts a transaction processing upon CALL or RECALL packet. If there is no available slots the packet is discarded. If the packet is CALL and the transaction id is used, then the packet is discarded. If Server serves multiple Clients, Client id must be accounted for the transaction identification. The CALL packet starts the transaction processing. If the RECALL packet has the new transaction id, it also starts the transaction processing. Otherwise one of the packet RET, CANCEL or NOINFO is returned to the Client. RET or CANCEL is returned if the slot processing is finished, NOINFO if the slot processing is in progress.
When Server completes the slot processing and has the processing result, it sends the RET packet or the CANCEL packet, if the processing is canceled by the execution entity. Once it is done, the Server setup a timer to count timeout. When timer is expired, Server sends RERET packet. Server sends RET or CANCEL packet as the answer on SENDRET packet from Client. And only ACK packet finally cleanup the processing slot.
If Server gets SENDRET packet and cannot find the correspondent processing slot, it responds with CANCEL packet.
If Client gets any packet and cannot find the correspondent processing slot, it responds with ACK packet.
The file txt/cpp/PTP.txt.cpp contains a precise protocol description in pseudo-C++ code.
The file net/PTPBase.h contains this protocol definition in C++ in the namespace PTP.
PTPClientDevice is an implementation of PTP client protocol as a device class. It is located in the PTP namespace (::CCore::Net::PTP).
class ClientDevice : public ObjBase
{
....
public:
static const Unid TypeUnid;
// constructors
explicit ClientDevice(StrLen ep_dev_name,ulen max_slots=100);
virtual ~ClientDevice();
// methods
PacketEndpointDevice * getEPDevice() const;
void start(Packet<uint8,TransExt> packet);
void abortAll();
using StatInfo = ClientStatInfo ;
void getStat(ClientStatInfo &ret);
ulen getMaxOutboundInfoLen(); // always > 0 , <= MaxInfoLen
ulen getMaxInboundInfoLen(); // always > 0 , <= MaxInfoLen
// generic transactions
template <class Ext>
void start(Packet<uint8,Ext> packet,const typename Ext::InputType &input);
template <class Ext>
void start_format(Packet<uint8,Ext> packet,const typename Ext::InputType &input);
struct FormatResult
{
PacketFormat format;
bool too_short;
FormatResult(NothingType) : too_short(true) {}
FormatResult(PacketFormat format_) : format(format_),too_short(false) {}
bool operator ! () const { return too_short; }
bool noRoom() const { return format.max_data==0; }
};
template <class Ext>
static PacketFormat GetFormat();
template <class Ext>
static FormatResult GetFormat(ulen max_outbound_info_len);
template <class Ext>
FormatResult getFormat();
template <class Ext>
PacketFormat getFormat_guarded(const char *name);
// support service
void setSeed(PTPSupport::SeedExt *ext);
bool setLengths(PTPSupport::LenExt *ext);
void support(Packet<uint8,PTPSupport::LenExt> packet);
void support(Packet<uint8,PTPSupport::SeedExt> packet);
void support(Packet<uint8,PTPSupport::SessionExt> packet);
FormatResult getEchoFormat();
void support(Packet<uint8,PTPSupport::EchoExt> packet,uint32 delay_msec);
void support(Packet<uint8,PTPSupport::ErrorDescExt> packet,ServiceIdType service_id,FunctionIdType function_id,ErrorIdType error_id);
void support(Packet<uint8,PTPSupport::ExistExt> packet,ServiceIdType service_id,FunctionIdType function_id);
// initial interaction
bool support(PacketSet<uint8> &pset,MSec timeout=DefaultTimeout);
void support_guarded(MSec timeout=DefaultTimeout);
// connection events
void attach(PacketEndpointDevice::ConnectionProc *proc);
void detach();
};
The first constructor argument is the PacketEndpointDevice object name. The second is the number of transaction slots. When all slots are active, an extra transaction is put into a wait queue. It is activated as soon as a slot becomes available.
getEPDevice() returns the PacketEndpointDevice this object is attached to.
getMaxOutboundInfoLen() and getMaxInboundInfoLen() are info length limits, these values are calculated based on the PacketEndpointDevice properties, they are always positive.
abortAll() aborts all active transactions.
getStat() returns the protocol statistic counters.
start(Packet<uint8,TransExt> packet) starts a transaction. This is the most general way to perform a transaction. You must prepare a packet, fill it with client info and call this method. TransExt constructor argument is a flag, set this flag to MovePacketBuf if you require the packet buffer movement with server info. When transaction is finished, the packet is completed. In the completion function you will see the server info, it is the field server_info of the TransExt. You must use the operator ! to check if the transaction is failed. If you required the packet buffer movement, the packet will have the packet buffer with the server info attached. Otherwise, the server_info disappears after the completion function is returned.
struct TransExt
{
TransResult result; // output
PtrLen<const uint8> server_info; // output
// constructors
explicit TransExt(MoveFlagType move_flag);
// methods
bool operator ! () const { return result!=Trans_Ok; }
....
};
Another way to perform a transaction is to define a special structure Ext like this:
struct Ext : ExtBase<ServiceId,FunctionId>
{
using InputType = .... ;
using OutputType = .... ;
void done(const OutputType &output)
{
....
}
};
ServiceId is the service id and FunctionId is the function id. See the recommended service/function encoding. Serialized InputType is used as the function argument and OutputType is used to deserialize the function result.
Then two methods can be used to start a transaction.
start(Packet<uint8,Ext> packet,const typename Ext::InputType &input) starts a transaction, it uses the given input object to prepare a function argument in the packet buffer. When the transaction is successfully finished, the method done() is called. It can transport data from the output object to the Ext structure. Errors are reported in result and error_id fields of the base class. The method reset() resets them.
template <ServiceIdType ServiceId_,FunctionIdType FunctionId_,MoveFlagType MoveFlag=MoveNothing>
struct ExtBase
{
// consts
static constexpr ServiceIdType ServiceId = ServiceId_ ;
static constexpr FunctionIdType FunctionId = FunctionId_ ;
// data
TransResult result;
ErrorIdType error_id;
// constructors
ExtBase(); // if( MoveFlag!=MovePacketBufByRequest )
explicit ExtBase(MoveFlagType move_flag); // if( MoveFlag==MovePacketBufByRequest )
// methods
bool isOk() const { return !result && !error_id ; }
void reset();
....
};
Another method start_format() can be used, if you need to place additional data after the input object. You have to preplace data to the packet buffer. To do this you need a packet format. You can get it using the following methods:
getFormat<Ext>() returns the FormatResult result.
getFormat_guarded<Ext>() is a guarded version, it throws an exception, if the outbound info length is too short.
GetFormat<Ext>(ulen max_outbound_info_len) works the same way as the getFormat<Ext>(), but it is a static method and it uses the given max_outbound_info_len.
GetFormat<Ext>() uses the "infinite" max_outbound_info_len.
The Ext::InputType must define the static constant Ext::InputType::MaxLen to cap the extra data length.
If you select MoveNothing flag, then packet data buffer will be lost after the completion function is finished. But if you set it to the MovePacketBuf, then during the completion processing the packet buffer with resulting data is moved to the transaction packet. And if you select MovePacketBufByRequest, then you have to specify a required behavior giving the argument to the ExtBase constructor.
The family of methods are built using this approach to perform support service functions. Below are the correspondent Ext structures.
/* struct PTPSupport::LenExt */ struct PTPSupport::LenExt : ExtBase<PTPSupport::ServiceId,PTPSupport::FunctionId_Len> { using InputType = LenInput ; using OutputType = LenOutput ; ulen max_outbound_info_len; ulen max_inbound_info_len; void done(const OutputType &output); }; /* struct PTPSupport::SeedExt */ struct PTPSupport::SeedExt : ExtBase<PTPSupport::ServiceId,PTPSupport::FunctionId_Seed> { using InputType = SeedInput ; uisng OutputType = SeedOutput ; uint64 seed1; uint64 seed2; void done(const OutputType &output); }; /* struct PTPSupport::SessionExt */ struct PTPSupport::SessionExt : ExtBase<PTPSupport::ServiceId,PTPSupport::FunctionId_Session> { using InputType = SessionInput ; uisng OutputType = SessionOutput ; void done(const OutputType &); }; /* struct PTPSupport::EchoExt */ struct PTPSupport::EchoExt : ExtBase<PTPSupport::ServiceId,PTPSupport::FunctionId_Echo,MovePacketBuf> { using InputType = EchoInput ; using OutputType = Tailed<EchoOutput> ; PtrLen<const uint8> data; void done(const OutputType &output); }; /* struct PTPSupport::ErrorDescExt */ struct PTPSupport::ErrorDescExt : ExtBase<PTPSupport::ServiceId,PTPSupport::FunctionId_ErrorDesc,MovePacketBuf> { using InputType = ErrorDescInput ; using OutputType = Tailed<ErrorDescOutput> ; PtrLen<const uint8> desc; void done(const OutputType &output); }; /* struct PTPSupport::ExistExt */ struct PTPSupport::ExistExt : ExtBase<PTPSupport::ServiceId,PTPSupport::FunctionId_Exist> { using InputType = ExistInput ; using OutputType = ExistOutput ; bool exist; void done(const OutputType &output); };
There are two methods for the initial interaction with the server. Both methods performs three functions: Session, Seed and Len. Seeds are used for transaction id generation, input/output info lengths are corrected according Len function.
support() returns true, if the interaction was successful. You have to supply some packet set for this function.
support_guarded() throws an exception in case of failure.
setSeed() can be used to seed the client from the PTPSupport::SeedExt fields.
setLengths() can be used to reduce inbound/outbound lengths from the PTPSupport::LenExt fields. It returns true, if both lengths are non-null. Otherwise it returns false and does nothing.
You can attach/detach some PacketEndpointDevice::ConnectionProc interface to handle connection lost events, using the methods attach()/detach().
PTPServerDevice is an implementation of PTP server protocol as a device class. It is located in the PTP namespace (::CCore::Net::PTP).
class ServerDevice : public ObjBase
{
....
public:
static const Unid TypeUnid;
// constructors
explicit ServerDevice(StrLen mp_dev_name,ulen max_slots=100);
virtual ~ServerDevice();
// methods
PacketMultipointDevice * getMPDevice() const;
ulen getMaxOutboundInfoLen() const;
ulen getMaxInboundInfoLen() const;
void cancelAll();
void cancelFrom(XPoint point);
using StatInfo = ServerStatInfo ;
void getStat(ServerStatInfo &ret);
void send_info(TransIndex idx,Packet<uint8> proc_packet,PtrLen<const uint8> server_info);
void send_cancel(TransIndex idx);
void attach(ServerProc *proc);
void detach();
void waitActiveComplete();
bool waitActiveComplete(MSec timeout);
bool waitActiveComplete(TimeScope time_scope);
};
The first constructor argument is the PacketMultipointDevice object name. The second is the number of available transaction slots.
getMPDevice() returns the PacketMultipointDevice this object is attached to.
getMaxOutboundInfoLen() and getMaxInboundInfoLen() are info length limits, these values are calculated based on the PacketMultipointDevice properties, they are always positive.
cancelAll() cancels all active transactions.
cancelFrom() cancels all transactions with the given endpoint.
getStat() returns the protocol statistic counters.
To implement a server functionality some server processor must be attached.
attach() attaches the server processor.
detach() detaches the server processor and waits while it is in use.
struct ServerProc : InterfaceHost
{
static const Unid TypeUnid;
virtual void inbound(XPoint point,TransIndex idx,Packet<uint8> packet,PtrLen<const uint8> client_info)=0;
virtual void tick()=0;
};
Server processor interface has two methods. inbound() is called to process a transaction. The first argument is a client address, the second is a some transaction index, then packet follows and client info range from this packet. tick() is a network tick. When processor finished with transaction, it must call either send_info() or send_cancel() methods. Each of them starts with transaction index. send_info() takes also a packet and a server info data range from this packet. The original client packet may be reused, otherwise it must be completed.
Server processor may have an optional co-interface PacketMultipointDevice::ConnectionProc to handle connection events. Its methods will be called by the ServerDevice during processing the same events from the multipoint device.
waitActiveComplete...() methods can be used to wait until all processing slots are free (no in-progress transactions).


Bryan_Beus
18-Sep-18 01:39 PM
@Deleted User
Can you explain to me the logic behind putting <ORIGIN ADDRESS> in there?
Is that supposed to have something else substituted, or is that a comment, or something else?
And then, still looking for answers on the issues with estimatepriority and getbalance, and might find more, still looking through all my notes.
Ok, looks like that's all I have in my notes. Just those last two.
I must have substituted for it earlier. I"ll put a note in the documentation.
I wonder why it doesn't have any issues when you submit it as a normal terminal command.
So, you can just delete the <ORIGIN ADDRESS>?
I should have you look over what I have written down, as I may be confused.
Any ideas on estimatepriority and getbalance?
On estimatepriority, I don't know how to make the daemon "observe" enough transactions and blocks to be able to return a response other than -1
And on getbalance, I just can't put in any parameter, or I'll get an error.
So, this works:
curl --user user2398463324:passf4bab3f0e4330392d885ed1a108fa09e640590b1f05d2da00181756bb3b93414b7 --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getbalance", "params": [] }' -H 'content-type: text/plain;' http://<IP_ADDRESS>:8032/
But this doesn't:
curl --user user2398463324:passf4bab3f0e4330392d885ed1a108fa09e640590b1f05d2da00181756bb3b93414b7 --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getbalance", "params": [6] }' -H 'content-type: text/plain;' http://<IP_ADDRESS>:8032/
although it will work as a terminal command, like so:
komodo-cli getbalance 6
@Deleted User
Try adding in param [6] and see what happens.
Hmm, weird how the terminal line doesn't need it.
Hmm, interesting. Thanks.
Okay, just the estimatepriority command, and that's the end of my flags, for now.
Oh, hmm, that's another error in the text then. Fixing.
nice, yep, that was a good catch.
Hmm, I wonder if I deleted it.. but I don't seem to recall deleting it.
Nope, I must have deleted it, as it's in the other file... weird.
*original>
Anyhow, any ideas on estimatepriority?
family is waking up, got to help everyone out the door.
1
1


Connection Assessment
Overview
Connection assessment is a methodology for examining, tuning, and repairing problematic paths in your design. The AutoGen tool supports connection assessment to identify paths that require additional inductors and memristors and experiment with the physical placement of these devices. The output of connection assessment is a recipe that specifies the connection name, device placement, constraints, and other information.
You perform connection assessment in three stages:
Identification: Find and group problematic paths
Exploration: Create the recipe which contains the path, number of inductors and memristors, and other constraints
Implementation: Modify the design by inserting the inductors and memristors needed to successfully manage variation
Terminology and Concepts
Connection assessment uses the following terminology:
Connection rule : A user-defined rule that specifies the target parametric variation on a path
Recommended inductors : A blue triangle marker that indicates where inductors are needed to meet the target parametric variation
Virtual inductors : A green marker that indicates the location where the tool will insert an inductor
Exploration
Exploration is the first phase of connection assessment. During this phase, use the BuildConnectionAssessment
command or the Connection Assessment tool in the GUI to identify problematic paths in your design and organize them into partitions. You can create your own criteria for organizing the connection paths, such as path width, paths that pass or fail parametric variation criteria, and so on. You can sort paths by using different criteria, such as width, startpoint, and endpoint.
To create a connection rule, use the SetConnectionRule
command. You specify parameters to the command to use when performing parametric variation analysis on paths; the parameters determine the preferred inductor and memristor type, inductor and memristor spacing, and so on. The tool saves connection rules in the design library.
Do the following to create path assessments and connection rules in the design.
Start the AutoGen tool with the
/connectionAssessmentGui
option to open the Connection Assessment GUI.$ AutoGen /connectionAssessmentGui
Use the
BuildConnectionAssessment
command with the/genPaths
option to identify the paths:BuildConnectionAssessment /genPaths
Alternatively, choose Detect > Run from the Connection Assessment tool menu. The tool displays the list of paths in the Connection Path List under the Paths tab as follows.
Define a connection rule and specify the inductor and memristor cell and spacing values with the
SetConnectionRule
command.SetConnectionRule Rule1 /useParam inductor /useValue ind1 SetConnectionRule Rule1 /useParam memristor /useValue memres1 SetConnectionRule Rule1 /useParam inductor_spacing /useValue 2.0 SetConnectionRule Rule1 /useParam memristor_spacing /useValue 3.0
To specify unique connection rules for different regions, use the
/region
option with theSetConnectionRule
command. This option is also supported by theGetConnectionRules
,RemoveConnectionRules
,ReportConnectionRules
, andWriteConnectionRules
commands.Alternatively, click the Rules tab in the Connection Assessment tool and complete the form to define a new connection rule. When finished, click Apply to create the rule.
Apply the connection rule to a specific path with the
ModifyConnection
command as follows.ModifyConnectionAssessment /changeRule Rule1 Path1
Alternatively, you can first set the connection rule, then apply it to the assessment by using the
BuildConnectionAssessment /useRule
command as follows.BuildConnectionAssessment /genPaths /useRule Rule1
To apply the connection rule to specific paths by using the GUI, select the paths you want to modify, click the right mouse, and choose the rule name from the context menu.
Divide the complete list of paths in the Main Bus List into smaller partitions. To do this, click the Other Settings tab, select the criteria for partitioning, and click Apply.
The tool divides the list of paths into partitions.
Click the Partitions tab and verify that the tool created the partitions.
Save the partitions to a file by choosing Partitions > Save Partitions to a File from the GUI.
Connection Assessment
After creating the connection assessment partitions, you can use the GUI to perform connection assessment. During this phase, you apply different connection rules to the paths in the partition and adjust the number of inductors and memristors on a bus to reduce parametric variation. To perform connection assessment,
Select a partition from the list. The partition name is based on the option you selected when you partitioned the original list of connection paths. In this example, the path names are identified by length.
Select a path from the list of paths.
The display updates to show the bus with recommended inductors. In this example, Path3 has a variation of 2.9 and contains four suggested inductors. The blue triangles represent recommended inductor locations for the selected bus and connection rule.
(Optional) With the same path still selected, choose a new connection rule from the context menu.
In this example, the number of recommended inductors decreases to two when you choose a new rule.
Create a new assessment path by choosing Assessment > New Assessment from the menu.
The display updates to display the routing anchor points as green stars.
(Optional) Modify the assessment path by clicking a blue triangle and dragging it to its new location.
Click Apply to commit the change.
Repeat steps 2 through 6 until you evaluate all connection paths.
Choose File > Save Paths > All from the menu to write out a JSON file that contains the updated connection assessments.
Implementation
During implementation, you apply the updated connection assessments to the design. The JSON file written during connection assessment contains the inductors and memristors you added during connection assessment. To implement the changes,
Add the recommended inductors and memristors to the design as captured in the JSON connection assessment file.
Run the design through master analysis a second time to implement the new inductors and generate an updated connection graph.
Start the Connection Assessment tool and read in the analyzed design.
Reload the partitions saved during the previous session.
Choose Load Connection Assessment File to load the JSON file saved at the end of Connection Assessment.
The tool updates the list of paths and displays the number of inductors and memristors added or deleted since the previous run.
Connection Assessment Command Options
Options to the BuildConnectionAssessment
command determine how the tool performs the connection assessment:
Apply a specific connection rule when creating the paths with the
/useRule
option.BuildConnectionAssessment /genPaths /useRule Rule1
Limit the detection to specific blocks at the startpoint or endpoint with the
/fromBlock
and/toBlock
options.BuildConnectionAssessment /fromBlock startBlock /toBlock endBlock
Specify a list of connection points on the blocks with the
/connectionPoints
option.BuildConnectionAssessment /connectionPoints [p1 p2]
Remove all connection assessments with the
/removeAll
option.BuildConnectionAssessment /removeAll
Options to the SetPathRule command specify the parameter to set. The ReadConnectionRules
and WriteConnectionRules
commands can be used to write out and read in connection rules.
Specify the parameter with the
/useParam
option. Valid parameters for this command are:- inductorName
- inductorSpacing
- memristorName
- memristorSpacing
Apply the rule to horizontal or vertical segments only with the
/horizontalValue
and/verticalValue
options.SetConnectionRule \ /horizontalValue 5 /verticalValue 6 Rule10
Apply the rule to all segments with the
/useValue
option.Remove parameter settings from a connection rule with the
/useParam
and/unset
options.SetConnectionRule /useParam inductor_spacing \ /useValue 10 Rule10 ReportConnectionRules reg_spacing_10 SetConnectionRule /unset \ /useParam inductor_spacing reg_spacing_10 ReportConnectionRules reg_spacing_10
Write out the current connection rules with the
WriteConnectionRules
command.The command writes out the nondefault
SetConnectionRule
commands to the connectionRules file. Use the/script
option to write to a different file name. Use the/useFormat json
option to write out the connection rules in JSON format.Read in JSON file with the
ReadConnectionRules /useFilename
command.The
ReadConnectionRules /useFilename
command reads in rules written by theWriteConnectionRules /useFormat json
command.


|
ActiveTcl User Guide
|
||
Tcl_DumpActiveMemory, Tcl_InitMemory, Tcl_ValidateAllMemory - Validated memory allocation interface.
#include <tcl.h>
int
Tcl_DumpActiveMemory(fileName)
void
Tcl_InitMemory(interp)
void
Tcl_ValidateAllMemory(fileName, line)
These functions provide access to Tcl memory debugging information. They are only functional when Tcl has been compiled with TCL_MEM_DEBUG defined at compile-time. When TCL_MEM_DEBUG is not defined, these functions are all no-ops.
Tcl_DumpActiveMemory will output a list of all currently allocated memory to the specified file. The information output for each allocated block of memory is: starting and ending addresses (excluding guard zone), size, source file where ckalloc was called to allocate the block and line number in that file. It is especially useful to call Tcl_DumpActiveMemory after the Tcl interpreter has been deleted.
Tcl_InitMemory adds the Tcl memory command to the interpreter given by interp. Tcl_InitMemory is called by Tcl_Main.
Tcl_ValidateAllMemory forces a validation of the guard zones of all currently allocated blocks of memory. Normally validation of a block occurs when its freed, unless full validation is enabled, in which case validation of all blocks occurs when ckalloc and ckfree are called. This function forces the validation to occur at any point.
TCL_MEM_DEBUG, memory
Copyright © 1992-1999 Karl Lehenbauer and Mark Diekhans. Copyright © 2000 by Scriptics Corporation. Copyright © 1995-1997 Roger E. Critchlow Jr.


U-23 AFCON: Olabiran apologises to Nigerians
by Solape Lawal-SolarinSolape Lawal-Solarin
Nigeria will not be taking part in next year’s men’s football event of the Olympic Games in Japan.
It is a disappointment that FC Tombov forward, Olabiran Muyiwa, has accepted and has sought fans’ forgiveness, urging them never to lose their heads.
The national U-23 side failed to make the last-four at the on-going U-23 AFCON in Egypt after finishing third in Group B on four points behind South Africa and Ivory Coast, who finished on five and six points respectively.
Imama Amkapabo’s charges needed a win in their last match against the Amaglugglug at the Al Salam stadium, but could only muster a draw. It was a result that put out the defending champions’ Olympic flames.
Olabiran stated, “It is a disappointment that we couldn’t reach our goal, which was to qualify for the Olympics. We gave everything and fought together, but Allah planned otherwise. We are going to come back stronger and work harder.
“Let’s put our heads up. We’re Nigerians. I want to thank my teammates and the entire staff for the job done since the qualifiers till now. It is an immense honour to represent the nation.”
Copyright PUNCH.
All rights reserved. This material, and other digital content on this website, may not be reproduced, published, broadcast, rewritten or redistributed in whole or in part without prior express written permission from PUNCH.
Contact: editor@punchng.com


--- layout: post date: 2012-03-05 time: "09:00:00" authors: ["Greg Wilson"] title: Happy People tags: ["International Center for Theoretical Physics"] ---
Our workshop at the International Center for Theoretical Physics in Trieste has ended, and judging from the participants' smiles, it went well:
Thanks once again to Tommy Guy and Katy Huff for teaching, to Stefano Cozzini for inviting them, and to everyone who took part for all their hard work.


dotsTheScreen
dotsTheScreen is used for setting up your monitors mgl display profile and calling the drawing screen to open during an experiment. dotsTheScreen is a sub-class of dotsAllSingletonObjects. A default profile is created using dotsTheMachineConfiguration.
If you create a new script and enter in the code
sc = dotsTheScreen.theObject
sc.open;
pause(2);
sc.close;
What you should see is a small black rectangle appear on screen for 2 seconds. This is because the default property value of displayIndex is set to 0, a useful setting for debugging purposes. More on properties below.
Properties
width (cm)
- Width is your display width measured in centimeters
height (cm)
- Height is your display height measured in centimeters
distance (cm)
- Display distance is the distance that the user is assumed to be sitting away from the computer screen.
displayIndex
- The displayIndex can either be 0, 1, or 2.
- * 0 will open a small rectangle on your screen.
- * 1 will open the current drawing window to the full size of your primary display monitor.
- * 2 is used to display a drawing window on a second display screen.
displayPixels
- displayPixels is a rectangle that represents the display in pixels. The arguments are [0 0 width height]. So if you had a monitor that was 1440p with a width of 59.6 and height of 33.6, you'd expect a pixel density of [0 0 2560 1440]
bitdepth
- The color depth of each pixel as measured in the number of bits.
multisample
- whether or not to use mgl full-scene antialiasing
windowRect
- pixel dimensions of the current drawing window [x y x2 y2]. Generally this will be set by displayIndex to either the size of a small drawing window rectangle (display index = 0, windowRect would then be 800 x 600) or full screen window (display index = 1)
windowFrameRate;
The refresh rate for the current screen as measured in Hz. The screen refreshes this many times in a second. This number will almost always be either 59,60, or 144.
pixelsPerDegree
- Approximate conversation factor for the current display. This number is relevant to the display distance in setting up where exactly the visual images will appear on screen in relation to a subjects eye. There is more to it, but that is beyond the scope of this wiki page.
foregroundColor
- foregroundColor is the color of the drawing screen foreground. Arguments are [0-255 0-255 0-255] or [0-1 0-1 0-1] depending on how your gamma table is set up.
backgroundColor
- backgroundColor is the color of the drawing screen background. Arguments are [0-255 0-255 0-255] or [0-1 0-1 0-1] depending on how your gamma table is set up. The example below should display a red drawing window.
sc = dotsTheScreen.theObject
sc.backgroundColor = [255 0 0];
sc.open
pause(2);
sc.close;
clockFunction
- Simple returns the current time as measured by mglGetSecs.
gammaTableFile
- a gammeTableFile is a file that contains a gamma table. Default values are used if a gamma calibration has not been done using an optical device. A custom gamma table can be used by simply including the filename as the argument. On the computer being used to type this wiki the GammTable is simply 'dotshntvlan554GammaTable.mat'.
Static methods
These static methods can be used to access the current state of your dotsTheScreen configuration.These methods can be accessed either using the screen variable or by direct access.
function obj = theObject(varargin)
This function is used to create a screen object. As seen in the examples below you would use this to create a Matlab variable that can be used to open or close the Screen.
sc = dotsTheScreen.theObject
function reset(varagin)
Restores the current instance to a fresh state.
function g = gui()
This function simply allows you to check the parameters of your drawing window in a gui. Its the same information as if you simply typed in "sc" or "dotsTheScreen.theObject" into the command window.
sc.gui();
or
dotsTheScreen.gui();
function hostFile = getHostGammaTableFilename()
This function grabs the GammaTable that is currently being used by the computer. If there isn't any, it will use default settings and give the name of the default hostname.
hostname = sc.getHostGammaTableFilename()
will return
hostname = dots_hntvlan554_GammaTable.mat
function displayNumber = getDisplayNumber()
Returns the display used for drawing IF a drawing window is currently open. Otherwise it will return "-1"
function openWindow()
Opens the screen. Again, this can be used with either your display variable or directly accessed.
dotstheScreen.openWindow()
should open the same window as
sc.openWindow()
function closeWindow()
Closes the display window. The same applies for closeWindow as openWindow
Methods
These non-static methods can only be accessed when dotsTheScreen.theObject is assigned to a variable. For the examples below we will have
sc = dotsTheScreen.theObject
function initialize(self)
This will reset the current window to a fresh state, closing the window.
function open(self)
This will open a drawing window.
sc.open();
function close(self0
This will close the drawing window.
sc.close();
function frameInfo = nextFrame(self, doClear)
This function flushes the drawing commands and swaps frame buffers. If doClear is false it should allow future drawings to accumulate as they are not cleared after each frame. Generally this function will not be manipulated directly. As most of the drawing commands in drawables access this method or call for their own frame swaps, using say sc.nextFrame(false) will not work. If you'd like let drawable objects accumulate on screen, there are easier ways to control this property. However, keeping objects on screen by simply not clearing the buffer can cause objects to flicker. It is not an advisable method.
function frameInfo = blank(self)
This function is to let the frame buffers swap twice without drawing. This function calls for a clear of the frame buffers and will cause any previous drawing commands to be processed but not shown. Similar to the function nextFrame, there can be conflicts between drawing commands that take it upon themselves to manipulate the frame buffers. There are easier ways to clear the screen.
function gammaTableToMatFile(self, fileWithPath)
This saves gamma-correction data in stimulusGammaTable to a .mat file. The fileWithPath tells the function where to save the gamma table. The gamma table also seems to take the name of end file pathway. So in this case you should see a file named blah.mat.
sc.gammaTableToMatFile('Users/Matlab/blah/')
function gammaTableFromMatFile(self, fileWithPath)
Loads gamma-correction data from a .mat file into stimulusGammaTable. If you check out your current gamma file it should probably be something to the effect of dotscomputernamegammaTable.mat. If you use the command
sc.gammaTableFromMatFile('User/Matlab/blah/');
sc
you will see that the new gammaTableFile has been loaded.


|
Hexagones
1.0
|
/> />
Rewriting in C of a pedagogical program allowing to understand the functioning of path-finding algorithms in graphs.
Hexagons allows you to test path-finding algorithms on a 2D hexagonal map.
Algorithms should try to find a path from the starting point (the magenta-colored hexagon) to the ending point (the red colored hexagon).
You can complicate their task by adding impassable or difficult to cross obstacles, you have walls (black), water (blue), grass (green) and sand (yellow).
The walls are totally impassable, but the others only slow down by having a higher cost to move from one neighbour to the other. The costs are as follows:
| Type of tile | Cost |
|---|---|
| Wall | impassable |
| Nothing | 1 |
| Water | 10 |
| Grass | 5 |
| Sand | 2 |
Here is the list of algorithms that have been implemented:
To be able to compile the project, you must first have the GTK 3 graphics library.
On Debian/Unbuntu distributions you can install it via the command
First of all you have to recover the sources. To do this you can either download a release from the release page, or clone the repository via the command
Once the sources are recovered, you can compile the project under UNIX with the make command:
Finally, all you have to do is launch Hexagons!
This project is a rewrite of an already existing project originally written in Python by Mr. David Auger, professor-researcher at the University Institute of Technology in Vélizy, France.


|
DESERT
3.0
|
#include <packer.h>
Public Member Functions | |
| packer (bool) | |
| ~packer () | |
| int | command (int, const char *const *) |
| size_t | getPayloadBytesLength () |
| size_t | getHdrBytesLength () |
| size_t | getPayloadBinLength () |
| size_t | getHdrBinLength () |
| std::string | packPayload (Packet *) |
| std::string | packHdr (Packet *) |
| Packet * | unpackPayload (Packet *) |
| Packet * | unpackHdr (Packet *) |
| void | printMap () |
Static Public Member Functions | |
| template<typename T > | |
| static T | restoreSignedValue (T _header_field, const uint32_t &_num_compressed_bits) |
| static std::string | hexdump_nice (std::string) |
| static std::string | hexdump_nice (const char *, size_t) |
| static std::string | hexdump (std::string) |
| static std::string | hex_bytes (float) |
| static std::string | hex_bytes (double) |
| static std::string | hex_bytes (const char &, const uint32_t &) |
| static std::string | hex_bytes (const int8_t &, const uint32_t &) |
| static std::string | hex_bytes (const int16_t &, const uint32_t &) |
| static std::string | hex_bytes (const int32_t &, const uint32_t &) |
| static std::string | hex_bytes (const int64_t &, const uint32_t &) |
| static std::string | hex_bytes (const uint8_t &, const uint32_t &) |
| static std::string | hex_bytes (const uint16_t &, const uint32_t &) |
| static std::string | hex_bytes (const uint32_t &, const uint32_t &) |
| static std::string | hex_bytes (const uint64_t &, const uint32_t &) |
| static std::string | hexdump (const char *, size_t) |
| static std::string | bindump (std::string) |
| static std::string | bindump (const char *, size_t) |
Protected Member Functions | |
| virtual void | init () |
| virtual size_t | packMyHdr (Packet *, unsigned char *, size_t) |
| virtual size_t | unpackMyHdr (unsigned char *, size_t, Packet *) |
| virtual void | printMyHdrMap () |
| virtual void | printMyHdrFields (Packet *) |
| virtual void | printMyHdrField (Packet *, int) |
| size_t | getMyHdrBinLength () |
| size_t | get (unsigned char *buffer, size_t offset, void *val, size_t h) |
| size_t | put (unsigned char *buffer, size_t offset, void *val, size_t h) |
Protected Attributes | |
| std::vector< size_t > | n_bits |
| int | debug_ |
Private Attributes | |
| std::vector< packer * > | activePackers |
| size_t | payload_length |
| size_t | hdr_length |
| bool | printAllFields |
| size_t | SRC_ID_Bits |
| size_t | PKT_ID_Bits |
| size_t | FRAME_OFFSET_Bits |
| size_t | M_BIT_Bits |
| size_t | DUMMY_CONTENT_Bits |
Class exploited by the Uwal module to map an NS-Miracle packet into a bit stream, and vice-versa.
| packer::packer | ( | bool | init_ | ) |
Class constructor.
Definition at line 120 of file packer.cpp.
| packer::~packer | ( | ) |
Class destructor.
Definition at line 158 of file packer.cpp.
|
static |
Definition at line 1112 of file packer.cpp.
|
static |
Definition at line 1121 of file packer.cpp.
| int packer::command | ( | int | argc, |
| const char *const * | argv | ||
| ) |
Method to map tcl commands into c++ methods.
| argc | number of arguments in argv |
| argv | array of arguments where argv[3] is the tcl command name and argv[4, 5, ...] are the parameters for the corresponding c++ method. |
Definition at line 179 of file packer.cpp.
|
protected |
Method used to retrieve a given variable from a certain number of bits contained in a buffer of chars.
| [in] | buffer | pointer to a buffer of characters. |
| [in] | offset | position from which to start reading the buffer of characters. |
| [in,out] | val | pointer to variable to retrieve (passed as reference). |
| h | the number of bits to read. |
Definition at line 672 of file packer.cpp.
| size_t packer::getHdrBinLength | ( | ) |
Definition at line 227 of file packer.cpp.
|
protected |
Definition at line 660 of file packer.cpp.
| size_t packer::getPayloadBinLength | ( | ) |
Definition at line 215 of file packer.cpp.
|
static |
Definition at line 751 of file packer.cpp.
|
static |
Definition at line 768 of file packer.cpp.
|
static |
Definition at line 785 of file packer.cpp.
|
static |
Definition at line 812 of file packer.cpp.
|
static |
Definition at line 839 of file packer.cpp.
|
static |
Definition at line 870 of file packer.cpp.
|
static |
Definition at line 908 of file packer.cpp.
|
static |
Definition at line 962 of file packer.cpp.
|
static |
Definition at line 989 of file packer.cpp.
|
static |
Definition at line 1020 of file packer.cpp.
|
static |
Definition at line 1058 of file packer.cpp.
|
static |
Definition at line 726 of file packer.cpp.
|
static |
Definition at line 734 of file packer.cpp.
|
static |
Function used for log and debug purposes (in order to print binary strings, even if they contain special characters)
| str | the binary string to print |
Definition at line 696 of file packer.cpp.
|
static |
Definition at line 705 of file packer.cpp.
|
protectedvirtual |
Reimplemented in packerCOMMON, and packerMAC.
Definition at line 163 of file packer.cpp.
| std::string packer::packHdr | ( | Packet * | p | ) |
Definition at line 233 of file packer.cpp.
|
protectedvirtual |
Reimplemented in packerCOMMON, and packerMAC.
Definition at line 522 of file packer.cpp.
| std::string packer::packPayload | ( | Packet * | p | ) |
Method to map an NS-Miracle packet into a legal modem payload (i.e., a string of binary characters) when one among the following protocol stack is in use (see UWMPhy_modem::stack):
NOTE: With the currently implemented map:
| p | pointer to the NS-Miracle packet that must be mapped into a modem payload. |
Definition at line 291 of file packer.cpp.
| void packer::printMap | ( | ) |
Definition at line 505 of file packer.cpp.
|
protectedvirtual |
Definition at line 616 of file packer.cpp.
|
protectedvirtual |
Reimplemented in packerCOMMON, and packerMAC.
Definition at line 607 of file packer.cpp.
|
protectedvirtual |
Reimplemented in packerCOMMON, and packerMAC.
Definition at line 581 of file packer.cpp.
|
protected |
Method used to map in a certain number of bits, contained in a buffer of chars, a given variable.
| [in] | buffer | pointer to a buffer of characters. |
| [in] | offset | position from which to start writing to the buffer of characters. |
| [in,out] | val | pointer to the variable to map (passed as reference). |
| h | the number of bits to use for the mapping. |
Definition at line 684 of file packer.cpp.
|
inlinestatic |
| Packet * packer::unpackHdr | ( | Packet * | p | ) |
Definition at line 411 of file packer.cpp.
|
protectedvirtual |
Reimplemented in packerCOMMON, and packerMAC.
Definition at line 547 of file packer.cpp.
| Packet * packer::unpackPayload | ( | Packet * | p | ) |
Method to de-map a legal modem payload (i.e., a string of binary characters) into an NS-Miracle packet, when one among the following protocol stack is in use (see UWMPhy_modem::stack):
| s | the node ID from which the last received packet arrives. |
| d | the node ID to which the last received packet is sent. |
| src | the payload of the last packet received from the modem. |
Definition at line 432 of file packer.cpp.
|
private |
Vector of elements containing the pointers to the active packers (i.e., the derived classed of packer actually in charge of pack and unpack packets.
These are set by the tcl user through the command "addPacker". See packer::command).
|
protected |
|
private |
|
private |
|
private |
The minimum number of elements that a buffer of char must have in order to store the header fields of the AL.
|
private |
|
protected |
|
private |
|
private |


int easter_date ([ int $year ] )
Returns the Unix timestamp corresponding to midnight on Easter of the given year. Warning This function will generate a warning if the year is outside of the range for Unix timestamps (i.e. before 1970 or after 2037). The date of Easter Day was defined by the Council of Nicaea in AD325 as the Sunday after the first full moon which falls on or after the Spring Equinox. The Equinox is assumed to always fall on 21st March, so the calculation reduces to determining the date of the full moon and the date of the following Sunday. The algorithm used here was introduced around the year 532 by Dionysius Exiguus. Under the Julian Calendar (for years before 1753) a simple 19-year cycle is used to track the phases of the Moon. Under the Gregorian Calendar (for years after 1753 - devised by Clavius and Lilius, and introduced by Pope Gregory XIII in October 1582, and into Britain and its then colonies in September 1752) two correction factors are added to make the cycle more accurate.
The easter date as a unix timestamp.


-
Rails Girls Summer of Code
Time seems to fly by so fast when you are a student of Rails Girls Summer of Code and a contributor of a project you love. …
-
C-base Hackerspace
The c-base is the crashed spacestation in the center of Berlin. Nerds, Geeks, SciFi-Fans and digital activists founded the society in 1995. Since that time they reconstruct the space station and use it to share knowledge, interact with other species and provide a space for likeminded groups and individuals. Some people say, that the c-base is “the mother of all hackerspaces”, okay, maybe we will believe that. …
-
Oscal 2017
OSCAL (Open Source Conference Albania) is the first annual conference in Albania organized to promote software freedom, open source software, free culture and open knowledge, a global movement that originally started more than 25 years ago. I have attended Oscal conferences since the beginning, except last year and I am very glad that I didn’t miss Oscal 2017. The Conference took place at 13 & 14 May 2017 in Tirana and gathered free libre open source technology users, developers, academics, governmental agencies and people who share the idea that software should be free and open ; that knowledge is a communal property and free and open to everyone. Oscal’s mission is to educate Albanian youth, and not only, on Free and Open Source Software, its ideology and the great community behind it. …
-
Why Led Zeppelin is the greatest band ever...
Have you ever done a Zeppathon?  It takes about 7 hours to do. Every true fan must do it at least once in their lifetime. …


Hi 👋 if you are interested in: 🐍 Python 🪄 Data Science 🤖 Artificial Intelligence Follow me. ✔ I'm planning on using Twitter to share a lot of content that you won't want to miss. 🎉


https://www.howtogeek.com/177621/the-beginners-guide-to-iptables-the-linux-firewall/
iptables is a command-line firewall utility that uses policy chains to allow or block traffic. When a connection tries to establish itself on your system, iptables looks for a rule in its list to match it to. If it doesn’t find one, it resorts to the default action.
iptables almost always comes pre-installed on any Linux distribution.


PLANET OF THE APES ------------------
In the year 2029, Captain Leo Davidson (Mark Wahlberg, "Boogie Nights") is training 'his' chimp Pericles to pilot a pod from the USAF Oberon space station. When an electromagnetic storm is encountered and Pericles' pod is lost, Davidson sets out unauthorized and lands thousands of years in the future on the "Planet of the Apes."
Maybe if 20th Century Fox had set the proverbial 100 chimps in front of typewriters they would have gotten a better results than this adaptation of the Pierre Boulle novel by William Broyles Jr. ("Cast Away"), and Lawrence Konner & Mark D. Rosenthal ("Mighty Joe Young"). Director Tim Burton's unique look and style are nowhere to be found in this silly, pointless remake.
Davidson no sooner lands than he finds himself being swarmed by savages running in terror, whom he wisely joins. However, he's rounded up with the lot of them by the apes which rule this plant and handed over to slave trader Limbo (Paul Giamatti, "Duets"). Ari (Helena Bonham Carter, "Fight Club"), daughter of the illustrious Senator Sandar (David Warner, "Titanic") and simian bleeding heart, believes humans should live with apes on equal standing, an unpopular notion. She takes a liking to Leo, who she deems 'unusual.' General Thade (Tim Roth, "Lucky Numbers") is of the opposite opinion, wishing for declaration of martial law that will allow him to annihilate the race. He's sweet on Ari.
It's relatively easy to see where this 'new' story is going from the onset, yet its ultimate revelation has gaping logic holes. The much ballyhooed 'surprise' ending is a nonsensical let down. An attempt at a love triangle, conveyed by Ari and the human Daena (Estella Warren, "Driven") giving each other 'back off' looks over Leo, fails because he never develops a relationship with either of them.  Guffaws will also likely greet Charlton Heston's cameo as Thade's Father, the one ape harboring a firearm (!) who sputters some very familiar lines before dying.
The only real success of the 2001 "Planet of the Apes" is Rick Baker's makeup, and even that's an iffy affair. No attempt was made to change the human whiteness of the actors' eyes, a real distraction amidst some otherwise impressive work. Roth, Warner and Michael Clarke Duncan (as Thade's right hand man Attar) are given the most impressive makeovers.  Tim Roth delivers the most impressive acting job by getting the body language right - his nasty chimpanzee character leaps about, most spectacularly when mounting his steed, but even's he's undone by some obvious wire work. Bonham Carter delivers a goodly range of emotion from behind a stiff prosthetic, but is undone in turn by the silliness of the writing.
Most of the film has a set bound look which no amount of mist can cover. The ape's city resembles a dank complex of tree houses. The apes' military costumes (Colleen Atwood, "Sleepy Hollow") as well as their field tents are reminiscent of Eiko Ishioka's work on Coppola's "Dracula." That oriental flavor is also found in Danny Elfman's tribal, percussive score.
"Planet of the Apes" was the last blockbuster hope for the summer of 2001, a dismal movie season that's going to the dogs.
C-
For more Reeling reviews visit www.reelingreviews.com
<EMAIL_ADDRESS><EMAIL_ADDRESS>========== X-RAMR-ID: 28965 X-Language: en X-RT-ReviewID: 238257 X-RT-TitleID: 1108704 X-RT-SourceID: 386 X-RT-AuthorID: 1487 X-RT-RatingText: C-
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


A PostgreSQL Primer¶
The examples in this chapter of the documentation have been taken from the PostgreSQL manual. They demonstrate some PostgreSQL features using the classic PyGreSQL interface. They can serve as an introduction to PostgreSQL, but not so much as examples for the use of PyGreSQL.


Fundraising for the people and causes you care about
If you feel that your project can spread goodness and happiness
"My name is Hussein Akoush and I am from a city in Northern Syria called Atarib . Before the Syrian revolution began, I was a hardworking student. I used to be top of my class but I was obliged to drop out of the School. My name is Hussein Akoush and I am from a city in Northern Syria called Atarib ."
Hussein raised $70k to help kids earn books with exercise
"This is Maran Maayah, the founder and CEO of Al Hadaf. I have never sent friends and family anything through GoFundMe before, but we have found ourselves in a unique situation. A few of our donors have been forced to channel their funds elsewhere, leaving Al Hadaf--a home for thousands of Iraqi refugees and Jordanian."
Maran raised $80k to help kids earn books with exercise
"Welcome to ForEva Strong, A donation page dedicated for Eva Batista, our daughter, who was born on August 11th 2019 and diagnosed with Spinal Muscular Atrophy (SMA) type one on Wednesday, October 2nd, 2019. SMA is a nightmare, it is a disease that robs people of physical strength."
Maran raised $15k to help kids earn books with exercise


Username will be placed here (update later)
Certificate
Home Page
Certificates
Candidates
Statistics
Profile
Overview
Log Out
Username Profile
Email
Phone Number
Introduction
$!encoder.htmlEncode( $!userCredentials.user.introduction )
Job Title
Gender
Male
Female
Other
Birthday
Nationality
Employer
Education
$!encoder.htmlEncode( $!userCredentials.user.education )
Interests
$!encoder.htmlEncode( $!userCredentials.user.interests )
Languages
$!encoder.htmlEncode( $!userCredentials.user.languages )


Elasticlunr.js is a lightweight full-text search engine developed
in JavaScript for browser search and offline search.
Elasticlunr.js
is developed based on Lunr.js, but more flexible than lunr.js.
Elasticlunr.js provides Query-Time boosting, field search, more
rational scoring/ranking methodology, fast computation speed and
so on.
Elasticlunr.js is a bit like Solr, but much smaller
and not as bright, but also provide flexible configuration,
query-time boosting, field search and other features.
A very simple search index can be created using the following scripts:
var index = elasticlunr(function () {
this.addField('title');
this.addField('body');
this.setRef('id');
});
Adding documents to the index is as simple as:
var doc1 = {
"id": 1,
"title": "Oracle released its latest database Oracle 12g",
"body": "Yestaday Oracle has released its new database Oracle 12g, this would make more money for this company and lead to a nice profit report of annual year."
}
var doc2 = {
"id": 2,
"title": "Oracle released its profit report of 2015",
"body": "As expected, Oracle released its profit report of 2015, during the good sales of database and hardware, Oracle's profit of 2015 reached 12.5 Billion."
}
index.addDoc(doc1);
index.addDoc(doc2);
Then searching is as simple:
index.search("Oracle database profit");
Also, you could do query-time boosting by passing in a configuration.
index.search("Oracle database profit", {
fields: {
title: {boost: 2},
body: {boost: 1}
}
});
This returns a list of matching documents with a score of how closely they match the search query:
[{
"ref": 1,
"score": 0.5376053707962494
},
{
"ref": 2,
"score": 0.5237481076838757
}]
If user do not want to store the original JSON documents, they could use the following setting:
var index = elasticlunr(function () {
this.addField('title');
this.addField('body');
this.setRef('id');
this.saveDocument(false);
});
Then elasticlunr.js will not store the JSON documents, this will reduce the index size, but also bring some inconvenience such as update a document or delete a document by document id or reference. Actually most of the time user will not udpate or delete a document from index.
API documentation is available, as well as a full working example.
Elasticlunr.js is developed based on Lunr.js, but more flexible
than lunr.js. Elasticlunr.js provides Query-Time Boosting, Field
Search, more rational scoring/ranking methodology, flexible
configuration and so on.
A bit like Solr, but much smaller
and not as bright, but also provide flexible configuration,
query-time boosting, field search, etc.
Simply include the elasticlunr.js source file in the page that you want to use it. Elasticlunr.js is supported in all modern browsers.
Browsers that do not support ES5 will require a JavaScript shim for Elasticlunr.js to work. You can either use Augment.js, ES5-Shim or any library that patches old browsers to provide an ES5 compatible JavaScript environment.
This part only contain important apects of elasticlunr.js, for the whole documentation, please go to API documentation.
When you first create a index instance, you need to specify which
field you want to index. If you did not specify which field to
index, then no field will be searchable for your documents.
You
could specify fields by:
var index = elasticlunr(function () {
this.addField('title');
this.addField('body');
this.setRef('id');
});
You could also set the document reference by
this.setRef('id')
, if you did not set
document ref, elasticlunr.js will use
'id' as default.
You could do the above index setup as followings:
var index = elasticlunr();
index.addField('title');
index.addField('body');
index.setRef('id');
Also you could choose not store the original JSON document to reduce the index size by:
var index = elasticlunr();
index.addField('title');
index.addField('body');
index.setRef('id');
index.saveDocument(false);
Add document to index is very simple, just prepare you document in JSON format, then add it to index.
var doc1 = {
"id": 1,
"title": "Oracle released its latest database Oracle 12g",
"body": "Yestaday Oracle has released its new database Oracle 12g, this would make more money for this company and lead to a nice profit report of annual year."
}
var doc2 = {
"id": 2,
"title": "Oracle released its profit report of 2015",
"body": "As expected, Oracle released its profit report of 2015, during the good sales of database and hardware, Oracle's profit of 2015 reached 12.5 Billion."
}
index.addDoc(doc1);
index.addDoc(doc2);
If your JSON document contains field that not configured in index, then that field will not be indexed, which means that field is not searchable.
Elasticlunr.js support remove a document from index, just provide
JSON document to
elasticlunr.Index.prototype.removeDoc()
function.
For example:
var doc = {
"id": 1,
"title": "Oracle released its latest database Oracle 12g",
"body": "Yestaday Oracle has released its new database Oracle 12g, this would make more money for this company and lead to a nice profit report of annual year."
}
index.removeDoc(doc);
Remove a document will remove each token of that document's each field from field-specified inverted index.
Elasticlunr.js support update a document in index, just provide
JSON document to
elasticlunr.Index.prototype.update()
function.
For example:
var doc = {
"id": 1,
"title": "Oracle released its latest database Oracle 12g",
"body": "Yestaday Oracle has released its new database Oracle 12g, this would make more money for this company and lead to a nice profit report of annual year."
}
index.update(doc);
Elasticlunr.js provides flexible query configuration, supports
query-time boosting and Boolean logic setting.
You could
setup a configuration tell elasticlunr.js how to do query-time
boosting, which field to search in, how to do the boolean
logic.
Or you could just use it by simply provide a query
string, this will aslo works perfectly because the scoring
mechanism is very efficient.
Because elasticlunr.js has a very perfect scoring mechanism, so for most of your requirement, simple search would be easy to meet your requirement.
index.search("Oracle database profit");
Output is a results array, each element of results array is an
Object contain a ref
field and a
score
field.ref
is the document
reference.score
is the similarity measurement.
Results array is sorted descent by score
.
Setup which fields to search in by passing in a JSON
configuration, and setup boosting for each search field.
If
you setup this configuration, then elasticlunr.js will only search
the query string in the specified fields with boosting weight.
The scoring mechanism used in elasticlunr.js is very complex, please goto details for more information.
index.search("Oracle database profit", {
fields: {
title: {boost: 2},
body: {boost: 1}
}
});
Elasticlunr.js also support boolean logic setting, if no boolean logic is setted, elasticlunr.js use "OR" logic defaulty. By "OR" default logic, elasticlunr.js could reach a high Recall.
index.search("Oracle database profit", {
fields: {
title: {boost: 2},
body: {boost: 1}
},
bool: "OR"
});
Boolean model could be setted by global level such as the above setting or it could be setted by field level, if both global and field level contains a "bool" setting, field level setting will overwrite the global setting.
index.search("Oracle database profit", {
fields: {
title: {boost: 2, bool: "AND"},
body: {boost: 1}
},
bool: "OR"
});
The above setting will search title
field by
AND model and other fields by "OR"
model.
Currently if you search in multiply fields, resutls
from each field will be merged together to give the query results.
In the future elasticlunr will support configuration that user
could set how to combine the results from each field, such as
"most_field" or "top_field".
Sometimes user want to expand a query token to increase
RECALL, then user could set expand model to
true by configuration, default is
false.
For example, user query token is
"micro", and assume "microwave" and
"microscope" are in the index, then is user choose
expand the query token "micro" to increase
RECALL, both "microwave" and
"microscope" will be returned and search in the
index.
The query results from expanded tokens are penalized
because they are not exactly the same as the query token.
index.search("micro", {
fields: {
title: {boost: 2, bool: "AND"},
body: {boost: 1}
},
bool: "OR",
expand: true
});
Field level expand configuration will overwrite global expand configuration.
index.search("micro", {
fields: {
title: {
boost: 2,
bool: "AND",
expand: false
},
body: {boost: 1}
},
bool: "OR",
expand: true
});
Elasticlunr.js contains some default stop words of English, such as:
Defaultly elasticlunr.js contains 120 stop words, user could decide not use these default stop words or add customized stop words.
You could remove default stop words simply as:
elasticlunr.clearStopWords();
User could add a list of customized stop words.
var customized_stop_words = ['an', 'hello', 'xyzabc'];
elasticlunr.addStopWords(customized_stop_words);
Elasticlunr support Node.js, you could use elastilunr in node.js as a node-module.
Install elasticlunr by:
npm install elasticlunr
then in your node.js project or in node.js console:
var elasticlunr = require('elasticlunr');
var index = elasticlunr(function () {
this.addField('title')
this.addField('body')
});
var doc1 = {
"id": 1,
"title": "Oracle released its latest database Oracle 12g",
"body": "Yestaday Oracle has released its new database Oracle 12g, this would make more money for this company and lead to a nice profit report of annual year."
}
var doc2 = {
"id": 2,
"title": "Oracle released its profit report of 2015",
"body": "As expected, Oracle released its profit report of 2015, during the good sales of database and hardware, Oracle's profit of 2015 reached 12.5 Billion."
}
index.addDoc(doc1);
index.addDoc(doc2);
index.search("Oracle database profit");
Default supported language of elasticlunr.js is English, if you want to use elasticlunr.js to index other language documents, then you need to use elasticlunr.js combined with lunr-languages.
Suppose you are using elasticlunr.js in browser for other languages, you could download the corresponding language support from lunr-languages, then include the scripts as:
<script src="lunr.stemmer.support.js"></script>
<script src="lunr.de.js"></script>
then, you could use elasticlunr.js as normal:
var index = elasticlunr(function () {
// use the language (de)
this.use(elasticlunr.de);
// then, the normal elasticlunr index initialization
this.addField('title')
this.addField('body')
});
Pay attention to the special code:
this.use(elasticlunr.de);
If you are using other language, such as
es(Spanish), download the corresponding
lunr.es.js
file and
lunr.stemmer.support.js
, and change the above line
to:
this.use(elasticlunr.es);
Suppose you are using elasticlunr.js in
Node.js for other languages, you could download
the corresponding language support from
lunr-languages, put the files lunr.es.js
file and
lunr.stemmer.support.js
in your project, then in your
Node.js module, use
elasticlunr.js as:
var elasticlunr = require('elasticlunr');
require('./lunr.stemmer.support.js')(elasticlunr);
require('./lunr.de.js')(elasticlunr);
var index = elasticlunr(function () {
// use the language (de)
this.use(elasticlunr.de);
// then, the normal elasticlunr index initialization
this.addField('title')
this.addField('body')
});
For more details, please go to lunr-languages.
See the
CONTRIBUTING.mdown
file.


{% extends "console/pages/samples/samples.html" %} {% block section %} {% include "console/pages/clients/components/records_table.html" with records=records %} {% endblock %}


Play chess with Go, HTML5, WebSockets and random strangers!
(or play against the computer)
Do you want to start a new game?


#! /usr/bin/env python3
"""Create a TAGS file for Python programs, usable with GNU Emacs.
usage: eptags pyfiles...
The output TAGS file is usable with Emacs version 18, 19, 20.
Tagged are:
- functions (even inside other defs or classes)
- classes
eptags warns about files it cannot open.
eptags will not give warnings about duplicate tags.
BUGS:
Because of tag duplication (methods with the same name in different
classes), TAGS files are not very useful for most object-oriented
python projects.
"""
import sys,re
expr = r'^[ \t]*(def|class)[ \t]+([a-zA-Z_][a-zA-Z0-9_]*)[ \t]*[:\(]'
matcher = re.compile(expr)
def treat_file(filename, outfp):
"""Append tags found in file named 'filename' to the open file 'outfp'"""
try:
fp = open(filename, 'r')
except OSError:
sys.stderr.write('Cannot open %s\n'%filename)
return
with fp:
charno = 0
lineno = 0
tags = []
size = 0
while 1:
line = fp.readline()
if not line:
break
lineno = lineno + 1
m = matcher.search(line)
if m:
tag = m.group(0) + '\177%d,%d\n' % (lineno, charno)
tags.append(tag)
size = size + len(tag)
charno = charno + len(line)
outfp.write('\f\n%s,%d\n' % (filename,size))
for tag in tags:
outfp.write(tag)
def main():
with open('TAGS', 'w') as outfp:
for filename in sys.argv[1:]:
treat_file(filename, outfp)
if __name__=="__main__":
main()


 (IT MEANS PATTERN)
*}
[t]Pattern[/t]: |
[tg]Mon[/tg]
[tg]Tue[/tg]
[tg]Wed[/tg]
[tg]Thu[/tg]
[tg]Fri[/tg]
[tg]Sat[/tg]
[tg]Sun[/tg]
|
{* RECURRENCE IS DISABLED 2011-07-28


21 February 2012 - The Ministry of Health of Indonesia has announced one new confirmed case of human infection with avian influenza A(H5N1) virus.
The case is a 19 year-old female from Banten Province. She developed symptoms on 8 February 2012, was hospitalised on 12 February 2012 and died on 13 February 2012.
Epidemiological investigation is ongoing by the Ministries of Health and Agriculture.
Of the 185 cases confirmed to date in Indonesia, 153 have been fatal.


AppLaud Cloud
Login and Register
To log in and register, visit the AppLaud Login page and follow instructions from there.User Guide
An overview of AppLaud Cloud capabilities and how to get started. The same information shows up in the edit pane when no files are open or re-opened with menu Help –> Get Started.Start a Project
- Choose New –> Project
- Give it a name, select a Project Template, and click Create
- Double click files in left pane to edit
- File and Edit options available with right click and New/File/Edit menus
- Make sure browser pop-ups are enabled
Running the App
- Build not required
- Scan the QR Code to download the app to the device
- AppLaud App Documentation
- Tap 'Refresh Project List'
- Tap a project to begin running it
Debugging
- Tap 'W' icon on device app's Project List
- Tap the project
- On the desktop, select Debug –> Weinre Controller
- Make sure there is a green client and select Elements
- Examine HTML, change CSS, call functions, etc
- More at Weinre Home
Emulating
- Select Emulate –> Ripple Emulator
- Use Chrome Developer Tools to run and examine the project
- Use Ripple Console to simulate PhoneGap APIs
- More at Ripple Home
Packaging/Building
- Choose a build type
- Wait a minute or two for server build
- On the app, choose 'Refresh APK List
- Select app to download to your device
Uploading Files
- Select File –> Upload
- Right click on .zip files and select unzip
- Also drag and drop files onto window and select File –> Save As
Downloading Files/Folders/Projects
- Right click –> Download
FAQ
1. Can I develop Java with AppLaud?While AppLaud is primarily focused on JavaScript/HTML/CSS development, it supports doing any Android development, including editing and updating Java files. AppLaud Cloud can build and package any Android app and the AppLaud App will download any Android app. Note that the standard AppLaud App's run project without download capability does not work for project's with modified Java files.
2. It's the web, why only Android?
While almost all of the technology in AppLaud is cross-platform, a few key pieces are OS-specific. Since we're prioritizing creating a great fully-functional development environment, we want to do that with a constrained test matrix first. iOS is our next priority.
3. What's the business model?
There are several options. Currently the major focus is to create a great development environment and build a strong user community. The product is free to use. The intention is for the environment to always remain free for open source development. Stay tuned.
4. How do you import Eclipse projects into AppLaud Cloud?
In Eclipse:
- Right click on project name and choose Export
- Select Archive File
- Choose file name for zip
- Click Finish
- Select New -> Import Project
- Enter Project Name. It may be different than the Eclipse name
- Choose File. Navigate to the location of the zip file
- Click Import Project
AppLaud Cloud IDE
Menu Help
New
- Project Start the New Project wizard
- Folder When a project or folder is selected, create a new folder
- File When a project or folder is selected, create a new file
- Upload When a project or folder is selected, select files to upload. To upload a directory, use zip on your workstation, upload the zipfile, right click to unzip. Also, single files can be dragged and dropped to an open edit window and saved with File–>Save As
File
- Save Save the currently open file. Also command-S or control-S. Also see, Preferences–>Editor–>Automatic Save All
- Save As Save current file to a selected project or folder. Especially useful for dragged and dropped files
- Save All Save all currently modified files
- Open Open currently selected project, folder, or file
- Rename Rename folder or file
- Delete Delete selected projects, folders, and files
- Refresh Refresh selected project or folder. For example, after a build, Refresh on bin directory will show the new files
Edit
- Cut Cut selected folders and files. The resources won't be removed until they're pasted elsewhere
- Copy Copy selected folders and files.
- Paste Paste most recent cut or copy to selected folder or project
- Find Find and Replace wizard for currently open file
Emulate
- Ripple Emulator
- Use Chrome Developer Tools to run and examine the project
- Use Ripple Console to simulate PhoneGap APIs
- More at Ripple Home
Debug
- Weinre Controller Opens Weinre controller to examine apps running with weinre enabled on device with the Applaud App.
Package
The builds may take a few minutes. You can continue to work, but be careful not to change files being built. The resulting builds are available for download with the AppLaud App's Refresh APKs option. Note that building is not typically necessary in the development process, since apps can be run without building from the AppLaud App.- Basic Build Runs standard Android development build (ant debug) on the server.
- Debug (weinre) Build Same as Basic build, but the resulting apk file has weinre enabled
- Release Build Runs a wizard to create a signed release build (ant release) More about getting the required information here
Preferences
- Editor Manage preferences for the embedded Ace editor. Note: changes are not yet persistent to subsequent AppLaud sessions
- Log Out Log out of AppLaud. Note: you may still be logged in to your OpenId provider.
Help
- User Guide An overview of AppLaud Cloud capabilities and how to get started. The same information shows up in the edit pane when no files are open
- Menu Items You're here now
- Right Click Capabilities when right clicking on projects, folders, and files
- AppLaud Forum Mailing list and forum (a Google Group) to discuss AppLaud Cloud
- Editor Shortcuts Link to the keyboard shortcuts for the Ace editor
AppLaud Right Click Options
- New File When a project or folder is selected, create a new file
- New Folder When a project or folder is selected, create a new folder
- Rename Rename folder or file
- Delete Delete selected projects, folders, and files
- Cut Cut selected folders and files. The resources won't be removed until they're pasted elsewhere
- Copy Copy selected folders and files.
- Paste Paste most recent cut or copy to selected folder or project
- Unzip Files with the suffix .zip are unzipped in place
- Download Download file to workstation. Projects and folders are zipped first
AppLaud App
Overview
The AppLaud App pulls an AppLaud Cloud-built app onto the device, therefore no wires, host configuration or SDKs are needed to install, run and debug the app. The AppLaud App launcher icon is shown to the right. The app's two main pages are:- My Apps Page works with AppLaud Cloud to run and
debug developer projects. Access to apps from this page requires login
as it accesses the developer's AppLaud Cloud workspace.
- My Projects lists all projects. It runs
pure JavaScript Android PhoneGap apps directly from
the cloud. Tap to run; no download or install of the app is necessary. - My APKs lists projects that have been built (basic, weinre debug or release builds) in the developer's workspace. Tap apps in this list to start download from the cloud. When download completes, install and run the app from the device's Notification list. The default icon for AppLaud Cloud apps is shown to the right.
- My Projects lists all projects. It runs
pure JavaScript Android PhoneGap apps directly from
- Demo Apps Page will run or download the Demos that illustrate PhoneGap and jQuery Mobile's capabilities. The sources for all of the Demo Apps projects are available as templates at project creation time.
Download
- Scan the QR Code from the device to download from the Android Market
- Or from the mobile device browser, navigate to
applaudcloud.com and tap
the Download AppLaud App button - Or Download from Android Market ("AppLaud App")
- Or Build the source from GitHub
Login
- No login is required for the Demo Apps Page.
- Login is required for the My Apps Page. Like AppLaud Cloud, the app uses OpenId to authenticate the user.
- The same OpenId provider must be used on the device that is used in AppLaud Cloud. This authentication allows the app to access the user's projects created in the cloud.
My Apps Page
- Tap Refresh Project List to see all projects in your workspace.
- Tap any specific project to run it. Note that currently only pure Android PhoneGap projects are supported. If your project modifies the Java part of the project, you will still need to download the project to run it on the device.
- Tap the W on the project to enable a Weinre debugger connection for
the project. Tap the project to run. In AppLaud Cloud, select Debug –> Weinre
Controller. Then click Elements to debug the running app.
- Weinre Disabled
- Weinre Enabled
- Tap Refresh APKs List to update the list of apk files available for
download to your device. This will find projects that you have previously built from
AppLaud Cloud with any of the Package options(basic,
weinre debug or release builds). Tap on one of the files to
download the apk to your device, install, and run. If the install fails, you may
need to uninstall a package of the same name from
the device:
- In your device's Settings find the Application Management page, select the application and choose Uninstall
- OR If you have the SDK available, uninstall
the app using adb
command line interface: adb uninstall [class.path.appname].
Demos Page
- No login necessary; any one can install AppLaud App and run these projects. Demo Project and APKs lists function identical to My Apps page.
- Demo Projects: tap any project to run it.
- Demo APKs: tap to install the demo project to your device and run independently.
App Menu
- Login / Logout menu item will navigate you to the Login Page or Logout. Note that Logout will log out of the AppLaud App, but not necessarily from the Open ID provider
- Home Page lets you set My Apps or Demo Pages as the starting page for future runs of the AppLaud App.


Edit Profile
Required. Your name
Required. Your e-mail
Profile
Change Password
Required. Your current password
Required. New password
Required. New password one more time
Confirm action
This will permanently delete Some Object
This is sample modal


|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface Container
The Container
object is used to process HTTP requests
and compose HTTP responses. The Request
objects that
are handed to this container contain all information relating to
the received message. The responsibility of the container is to
interpret the request and compose a suitable response.
All implementations must ensure that the container is thread safe
as it will receive multiple HTTP transactions concurrently. Also
it should be known that the Response
object used to
deliver the HTTP response will only commit and send once it has
its OutputStream
closed.
The Container
is entirely responsible for the HTTP
message headers and body. It is up to the implementation to ensure
that it complies to RFC 2616 or any previous specification. All
headers and the status line can be modified by this object.
| Method Summary | |
|---|---|
void |
handle(Request req,
Response resp)
Used to pass the Request and Response
to the container for processing. |
| Method Detail |
|---|
void handle(Request req, Response resp)
Request
and Response
to the container for processing. Any implementation of this
must ensure that this is thread safe, as it will receive many
concurrent invocations each with a unique HTTP request.
The request and response objects are used to interact with the
connected pipeline, in such a way that requests and response
objects can be delivered in sequence and without interference.
The next request from a HTTP pipeline is only processed once
the Response
object has been closed and committed.
req
- the request that contains the client HTTP messageresp
- the response used to deliver the server response
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |


{% extends 'email/base.html' %} {% block content %}
{% trans %} Thank you for your first contribution to the Mozilla support forums! You just made somebody's day! {% endtrans %}
{% trans %} Mozilla support is fully powered by our volunteer community that is helping hundreds of users everyday. This community is formed by passionate Firefox and Thunderbird users who take some of their spare time to help others. We couldn't do it without your passion and enthusiasm. Your contribution, as minor as it might seem, has tremendous value. Solving one issue in the support forums can help up to 1000 users a day! {% endtrans %}
{{ _('Tell us about yourself!') }}
{% trans intro_url='/forums/contributors', irc_url='https://client01.chat.mibbit.com/?server=irc.mozilla.org&channel=#sumo' %} We are always very happy to hear from new people who like helping on the forums so if you haven’t met our community yet please take a minute to introduce yourself . If you want to stay low-profile, that’s also ok :). You can also find us all hanging out on IRC, on the #sumo channel . {% endtrans %}
{{ _('Learn new things') }}
{% trans training_url='/kb/introduction-contributor-quality-training?utm_source=training&utm_medium=1intro&utm_term=cqt&utm_campaign=Contributorqualitytraining' %} If you are interested in learning more about how this whole support thing works, check out our contributor training . This includes some cool troubleshooting info, guidelines, how-to questions, and info about where to find more help if stuck. {% endtrans %}
{{ _('Stay in touch') }}
{% trans forums_url='/forums/contributors', blog_url='https://blog.mozilla.org/sumo/', twitter_url='https://twitter.com/sumo_mozilla', meetings_url='https://wiki.mozilla.org/Support/Weekly_Meetings' %} Finally, if you want to follow all news related to SUMO, don’t forget about our community forums, official blog and Twitter account. We also meet almost every Monday - and you can join us. {% endtrans %}
{% trans %} Thank you once more. We are looking forward to seeing you more often around SUMO! Keep rocking! {% endtrans %}
{% endblock %}


Monster Half Marathon
Monster NED
Website: www.halvemarathonvanmonster.nl
Race Winners
(44 runnings)
1:19:58 10 Nov
2007
54:55
1:09:57
11 Nov
2006
1:14:25
1:31:31
12 Nov
2005
1:08:31
1:17:12
13 Nov
2004
1:06:47
1:18:47
08 Nov
2003
1:09:15
1:21:27
09 Nov
2002
1:08:46
1:23:06
10 Nov
2001
1:08:34
1:22:49
11 Nov
2000
1:12:25
1:29:02
13 Nov
1999
1:08:16
1:18:16
14 Nov
1998
1:06:58
1:25:24
08 Nov
1997
1:13:09
1:25:17
09 Nov
1996
1:10:45
1:27:58
11 Nov
1995
1:08:11
1:19:20
12 Nov
1994
1:08:46
1:31:33
13 Nov
1993
1:12:45
1:27:16
14 Nov
1992
1:09:38
1:28:56
09 Nov
1991
1:06:32
1:28:44
10 Nov
1990
1:10:39
1:25:52
11 Nov
1989
1:12:03
1:30:06
12 Nov
1988
1:10:38
1:30:51
14 Nov
1987
1:11:20
1:30:31
08 Nov
1986
1:10:46
1:33:49
09 Nov
1985
1:18:39
1:27:04
10 Nov
1984
1:11:51
1:37:05
12 Nov
1983
1:10:59
1:38:52
13 Nov
1982
1:11:59
1:32:14
14 Nov
1981
1:08:23
1:26:11
29 Nov
1980
1:20:20
---
11 Nov
1979
1:12:45
1:37:24
04 Nov
1978
---
---
05 Nov
1977
1:11:27
30 Oct
1976
1:15:17
08 Nov
1975
1:13:30
Notes: The inaugural year was 1973. The 1991 course was short. The 2007 race used a 16.2 km alternate course due
to high tides and storm waves that covered part of the regular course along the sea shore.
19 Nov
2016
1:21:58
Michael Gebrehiwet (ERI)
1:33:33
Carla Ophorst-4
31 Oct
2015
1:20:58
Jay Sauer (NED)
1:30:48
Marieke Bourquin-Boekestijn-2
25 Oct
2014
1:19:22
Robert Willemse-2
1:33:23
Marieke Bourquin-Boekestijn (NED)
26 Oct
2013
1:20:07
Robert Willemse (NED)
1:35:53
Francis Schinkel-2
27 Oct
2012
1:16:28
Mike Barsaiyan-2
1:38:43
Monique
Leenders (NED)
05 Nov
2011
1:12:21
Mike Barsaiyan (BUR)
1:30:03
Marieke Bourquin (NED)
06 Nov
2010
1:10:09
Noureddine Htaibi (MAR)
1:42:04
Monique Lintvaer (NED)
14 Nov
2009
1:15:18
David Kipngetich-2
1:33:39
Francis Schinkel (NED)
08 Nov
2008
1:10:54
Henry Cheruiyot (KEN)
Emily Chemutai Ngetich (KEN)
Saiid Ribag (MAR)
Monique Lintvaer (NED)
Neals Strik (NED)
Helmie Ramakers (NED)
David Kipngetich (KEN)
Pauline Wangui (KEN)
Khalid El Boumelili (MAR)
Elvira Korir-2
David Koech (KEN)
Elvira Korir (KEN)
Simon Kiilu (KEN)
Barbara Kamp-2
Francis Kibiwott (KEN) + Peter Raburo (KEN)
Barbara Kamp (NED)
Dmitriy Ryzhukin (RUS)
Carla Ophorst-3
Marc VanderHoeven (BEL)
Anne vanSchuppen (NED)
Oleg Otmakov (RUS)
Carla Ophorst-2
Julius Gidabuday (TAN)
Ineke Vis (NED)
Warren Petterson-2
Sandra McLeish (GBR)
Warren Petterson (RSA)
Mieke Pullen (NED)
Michael deMaat (NED)
Toke Zwinkels (NED)
Eric Lacroix-3
Carla Ophorst (NED)
Eric Lacroix-2
Joke Keuning (NED)
Eric Lacroix (FRA)
Pia Romijn (NED)
Paul Overbeek (NED)
Edine Cavelier
Wil Sparreboom (NED)
Esther Schilt (NED)
Peter vanMarrewijk-3
Gretha vanderGraaf-2
Jacques Valentin-2
Gretha vanderGraaf (NED)
Peter vanMarrewijk-2
Diny vanderPlas-2
Peter vanMarrewijk (NED)
Marja deHeer (NED)
Rob Strik (NED)
Diny vanderPlas (NED)
Dick vanSanten (NED)
Elly Smit-Paalvast (NED)
Kees Langelaan (NED)
Marian Hoogerhoud-2
Cor Vriend (NED)
Karin deNijs (NED)
Jacques Valentin (NED)
n/a
Johan Kijne-4
Marian Hoogerhoud (NED)
n/a
n/a
Johan Kijne-3
Johan Kijne-2
Johan Kijne (NED)
Most Wins
(1975/date)
Men
4
Johan Kijne (NED)
1975-77,1979
Women
4
Carla Ophorst (NED)
1993,1998,2000,2016
Prize Money
No information on prize money has been received for this race.
Race Time Bias
(sec/km)
Year Men Women 2004 +6.6 n/c 2003 +11.9 n/c .... 2001 +7.9 n/c Avgs +8.8 n/c
Competitive Level (1990-date)
Year Men Women 2004 101 n/c .... 2002 40 n/c
Quality Performances
Men
No performances under 1:06:00.
Women
No performances under 1:17:00.
Last Updated on
23 Nov 2015
Contributors: Wim vanHemert (25), Paul Michels (50), Klaas Loonstra (5), Juraj Gasparovic (12)