| Name | Date | Time | Departing | Destination | # of Seats | Smoke Free | Packages | Contact |
|---|---|---|---|---|---|---|---|---|
| Some Person | 12/25/2016 | 3:30 PM | Eastman | Warner Robins | 1 | No | 3x5 | |
| Some Person | 12/23/2016 | 3:30 PM | Macon | Cochran | 3 | Yes | 5x5 | |
| Some Person | 5/3/2017 | 2:00 PM | Dublin | Warner Robins | 3 | Yes | 5x5 | |
| Some Person | 2/2/2017 | 10:30 AM | Warner Robins | Dublin | 1 | No | No | |
| Some Person | 4/23/2017 | 3:30 PM | Macon | Warner Robins | 2 | Yes | No | |
| Some Person | 3/14/2017 | 4:00 PM | Macon | Dublin | 2 | Yes | No | |
| Some Person | 2/23/2017 | 3:30 PM | Macon | Cochran | 2 | No | 1x5 | |
| Some Person | 12/23/2016 | 9:30 AM | Cochran | Macon | 3 | Yes | 5x5 | |
| Some Person | 12/25/2016 | 3:30 PM | Eastman | Warner Robins | 1 | No | 3x5 | |
| Some Person | 12/23/2016 | 3:30 PM | Macon | Cochran | 3 | Yes | 5x5 | |
| Some Person | 5/3/2017 | 2:00 PM | Dublin | Warner Robins | 3 | Yes | 5x5 | |
| Some Person | 2/2/2017 | 10:30 AM | Warner Robins | Dublin | 1 | No | No | |
| Some Person | 4/23/2017 | 3:30 PM | Macon | Warner Robins | 2 | Yes | No | |
| Some Person | 3/14/2017 | 4:00 PM | Macon | Dublin | 2 | Yes | No | |
| Some Person | 2/23/2017 | 3:30 PM | Macon | Cochran | 2 | No | 1x5 | |
| Some Person | 12/23/2016 | 9:30 AM | Cochran | Macon | 3 | Yes | 5x5 | |
| Some Person | 12/25/2016 | 3:30 PM | Eastman | Warner Robins | 1 | No | 3x5 | |
| Some Person | 12/23/2016 | 3:30 PM | Macon | Cochran | 3 | Yes | 5x5 | |
| Some Person | 5/3/2017 | 2:00 PM | Dublin | Warner Robins | 3 | Yes | 5x5 | |
| Some Person | 2/2/2017 | 10:30 AM | Warner Robins | Dublin | 1 | No | No | |
| Some Person | 4/23/2017 | 3:30 PM | Macon | Warner Robins | 2 | Yes | No | |
| Some Person | 3/14/2017 | 4:00 PM | Macon | Dublin | 2 | Yes | No | |
| Some Person | 2/23/2017 | 3:30 PM | Macon | Cochran | 2 | No | 1x5 | |
| Some Person | 12/23/2016 | 9:30 AM | Cochran | Macon | 3 | Yes | 5x5 | |
| Some Person | 12/25/2016 | 3:30 PM | Eastman | Warner Robins | 1 | No | 3x5 | |
| Some Person | 12/23/2016 | 3:30 PM | Macon | Cochran | 3 | Yes | 5x5 | |
| Some Person | 5/3/2017 | 2:00 PM | Dublin | Warner Robins | 3 | Yes | 5x5 | |
| Some Person | 2/2/2017 | 10:30 AM | Warner Robins | Dublin | 1 | No | No | |
| Some Person | 4/23/2017 | 3:30 PM | Macon | Warner Robins | 2 | Yes | No | |
| Some Person | 3/14/2017 | 4:00 PM | Macon | Dublin | 2 | Yes | No | |
| Some Person | 2/23/2017 | 3:30 PM | Macon | Cochran | 2 | No | 1x5 | |
| Some Person | 12/23/2016 | 9:30 AM | Cochran | Macon | 3 | Yes | 5x5 | |
| Some Person | 12/25/2016 | 3:30 PM | Eastman | Warner Robins | 1 | No | 3x5 | |
| Some Person | 12/23/2016 | 3:30 PM | Macon | Cochran | 3 | Yes | 5x5 | |
| Some Person | 5/3/2017 | 2:00 PM | Dublin | Warner Robins | 3 | Yes | 5x5 | |
| Some Person | 2/2/2017 | 10:30 AM | Warner Robins | Dublin | 1 | No | No | |
| Some Person | 4/23/2017 | 3:30 PM | Macon | Warner Robins | 2 | Yes | No | |
| Some Person | 3/14/2017 | 4:00 PM | Macon | Dublin | 2 | Yes | No | |
| Some Person | 2/23/2017 | 3:30 PM | Macon | Cochran | 2 | No | 1x5 | |
| Some Person | 12/23/2016 | 9:30 AM | Cochran | Macon | 3 | Yes | 5x5 | |
| Some Person | 12/25/2016 | 3:30 PM | Eastman | Warner Robins | 1 | No | 3x5 | |
| Some Person | 12/23/2016 | 3:30 PM | Macon | Cochran | 3 | Yes | 5x5 | |
| Some Person | 5/3/2017 | 2:00 PM | Dublin | Warner Robins | 3 | Yes | 5x5 | |
| Some Person | 2/2/2017 | 10:30 AM | Warner Robins | Dublin | 1 | No | No | |
| Some Person | 4/23/2017 | 3:30 PM | Macon | Warner Robins | 2 | Yes | No | |
| Some Person | 3/14/2017 | 4:00 PM | Macon | Dublin | 2 | Yes | No | |
| Some Person | 2/23/2017 | 3:30 PM | Macon | Cochran | 2 | No | 1x5 | |
| Some Person | 12/23/2016 | 9:30 AM | Cochran | Macon | 3 | Yes | 5x5 | |
| Some Person | 12/25/2016 | 3:30 PM | Eastman | Warner Robins | 1 | No | 3x5 | |
| Some Person | 12/23/2016 | 3:30 PM | Macon | Cochran | 3 | Yes | 5x5 | |
| Some Person | 5/3/2017 | 2:00 PM | Dublin | Warner Robins | 3 | Yes | 5x5 | |
| Some Person | 2/2/2017 | 10:30 AM | Warner Robins | Dublin | 1 | No | No | |
| Some Person | 4/23/2017 | 3:30 PM | Macon | Warner Robins | 2 | Yes | No | |
| Some Person | 3/14/2017 | 4:00 PM | Macon | Dublin | 2 | Yes | No | |
| Some Person | 2/23/2017 | 3:30 PM | Macon | Cochran | 2 | No | 1x5 | |
| Some Person | 12/23/2016 | 9:30 AM | Cochran | Macon | 3 | Yes | 5x5 |


