Welcome to the EU VAT Rates Web Service
This static web service provides a simple to consume JSON document, containing a list of VAT rates per country in the European Union. It can be used to automatically grab the right VAT right to comply with the 2015 EU VAT Changes. As it's a free service, use is at your own risk. This project is licensed under the MIT License.
You can contribute to this service on Github! Please subscribe to the newsletter to receive important information about the service (such as VAT or format changes).
How it works
Simply load https://euvatrates.com/rates.json
(Click!) and use the data to apply the proper VAT rates in your cart or checkout system.
Considering these VAT rates rarely change, cache the data on your system. If you repeatedly hit the server and steal up the bandwidth, you risk getting blocked from accessing this free service. Alternatively, if you'd like to self-host the rates.json file, it's possible to clone the repository or to install it into your project with Bower: bower install euvatrates.com
The data structure is pretty self explanatory JSON. There's a last_updated
ISO 8601 timestamp in the root that tells you when the last VAT change (or bug fix) was made, and there is a disclaimer. The rates
object contains all the different rates per country, based on its 2 character country code.
The rate object contains the country name, and a couple of different tax rates that exist in the country. The currently returned rate types are standard_rate
, reduced_rate
, reduced_rate_alt
, super_reduced_rate
and parking_rate
. The values are always numeric (with decimals), or a boolean false
if the rate is not used in the country.
Which VAT rate you need to use, depends on the type of product or service you are providing and to whom you are providing it. It is best to consult someone knowledgeable, like your accountant on that. This official EU Document also contains a table indicating what rates to apply. Exceptions or exemptions may apply per country.
For convenience, the United Kingdom and Greece are included both by their EU country code (UK and EL), as well as their ISO country code (GB and GR). The ISO duplicates contain a iso_duplicate_of
element referring to the EU country code, and the originals contain a iso_duplicate
element that contains the ISO Country code.
Subscribe to Updates
Receive an email with important news, such as VAT rate changes and changes to the format or available features.
Recent Changes
- [2016-01-01] Updated Romanian VAT rate, and re-ordered countries in the list to be alphabetical-ish (#5)
- [2015-09-21] Updated VAT rate for Greece (#4)
- [2015-01-02] Update Luxembourg VAT rates (#3, source)
- [2014-12-30]
last_updated
timestamp is now formatted according to ISO 8601 - [2014-12-30] Include
GB
andGR
rates elements as duplicates of theUK
andEL
elements to deal with how differences in how the EU and ISO hav determined country codes. The duplicates (the ISO representation: GB and GR) contain a newiso_duplicate_of
element referring to the EU-style country code. The originals (the EU representation: UK and EL) contain a newiso_duplicate
element, referring to the ISO-style country code. - [2014-12-30] Remove "The" from "The Netherlands" again (#1)
- [2014-11-07] Fix typo in Finland, add "The" to "The Netherlands"


|
|
||||||
Go to the source code of this file.
Definition in file TeleoStepperDefines.h.
|
|
Definition at line 39 of file TeleoStepperDefines.h. |
|
|
Definition at line 62 of file TeleoStepperDefines.h. |
|
|
Definition at line 50 of file TeleoStepperDefines.h. |
|
|
Definition at line 45 of file TeleoStepperDefines.h. |
|
|
Definition at line 46 of file TeleoStepperDefines.h. |
|
|
Definition at line 58 of file TeleoStepperDefines.h. |
|
|
Definition at line 43 of file TeleoStepperDefines.h. |
|
|
Definition at line 54 of file TeleoStepperDefines.h. |
|
|
Definition at line 35 of file TeleoStepperDefines.h. |
|
|
Definition at line 31 of file TeleoStepperDefines.h. |
|
|
Definition at line 38 of file TeleoStepperDefines.h. |
|
|
Definition at line 61 of file TeleoStepperDefines.h. |
|
|
Definition at line 49 of file TeleoStepperDefines.h. |
|
|
Definition at line 57 of file TeleoStepperDefines.h. |
|
|
Definition at line 42 of file TeleoStepperDefines.h. |
|
|
Definition at line 53 of file TeleoStepperDefines.h. |
|
|
Definition at line 34 of file TeleoStepperDefines.h. |
|
|
Definition at line 30 of file TeleoStepperDefines.h. |
|
|
Definition at line 37 of file TeleoStepperDefines.h. |
|
|
Definition at line 60 of file TeleoStepperDefines.h. |
|
|
Definition at line 48 of file TeleoStepperDefines.h. |
|
|
Definition at line 56 of file TeleoStepperDefines.h. |
|
|
Definition at line 41 of file TeleoStepperDefines.h. |
|
|
Definition at line 52 of file TeleoStepperDefines.h. |
|
|
Definition at line 33 of file TeleoStepperDefines.h. |
|
|
Definition at line 29 of file TeleoStepperDefines.h. |
|
|
Definition at line 23 of file TeleoStepperDefines.h. |
|
|
Definition at line 25 of file TeleoStepperDefines.h. |
|
|
Definition at line 27 of file TeleoStepperDefines.h. |
|
|
Definition at line 19 of file TeleoStepperDefines.h. |
|
|
Definition at line 26 of file TeleoStepperDefines.h. |
|
|
Definition at line 13 of file TeleoStepperDefines.h. |
|
|
Definition at line 16 of file TeleoStepperDefines.h. |
|
|
Definition at line 17 of file TeleoStepperDefines.h. |
|
|
Definition at line 18 of file TeleoStepperDefines.h. |
|
|
Definition at line 15 of file TeleoStepperDefines.h. |
|
|
Definition at line 20 of file TeleoStepperDefines.h. |
|
|
Definition at line 21 of file TeleoStepperDefines.h. |
|
|
Definition at line 24 of file TeleoStepperDefines.h. |
|
|
Definition at line 14 of file TeleoStepperDefines.h. |
|
|
Definition at line 22 of file TeleoStepperDefines.h. |
|
copyright © 2002, 2003 MakingThings LLC |


Preparation time
over 2 hours
Cooking time
1 to 2 hours
Serves
Makes 20 savoury or 12 sweet pastries
Dietary
This recipe for Danish pastry can be used for a choice of fillings - savoury cheese and mushroom or sweet apple and chocolate. The amount of pastry in this recipe makes enough for 20 mushroom pastries or 12 sweet ones.
Roll out the butter between two pieces of greaseproof paper into a rectangle about 15x30cm/6x12in and 8mm (third of an inch) thick. Place in the fridge for two hours.
Meanwhile, to make the pastry dough, place the flour, salt, sugar and yeast in a large mixing bowl (making sure the yeast does not come into direct contact with the salt). Mix in the egg and most of the milk until you have a soft dough. Add a dash more milk if there are still dry flakes in the bowl.
Tip the dough onto a lightly floured surface and knead well for 10 minutes, or until it can be stretched with your hands. (It will be slightly firmer than bread dough.) Wrap the dough in clingfilm and chill in the fridge for a couple of hours at least.
Once chilled roll the dough out onto a floured work surface and roll it into a 50x20cm/20x8in rectangle. Lay the chilled butter over two-thirds of the dough. Bring the unbuttered section into the centre, then fold over the covered top. You now have three layers of dough and two layers of butter. Pinch the edges together slightly to seal in the butter. Return the dough to the fridge to chill for 30 minutes.
Once chilled, give the dough a quarter turn and roll out the dough into a long rectangle again and repeat the folding process. Refrigerate for 30 minutes again. Repeat this process twice more then wrap the dough in clingfilm and leave it to rest overnight.
For the emmental, mushroom and onion pastry filling, in a hot pan, add a little olive oil and fry the onions for a couple of minutes. Add the mushrooms and fry gently for five minutes, or until they are soft.
Remove from the heat and season with salt and pepper and allow to cool completely.
Line a baking tray with baking parchment. Take the chilled dough from the fridge. Cut the dough in half and on a lightly floured surface, roll one part into a rectangle about 25x35cm/10x14in, and a little less than a centimetre thick.
With the long side of the pastry in front of you, spread half of the cool mushroom and onion mix over the pastry and top with the thin slices of cheese.
You are now going to roll the pastry towards you into a tight Swiss roll. So take the two furthest corners and fold them over the edge. Pull the dough gently upwards each time you roll it to keep the pastry tight.
 Gently roll it back and forth to seal the edges.
Repeat with the second piece of dough and the rest of the filling.
Cut each roll into 10 slices to create 10 individual pastries and arrange on one or two baking trays lined with baking parchment.
Cover the pastries on the baking tray in clingfilm, or place the tray in a large plastic bag, and leave to rise for one hour.
Preheat a non-fan oven to 180C/350F/Gas 4
Uncover the pastries, brush them with egg wash and grate some grated emmental on top of each one.
Bake the pastries in the pre-heated non-fan oven for around 20 minutes, or until golden-brown.

For the sweet pastries, first make the chocolate crème patissière. Beat the eggs and sugar together in a bowl, then add the cocoa and flour, and whisk well.
In a heavy-based saucepan, heat the milk, cream and calvados until it reaches a simmer, then slowly pour the mixture onto the eggs, whisking as you pour. Return the mixture to the pan and heat gently, stirring constantly, until it has thickened and come to the boil. Remove from the heat and stir in the broken chocolate and vanilla. Allow the chocolate to melt and stir to mix, then leave to cool covered with a disc of baking parchment to stop a skin forming.
To make the apple purée, heat the apples with a splash of water and the caster sugar for 10 minutes, or until the apples are softened and broken down to a purée. (If needed blend the apple mixture in a food processor for one minute into a smooth purée, then pass it through a sieve.)
Put the apple purée into a bowl and allow to cool completely.
Take the chilled dough and roll it out on a lightly floured surface to just under a centimetre thick and cut it into 12cm/4½in squares. You should get 8-12 equally sized squares.
Spoon one tablespoon of the crème patissière onto the middle of each of the pastry squares and spoon one tablespoon of the apple purée next to it. Fold the pastry into triangles, and press the edges together firmly to seal.
Arrange the pastries well-spaced apart on one or two baking trays lined with baking parchment. Cover with clingfilm, or place in a large plastic bag, and leave to rise for 1-2 hours.
Preheat the oven to 180C/350F/Gas 4.
Pierce the top of the triangles with a sharp knife to let the steam out and brush the triangles with egg wash.
Bake on a lined tray for 15-20 minutes, or until golden-brown. Cool them on a wire rack.


System Architect Picture "Temporal Resource For Activity"
Parent Diagram:
Actual Resource For Activity
(UML Class)


This dialog is used to administer the parameters and asymmetric keys for elliptic curves that are stored in CrypTool. If the EC keys option field is checked, a list of elliptic curve key pairs stored is displayed. Pick the key pair you are interested in and the following options will be enabled:
With Show public parameters it is possible to see the domain parameters (see Elliptic Curves, Elliptic Curves and Cryptography section) and the public key held for this key pair. The values shown are display-only and cannot be altered.
The Show all parameters option requires entry of the PIN that was originally entered when the key pair was generated. As well as the domain parameters and the public key, the private key is also displayed. Once again, these entries cannot be altered.
The Delete option allows you to delete keys that are no longer used. To do this you will need the PIN that was used when the key pair was originally created.


Easy Shoppers
Products
Ice Cream
$50
Cake
$500
jelly
$30
Donuts
$150
lava cake
$70
Pastry
$20
Candy
$15
Cart Items
Name
Description
Quantity
Price
Recipt
Cutomer Name -
Name
Quantity
Price
Sub Total
GST @ 13%
Grand Total


General
Uploads
{{selectedService.name}}
Launch at Startup
Launches Pussh at computer startup (requires application restart)
Check for Updates
Upload Service
Filename Prefix
Other Settings
Automatically Scale High DPI Screenshots
Move to Trash After Upload
Open in Browser After Upload
Randomize Filename
Random Name Length
Notifications
System Notification on Upload
Sound Notification on Upload
No settings configurable


Entertainment
Entertainment consists of any activity which provides a diversion or permits people to amuse themselves in their leisure time. Entertainment is generally passive, such as watching opera or a movie.
Linux
Linux is a computer operating system which is based on free and open source software. Although many different varieties of Linux exist
Sports
Sport is all forms of physical activity which, through casual or organised participation, aim to use, maintain or improve physical fitness and provide entertainment to participants.
Games
games are created by one or more game developers, often in conjunction with other specialists (such as game artists) and either published independently or through a third party publisher.
Technology
Technology is the making, usage and knowledge of tools, techniques, crafts, systems or methods of organization in order to solve a problem or serve some purpose.


Notebooks
Story: Words and sentences (given by Adam Kleinhardt)
Words and sentences (given by Adam Kleinhardt)
Title
Words and sentences (given by Adam Kleinhardt)
Collection
Summary
Words and sentences given by Adam Kleinhardt.
Comments
1) This story contains many notes on the verso pages concerning names of |xam, their genealogies, the names of the places they come from and the names of different groups of |xam (for example, see p.5v or p.12v for the genealogy of Adam Kleinhardt), 2) Notes were added later in August 1870 and September 1873 (see p.5v), 3) Corrections were made at the Breakwater Convict Station on 10 July 1866 (see p.57), 4) This story is found in Book I
Contributors
Date
June & July 1866
Categories
Keywords
vocabulary (|xam) , vocabulary (given by Adam Kleinhardt) , dictionary (given by Adam Kleinhardt) , words and sentences (given by Adam Kleinhardt) , words and sentences (|xam) , personal history (of Adam Kleinhardt) , Adam Kleinhardt (his personal history)
Story Pages
001-066


