Top: Deploying the shared (dynamic) library
Static vs. dynamic linking
PTypes builds two separate versions of the library: static and shared (DLL on Windows), giving you a choice, and at the same time putting into a dilemma.
Both static and dynamic linking have their advantages and disadvantages. While small applications consisting of a single executable would prefer to link the library directly, more complex projects with multiple dynamic components and executables would greatly benefit from going 'totally dynamic', including generic low-level libraries, such like CRTL and PTypes. Before making a decision, consider the following:
Advantages of static linking in general:
Advantages of dynamic linking in general:
In summary, dynamic linking is good (1) for big projects, (2) if the library is widely used by many software vendors in its dynamic (shared) form or (3) to take advantage of run-time binding.
Using and deploying UNIX shared object
PTypes builds a shared object named libptypes.so.20 (libptypes.20.dylib on MacOS X), creates a 'default' symbolic link to this library and finally places them both in so/.
If you decided to link your program against PTypes shared object instead of the static library, then all you'd have to do is to change the library path in your makefile from -L../ptypes/lib to -L../ptypes/so. When running the program, it will require the shared library to be either in one of the default locations (usually /usr/lib and /usr/local/lib), or you will have to override the LD_LIBRARY_PATH environment variable and point to the directory where the shared object resides, e.g. ~/ptypes/so.
The shared object libptypes.so.20 should be deployed and installed along with your application. The version number '20' will change when PTypes adds a number of new features and becomes bigger and/or if incompatible changes take place which make it impossible for older programs to use the new shared object.
Using and deploying Windows DLL
The PTypes MSVC project is configured so that the 'release' version of ptypes20.dll along with its import library is copied into so\ as the final step of the build process. This module does not contain any debugging information and is ready to be deployed. Note that the library itself is linked against the multithreaded DLL version of CRTL.
PTypes places a VERSION resource in the DLL, allowing the system or the setup program to automatically compare the existing ptypes20.dll the user may have in the system with the one that comes with your program. This is usually done from within the installation script.
The DLL version of the library built with Dev-C++/MinGW is called ptypes20g.dll. The reason this name is different is that each C++ compiler uses its own `name mangling' scheme for exported symbols, so that applications built by one compiler can't use dynamic libraries built by another one.
Version checking sample code
If, for some reason, you wish to check the version of the shared library you linked with dynamically, you may check the global variable __ptypes_version, which is declared in <pport.h>. This variable holds the version number encoded as a single integer, e.g. 0x010902 designates version 1.9.2. In this form the version numbers (required and actual) can be easily compared as integers.
Note, the name of the library itself reflects major and minor version numbers, so that only the third component of the version number can vary in the file.
If you need to check the version of PTypes before loading the library (for example, during the installation on UNIX), you may write a program that loads the shared object and reads the global symbol __ptypes_version at run-time, using the system dynamic loading interface. Note that this program itself is not using PTypes. Some UNIX systems require to link the program with -ldl.
#ifdef WIN32 # include <windows.h> #else
# include <dlfcn.h>
#endif #include <stdio.h> const unsigned long required = 0x020001;
int main() { void* handle; unsigned long* pversion; int exitcode = 0; #ifdef WIN32 const char* libname = "ptypes20.dll"; handle = LoadLibrary(libname); if (handle == 0) { printf("ptypes20.DLL not found\n"); return 3; } pversion = (unsigned long*)GetProcAddress(HMODULE(handle), "__ptypes_version"); #else const char* libname = "libptypes.so.20"; handle = dlopen(libname, RTLD_LAZY); if (handle == 0) { printf("%s\n", dlerror()); return 3; } pversion = (unsigned long*)dlsym(handle, "__ptypes_version"); #endif if (pversion == NULL) { printf("Couldn't determine the version number of %s\n", libname); exitcode = 1; } else { printf("Found %s, version: %ld.%ld.%ld\n", libname, (*pversion) >> 16, ((*pversion) >> 8) & 0xff, (*pversion) & 0xff); if (*pversion < required) { printf("Need version %ld.%ld.%ld or later\n", required >> 16, (required >> 8) & 0xff, required & 0xff); exitcode = 2; } } #ifdef WIN32 FreeLibrary(HMODULE(handle)); #else dlclose(handle); #endif return exitcode; }
See also: Compiling and Porting


A responsive site is a website that can adapt and look good no matter what device you are using. It is important because you want the content on your site to not only look as good as possible, but for it to be easy for the user to find what they want. On a mobile, a user only requires the core elements and information, compared to a desktop site where more elements can be added because of the screen size.
Mobile first design is when you consider laying out your website for mobile in the first instance and then laying out a desktop version after that. It is important because more and more users are accessing the internet from their phones or tablets, where the screen size is smaller and trying to access a desktop site from a phone is not a pleasant experience. So it is important to design for the smaller screens in the first instance and then add more from there.
Frameworks are pre-made style sheets you can use a base to layout your site. They take out some of the bulk of the work and can let you make something look presentable quickly. They make it easy to make a responsive site, where some of the hard work is already done. The downside is that it can lead to a lot of sites looking similar if you don't add your own custom css, and sometimes does require more fiddling to layout your site at times.
Wireframes are a way to plan and design your site before you start coding it. We use them to be able to layout out each element on the page and start thinking about how it is going to come together. Below you can see my wireframes for this site.
Click on image for larger size.
When implementing my wireframes, I found that some of what I wanted to do, I did not have the know how to do yet. This meant I had to do some research to see if it was possible or not. I had to compromise on some parts, for example I simplified the drop down blog nav bar in favour of a blog page, as trying to implement changes site wide to the nav bar would be too time consuming. The aspects of my wireframes that I found difficult to implement were mainly the layout of the page and getting the elements to stay where I wanted them to.


Eiffel Summit 2019.2
Welcome everyone to the Eiffel Summit 2019.2 at Axis Communications AB in Lund.
Trying to find you way to Lund and Axis Communications AB can be tricky, so we've added a map for your convenience. Enjoy
If you are traveling from far away and coming down to us in southern Sweden, we understand that you might want to have some tips of where you can stay during your visit.
We recommend Elite Hotel here in Lund Ideon (Just a 1 minute walk from Axis Communications HQ).
We will not give you the full agenda. But this is how we are thinking of structuring the days.
We will start the day with Keynotes and then break out into smaller "breakout-presentations" where we can listen to what we're most interested in.
There will be breakfast and lunch served by Axis Communications AB.
Talk about the eiffel community on Github and report on what has been done since last we met.
After this there will be breakout-sessions where we can talk more about the protocol and what we want to do until the next summit
There will be breakfast and lunch served by Axis Communications AB.
Lastly, we will discuss where we will hold Eiffel Summit 2020.
Are you still interested in coming to visit us in Lund?
Please register here
The Eiffel community welcomes you.


human Brain Project
Introduction
The Human Brain Project is an European Research Organization focused on understanding the Human Brain
Using today's new computational power. I am part of this international research group thanks to
my involvement in the 2017 Young Researcher Event and 2017 Researcher Event respectively in Geneva and
Lausanne.
It is the european project to gather data ,models and tools around a unique platform and
leviate the power a supercomputer across europe. It is design to give researchers interested in the field,
information on how to use some parts of the platform and how to create collaboration to run and share
their data and results.
The events I attended to were designed to showcase some researchers work on the platform and to
let us learn the tools together with the researchers that designed them.
My Involvement
During the course of 4 days, I have focused my interest mainly on the NeuroMorphic Platform and the NeuroBotic Platform. The first one is a platform which regroups two supercomputers with radically new and different designs. The first one called SpiNNaker is based in Manchester and the second one called BrainscaleS is based in Heideberg. In different they are creating new chip design to allow for ultra fast, large scale brain simulation. I gained now the ability to connect and run simulation on those computers.
The NRP is a simulation interface using gazebo that allows to simulate any physical environment and integrate
any physical objects : houses, tables, balls, rats, robots, etc..
It allows for many ways to connect your simulated animals/robots to the HBP supercomputers -making it controllable by
spiking neural networks- or any other scripts and Machine Learning interfaces. Removing the need to
test complex Neural Networks on MNIST data or having to create robots to test it.
It transforms a tedious process of creating the robots, developing the right controls and uploading/connecting the
algorithm.
A video of the system is given here :


This is a model being developed by Mike Dawson and Russell Standish to model the behaviour of jellyfish in a number of lakes on the island of Palau. Jellyfish are photosynthetic animals, so have have a preference for the sun and avoiding shadows. In this model, the jellyfish are represented by agents that have a position and velocity. If the jellyfish moves into shadow, or bumps into the side of the lake, it will reverse its direction. From time to time, the jellyfish will change direction and speed. The random generators governing these are selectable at runtime through the experimental script. Also, jellyfish do bump into each other. In the model display, a jellyfish will flash green if it bumps into another one.
To run the jellyfish model, run the jellyfish.tcl script (located in the models directory), specifying the lake as an argument, eg:
jellyfish.tcl lakes/OTM
You can choose whether to compile the 2D version of the model or the
3D version, by (not) defining the preprocessor flag
THREE_D
(see Makefile).
The lake itself is represented by a Tk pixmap, with the blue component representing water. The lake shapes were scanned into a GIF file, and edited with a run-of-the-mill paint program to produce the lakes.
Visualising the lake involved creating a Tk canvas widget, displaying the lake image in it, then overlaying it with shadow lines extending from the pixels lying on the boundary, and finally representing the jellyfish with arrow symbols (to indicate position and velocity).
This model illustrates the use of probes. Mouse clicks in the canvas region are bound to a short method that determines which agent is closest to the mouse position. It then colours that agent red (for tracking purposes), creates a TCL_obj representing that agent, and returns the name back to TCL. TCL then calls the object browser (§6.5) on that TCL_obj. In all, 14 lines of C++ code, and 3 lines of TCL code. The result is very effective.
The jellyfish model is written to be run in parallel using Graphcode. The strategy is effectively a particle-in-cell method. The lake is subdivided into a Cartesion grid of cells, and each Jellyfish only needs to consult the cell that it is in, as well as neighbouring cells to determine if it will collide with any other jellyfish.


The Quantum Resistant Ledger
-
Visionary SecurityQRL is the first industrial implementation to utilize IETF specified XMSS; a hash-based, forward secure signature scheme with minimal security assumptions and reusable addresses.read more
-
Developer FriendlyExtensive tools, documentation and a rich API gives the tools to build anything, today, on an industrial grade platform that will survive tomorrow.read more
-
User OrientedA full suite of end-user products designed with the end user in mind: from integrations with hardware wallets to mobile applications.read more
Partners
See All Partners
{{ .Param "position" }}
The focal point of discussion
Featured in
Plus all our academic citations read more
Read more
Recent news and updates
{{ .Title }}
{{ $t := .Site.AllPages }} {{ range .Params.categories }} {{ $linked := newScratch }} {{ $linked.Set "linked" false }} {{ $a := . }} {{ range $t }} {{ if eq .Params.tagName $a }} {{ $a }} {{ $linked.Set "linked" true }} {{ end }} {{end}} {{ if eq ($linked.Get "linked") false }} {{ . }} {{ end }} {{ end }}
{{ .Summary }}
{{ .Title }}
{{ $t := .Site.AllPages }} {{ range .Params.categories }} {{ $linked := newScratch }} {{ $linked.Set "linked" false }} {{ $a := . }} {{ range $t }} {{ if eq .Params.tagName $a }} {{ $a }} {{ $linked.Set "linked" true }} {{ end }} {{end}} {{ if eq ($linked.Get "linked") false }} {{ . }} {{ end }} {{ end }}
{{ .Summary }}
read moreFollow us
Secure now and from attacks using quantum-computers in the future.
QRL is the first industrial implementation to utilize IETF specified XMSS; a hash-based, forward secure signature scheme with minimal security assumptions and reusable addresses that comes with NIST approval
An extensible address format with quantum security built in from the genesis block.
An open source, code-base with implementation verified by third-party audits fromred4sec and x41 D-sec.
Development of enQlave, bringing QRL technology to the Ethereum platform
PQ proof-of-stake consensus
Easy to secure smart-contracts
Ephemeral messaging ultilising Dilithium and Kyber
Expanding QRL technology to secure other digital assets
A full suite of user-facing applications make interacting with the QRL blockchain and digital assets a breeze.
Our downloads page has products for Desktop (Windows, Mac, Linux), Mobile (iOS, Android) and the web
Hardware wallet support with Ledger Nano S & X
Just a click away is helpful documentation accompanied by a supportive community and email assistance 24/7 at support@theqrl.org.


Genesis 19:10
But the men put forth their hand, and pulled Lot into the house to them, and shut to the door.


|
iSensor-SPI-Buffer
1.15
Firmware for the iSensor-SPI-Buffer board to enable full throughput buffered data capture on Analog Devices IMUs
|
Header file for iSensor-SPI-Buffer script module (loaded from SD card) More...
Go to the source code of this file.
Data Structures | |
| struct | script |
Macros | |
| #define | BUF_BASE_ADDR 8 |
| #define | BUF_DATA_BASE_ADDR 16 |
| #define | STREAM_BUF_SIZE 512 |
Enumerations | |
| enum | command { read, write, delim, echo, readbuf, stream, freset, cmd, status, cnt, about, uptime, help, sleep, loop, endloop, invalid } |
Header file for iSensor-SPI-Buffer script module (loaded from SD card)
Copyright (c) Analog Devices Inc, 2020 All Rights Reserved.
| #define BUF_BASE_ADDR 8 |
Buffer output base address (on page 255)
| #define BUF_DATA_BASE_ADDR 16 |
Buffer output data base address (on page 255)
| #define STREAM_BUF_SIZE 512 |
Stream buffer size
| enum command |
Available script commands


Dark and dull skin can be caused by overexposure to the sun, environmental pollution, a medical condition, dry skin, stress, poor lifestyle choices, and prolonged use of chemical-based cosmetic products. Many people work hard to achieve fair and flawless skin. The market is flooded with skin-lightening creams and lotions. But such products have harmful chemicals that can ultimately damage your skin. Oftentimes the products are expensive, too.You can save yourself some time and money by using natural remedies that will effectively brighten and lighten your skin complexion.
Yogurt, a by-product of milk, has many nutrients that are good for the skin. It also contains lactic acid that has bleaching properties. The following remedies are suitable for all skin types.
a) Gently rub plain yogurt onto your skin. Leave it on for a few minutes and then wash it off with lukewarm water. Do this once daily for several weeks to notice a significant change in your complexion.
b) Alternatively, mix one tablespoon of fresh yogurt with one-half tablespoon of honey. Apply the mixture on your face and neck. Leave it on for 10 to 15 minutes and then wash it off with water. Do this daily to improve your skin tone and complexion.
c) You can also add a little lemon juice and some oatmeal to yogurt to make a thick paste, and apply it as a face mask. This remedy will also help keep your skin supple and moisturized.
The most important ingredient in skin care is vitamin C, which you can get in abundance from oranges. Plus, oranges have bleaching properties that can lighten your skin tone.
It has been found that regular consumption of fresh orange juice can greatly improve the overall texture of your skin as well as its suppleness. To lighten your skin, oranges can be used in two different ways.
- Combine two tablespoons of orange juice and a pinch of powdered turmeric. Apply this mixture on your face and neck before going to bed. You can also apply it on your hands and legs. Wash it off after 20 to 30 minutes. Do this daily.
- Grind dried orange peels into powder. Mix one tablespoon of the powdered peels with one tablespoon of plain yogurt to make a paste. Apply the paste on your skin and leave it on for 15 to 20 minutes. Rinse it off with water. This will help lighten spots and other marks on your face. Do this once or twice a week, but no more than that.
Gram flour is one of the best ingredients for people who wish to lighten their skin complexion.
It contains various nutrients that help keep your skin very healthy. Using the remedy below every other day will help remove excess oil from your skin while retaining your skin's natural moisture.
- Mix some gram flour with a small amount of water or rose water to make a thick paste.
- Apply it on your face, hands, and legs.
- Leave it on until the paste dries. Then wash it off with water.
Honey helps bleach skin while also acting as a moisturizing agent. Dry skin is a common factor that contributes to an uneven skin tone. Honey also has antibacterial properties that can help fade age spots and acne scars.
- Apply pure honey to your face, leave it on for a few minutes and then wash it off with lukewarm water. This simple remedy will help remove dead skin cells, making your skin appear brighter and fresher than before. Do this once daily.
- To make a skin-lightening mask, combine one teaspoon each of honey and lemon juice, one tablespoon of powdered milk, and one-half teaspoon of almond oil. Mix them well and apply it gently on the skin. Leave it on for 10 to15 minutes and then wash it off with cold water. Do this every other day.
The acidic property in lemons works as a natural bleaching agent for the skin and the high amount of vitamin C in them encourages new cell growth. Also, lemons have antioxidants that are very good for skin complexion.
- Dip a cotton ball in freshly squeezed lemon juice and apply it directly on your face. You can even rub a cut lemon directly over the affected skin and allow the juice to stick to the skin.  Do this once daily. This simple remedy will surely lighten your skin complexion and can also prevent the development of scars on your face.
- Mix three teaspoons of lemon juice and one teaspoon of turmeric powder. Apply this mixture on the skin and leave it on for half an hour. Wash it off with water. Do this once daily.
- Alternatively, mix together one teaspoon each of lemon juice, powdered milk and honey. Apply it on your skin and leave it on for 15 to 20 minutes before rinsing it off. Do this daily or every other day.
Note: When using these remedies, be sure there are no open wounds on your skin. The acidic nature of lemon juice can cause pain in open wounds. Also, lemon juice may not be suitable for sensitive skin or if you are allergic to lemons.
Aloe vera can alleviate hyperpigmentation and restore your skin's original color. Hyperpigmentation is one of the main causes of uneven skin tone.
Also, the cooling effect of aloe vera helps regenerate new cells and rebuild damaged tissue, which is important for healthy skin. This simple remedy using aloe vera gel can lighten dark spots and improve your overall skin complexion.
- Cut the outer layers of an aloe vera leaf. Squeeze out the thick, jelly-like substance.
- Apply the gel thoroughly on your skin.
- Leave it on for about 30 minutes, and then wash it off with water.
- Do this at least twice daily for two weeks.
If you do not have an aloe vera plant, you can buy aloe vera gel in the market.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque vestibulum nibh eget justo dapibus eu porttitor purus hendrerit.
Lorem ipsum dolor sit amet Consectetur adipiscing elituisque


Demo
This demo is built with ThreeJS. The information displayed here came from the
Marvel API. And it is only
used for demo purposes. This demonstration is not actually calling the Marvel API, instead it uses the JSON
created for the presentation.
How to:
- Select one or multiple characters.
- Press a to accept the selection and show the Add Ons and their price.
- Press b to cancel the selection and/or go back from the Add Ons list to the characters view.
- Pres m to go full screen and f11 to cancel.
×


JavaScript and its relationship to HTML and CSS.
Seeing how JS interacts with html and css has opened up a whole new paradigm of understanding about the web for me. Most things you want to do as a user of a website, have JS woven in and around them. An analogy to a house; HTML is the structure and definition of the website, like the framing of the house defines its structure and different rooms. CSS styles and positions what users see on the page. This is like the interior and exterior style of the house. JS is needed to capture and respond to user interaction. Stretching the house analogy a bit ... you would need Javascript to take a shower, cool a meal, watch netflix, weed the garden, paint a wall.
Control flow and loops.
Control flows are how decisions are made in code. Typically decisions are done at a simple-enough level where the result can be true or false. e.g. if the checkbox about receiving marketing material is checked, email the material to the customer. If it isn't, don't email them. When these small decisions need to be made about more than one or two items, loops come in very handy. They are especially useful where you don't know how many items you have. You can use a loop to check your entire customer database, identify those who want marketing emails, and send them another one.
The DOM and how to interact with it.
The DOM doesn't fit into the earlier house analogy :(. The DOM is an object representation of the site's html and css, that JS can use to reach through and change the site's html and css in the browser.
Object data access | difference | Array data access.
Data in arrays can only be accessed by using the index of each item in the array. An index is like a seat number in a stadium. You can only access whoever or whatever is in the seat, using the seat number. Data in objects can be access by any of the properties of the object. In our stadium example, we can acces or identify a person using anything we know about them e.g. their first name, height, t-shirt colour etc.
Functions and why they are useful.
Functions are a great way to put useful pieces of code into a single place. The benefits of this are firstly, that they can be used by other parts of the code base without having to be written from scratch. Secondly, if you find you need to make a change due a mistake or new information, you can change the function once and all places in the codebase that use the funciton will get the benefit of your change.


| PWG Boulder Colorado Meeting Details |
1394 Printing: October 27&28
IPP: October 29&30
Other Projects: October 31
| Meeting
Location: Hotel Boulderado 2115 13th Street Boulder, Colorado 80302<PHONE_NUMBER> |
The hotel rate is $104
(standard) or $114 (deluxe) per night.
Ask for the IBM or PWG rate at this hotels.
Deadline for reservations is October 3rd, 1997
All attendees are responsible for making their own hotel
reservations.
There will be a meeting charge in the range of $40 - $45; participants are responsible for their own lunch.
YOU MUST RSVP TO Harry Lewis<EMAIL_ADDRESS>WITH THE FOLLOWING INFORMATION:
Additional Information about Boulder and the Boulderado:
The Hotel Boulderado, established in 1909, is a historic landmark with a "historic" section and a more modern wing. You may want to request your preference although I can't guarantee it will be available. Standard rooms tend to be a tad smaller in "historic" but each is unique. Deluxe rooms in the historic section are quite nice.
Boulder is located appx. 50 minutes from the Denver International Airport. Free parking is available at the Boulderado for guests. From DIA, take Pena Blvd south 12 miles and merge right onto I-70 West. Take I-70 to I-270 (right) and head northwest to US 36 (right). When you reach Boulder proceed left onto Canyon Blvd (3rd light). Take Canyon to 13th (5th light) and turn right (north). Hotel Boulderado is at the corner of 13th and Spruce.
You can also catch a shuttle called the "Airporter" which leaves on the hour from DIA. $14 one way - no reservation necessary. Check in with baggage, on DIA baggage level 5 across from the Hertz counter. It leaves every hr. on the 1/2 hr from the hotel for the return. Reservations recommended but not necessary. The Boulderado is a major stop. Travel time via shuttle is appx 70 minutes.
The Boulderado is located in the heart of Boulder one block from "Pearl Street", an outdoor mall with shops, restaurants, etc. Forgoing the automobile is quite feasible.
For more information on getting from DIA to Boulder visit http://amath-www.colorado.edu/appm/department/limos.html


Make me red!
I am a paragraph I should be blue, Helvetica, size 16px.
- This is an unordered list.
- All items in this list should have a yellow background.
- Just the items though - not the whole list!
Make me green on an orange background
I am a paragraph I should be blue, Helvetica, size 16px.
- -This is an ordered list.
- -All items in this list should have a teal background.
- -Just the items thought - not the whole list!


Why?
Getting Started
Pages
Scripts
Stylesheets
Context
Frontmatter
Templates
Helpers
Images
Datafiles
Clean URLs
Deployment
{{{body}}}


Class ConstructAction.GeoObjectInput
Defines an input object for an action derived from ConstructAction. This input object extpects the user to click on a curve (IGeoObject that also implements ICurve. Pressing enter or TAB or clicking the mouse proceeds to the next input object.
Inherited Members
Namespace: CADability.Actions
Assembly: CADability.dll
Syntax
public class GeoObjectInput : ConstructAction.InputObject, ConstructAction.IInputObject
Constructors
| Improve this Doc View SourceGeoObjectInput(String)
Creates a GeoObjectInput object.
Declaration
public GeoObjectInput(string resourceId)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | resourceId | the resource id to specify a string from the StringTable. ResourceId+".Label": the Label left of the edit box. ResourceId+".ShortInfo": a short tooltip text ResourceId+"DetailedInfo": a longer tooltip text. |
Fields
| Improve this Doc View SourcecurrentMousePoint
Declaration
public Point currentMousePoint
Field Value
| Type | Description |
|---|---|
| System.Drawing.Point |
EdgesOnly
Declaration
public bool EdgesOnly
Field Value
| Type | Description |
|---|---|
| System.Boolean |
FacesOnly
Declaration
public bool FacesOnly
Field Value
| Type | Description |
|---|---|
| System.Boolean |
ModifiableOnly
true: only curves that may be modified are yielded false: any kind of curves curves are yielded
Declaration
public bool ModifiableOnly
Field Value
| Type | Description |
|---|---|
| System.Boolean |
MultipleInput
Declaration
public bool MultipleInput
Field Value
| Type | Description |
|---|---|
| System.Boolean |
Properties
| Improve this Doc View SourceDecomposed
true: only decomposed curves are yielded, false: also path objects, that consist of several subcurves are yielded
Declaration
public bool Decomposed { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
FailCursor
Sets the cursor that will be displayed when no curve is hit
Declaration
public string FailCursor { set; }
Property Value
| Type | Description |
|---|---|
| System.String |
ForwardMouseInputTo
Mouse input should be forwarded to another input object and only processed by this input, when the other input object is fixed.
Declaration
public object ForwardMouseInputTo { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Object |
HitCursor
Sets the cursor that will be displayed when a curve is hit
Declaration
public string HitCursor { set; }
Property Value
| Type | Description |
|---|---|
| System.String |
Methods
| Improve this Doc View SourceAdjustHighlight()
Declaration
protected override void AdjustHighlight()
Overrides
| Improve this Doc View SourceGetGeoObjects()
Gets the currently selected curves.
Declaration
public IGeoObject[] GetGeoObjects()
Returns
| Type | Description |
|---|---|
| IGeoObject[] |
SetGeoObject(IGeoObject[], IGeoObject)
Forces the given geoObjects to be displayed
Declaration
public void SetGeoObject(IGeoObject[] GeoObjects, IGeoObject selectedGeoObject)
Parameters
| Type | Name | Description |
|---|---|---|
| IGeoObject[] | GeoObjects | array of GeoObjects |
| IGeoObject | selectedGeoObject | currently selected GeoObject |
SetSelectedGeoObject(IGeoObject)
Set the selected GeoObject
Declaration
public void SetSelectedGeoObject(IGeoObject geoObject)
Parameters
| Type | Name | Description |
|---|---|---|
| IGeoObject | geoObject |
Events
| Improve this Doc View SourceGeoObjectSelectionChangedEvent
Provide a method here to react on the user selecting a different curve
Declaration
public event ConstructAction.GeoObjectInput.GeoObjectSelectionChangedDelegate GeoObjectSelectionChangedEvent
Event Type
| Type | Description |
|---|---|
| ConstructAction.GeoObjectInput.GeoObjectSelectionChangedDelegate |
MouseOverGeoObjectsEvent
Provide a method here to react on the user moving the cursor over GeoObjects.
Declaration
public event ConstructAction.GeoObjectInput.MouseOverGeoObjectsDelegate MouseOverGeoObjectsEvent
Event Type
| Type | Description |
|---|---|
| ConstructAction.GeoObjectInput.MouseOverGeoObjectsDelegate |


Online version can be found here:
https://ay1920s2-cs2103t-f10-2.github.io/main/UserGuide.html
By: CS2103T-F10-2
Since: Feb 2020
Licence: MIT
- 1. Introduction
- 2. Quick Start
- 3. Features
- 3.1. Viewing help :
help
- 3.2. Adding an internship company:
add
- 3.3. Listing all internship
companies :
list
- 3.4. Editing an internship company :
edit
- 3.5. Locating an internship
company by name:
find
- 3.6. Searching internship
companies by Tag :
search
- 3.7. Listing
contacts of all internship companies :
contacts
- 3.8. Deleting an internship
company :
delete
- 3.9. Clearing all entries :
clear
- 3.10. Getting deadline reminders :
reminder
- 3.11. Rating internship companies :
rate
- 3.12. Exiting the program :
exit
- 3.13. Saving the data
- 3.14. Encrypting data files
[coming in v2.0]
- 3.1. Viewing help :
- 4. FAQ
- 5. Command Summary
1. Introduction
Internship Diary is an application to assist students in managing their internship applications. The Internship Diary will be able to help you in tracking, tagging and reviewing all your internship applications. Additionally, Internship Diary is optimized for those who prefer to work with a Command Line Interface (CLI), while still having the benefits of a Graphical User Interface (GUI).
2. Quick Start
-
Ensure you have Java
11
or above installed in your Computer. -
Download the latest
internshipdiary.jar
code at "https://github.com/AY1920S2-CS2103T-F10-2/main/releases". -
Copy the file to the folder you want to use as the home folder for your Address Book.
-
Double-click the file to start the app. The GUI should appear in a few seconds.
-
Type the command in the command box and press Enter to execute it.
e.g. typinghelp
and pressing Enter will open the help window. -
Refer to Section 3, “Features” for details of each command.
3. Features
Command Format
-
Words in
UPPER_CASE
are the parameters to be supplied by the user e.g. inadd n/COMPANY_NAME
,COMPANY_NAME
is a parameter which can be used asadd n/Google
. -
Items in square brackets are optional e.g
n/COMPANY_NAME [t/TAG]
can be used asn/Google t/good
or asn/Google
. -
Items with
…
after them can be used multiple times including zero times e.g.[t/TAG]…
can be used as
(i.e. 0 times),t/friend
,t/friend t/family
etc. -
Parameters can be in any order e.g. if the command specifies
s/NEW p/POSITION
,p/COMPANY_NAME
is also acceptable.
3.1. Viewing
help : help
Format: help
3.2.
Adding an internship company: add
Adds a company to the internship diary
Format: add n/COMPANY_NAME s/STATUS p/POSITION [t/TAG]…
| A company can have any number of tags (including 0) |
Examples:
-
add n/Google s/new p/Software Engineer
-
add n/Microsoft s/new p/Software Engineer
3.3.
Listing all internship companies : list
Shows a list of all internship companies that you have applied to. Sorted by alphabetical
order.
Format: list
3.4.
Editing an internship company : edit
Edits an internship company in the internship diary.
Format: edit INDEX [n/COMPANY_NAME] [s/STATUS] [p/POSITION] [t/TAG]…
Examples:
-
edit 1 s/new p/Product Management
Edits the status and position of the internship company to benew
andProduct Management
respectively.
3.5.
Locating an internship company by name: find
Find companies whose names contain any of the given keywords.
Format: find KEYWORD [MORE_KEYWORDS]
Examples:
-
find Google
ReturnsGoogle
andGoogle Deepmind
3.6.
Searching internship companies by Tag : search
Search for internship companies based on their tag.
Format: search t/TAG
Examples:
-
search NEW
Returns companies that are tagged as New.
3.7.
Listing contacts of all internship companies : contacts
List all the contacts from all internship companies.
Format: contacts
3.8.
Deleting an internship company : delete
Deletes the specified internship company from the diary.
Format: delete INDEX
Examples:
-
list
delete 2
Deletes the 2nd internship company in the list. -
find Google
delete 1
Deletes the 1st internship company in the results of thefind
command.
3.9.
Clearing all entries : clear
Clears all entries from the Internship Diary.
Format: clear
3.10.
Getting deadline reminders : reminder
Lists all deadlines/appointments from the Internship Diary in the next 7 days.
Format: reminder
3.11.
Rating internship companies : rate
Rates the specified internship company from the diary.
Format: rate INDEX RATING
Examples:
-
list
rate 2 10
Rates the 2nd internship company in the list with a score of 10. -
find Google
rate 1 7
Rates the 1st internship company in the results of the find command with a score of 7.
3.12.
Exiting the program : exit
Exits the program.
Format: exit
3.13. Saving the data
Internship Diary is saved in the hard disk automatically after any command that changes the data.
There is no need to save manually.
3.14.
Encrypting data files [coming in v2.0]
{explain how the user can enable/disable data encryption}
4. FAQ
Q: How do I transfer my data to another Computer?
A: Install the app in the other computer and overwrite the empty data file it
creates with the file that contains the data of your previous Internship Diary folder.
5. Command Summary
-
Help :
help
-
Add
add n/COMPANY_NAME s/STATUS p/POSITION [t/TAG]…
e.g.add n/Google s/new p/Software Engineer
-
List :
list
-
Edit :
edit INDEX [n/COMPANY_NAME] [s/STATUS] [p/POSITION] [t/TAG]…
e.g.edit 2 n/Google s/Shortlisted p/Product Management
-
Find :
find KEYWORD [MORE_KEYWORDS]
e.g.find James Jake
-
Search :
search t/TAG
e.g.search t/Product Management
-
Contacts :
contacts
-
Delete :
delete INDEX
e.g.delete 3
-
Clear :
clear
-
Reminder :
reminder
-
Rate :
rate INDEX RATING
e.g.rate 2 5
-
Exit :
exit