Inheritance allows you to create classes hierarchically.
A superclass passes its implementation to a subclass, and a subclass inherits its implementation from a superclass.
The most important thing in object-oriented programming is reuse.
Reuse can reuse classes as they are and reuse super classes.
When reusing a superclass, it means creating a subclass appropriately from the superclass.
Let's start with an example of a class that is not inherited.
The following are the Employee and Manager classes.
package net.java_school.example; public class Employee { private String name; private String position; private String telephone; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPosition() { return position; } public void setPosition(String position) { this.position = position; } public String getTelephone() { return telephone; } public void setTelephone(String telephone) { this.telephone = telephone; } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append(name); sb.append("|"); sb.append(position); sb.append("|"); sb.append(telephone); return sb.toString(); } }
package net.java_school.example; public class Manager { private String name; private String position; private String telephone; private String manageJob; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPosition() { return position; } public void setPosition(String position) { this.position = position; } public String getTelephone() { return telephone; } public void setTelephone(String telephone) { this.telephone = telephone; } public String getManageJob() { return manageJob; } public void setManageJob(String manageJob) { this.manageJob = manageJob; } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append(name); sb.append("|"); sb.append(position); sb.append("|"); sb.append(telephone); sb.append("|"); sb.append(manageJob); return sb.toString(); } }
package net.java_school.example; public class Test { public static void main(String[] args) { Employee james = new Employee(); james.setName("JAMES"); james.setPosition("CLERK"); james.setTelephone("19"); System.out.println(james.toString()); Manager blake = new Manager(); blake.setName("BLAKE"); blake.setPosition("MANAGER"); blake.setTelephone("9"); blake.setManageJob("Project Management"); System.out.println(blake.toString()); } }
The two classes above have nothing to do with each other.
However, since the proposition that "manager is an employee" is correct,
the two classes are an inheritance relationship that establishes a "is-a" relationship.
Since the employee is a concept wider than the manager, the employee is a superclass and the manager is a subclass.
Now, in order to implement inheritance as code, make sure that there is overlapping code in employee class and manager class.
You can see that the name, position, and telephone instance variables are overlapped with the getters and setters methods for this variable.
The duplicate code will be inherited and will be deleted from the manager class source.
Modify the manager class to inherit the employee class as shown below.
package net.java_school.example; public class Manager extends Employee { private String manageJob; public String getManageJob() { return manageJob; } public void setManageJob(String manageJob) { this.manageJob = manageJob; } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append(getName()); sb.append("|"); sb.append(getPosition()); sb.append("|"); sb.append(getTelephone()); sb.append("|"); sb.append(manageJob); return sb.toString(); } }
To inherit a superclass from a subclass, use the extends keyword in the class declaration of the subclass.
Now the manager class will be able to write the member of the employee class as if it were a member.
However, from now on, the inherited member and the original member of the class should be considered separately, because the inherited member still applies the access modifiers.
The reason for using getName(), getPosition(), and getTelephone() in the toString() method of the manager class is that the employee class name, position, and telephone are private.
To access the parent member variables name, position, and telephone directly, you need to change the access modifiers of these member variables.
Since the employee class and the manager class are in the same package,
applying the name, position, and telephone access modifiers in the employee class as package private, protected, or public allows access to the members of the parent directly.
If the employee class and the manager class are not the same package, you must apply the name, position, and telephone accessors in the employee class as protected or public.
An object of a subclass type can access the protected member of a superclass even if the package of the subclass and superclass is different.
The access modifier protected protects the inheritance relationship between classes in other packages.
Run the Test class to see the results.
In the main method of Test class, Manager blake = new Manager(); is the code to create Manager object.
Now it is time to talk more about this part of the code.
The Manager() that comes after new is the code that calls the Manager () constructor.
Manager() must be declared in the class body just like methods.
After new, you can call one of the constructors declared in the class.
In the above example, I did not create a constructor for the employee class and the manager class.
However, the constructor is called in the main method of the Test class.
And seeing the result without errors means that the calling constructor was executed.
How could a constructor that could not be created be called?
The compiler creates a parameterless constructor if you did not create any constructors as you were writing the class.
The constructor that the compiler automatically generates is called the "default constructor".
If you have created any of the constructors, the compiler does not create a "default constructor".
You can create multiple constructors with different parameter lists.
The constructor is called just once after "the object is created" and is not called again.
Note that "after object is created".
It is misleading to think that an object is created when a constructor is called.
The new keyword allocates space for the object in the heap memory1 and initializes the value of the instance variable2.
Then the constructor after new is called.
When the constructor finishes without errors, the reference variable is assigned a reference value that can refer to the created object.
If there is an error in the constructor, no reference value is assigned to the reference variable, and as a result, the object is disabled.
It is called after the object is created, so it is good to write the constructor only for initialization.
So initialization of instance variables is done by the constructor.
If you have code that calls a method in the constructor implementation, it is often not good code.
The constructor must have no return type and the constructor name must be the same as the class name.
Many people make a mistake by putting void before the constructor name when making a constructor.
If you add void, it becomes a method, not a constructor.
The following describes the constructor syntax associated with inheritance.
Subclasses do not inherit the superclass's constructor.
The first line of the subclass constructor implementation must contain code that invokes the constructor of the superclass.
If not, the compiler adds code to the first line that calls the default constructor for the parent class.
Later, we will add appropriate constructors to the employee class and the manager class.
Before implementing code, let's look at the keywords this and super.
public Employee() {} //if you need to create a constructor, it is a good idea to create a default constructor also. public Employee(String name, String position, String telephone) { this.name = name; this.position = position; this.telephone = telephone; }
public Manager() {} //default constructor public Manager(String name, String position, String telephone, String manageJob) { super(name, position, telephone); this.manageJob = manageJob; }
Employee james = new Employee("JAMES", "CLERK", "19"); System.out.println(james.toString()); Manager blake = new Manager("BLAKE", "MANAGER", "9", "Project Management"); System.out.println(blake);
In System.out.println(blake); the println method calls the toString() method of the object pointed to by blake.
Therefore, the results of System.out.println(blake.toString()); and System.out.println(blake); are the same.
It is up to you to decide which code you like better.
The above constructor code is changed by the compiler as shown below.
public Employee() { super(); } public Employee(String name, String position, String telephone) { super(); this.name = name; this.position = position; this.telephone = telephone; }
public Manager() { super(); } public Manager(String name, String position, String telephone, String manageJob) { super(name, position, telephone); this.manageJob = manageJob; }
It is polymorphism to make them feel like they are in the same shape, but executed in various forms.
You can see this polymorphism by taking advantage of the fact that you can assign a reference value of a subclass type to a reference of a superclass type.
Guitar extends Instrument Drum extends Instrument Instrument i = new Guitar(); //i is the variable of Intrument type i.play(); //Guitar play i = new Drum(); i.play(); //Drum play
I.play() plays a guitar or drum.
I.play() has polymorphism.
Whether the guitar is played or the drum is played is determined at the time i.play() is executed (Runtime).
It is not determined at compile time.
When a reference type variable of a superclass type refers to an object of a subclass type,
it can not be used to access all members of the object.
The original member of the subclass is not accessible.
There is an exception, but the methods overridden in a subclass are accessible.
In fact, this is the hardest part to understand.
In conclusion, a superclass type reference can access inherited members from a superclass and overridden methods by subclasses.
Let's look at an example.
Add the following to the main method of the Test class:
Object king = new Manager("KING", "MANAGER", "1", "SALES"); System.out.println(king); //king.setManageJob("ACCOUNTING");// You can not access the setManagerJob() method with an Object type reference. //If you want to use the Employee object completely, you need to cast the reference type variable. Manager king1 = (Manager)king; king1.setManageJob("ACCOUNTING"); System.out.println(king);
In the last line System.out.println(king); king is an Object type variable.
The println() method internally calls the toString() method of the object pointed to by king.
Then, since the object actually created in the heap memory is the manager object, the toString() method that the manager class overrides is called.
The picture below is drawn for your understanding.
Regardless of the reference type, (2) and (3) are covered and can not be seen.
Therefore, (1) is called.
In the class declaration section, a class with an abstract before the class keyword is called an abstract class.
An abstract class can not be instantiated using the keyword new, unlike a normal class.
To understand an abstract class, you first need to know the meaning of the abstract method.
An abstract method is a method declaration, but not a method body.
To distinguish abstract methods from normal methods, add the abstract keyword after the access modifier in the method declaration.
If a class has one abstract method, it must be declared as an abstract class.
Conversely, not all abstract classes need to have more than one abstract method.
If necessary, you can declare an abstract class without an abstract method.
To use an abstract class, you need to create a normal class that inherits from the abstract class, and override the abstract methods of the abstract class in the normal class you created.
Let's create an abstract class example by modifying the previous examples.
Create the abstract class AbstractEmployee.java class as shown below.
If you make it ambiguous like this, the portability is better.
Of course, there must be a premise that the design is good.
package net.java_school.example; public abstract class AbstractEmployee { private String name; public AbstractEmployee() {} public AbstractEmployee(String name) { this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } //Abstract method public abstract void doWork(); }
Change the employee class to inherit the AbstractEmployee abstract class.
The employee class must implement the abstract method doWork() method of the AbstractEmployee class.
package net.java_school.example; public class Employee extends AbstractEmployee { private String position; private String telephone; public Employee() {} public Employee(String name,String position, String telephone) { super(name); this.position = position; this.telephone = telephone; } public String getPosition() { return position; } public void setPosition(String position) { this.position = position; } public String getTelephone() { return telephone; } public void setTelephone(String telephone) { this.telephone = telephone; } public String toString() { StringBuffer sb = new StringBuffer(); sb.append(this.getName()); sb.append("|"); sb.append(position); sb.append("|"); sb.append(telephone); return sb.toString(); } @Override public void doWork() { System.out.println("work"); } }
Manager classes do not change.
Change the first line of the main method of the Test class you created so far as shown below.
AbstractEmployee james = new Employee ("JAMES", "CLERK", "19");
The Java interface has the interface keyword in place of the class keyword in the class declaration, and all methods of the class body are abstract methods.
Because they are all abstract methods, the abstract keyword to distinguish them from normal methods is omitted.
All fields declared in the interface body are static6 final.
Like an abstract class, an interface can not be used alone, and it is used to objectize a class that implements an interface.
If a class implements an interface, it means a class that implements all of the abstract methods of the interface.
The class declaration that implements the interface defines which interface the class implements using the keyword implements.
The implements keyword can be followed by one or more interfaces separated by commas, which may look like multiple inheritance.
The Java interface is the same as the user interface of the electronic product.
Most TVs provide interfaces such as - volume + and - channel + at the bottom of the screen.
The fact that electronics have adopted the same interface means that their usage is the same.
If the Java class is an electronic product, then the Java interface corresponds to the user interface of the electronic product.
The implementation of the TV with the PDP, LCD and LED in the CRT was different, but fortunately the interface did not change.
As a result, I had no trouble using the TV without having to look at the user manual after buying a new technology TV.
When to use inheritance and when to use the interface is a difficult problem.
To briefly describe this problem, we apply inheritance if we find the "to" relationship.
If the focus is on "what function should be", then the interface should be applied.
Keep in mind that interfaces are not constrained by hierarchical relationships like inheritance, and that Java supports only a single inheritance, while an interface can look like multiple inheritance.
Suppose you have created a driver class that inherits an employee class.
And if you have a delivery man class and the delivery man is not an employee but has many functions like driver class, you can create an interface with that function.
However, you can not create a parent class with duplicate code in the DeliveryMan class and the Driver class.
Because the driver class is two parent classes.
In the Java source dimension, there must be only one class after extends in the class declaration.
You can not list parent classes with (comma) after extends.
This is one of the constraints of the hierarchical relationship mentioned above.
You can create an interface with the common functionality of the delivery man and the driver.
Let's practice the contents so far in order.
First, make the driver class as follows.
Because the driver is an employee, he inherited the employee class.
package net.java_school.example; public class Driver extends Employee { private String carNo; public Driver() {} public Driver(String name, String position, String telephone, String carNo) { super(name, position, telephone); this.carNo = carNo; } public String getCarNo() { return carNo; } public void setCarNo(String carNo) { this.carNo = carNo; } public void drive() { System.out.println(this.getName() + " drives"); } public void transport() { System.out.println(this.getName() + " transports"); } }
package net.java_school.example; public class Transportor { private String carNo; public String getCarNo() { return carNo; } public void setCarNo(String carNo) { this.carNo = carNo; } public void drive() { System.out.println("drives"); } public void transport() { System.out.println("transports"); } }
The transporter and the driver class has common features that drive() and transport().
This common function can be created as an interface.
The interface name is called Drivable.
package net.java_school.example; public interface Drivable { public void drive(); public void transport(); }
Let's change the transporter and the driver class that implements this interface.
package net.java_school.example; public class Driver extends Employee implements Drivable { private String carNo; public Driver() {} public Driver(String name, String position, String telephone, String carNo) { super(name, position, telephone); this.carNo = carNo; } public String getCarNo() { return carNo; } public void setCarNo(String carNo) { this.carNo = carNo; } @Override public void drive() { System.out.println(this.getName() + " drives"); } @Override public void transport() { System.out.println(this.getName() + " transports"); } }
package net.java_school.example; public class Transportor implements Drivable { private String carNo; public String getCarNo() { return carNo; } public void setCarNo(String carNo) { this.carNo = carNo; } @Override public void drive() { System.out.println("drives"); } @Override public void transport() { System.out.println("transports"); } }
Add the following code snippet to the main method of the Test class.
Drivable a = new Driver("Michael","CLERK","ext:8","015000"); System.out.println(a); a.drive(); Drivable b = new Transportor(); // b.setCarNo("017000"); //error! b.drive();
As you can see in inheritance, "Subclass type object reference values can be assigned to superclass type references" An object reference value of a class that implements an interface can be assigned to a variable of an interface type.
Comments


The -ismobile command uses one of two external APIs - https://numverify.com/ or https://numlookupapi.com. After making an account with either of these services set the corresponding environment variables:
export NUMLOOKUPAPI_API_KEY= or export NUMVERIFY_API_KEY=This command is only available when running from the command line or if running within RAMADDA the user is a logged in user. We do this as the SeeSV service within RAMADDA can be run by any user.
A cache file, ismobile.txt, of past phone numbers will be created in the local working directory so this command can be run multiple times without resorting to the API calls for past phone numbers.


Welcome to the Bunker Hills Men's Golf Club
You are receiving this email because you just registered for the 2017 golf season.
If you haven't already, log in to the website. You cannot
register for our events without being logged in. The first event you should consider is our
season long match play.
You can also go to your account page to update your contact information or
log-in information as needed.
Thank you again for joining our club. If you have any questions, please contact a board
member or send us a note at<EMAIL_ADDRESS>We hope you have a great year.
The BHCM Board
|


Sending tasks to Outlook and Notes
I'm in Munich now visiting my favourite Environment & Management software company. We are planning for the next set of features of UMsys. One feature we are discussing is the ability of the UMsys application server to send tasks/to-dos directly into the users' task lists. The UMsys server can send SMTP/MIME messages, that should be consumed by the eMail clients. UMsys' customers run Exchange/Outlook, Lotus Notes and some other mail systems. So we ran a little comparison what needs to be done for Notes and Outlook.
For Notes it is quite straight forward: you send a mime message that contains an VCALENDAR record. It can look like this:
Content-Type: text/calendar; method="REQUEST"; charset="UTF-8"
BEGIN:VCALENDAR
X-LOTUS-CHARSET:UTF-8
VERSION:2.0
PRODID:-//Lotus Development Corporation//NONSGML Notes 6.0//EN
METHOD:REQUEST
BEGIN:VTODO
DTSTART:20050930T040100Z
DUE:20051022T040100Z
DTSTAMP:20050926T195957Z
SEQUENCE:0
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED;CN="Stephan H. Wissel/TaoConsulting";
RSVP=FALSE<EMAIL_ADDRESS>ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE
<EMAIL_ADDRESS>CLASS:PUBLIC
DESCRIPTION:Test\n
SUMMARY:Test gMail
ORGANIZER;CN="Stephan H. Wissel/TaoConsulting"<EMAIL_ADDRESS>PRIORITY:1
UID:085D1DE1CE483B1048257088006DCAB1-Lotus_Notes_Generated
X-LOTUS-BROADCAST:FALSE
X-LOTUS-UPDATE-SEQ:1
X-LOTUS-NOTESVERSION:2
X-LOTUS-NOTICETYPE:I
X-LOTUS-CHILD_UID:085D1DE1CE483B1048257088006DCAB1
END:VTODO
END:VCALENDAR
Or one could stuff all the needed Notes fields into the MIME header, which would look like this:
X-Notes-Item: CN=Stephan H. Wissel/O=TaoConsulting;
name=OriginalFrom
When looking towards Outlook the story is quite a different beast. I did some testing with Matthias from HEC (If you need excellent Microsoft development in Germany talk to them, it's a pleasure working with people who really know their stuff well). It turns out, that Outlook doesn't understand VCalendar tasks but encodes the whole message into the body using some propriety format.
Content-Class: urn:content-classes:calendarmessage
Content-Type: multipart/mixed;
Notes doesn't understand calendarmessage thus rendering the HTML version. There I got stuck (and couldn't pull Matthias out of his meeting). Seems like it's a little harder to connect to Exchange/Outlook using open standards.
Update: We desected the MIME comming from Outlook. It seems to be formiable complicated to create a task...This is what we got in the MIME. Comments inside:
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.3790.1830
Content-Class: urn:content-classes:calendarmessage
MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary="----_=_NextPart_001_01C5C32E.841F8FA0"
Subject: Aufgabenanfrage: Noch ne Aufgabe (that came from a German Outlook)
Date: Tue, 27 Sep 2005 08:41:37 +0200
Message-ID<EMAIL_ADDRESS>X-MS-Has-Attach: yes
X-MS-TNEF-Correlator:
Thread-Topic: Noch ne Aufgabe
thread-index: AcXDLoLAM9bYtD7SSiCXbweAnFG2XQ==
From: "Pan, Peter"<EMAIL_ADDRESS>To<EMAIL_ADDRESS>Return-Path<EMAIL_ADDRESS>X-OriginalArrivalTime: 27 Sep 2005 06:33:04.0406 (UTC) FILETIME=[50A80360:01C5C32D]
This is a multi-part message in MIME format.
------_=_NextPart_001_01C5C32E.841F8FA0
Content-Type: multipart/alternative;
boundary="----_=_NextPart_002_01C5C32E.841F8FA0"
------_=_NextPart_002_01C5C32E.841F8FA0
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Betreff: Noch ne Aufgabe
Beginnt am: Donnerstag, 29. September 2005
F=E4llig am: Donnerstag, 29. September 2005
Status: Nicht begonnen
Prozent erledigt: 0%
Gesamtaufwand: 0 Stunden
Ist-Aufwand: 0 Stunden
Zust=E4ndig<EMAIL_ADDRESS>Unless Outlook digest this as "Field:Value" there is no other computer digestable stuff in the message.
------_=_NextPart_002_01C5C32E.841F8FA0
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Diso-8859-1">
<META NAME=3D"Generator" CONTENT=3D"MS Exchange Server version =
6.5.7226.0">
<TITLE>Aufgabenanfrage: Noch ne Aufgabe</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/rtf format -->
.... a lot of html, cut off for brevity ...
</BODY>
<!--[object_id=3D#hec.de#]--></HTML>
------_=_NextPart_002_01C5C32E.841F8FA0--
------_=_NextPart_001_01C5C32E.841F8FA0
Content-Type: message/rfc822
Content-Transfer-Encoding: 7bit
X-MimeOLE: Produced By Microsoft Exchange V6.5.7226.0
Content-class: urn:content-classes:task
MIME-Version: 1.0
Content-Type: multipart/alternative;
boundary="----_=_NextPart_003_01C5C32E.8139ADC0"
Subject: Noch ne Aufgabe
Date: Tue, 27 Sep 2005 08:41:35 +0200
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
Thread-Topic: Noch ne Aufgabe
Thread-Index: AcXDLoE5X/eCM1sRRIS8QMEMkOT3Hw==
From<EMAIL_ADDRESS>To<EMAIL_ADDRESS>This is REALLY wierd. Peter Pan did send it, but there is from me to me
This is a multi-part message in MIME format.
------_=_NextPart_003_01C5C32E.8139ADC0
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
------_=_NextPart_003_01C5C32E.8139ADC0
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Diso-8859-1">
------_=_NextPart_003_01C5C32E.8139ADC0--
------_=_NextPart_001_01C5C32E.841F8FA0--
Posted by Stephan H Wissel on 25 September 2005 | Comments (2) | categories: IBM Notes Lotus Notes


--- title: pico_pi_controller.ppdd keywords: fastai sidebar: home_sidebar summary: "System daemon" description: "System daemon" nb_path: "50_ppdd.ipynb" ---
log_txn
log_txn(fname, message, msg=None)
fname
message
msg
None
Wrapper for logger.
class
PwrLedFlicker
PwrLedFlicker(duration) :: Thread
duration
Thread
A class that represents a thread of control.
This class can be safely subclassed in a limited fashion. There are two ways to specify the activity: by passing a callable object to the constructor, or by overriding the run() method in a subclass.
PPCcHandler
PPCcHandler(request, client_address, server) :: StreamRequestHandler
request
client_address
server
StreamRequestHandler
Define self.rfile and self.wfile for stream sockets.
goodbye
goodbye()
Cancel pigpio event handler, close I2C peripheral & connection to pigpio
i2c_event_handler
i2c_event_handler(id, tick)
id
tick
Copied from local ppdd.py.
main
main()
ppdd: must run as root.
%tb
No traceback available to show.


Miljul currently allows four users to be in a room simultaneously. We could have made it eight users, but feel that screen real estate on a typical desktop/laptop/tablet PC would at best allow four video blocks of reasonable size.
For enterprises or institutions, if you need a solution that allows eight or even more people into a room, please let us know, and we will be happy to deliver a custom designed MIljul experience for your company or customers. Go to
‘Miljul for Business’ for more info.


next/link
should be able to cover most of your routing needs, but you can also do
client-side navigations without it, take a look at the
documentation for next/router
.
The following example shows how to do basic page navigations with
useRouter
:
import { useRouter } from 'next/router'
function ReadMore() {
const router = useRouter()
return (
 router.push('/about')}>Click here to read more
)
}
export default ReadMore


Graphing Calculator
Assignment Goals:
- Create an HTML file that draws graphs of functions on a
<canvas>
element.
- Update the graphed function using a text box.
- Update the graph window using number inputs.
- Learn how to use third party code.
Instructions for you to follow in this document will be highlighted in blue.
Don't forget to cite your sources!
Overview
While professional graphing calculators (such as desmos) have more advanced graphing algorithms, creating a simple graphing calculator is pretty simple, and based around converting between two coordinate systems:
- The coordinate system of the graphing window:
- x goes from -5 at the left end of the window to 5 at the right end
- y goes from -5 at the bottom end of the window to 5 at the top end
Or, replace the 5s with whatever bounds you want
- Canvas coordinate system:
- x goes from 0 at the left end of the window to 500 at the right end
- y goes from 0 at the top end of the window to 500 at the bottom end
Or, replace the 500s with the width and height of the canvas
The graphing algorithm is as follows:
- Working across our image from left to right:
- Convert our canvas x-coordinate to a graphing window x-coordinate
- Plug that value into our function to get a graphing window y-coordinate
- Convert our graphing window y-coordinate to a canvas y-coordinate
- Connect the previous point we drew to our new point
Converting from canvas coordinates to graph coordinates
We need a function to convert from the x coordinate on our canvas (in pixels) to the x coordinate in our graphing calculator space. This should be a function f(x) satisfying:
- f(x) is a linear function (f(x) = mx+b for some constants m and b)
- f(0) = -5
- f(500) = 5
- Solve for the function f(x)
- Create a new html document with a

to the head
of your document. This is a local backup I made of a third party library called KAS.js.
You should never use products made by other people in production (this includes third party code, programming languages, compilers, and hardware). Without having a complete understanding of how the third party code works, it can introduce hard to diagnose bugs or even malicious code!
Other things you need to be concerned with when using other people's code:
- Licensing. KAS.js is provided under the MIT License, which allows you to redistribute the code, provided you include a copy of the license with the code. Always read the licenses for third pary software to determine what you are legally allowed to do.
- Updates. Later in this class we will be using a 3d library called THREE.js, which is regularly updated. Most of these changes are backwards-compatible, but some aren't, so your code will eventually break if you rely on the hosted version. In this class, we will be using the THREE.Geometry class which is no longer supported by THREE.js.
- Downtime. The host may also experience downtime: I suggest you download a copy of KAS.js (from https://trkern.github.io/kas.js) to your computer. Place it in the same folder as your HTML files and replace

with
, or you risk not being able to run your code.
- Dependencies. KAS.js depends on a completely different library called underscore.js, so you'll need to trust and depend on yet another third party.
Add
to the head
of your document.
You can easily fall into the trap of having a maze of dependencies with their own dependencies which are all constantly updating if you're not careful. This also makes your code harder to understand: to understand and make changes to KAS.js requires understanding some of the features of underscore.js first.
Modify your draw_graph
function, replacing the use of Math.sin
. Some steps:
- First, create a new input box in your html:
<input type="text" id="f" value="sin(x)" oninput="draw_graph()">
- You can get a string holding the text of the box with
var fstr = document.getElementById("f").value;
- You can tell KAS to plug in
30
for the variable x in your inputted formula with KAS.parse(fstr).expr.eval({x: 30});
. Replace the 30
by whatever value you want to plug in.
{x:30}
is a javascript object whose .x
value is 30
. Specifically if you ran the code:
var T = {x:30};
Then T.x
would be 30
. This allows you to plug in multiple variables into the formula you entered, separating entries with commas: {x:30,a:10}
. If you're feeling really fancy, you could add in a slider that lets you adjust the value of a
and see how the graph of "sin(ax)" changes as you adjust a.
Above and Beyond
If you'd like to make your interactive fancier, you can:
- Add in an x-axis and y-axis by converting when x = 0 and when y = 0 from graph window coordinates to pixel coordinates.
- Add in a grid. You can find lower bounds on your for loops by rounding up
x_min, y_min
with the Math.ceil
function and upper bounds with Math.floor
. Use ctx.strokeStyle = "gray"
to change the color of the pen.
- Label the axes using:
ctx.fillStyle = "black";
ctx.textAlign = "center";
ctx.textBaseline = "middle";
ctx.font = "16 px sans-serif";
ctx.fillText(i,x,y);


Ian Darwin: Shell Script Examples
My scripts directory contains millions of useful shell scripts.
This page presents a few that are interesting.
Categories
Simple text processing
C/Java Development
Archiving, Backup, Exporting
File Manipulation
Running Programs
File Lookup/Editing
Desktop/System Administration
Desktop Window System
Networking
Printing Support
WWW
Simple text processing
accent, install accents
replace, update text files in place
(uses overwrite)
overwrite overwrite files (used by replace)
grepjcLooks through a bunch of binary files for text
grepjsLooks through files in subdirectories
ffnum Find Fone Number in mail archive
mkindexjc, generate index text from Frame files
doc2html, convert slides from text to HTML
doctortf, convert slides from text to RTF
mvstomml, convert slides from VS to Frame
dos2unix, convert DOS text files to unix...
unix2dos, ... and vice versa.
lscmp, compare two ls listings
prep, prepare text for analysis (word per line)
C/Java Development
jr, compile and run
jtest, run with JUnit
dbug_enter
fix-java-main, update old String[] syntax
Archiving, Backup, CVS-ing
bkupconf, backup configuration files
cptree, copy a tree structure
getscripts, get list of files referred to in this page
File Manipulation
cx - short for "chmod +x"
unmv - undo a "mv"
Running Programs
appmap(written by Sun Microsystems OpCom/NAFO) Run major apps in a heterogeneous UNIX environment
File Lookup/Editing
areacode
Desktop/System Administration
Most of my sysadmin scripts are kept in a private repo as they could be taken to expose information
that might be "interesting" to geeks of the black hatted persuasion.
Desktop Window System
bxterm, big xterm
Networking
distrib copy a file to multiple hosts
netsh run a command on multiple hosts
Printing Support
ehandler
envinfo
faxprint
faxview
WWW
mklinks, make text into links
mklinks.am same but for Amazon.com sales links
httpd-type, see what type of server somebody runs
daroadweb, start a web server
fakewebserverSee what browser really sends
mktour, script that generates the tour


| Agent 0 | Major (3.0) | Hobby (0.3) | Time (3.0) |
|---|---|---|
| business | crocheting | afternoon |
| pharmacy | traveling | afternoon |
| linguistics | photography | afternoon |
| history | sewing | night |
| law | sewing | morning |
| physics | sewing | afternoon |
| law | photography | morning |
| Agent 1 | Major (3.0) | Hobby (0.3) | Time (3.0) |
|---|---|---|
| education | sports | morning |
| astronomy | sports | night |
| astronomy | sports | morning |
| physics | sports | afternoon |
| linguistics | photography | afternoon |
| japanese | running | night |
| management | sports | afternoon |
| 2020-06-30 19:52:54 | Agent 0 (rule-based) |
| 2020-06-30 19:54:33 | Agent 1 (human) |
| 2020-06-30 19:54:35 | Agent 0 (rule-based) |
| Agent 0 | Major (0.3) | Hobby (3.0) | Time (1.0) |
|---|---|---|
| education | sewing | morning |
| spanish | sports | night |
| education | camping | morning |
| linguistics | puzzles | morning |
| spanish | sewing | afternoon |
| journalism | cooking | night |
| philosophy | traveling | night |
| spanish | camping | night |
| Agent 1 | Major (0.3) | Hobby (3.0) | Time (1.0) |
|---|---|---|
| education | video games | night |
| film | sewing | afternoon |
| mapping | camping | afternoon |
| spanish | camping | night |
| music | writing | afternoon |
| spanish | running | morning |
| urban planning | sewing | afternoon |
| engineering | video games | night |
| 2020-07-01 04:28:43 | Agent 0 (rule-based) |
| 2020-07-01 04:29:20 | Agent 1 (human) |
| 2020-07-01 04:29:27 | Agent 0 (rule-based) |
| 2020-07-01 04:29:43 | Agent 1 (human) |
| 2020-07-01 04:29:45 | Agent 0 (rule-based) |
| 2020-07-01 04:30:21 | Agent 1 (human) |
| 2020-07-01 04:30:24 | Agent 0 (rule-based) |
| 2020-07-01 04:31:21 | Agent 1 (human) |
| 2020-07-01 04:31:24 | Agent 0 (rule-based) |
| 2020-07-01 04:31:47 | Agent 1 (human) |
| 2020-07-01 04:31:50 | Agent 0 (rule-based) |
| Response to agent 0 (rule-based) | |
| Question | Response |
|---|---|
| n00_gender | f |
| n01_i_understand | 5 |
| n02_cooperative | 4 |
| n03_human | 4 |
| n04_understand_me | 4 |
| n05_chat | 4 |
| n06_texts | NA |
| n07_tech | NA |
| n08_learn_spa | NA |
| n09_learn_eng | NA |
| n10_age | 30 |
| n11_ability_spa | 4 |
| n12_ability_eng | NA |
| n13_country | India |
| n14_online_spa | NA |
| n15_online_eng | NA |
| n16_online_mix | NA |
| n17_comments |
| Response to agent 1 (human) | |
| Question | Response |
|---|
| Agent 0 | Major (3.0) | Hobby (1.0) | Time (3.0) |
|---|---|---|
| physics | puzzles | night |
| chemistry | sleeping | night |
| physics | running | afternoon |
| architecture | puzzles | morning |
| architecture | reading | afternoon |
| Agent 1 | Major (3.0) | Hobby (1.0) | Time (3.0) |
|---|---|---|
| architecture | sleeping | night |
| chemistry | sleeping | night |
| physics | sleeping | afternoon |
| accounting | drawing | afternoon |
| physics | drawing | night |
| 2020-07-01 06:27:12 | Agent 1 (rule-based) |
| 2020-07-01 06:28:27 | Agent 0 (human) |
| 2020-07-01 06:28:34 | Agent 1 (rule-based) |
| 2020-07-01 06:29:05 | Agent 0 (human) |
| 2020-07-01 06:29:08 | Agent 1 (rule-based) |
| 2020-07-01 06:29:49 | Agent 0 (human) |
| 2020-07-01 06:29:52 | Agent 1 (rule-based) |
| 2020-07-01 06:30:08 | Agent 0 (human) |
| 2020-07-01 06:30:13 | Agent 1 (rule-based) |
| 2020-07-01 06:30:54 | Agent 0 (human) |
| 2020-07-01 06:31:01 | Agent 1 (rule-based) |
| Response to agent 0 (human) | |
| Question | Response |
|---|
| Response to agent 1 (rule-based) | |
| Question | Response |
|---|---|
| n00_gender | m |
| n01_i_understand | 3 |
| n02_cooperative | 1 |
| n03_human | 1 |
| n04_understand_me | 4 |
| n05_chat | 5 |
| n06_texts | NA |
| n07_tech | NA |
| n08_learn_spa | NA |
| n09_learn_eng | NA |
| n10_age | 40 |
| n11_ability_spa | 4 |
| n12_ability_eng | NA |
| n13_country | america |
| n14_online_spa | NA |
| n15_online_eng | NA |
| n16_online_mix | NA |
| n17_comments | good studies, more hit is needde on the platform |


The Project Endings global online survey was conducted between 2017 and 2018. The
Call for Participation was sent out over DH-Listservs in English in 2017, and 127
respondents accessed the online form, and all participants were free to answer or
not answer
individual questions. Of the total group, respondents were given
the opportunity to self-identify as being interested in an hour-long interview with
more detailed questions. Of that group, 25 people from different DH projects were
interviewed.
The following anonymized results are from the online form only (original survey link). Any written answers have been omitted to preserve anonymity.
The total number of participants in the survey was 127; however, there were no "required"
answers, so
each question has a different number of respondents, and percentages are calculated
based on the number of actual respondents in each case.
General Information
1. Does your project contain born-digital material?
| Answer |
Count |
Percentage |
| Yes (Y) |
78 |
73.58% |
| No (N) |
23 |
21.70% |
| No answer |
5 |
4.72% |
2. Does your project contain material that exists in another medium?
| Answer |
Count |
Percentage |
| Yes (Y) |
71 |
75.53% |
| No (N) |
17 |
18.09% |
| No answer |
6 |
6.38% |
3. What year did your project begin? (If you have led more than one project, please
choose one.)
| Answer |
Count |
Percentage |
| 1980-1990 |
3 |
3.37% |
| 1990-1995 |
2 |
2.25% |
| 1996-2000 |
7 |
7.87% |
| 2001-2005 |
9 |
10.11% |
| 2006-2010 |
23 |
25.84% |
| 2011-2016 |
43 |
48.31% |
| No answer |
2 |
2.25% |
4. What year did your project end?
| Answer |
Count |
Percentage |
| 1980-1990 |
0 |
0.00% |
| 1990-1995 |
0 |
0.00% |
| 1996-2000 |
0 |
0.00% |
| 2001-2005 |
0 |
0.00% |
| 2006-2010 |
9 |
10.11% |
| 2011-2015 |
12 |
13.48% |
| 2016-2017 |
13 |
14.61% |
| Still in progress |
52 |
58.43% |
| No answer |
3 |
3.37% |
5. What career stage were you at when you began your digital project?
| Answer |
Count |
Percentage |
| Graduate student |
20 |
23.26% |
| Post-doctoral or research fellow/affiliate |
9 |
10.47% |
| Independent scholar |
2 |
2.33% |
| Unemployed or underemployed |
1 |
1.16% |
| Early career |
11 |
12.79% |
| Pre-tenure |
14 |
16.28% |
| Tenured |
17 |
19.77% |
| Retired and/or Emeritus |
1 |
1.16% |
| Research chair |
0 |
0.00% |
| Director or manager |
10 |
11.63% |
| Other |
2 |
2.33% |
6. What type of institution were you in (according to Maclean's categories) when
you began the project?
| Answer |
Count |
Percentage |
| Primarily Undergraduate |
13 |
15.66% |
| Comprehensive |
48 |
57.83% |
| Medical Doctoral universities |
14 |
16.87% |
| Other |
7 |
8.43% |
| No answer |
1 |
1.20% |
7. What type of institution are you in now?
| Answer |
Count |
Percentage |
| Primarily Undergraduate |
9 |
11.11% |
| Comprehensive |
49 |
60.49% |
| Medical Doctoral universities |
12 |
14.81% |
| Other |
9 |
11.11% |
| No answer |
2 |
2.47% |
8. Is your project data still available online?
| Answer |
Count |
Percentage |
| Yes (Y) |
60 |
74.07% |
| No (N) |
19 |
23.46% |
| No answer |
2 |
2.47% |
| If yes, please provide a URL: [OMITTED TO PRESERVE ANONYMITY]
|
9. Is your project:
| Answer |
Count |
Percentage |
| Ongoing (A1) |
43 |
56.58% |
| Complete (A2) |
18 |
23.68% |
| Dormant (A3) |
10 |
13.16% |
| Abandoned (A4) |
4 |
5.26% |
| No answer |
1 |
1.32% |
Your Project
10. Did you have a precise timeline for accomplishing the project from the outset?
|
| Answer |
Count |
Percentage |
| Yes (Y) |
30 |
40.00% |
| No (N) |
44 |
58.67% |
| No answer |
1 |
1.33% |
11. Were you able to stick to it? [the timeline]
| Answer |
Count |
Percentage |
| Yes (Y) |
14 |
46.67% |
| No (N) |
16 |
53.33% |
| No answer |
0 |
0.00% |
12. Is your project complete?
| Answer |
Count |
Percentage |
| Yes (Y) |
26 |
34.67% |
| No (N) |
47 |
62.67% |
| No answer |
2 |
2.67% |
12_1. Does your project have a projected endpoint?
| Answer |
Count |
Percentage |
| Yes (Y) |
19 |
40.43% |
| No (N) |
28 |
59.57% |
| No answer |
0 |
0.00% |
13. As you were planning your project, which of the following did you consider?
(Check all that apply.)
| Answer |
Count |
Percentage |
| Research questions |
64 |
86.49% |
| Timelines |
47 |
63.51% |
| Endpoint |
32 |
43.24% |
| Capturing metadata |
44 |
59.46% |
| Documentation |
53 |
71.62% |
| Where and how it was going to be archived |
43 |
58.11% |
| Long-term formats |
41 |
55.41% |
| Benchmarks for assessing progress towards completion |
24 |
32.43% |
| Long-term users and use of your project |
48 |
64.86% |
| Intellectual property issues |
51 |
68.92% |
| Open access |
56 |
75.68% |
| Sustainability |
47 |
63.51% |
14.
Click on graph elements to toggle details
15. Where is it archived?
| Answer |
Count |
Percentage |
| At a stable and currently accessible URL |
10 |
76.92% |
| In an institutional repository |
5 |
38.46% |
| On GitHub |
3 |
23.08% |
| In a discipline-specific repository (e.g., NINES, OLAC, etc.) |
1 |
7.69% |
| Other |
2 |
15.38% |
16. Did your project have a long-term preservation plan from the beginning of the
funding cycle?
| Answer |
Count |
Percentage |
| Yes (Y) |
31 |
43.66% |
| No (N) |
38 |
53.52% |
| No answer |
2 |
2.82% |
17. Did a campus partner offer support for long term project preservation?
| Answer |
Count |
Percentage |
| University Libraries |
19 |
26.76% |
| University Systems |
10 |
14.08% |
| Humanities Computing |
6 |
8.45% |
| I didn't ask any campus partners for help |
16 |
22.54% |
| I asked, but there were no campus departments that could help |
8 |
11.27% |
| Other |
14 |
19.72% |
18. Which major technologies did your project use? (Check all that apply.)
| Answer |
Count |
Percentage |
| SQL database |
22 |
30.99% |
| PHP |
14 |
19.72% |
| XML / XSLT / XQuery |
27 |
38.03% |
| Javascript |
21 |
29.58% |
| Drupal |
11 |
15.49% |
| Wordpress |
13 |
18.31% |
| Fedora (e.g., Islandora) |
3 |
4.23% |
| Other |
29 |
40.85% |
19. Which file formats were part of your final project output? (Check all that apply.)
| Answer |
Count |
Percentage |
| HTML |
48 |
67.61% |
| PDF |
32 |
45.07% |
| JPGs |
46 |
64.79% |
| TIFFs |
22 |
30.99% |
| MP4s |
16 |
22.54% |
| MP3s |
16 |
22.54% |
| TXT |
13 |
18.31% |
| JSON |
10 |
14.08% |
| word processor files |
13 |
18.31% |
| spreadsheets or CSV |
26 |
36.62% |
| XML |
27 |
38.03% |
| Other |
14 |
19.72% |
20. What were the significant obstacles to long term preservation? Please rank them
in order.
Click on graph elements to toggle details
21. Which of the following standardized data models did you use in your project?
(Check all that apply.)
| Answer |
Count |
Percentage |
| Dublin Core |
19 |
27.14% |
| MODS |
5 |
7.14% |
| TEI |
17 |
24.29% |
| RAD |
1 |
1.43% |
| EAD |
0 |
0.00% |
| DocBook |
0 |
0.00% |
| DDI |
0 |
0.00% |
| I created my own data model |
18 |
25.71% |
| Other |
14 |
20.00% |
22. Did your project clearly document your data model?
| Answer |
Count |
Percentage |
| Documentation of relational database and table structure |
15 |
21.74% |
| Documentation of field names and definitions |
28 |
40.58% |
| Documentation of controlled vocabularies and valid field values |
26 |
37.68% |
| Other |
20 |
28.99% |
23. Did you have clear licensing and rights statements for all of the material in
your project?
| Answer |
Count |
Percentage |
| Yes, documented publicly (A2) |
26 |
37.68% |
| Yes, documented privately (A3) |
12 |
17.39% |
| For most material but not all (A4) |
9 |
13.04% |
| For some material (A5) |
9 |
13.04% |
| Other |
7 |
10.14% |
| No answer |
6 |
8.70% |
24. Is your project data archived somewhere offline?
| Answer |
Count |
Percentage |
| Yes (Y) |
44 |
63.77% |
| No (N) |
22 |
31.88% |
| No answer |
3 |
4.35% |
24_1. If Yes, Where?
Answers omitted to preserve anonymity
25. If your project is still online, who is responsible for ongoing maintenance
(software updates, security patches, hardware replacement)?
| Answer |
Count |
Percentage |
| University Systems |
13 |
18.84% |
| Library |
9 |
13.04% |
| Humanities Computing |
7 |
10.14% |
| PI |
18 |
26.09% |
| Project is not being actively maintained |
13 |
18.84% |
| Not applicable |
7 |
10.14% |
| Other |
14 |
20.29% |
26. Are the tools and libraries used in the project:
| Answer |
Count |
Percentage |
| All free and open-source (A2) |
36 |
53.73% |
| All proprietary and closed-source (A3) |
1 |
1.49% |
| A mixture of open and closed (A4) |
27 |
40.30% |
| No answer |
3 |
4.48% |
27. Have any parts of the project output stopped working due to software obsolescence?
| Answer |
Count |
Percentage |
| Yes (Y) |
15 |
22.39% |
| No (N) |
49 |
73.13% |
| No answer |
3 |
4.48% |
27_1. If yes, please provide some details:
Answers omitted to preserve anonymity
28. If a new developer had to pick up this project five years from now and extend
it, how do you think they would describe the technical documentation?
| Answer |
Count |
Percentage |
| Extensive, complete and detailed (inline comments, external overviews, UML diagrams
etc.) (A2) |
5 |
7.46% |
| Partial (some areas are well-documented, others not) (A3) |
42 |
62.69% |
| Fragmentary and inadequate (A4) |
18 |
26.87% |
| No answer |
2 |
2.99% |
29. Do you wish to receive a digest of the survey results?
| Answer |
Count |
Percentage |
| Yes (A1) |
42 |
63.64% |
| No (A2) |
22 |
33.33% |
| No answer |
2 |
3.03% |
30. Are you willing to participate in a 30-45 minute interview about your project?
| Answer |
Count |
Percentage |
| Yes (A1) |
34 |
51.52% |
| No (A2) |
30 |
45.45% |
| No answer |
2 |
3.03% |


Typedefs | |
|
typedef struct axutil_dll_desc | axutil_dll_desc_t |
| typedef int(* | CREATE_FUNCT )(void **inst, const axutil_env_t *env) |
| typedef int(* | DELETE_FUNCT )(void *inst, const axutil_env_t *env) |
| typedef int | axis2_dll_type_t |
Functions | |
| AXIS2_EXTERN axutil_dll_desc_t * | axutil_dll_desc_create (const axutil_env_t *env) |
| AXIS2_EXTERN void | axutil_dll_desc_free_void_arg (void *dll_desc, const axutil_env_t *env) |
| AXIS2_EXTERN void | axutil_dll_desc_free (axutil_dll_desc_t *dll_desc, const axutil_env_t *env) |
| AXIS2_EXTERN axis2_status_t | axutil_dll_desc_set_name (axutil_dll_desc_t *dll_desc, const axutil_env_t *env, axis2_char_t *name) |
| AXIS2_EXTERN axis2_char_t * | axutil_dll_desc_get_name (axutil_dll_desc_t *dll_desc, const axutil_env_t *env) |
|
AXIS2_EXTERN axis2_status_t | axutil_dll_desc_set_type (axutil_dll_desc_t *dll_desc, const axutil_env_t *env, axis2_dll_type_t type) |
|
AXIS2_EXTERN axis2_dll_type_t | axutil_dll_desc_get_type (axutil_dll_desc_t *dll_desc, const axutil_env_t *env) |
|
AXIS2_EXTERN axis2_status_t | axutil_dll_desc_set_load_options (axutil_dll_desc_t *dll_desc, const axutil_env_t *env, int options) |
| AXIS2_EXTERN int | axutil_dll_desc_get_load_options (axutil_dll_desc_t *dll_desc, const axutil_env_t *env) |
|
AXIS2_EXTERN axis2_status_t | axutil_dll_desc_set_dl_handler (axutil_dll_desc_t *dll_desc, const axutil_env_t *env, AXIS2_DLHANDLER dl_handler) |
|
AXIS2_EXTERN AXIS2_DLHANDLER | axutil_dll_desc_get_dl_handler (axutil_dll_desc_t *dll_desc, const axutil_env_t *env) |
|
AXIS2_EXTERN axis2_status_t | axutil_dll_desc_set_create_funct (axutil_dll_desc_t *dll_desc, const axutil_env_t *env, CREATE_FUNCT funct) |
| AXIS2_EXTERN CREATE_FUNCT | axutil_dll_desc_get_create_funct (axutil_dll_desc_t *dll_desc, const axutil_env_t *env) |
|
AXIS2_EXTERN axis2_status_t | axutil_dll_desc_set_delete_funct (axutil_dll_desc_t *dll_desc, const axutil_env_t *env, DELETE_FUNCT funct) |
| AXIS2_EXTERN DELETE_FUNCT | axutil_dll_desc_get_delete_funct (axutil_dll_desc_t *dll_desc, const axutil_env_t *env) |
|
AXIS2_EXTERN axis2_status_t | axutil_dll_desc_set_timestamp (axutil_dll_desc_t *dll_desc, const axutil_env_t *env, AXIS2_TIME_T timestamp) |
|
AXIS2_EXTERN axis2_status_t | axutil_dll_desc_set_error_code (axutil_dll_desc_t *dll_desc, const axutil_env_t *env, axutil_error_codes_t error_code) |
|
AXIS2_EXTERN axutil_error_codes_t | axutil_dll_desc_get_error_code (axutil_dll_desc_t *dll_desc, const axutil_env_t *env) |
| AXIS2_EXTERN AXIS2_TIME_T | axutil_dll_desc_get_timestamp (axutil_dll_desc_t *dll_desc, const axutil_env_t *env) |
| AXIS2_EXTERN axis2_char_t * | axutil_dll_desc_create_platform_specific_dll_name (axutil_dll_desc_t *dll_desc, const axutil_env_t *env, const axis2_char_t *class_name) |
| AXIS2_EXTERN axutil_dll_desc_t* axutil_dll_desc_create | ( | const axutil_env_t * | env | ) |
creates dll_desc struct
| qname | qname, can be NULL |
| AXIS2_EXTERN axis2_char_t* axutil_dll_desc_create_platform_specific_dll_name | ( | axutil_dll_desc_t * | dll_desc, | |
| const axutil_env_t * | env, | |||
| const axis2_char_t * | class_name | |||
| ) |
This function will accept the library name without any platform dependant prefixes or suffixes. It then prefix and suffix platform dependant prefix and suffix macros to the original name and return the platform specific dll name
| class_name |
| AXIS2_EXTERN axis2_char_t* axutil_dll_desc_get_name | ( | axutil_dll_desc_t * | dll_desc, | |
| const axutil_env_t * | env | |||
| ) |
Return the path qualified platform specific dll name
| AXIS2_EXTERN axis2_status_t axutil_dll_desc_set_name | ( | axutil_dll_desc_t * | dll_desc, | |
| const axutil_env_t * | env, | |||
| axis2_char_t * | name | |||
| ) |
Set path qualified platform specific dll name


--- layout: default title: Home description: The personal site of Rob Jefferson ---
Wondering who I am? Jump to 'About me'


/*no all property*/
all: initial;
all: inherit;
all: unset;
all: revert;
This paragraph has a font size of 1.5rem and a color of gold. It also has 1rem of vertical margin set by the user-agent. The parent of the paragraph is a <div> with a dashed blue border.


EDUCATION |
|
National Youth Service Corp |
Dec 2017 – Dec 2018 |
Yaba college of Technology |
2014 – 2016 |
HND – Computer Engineering |
|
D.S. Adegbenro ICT Polytechnic |
2011 – 2013 |
ND – Computer Engineering |
|
D.S. Adegbenro ICT Polytechnic |
2011 – 2013 |
ND – Computer Engineering |
|
Cisco Networking Academy |
2011 – 2013 |
IT Essential Certificate |
|
Blue Royal Junior Secondary School |
2009 |
Senior School Certificate Examination SSCE |
|
Highway Nursery and Primary School, Lagos |
2001 |
First School Leaving Certificate FSLC |
|


I got interested in Jekyll when I found out that it was a great static website generator. I have been blogging on wordpress since 2010 but I thought that having a static website would be great. There are a couple reasons why I like jekyll more than wordpress.
All of my workflow is setup in my terminal and when I use github to host my blog, I can simply use my terminal to manage my blog.
In the long run I’m hoping to develop a system that is easily manageable, searchable and maintainable. One of the challenges with using a software like evernote is that one does not own the data. They can change their policies or plans whenever they want. If they stop supporting their software, then all the data is at risk of loss. As of now the best choice seems jekyll that supports latex.
Here is an example MathJax inline rendering \( 1/x^{2} \), and here is a block rendering: \[ \frac{1}{n^{2}} \]


This hump-backed stone arch bridge here is Stari Most in Bosnia and Herzegovina. It is connecting the two parts of the pretty town Mostar. Stari Most literally means “Old Bridge”, it is an iconic landmark in the country, usually seen as one of the most significant Balkan Islamic architectures. I enjoyed visiting these distinctive architectures here as well as in other Balkans such as Albania, Montenegro, Bulgaria and Kosovo…
When I was traveling in this region, whenever I read a travel map of sights, there had always been this bridge on it. So I talked to some Bosnians, and they told me that the bridge is seen as a symbol of peace nowadays, as it was destroyed in 1993 by Croat military forces during the Croat–Bosniak War.
It’s said that among local people, there is an old tradition that 16-year-old boys are encouraged to plummet 24m off the bridge, into the Neretva river down below. And this cruelly(to me) brave act has become more and more popular among tourists. There is even a diving club charging tourists if they want to jump. It’s a pity that I didn’t get to see any people taking this challenge to jump into that chilly abyss, otherwise I might have clicked some more appealing shots with a diving figure in them. ;)
Stari Most was first built in 16th century by a well-known architect Mimar Sinan who built many major Ottoman Sultan’s buildings in Istanbul. It stood there for over 4 centuries until the Croat–Bosniak War. The reconstruction was finished in 2004 when the bridge was reopen to the public.
My first 2 photos are entries for the B & W photo contest by @daveks. I used my old camera Canon Kiss X3.
So what do you think of these shots and the bridge? Have you been to this beautiful place? Will you take the plunge off the bridge? Tell me what you think in the comments below! See you next time. :D
##
你去过这个地方吗？敢不敢像当地人和一些疯狂的游客一样，从这座桥上跳进河里？我反正是不敢的。ヽ(*。>Д<)o゜你对这座象征和平的波黑老桥和我拍的这三张照片有什么看法？欢迎留言评论。谢谢！=）
Thank you for reading. Check out my recent posts, and follow me for more! =)
##
Satay Fried Rice Recipe 简单美味的沙爹炒饭
An Abandoned Car And A Wallaby in The Forest 森林中的废弃车和小袋鼠
Some SMILE Portraits in My Travels 旅途中的微笑
The Story of Tulip Mania 郁金香泡沫的故事
Zodiac Animals Workshop in Australia 澳洲孩子的生肖灯手工作坊
By the Scheldt River of Antwerp(1) 安特河边失望的小女孩
Stories of Shadows (2@Europe + 2@South America) 光影交错的瞬间
About Chinese New Year + My Greeting Cards 我做的春节贺卡~祝大家狗年大吉
Follow Me to Grey Glacier (2) 格雷冰川初探（二）
The Story of Dirty Duck Restaurant 脏鸭馆的美食故事
Explore Easter Island with Me (2) - Best Sunset Spot Ahu Akivi 复活节岛摩托之旅（二）
@ItchyfeetDonica is my only account here and I’m 200% real ;) → Introduce Cross-culture Me on This Cross-over Platform 处女贴-自我介绍
##
Here are some screenshots from my Instagram. Follow @ItchyfeetDonica for more shots around the globe !
!steemitworldmap 43.342142 lat 17.811685 long Mostar, Bosnia and Herzegovina d3scr
This page is synchronized from the post: ‘#55 The Star Bridge - Stari Most in Bosnia 🇧🇦 波黑的明星老桥’