NFL Insider Has Injury Update For Chiefs WR Tyreek Hill
by Chris RosvoglouAlthough the Kansas City Chiefs won last night against the Los Angeles Chargers, the offense lost All-Pro wideout Tyreek Hill to yet another injury. He left in the first half due to a hamstring issue.
Hill already missed time this season because of a shoulder injury. There’s no question that he’s the second-most important piece on Kansas City’s offense – outside of Patrick Mahomes.
Kansas City is currently on its bye week so it’ll have time to let Hill recover from his injury. But first, the Chiefs have to find out the severity of it.
According to NFL Network insider Mike Garafolo, the Chiefs will have MRI results for Hill in the next day or so since the team came back late from Mexico City.
The Chiefs desperately need Hill down the stretch as they try to lock up the AFC West.
Next up on the schedule for Kansas City is a showdown against Oakland. That game could very well decide which team wins the division.
In the event that Hill misses time yet again, the Chiefs will need Sammy Watkins and Mecole Hardman to step up. They both had strong starts to the season but have been quiet of late.
We’ll know more about Hill’s status in the coming days.


Warning:
JavaScript has been disabled. If you're using Internet Explorer or Microsoft Edge, this page may not work properly due to the absence of support for the HTML5
details
element.
Index of /var/lib/dpkg/status
[packageList]


Established in 2006? Some new text pending...
Please bear with us the site is new and still under construction. If you have questions or concerns feel free to e-mail Brian
Did your lawn look like this one last year? Next year you could be fined $200. Click to read more.
New Neighbors coming soon. Tract 906 across from Willis Tucker Park. Click to read more.
If you are planning any exterior work like painting, landscaping, etc. Please login and fill out the ACC form.


|
Installing and deploying web applications using xml-axis
|
|
|
||||||||
| Contents |
This document describes how to install xml-axis in as unobtrusive of a manner as possible. There will be no editing of configuration files, setting of server classpaths, or the like. Instead, these instructions will rely only on the automatic configuration and isolation that every implementation compliant with the servlet 2.2 specification is required to support. For more details on using Axis, please see the user's guide.
In your servlet installation, you should find a directory into which web applications (webapps) are to be placed. Into this directory copy the webapps/axis directory from the xml-axis distribution. You can actually name this directory anything you want, just be aware that the name you choose will form the basis for the URL by which clients will access your service.
In the directory you just created, you will find a WEB-INF directory. This contains some basic configuration information, but can also be used to contain the dependencies and web services you wish to deploy. This is actually the recommended way to deploy as the servlet engine will then keep each web application isolated from each other. In the WEB-INF directory, you'll find a "lib" directory.
Note: Note that there is no requirement that each webapp or the web server itself use the same xml parsers.
If you got this far, the next step should be simple: In the WEB-INF directory, look for (or create) a "classes" directory.
Again, isolation is preserved. And, by the way, should your services already be packaged into jar files, feel free to drop them into the lib directory instead! Note: If your web service will be making use of the simple authorization handlers provided with xml-axis (this is actually not recommended as these are merely illustrations of how to write a handler than intended for production use), then you will need to copy the corresponding perms.lst and users.lst files into the WEB-INF directory.
This varies on a product by product basis. In many cases it it as simple as double clicking on a startup icon or running a simple command from the command line.
The various classes and jars you have just set up contain a number of interfaces. What remains to be done is to tell the soap and axis servlets how these are to be combined and what is to be exposed. There are a number of ways to do this, for now I'll simply describe one way that is suitable for automation.
Note: You may need to replace localhost with your host name, and 8080 with the port number used by your web server.
This step is optional, but highly recommended. For illustrative purposes, it is presumed that you have installed and deployed the stockquote demo.
Note: Again, you may need to replace localhost with your host name, and 8080 with the port number used by your web server. |
|||||||
|
|
||||||||
|
Copyright © 2001, Apache Software Foundation
|


Dress Shirts Maroon.
Belt, Watch, Pants Shirt Collection.
Shoes, Single Shoes, Foot Wear.
Sleeve shirt - Grey + Free Cufflints.
Medium Neck Tie, Men's Fashion.
Premium Comfortable Shirts.
Premium Comfortable Shirt + Free Cufflints.
Fashion Men's Business Daily Blazer.
Pants Set One Button Slim.


Implementations of {@link com.adaptris.core.Service} and supporting classes that deal with message splitting.


Situated at the head of the 30 mile gulf of Izmir Korfezi. Take particular note of the prohibited areas as these are NATO bases and the rules are strictly enforced.
The water here is generally polluted and swimming is not recomended. Not a particularly attractive city to visit and the chop in the harbour can be uncomfortable. There are however alternative, more pleasant mooring options nearby.
Position 38° 24.2'N, 27° 04.1'E.
For the full details on Turkey Formalities go here.
All the Authorities are based in the commercial harbour, but will normally visit the old harbour to clear yachts in.
There is a choice of several anchorages in Izmir Bay as well as two nice spots further west: Urla and Çesmealti. Both also have city walls where yachts could in theory tie up, but there is never any room.
Yachts can dock in the old harbour in Izmir town as well as at the marina Levant to the SW of the city and at the new marina at Güzelbaçhe, on the southern shore on the approaches to Izmir. Recently the bay has been cleaned of some of the pollution.
The commercial harbour is out of bounds to yachts. In the old harbour, berth stern-to in the NE corner. The holding is good in thick, black mud, but there is often an uncomfortable chop.
Levant Marina is a small independent concern to the SW of the city (38° 24'23.49N, 27° 04'07.66E) located next to the auto ferry stop on the South side of Izmir Bay in Uçkuyular. Staff are reported to be very friendly to visiting yachts. The ferry to Izmir is just outside the gate and there is a small town 2 kms away. Advance booking is worthwhile as space is very limited here.
Güzelbaçhe Marina is a municipal marina currently under construction some distance from Izmir city, but with good transport links (38° 22'40.15N, 26° 53'06.83E). The marina is - at the time of writing - still unfinished and there continues to be no charge for berthing here.
Last updated January 2016.


This page generates a sample Campaign list with a configurable number of encounters. Provide a campaign name and any other parameters. If the number of encounters is not specified, the engine will generate 4 encounters per month in Urban areas, 2 in Suburban areas, and 1 in Rural areas. If both the number of months and number of encounters are not specified, the engine will generate a single encounter for a single month. Specifying a Common Area will ensure that around 25% of the encounters generated will return to that common area.
Once the encounters are generated, they can be edited by double-clicking on any input field which highlights upon hovering.
Enter a value to fix the number of encounters


|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object ch.ethz.ssh2.sftp.AttribFlags
Attribute Flags. The 'valid-attribute-flags' field in the SFTP ATTRS data type specifies which of the fields are actually present.
| Field Summary | |
static int |
SSH_FILEXFER_ATTR_ACCESSTIME
Indicates that the 'atime' field is present. |
static int |
SSH_FILEXFER_ATTR_ACL
Indicates that the 'acl' field is present. |
static int |
SSH_FILEXFER_ATTR_ALLOCATION_SIZE
Indicates that the 'allocation-size' field is present. |
static int |
SSH_FILEXFER_ATTR_BITS
Indicates that the 'attrib-bits' and 'attrib-bits-valid' fields are present. |
static int |
SSH_FILEXFER_ATTR_CREATETIME
Indicates that the 'createtime' field is present. |
static int |
SSH_FILEXFER_ATTR_CTIME
Indicates that the 'ctime' field is present. |
static int |
SSH_FILEXFER_ATTR_EXTENDED
Indicates that the 'extended-count' field (and probablby some 'extensions') is present. |
static int |
SSH_FILEXFER_ATTR_LINK_COUNT
Indicates that the 'link-count' field is present. |
static int |
SSH_FILEXFER_ATTR_MIME_TYPE
Indicates that the 'mime-type' field is present. |
static int |
SSH_FILEXFER_ATTR_MODIFYTIME
Indicates that the 'mtime' field is present. |
static int |
SSH_FILEXFER_ATTR_OWNERGROUP
Indicates that the 'owner' and 'group' fields are present. |
static int |
SSH_FILEXFER_ATTR_PERMISSIONS
Indicates that the 'permissions' field is present. |
static int |
SSH_FILEXFER_ATTR_SIZE
Indicates that the 'allocation-size' field is present. |
static int |
SSH_FILEXFER_ATTR_SUBSECOND_TIMES
Indicates that additionally to the 'atime', 'createtime', 'mtime' and 'ctime' fields (if present), there is also 'atime-nseconds', 'createtime-nseconds', 'mtime-nseconds' and 'ctime-nseconds'. |
static int |
SSH_FILEXFER_ATTR_TEXT_HINT
Indicates that the 'text-hint' field is present. |
static int |
SSH_FILEXFER_ATTR_UNTRANSLATED_NAME
Indicates that the 'untranslated-name' field is present. |
static int |
SSH_FILEXFER_ATTR_V3_ACMODTIME
Indicates that the 'atime' and 'mtime' field are present (protocol v3). |
static int |
SSH_FILEXFER_ATTR_V3_UIDGID
Protocol version 6: 0x00000002 was used in a previous version of this protocol. |
| Constructor Summary | |
AttribFlags()
|
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
public static final int SSH_FILEXFER_ATTR_SIZE
public static final int SSH_FILEXFER_ATTR_V3_UIDGID
public static final int SSH_FILEXFER_ATTR_PERMISSIONS
public static final int SSH_FILEXFER_ATTR_V3_ACMODTIME
public static final int SSH_FILEXFER_ATTR_ACCESSTIME
public static final int SSH_FILEXFER_ATTR_CREATETIME
public static final int SSH_FILEXFER_ATTR_MODIFYTIME
public static final int SSH_FILEXFER_ATTR_ACL
public static final int SSH_FILEXFER_ATTR_OWNERGROUP
public static final int SSH_FILEXFER_ATTR_SUBSECOND_TIMES
public static final int SSH_FILEXFER_ATTR_BITS
public static final int SSH_FILEXFER_ATTR_ALLOCATION_SIZE
public static final int SSH_FILEXFER_ATTR_TEXT_HINT
public static final int SSH_FILEXFER_ATTR_MIME_TYPE
public static final int SSH_FILEXFER_ATTR_LINK_COUNT
public static final int SSH_FILEXFER_ATTR_UNTRANSLATED_NAME
public static final int SSH_FILEXFER_ATTR_CTIME
public static final int SSH_FILEXFER_ATTR_EXTENDED
| Constructor Detail |
public AttribFlags()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |


Parking space has been a growing problem in the last years in the crowded Baia Mare, with more and more people opting for individual transportation to work, school and for leisure activities.
ParkPoint has the goal to alleviate this problem by offering you the option to inform yourself, save time and even money you would otherwise pay on parking fines!


{% extends "base.html"%} {% block content%} There is a {{ probability }}% chance that your bird is a/an {{ bird_type }}!{% endblock %} {% block form %}
There is a {{ probability }}% chance
that your bird is a/an {{ bird_type }}!
{{name}} or {{en_name}}
{{ desc }}


--- layout: basic-page title: Course display-title: "GCS StuCo: Game Creation for People Who Want to Create Games (98-127)" top-img: StuCo_1_cropped.png top-img-pos: 51%; meta-description: "Find information and resources here on the Student College (StuCo) course run by the Game Creation Society at Carnegie Mellon University." ---
In this course students will learn the basics of game creation. The course is intended for both beginners and experienced game designers. In addition to project work done in class, students will learn fundamental tools like Unity.
The intent of this course is to expand the community of game makers at CMU to those who are interested in making games but may not have had the inclination to pursue it through more intensive means such as GCS or IDeATe.
The course also serves as an additional place for those already involved in the community to learn and collaborate. Tutorials and projects done in Game Creation Society will mirror and compliment work done in class.
Previous Course Iterations: Spring 2019, Fall 2019, Spring 2020, Fall 2020, Fall 2021
Wednesdays @6:40-8:30pm
Zoom
Sundays @2:00-6:00pm
Zoom
David Zelong Fan
Thomas Carey
Slides (Google Slides)
Lecturer: Thomas
Lecture Notes (pdf), Base Code (unitypackage)
Lecturer: David
Lecture Notes (pdf)
Lecturer: Thomas
Lecture Notes (pdf), Base Code (unitypackage)
Lecturer: David
MonoBehaviour: Start(), Update(),
and moreTemplate (pdf)
Lecturer: Thomas
Lecture Notes (pdf)
Lecturer: David
Every Sunday (starting September 20th) from 2:00-6:00pm, GCS holds open office hours via Zoom, where teams come to work in a collaborative environment. Students in the StuCo are also encouraged to come, especially while working on the two main course assignments, as listed below.
The mid-semester assignment is an original detailed design document. Students will have to reason about scope, game loops, and detailed mechanic descriptions. The assignment is meant to make students think carefully about all the parts of a game. It is also an opportunity to be creative and express the ideas that you would like to see in a game. Time in class will be allocated to work on this, but students are encouraged to work on it outside of class if they feel inspired.
Students will team up to collaborate on a final project. Using supplied behaviours, images, and sounds, students will build a game. The design is up to the students and serves as a chance for students to demonstrate the principles covered previously in class. Making a game is a laborious enterprise even with assets from the instructors, so students are encouraged to meet and work outside of class.


(PHP 5, PHP 7)
ibase_pconnect — Open a persistent connection to an InterBase database
$database
[, string $username
[, string $password
[, string $charset
[, int $buffers
[, int $dialect
[, string $role
[, int $sync
]]]]]]]] ) : resourceOpens a persistent connection to an InterBase database.
ibase_pconnect() acts very much like ibase_connect() with two major differences.
First, when connecting, the function will first try to find a (persistent) link that's already opened with the same parameters. If one is found, an identifier for it will be returned instead of opening a new connection.
Second, the connection to the InterBase server will not be closed when the execution of the script ends. Instead, the link will remain open for future use (ibase_close() will not close links established by ibase_pconnect()). This type of link is therefore called 'persistent'.
database
The database
argument has to be a valid path to
database file on the server it resides on. If the server is not local,
it must be prefixed with either 'hostname:' (TCP/IP), '//hostname/'
(NetBEUI) or 'hostname@' (IPX/SPX), depending on the connection
protocol used.
username
The user name. Can be set with the ibase.default_user php.ini directive.
password
The password for username
. Can be set with the
ibase.default_password php.ini directive.
charset
charset
is the default character set for a
database.
buffers
buffers
is the number of database buffers to
allocate for the server-side cache. If 0 or omitted, server chooses
its own default.
dialect
dialect
selects the default SQL dialect for any
statement executed within a connection, and it defaults to the highest
one supported by client libraries. Functional only with InterBase 6
and up.
role
Functional only with InterBase 5 and up.
sync
Returns an InterBase link identifier on success, or FALSE
on error.


---
format: html
type: post
author: Raymond Camden
date: 2015-03-23 18:14:54 Z
external: true
title: "Learning Cordova\xE2\x80\x99s config.xml? Check out this online tool"
status: publish
tags:
- PhoneGap Network
link: http://www.raymondcamden.com/2015/03/23/learning-cordovas-config-xml-check-out-this-online-tool
---
If you are having trouble understanding how to use PhoneGap/Cordova's config.xml file, or perhaps just want to see examples of what various options do, please check out Holly Schinsky's excellent new tool: Interactive Guide to PhoneGap config.xml. Her tool lets you browse a config.xml file and see documentation on each and every major feature. Even […]


|
Task Description
Long, long ago, in
a galaxy far, far away…
A milkman sets
forth in his starship to makes his rounds to all the
planets in his solar system.
His solar system
was unique such that all the habitable planets orbited in
the same plane, giving the solar system a 2-Dimensional
look. His solar system was also very unique in that
all the habitable planets moved through space at the same
uniform speed of 50,000Km per hour, either clockwise or
counter-clockwise around the sun (or vice versa if you’re
looking at the solar system from the opposite direction),
with the only difference being their distance from the sun
and their locations in the arc of their orbits.
At an arbitrary
time 0, all the planets are located as follows: distance
from the sun (the center of the system); degrees into the
arc of orbit around sun relative to an arbitrary positive
x-axis (see picture below) counting in a counter-clockwise
direction; and the direction of orbit:
Planet X –
1,000,000Km; 90 degrees; moving clockwise
Planet Y –
5,000,000Km; 50 degrees; moving clockwise
Planet Z –
10,000,000Km; 290 degrees; moving counter-clockwise
Planet A –
20,000,000Km; 230 degrees; moving counter clockwise
Planet B –
50,000,000Km; 140 degrees; moving clockwise
Planet
C – 120,000,000Km; 275 degrees; moving counter-clockwise
Here is a rough
sketch of the solar system at time zero (distances not to
scale):
Other things to consider:
our traveling salesman’s spaceship can only fly at a
maximum speed of 60,000Km per hour and assume that it
takes him practically no time to drop off his shipment of
milk once he arrives at a planet. Consider the
constant pi = 3.141592654. Assume locations given
for each planet are for a point at the center of each
planet and ignore the diameter of the sun and the planets
when calculating distances. Math Hint: the x and y
coordinates of a planet are can be determined using rcosΘ
and rsinΘ respectively.
Your job is to
write a program that calculates the minimum total length
of time it takes the milkman to travel a given route.
Be careful to be exact. A correct answer must be
within one hour of the judges’ calculated time.
Program Input
The input for the
problem will be provided as arguments on the command line
when the program is executed as follows:
prob15 2500 X A B Z C
Y X
-
Arg1: is the time
(in hours) relative to time 0 mentioned above that the
salesman begins his trip from his home planet. Do
not count this time in the total trip time.
-
Args 2 – 8: are
the list of planets, in the order that the milkman
visits them, ending at his home planet. There will
be exactly seven “hops” to the milkman’s trip in order
to visit all the other planets and return home.
The home planet may vary from the example below.
Program Output
Print out the
minimum time in hours that the trip will take as shown
below:
The minimum numbers of
hours for the trip is: 6121
Although the
judging input will vary from this example’s input, this
example can be used for verifying your program prior to
submitting to the judges. Here are some more details
for this example:
Leg Time(mins):
20909 From X To A
Leg Time(mins): 45743 From A To B
Leg Time(mins): 47260 From B To Z
Leg Time(mins): 124597 From Z To C
Leg Time(mins): 124752 From C To Y
Leg Time(mins): 4016 From Y To X
Total Time(mins): 367277
Total Time(hrs): 6121
|