Chapter 29 Standard Errors and Variance Estimates
In this chapter, you will learn about how matrix algebra is used to compute standard errors and variance estimates in regression. These allow us to compute confidence intervals and carry out hypothesis tests.
To illustrate computations, we will again use the following toy data set to fit a regression model using SAT and Self-Esteem to predict variation in GPA.
| ID | SAT | GPA | Self-Esteem | IQ |
|---|---|---|---|---|
| 1 | 560 | 3.0 | 11 | 112 |
| 2 | 780 | 3.9 | 10 | 143 |
| 3 | 620 | 2.9 | 19 | 124 |
| 4 | 600 | 2.7 | 7 | 129 |
| 5 | 720 | 3.7 | 18 | 130 |
| 6 | 380 | 2.4 | 13 | 82 |
29.1 Residual Variance of the Model
Recall that the estimate of the residual variance (i.e., mean squared residuals) for the model is
\[ \hat\sigma^2_{\epsilon} = \frac{\mathrm{SS}_{\mathrm{Residuals}}}{\mathrm{df}_{\mathrm{Residuals}}} \]
Using matrices, the sum of squared error (\(\mathrm{SS}_{\mathrm{Residuals}}\)) is
\[ \mathrm{SS}_{\mathrm{Residuals}} = \mathbf{e}^\intercal\mathbf{e} \]
The degrees-of-freedom associated with the residuals is \(\mathrm{df}_{\mathrm{Residuals}} = n-k\), where \(k\) is the number of coefficients (including the intercept) being estimated in the model. Recall that the value of \(k\) is the trace of the H-matrix. This implies,
\[ \hat\sigma^2_{\epsilon} = \frac{\mathbf{e}^\intercal\mathbf{e}}{n - \mathrm{tr}(\mathbf{H})} \]
Using our toy example,
# Create vector of outcomes
= c(3.0, 3.9, 2.9, 2.7, 3.7, 2.4)
y
# Create design matrix
= matrix(
X data = c(
rep(1, 6),
560, 780, 620, 600, 720, 380,
11, 10, 19, 7, 18, 13
),ncol = 3
)
# Compute SS_residual
= solve(t(X) %*% X) %*% t(X) %*% y
b = y - X %*% b
e = t(e) %*% e
ss_resid
# Compute df_residual
= X %*% solve(t(X) %*% X) %*% t(X)
H = sum(diag(H))
k = 6 - k
df_resid
# Compute estimate of error variance
= ss_resid / df_resid
var_e var_e
[,1]
[1,] 0.0912
If we take the sqaure root of this estimate, that gives us the residual standard error (RSE) of the model, a.k.a., the root mean square error (RMSE).
# Find RSE/RMSE
sqrt(var_e)
[,1]
[1,] 0.302
29.2 Coefficient Variances and Covariances
In matrix applications, it is typical to indicate the error variances and covariances for the coefficients in a variance–covariance matrix. In this matrix the error variances for each of the coefficients is given along the main diagonal of the matrix. The covariances between the coefficients are given in the off-diagonal elements. For example, the variance–covariance matrix for a simple regression model is:
\[ \boldsymbol{\sigma^2_B} = \begin{bmatrix}\mathrm{Var}(b_0) & \mathrm{Cov}(b_0,b_1) \\ \mathrm{Cov}(b_0,b_1) & \mathrm{Var}(b_1) \end{bmatrix} \]
Examining the variance-covariance matrix of the coefficients, we find that it is a square, symmetric matrix with dimensions of \(k \times k\). This matrix is defined as:
\[ \boldsymbol{\sigma^2_B} = \sigma^2_{\epsilon} (\mathbf{X}^{\intercal}\mathbf{X})^{-1} \]
In our toy example,
# Variance-covariance matrix of the coefficients
= as.numeric(var_e) * solve(t(X) %*% X)
V_b V_b
[,1] [,2] [,3]
[1,] 0.4741276 -5.504e-04 -9.477e-03
[2,] -0.0005504 9.501e-07 -2.246e-06
[3,] -0.0094769 -2.246e-06 8.344e-04
We use as.numeric()
to convert the estimate of the model-level error variance to a numeric scalar. The estimated variance for each of the coefficients are:
- \(\mathrm{Var}(\hat\beta_0) = 0.474\)
- \(\mathrm{Var}(\hat\beta_{\mathrm{SAT}}) = 0.00000095\)
- \(\mathrm{Var}(\hat\beta_{\mathrm{Self\mbox{-}Esteem}}) = 0.00083\)
The covariances between these coefficients are also given in this matrix:
- \(\mathrm{Cov}(\hat\beta_0,\hat\beta_{\mathrm{SAT}}) = -0.00055\)
- \(\mathrm{Cov}(\hat\beta_0,\hat\beta_{\mathrm{Self\mbox{-}Esteem}}) = -0.0095\)
- \(\mathrm{Cov}(\hat\beta_{\mathrm{SAT}},\hat\beta_{\mathrm{Self\mbox{-}Esteem}}) = -0.0000022\)
In practice, the variance-covariance matrix of the regression coefficients can be obtained directly from R using the vcov()
function.
# Fit model
.1 = lm(y ~ 1 + X[ , 2] + X[ , 3])
lm
# Obtain variance-covariance matrix of the coefficients
vcov(lm.1)
(Intercept) X[, 2] X[, 3]
(Intercept) 0.4741276 -5.504e-04 -9.477e-03
X[, 2] -0.0005504 9.501e-07 -2.246e-06
X[, 3] -0.0094769 -2.246e-06 8.344e-04
29.3 Standard Errors for the Coefficients
While the variances are mathematically convenient, in applied work, the standard errors (SEs) of the coefficients are more commonly presented. Recall that the standard errors are given in the same metric as the coefficient estimates, and represent the uncertainty in that estimate. They are also used to construct test statistics (e.g., z or t) and confidence intervals for the estimates. The estimated standard error for each regression coefficient can be found by computing the square root of the variance estimates, that is:
\[ \mathrm{SE}(\beta_j) = \sqrt{\mathrm{Var}(\beta_j)} \]
Thus, we can find the standard errors by computing the square roots of the diagonal elements in the variance–covariance matrix of the coefficients.
# Compute SEs
= sqrt(diag(V_b))
se
# View SEs
se
[1] 0.6885692 0.0009747 0.0288855
29.4 Correlation Between the Coefficients
Recall that correlation, which is a standardized covariance, is often times more interpretable than the covariance. We can obtain the correlation coefficient between two coefficients, \(\hat\beta_j\) and \(\hat\beta_k\), using
\[ \mathrm{Cor}(b_j,b_k) = \frac{\mathrm{Cov}(b_j,b_k)}{\sqrt{\mathrm{Var}(b_j)\times \mathrm{Var}(b_k)}} \]
Using the values from our example, we can compute the correlation between each set of regression coefficients:
\[ \begin{split} \mathrm{Cor}(\hat\beta_0,\hat\beta_{\mathrm{SAT}}) &= \frac{-0.00055}{\sqrt{0.474 \times 0.00000095}} &= -0.820 \\[2ex] \mathrm{Cor}(\hat\beta_0,\hat\beta_{\mathrm{Self\mbox{-}Esteem}}) &= \frac{-0.0095}{\sqrt{0.474 \times 0.00083}} &= -0.479 \\[2ex] \mathrm{Cor}(\hat\beta_{\mathrm{SAT}},\hat\beta_{\mathrm{Self\mbox{-}Esteem}}) &= \frac{-0.0000022}{\sqrt{0.00000095 \times 0.00083}} &= -0.078 \end{split} \]
In R, if we have assigned the variance-covariance matrix to an object, we can use indexing to access the different elements to compute the correlation.
# Compute correlation between b_0 and b_SAT
1, 2] / sqrt(V_b[1, 1] * V_b[2, 2]) V_b[
[1] -0.82
# Compute correlation between b_0 and b_selfesteem
1, 3] / sqrt(V_b[1, 1] * V_b[3, 3]) V_b[
[1] -0.4765
# Compute correlation between b_SAT and b_selfesteem
2, 3] / sqrt(V_b[2, 2] * V_b[3, 3]) V_b[
[1] -0.07976
The correlations indicates that the intercept is highly, negatively correlated with both the other coefficients. Whereas the effects of SAT and self-esteem seem to be mostly uncorrelated (i.e., independent).
29.5 Inference: Model-Level
The model-level (i.e., omnibus) null hypothesis for the regression model
\[ Y_i = \beta_0 + \beta_1(X_{1_i}) + \beta_2(X_{2_i}) + \beta_3(X_{3_i}) + \ldots + \beta_k(X_{k_i}) + \epsilon_i \]
is commonly expressed as:
\[ H_0: \beta_1 = \beta_2 = \beta_3 = \ldots = \beta_k = 0 \]
If we write the set of predictor coefficients as a vector, \(\boldsymbol{\beta}^\intercal = \begin{bmatrix} \beta_1 & \beta_2 & \beta_3 & \ldots & \beta_k\end{bmatrix}\), then we can write the model-level null hypothesis using vector notation:
\[ H_0: \boldsymbol{\beta} = 0 \]
Note that the we can express the vector of coefficients as either a column vector (\(\boldsymbol{\beta}\)) or as a row vector (\(\boldsymbol{\beta}^\intercal\)). To test this we compute an F-statistic based on the ratio of the mean square for the model and that for the residuals. This is evaluted in an F-distribution having \(k-1\) and \(n-k\) degrees of freedom. (See here for a reminder about the model-level test.) Using our toy-example:
# Compute MS_model
= y - mean(y) # Mean-center y
mc_y = t(mc_y) %*% X %*% solve(t(X) %*% X) %*% t(X) %*% mc_y
ss_model = ss_model / (k - 1)
ms_model ms_model
[,1]
[1,] 0.7132
# Compute MS_residual
= t(mc_y) %*% mc_y - t(mc_y) %*% X %*% solve(t(X) %*% X) %*% t(X) %*% mc_y
ss_resid = ss_resid / (6 - k)
ms_resid ms_resid
[,1]
[1,] 0.0912
# Compute F
= ms_model / ms_resid
F_stat F_stat
[,1]
[1,] 7.82
# Compute p-value
1 - pf(F_stat, df1 = (k-1), df2 = (6-k))
[,1]
[1,] 0.06456
29.6 Inference: Coefficient-Level
The coefficient-level null hypotheses for the regression model are:
\[ \begin{split} H_0: \beta_j = 0 \end{split} \]
for each j. To test this we compute a t-statistic based on the ratio of the coefficent estimate and that its associated standard error. This is evaluted in a t-distribution having \(n-k\) degrees of freedom. (See here for a reminder about the coefficient-level tests.) Using our toy-example:
# Compute t for all three coefficients
= b / se
t_stat t_stat
[,1]
[1,] 0.9574
[2,] 3.9041
[3,] 0.3180
# Compute p-value
2 * pt(-abs(t_stat), df = (6-k), lower.tail = TRUE)
[,1]
[1,] 0.40901
[2,] 0.02984
[3,] 0.77130
We could also compute a confidence interval using,
\[ B_j \pm t^*(\mathrm{SE}_{B_j}) \]
where \(B_j\) is the jth coefficient, \(\mathrm{SE}_{B_j}\) is the standard error associated with that coefficient, and \(t^*\) is the appropriate critical value. Using our toy example,
# Obtain critical value for 95% CI
= abs(qt(.025, df = (6-k)))
t_star
# Compute lower limit of CI
- t_star*se b
[,1]
[1,] -1.5321211
[2,] 0.0007035
[3,] -0.0827395
# Compute upper limit of CI
+ t_star*se b
[,1]
[1,] 2.850548
[2,] 0.006908
[3,] 0.101113


{% extends 'base.html' %} {% block meta %}
Please enter your new password twice so we can verify you typed it in correctly.
{% else %}The password reset link was invalid, possibly because it has already been used. Please request a new password reset.
{% endif %}


User
Manage Actions
Profile
Orders
Sell Product
Group LiveChat
Admin Dashboard
Sign out
Your number one hub to buy and sell your collectables and electronics
Search
.
.
.
.
Electronics
HeadSets
Pc's
Collectables
Dolls
Handmades
Electronics
Smartphones
Laptops
Collectables
Paintings
Cards


Hi, I'm
I'm a recent B.S. graduate of Florida Institute of Technology. My major was Computer Information Systems from Florida Tech's College of Engineering. Since I was a young boy I've been facinated with computers and always dreamed of one day working in the software developement field.
I believe this world would be a better a place if people would help one another more. With that said, my goal is to develop apps that truely enrich and improve the lives of others across the globe.
I grew up surfing the waves of the East Central up to the North East coast of Florida. My other passion is soccer. I started playing when I a young child and played competively in high school and college.
Eventually, I would love to freelance develop remotely.
My iTunes is pretty diverse. The majority of it is ska punk / reggae rock. Mixed in is classic rock, rap and blues.


|
CMSIS-RTOS RTX
Version 4.74
CMSIS-RTOS RTX: Real-Time Operating System for Cortex-M processor-based devices
|
Example projects using CMSIS-RTOS RTX are available for various development boards. To make use of these examples, you need to install a Device Family Pack in µVision and use Pack Installer to open a CMSIS-RTOS Blinky project. If you wish to start a CMSIS-RTOS RTX from scratch, follow these steps:
In the Manage Run-Time Environment window that opens, select CMSIS::CORE and CMSIS::RTOS (API)::Keil RTX. If the Validation Output requires other components to be present, try to use the Resolve button. Click OK:
In the Project window, you will see the files that have been automatically added to you project, such as RTX_Conf_CM.c and the system and startup files:
You can add template files to the project by right-clicking on Source Group 1 and selecting Add New Item to 'Source Group 1'. In the new window, click on User Code Template. On the right-hand side you will see all available template files for CMSIS-RTOS RTX:


Cascading Style Sheets (CSS) controls the presentation aspect of the site and allows
your site to have its own unique look. It does this by maintaining style sheets which sit on top of other
style rules and are triggered based on other inputs, such as device screen size and resolution.


Issue 610
External instances are not loaded in Safari
You should see the text 'TEST PASSED' in the result field.
Result:


It is well known that Ernest Hemingway avoided adverbs. His minimalist style didn't have room for superfluous words. Steven King said, "I believe the road to hell is paved with adverbs, and I will shout it from the rooftops," in his book 'On Writing'.
Adverbs tend to be unnecessary. They can be redundant, slow down the action, or amplify verbs that don't need to be amplified. You can often replace an adverb and the verb it modifies with a stronger verb or, if the verb is strong enough to stand alone anyway, remove the adverb and leave the verb intact.
Further reading: How to Eliminate Adverbs
These words rarely add anything of value to your writing. They inflate the word count at the cost of readability. You can make your writing leaner and more precise by omitting as filler words when possible.
You could add more words to this list. Also, not every occurrence of a word on this list is going to need to be removed either. This check is a quick reference. Start by considering whether you need these words and apply that mentality throughout your writing.
Further reading: Style at UNC Writing Center (read the section on wordiness)
We can cut clutter in our writing by eliminate repetitious expressions. They can be overlooked because we often see and hear redundancies, such as "free gifts" and "12 noon". We should lookout for needless repetition and eliminate expressions which add no additional value.
These words can be indicators of passive voice. Passive voice occurs when you make the object of action into the subject of a sentence.
Passive voice is not always bad. However, it can affect the clarity or weaken the impact of a sentence. It can often be replaced with an active sentence structure to improve the writing.
Further reading: Passive Voice at UNC Writing Center
A lexical illusion is a duplicate word our brains filter out when going from one line to the next. This makes catching these issues when reading or editing difficult. This check highlights any duplicate words to allow you to check that they are correct.
A Nominalization is the use of a non-noun word as a noun. Verbs used as nouns sounds as if nothing is happening. Strong writing uses verbs rather than turning them into nouns. This check highlights some verbs which are being used as nouns.
These words and phrases are often misused. The list includes homonyms that get mixed up and other words and phrases that get used incorrectly. Double check them to make sure you used the correct word or phrase in each case.
Further reading: Common Misused Words and Phrases at Weber State University
This test highlights pronouns in your writing. This allows you to check the pronouns for clarity. A pronoun should refer to a specific noun, be clear which noun it is referring to, and agree in number and in person with the noun it refers to.
Further reading: Making Clear Pronoun References at Mount Saint Vincent University
This test highlights "helping verbs" in your writing. This allows you to check the helping verbs for clarity. Avoid weak helping verbs that only convey existence and not action.
Further reading: Verb "To Be"
This test highlights words hard or pompous words in your writing. Look to use 'every-day' english instead.
Further reading: Plain English words
This test highlights words which can have a negative tone to them. Look for positive language to replace negative (e.g. "I’m not lying to you" vs "I’m telling the truth.").
Other Examples:
The purpose of this website is to highlight potential pitfalls in your writing and encourage good habits. Few of the things this tool highlights are hard and fast rules. Try to look at the output as a chance to think about your writing choices and see if there are areas for improvement.
This website makes mistakes. It will miss things and there will be false positives in the results from time to time. This is not a replacement for careful editing. That said, I do hope this provides useful feedback to you.
The article 3 shell scripts to improve your writing, or "My Ph.D. advisor rewrote himself in bash." by Matt Might inspired this website. I have expanded on it to include other things I thought would be helpful.
0 clichésAPPROX. |
0 characters |
0 words per sentence (avg) |
0 letters per word |
0 sentences |
0 alphanumeric characters |
0 prepositionsAPPROX. |
0 paragraphs |
0 articles |
0 words per paragraph |
0 letters per sentence |
0 syllables per sentenceAPPROX. |
0 syllables per wordAPPROX. |
0 syllables, totalAPPROX. |
0 letters, total |
0 words, total |
0 printed pages (Paperback) |
0 printed pages (A4) |
0 "to be" verbs |
0 pauses |
0 words between pauses |
0 syllables between pauses |
0 pauses per sentence |
0 pronounsBETA |
0 contractionsBETA |
0 similesBETA |
0 max sentence length (words) |
0 min sentence length (words) |
0 questions |
0 question:sentence ratio |
0 unique words |
Most used words & phrases:
| Nothing yet. |
0% First person, 0% Second person, 0% Third person
0 letters
Readability Scores:
Flesch Reading Ease 0
Flesch–Kincaid Grade Level 0
Dale-Chall Formula 0
Gunning Fog Index 0
FORECAST Grade Level 0
Standard Deviations:
characters per sentence: 0 |
words per sentence: 0 |


Faster
Slower
Near
Far
Expand
Compress
Next Example
Mesh
Surface
Oops ... your browser doesn't support the HTML5 canvas element


--- layout: default title: Publications ---
Jonathan Heusser and Pasquale Malacaria. Quantifying Information Leaks in Software
In the ACSAC ’10 Proceedings of the 26th Annual Computer Security Applications Conference. [acm]
Pasquale Malacaria and Jonathan Heusser. Information Theory and Security: Quantitative Information Flow Formal Methods for Quantitative Aspects of Programming Languages, SFM 2010: 87-134. [springer]
Jonathan Heusser and Pasquale Malacaria. Applied Quantitative Information Flow and Statistical Databases Formal Aspects in Security and Trust 2009: 96-110. [springer]
Jonathan Heusser and Pasquale Malacaria. Lattice of Information and Quantitative Information Flow. In 5th International Workshop on Programming Language Interference and Dependence ( PLID’09 ), 2009.
Pasquale Malacaria and Jonathan Heusser. An Algebraic Theory of Quantitative Information Flow. Technical Report No. RR-08-12, 2008. [more]


There was a problem publishing the public content.
This information will be publicly viewable by prospective applicants.
Competition URL:
Complete
Return to setup overview
Return to non-IFS competition details
Publish content
Previous
Assessors


Creates, stores, and manages the size of all the frame-buffers needed for our PBR rendering pipeline.
More...
#include <Graphics_Framebuffers.h>
|
| | ~Graphics_Framebuffers () |
| | Destroy this collection of frame-buffers. More...
|
| |
| | Graphics_Framebuffers (const glm::ivec2 &size, Engine &engine) |
| | Construct a collection of PBR frame-buffers at a specific size. More...
|
| |
| void | createFBO (const char *name, const std::vector< std::tuple< GLenum, GLenum, GLenum >> &textureFormats, const bool &mipmapped=false) |
| | Create a framebuffer with a specific name, specific formats, and optionally mipmap it to 6 LOD intervals. More...
|
| |
| void | bindForWriting (const char *name) |
| | Bind a framebuffer for writing. More...
|
| |
| void | bindForReading (const char *name, const GLuint &binding=0) |
| | Bind a framebuffer for reading. More...
|
| |
| void | clear () |
| | Clear all framebuffer color attachments of their data. More...
|
| |
| void | resize (const glm::ivec2 &newSize, const int &layerFaces) |
| | Resize all framebuffer textures. More...
|
| |
| GLuint | getFboID (const char *name) |
| | Retrieve the FBO ID for a given framebuffer. More...
|
| |
| GLuint | getTexID (const char *name, const size_t &index) |
| | Retrieve the Texture ID for a given framebuffer at a given texture index. More...
|
| |
|
|
MappedChar< std::tuple< GLuint, bool, std::vector< std::tuple< GLuint, GLenum, GLenum, GLenum, GLenum > > > > | m_fbos |
| |
|
glm::ivec2 | m_renderSize = glm::ivec2(1) |
| |
|
int | m_layerFaces = 1 |
| |
|
RH_Volume | m_rhVolume |
| |
|
std::shared_ptr< bool > | m_aliveIndicator = std::make_shared<bool>(true) |
| |
Creates, stores, and manages the size of all the frame-buffers needed for our PBR rendering pipeline.
Decouples creation and management from the various sources who need a framebuffer, which isn't desirable, however easily allows them to be shared. Necessary such that 1 rendering pipeline can be reused for different sized view-ports/viewing perspectives.
◆ ~Graphics_Framebuffers()
| Graphics_Framebuffers::~Graphics_Framebuffers |
( |
| ) |
|
Destroy this collection of frame-buffers.
◆ Graphics_Framebuffers()
| Graphics_Framebuffers::Graphics_Framebuffers |
( |
const glm::ivec2 & |
size, |
|
|
Engine & |
engine |
|
) |
| |
Construct a collection of PBR frame-buffers at a specific size.
- Parameters
-
| size | the size to use. |
| engine | reference to the engine to use. |
◆ bindForReading()
| void Graphics_Framebuffers::bindForReading |
( |
const char * |
name, |
|
|
const GLuint & |
binding = 0 |
|
) |
| |
Bind a framebuffer for reading.
- Parameters
-
| name | the name of the framebuffer to bind. |
| binding | the reading index which the framebuffer should bind to. |
◆ bindForWriting()
| void Graphics_Framebuffers::bindForWriting |
( |
const char * |
name | ) |
|
Bind a framebuffer for writing.
- Parameters
-
| name | the name of the framebuffer to bind. |
◆ clear()
| void Graphics_Framebuffers::clear |
( |
| ) |
|
Clear all framebuffer color attachments of their data.
◆ createFBO()
| void Graphics_Framebuffers::createFBO |
( |
const char * |
name, |
|
|
const std::vector< std::tuple< GLenum, GLenum, GLenum >> & |
textureFormats, |
|
|
const bool & |
mipmapped = false |
|
) |
| |
Create a framebuffer with a specific name, specific formats, and optionally mipmap it to 6 LOD intervals.
- Parameters
-
| name | the name of the framebuffer, for lookup later. |
| textureFormats | vector of texture parameters to connect to the FBO. |
| mipmapped | (optional) whether to mipmap the FBO textures, down to 6 LOD intervals. |
◆ getFboID()
| GLuint Graphics_Framebuffers::getFboID |
( |
const char * |
name | ) |
|
Retrieve the FBO ID for a given framebuffer.
- Parameters
-
| name | the name of the framebuffer to retrieve from. |
◆ getTexID()
| GLuint Graphics_Framebuffers::getTexID |
( |
const char * |
name, |
|
|
const size_t & |
index |
|
) |
| |
Retrieve the Texture ID for a given framebuffer at a given texture index.
- Parameters
-
| name | the name of the framebuffer to retrieve from. |
| index | the index into this framebuffer to retrieve the texture ID from. (spot 0, spot 1, etc...) |
◆ resize()
| void Graphics_Framebuffers::resize |
( |
const glm::ivec2 & |
newSize, |
|
|
const int & |
layerFaces |
|
) |
| |
Resize all framebuffer textures.
- Parameters
-
| newSize | the new size all framebuffer textures should expand/shrink to. |
| layerFaces | the number of layers to use. |
The documentation for this class was generated from the following files:


This section of Protean allows you to add a glpyh to the status bar that displays the total number of notifications you currently have.
Note: In order for this feature to function as a intended you must select a glyph that supports badging/numbering. The stock Protean glyphs all support this feature.
Once you have selected your flipswitch, you will see the following screen. On this screen you will are able to select the glyph you want to use for the application as well as the application's "Tap Action."
Tap Actions occur when you tap the application's glyph in the status bar. Selecting "Launch Application" will cause the application to launch when you tap the glyph. If you select "Activator Action" you will be taken to a list of activator actions that you can select.


Data Visualization
Bar Chart
Pie Chart
Line Chart
Bubble Chart
Bubble Chart
Bubble Chart with Chart.js, D3, BillBoard.js
D3 Graph
Chart.js Graph
BillBoard.js Graph


Extrusion
问题描述 :
The Acme Extrusion Company specializes in the production of steel bars with custom-designed cross-sections. The manufacturing process involves cutting a hole in a thick metal plate, the shape of the hole being determined by the customer’s specifications.
Molten metal is then forced through the hole to form a long bar. The shape of the hole determines the shape of the cross-section of the resulting bar.
Given a description of a polygonal hole and the volume of molten metal available, determine how long a bar can be formed by this process.
输入:
Input consists of one or more data sets consisting of the following information:
- An integer, N , indicating the number of vertices making up the polygon. End of input is signaled by any N less than 3.
- Next are N lines, each containing a pair of floating-point numbers, (xi, yi) , each denoting one vertex of the polygon. Vertices will be presented in clockwise order (relative to the closest interior point) proceeding around the perimeter of the polygon. The xi and yi values are in units of meters.
- The data set is terminated by a floating point value indicating the amount of molten metal available (in cubic meters).
输出:
For each data set, the program should produce a single line of output of the form:
BAR LENGTH: x
where “x ” is the maximum bar length, a floating point number expressed with two digits precision.
样例输入:
4 0.0 0.0 0.0 0.1 0.1 0.1 0.1 0.0 1.0 7 0.5 1.25 0.9 1.6 0.9 1.1 0.85 1.0 0.9 0.85 0.9 0.5 0.5 0.75 100.0 0
样例输出:
BAR LENGTH: 100.00 BAR LENGTH: 318.73
解题代码:
//* @author: ccQ.SuperSupper import java.io.*; import java.util.*; class POINT{ double x,y; } public class Main { static final int N = 100000; static POINT point[] = new POINT[N]; static int n; static void start(){ for(int i=0;i< N;++i) point[i] = new POINT(); } static double Get_Num(StreamTokenizer cin) throws Exception{ cin.nextToken(); return cin.nval; } public static void main(String[]args) throws Exception{ int i; double V; start(); StreamTokenizer cin = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in))); while(true){ n = (int) Get_Num(cin); if(n< 3) break; for(i=0;i< n;++i){ point[i].x = Get_Num(cin); point[i].y = Get_Num(cin); } V = Get_Num(cin); System.out.printf("BAR LENGTH: %.2f\n",solve(V)); } } static double corss(POINT a,POINT b,POINT c){ return (b.x-a.x)*(c.y-a.y)-(b.y-a.y)*(c.x-a.x); } static double solve(double V){ double ans=0.0; for(int i=2;i< n;++i){ ans+=corss(point[0],point[i-1],point[i]); } ans = ans< 0.0?ans/-2.0:ans/2.0; return V/ans; } }
(adsbygoogle = window.adsbygoogle || []).push({});
等待后面的实现，多谢
正在学习搜索，很好
华为这题目略显简单啊
这配图…..
额楼主能否在发布代码的同时对解题思路做个讲解呢？这样大家在学习的时候就方便多了。
这是研发类的题还是算法类？
#!/usr/bin/env python
def cou(n):
arr =
i = 1
while(i<n):
arr.append(arr[i-1]+selfcount(i))
i+=1
return arr[n-1]
def selfcount(n):
count = 0
while(n):
if n%10 == 1:
count += 1
n /= 10
return count
很好，注释很详细啊
题目需要求解的是最小值，而且没有考虑可能存在环
什么破题，题意好难懂啊
失误失误，转载错了。已经改正，抱歉。


MASTERPLAN AND DESIGN FORDICKENS HEATH
Dickens Heath, Solihull, UK
In 2001 the practice prepared the design code for the central area of Dickens Heath. Parkridge developments won the bid and were chosen to develop the central area in partnership with Solihull Metropolitan Council. The Masterplan for the central area contains 246 residential units, 1360 m2 of retail space and 1000 m2 B1 space, arranged along a high street with a major square at the northern end and a marina basin on the Stratford and Avon Canal to the south. The central area was divided into 28 urban blocks and four architects were commissioned to work with Parkridge in developing the detail of the design. John Simpson, as one of the four teams of architects, were responsible for 6 urban blocks of residential and retail use, and for the major public elements within the scheme, the community hall, the public library and the medical centre.
MASTERPLAN AND DESIGN FORDICKENS HEATH
Dickens Heath, Solihull, UK
In 2001 the practice prepared the design code for the central area of Dickens Heath. Parkridge developments won the bid and were chosen to develop the central area in partnership with Solihull Metropolitan Council. The Masterplan for the central area contains 246 residential units, 1360 m2 of retail space and 1000 m2 B1 space, arranged along a high street with a major square at the northern end and a marina basin on the Stratford and Avon Canal to the south. The central area was divided into 28 urban blocks and four architects were commissioned to work with Parkridge in developing the detail of the design. John Simpson, as one of the four teams of architects, were responsible for 6 urban blocks of residential and retail use, and for the major public elements within the scheme, the community hall, the public library and the medical centre.
MASTERPLAN AND DESIGN FORDICKENS HEATH
Dickens Heath, Solihull, UK
In 2001 the practice prepared the design code for the central area of Dickens Heath. Parkridge developments won the bid and were chosen to develop the central area in partnership with Solihull Metropolitan Council. The Masterplan for the central area contains 246 residential units, 1360 m2 of retail space and 1000 m2 B1 space, arranged along a high street with a major square at the northern end and a marina basin on the Stratford and Avon Canal to the south. The central area was divided into 28 urban blocks and four architects were commissioned to work with Parkridge in developing the detail of the design. John Simpson, as one of the four teams of architects, were responsible for 6 urban blocks of residential and retail use, and for the major public elements within the scheme, the community hall, the public library and the medical centre.
MASTERPLAN AND DESIGN FORDICKENS HEATH
Dickens Heath, Solihull, UK
In 2001 the practice prepared the design code for the central area of Dickens Heath. Parkridge developments won the bid and were chosen to develop the central area in partnership with Solihull Metropolitan Council. The Masterplan for the central area contains 246 residential units, 1360 m2 of retail space and 1000 m2 B1 space, arranged along a high street with a major square at the northern end and a marina basin on the Stratford and Avon Canal to the south. The central area was divided into 28 urban blocks and four architects were commissioned to work with Parkridge in developing the detail of the design. John Simpson, as one of the four teams of architects, were responsible for 6 urban blocks of residential and retail use, and for the major public elements within the scheme, the community hall, the public library and the medical centre.
MASTERPLAN AND DESIGN FORDICKENS HEATH
Dickens Heath, Solihull, UK
In 2001 the practice prepared the design code for the central area of Dickens Heath. Parkridge developments won the bid and were chosen to develop the central area in partnership with Solihull Metropolitan Council. The Masterplan for the central area contains 246 residential units, 1360 m2 of retail space and 1000 m2 B1 space, arranged along a high street with a major square at the northern end and a marina basin on the Stratford and Avon Canal to the south. The central area was divided into 28 urban blocks and four architects were commissioned to work with Parkridge in developing the detail of the design. John Simpson, as one of the four teams of architects, were responsible for 6 urban blocks of residential and retail use, and for the major public elements within the scheme, the community hall, the public library and the medical centre.
MASTERPLAN AND DESIGN FORDICKENS HEATH
Dickens Heath, Solihull, UK
In 2001 the practice prepared the design code for the central area of Dickens Heath. Parkridge developments won the bid and were chosen to develop the central area in partnership with Solihull Metropolitan Council. The Masterplan for the central area contains 246 residential units, 1360 m2 of retail space and 1000 m2 B1 space, arranged along a high street with a major square at the northern end and a marina basin on the Stratford and Avon Canal to the south. The central area was divided into 28 urban blocks and four architects were commissioned to work with Parkridge in developing the detail of the design. John Simpson, as one of the four teams of architects, were responsible for 6 urban blocks of residential and retail use, and for the major public elements within the scheme, the community hall, the public library and the medical centre.


Home
Departments
Computer Engineering
Mechanical Engineering
Electronic Engineering
Academics
Academic Holiday
Academic Records
Examination Schedule
Student Life
Result
Student Affairs
College Affairs
Health & Wellness
Infrastructure
Library
Hostal
Canteen
Events
Placement
Fee Structure
F.E.
S.E.
T.E.
B.E.
Placements In WCE


Berkshire Hathaway Inc. 3555 Farnam Street Suite 1440 Omaha, NE 68131 Official Home Page
For a free car insurance rate quote that could save you substantial money www.geico.com or call 1-888-395-6349, 24 hours a day
If you have any comments about our WEB page, you can either write us at the address shown above or e-mail us at<EMAIL_ADDRESS>However, due to the limited number of personnel in our corporate office, we are unable to provide a direct response.


For most programs, the default settings for the garbage collection parameters should suffice. For programs that have high heap requirements, the default parameters may result in a higher ratio of garbage collection time to run time. These programs should be given more space in which to run.
The gc_margin
is a non-negative integer specifying the desired margin in
kilobytes. For example, the default value of 1000 means that the
heap will not be expanded if garbage collection can reclaim at least
one megabyte. The advantage of this criterion is that
it takes into account both
the user's estimate of the heap usage and the effectiveness of garbage
collecting.
gc_margin
higher than the default will cause fewer heap expansions
and garbage collections. However, it will use more space, and garbage
collections will be more time-consuming when they do occur.
Setting the margin too large will cause the heap to expand so that if it does overflow, the resulting garbage collection will significantly disrupt normal processing. This will be especially so if much of the heap is accessible to future computation.
gc_margin
lower than the default will use less space, and
garbage collections will be less time-consuming. However, it will cause more
heap expansions and garbage collections.

The correct value for the gc_margin
is dependent upon many factors.
Here is a non-prioritized list of some of them:
The algorithm used when the heap overflows is as follows:
ifgc
is on and the heap is larger thangc_margin
kilobytes then garbage collect the heap if less thangc_margin
kilobytes are reclaimed then try to expand the heap endif else try to expand the heap endif
The user can use the gc_margin
option of prolog_flag/3
to
reset the gc_margin
(see ref-lps-ove).
Otherwise, the heap is expanded after garbage collection. This
expansion provides space for the future heap usage that will
presumably occur.


Step #1: Enter Your Email and Password
Get started with creating your free #openHSV account by entering your email and password. Not sure if you qualify for an account? #openHSV is free and accessible to everyone in the Tennessee Valley.
--- template: about ---
Get started with creating your free #openHSV account by entering your email and password. Not sure if you qualify for an account? #openHSV is free and accessible to everyone in the Tennessee Valley.