jason arsenault
owner
One thing we can count on in our lives is change.
When I first started working fulltime it was for a sporting goods store.
It wasn’t long before me and the owner had partnered to start a mail order company selling bikes.
This was before the explosion of ecommerce. It amazed me how much I didn’t know about business and how quickly I needed to learn.
Eventually I finished school at the University of New Mexico with a degree in accounting and wanted to pursue a career in that field.
I would get my feet wet in public accounting in the oil fields of southeastern New Mexico.
Those where some big and complicated tax returns I would get the opportunity to work on.
Somehow I wasn’t working in public accounting anymore and instead was working at Trading Post.
Here I would get an education in ecommerce and social media.
We went from having a very small onine presence to over 15,000 monthly users on our store website and 76,000 followers on Facebook.
During this time I completed my CPA requirements and became a licensed Certified Public Accountant in New Mexico.
Now, it is time to take those things I have learned from working in public accounting and running a business to help you take control of your business and finances.


@* * Copyright 2023 HM Revenue & Customs * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *@ @(params: Map[String, Any]) @uk.gov.hmrc.hmrcemailrenderer.templates.helpers.html.template_main(params, "You are registered for the One Stop Shop VAT scheme") { @uk.gov.hmrc.hmrcemailrenderer.templates.helpers.html.salutation(params)
We’ve received your registration for @params("businessName").
You can now use this service to fill out quarterly returns for goods sold to consumers in the EU.
You can also pay any One Stop Shop VAT that you owe.
You can begin your @params("periodOfFirstReturn") return on @params("firstDayOfNextPeriod"). Include any sales from @params("commencementDate").
We will contact you if we need to check any information.
Read more information about how to complete an OSS return.
From the VAT One Stop Shop team
}


Input Types
This example shows Input default implementaion.
Input States With Messages Components And AriaLabelledBy Attribute.
This example shows Input validation with Message implementaion.
Input States With Minimum and Maximum Length Validation.
This example shows Input validation with Minimum length and Maximum Length implementaion.
Input With Auto Complete feature.
This example shows Input AutoComplete with Input implementaion.


LUDENT- sodium fluoride tablet, chewable
Sancilio & Company Inc.
Disclaimer: This drug has not been found by FDA to be safe and effective, and this labeling has not been approved by FDA. For further information about unapproved drugs, click here.
 IF OVERDOSAGE IS SUSPECTED, SEEK PROFESSIONAL ASSISTANCE OR CONTACT A POISON CONTROL CENTER IMMEDIATELY 1-800-222-1222. TABLET SHOULD BE CHEWED.
DO NOT USE IF FOIL SEAL UNDER CAP IS BROKEN OR MISSING
White to off-white, orange flavor, round-shaped chewable tablet debossed "SCI" on one side and "6" on the other.
See inside panel for additional information
Do not use this product if you are allergic to any of the ingredients. Take this product at least 2 hours before or after taking any products containing calcium (including milk, yogurt, other dairy products) or aluminum/magnesium hydroxide (e.g., certain antacids/laxatives). Prolonged daily ingestion of excessive fluoride may result in varying degrees of dental fluorosis. Account for all daily sources of fluoride intake.
Xylitol, microcrystalline cellulose, malic acid, magnesium stearate, talc, citric acid, natural orange flavor, sucralose.
Store in a cool, dry place at room temperature 20° - 25°C (68° - 77°F) away from heat and sunlight. Store in original container.
This medical food product is formulated to be administered orally, under the ongoing supervision of a physician and is intended for the dietary management of dental caries for which a distinctive nutritional requirement of fluoride, based on recognized scientific principles, has been established by medical evaluation.
The numeric identifier on this product's labeling is an assigned product code for use with pharmacy-level, health-insurance and state level reimbursement programs and is not intended to denote registration with the FDA.
SCI
Sancilio &
Company, Inc.
Developing Good Science into Great Medicine
44946-1008-3
Rx Only
Ludent®-Fluoride
Chews
Sodium Fluoride Chewable Tablets
NO DYES, ARTIFICIAL FLAVORS OR SUGAR
SACCHARIN AND GLUTEN FREE
CONTAINS XYLITOL
0.25
mg*
120 tablets
Made in U.S.A.
|
LUDENT
sodium fluoride tablet, chewable | ||||||||||||||||||||
| ||||||||||||||||||||
| ||||||||||||||||||||
| ||||||||||||||||||||
| ||||||||||||||||||||
| ||||||||||||||||||||
|
| Labeler - Sancilio & Company Inc. (176681257) |


This is the API
Generates and returns an intermediate CA certificate signing request.
//ca/generate
POST
Returns the valid CA certificate in PEM format.
//ca/certificate
GET
Returns the valid CA certificate chain in PEM format.
//ca/chain
GET
Sets the CA certificate chain.
//ca/chain/set
POST
Sets the signed intermediate CA certificate.
//ca/set
POST


Library: Net
Package: ICMP
Header: Poco/Net/ICMPClient.h
Description
This class provides ICMP Ping functionality.
The events are available when class is instantiated and non-static member functions are called.
A "lightweight" alternative is direct (without instantiation) use of static member functions.
Member Summary
Member Functions: ping, pingIPv4
Constructors
ICMPClient
explicit ICMPClient(
IPAddress::Family family
);
Creates an ICMP client.
Destructor
~ICMPClient
~ICMPClient();
Destroys the ICMP client.
Member Functions
ping
int ping(
SocketAddress & address,
int repeat = 1
) const;
Pings the specified address [repeat] times. Notifications are posted for events.
Returns the number of valid replies.
ping
int ping(
const std::string & address,
int repeat = 1
) const;
Calls ICMPClient::ping(SocketAddress&, int) and returns the result.
Returns the number of valid replies.
ping
static int ping(
SocketAddress & address,
IPAddress::Family family,
int repeat = 1
);
Pings the specified address [repeat] times. Notifications are not posted for events.
Returns the number of valid replies.
pingIPv4
static int pingIPv4(
const std::string & address,
int repeat = 1
);
Calls ICMPClient::ping(SocketAddress&, int) and returns the result.
Returns the number of valid replies.
Variables
pingBegin
mutable Poco::BasicEvent < ICMPEventArgs > pingBegin;
pingEnd
mutable Poco::BasicEvent < ICMPEventArgs > pingEnd;
pingError
mutable Poco::BasicEvent < ICMPEventArgs > pingError;
pingReply
mutable Poco::BasicEvent < ICMPEventArgs > pingReply;


--- layout: paper title: Publications --- Relation Extraction with Matrix Factorization and Universal Schemas, , Joint Human Language Technology Conference/Annual Meeting of the North American Chapter of the Association for Computational Linguistics (HLT-NAACL) 2013 [pdf]
@inproceedings{riedel13relation, month={June}, year={2013}, author={Sebastian Riedel and Limin Yao and Benjamin M. Marlin and Andrew McCallum}, bdsk-url-1={/publications/papers/riedel13relation.pdf}, booktitle={Joint Human Language Technology Conference/Annual Meeting of the North American Chapter of the Association for Computational Linguistics (HLT-NAACL)}, title={Relation Extraction with Matrix Factorization and Universal Schemas}, }


| Name |
Description |
| Rigid |
Base class for the rigid connection of two rotational 1D
flanges |
| Bearing |
Obsolete model. Use one of
Modelica.Mechanics.Rotational.Interfaces.PartialXXX instead |
|
TwoFlangesAndBearing |
Obsolete model. Use one of
Modelica.Mechanics.Rotational.Interfaces.PartialXXX instead |
|
TwoFlangesAndBearingH |
Obsolete model. Use one of
Modelica.Mechanics.Rotational.Interfaces.PartialXXX instead |
|
PartialSpeedDependentTorque |
Partial model of a torque acting at the flange (accelerates the
flange) |
|
AbsoluteSensor |
Obsolete model. Use
Modelica.Mechanics.Rotational.Interfaces.PartialAbsoluteSensor
instead and define a meaningful name for the output signal |
|
RelativeSensor |
Obsolete model. Use
Modelica.Mechanics.Rotational.Interfaces.PartialRelativbeSensor
instead and define a meaningful name for the output signal |


Read time: 3.4 minutes (341 words)
PyLiT Data Store¶
PyLiT uses a data store modeled after the one used by Git t manage repositories. However, PyLiT does not store entire documents in one piece. Instead, each source file is decomposed into a list of basic building blocks, and those blocks are stored.
Obviously, there will be a lot of blocks in any given project. Each block is written in some language, and can be transformed into a number of different formats. If the block is to be displayed in print, the basic output formats determine what transformation needs to be done. The heart of PyLiT is based on performing the transformations as part of storing the block, and that transformation does not need to be redone unless the source for that block changes.
How Git Stores Files¶
Git manages a single file, actually, a single version of a file, as a “blob”. The contents of the file are run through a SHA-1 hash function that calculates a 40 character hash code for that file. The odds of two files generating the same hash code are extremely low, so we use this code to identify the blob.
Git splits this 40 character code into two parts. The first two characters name a subdirectory under the data store root directory. The remaining 38 characters becomes a new file name for the compressed contents of the file.
This process loses the file name, so Git uses a second primary object called a “tree” to save that information.
A tree is a text file containing a list of other objects and the names of those objects.
Finally, Git defines a “commit” object which tracks the author (commiter), date, and a log message for a commit. It also holds a list of the trees defined at that moment in the repository.
Formal Specification¶
At the risk of losing some readers, we will present the specification of the PyLiT data store in a formal notation.
What this odd notation says is fairly simple (especially if you ever took a discrete math course). Our data store is a system that maps files into blocks, and stores those blocks in a set. That means there is one and only one unique block in the system.


Basic example, free running counter
Mouse me! {{tenSecTimer}}
Marry had a little lamb its fleece was white as snow
Hello World! Its {{tenSecTimer * 10}} o'clock
Ipusum lorem est {{timer}}
NG repeat
Good times and bad times {{blah}} blah
Stuff
{{name}}
click me
Other Stuff


YEAR-END CHARTS
HOT 100 SONGS
6
Psycho
Post Malone Featuring Ty Dolla $ign
7
I Like It
Cardi B, Bad Bunny & J Balvin
8
The Middle
Zedd, Maren Morris & Grey
10
Girls Like You
Maroon 5 Featuring Cardi B
MORE YEAR-END CHARTS VIEW ALL
14
Finesse
Bruno Mars & Cardi B
19
Love Lies
Khalid & Normani
21
Mine
Bazzi
23
Look Alive
BlocBoy JB Featuring Drake
25
Yes Indeed
Lil Baby & Drake
26
Friends
Marshmello & Anne-Marie
28
Taste
Tyga Featuring Offset
31
FEFE
6ix9ine Featuring Nicki Minaj & Murda Beatz
34
MotorSport
Migos, Nicki Minaj & Cardi B
38
Ric Flair Drip
Offset & Metro Boomin
40
Pray For Me
The Weeknd & Kendrick Lamar
43
Walk It Talk It
Migos Featuring Drake
45
Him & I
G-Eazy & Halsey
47
All The Stars
Kendrick Lamar & SZA
50
Love.
Kendrick Lamar Featuring Zacari
55
Freaky Friday
Lil Dicky Featuring Chris Brown
60
Wolves
Selena Gomez X Marshmello
61
Bartier Cardi
Cardi B Featuring 21 Savage
63
Big Bank
YG Featuring 2 Chainz, Big Sean & Nicki Minaj
66
Lights Down Low
MAX Featuring gnash
68
One Kiss
Calvin Harris & Dua Lipa
73
No Brainer
DJ Khaled Featuring Justin Bieber, Chance The Rapper & Quavo
74
Plain Jane
A$AP Ferg Featuring Nicki Minaj
77
Eastside
benny blanco, Halsey & Khalid
79
King's Dead
Jay Rock, Kendrick Lamar, Future & James Blake
80
Happier
Marshmello & Bastille
81
Te Bote
Casper Magico, Nio Garcia, Darell, Nicky Jam, Ozuna & Bad Bunny
83
Lemon
N*E*R*D & Rihanna
84
1-800-273-8255
Logic Featuring Alessia Cara & Khalid
85
Say Something
Justin Timberlake Featuring Chris Stapleton
90
X
Nicky Jam x J Balvin
97
Powerglide
Rae Sremmurd & Juicy J
99
Mi Gente
J Balvin & Willy William Featuring Beyonce


Before Change
Tests that unlimited epochs works as expected
with reader_factory(synthetic_dataset.url, num_epochs=None) as reader:
// Read many expected entries from the dataset and compare the data to reference
for _ in range(len(synthetic_dataset.data) * 3 + 2):
actual = dict(next(reader)._asdict())
expected = next(d for d in synthetic_dataset.data if d["id"] == actual["id"])
np.testing.assert_equal(expected, actual)
def test_num_epochs_value_error(synthetic_dataset):
Tests that the reader raises value errors when appropriate
// Testing only Reader v1, as the v2 uses an epoch generator. The error would raise only when the generator is
After Change
read_limit = len(synthetic_dataset.data) * 3 + 2
actual_ids = _readout_all_ids(reader, read_limit)
expected_ids = [d["id"] for d in synthetic_dataset.data]
assert len(actual_ids) > len(expected_ids)
assert set(actual_ids) == set(expected_ids)
@pytest.mark.parametrize("reader_factory", MINIMAL_READER_FLAVOR_FACTORIES + SCALAR_ONLY_READER_FACTORIES)


Are you sure you want to delete the following bookmark?
"{{bookmark.name}}"
1 || (this.bookmark.likeCount === 1 && !(userData$ | async).likes.includes(this.bookmark._id))" class="alert alert-warning" role="alert">
Please take into consideration that might have added this bookmark to their Favorites!


- getCurrentIndex() - Method in class ir.control.WebCrawler
-
Function to get the location of the current index
- getDepth() - Method in class ir.model.ItemUrl
-
- getExcludedList(URL) - Method in class ir.control.WebCrawler.CrawlerThread
-
Function that given a URL, tries to get the robots.txt file from its host, and
returns the excluded URLs as a URL list.
- getExcludedPages(String) - Method in class ir.control.WebCrawler
-
Function to get list of excluded pages
- getFreeThread() - Method in class ir.control.WebCrawler
-
Function to retrieve the position of the first free thread, if any
Note: Uses isBusy_lock from all existing threads.
- getInstance() - Static method in class ir.control.WebCrawler
-
getInstance function, for singleton use
- getListOfExcludedURLsAction(ActionEvent) - Method in class ir.view.CodeSearchUI
-
Get list of excluded urls
- getListOfExcludedURLsButton - Variable in class ir.view.CodeSearchUI
-
- getListOfVisitedURLsAction(ActionEvent) - Method in class ir.view.CodeSearchUI
-
Get list of visited urls
- getListOfVisitedURLsButton - Variable in class ir.view.CodeSearchUI
-
- getNumOfResults() - Method in class ir.model.WebPage
-
- getRank() - Method in class ir.model.WebPage
-
- getRelevanceScore() - Method in class ir.model.WebPage
-
- getSnippets() - Method in class ir.model.WebPage
-
- getSummary() - Method in class ir.model.WebPage
-
- getTitle() - Method in class ir.model.WebPage
-
- getToolTipText(MouseEvent) - Method in class ir.view.CodeSearchUI.toolTippedTextPane
-
- getUrl() - Method in class ir.model.ItemUrl
-
- getUrl() - Method in class ir.model.WebPage
-
- getUsingNonDefaultIndex() - Method in class ir.control.WebCrawler
-
Function to check if crawler is using a non-default index
- getVisitedPages(String) - Method in class ir.control.WebCrawler
-
Function to get list of visited pages


{% extends 'primary.html' %} {% block content %}
This is a new service for pre-registered users to access.
If you would like support using this service, please email:
<EMAIL_ADDRESS>For data privacy queries, please email:
gds-privacy-office@digital.cabinet-office.gov.uk.


Features
|
|
Abbr
: abbreviation
Boolean feature marking a word as an abbreviation.
Note that UD Finnish does not differentiate between different types of
shortened forms. In particular, there is no separate feature
identifying acronyms, which are also marked with Abbr=Yes
.
Yes
: word is abbreviation
Note that there is no No
value. If the word is not an abbreviation,
the Abbr
feature will not appear.
Examples
- [fi] mm. “among others”
- [fi] esim. “for example”
- [fi] USA, EU
AdpType
: AdpType
This document is a placeholder for the language-specific documentation
for AdpType
.
Case
: case
Nom
: nominative
The base form, typically used as a citation form (lemma).
Examples
- [fi] koira juoksee “the dog runs”
Acc
: accusative
In many languages used for direct objects of verbs.
We follow ISK in not recognizing the accusative except for the personal pronouns and kuka “who” (http://scripta.kotus.fi/visk/sisallys.php?p=1221, http://scripta.kotus.fi/visk/sisallys.php?p=1226)
Examples
- [fi] näen hänet “I see him/her”
- [fi] kenet näet? “who do you see?”
Gen
: genitive
Examples
- [fi] meidän perheemme “our family”
- [fi] vuoden päivät “the days of the year”
- [fi] Turun Yliopisto “University of Turku”
Ins
: instructive
Instructive primarily characterizes manner or instrument. Instructive can also express place or time.
Corresponds to some uses of English by means of or with the aid of.
Examples
- [fi] kaksin käsin “with both hands”
- [fi] uusin säännöin “with new rules”
- [fi] näillä seuduin “around these parts”
- [fi] vuoroviikoin “every other week”
References
- http://scripta.kotus.fi/visk/sisallys.php?p=1263 (in Finnish)
Par
: partitive
In Finnish the partitive case is an object case that can also express indefinite quantity or unfinished actions.
- [fi] kolme taloa “three houses”
- [fi] rakastan tätä taloa “I love this house”
- [fi] saanko lainata kirjaa “can I borrow a book”
- [fi] lasissa on maitoa “there is (some) milk in the glass”
- [fi] ammuin karhua “I shot at a bear”
- [fi] luen kirjaa “I am reading a book”
References
- http://scripta.kotus.fi/visk/sisallys.php?p=1234 (in Finnish)
Ess
: essive
Essive is typically a case of temporal adverbials (e.g. tiistaina “on Tuesday”). In expressions of state, essive is a case of predicative adverbials, characterizing purpose or task (e.g. vartijana “as a guard”) in intransitive forms, and how an object or its purpose is perceived in transitive forms (e.g. syödä raakana “eat raw”).
Essive corresponds to some uses of English as a.
Examples
- [fi] tiistaina “on Tuesday”
- [fi] vartijana “as a guard”
References
- http://scripta.kotus.fi/visk/sisallys.php?p=1258 (in Finnish)
Tra
: translative
In intransitive sentences, the translative case typically expresses change of state (becomes, changes to) or manner.
Examples
- [fi] pitkäksi “become long”
- [fi] englanniksi “in/into English”
- [fi] kello kuudeksi “by six o’clock”
- [fi] huviksi “for fun”
In transitive sentences, the translative case describes the sentence object.
Examples
- [fi] tarkoitettu varoitukseksi “meant as a warning”
- [fi] valittiin presidentiksi “elected as president”
References
- http://scripta.kotus.fi/visk/sisallys.php?p=1259 (in Finnish)
Com
: comitative / associative
The comitative (also called associative) case expresses belonging, a social relationship or a part of an entity. It often corresponds to English together with and has a descriptive or explicative function.
Examples
- [fi] tavaroineen “with his/her belongings”
- [fi] puolisoineen “with his/her spouse”
- [fi] koirat suurine hampaineen “dogs with their big teeth”
References
- http://scripta.kotus.fi/visk/sisallys.php?p=1264 (in Finnish)
Abe
: abessive
The abessive case expresses wihtout what something has happened and roughly corresponds to the English preposition without.
Examples
- [fi] rahatta “without money”
Ine
: inessive
The inessive case expresses location inside of something.
Examples
- [fi] talossa “in the house”
Ill
: illative
The illative case expresses direction into something.
Examples
- [fi] taloon “to the house”
Ela
: elative
The elative case expresses direction out of something.
Examples
- [fi] talosta “from the house”
Ade
: adessive
The adessive cases expresses location on the outer or upper surface of an entity, or movement to/from such a surface. The corresponding directional cases are allative (towards something) and ablative (from something).
(Note: this is a very incomplete listing of the uses of the Finnish adessive, which can also express place, time, state, owner, instrument, means, manner, and quantity.)
Examples
- [fi] pöydällä “on the table”
References
- http://scripta.kotus.fi/visk/sisallys.php?p=1252 (in Finnish)
All
: allative
The allative case expresses direction onto something (destination is adessive).
Examples
- [fi] pöydälle “on to the table”
Abl
: ablative
Prototypical meaning: direction from some point.
Examples
- [fi] pöydältä “from the table”
- [fi] katolta “from the roof”
- [fi] rannalta “from the beach”
Notes: distributive
Some descriptions of Finnish recognize a distributive case conveying
that something happens to every member of a set, one at a time. UD
Finnish does not include Dis
(distributive) as a possible value of
the Case
feature, but analyses the -ttain suffix as an adverbial
derivation.
Examples
- [fi] kaupungeittain “separately in each city”
References
- http://scripta.kotus.fi/visk/sisallys.php?p=379 (in Finnish)
Notes: lative
Some descriptions of Finnish mark the base form of the first infinitive as being in the lative case (see e.g. Omorfi tagger documentation). UD Finnish follows ISK in not recognizing the lative case.
References
- http://scripta.kotus.fi/visk/sisallys.php?p=120 (esp. Huom 1; in Finnish)
Diff
FinnTreeBank (FI_FTB) marks the base form of the first infinitive as lative in contrast to translative.
Clitic
: clitic
(Please note: this part of the documentation is not yet completed.)
Language-specific feature identifying clitics attached to the word.
Finnish has a number of particle clitics used to express questions,
politeness, or focus. UD Finnish captures the presence of these
clitics using the Clitic
feature, which takes one or more of the
following values, with multiple values expressing combinations, for
example Clitic=Ko,S
for -kos (-ko + -s) as in voikos.
Kin
Expresses focus. Can often be translated into English as also. Forms contrasting pair with -kaan.
Examples
- [fi] minäkin menen “also I am going”
Kaan
Expresses focus in negative contexts. Realized as -kaan or -kään. Forms contrasting pair with -kin.
Examples
- [fi] minäkään en mene “I am not going either”
Ko
Expresses a question. Realized as -ko or -kö.
Examples
- [fi] menenkö minä “do I go?”
Han
Realized as -han or -hän.
Examples
- [fi] eihän “”
Pa
Realized as -pa or -pä.
Examples
- [fi] vaikkapa “”
S
TODO
Examples
- [fi] mitäs “”
Ka
Realized as -ka or -kä. Attached to the negative verb ei, serves also as a conjunction.
Examples
- [fi] ei päätä eikä häntää “neither head nor tail”
References
- Karttunen and Karttunen (1976) The Clitic -kin/-kaan in Finnish (TODO link)
- http://www.cse.chalmers.se/~aarne/articles/discourse-clitics.pdf
- http://cowgill.ling.yale.edu/sra/clitics_iel.htm
- http://scripta.kotus.fi/visk/sisallys.php?p=126 (in Finnish)
- http://scripta.kotus.fi/visk/sisallys.php?p=1635 (in Finnish)
Connegative
: connegative
Boolean feature of verbs (VERB and AUX), marking a word as being in connegative form.
In Finnish, negations are formed of the auxiliary negative verb (ei) and the main verb, the latter of which typically appears in connegative form.
Yes: word is connegative
Note that there is no No
value. If the word is not connegative, the
Connegative
feature will not appear.
Examples
- [fi] en tiedä “I don’t know”
References
Degree
: degree of comparison
Degree of comparison is a feature of adjectives, some adverbs, and verbs in participle form.
Pos
: positive, first degree
This is the base form that merely states a quality of something, without comparing it to qualities of others.
Examples
- [fi] uusi nimi “new name”
Cmp
: comparative, second degree
The quality of one things is compared to the same quality of another.
Examples
- [fi] nuorempi veli “younger brother”
- [fi] pyöriä nopeammin “rotate faster”
Sup
: superlative, third degree
The quality of one thing is compared to the same quality of all other things within a set.
Examples
- [fi] paras tulos “best result”
- [fi] nopeimmin kasvavat “fastest grow”
Diff
FinnTreeBank
The FI_FTB corpus applies the degree of comparison only when it is noticeable in the word form (that is, in comparative or superlative). Positive (Pos) is not used, as not all adjectives, adverbs and verb participles can appear in the other degrees of comparison at all.
Derivation
: derivation
(Please note: this part of the documentation is not yet completed.)
Language-specific feature identifying the form of derivation applied to a word.
Minen
: derivation with suffix -minen
Produces noun.
Examples
- [fi] valmistaminen “TODO”
References
- http://scripta.kotus.fi/visk/sisallys.php?p=221 (in Finnish)
Sti
: derivation with suffix -sti
Produces adverb.
Examples
- [fi] pysyvästi “TODO”
References
- http://scripta.kotus.fi/visk/sisallys.php?p=371 (in Finnish)
Inen
: derivation with suffix -inen
Produces adjective.
Examples
- [fi] omenainen “TODO”
References
- http://scripta.kotus.fi/visk/sisallys.php?p=261 (in Finnish)
Lainen
: derivation with suffix -lainen
Produces noun.
Examples
- [fi] Turkulainen “TODO”
References
- http://scripta.kotus.fi/visk/sisallys.php?p=190 (in Finnish)
Ja
: derivation with suffix -ja
Produces noun.
Examples
- [fi] oppija “TODO”
References
- http://scripta.kotus.fi/visk/sisallys.php?p=252 (in Finnish)
Ton
: derivation with suffix -ton
Produces adjective.
Examples
- [fi] voimaton “TODO”
References
- http://scripta.kotus.fi/visk/sisallys.php?p=292 (in Finnish)
Vs
: derivation with suffix -vs
Produces noun
Examples
- [fi] TODO “TODO”
References
-
(in Finnish)
### Llinen
: derivation with suffix -llinen
Produces adjective.
Examples
- [fi] vaunullinen “TODO”
References
- http://scripta.kotus.fi/visk/sisallys.php?p=276 (in Finnish)
Ttain
: derivation with suffix -ttain
Produces adverb.
Examples
- [fi] lajeittain “TODO”
References
-
(in Finnish)
### U
: derivation with suffix -u
Produces noun.
Examples
- [fi] lopettelu “TODO”
References
- http://scripta.kotus.fi/visk/sisallys.php?p=221 (in Finnish)
Ttaa
: derivation with suffix -ttaa
Produces verb.
Examples
- [fi] vaivaannuttaa “TODO”
References
- TODO (in Finnish)
Tar
: derivation with suffix -tar
Produces noun.
Examples
- [fi] suojelijatar “TODO”
References
- TODO (in Finnish)
Diffs
FinnTreeBank
The language-specific feature Derivation is not in use in FI_FTB.
Foreign
: foreign word
Is this a foreign word? Not a loan word and not a foreign name but a genuinely foreign word appearing inside native text. This feature would apply either to the “X” part of speech (unanalyzable token), or to other parts of speech if we know and are willing to annotate the class to which the word belongs in its original language.
Note: the UD Tscript
(transcribed) value is not used in UD Finnish.
Foreign
: it is foreign
Examples
TODO
Fscript
: it is foreign and written in a foreign script
Examples
TODO
InfForm
: form of infinitive
(Please note: the labels on this page, including the feature name
InfForm
, are subject to change.)
Finnish has multiple infinitive forms, often termed the first infinitive, second infinitive, etc. Traditionally five different infinitives have been recognized, but UD Finnish follows the modern ISK grammar in only recognizing three verb forms as infinitives, namely those known as the first, second and third infinitives (alternatively termed the A-, E- and MA-infinitives, see e.g. VISK § 119; in Finnish).
1
: first infinitive
The first infinitive is also known as the A-infinitive. It corresponds roughly to the English infinitive introduced by to.
The base form of the first infinitive is used as the dictionary form for verbs.
Examples
- [fi] He haluavat jutella “They want to talk”
References
- http://kaino.kotus.fi/visk/sisallys.php?p=120 (in Finnish)
2
: second infinitive
The second infinitive is also known as the E-infinitive.
Examples
- [fi] ottaen huomioon “taking into account”
References
- http://kaino.kotus.fi/visk/sisallys.php?p=120 (in Finnish)
3
: third infinitive
The third infinitive is also known as the MA-infinitive.
Examples
- [fi] Menen katsomaan musikaalia “I am going to see a musical”
References
- http://kaino.kotus.fi/visk/sisallys.php?p=121 (in Finnish)
Mood
: mood
Mood is a feature that expresses modality and subclassifies finite verb forms.
Ind
: indicative
The indicative can be considered the default mood. A verb in indicative merely states that something happens, has happened or will happen, without adding any attitude of the speaker.
Examples
- [fi] minä sanon “I say”
Imp
: imperative
The speaker uses imperative to order or ask the addressee to do the action of the verb.
Examples
- [fi] kypsennä uunissa “fry in the oven”
Cnd: conditional
The conditional mood is used to express actions that would have taken place under some circumstances but they actually did not / do not happen.
Examples
- [fi] tarvistisimme tilaa “we would need space”
Pot: potential
The action of the verb is likely but not certain.
Examples
- [fi] talo valmistunee “the house will likely be completed”
NumType
: numeral type
Card
: cardinal number or corresponding interrogative / relative / indefinite / demonstrative word
Examples
- [fi] yksi, kaksi, kolme “one, two, three”
Ord
: ordinal number or corresponding interrogative / relative / indefinite / demonstrative word
This is a subtype of adjective or (in some languages) of adverb.
Examples
- [fi] ensimmäinen, toinen, kolmas “first, second, third”
Mult
: multiplicative numeral or corresponding interrogative / relative / indefinite / demonstrative word
This is subtype of adverb.
Examples
- [fi] kerran, kahdesti, kolmesti “once, twice, thrice”
(TODO: others from http://universaldependencies.org/u/feat/NumType.html?)
Number
: number
Number
is a feature of nouns, pronouns
and numbers as well as of verbs and
adjectives that mark agreement with them.
Sing
: singular number
Examples
- [fi] päivä “day”
- [fi] hän “he/she”
- [fi] miljoona “million”
- [fi] käyttää “use”
- [fi] vaikea “difficult”
Plur
: plural number
Examples
- [fi] päiviä “days”
- [fi] he “they”
- [fi] miljoonia “millions”
- [fi] käyttävät “use”
- [fi] vaikeat “difficult”
Number[psor]
: number of possessor
Number[psor]
is a
layered feature of
nouns and … (TODO)
Sing
: singular
Examples
- [fi] tekojeni seuraukset “the consequences of my actions” (multiple actions, single actor:
Number=Plur
,Number[psor]=Sing
)
Plur
: plural
Examples
- [fi] tekomme seuraukset “the consequences of our action” (single action, multiple actors:
Number=Sing
,Number[psor]=Plur
)
References
- http://scripta.kotus.fi/visk/sisallys.php?p=97 (in Finnish)
PartForm
: form of participle
(Please note: the labels on this page, including the feature name
PartForm
, are subject to change.)
Finnish has multiple participles forms, here termed the present, past, agent, and negative participles (VISK § 122; in Finnish).
Pres
: present participle
The present participle, also known as the first participle and the VA-participle, has active and passive forms.
Examples
- [fi] haihtuva vesi “evaporating water” (present active participle)
- [fi] juotava vesi “drinkable water” (present passive participle)
References
- http://kaino.kotus.fi/visk/sisallys.php?p=522 (in Finnish)
Past
: past participle
The past participle is also known as the second participle. Its active and passive forms are also known as the NUT- and TU-participles, respectively.
Examples
- [fi] kiinnostunut opiskelija “interested student” (past active participle)
- [fi] kunnostettu auto “repaired car” (past passive participle)
References
- http://kaino.kotus.fi/visk/sisallys.php?p=522 (in Finnish)
Agt
: agent participle
The agent participle is also known as the MA-participle.
Examples
- [fi] naapurin kutsuma vieras “guest invited by the neighbour”
References
- http://kaino.kotus.fi/visk/sisallys.php?p=525 (in Finnish)
Neg
: negative participle
The negative participle is a negative counterpart to the other participle forms.
Examples
- [fi] maksamaton lasku “unpaid bill”
References
- http://kaino.kotus.fi/visk/sisallys.php?p=526 (in Finnish)
Person
: person
Person
is a feature of verbs (TODO: also pronouns?).
1
: first person
In singular, the first person refers just to the speaker or author. In plural, it includes the speaker/author and one or more additional persons.
Examples
- [fi] minä näin sinut “I saw you”
- [fi] me lähdimme “we left”
2
: second person
In singular, the second person refers to the addressee of the utterance or text. In plural, it may mean several addressees and optionally some third persons too.
Examples
- [fi] me tarjoamme “we offer”
- [fi] te vastaatte “you answer”
3
: third person
The third person refers to one or more persons that are neither speakers nor addressees.
Examples
- [fi] hän voitti “he/she won”
- [fi] he päättivät “they decided”
TODO: consider fourth person, e.g. kirja julkaistiin? (cf. ISK http://scripta.kotus.fi/visk/sisallys.php?p=106, http://scripta.kotus.fi/visk/sisallys.php?p=1313)
Person[psor]
: person of possessor
Person[psor]
is a
layered feature of
nouns and … (TODO)
1
: first person
Examples
- [fi] tekojeni seurakset “the consequences of my actions”
2
: second person
Examples
- [fi] tekojesi seuraukset “the consequences of your actions”
3
: third person
Examples
- [fi] tekojensa seuraukset “the consequences of their actions”
References
- http://scripta.kotus.fi/visk/sisallys.php?p=97 (in Finnish)
Polarity
: whether the word can be or is negated
In UD Finnish, the feature Polarity
exclusively marks forms of the
negation verb ei.
Poss
: possessive
Finnish does not have a separate category of possessive pronouns, instead using possessive suffixes (see Person[psor] and Number[psor]) and the genitive form of personal pronouns (see Case).
The UD feature Poss
is not used in UD Finnish.
References
- http://scripta.kotus.fi/visk/sisallys.php?p=100 (in Finnish)
PronType
: pronominal type
Prs
: personal
Formal written Finnish uses the following personal pronouns:
| Person | |||
|---|---|---|---|
| Number | 1 | 2 | 3 |
| Sing | minä | sinä | hän |
| Plur | me | te | he |
Colloquial Finnish and regional dialects include a number of variants for each, such as mä, mie, mää and myö for minä “I”.
Examples
- [fi] minä, sinä, hän, me, te, he “I, you, he/she, we, you, they”
- [fi] minun, sinun, hänen, meidän, teidän, heidän “my, your, his/her, our, your, their”
References
- http://scripta.kotus.fi/visk/sisallys.php?p=716 (in Finnish)
Rcp
: reciprocal
Examples
- [fi] toisiaan “each other”
References
- http://scripta.kotus.fi/visk/sisallys.php?p=732 (in Finnish)
Int
: interrogative
Examples
- [fi] kuka, mikä, kumpi, millainen “who, what, which, like what”
- [fi] ken “who” (archaic)
References
- http://scripta.kotus.fi/visk/sisallys.php?p=734 (in Finnish)
Rel
: relative
Examples
- [fi] joka, mikä, kuka “which, what, who”
References
- http://scripta.kotus.fi/visk/sisallys.php?p=735 (in Finnish)
Dem
: demonstrative
Examples
- [fi] tämä, tuo, se, nämä, nuo, ne “this, that, it/that, these, those, they/those”
References
- http://scripta.kotus.fi/visk/sisallys.php?p=720 (in Finnish)
Ind
: indefinite
TODO
Notes: indefinite vs. quantifier pronouns
Some descriptions of Finnish avoid the category label “indefinite
pronouns” (indefiniittipronomi) in favor of “quantifier/quantifying
pronouns” (kvanttoripronomini)
(e.g. http://scripta.kotus.fi/visk/sisallys.php?p=742; in Finnish),
while others recognize both categories
(e.g. Voutilainen et al. 2012).
UD Finnish only uses the PronType
value Ind
(indefinite) (See also
the note on negative pronouns below).
Notes: negative pronouns
Finnish has no “inherently negative” pronouns (see e.g. http://wals.info/chapter/115) such as [en] nothing or [de] niemand “nobody” but instead uses a negator to construct such expressions:
- ei mitään “nothing”
- ei kukaan “nobody”
Some descriptions separate pronouns that can occur in such expressions
into their own subcategory of negative polarity (kieltohakuiset)
pronouns (see e.g. VISK §
757; in Finnish).
However, as the
UD PronType=Neg
feature only covers inherently negative pronouns, UD Finnish assigns
the PronType
value Ind
to these pronouns.
PunctSide
: PunctSide
This document is a placeholder for the language-specific documentation
for PunctSide
.
Reflex
: reflexive
This document is a placeholder for the language-specific documentation
for Reflex
.
Style
: style
Coll
: word is colloquial
Examples
- [fi] et “that” (colloquial form of että)
- [fi] mut “but” (colloquial form of mutta)
Arch
: archaic, obsolete
Examples
- [fi] wanha “old” (archaic form of vanha)
Diffs
Turku Dependency Treebank
The value Arch
is not annotated systematically in TDT
and only very few instances of this value appear in the
UD Finnish corpus.
Tense
: tense
The Tense
feature applies to verbs (VERB and AUX),
specifying the time when the action took or takes place, in
relation to the current moment or to another action in the
utterance.
Tense
does not apply to non-finite verbs (infinitives and
participles), the negation verb ei, or verbs not in the
indicative mood (see
http://scripta.kotus.fi/visk/sisallys.php?p=111; in Finnish).
Pres
: present tense
The present tense denotes actions that are happening right now or that usually happen.
Examples
- [fi] järjestelmä toimii “the system works”
Past
: past tense / preterite
The past tense denotes actions that happened before the current moment.
Examples
- [fi] joukkue voitti “the team won”
References
- http://scripta.kotus.fi/visk/sisallys.php?p=1523 (in Finnish)
- http://scripta.kotus.fi/visk/sisallys.php?p=1530 (in Finnish)
Typo
: misspelled
Boolean feature marking a word as involving misspelling, grammatical error, etc.
Yes: word has typo
Examples
- [fi] Toyotä (for Toyota)
Diffs
FinnTreeBank
The language-specific feature Typo is not in use in the FI_FTB corpus.
VerbForm
: form of verb or deverbative
Fin
: finite verb
Verbs that inflect for mood (Mood), tense (Tense) or person
(Person) are finite and are assigned the VerbForm
value Fin
.
Additionally, the negation verb ei only has finite forms (VISK §
108; in Finnish),
and is always annotated with VerbForm=Fin
.
Examples
- [fi] Minä ostin kahvia “I bought coffee”
- [fi] Minulla ei ole autoa “I do not have a car”
Inf
: infinitive
Words in infinitive forms are assigned the VerbForm
value Inf
.
Infinitive forms are further differentiated using the feature
InfForm.
UD Finnish recognizes three verb forms as infinitives, namely those known as the first, second and third infinitives (alternatively termed the A-, E- and MA-infinitives, see e.g. VISK § 119; in Finnish).
Examples
- [fi] He haluavat jutella “They want to talk” (first infinitive)
- [fi] ottaen huomioon “taking into account” (second infinitive)
- [fi] Menen katsomaan musikaalia “I am going to see a musical” (third infinitive)
Part
: participle
Words in participle forms are assigned the VerbForm
value Part
.
Participle forms are further differentiated using the feature
PartForm.
Examples
- [fi] Puolue on saanut tukea “The party has received support”
References
- http://en.wikipedia.org/wiki/Finnish_verb_conjugation#Infinitives_and_participles
- http://scripta.kotus.fi/visk/sisallys.php?p=444 (in Finnish)
- http://scripta.kotus.fi/visk/sisallys.php?p=108 (in Finnish)
- http://kaino.kotus.fi/visk/sisallys.php?p=120 (in Finnish)
- http://kaino.kotus.fi/visk/sisallys.php?p=121 (in Finnish)
Voice
: voice
The Voice
feature captures the distinction between active
and passive for verbs (fi-pos/VERB and fi-pos/AUX).
Act
: active voice
Examples
- [fi] valita paikka “select a place”
- [fi] minä voin käyttää “I can use”
Pass
: passive voice
Examples
- [fi] paikka on valittu “a place has been selected”
- [fi] sitä voidaan käyttää “it can be used”


Project Title: Njoy Teaching Assistant
Overview
Njoy Teaching Assistant is a command line interface(CLI) desktop application built by a team for 5 computing students for our Software Engineering project. It enables teachers of various disciplines to create a more interactive classroom through the use of slideshow and polling. Outside the classroom, it allows them to manage their classes, timetables, notes, questions and quizzes.
Below is an example image of the application:
I was tasked to brainstorm a solution that could enhance classroom learning and implement it. Eventually, I came up with the solution of using question prompts through a slideshow that is able to facilitate discussions in the classroom and at the same time, allow teachers to manage these questions more efficiently. The following sections includes my contribution to the project and selected key snippets of documentation that I wrote pertaining to my features for both the user and developer guides.
Certain special formatting are used in this document and their description is as follows:
| Format | Description |
|---|---|
|
Indicates a command, keyword or control for the user guide. For the developer guide, it indicates that it is a class, method or variable name. |
Indicates a link to a section in the document or to a web page. |
Summary of contributions
This section describes the various enhancements that I have contributed to the project which includes coding, documentation, project management and design.
-
Major enhancement: Added the ability for teachers to manage their questions.
-
What it does: Allows teachers to manage their questions more efficiently by providing a simple interface to create, edit, delete and find questions.
-
Justification: With teachers having to constantly prepare their questions before lessons and organise their questions for quizzes or homework, this feature will help to cut down the preparation time needed for such tasks.
-
Highlights: This enhancement is the basis for both the slideshow and quiz features and required an in-depth analysis on how teachers will use this feature, and how the questions can be presented in a simple yet intuitive manner. Moreover, it was challenging to adjust this feature such that it can be easily reused by both the slideshow and quiz features as they rely heavily on these questions.
-
-
Major enhancement: Added the ability for teachers to start a slideshow
-
What it does: Allows teachers to start an in-class activity with their students through a slideshow of questions that has an additional polling feature to garner responses from students.
-
Justification: Slideshow reduces the need for teachers to constantly write questions on the whiteboard and at the same time, interact with students through the use of polling to question their understanding about a topic before revealing the answer.
-
Highlights: This enhancement adds additional purpose to existing questions and required an in-depth analysis on how typical presentation software works so that using the slideshow feature will not feel foreign to the teachers. It was challenging to ensure that the controls are familiar to the teachers and the layout is simple enough for the students to view.
-
-
Minor enhancement 1: Restyled the general application interface.
-
Minor enhancement 2: Designed the Njoy logo and banner.
-
Code contributed: [Functional and test code]
-
Other contributions:
-
Project management:
-
Managed milestones and deadlines on Github.
-
Managed issue tracker and enforce feature assignment on Github.
-
Managed milestone version 1.3 release on Github.
-
-
Enhancements to existing features:
-
Documentation:
-
Community:
-
Tools:
-
Integrated a third party library (commons-text by Apache) to the project.
-
-
Contributions to the User Guide
Given below are the sections that I contributed to the User Guide. However, only a few key snippets of my contribution are included, which showcase my ability to write user documentation targeting end-users. The full User Guide can be found here |
Creating a question
Create and store questions according to the type specified.
Format: question question/… answer/… type/… (MCQ OPTIONS IF APPLICABLE)
|
Note
|
Note that for mcq question type, it is necessary to input keywords a/ , b/ , c/ , d/ .
|
The keywords supported by this feature includes:
| Keyword | Description |
|---|---|
|
Question topic. |
|
Answer to the question. |
|
Type of question( |
|
Option A for MCQ. |
|
Option B for MCQ. |
|
Option C for MCQ. |
|
Option D for MCQ. |
|
Note
|
Note that answer is free text and allows any input since answers may be accompanied with explanations.
Therefore, for mcq questions, ensure that the answer entered reflects the correct option.
|
Examples:
-
Open ended question:
question question/Which year did Singapore gain independence? answer/1965 type/open
Creates an open ended question with topic 'Which year did Singapore gain independence?' with answer '1965'. -
MCQ:
question question/Which year did Singapore gain independence? answer/1965 type/mcq a/1965 b/1963 c/1968 d/1970
Creates an mcq with topic 'Which year did Singapore gain independence?' with answer '1965' and choices '1965', '1963', '1968', '1970'.
Starting a Slideshow
Start a slideshow based on the questions selected. The sequence of the questions displayed will follow the ordering of input.
Format: question slideshow [QUESTIONS INDEX]
The keywords supported by this feature includes:
| Keyword | Description |
|---|---|
|
Index of questions separated by a whitespace. Follows the index as defined in the list and find commands. |
The following controls are used to navigate through the slideshow:
| Control | Description |
|---|---|
|
Go to next question. |
|
Go to previous question. |
|
Quit the slideshow. |
|
Show or hide the answer to the question. |
The following controls are used for polling mcq type questions:
| Control | Description |
|---|---|
|
Add one response to option A. |
|
Add one response to option B. |
|
Add one response to option C. |
|
Add one response to option D. |
Example:
-
question slideshow 1 2 3
Starts a slideshow with questions containing index '1', '2' and '3'.
Below is an example of how to navigate through the slideshow and utilise the polling feature:
Step 1. When the slideshow window appears, scroll between the questions using the Left arrow(←)
and Right arrow(→)
keys.
Step 2. Use the Space
key to show or hide the answer. For mcq type questions, you may use the 1-4
keys to add to the poll results for options A to D respectively.
Step 3. When you want to end the slideshow, use the Esc
key to exit or navigate beyond the last question of the slideshow and it will automatically exit.
Here is a summary of the various components of the slideshow feature:
Contributions to the Developer Guide
Given below are sections I contributed to the Developer Guide. Similar to the User Guide, only a few key snippets of my contribution are included, which showcase my ability to write detailed and comprehensive technical documentation that can be referenced by fellow developers. The full Developer Guide can be found here |
Find command
Implementation
The following is a detailed explanation of the operations QuestionFindCommand
performs.
|
Note
|
Note that questions searched using this command has it’s own ObservableList stored under QuestionBank#questionsFiltered .
|
Step 1. The QuestionFindCommand#execute(Model model)
method is executed. No validation is necessary here since it
does not write to the question list.
Step 2. The method QuestionBank#searchQuestions(String textToFind)
is then called through the Model#searchQuestions(String textToFind)
method.
Step 3. The existing QuestionBank#questionsFiltered
is cleared in case there are existing questions from a previous search. A temporary ArrayList<Question> similarAl
to store Question
objects
is also created to store similar questions.
Step 4. The QuestionBank#questions
list is iterated once and the search is performed on the user’s search term using 2 levels of searching.
Firstly, the question is tested to see if it matches the search term using the StringUtils.containsIgnoreCase(…)
method.
Next, if the search term is not found, we test the question to see if it is similar to the user’s search term using the LevenshteinDistance
method
that implements the Levenshtein distance formula with a threshold of 40 percent (See [Feature-Question-Design-Similarity]).
Step 5. The questions are then duplicated with their index appended to the question in order to keep a separate reference from the main QuestionBank#questions
list.
Questions that matches the search term will be added to the QuestionBank#questionsFiltered
list whereas for similar questions,
they will be added to the temporary similarAl
list instead.
Step 6. Both the QuestionBank#questionsFiltered
and similarAl
list is then sorted in ascending order of their question length.
Step 7. The similarAl
list is then appended to the QuestionBank#questionsFiltered
list.
Step 8. A new CommandResult
will be returned with a message stating the search term and the number of results returned.
Slideshow feature
The slideshow feature is dependent on the questions added by the question slideshow [QUESTIONS INDEX]
command and
interacts with the ModelManager
to retrieve the list of questions to be displayed in the slideshow.
The logic control for displaying the ui resides in the SlideshowWindow
class and handles the controls and instantiation
of the various QuestionPanel
that contains each question.
Below is the sequence diagram of the interactions that happen from when the slideshow command is entered, to the corresponding questions displayed in the slideshow.
Implementation
The following is an example and detailed explanation as to how the questions are fetched and displayed on the slideshow.
Step 1. The user requests to start a slideshow with a selection of questions using the question slideshow [QUESTIONS INDEX]
command.
This will add questions based on the Index
specified and will be added to the slideshowQuestions
list under the SavedQuestions
class.
The usage of Index
here is such that it follows the same convention of when the user edits or deletes a question.
|
Note
|
The order of the questions displayed on the slideshow will be based on the input order. |
Step 2. The command is executed and the MainWindow
calls CommandResult#isShowSlideshow()
to verify if the command specified
is to start a slideshow. The SlideshowWindow
is then displayed through the SlideshowWindow#slideShowWindow.show()
.
|
Note
|
The slideshow window has already been instantiated on application launch and the window is merely being hidden or shown. |
Step 3. The window is now visible and existing questions are cleared. The list of slideshow questions is then fetched through
Logic#getSlideshowQuestions()
which in turn calls the ModelManager#getSlideshowQuestions()
that fetches
the slideshowQuestions
list in SavedQuestions
.
Step 4. The user will then navigate and control the slideshow using the Left/Right
, Space
and Esc
key as defined by the key
listeners in SlideshowWindow#initialiseKeyboardControls(Stage root)
. The currQuestionIndex
will be incremented when
the user navigates to the next question and decremented when navigating to the previous question.
Step 5. The user exits the slideshow when the Esc
key event is triggered or when the currQuestionIndex
exceeds the questionPanels.size()
.
The behaviour of this follows the common procedure that most presentation programs adopt thus, it will not feel foreign to users.
Design Considerations
The following are the various design choices made regarding the feature and alternatives that were considered prior to implementation.
Controls
-
Current Implementation:
-
The choice of using the arrow keys for navigation and the
Escape
key to quit the slideshow is such that it will feel familiar to users who uses presentation programs often as they have similar controls. The only difference will be the usage of theSpace
key to show answers as it will be something new to the users and is unique to Njoy.
-
-
Alternatives Considered:
-
Usage of the
A
key to show answers. However, this is not very feasible as it is easily forgotten and not as user-friendly due to the smaller surface of the key as compared to theSpace
key.
-
Display
-
Current Implementation:
-
The ordering of the questions is defined based on the user input so it gives flexibility to the user to choose the ordering that they want the questions to be displayed.
-
Placement of the question numbering, topic, options and answer follows the common convention where the question numbering will be at the top followed by the topic, options and then the answer. This is such that viewers will not be confused by the layout.
-
Font sizes are displayed in the following descending order to allow the text for easy viewing:
-
Question Number
-
Question Topic & Options
-
Answer
-
-
-
Alternatives Considered:
-
Having a separate answer format for MCQ such that it will have an arrow beside the correct option e.g A) 1965 < (Answer). However, this is not feasible as it will break the standard formatting of the answers display since both
open
andmcq
questions will have 2 different answer formats and may cause confusion to the user.
-


This is audio tag
This is menu tag:
This is audio tag
This is time tag:
This is canvas tag
This is var tag
This is code_tag
This is form tag
This is details and summary tags
Some text
This is mark tag
This is navigation and link tags
This is meter tag
This is figure and img tags
This is datalist and option tags
This is textarea tag
This is strong, cursive, underlined tags