{% extends "account/email/base.html" %}
{% block body %}
Hello,
We received a request to reset your {{ config.BRAND }} password.
Click here to reset your password.
If you did not make this request, please ignore this email.
Regards,
{{ config.BRAND }} Team
{% endblock %}


I am an engineer and web developer who loves data and learning new things. I have worked as a teacher of mathematics and taught people of various cultures from around the world. I also have worked as an engineer and data scientist. I have just finished the highly competitive App Academy where I built multiple web applications. Check out my work and feel free to contact me.
Back to topPrograming languages/libraries: Ruby, Ruby on Rails, JavaScript, React.js, HTML, CSS, Matlab, R, VBA.
Other Skills: Mathematics(minor in mathematics), statistics, and engineering/problem solving(B.S. Mechanical Engineering).
Software: Excel and Microsoft Office suite, CAD (inventor, etc.);
Fluent in Spanish
Back to top


| Modifier and Type | Field and Description |
|---|---|
private boolean |
cleanTarget |
private boolean |
copy |
private java.lang.String |
copyToDirectory |
private boolean |
doInstall |
private boolean |
enabled |
private java.util.UUID |
id |
private boolean |
rename |
private java.lang.String |
renameString |
private java.lang.String |
taskName |
private boolean |
unpackage |
private java.lang.String |
workingDirectory |
| Constructor and Description |
|---|
Builder()
Required constructor to instantiate a new builder.
|
Builder(MavenTask task)
Copy-constructor to isntantiate a new builder from an existing object.
|
| Modifier and Type | Method and Description |
|---|---|
MavenTask |
build()
Builds a new
MavenTask object with the currently set variables of the builder. |
MavenTask.Builder |
cleanTarget(boolean cleanTarget)
Sets the cleanTarget flag for the builder.
|
MavenTask.Builder |
copy(boolean copy)
Sets the copy flag for the builder.
|
MavenTask.Builder |
copyToDirectory(java.lang.String copyToDirectory)
Sets the copy-to directory for the builder.
|
MavenTask.Builder |
doInstall(boolean doInstall)
Sets the doInstall flag for the builder.
|
MavenTask.Builder |
enabled(boolean enabled)
Sets the enabled flag for the builder.
|
MavenTask.Builder |
id(java.util.UUID id)
Sets the UUID for the builder.
|
private boolean |
isValid()
A helper function of the builder to validate the builder has enough information
to create a fully functioning
MavenTask object. |
MavenTask.Builder |
rename(boolean rename)
Sets the rename flag for the builder.
|
MavenTask.Builder |
renameString(java.lang.String renameString)
Sets the rename string for the builder.
|
MavenTask.Builder |
taskName(java.lang.String taskName)
Sets the task name for the builder.
|
MavenTask.Builder |
unpackage(boolean unpackage)
Sets the unpackage flag for the builder.
|
MavenTask.Builder |
workingDirectory(java.lang.String workingDirectory)
Sets the working directory for the builder.
|
private java.util.UUID id
private java.lang.String taskName
private java.lang.String workingDirectory
private java.lang.String copyToDirectory
private java.lang.String renameString
private boolean copy
private boolean rename
private boolean cleanTarget
private boolean unpackage
private boolean doInstall
private boolean enabled
public MavenTask.Builder id(java.util.UUID id)
id
- A valid UUID to identify the MavenTask
object.public MavenTask.Builder taskName(java.lang.String taskName)
taskName
- A String to identify the MavenTask
object.public MavenTask.Builder workingDirectory(java.lang.String workingDirectory)
workingDirectory
- The working directory of the MavenTask
object.public MavenTask.Builder copyToDirectory(java.lang.String copyToDirectory)
copyToDirectory
- The copy-to directory of the MavenTask
object.public MavenTask.Builder renameString(java.lang.String renameString)
renameString
- The rename string of the MavenTask
object.public MavenTask.Builder copy(boolean copy)
copy
- The copy flag of the MavenTask
object.public MavenTask.Builder rename(boolean rename)
rename
- The rename flag of the MavenTask
object.public MavenTask.Builder cleanTarget(boolean cleanTarget)
cleanTarget
- The cleanTarget flag of the MavenTask
object.public MavenTask.Builder unpackage(boolean unpackage)
unpackage
- The unpackage flag of the MavenTask
object.public MavenTask.Builder doInstall(boolean doInstall)
doInstall
- The doInstall flag of the MavenTask
object.public MavenTask.Builder enabled(boolean enabled)
enabled
- The enabled flag of the MavenTask
object.private boolean isValid()
MavenTask
object.


Serverless Subtitles
This is a simple service to generate subtitle from a video in another language
Constraints :
MP4 only
English spoking only
Maximum of 150Mb
Maximum of 2 concurrent workers (or whatever is your limit in AWS transcribe)
You must select a file
Upload
© 2018


MRISA
12 Mar 2014MRISA (Meta Reverse Image Search Api) is a RESTful api which takes an image url, does a reverse image search and returns a json array with standard search information such as title, description, destination url and the total number of search results. MRISA currently uses the google reverse image search.
Getting Stated
Install the neccessary dependancies using pip
pip install flask pycurl beautifulsoup4
Running the server
python mrisa/mrisa_server.py
Using cURL to make a call to the API
curl -X POST -H "Content-Type: application/json" -d '{"image_url":"http://upload.wikimedia.org/wikipedia/commons/2/29/Voyager_spacecraft.jpg"}' http://localhost:5000/search
There is a client implentation in python in the repository but it should be nice and easy to create one in most languages.
Download
Find out more and download a copy from GitHub.


Preparation time
1-2 hours
Cooking time
over 2 hours
Serves
Serves 6-8
I guess you could call this the national dish of Croatia. The key is the balance of sweet from the fruit, in this case prunes, and the red wine and balsamic vinegar.
Pierce the meat with the point of a sharp knife and insert the garlic slivers and bacon lardons into the slits. Put the beef in a dish, pour the vinegar all over it, cover and leave for an hour or two in the fridge.
Preheat the oven to 160C/140C Fan/Gas 3.
When ready to cook, season the beef with salt and pepper. Heat a couple of tablespoons of the olive oil in a flameproof lidded casserole pan over a high heat, add the beef and brown it all over.
Add the remaining olive oil, the onions, celery, carrots and red wine. Bring to the boil. Cover and transfer to the oven and cook for about an hour.
Remove from the oven and add the apples, prunes, tomatoes, sugar and herbs, and a little water if it is looking at all dry. Return to the oven to cook for a further hour with the lid on, or until the meat and vegetables are tender.
Remove the meat, vegetables and fruit from the sauce and keep warm. Heat the sauce to reduce in volume to thicken it, if necessary. Taste and check the seasoning.
Carve the meat into 1cm/½in thick slices and serve with the sauce and gnocchi.


In my projects with the Pi2 i use a lot of midi-controller signals, and as you know this is a non-common baud rate of 31250 baud. You might consider a usb midi-converter but i really like to work with the uart.(short lines/solid connection).
With ttyAMA0 on the gpio header of the Pi2 i could reprogram this uart to generate the midi baud rate and work smoothly with the midi applications. This was done by adding init_uart_clock=2441406 and init_uart_baud=38400 in the /boot/config.txt file. At the end of the line In /boot/cmdline.txt bcm2708.uart_clock=3000000 must be added. After rebooting, the Pi2 generated the physical midi-baud rate on it’s ttyAMA0 under the 38400 commonly used baud rate. No sweat!
So let us go to the new Pi3:
I found out, like a lot of other people, that the ttyAMA0 uart was no longer on the gpio header, but in use by the Bluetooth device. In stead of the ttyAMA0, the software uart ttyS0 has been brought to the gpio header BCM gpio14/15 and is by default the console for logging in by serial connection.
There would not be a problem with this swapping if the uarts were of the same quality, but apparently this is not the case: as i mentioned the ttyS0 is a software uart and it’s clock is directly dependent on the arm_freq, which is far from constant. Furthermore you can’t adjust the divider to get different baud rates than the common ones. That is why you can see a lot of garbage spitting out of this console on your screen if you connect your pi3 by a serial connection and check it with Putty on 115200 baud.
The RaspberryPi team made an effort to help us out in this. By means of an dtoverlay we can switch back the ttyAMA0 to the header BCM gpio14/15. I read there is also a possibility to maintain the Bluetooth device which is working after the overlay with the unstable ttyS0, but i am not interested in that….i got rid of the Bluetooth device and have my ttyAMA0 back on the header and set it to the midi baud rate. This is what i did:
First:
Get the Jessie version of 18 March 2016 or later from the Raspberry site.( https://www.raspberrypi.org/downloads/raspbian/)
Expand Filesystem on your card in Preferences and disable serial. Reboot. sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade !!!
sudo rpi-update !!!
Disable bluetooth and put ttyAMA0 back on BCM gpio’s 14&15:
sudo nano /boot/config.txt
Add the following:
dtoverlay=pi3-miniuart-bt
exit en save file
Stop the Bluetooth device from attempting to connect with the uart:
sudo systemctl disable hciuart sudo nano /lib/systemd/system/hciuart.service change the first ttyAMA0 in ttyS0
If not already, remove console=serial0,115200 in/boot/cmdline.txt
So now everything is set for swapping the ttyAMA0 back on the gpio header the next reboot of the the Pi, but before doing so you can add the following in /boot/config.txt file:
sudo nano /boot/config
init_uart_clock=39062500 (or the same as with pi2: 2441406)
init_uart_baud=38400
dtparam=uart0_clkrate=48000000 (or the same as with pi2:3000000)
The uart_clock of the Pi2 is default at 3000000 Hz.
The uart_clock of the Pi3 is default: 48000000Hz
I use the uart_clkrate of 48000000 because that gives a more accurate baud rate, but it works also with the Pi2 setting of 2441406 / 3000000.
Save and exit and reboot.
After rebooting you can check your uart_clock by typing: vcgencmd measure_clock uart. It will prompt: frequency(22)=39063000 (with uart_clkrate=48000000) or 2442000 (uart_clkrate=3000000)
So now you can write sofware (eg Python) to work with midi keyboards/controllers by adding at the top of your program: import serial, ser=serial.Serial(‘/dev/ttyAMA0’, 38400.
When you connect your midi-device to the gpio Rx and Tx, please bear in mind to you use an opto-coupler (standard midi-in) for not to exceed the maximum of 3,3V for a high-level signal on Rx!
MIDI baud rate on uart0/ttyAMA0 Raspberry Pi3.
Submitted by tronix on Sun, 27/03/2016 - 23:05Midi baudrate on the uart0/ttyAMA0 Raspberry Pi3.
In my projects with the Pi2 i use a lot of midi-controller signals, and as you know this is a non-common baud rate of 31250 baud. You might consider a usb midi-converter but i really like to work with the uart.(short lines/solid connection).
With ttyAMA0 on the gpio header of the Pi2 i could reprogram this uart to generate the midi baud rate and work smoothly with the midi applications. This was done by adding init_uart_clock=2441406 and init_uart_baud=38400 in the /boot/config.txt file. At the end of the line In /boot/cmdline.txt bcm2708.uart_clock=3000000 must be added. After rebooting, the Pi2 generated the physical midi-baud rate on it’s ttyAMA0 under the 38400 commonly used baud rate. No sweat!
So let us go to the new Pi3:
I found out, like a lot of other people, that the ttyAMA0 uart was no longer on the gpio header, but in use by the Bluetooth device. In stead of the ttyAMA0, the software uart ttyS0 has been brought to the gpio header BCM gpio14/15 and is by default the console for logging in by serial connection.
There would not be a problem with this swapping if the uarts were of the same quality, but apparently this is not the case: as i mentioned the ttyS0 is a software uart and it’s clock is directly dependent on the arm_freq, which is far from constant. Furthermore you can’t adjust the divider to get different baud rates than the common ones. That is why you can see a lot of garbage spitting out of this console on your screen if you connect your pi3 by a serial connection and check it with Putty on 115200 baud.
The RaspberryPi team made an effort to help us out in this. By means of an dtoverlay we can switch back the ttyAMA0 to the header BCM gpio14/15. I read there is also a possibility to maintain the Bluetooth device which is working after the overlay with the unstable ttyS0, but i am not interested in that….i got rid of the Bluetooth device and have my ttyAMA0 back on the header and set it to the midi baud rate. This is what i did:
First:
Get the Jessie version of 18 March 2016 or later from the Raspberry site.( https://www.raspberrypi.org/downloads/raspbian/)
Expand Filesystem on your card in Preferences and disable serial. Reboot.
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade !!!
sudo rpi-update !!!
Disable bluetooth and put ttyAMA0 back on BCM gpio’s 14&15:
sudo nano /boot/config.txt
Add the following:
dtoverlay=pi3-miniuart-bt
exit en save file
Stop the Bluetooth device from attempting to connect with the uart:
sudo systemctl disable hciuart
sudo nano /lib/systemd/system/hciuart.service
change the first ttyAMA0 in ttyS0
If not already, remove console=serial0,115200 in/boot/cmdline.txt
sudo nano /boot/cmdline.txt
delete: console=serial0,115200
So now everything is set for swapping the ttyAMA0 back on the gpio header the next reboot of the the Pi, but before doing so you can add the following in /boot/config.txt file:
sudo nano /boot/config
init_uart_clock=39062500 (or the same as with pi2: 2441406)
init_uart_baud=38400
dtparam=uart0_clkrate=48000000 (or the same as with pi2:3000000)
The uart_clock of the Pi2 is default at 3000000 Hz.
The uart_clock of the Pi3 is default: 48000000Hz
I use the uart_clkrate of 48000000 because that gives a more accurate baud rate, but it works also with the Pi2 setting of 2441406 / 3000000.
Save and exit and reboot.
After rebooting you can check your uart_clock by typing: vcgencmd measure_clock uart. It will prompt: frequency(22)=39063000 (with uart_clkrate=48000000) or 2442000 (uart_clkrate=3000000)
So now you can write sofware (eg Python) to work with midi keyboards/controllers by adding at the top of your program: import serial, ser=serial.Serial(‘/dev/ttyAMA0’, 38400.
When you connect your midi-device to the gpio Rx and Tx, please bear in mind to you use an opto-coupler (standard midi-in) for not to exceed the maximum of 3,3V for a high-level signal on Rx!


| Apache Struts 2 Documentation > Home > Tutorials > JasperReports Tutorial |
| The support for JasperReports is an optional download. This product is distributed under the LGPL and cannot be bundled with Apache Licensed products. |
JasperReports is one of the leading open-source Java reporting libraries. It compiles .jrxml (XML source) to .jasper (=compiled version) files, which in turn can be transformed to several output types (PDF, CSV, XLS and HTML).
In the following example, we will use the framework to dynamically create a PDF with a list of persons. Our action will be used to create a List with objects, and our JasperReport Result will use this list to fill our template, and return the PDF.
I assume you already have a SAF webapp working.
| Note: although this is a very simple example, I suggest you read the fine documentation of both SAF and JR. |
| Used versions Webwork 2.2 beta 3 (but should apply to previous versions) |
Right, let's begin.
We start by defining a simple POJO class: Person.java
package com.mevipro.test; public class Person { private Long id; private String name; private String lastName; public Person() { super(); } public Person(String name, String lastName) { super(); this.name = name; this.lastName = lastName; } public Person(Long id, String name, String lastName) { super(); this.id = id; this.name = name; this.lastName = lastName; } /** * @return Returns the id. */ public Long getId() { return id; } /** * @param id The id to set. */ public void setId(Long id) { this.id = id; } /** * @return Returns the lastName. */ public String getLastName() { return lastName; } /** * @param lastName The lastName to set. */ public void setLastName(String lastName) { this.lastName = lastName; } /** * @return Returns the name. */ public String getName() { return name; } /** * @param name The name to set. */ public void setName(String name) { this.name = name; } }
Nothing special. Just your basic properties, constructor, getters and setters.
Before we can continue, we need to add the JR libraries to our classpath. You can download the JR project here: http://www.sourceforge.net/projects/jasperreports
Save the jasperreports-X-project.zip to your harddisk, and extract the files.
We need the following files:
Copy these jars over to your WW_WEBAPP/WEB-INF/lib directory, and add them to your classpath.
package com.mevipro.test.action; import java.util.ArrayList; import java.util.List; import net.sf.jasperreports.engine.JasperCompileManager; import com.mevipro.test.Person; import com.opensymphony.xwork.ActionSupport; public class JasperAction extends ActionSupport { //basic List - it will serve as our dataSource later on private List myList; /* * (non-Javadoc) * * @see com.opensymphony.xwork.ActionSupport#execute() */ public String execute() throws Exception { // create some imaginary persons Person p1 = new Person(new Long(1), "Patrick", "Lightbuddie"); Person p2 = new Person(new Long(2), "Jason", "Carrora"); Person p3 = new Person(new Long(3), "Alexandru", "Papesco"); Person p4 = new Person(new Long(4), "Jay", "Boss"); /* * store everything in a list - normally, this should be coming from a * database but for the sake of simplicity, I left that out */ myList = new ArrayList(); myList.add(p1); myList.add(p2); myList.add(p3); myList.add(p4); /* * Here we compile our xml jasper template to a jasper file. * Note: this isn't exactly considered 'good practice'. * You should either use precompiled jasper files (.jasper) or provide some kind of check * to make sure you're not compiling the file on every request. * If you don't have to compile the report, you just setup your data source (eg. a List) */ try { JasperCompileManager.compileReportToFile( "WW_WEBAPP/jasper/our_jasper_template.jrxml", "WW_WEBAPP/jasper/our_compiled_template.jasper"); } catch (Exception e) { e.printStackTrace(); return ERROR; } //if all goes well .. return SUCCESS; } /** * @return Returns the myList. */ public List getMyList() { return myList; } }
Once again - I guess everything is pretty clear. Our JasperAction will create a list of several People. The JasperCompileManager will then compile the jrxml template to a .jasper file.
| Again, don't use this in production code. You should of course either provide compiled templates, or do some sort of checking to avoid compiling the template on every request. But for our demonstration, or development, this suits our needs just fine. |
JR uses a special XML page to define templates which will be compiled to .jasper files. These templates will be used to design the resulting report. It's pretty straightforward.
This is a handwritten version - for more complex versions I seriously suggest taking a look a the various GUI designers.
<?xml version="1.0"?> <!DOCTYPE jasperReport PUBLIC "-//JasperReports//DTD Report Design//EN" "http://jasperreports.sourceforge.net/dtds/jasperreport.dtd"> <jasperReport name="jasper_test">  <field name="name" class="java.lang.String"/> <field name="lastName" class="java.lang.String"/> <title> <band height="50"> <staticText> <reportElement x="0" y="0" width="180" height="15"/> <textElement/> <text> <![CDATA[Webwork JasperReports Sample]]> </text> </staticText> </band> </title> <pageHeader> <band></band> </pageHeader> <columnHeader> <band height="20"> <staticText> <reportElement x="180" y="0" width="180" height="20"/> <textElement>  </textElement> <text> <![CDATA[NAME]]> </text> </staticText> <staticText> <reportElement x="360" y="0" width="180" height="20"/> <textElement>  </textElement> <text> <![CDATA[LASTNAME]]> </text> </staticText> </band> </columnHeader> <detail> <band height="20"> <textField> <reportElement x="180" y="0" width="180" height="15"/> <textElement/> <textFieldExpression> <![CDATA[$F{name}]]> </textFieldExpression> </textField> <textField> <reportElement x="360" y="0" width="180" height="15"/> <textElement/> <textFieldExpression> <![CDATA[$F{lastName}]]> </textFieldExpression> </textField> </band> </detail> <columnFooter> <band></band> </columnFooter> <pageFooter> <band height="15"> <staticText> <reportElement x="0" y="0" width="40" height="15"/> <textElement/> <text> <![CDATA[Page:]]> </text> </staticText> <textField> <reportElement x="40" y="0" width="100" height="15"/> <textElement/> <textFieldExpression class="java.lang.Integer"> <![CDATA[$V{PAGE_NUMBER}]]> </textFieldExpression> </textField> </band> </pageFooter>  <band></band>  </jasperReport>
Save this file in WW_WEBAPP/jasper/ as 'our_jasper_template.jrxml'.
Most important: we declared the fields name and lastName (not surprisingly, two properties from our Person.class). This means we will now be able to use these fields in our Jasper template.
We define two columnheaders (NAME and LASTNAME), and then add our fields to the detail band (for a better explanation, look at the JR tutorial). This 'detail' band will iterate over our List of People. This is the default behaviour of JR - so if you want to display more information from the Person, add them to this band.
In the detail band we use the
$F{name}
expression. This means JR will ask WW how to retrieve the field value. WW will happily look up this value in the stack (find the person, and invoke the getName() getter), and return it. Similar for the
$F{lastName}
The rest is mostly markup to define the layout.
| Use a logger (commons-logging, log4j, ..) to watch com.opensymphony.webwork.views.jasperreports in debug mode, if you have any troubles |
Alright, time to add the action to our xwork.xml file:
<action name="myJasperTest" class="com.mevipro.test.action.JasperAction"> <result name="success" type="jasper"> <param name="location">/jasper/our_compiled_template.jasper</param> <param name="dataSource">myList</param> <param name="format">PDF</param> </result> </action>
Let's explore this a bit further. I assume you are familiar with the xwork notation & schema, if not, check the documentation.
<action name="myJasperTest" class="com.mevipro.test.action.JasperAction">
We simply register our JasperAction with the name 'myJasperTest' - this means that we can execute this Action by sending a request to myJasperTest.action in our browser.
<result name="success" type="jasper">
When our JasperAction executes correctly, we will use the Result type registered with the name 'jasper'. This is already done when you include the webwork-default (
<include file="webwork-default.xml"/>
). This result type will be configured by our params, which we'll specify below:
<param name="location">/jasper/our_compiled_template.jasper</param>
This parameter defines the location of our compiled jasper file, which will be filled by WW with our dataSource:
<param name="dataSource">myList</param>
The name of the dataSource - this is the name of the getter you want to call (this will result in a getMyList() call to your JasperAction). It will be used to fill the template with data.
<param name="format">PDF</param>
This specifies the format to which the jasper file will be transformed. Possible values are: PDF, CSV, XLS and HTML.
You should now be able to execute http://localhost:8080/YOUR_WEBAPP/myJasperTest.action - and you should see a nice list of names.
WW provides probably the most elegant way to deal with JasperReport files; specify the location of the .jasper file, specify what dataSource you want to use, and there you go.


ViewGradient
public struct ViewGradient
Represents a gradient that can be applied to a view. It can have many colors distributed in many ways and directions.
Note
There can only be one gradient at a time in a view.-
Direction of the gradient.
Declaration
Swift
public let direction: GradientDirection
-
GradientColors involved in the order involved.
Declaration
Swift
public let colors: [GradientColor]
-
Initializes an inmutable ViewGradient.
Declaration
Swift
public init(colors: [GradientColor], direction: GradientDirection)
Parameters
colors
Array of GradientColors to be used.
direction
Direction in which the gradient should develop.
-
Initializes an inmutable ViewGradient.
Declaration
Swift
public init(colors: [UIColor], direction: GradientDirection)
Parameters
colors
Array of UIColors in the order in which to place them. They will be evenly separated.
direction
Direction in which the gradient should develop.


List of Customers
FirstName
LastName
BirthDate
Email
PhoneNumber
Country
City
Add Customer
FirstName
LastName
BirthDate
Email
PhoneNumber
Country
City
Save
Reset


Keyboard instructions
Use following key to move rover bot in different direction. Press following keys on keyboard
- 'a' to add a new bot
- 'n' to move in North direction
- 's' to move in South direction
- 'e' to move in East direction
- 'w' to move in West direction
- 'r' to turn right
- 'l' to turn left
- 'f' to move in forward direction


No account yet?
Shopping Cart
CloseHome / About us | Basira
About Basira – it is a food delivery company which commenced operations in 2020 with a goal of serving convenience to customers by providing quality and healthy home-made Nigerian meals and delivering to their doorstep with no hassle, thereby eliminating the time spent driving through traffic to get a meal while bringing you tasty goodness to the comfort of your doorstep.
Our MENU caters for everyone as our variety ranges from breakfast, lunchpack, dinner meals and outdoor catering(for your office parties, birthdays and ceremonies)
We are committed to serving you better and are open to your suggestions and objective critique as we aim to partner with our customers to build a formidable brand.
Craving home-made food, just Call Basira
Your email address will not be published. Required fields are marked *
No 11 iweka road Onitsha, grab your copy now
Call 0809jaforlife
Social Media


Scroll window to the element and focus on the element
mac-focus-on-eventType: StringEvent to focus on element
String
mac-focus-on-event-scrollType: BooleanScroll to element location or not
Boolean


Toggle Navigation
Laravel
Home
News
ID
Title
image_link
created_at
Add New news
{{ dfg.id }}
{{ dfg.title }}
{{ dfg.description }}
{{ dfg.created_at }}
Edit
Delete
×
{{form_title}}
Title
Title field is required
Image link
Image link field is required
Description
Description field is required
Created at
Created at field is required


NOTHING TO HIDE
a surveillance state satire
This is a
polished prototype of my upcoming game.
Not even an alpha or demo.
But that's why you, dear playtester, matter the most during this stage.
Thank you in advance for your critiques & feedback on this early game.
Please enjoy!
P.S: This game doesn't work in Internet Explorer, for some reason, and that reason is Internet Explorer.
Please use Chrome or Firefox!


Since ages throwing a ball has been one of the biggest sports in the world. Baseball, handball and American football. But taking it one step further, Color Splat forces the player to be both strategic and work out to hit the evil characters trying to break into your fortress.
The game combines both reality and the virtual world when the player must use a physical ball, to throw towards the screen, which then continues into the unreality. To then reload the player needs to get the ball - wherever it landed. This game is a creative game changer making the player solve the old throw-a-ball game in a completely different way.
Give it a try and we promise that you will both laugh and do your daily workout.
Peace out!
The ColorSplat team
This project was made for the Advanced Graphics and Interaction course at KTH.
Visualisation Studio VIC, KTH Royal Institute of Technology.
Award winner of the category
Motivation of the jury:
"Med en Tydlig Presentation har Vinnaren i kategorin 'Nästa Publikmagnet' visat en applikation som på ett lekfullt sätt kopplar det fysiska med det digitala. Projektet är roligt, robust och fungerar för alla åldrar. En given publikmagnet."
"With a clear presentation has the winner of 'Next public magnet' shown an application that playfully connects physical activity with digital interaction. The project is fun, robust and entertains players from all ages. A definite public magnet."
The most nominated project: 3 different nominations!
Creative Technical Implementation
Next Public Magnet
Best Interaction Design
Human Computer Interaction
Viktor loves to move. Dancing, running, jumping, climbing. It's is an essential part of life and vital to stay healthy. Unfortunately, Viktor doesn’t like working out. Thus he has been part in creating a game that makes the player move and exercise, while keeping it fun! Viktor worked on the simulation of the virtual ball's trajectory that continues from the softball.
Computer Science
Emilie must be the luckiest person in the world… She usually has a terrible throw, but she performed the best one-shot on the first take of the promotional video! And she’s lucky because she recruited the perfect viktorious team for the project. She worked on the interface between the interaction and the game scene, by having CCV and TUIO to comply to her envies.
Media Technology
Viktor has since childhood thrown balls. To friends, to birds and through windows. But now he has taken his old interest and made it into a game with the rest of the team. An awesome game. And now everyone can throw balls. In this project Viktor has designed some enviroment and created the particle system that renders the clouds. Yep - there is a cloud. Just look closer!


Membership Information
Thank you for your interest in joining the Thursday Network! Thursday Network (TN) is an organization committed to uplifting the Metropolitan DC area while fostering the personal and professional development of our members.
Our membership is comprised of young professionals ages 21-40. We look forward to your participation in continuing our efforts to make a difference in the Greater Washington DC community. Our members play an active role in our community-service projects and are encouraged to participate in at least three community service events per year.
In order to become a member, you must complete an application and pay $100 dues, which entitles you to membership of the National Urban League, Greater Washington Urban League, Thursday Network and National Urban League Young Professionals for one year.
All potential members are encouraged to attend a General Body Meeting and New Member Open House before joining Thursday Network. Please check our Thursday Network Google Calendar for our upcoming General Body Meetings and New Member Open Houses. For more information contact<EMAIL_ADDRESS>Membership Benefits
- Discounted registration to National Urban League & NULYP annual conferences
- Discounted or free admission to Thursday Network and partner organization events
- Membership into the Greater Washington Urban League, National Urban League, and NULYP
- Certified Greater Washington Urban League Speakers Bureau Member
- Discounted ZipCar Membership and rental rates
- Professional Development and Community Service Hours Certificates
- Free tickets to advance movie screenings, sporting events, and other local events
- Exclusive “Members Only” Newsletter and listserv with other members-only offers and information
- Volunteer and network with like-minded individuals who are creating positive change in the community
- Access to dynamic speakers via professional workshops and seminars
- Opportunities to cultivate a mentor relationship with local leaders and established professionals in the Greater Washington Metropolitan area
- Exclusive invitations to local social and professional networking events
| Item |
Price |
Select |
| New Member Fee |
$100 |
|
| Membership Renewal |
$100 |
|
***Please note, to become a new member or to renew your membership, you must complete this application and email it to<EMAIL_ADDRESS>as well as pay your $100 dues.


Emirates to buy 50 Airbus A350s worth $16bn
Delivery expected from 2023 to 2028
Emirates has ordered 50 Airbus A350 jets worth $16 billion (€14.5 billion) at list prices, which would help the Dubai government airline serve more markets as it seeks to improve the flexibility of its fleet.
At the Dubai air show, the company on Monday placed a firm order for 50 A350-900 XWB aircraft, with delivery expected from May 2023 to 2028.
The deal replaces an initial agreement in February when Emirates announced an intention to buy 30 A350s and 40 A330 Neos.
Emirates operates an all wide-body fleet of Airbus A380s and Boeing 777s, serving 150 cities from its hub in Dubai.
“Complementing our A380s and 777s, the A350s will give us added operational flexibility in terms of capacity, range and deployment,” said Sheikh Ahmed bin Saeed Al Maktoum, Emirates chairman and chief executive.
The A350, which is powered by Rolls-Royce Trent XWB engines, would allow Emirates to serve a range of new markets within the region and on long-haul missions of up to 15 hours from Dubai, the airline said.
Emirates said it intends to equip the A350s with different cabin combinations, including a “premium economy” option. – Copyright The Financial Times Limited 2019


Data Mining Process Overview¶
The process we will be following throughout this course is known as the Cross-Industry Standard Process for Data Mining (CRISP-DM), one of the most widely used methods for data mining.
Fig. 1 - This is the CRISP-DM Process. |
The CRISP-DM process is made up of several parts:
Data
Business Understanding and Data Understanding (iterative)
Data Preparation and Data Modeling (iterative/dependent)
Evaluation
Deployment
Data mining is not a clear-cut process and sometimes may require you to go back to part one even after getting to your evaluation.
The first part of the process, Business Understanding, requires you to understand what it is you are trying to achieve from a business perspective. This will involve measuring the criteria which will determine whether or not the project was successful.
When developing a business understanding, it should be known there are 3 potential outcomes when it comes to data mining:
Descriptive - using data to develop insights into what already happened
Predictive - using data to forecast potential future outcomes
Prescriptive - using data to guide decision making
Let’s look at Zillow, an online real estate marketplace, as an example of how someone may pose questions differently depending on these 3 potential outcomes:
Descriptive - What kind of houses sell fast?
Predictive - How much will this house sell for?
Prescriptive - What listings should be featured?
The next step in our process, which goes hand-in-hand with Business Understanding, is Data Understanding. Understanding your data will require you to process what data you will need and how to get that data. You may collect it yourself, use publicly available data, or purchase data.
Once there is a clear understanding of what you are trying to achieve and how you plan to achieve it, you will move on to the next step, Data Preparation, which will allow you to perform data mining techniques on that data. Preparing your data can involve many different steps, including but not limited to: dealing with missing variables or outliers, rescaling your data, and creating dummy variables for qualitative values.
At the Modeling stage, you will need to determine what type of data mining process to apply. This will require you to determine if this is a problem where there is an intended problem or outcome that can be a variable. If so, it will have you using a supervised model. If there is not then you will be using an unsupervised model. We will discuss these models in more detail later on in the chapter.
We see that the Data Preparation and Modeling stages are closely related; this is because our data modeling is dependent on the way we structure our data. Once we have decided on a model for our data, it is time for the Evaluation stage. For predictive models, we see how well the model works based on the use of an entirely new dataset. The comparison of this new data with the original model will gauge predictive accuracy.
Depending on the results of the evaluation, we now may be ready for the final stage or we may need to revert back to the original stage. The final stage of the process is the Deployment stage. This is where the model is ready to be released and shared for implementation. It is important to note that though this is the final stage, the data mining cycle is continuous and ongoing. As such, it is very likely this model will be revised in the future.
(Concluding Paragraph on DM Process)
Data Sets¶
(Introductory paragraph for data set info)
Now we are going to see what a data set could look like. We use a table to represent the dataset where each row is a record/observation and each column is variable. A record/observation could be information about a specific customer or a specific property if you are a company like Zillow. The variables reflect different pieces of information about each record.
Suppose we want to collect information about Gies Business students.
YEAR |
MAJOR |
INTERNSHIP TYPE |
|
|---|---|---|---|
Student 1 |
Freshman |
ACCY |
Non-profit |
Student 2 |
Junior |
FIN |
Banking |
Student 3 |
Sophomore |
OM |
Tech |
Student 4 |
Senior |
ACCY |
Banking |
Student 5 |
Senior |
IS |
Tech |
Student 6 |
Freshman |
SCM |
Retail |
Student 7 |
Sophomore |
FIN |
Banking |
Student 8 |
Sophomore |
OM |
Retail |
(Table continues) |
Each row will correspond to a single student and the columns represent information about each student, such as their year, major and what type of internship they most recently completed. It is likely that you will be dealing with large databases when working for a company. In this case, it is more practical to work with a sample of the dataset in order to build and test your model.
The process of taking a sample from the dataset and using it to create your final model with which you will make predictions for records in the larger database is called scoring. In this case, sample refers to a collection of observations, but in the machine learning community, sample refers to a single record.
It is important to note data points in your sample will have an impact on your model. Particularly, an imbalanced sample which doesn’t reflect the broader population will lead to algorithmic bias.
An example of this is Amazon using AI when trying to screen job applications. Going through thousands of applications seemed like a monotonous job, so Amazon figured they could use AI to automate the process and they did just that in 2014. One issue came with how Amazon built their model: by scanning through past applicant resumes. The majority of past applications were from male applicants, which led the AI algorithm to penalize women applicants for going to woman schools and even having the word “woman” in their resume. Amazon ultimately discarded this project in 2018 as its algorithm was shown to be discriminatory. Algorithms are meant to alleviate human biases, not to exacerbate them.
Types of Data¶
There are two main types of variables: numerical and categorical.
Numerical variables can either be continuous, meaning they can be any real number, or an integer. These variables usually do not require special processing.
Categorical variables are used to represent categories or classes. They can be coded as either text or integers. Categorical variables can be either nominal or ordinal, nominal being unordered and ordinal being ordered. An example of a nominal variable would be college majors, as there is no inherent ranking between different fields of study. Ordinal variables, on the other hand, do have an inherent characteristic order with labels such as low, medium and high. In order for a machine learning algorithm to process categorical data that is text, it needs to be converted to numbers.
Nominal variables would be converted to dummy variables, usually taking a value of either 0 or 1, whereas ordinal variables would be converted to integers which represent their inherent ranking. Let’s look at an example of this using student data.
Fig. 2 - Nominal variables do not have an inherent order, whereas ordinal variables do. |
As mentioned earlier, majors are an example of nominal variables. In order to turn these variables into numbers, we need to create dummy variables.
We would create 2 new columns: Major_Accy and Major_OM. In the Major_Accy column, we would put a 1 for that row if the student is an accounting major and a 0 otherwise. We would follow the same rule for the Major_OM column. The other column would be considered an ordinal value as order does matter, so we would use values such as “First” through “Fourth” year, and convert those to numbers 1-4 to place in the appropriate row based on the student’s year in school.
random_df = pd.get_dummies(data_df, prefix_sep='_', drop_first=True)
random_df.columns
Converting variables is a very common data pre-processing step. Other common steps in the data pre-processing stage include detecting and possibly removing outliers, handling missing data, and normalizing data.
As you may have noticed, many of our variable names include underscores as opposed to spaces. Stripping leading and trailing spaces is an important part of cleaning up your data and reformatting it so that it is Python-friendly.
new_names = [s.strip().replace(' ', '_') for s in random_df.columns]
random_df.columns = new_names
random_df.columns
Additionally, in order to begin analyzing our data, we will need to split the predictor and outcome variables. We can accomplish this by dropping the outcome_variable from the initial dataframe(random_df) and assigning the outcome_variable to ‘y’:
X = random_df.drop('outcome_variable', axis=1) # all variables EXCEPT outcome variable
y = random_df.outcome_variable # just the outcome variable
Outliers
An outlier is an extreme observation, meaning that it is something that is further away from the other data points. These outliers can end up significantly affecting the outcome of the model.
In the figure, we see the independent variable speed on the horizontal axis and the dependent variable distance on the vertical axis. We’ve plotted two graphs: one with outliers (left) and one without (right). We see that the majority of our data points are on the bottom left of the graph, with only a few points at the upper right hand corner (graph on the left). A simple regression line is fit, and we observe the slope of this graph is pretty steep.
When we remove the outliers and fit the model again (graph on the right), the line has a significantly less steep slope. In the second model, the prediction of distance for larger speed values is significantly smaller than that in the first model.
When outliers are identified, removing them is not always necessary. However, outliers must be detected and then carefully examined. You must use your domain knowledge to determine whether or not they are appropriate to keep in the dataset.
Missing Values
Another issue you will face is missing values in your dataset. You should expect that when you get a dataset, some records will not have data for every single variable.
There are different ways to deal with this. The first solution to this problem is omission.
Variable 1 |
Variable 2 |
Variable 3 |
|
|---|---|---|---|
Record 1 |
x |
x |
x |
Record 2 |
x |
x |
x |
Record 3 |
x |
||
Record 4 |
x |
x |
x |
Record 5 |
x |
x |
x |
Record 6 |
x |
||
Record 7 |
x |
x |
x |
Record 8 |
x |
x |
x |
Your missing data could be concentrated in a small number of records. In the example shown above, missing data appears only in Records 3 and 6, so we could simply choose to omit those records.
If your data is concentrated in a small number of variables, you can remove that variable from your dataset. Since we see missing data only occurs in variable 2, we would omit that column from our data frame. However, you may not want to omit entire records or variables because you would lose the information that they do contain.
Another option would be to replace the missing values with a substitute such as the mean or median of all the records. This process is called imputation.
Variable 1 |
Variable 2 |
Variable 3 |
Variable 4 |
|
|---|---|---|---|---|
Record 1 |
1 |
4 |
5 |
2 |
Record 2 |
3 |
3 |
||
Record 3 |
5 |
2 |
9 |
|
Record 4 |
3 |
8 |
2 |
3 |
Let’s use imputation to handle missing values in the dataset above and replace all missing values with the mean of the remaining records.
The first missing value is Variable 1 for Record 2:
Sum of the variable values for the other three records: \( 1 + 5 + 3 = 9 \)
Mean: \( 9 /3 = 3 \)
The second missing value is Variable 3 for Record 2:
Sum of the variable values for the other three records: \( 5 + 9 + 2 = 16 \)
Mean: \( 16 / 3 \approx 5.34 \)
The final missing value is Variable 4 for Record 3:
Sum of the variable values for the other three records: \( 2 + 3 + 3 = 8 \)
Mean: \( 8/3 \approx 2.67 \)
Rescaling Data
The fourth and final pre-processing step we’ll discuss is rescaling data.
Sometimes you may come across a dataset that has vastly different ranges of values. Take for example a data frame storing values for prices of homes, which would be in the range of thousands, and other variables such as number of rooms, which would likely not be over the teen values.
For some machine learning algorithms, this difference in scale will negatively affect performance, so we rescale the data.
There are two ways we can rescale:
First, we can standardize the data for a given variable. To do this we would need to calculate the mean and standard deviation for that variable. Then, for each observation for that variable, we subtract the average and divide by the standard deviation.
The formula to standardize data is: $\( x_{new} = \frac{x - \mu}{\sigma} \)$
A second option is to normalize the data. In this case, we want to rescale all of the values for a given variable to be between 0 and 1. We do this by subtracting the minimum variable value from each possible value and dividing it by the range of values.
The formula to normalize data is: $\( x_{new} = \frac{x - x_{min}}{x_{max} - x_{min}} \)$
For the following example where we have 6 records and we want to normalize the variable # of rooms, how would we do this?
# of Rooms |
|
|---|---|
Record 1 |
3 |
Record 2 |
2 |
Record 3 |
1 |
Record 4 |
6 |
Record 5 |
7 |
Record 6 |
5 |
We must subtract the minimum value and divide by the range.
We will do this step by step.
First, we see the minimum value of this variable, # of rooms, is 1 and the range (max-min) is 6. Let’s subtract 1 from each record, which yields variable values of 2, 1, 0, 5, 6, and 4. Now we will divide by our range, 6, giving us ⅓, ⅙ , 0, ⅚ ,1, ⅔ We have now normalized the data for this variable.
\( (x - x_{min}) \) yields:
\((Record - Min)\) |
|
|---|---|
Record 1 |
\(2\) |
Record 2 |
\(1\) |
Record 3 |
\(0\) |
Record 4 |
\(5\) |
Record 5 |
\(6\) |
Record 6 |
\(4\) |
\( \frac{x - x_{min}}{x_{max} - x_{min}} \) yields:
\( x_{new} \) |
|
|---|---|
Record 1 |
\(\frac {1}{3}\) |
Record 2 |
\(\frac {1}{6}\) |
Record 3 |
\(0 \) |
Record 4 |
\(\frac {5}{6}\) |
Record 5 |
\( 1\) |
Record 6 |
\(\frac {2}{3}\) |
To recap the steps of data preparation:
First, you begin by sampling data from the larger database.
Next, you convert some variables, usually converting categorical variables from text to integers. Nominal variables are converted into a series of dummy variables, and ordinal variables are converted to integers which preserve order.
Then, you inspect the data for outliers and use your domain knowledge to determine whether or not to remove them.
You also must decide how to handle missing data, either through omission of variables/ records or using imputation to fill them in with the median or mean values.
Finally, you might need to rescale your data to account for extremely different ranges. You can do this either by standardizing or normalization data.
We will talk about different data mining algorithms we can use and how to evaluate and select the best model.
References:¶
(relevant links + additional readings)
Glossary:¶
Business Understanding:
Descriptive Data Mining:
Predictive Data Mining:
Prescriptive Data Mining:
Data Understanding:
Data Preparation:
Modeling:
Supervised Model:
Unsupervised Model:
Evaluation:
Deployment:
Sample:
Scoring:
Numerical Variables:
Categorical Variables:
Nominal Variables:
Ordinal Variables:
Dummy Variables:
Outliers:
Missing Values:
Rescaling Data:
Standardization:
Normalization:


Kuvasz
| Kuvasz Picture | |
| Breed Information | |
|---|---|
| Popularity | 2017: #1572016: #1652015: #150 |
| Name | Kuvasz |
| Other names | Hungarian Kuvasz |
| Origin | Hungary |
| Breed Group | Working (AKC:1931)Guardian Dogs (UKC) |
| Size | Giant |
| Type | Purebred |
| Life span | 10-12 years |
| Temperament | ClownishIndependentIntelligentLoyalPatientProtective |
| Height | Male: 28-30 inches (71-76 cm)Female: 26-28 inches (66-71 cm) |
| Weight | Male: 100-115 pounds (45-52 kg)Female: 70-90 pounds (32-41 kg) |
| Colors | White |
| Litter Size | 6-8 puppies |
| Puppy Price | Average $1200 - $1500 USD |
| Breed Characteristics | |
| Adaptability | 3 stars |
| Apartment Friendly | 1 starsThe Kuvasz is not recommended for apartment life. It is fairly active indoors and does best with at least a large yard. |
| Barking Tendencies | 3 starsOccassional |
| Cat Friendly | 3 stars |
| Child Friendly | 4 starsGood with Kids: This is a suitable dog breed for kids. It is also very friendly toward other pets and shy toward strangers. |
| Dog Friendly | 3 stars |
| Exercise Needs | 3 starsThe Kuvasz needs vigorous daily exercise. If it is not actively working as a flock guardian it needs to be taken on a daily, long brisk walk or jog. |
| Grooming | 3 starsModerate Maintenance: The Kuvasz has a beautiful white double coat that sheds dirt but also sheds hair. Brush him weekly with a pin brush to remove dead hair and keep the skin and coat healthy. Trim the fur between his toes to keep his feet in good condition. His coat repels water and sheds dirt easily with brushing, so a bath is rarely necessary. |
| Health Issues | 4 starsHypoallergenic: No |
| Intelligence | 4 starsRanking: #42. (See All Rankings) |
| Playfulness | 4 stars |
| Shedding Level | 4 starsModerate Shedding: Expect this dog to shed regularly. Be prepared to vacuum often. Brushing will reduce shedding as well as make the coat softer and cleaner. |
| Stranger Friendly | 2 stars |
| Trainability | 4 starsModerately Easy Training: Training won't require too much attention and effort, though it won't be easier than other breeds. Expect results to come gradually. |
| Watchdog Ability | 5 starsGreat Watchdog Ability: This dog will bark and alert its owners when an intruder is present. It exhibits very protective behavior, acts fearless toward any aggressor, and will do what it takes to guard and protect its family. |
| Kuvasz Puppy Picture | ||
| Puppy Names | ||
|---|---|---|
| Rank | Male | Female |
| 01 | Buddy | Bella |
| 02 | Max | Lucy |
| 03 | Toby | Molly |
| 04 | Jack | Sadie |
| 05 | Bear | Lulu |
| 06 | Jake | Penny |
| 07 | Milo | Luna |
| 08 | Zeus | Stella |
| 09 | Lucky | Zoe |
| 10 | Leo | Abbie |
| See All Names › |
| Overview |
|---|
|
The kuvasz is a large dog, slightly longer than tall, and medium-boned. It is not bulky, but instead light-footed, with a free, easy gait. The breed's combination of power and agility stems from its versatile roots as a guardian, hunter and herder. Its double coat is medium-coarse, ranging from wavy to straight. Despite its sweet looks, the kuvasz is a tough protector, fearlessly defending its family or home. It is gentle with and protective of children in its own family, but it may misinterpret a child's rough-and-tumble games with other children as attacks on its child. It is reserved with strangers and may be aggressive toward strange dogs; however, it tends to be very gentle with other pets and livestock. It is devoted and loyal but not very demonstrative. Some can be domineering. |
| History |
| The Kuvasz (plural - Kuvaszok) is a very ancient breed. Its ancestors are believed to have been brought to Hungary, noted as its country of origin, as long ago as the 13th century. The breed is still found in that country. Their historical and present uses are as hunting dogs, flock guards and guard-companions. The first specimens of the breed were brought to the United States in the 1920's. |


SapphireDb has different options to configure your application to do what you want.
To configure the SapphireDb-Server pass the options object in the service configuration.
You can also pass a configuration section when creating the database options. This will load the settings from it.
CanExecuteCommand
and IsAllowedToSendMessages
from code manually.
The settings contain configuration for authentication. The default configuration is very weak and allows every user to do everything. It is highly recommended to define custom options for critical parts. You can enable the strict mode of the options to run on a higher security level.
If you want to restrict access to the server you can define api configurations. You should define a configuration for every client application.
Every configuration consists of a key, a secret and a readable name.
Default: []
SHA512
-hash.
Checks if a connection is allowed to execute a command. Because every action is a command, this method can be used to
generally control all interactions.
Default: (command, context) => true
Default (strict): (command, context) => context.User.Identity.IsAuthenticated
Control if the user is allowed to publish messages.
Default: (context) => true
Default (strict): (context) => context.User.Identity.IsAuthenticated
Enable websocket interface for connections.
Default: true
Enable SSE interface for connections.
Default: true
Enable polling (long polling) interface for connections.
Default: true
Enable rest interface for connections. Always enabled when using long polling or SSE
Default: true


Standard MIDI-events: General Facts
This topic is concerned with functions working upon the MIDI-events Note, Aftertouch,
Controller, RPN, NRPN, Program Change, Channel Pressure and Pitch Wheel.
All these events are associated with MIDI-channels.
The three events Note, RPN and NRPN listed above are compound MIDI-events. Each of these are realized
by two or more basic MIDI-events, which have to follow one after another in a defined order.
Note
Note-events consist of the basic events "Note On", later followed by "Note Off". The distance
of time between both events is the length of the note.
RPN and NRPN
These events often are called "Extended Controller-events", because these are contructed by
three or four Controller-events which follow directly one after another.
The first two basic events "RPN-MSB" and "RPN-LSB" or "NRPN-MSB" and "NRPN-LSB" define the type of RPN / NRPN.
After this we have the specification of event-data by the two events "Data-MSB" and "Data-LSB" or one of
the events "Data-Increment", "Data-Decrement".
Programming Notes, RPN or NRPN with HP MIDIFILE, we are not confrontated with the basic events. The
functions only work with compound events; the basic events of these are hidden to the programmer.
It is not possible to read, insert, change and delete these. This is allowed only implicite with
the compound event itself. HP MIDIFILE takes care that each compound event gets its correct basic
events needed. The only contact with basic events happens with the function HP_ReadEvent which walks
sequentially through the internal eventlist.


- tab => if empty default bahavior else stay active
- tab => only effects active element
- 'o' + tab => toggle between 'on' and 'off'
- 'o' + enter + tab => no autocomplete, default behavior
- 'o' + backspace + tab => no autocomplete, default behavior
- up/down => not move selection/caret and show history
- enter identical item twice, history should record only one
- enter => clear current line, stay on current line
- spellcheck => disabled
- '/' => should add '/cd/'
- right on 'ls' => substitute with 'ls -la'


Kyrgyz Demonstrations Over Alleged Customs Crimes
by RFE/RL's Kyrgyz ServiceProtesters have gathered outside the parliament building in the Kyrgyz capital, Bishkek, demanding the arrest of a key figure in a major RFE/RL investigation into allegations of organized criminality in the customs service. RFE/RL's Kyrgyz Service, OCCRP, and the Kyrgyz news site Kloop reported last week about possible wide-scale corruption in the country's customs service and massive outflows of cash from the country. The protesters demanded the arrest of Raimbek Matraimov, a powerful former Kyrgyz customs official, who allegedly provided cover for these activities.


Object
# File lib/cartesian_iterator.rb, line 10 10: def dup 11: Marshal.load(Marshal.dump(self)) 12: end
# File lib/cartesian_iterator.rb, line 48 48: def each 49: return false if @tot_iter < 1 50: 51: elems = [] 52: for list in @lists 53: elems << list.restart_and_raw_next 54: end 55: if RUBY_VERSION <= '1.9.1'; yield(*elems.map {|x| x }); else; yield(*elems); end # Yeah, v.map{|x|x} should be equal to v, but strangely it is NOT in Ruby versions prior to 1.9.2. 56: 57: last_list_index = @lists.size-1 58: n = last_list_index 59: loop do 60: if elems[n] = @lists[n].raw_next 61: if RUBY_VERSION <= '1.9.1'; yield(*elems.map {|x| x }); else; yield(*elems); end # See previous comment. 62: n = last_list_index 63: next 64: elsif n > 0 65: elems[n] = @lists[n].restart_and_raw_next 66: n -= 1 67: else 68: return true 69: end 70: end 71: end
# File lib/cartesian_iterator.rb, line 14 14: def equal(other) 15: self.instance_variables.each do |var_name| 16: return false if self.instance_variable_get(var_name) != other.instance_variable_get(var_name) 17: end 18: true 19: end
# File lib/cartesian_iterator.rb, line 43 43: def left_product(other) 44: (result = self.dup).left_product!(other) 45: result 46: end
# File lib/cartesian_iterator.rb, line 30 30: def left_product!(other) 31: @lists.unshift other.to_a.dup 32: @tot_iter *= @lists[1].size 33: self 34: end
# File lib/cartesian_iterator.rb, line 36 36: def product(other) 37: (result = self.dup).product!(other) 38: result 39: end
# File lib/cartesian_iterator.rb, line 22 22: def product!(other) 23: @lists << other.to_a.dup 24: @tot_iter *= @lists[1].size 25: self 26: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.


| submarin Project Status (05/17/2018 - 20:59:01) | |||
| Project File: | submarin20.xise | Parser Errors: | No Errors |
| Module Name: | submarin | Implementation State: | Programming File Generated |
| Target Device: | xc3s100e-5cp132 |
|
No Errors |
| Product Version: | ISE 14.5 |
|
534 Warnings (262 new) |
| Design Goal: | Balanced |
|
All Signals Completely Routed |
| Design Strategy: | Xilinx Default (unlocked) |
|
All Constraints Met |
| Environment: | System Settings |
|
0 (Timing Report) |
| Device Utilization Summary | [-] | ||||
| Logic Utilization | Used | Available | Utilization | Note(s) | |
| Total Number Slice Registers | 123 | 1,920 | 6% | ||
| Number used as Flip Flops | 102 | ||||
| Number used as Latches | 21 | ||||
| Number of 4 input LUTs | 346 | 1,920 | 18% | ||
| Number of occupied Slices | 249 | 960 | 25% | ||
| Number of Slices containing only related logic | 249 | 249 | 100% | ||
| Number of Slices containing unrelated logic | 0 | 249 | 0% | ||
| Total Number of 4 input LUTs | 415 | 1,920 | 21% | ||
| Number used as logic | 346 | ||||
| Number used as a route-thru | 69 | ||||
| Number of bonded IOBs | 18 | 83 | 21% | ||
| Number of BUFGMUXs | 3 | 24 | 12% | ||
| Average Fanout of Non-Clock Nets | 3.03 |
| Performance Summary | [-] | |||
| Final Timing Score: | 0 (Setup: 0, Hold: 0) | Pinout Data: | Pinout Report | |
| Routing Results: | All Signals Completely Routed | Clock Data: | Clock Report | |
| Timing Constraints: | All Constraints Met |
| Detailed Reports | [-] | |||||
| Report Name | Status | Generated | Errors | Warnings | Infos | |
| Synthesis Report | Current | joi 17. mai 20:58:31 2018 | 0 | 523 Warnings (256 new) | 22 Infos (1 new) | |
| Translation Report | Current | joi 17. mai 20:58:36 2018 | 0 | 0 | 0 | |
| Map Report | Current | joi 17. mai 20:58:41 2018 | 0 | 3 Warnings (1 new) | 2 Infos (0 new) | |
| Place and Route Report | Current | joi 17. mai 20:58:49 2018 | 0 | 5 Warnings (4 new) | 2 Infos (0 new) | |
| Power Report | ||||||
| Post-PAR Static Timing Report | Current | joi 17. mai 20:58:52 2018 | 0 | 0 | 6 Infos (0 new) | |
| Bitgen Report | Current | joi 17. mai 20:58:57 2018 | 0 | 3 Warnings (1 new) | 0 |
| Secondary Reports | [-] | ||
| Report Name | Status | Generated | |
| WebTalk Report | Current | joi 17. mai 20:58:57 2018 | |
| WebTalk Log File | Current | joi 17. mai 20:59:01 2018 |


These documents cover the architecture of Archiva and how to work with it. Information for users and plugin developers can be found instead in the main Archiva documentation.
Note: This documentation is far from complete, and mostly covers new improvements relevant to developers as they are made, and may not cover older topics such as the archiva-model or archiva-repository-layer libraries that are still in use and particularly coupled to certain repository types and the web interfaces.
Archiva is built as a layered application. It is intended to provide a platform for dealing with repositories of varied types, and so is built as a series of modular libraries that aim to be able to be used independently (such as embedded scenarios, from the CLI, or within the Archiva web application).
Central to the redesign of Archiva is the concept of a metadata content repository. Archiva separates the physical storage of a repository from the representation it works on, allowing it to store information about the repository in an extensible format that any plugin can operate on or add to, without all subsystems needing to know about each other. The metadata is not specific to any repository type - for instance, the Maven 2 portions can be completely optional. More information on the metadata format and how it is persisted is present in the section below.
This structure allows metadata repositories to be physically separated from the repository they represent and remotely updated. However, it is also possible to link the repository storage via the API so that the metadata can operate "live" on a repository, detecting changes. This also allows plugins that wish to operate directly on a repository (for example, Maven snapshot purging).
Similarly, the resolution strategy for resources in the repository is abstracted from the storage and metadata to allow multiple strategies. This facilitates features such as repository proxying, repository grouping, and on the fly format conversion. These are described in the Repository API documents.
On top of the metadata repository, components can be built to provide the services available in the application. These are described as plugins, though at this time there is no formal plugin registration mechanism or interface - they are loaded by the presence of the JAR in the application classpath, with the appropriate Spring or Plexus manifest and implementation of a core interface that they can "plug in" to. At present, these plugins interact either due to a user request (the repository resolution extension points), a distinct scheduled task, or as part of a repository scanning operation (the Archiva 1.0+ 'consumer' mechanism). In the future, an event mechanism is envisaged as the main means of triggering plugin operations, further decoupling them from the core interfaces. Plugins generally interact directly with the metadata repository to retrieve information, or store their own.
Some examples of current plugins are:
Finally, we look to the web application layers. At present, there is a single web application that serves both a WebDAV and Struts 2-based application, and operates directly on the metadata repository and some of the legacy APIs. Future development plans to better decouple these from the underlying plugins and legacy APIs, to allow applications to be much more componentised in their deployment.


This seems to be fine on CircleCI (please see https://app.circleci.com/pipelines/github/pulibrary/archivesspace-development/20/workflows/68260c4d-701f-4272-8982-3a875195706b/jobs/35), hence I suspect that this now may be due to a Docker Desktop on Mac or local network caching issue.
Rebooting my local development environment after a GlobalProtect upgrade seems to have resolved this.
closed
by James R. Griffin III at 2020-06-17 00:08:36.assigned
by None at 2020-06-17 00:35:16.fixed in the data, see also #17
closed
by None at 2020-06-17 00:36:59.assigned
by None at 2020-06-17 00:37:50.closed
by None at 2020-06-17 00:34:30.assigned
by None at 2020-06-17 00:38:22.closed
by None at 2020-06-17 00:32:04.assigned
by None at 2020-06-17 00:38:36.closed
by None at 2020-06-17 00:32:03.assigned
by None at 2020-06-17 00:38:44.mentioned
by James R. Griffin III at 2020-06-17 00:28:31.subscribed
by James R. Griffin III at 2020-06-17 00:28:31.closed
by None at 2020-06-17 00:32:03.assigned
by None at 2020-06-17 00:38:55.closed
by None at 2020-06-17 00:34:29.assigned
by None at 2020-06-17 00:39:13.closed
by None at 2020-06-17 00:34:29.assigned
by None at 2020-06-17 00:39:22.closed
by None at 2020-06-17 00:32:04.assigned
by None at 2020-06-17 00:39:56.labeled
by None at 2020-06-17 00:40:55.assigned
by None at 2020-06-17 00:50:02.renamed
by None at 2020-06-17 01:03:31.I'm having trouble reproducing this without incurring the following:
assigned
by James R. Griffin III at 2020-06-17 18:08:27.labeled
by James R. Griffin III at 2020-06-17 18:08:31.As noted by @matthewjchandler, these files are not stored within the JSPUI theme (please see https://wiki.lyrasis.org/display/DSDOC5x/Submission+User+Interface). Perhaps this issue should be transferred to https://github.com/pulibrary/princeton_ansible (as a part of #78)?
labeled
by James R. Griffin III at 2020-06-17 13:43:44.mentioned
by Matthew J. Chandler at 2020-06-17 13:47:01.subscribed
by Matthew J. Chandler at 2020-06-17 13:47:01.This just required that the production server configuration be adjusted:
88435/dsp019c67wm88m.request.copy.link = https://library.princeton.edu/special-collections/senior-thesis-order-form
(/dspace/config/dspace.cfg)
assigned
by James R. Griffin III at 2020-06-17 17:12:00.closed
by James R. Griffin III at 2020-06-17 17:33:18.renamed
by James R. Griffin III at 2020-06-17 17:46:00.In order to gain admin. privileges, I needed to create a separate, dedicated admin. account using the Java command-line interface (please see create-administrator
on https://wiki.lyrasis.org/display/DSDOC5x/Command+Line+Operations). I have granted jrg5
and kmcelwee
administrative privileges with this using JRuby:
irb(main):003:0><EMAIL_ADDRESS>=> nil
irb(main):004:0> person =<EMAIL_ADDRESS>=> #<Java::OrgDspaceEperson::EPerson:0x70e00c84>
irb(main):005:0> person.getNetid
=> nil
irb(main):006:0> person.setNetid('jrg5')
=> nil
irb(main):007:0> person.update
=> nil
irb(main):008:0> DSpace.commit
=> nil
irb(main):009:0> person =<EMAIL_ADDRESS>=> #<Java::OrgDspaceEperson::EPerson:0x156a147a>
irb(main):010:0> person.getNetid
=> "kmcelwee"
irb(main):011:0> java_import org.dspace.eperson.Group
=> [Java::OrgDspaceEperson::Group]
irb(main):012:0> admins = Java::OrgDspaceEperson::Group.find(DSpace.context, 1)
=> #<Java::OrgDspaceEperson::Group:0x27225261>
irb(main):013:0> admins.addMember(person)
=> nil
irb(main):014:0> admins.isMember(person)
=> true
irb(main):015:0> admins.update
=> nil
irb(main):016:0> DSpace.commit
=> nil
irb(main):017:0>
One should now able able to authenticate over the CAS and access the user dashboard:
closed
by James R. Griffin III at 2020-06-16 22:22:31.This needs to be brought into parity with the Princeton Migration Requirements Gathering and Assessment Google Sheet.
labeled
by James R. Griffin III at 2020-06-17 13:23:47.labeled
by James R. Griffin III at 2020-06-17 13:23:47.I cannot find any means by which to request that Google Scholar reindex the OAR, however the recommended changes have been applied, and the Sitemap does contain approximately 3.07K valid URLs. I will look to update the status of this in order to determine whether or not the OAR is being crawled.
labeled
by James R. Griffin III at 2020-06-17 13:39:19.Duplicate of #57
labeled
by James R. Griffin III at 2020-06-17 13:40:27.marked_as_duplicate
by James R. Griffin III at 2020-06-17 13:40:35.closed
by James R. Griffin III at 2020-06-17 13:40:35.labeled
by James R. Griffin III at 2020-06-17 14:05:12.unassigned
by James R. Griffin III at 2020-06-17 16:49:04.unassigned
by Kevin McElwee at 2020-06-17 16:49:04.labeled
by James R. Griffin III at 2020-06-16 22:29:39.labeled
by James R. Griffin III at 2020-06-16 22:29:39.closed
by Trey Pendragon at 2020-06-16 23:35:01.referenced
by Trey Pendragon at 2020-06-16 23:35:01.merged
by Trey Pendragon at 2020-06-16 23:35:01.closed
by Trey Pendragon at 2020-06-16 23:35:01.head_ref_deleted
by Trey Pendragon at 2020-06-16 23:35:06.referenced
by Trey Pendragon at 2020-06-17 00:37:50.merged
by Trey Pendragon at 2020-06-17 00:37:50.closed
by Trey Pendragon at 2020-06-17 00:37:50.head_ref_deleted
by Trey Pendragon at 2020-06-17 00:37:53.Looks like acorn is up-to-date now, so this is no longer needed.
closed
by None at 2020-06-17 00:38:31.head_ref_deleted
by None at 2020-06-17 00:38:33.@dependabot rebase
mentioned
by Dependabot at 2020-06-17 00:38:37.head_ref_force_pushed
by None at 2020-06-17 00:39:39.@dependabot rebase
mentioned
by Dependabot at 2020-06-17 00:39:04.head_ref_force_pushed
by None at 2020-06-17 00:40:05.closed
by None at 2020-06-17 13:43:02.referenced
by None at 2020-06-17 13:43:02.merged
by None at 2020-06-17 13:43:02.closed
by None at 2020-06-17 13:43:02.head_ref_deleted
by None at 2020-06-17 13:43:06.Based on the info from the documentation, they want several instances of this format field. One for each available MIME type and one for what we would call the "physical description" or "extent" (or both).
assigned
by None at 2020-06-17 14:53:16.@hackmastera Im reviewing the entire collection we submitted. Example of France in the Americas item (MARC) with Description and Contributor: https://figgy.princeton.edu/catalog/525767d2-75d4-41eb-89cf-11f973ec1701
Im also providing a link to all the completed items (MARC records only) that were submitted to BnF from our collection: https://figgy.princeton.edu/?f%5Bmember_of_collection_titles_ssim%5D%5B%5D=France+in+the+Americas&f%5Bstate_ssim%5D%5B%5D=complete&q=France+in+the+americas
Source decision: Institution [Princeton University Library], identifier [bibid / component id]. @hackmastera will concentrate the two into one. Discussed options with both Jennifer Baxmeyer and @escowles .
Question from @hackmastera confirm / deny whether we want language, coverage, subject: (Note that in figgy coverage tends to mean geographic, but here it’s a date range):
language: yes. comply with requested ISO 639-2b standard
coverage: no. we provide the date(s) as part of mandatory fields, which should be sufficient.
subject: it would be nice?But... Question: we pull subjects from the MARC records, but it does not look like we pull them for FA materials into figgy. If we provide subjects, does this mean we would have to provide them for FA content too? it looks like it works differently there.
@kelea99 I don't think we'd have to provide subjects for the FA content. The field appears fully optional.
mentioned
by None at 2020-06-17 13:14:08.subscribed
by None at 2020-06-17 13:14:08.mentioned
by None at 2020-06-17 14:51:35.subscribed
by None at 2020-06-17 14:51:35.mentioned
by Esmé Cowles at 2020-06-17 14:51:35.subscribed
by Esmé Cowles at 2020-06-17 14:51:35.mentioned
by None at 2020-06-17 15:04:11.subscribed
by None at 2020-06-17 15:04:11.unlabeled
by Kim Leaman at 2020-06-17 15:12:27.mentioned
by Kim Leaman at 2020-06-17 15:15:07.subscribed
by Kim Leaman at 2020-06-17 15:15:07.assigned
by None at 2020-06-17 15:33:23.also see #3496 and #3128
renamed
by None at 2020-06-17 15:37:27.referenced
by Trey Pendragon at 2020-06-17 17:05:58.merged
by Trey Pendragon at 2020-06-17 17:05:58.closed
by Trey Pendragon at 2020-06-17 17:05:58.head_ref_deleted
by Trey Pendragon at 2020-06-17 17:06:01.dunno. checking with stakeholder now, @hackmastera
Confirmation from @escowles , @hackmastera : the email should probably go to the digital-library libanswers email, not to any one person.
mentioned
by None at 2020-06-17 13:44:40.subscribed
by None at 2020-06-17 13:44:40.mentioned
by None at 2020-06-17 14:07:04.subscribed
by None at 2020-06-17 14:07:04.mentioned
by Esmé Cowles at 2020-06-17 14:07:04.subscribed
by Esmé Cowles at 2020-06-17 14:07:04.unlabeled
by Kim Leaman at 2020-06-17 14:07:12.assigned
by None at 2020-06-17 14:32:51.referenced
by None at 2020-06-17 14:37:20.closed
by Trey Pendragon at 2020-06-17 17:07:06.assigned
by Trey Pendragon at 2020-06-17 17:15:46.head_ref_force_pushed
by Eliot Jordan at 2020-06-17 16:15:57.deployed
by Trey Pendragon at 2020-06-17 16:16:19.deployed
by Trey Pendragon at 2020-06-17 17:17:00.I think those other tickets stand on their own as specific use cases that don't need a parent epic, and technically we have enabled oai-pmh; moving forward it's just a matter of validating our feed on a case-by-case basis. Can we close this ticket? @tpendragon
Sounds good to me.
👍 I just converted it back to a regular issue (instead of an epic) as well.
mentioned
by Trey Pendragon at 2020-06-17 15:45:30.subscribed
by Trey Pendragon at 2020-06-17 15:45:30.closed
by Trey Pendragon at 2020-06-17 16:03:08.unlabeled
by None at 2020-06-17 18:28:45.assigned
by None at 2020-06-17 14:10:44.referenced
by None at 2020-06-17 14:29:20.referenced
by None at 2020-06-17 17:29:13.closed
by Trey Pendragon at 2020-06-17 18:55:06.@hackmastera Looks good, but needs rebased.
@tpendragon rebase is done.
mentioned
by None at 2020-06-17 17:06:32.subscribed
by None at 2020-06-17 17:06:32.review_dismissed
by None at 2020-06-17 17:29:13.head_ref_force_pushed
by None at 2020-06-17 17:29:13.mentioned
by Trey Pendragon at 2020-06-17 18:52:09.subscribed
by Trey Pendragon at 2020-06-17 18:52:09.referenced
by Trey Pendragon at 2020-06-17 18:55:06.merged
by Trey Pendragon at 2020-06-17 18:55:06.closed
by Trey Pendragon at 2020-06-17 18:55:06.head_ref_deleted
by Trey Pendragon at 2020-06-17 18:55:10.Update for this ticket. @escowles , @kelynch and I met with Fernando and Gabrielle. For the time being, they would like the Chilean photographs mentioned here ingested in LAE. sub collection/sub page on hold. https://www.dropbox.com/sh/vwidtvyavprv5vy/AAAB6L-qGlc0uka_b2d73Ri9a?dl=0
mentioned
by Esmé Cowles at 2020-06-17 19:57:16.subscribed
by Esmé Cowles at 2020-06-17 19:57:16.mentioned
by Kate Lynch at 2020-06-17 19:57:17.subscribed
by Kate Lynch at 2020-06-17 19:57:17.assigned
by Trey Pendragon at 2020-06-17 17:15:39.referenced
by Trey Pendragon at 2020-06-17 18:01:07.referenced
by Trey Pendragon at 2020-06-17 18:27:14.Coverage increased (+0.03%) to 79.846% when pulling 601f8071f0bbb54f32c2902ac678900c9fb65792 on jsonld_title into 69b9b8b0ba2d5c71169eea96c97ac0e228f11958 on master.
head_ref_force_pushed
by Trey Pendragon at 2020-06-17 18:27:14.renamed
by Christina Chortaria at 2020-06-17 13:08:05.deployed
by Trey Pendragon at 2020-06-17 17:33:23.closed
by Trey Pendragon at 2020-06-16 23:33:52.referenced
by Trey Pendragon at 2020-06-16 23:33:52.merged
by Trey Pendragon at 2020-06-16 23:33:52.closed
by Trey Pendragon at 2020-06-16 23:33:53.head_ref_deleted
by Trey Pendragon at 2020-06-16 23:33:56.closed
by Trey Pendragon at 2020-06-16 23:34:21.referenced
by Trey Pendragon at 2020-06-16 23:34:21.merged
by Trey Pendragon at 2020-06-16 23:34:21.closed
by Trey Pendragon at 2020-06-16 23:34:21.head_ref_deleted
by Trey Pendragon at 2020-06-16 23:34:24.deployed
by Trey Pendragon at 2020-06-17 14:05:51.referenced
by None at 2020-06-17 14:09:19.merged
by None at 2020-06-17 14:09:19.closed
by None at 2020-06-17 14:09:19.head_ref_deleted
by None at 2020-06-17 14:09:22.deployed
by Trey Pendragon at 2020-06-17 14:10:36.referenced
by None at 2020-06-17 14:19:11.merged
by None at 2020-06-17 14:19:12.closed
by None at 2020-06-17 14:19:12.head_ref_deleted
by None at 2020-06-17 14:19:15.deployed
by Trey Pendragon at 2020-06-17 14:25:14.referenced
by None at 2020-06-17 14:31:17.merged
by None at 2020-06-17 14:31:18.closed
by None at 2020-06-17 14:31:18.head_ref_deleted
by None at 2020-06-17 14:31:22.referenced
by None at 2020-06-17 14:41:03.merged
by None at 2020-06-17 14:41:03.closed
by None at 2020-06-17 14:41:04.head_ref_deleted
by None at 2020-06-17 14:41:07.Coverage remained the same at 100.0% when pulling e4b4fac80f7c17c8e379e2d56461016d1b947971 on dependabot/npmandyarn/websocket-extensions-0.1.4 into 4aba5d15df698492c7c65ff417c7e0366ed298fa on master.
labeled
by None at 2020-06-17 18:49:46.we usually terminate SSL at the load balancer @kevinreiss any reason these need certs? If we need certs for what name?
mentioned
by Kevin Reiss at 2020-06-17 12:51:04.subscribed
by Kevin Reiss at 2020-06-17 12:51:04.head_ref_deleted
by Eliot Jordan at 2020-06-17 15:38:20.assigned
by Eliot Jordan at 2020-06-17 15:39:45.closed
by Eliot Jordan at 2020-06-17 15:50:42.head_ref_force_pushed
by Eliot Jordan at 2020-06-17 15:41:22.referenced
by Eliot Jordan at 2020-06-17 15:50:42.merged
by Eliot Jordan at 2020-06-17 15:50:42.closed
by Eliot Jordan at 2020-06-17 15:50:42.head_ref_deleted
by Eliot Jordan at 2020-06-17 15:50:45.referenced
by Francis Kayiwa at 2020-06-17 13:14:27.closed
by Kevin Reiss at 2020-06-17 18:27:58.review_requested
by Francis Kayiwa at 2020-06-17 14:40:25.referenced
by Kevin Reiss at 2020-06-17 18:27:56.merged
by Kevin Reiss at 2020-06-17 18:27:56.closed
by Kevin Reiss at 2020-06-17 18:27:56.head_ref_deleted
by Kevin Reiss at 2020-06-17 18:28:00.assigned
by Cliff Wulfman at 2020-06-17 17:54:07.referenced
by Kevin Reiss at 2020-06-17 15:44:52.merged
by Kevin Reiss at 2020-06-17 15:44:52.closed
by Kevin Reiss at 2020-06-17 15:44:52.head_ref_deleted
by Kevin Reiss at 2020-06-17 15:44:57.referenced
by Kevin Reiss at 2020-06-17 15:45:28.merged
by Kevin Reiss at 2020-06-17 15:45:28.closed
by Kevin Reiss at 2020-06-17 15:45:28.head_ref_deleted
by Kevin Reiss at 2020-06-17 15:45:32.mentioned
by Kevin Reiss at 2020-06-17 20:08:39.subscribed
by Kevin Reiss at 2020-06-17 20:08:39.referenced
by Kevin Reiss at 2020-06-17 20:11:54.merged
by Kevin Reiss at 2020-06-17 20:11:54.closed
by Kevin Reiss at 2020-06-17 20:11:54.head_ref_deleted
by Kevin Reiss at 2020-06-17 20:11:58.successfully imported into ASpace:
- [x] WC064
error 413 Request Entity Too Large
extent field needs to be prepped per below
uploaded but not (yet?) showing in the UI
- [x] C0614
error 413 Request Entity Too Large
needed dates fixed (end date occurring before start date)
- [x] MC152
(had to correct an end date occurring before the start date)
- [x] C0807
data issue: Error: #<RuntimeError: Problem creating 'Abreu, Juan': Invalid value: item>
Fixed. NB: ASpace does not allow the word "items" in the value of the extent field. It does accept other values (such as "folders"), however.
- [ ] MC001.04
error 413 Request Entity Too Large
end date before start date needs fixing
- [x] C0776
error 413 Request Entity Too Large
some unittitles are too long, causing import to fail
- [x] C0879
error: the following errors were found: id_0 : That ID is already in use
Turns out this is the error thrown when the eadid is already in use in ASpace
Coverage remained the same at 100.0% when pulling cb524269e2f309206477b599c1c46ee2aca4af17 on dependabot/bundler/sanitize-5.2.1 into 389e2c951973dc3a6cc5a779a84058757e2eb2f5 on master.
labeled
by None at 2020-06-16 22:11:51.labeled
by None at 2020-06-16 22:11:51.Instead of<EMAIL_ADDRESS>they should go to the branch circulation email where the item is located.
assigned
by Kevin Reiss at 2020-06-17 13:52:41.Emails for engineering go to<EMAIL_ADDRESS>Lewis locations to<EMAIL_ADDRESS>Notifications to patrons and hold requests placed in Voyager should like lewis library as the pick-up location for both libraries since engineering materials are housed there at the moment.
Hours for Lewis are Monday through Thursday 10-2.
We can set the pickup location to lewis in each of the engineering holding locations.
assigned
by None at 2020-06-17 14:29:44.head_ref_force_pushed
by None at 2020-06-17 14:29:22.head_ref_force_pushed
by None at 2020-06-17 17:51:07.referenced
by Kevin Reiss at 2020-06-17 15:48:23.merged
by Kevin Reiss at 2020-06-17 15:48:23.closed
by Kevin Reiss at 2020-06-17 15:48:23.head_ref_deleted
by Kevin Reiss at 2020-06-17 15:48:26.referenced
by Kevin Reiss at 2020-06-17 15:48:49.merged
by Kevin Reiss at 2020-06-17 15:48:49.closed
by Kevin Reiss at 2020-06-17 15:48:49.head_ref_deleted
by Kevin Reiss at 2020-06-17 15:48:53.mentioned
by Kevin Reiss at 2020-06-17 20:17:53.subscribed
by Kevin Reiss at 2020-06-17 20:17:53.referenced
by Kevin Reiss at 2020-06-17 20:18:51.merged
by Kevin Reiss at 2020-06-17 20:18:51.closed
by Kevin Reiss at 2020-06-17 20:18:51.head_ref_deleted
by Kevin Reiss at 2020-06-17 20:18:54.


You can manage all your giv2giv donations in one place:
Support an existing charitable endowment fund on giv2giv or create your own. You can select whether your donations are charged from your credit card or drafted from your bank account. In any case, your charitable giving with giv2giv is tax-deductible to the fullest extent of the law. For your convenience, all your donations are summarized in one single donation receipt.
giv2giv is a tax-exempt 501(c)(3) nonprofit organization registered in the United States.
The giv2giv platform tracks and manages the funds you create within the giv2giv fund. Donations are invested in the Pax World Balanced Fund, a leading Socially Responsible Investment (SRI) mutual fund. All investment gains and losses are tracked at the individual donor level.
We believe in transparency, collaboration, and are a proud part of the open source movement. Our methodology is 100% transparent—you can read our open-source code any time.
giv2giv makes periodic grants to donors’ favorite causes, currently 1.25% of the entire fund every 90 days for a total annual grant of about 5% per year.
We send anonymous, unrestricted grants to charities so they can direct resources where they are most needed. With giv2giv you have minimal effort and maximum impact.


|
The following is a selection of news and research I've written for the Berkeley Center for New Media, The Chicago Maroon, and LinkedIn since February 2017. | |
A Different Take on the 5-Year Question (LinkedIn) Review: Jesus Christ Superstar at the Lyric Opera (Maroon) Revisited: The Berkeley Digital Humanities 2018 Summer Institute Camille Crittenden on Women in Tech Ken Goldberg Quoted on Autonomous Gliders Revisited: The CS160 Final Showcase |
Feminist Media Histories Interviews Alumna Bonnie Ruberg Nicholas de Monchaux Quoted in Newsweek on Spacesuits Bay Area Artists' Report! Published Hybrid Ecologies Lab Wins a Best Paper at CHI 2017 Revisited: "Black Sun: Reflections on Otto Piene and Aldo Tambellini" Video Now Online: "Designing Spaces for New Media Art" |
| Projects | Writing | Drop me a line |
|---|---|---|
| BCNM Publications | Art Institute of Chicago Field Trip |<EMAIL_ADDRESS>|
| UCB Library Student Council | Writing Portfolio | |
| Voteworthy.org | Github | |
| bGlass |


Your browser doesn't support canvas.
Show highscores
Upload own image
Choose from gallery
Use Link
Select difficulty:
Easy (3x3)
Normal (4x4)
Hard (5x5)
Very hard (6x6)
Hardcore (7x7)
Set
No highscores for this picture.


When you work with us, you are part of a team of committed collaborators. All aspects of our software development process are integrated, interactive and agile.
Our approach unifies design, development and product management to create exceptional products.
We start each project by understanding your business goals, the user's needs and the product requirements.
Then we help translate them into effective and elegant solutions.
Before we sign a contract or write a line of code our team will spend the necessary time needed to understand your product vision.
The outcome of this scoping session is a proposal or high-level statement of work
based on your requirements, we can provide a complete offering or just the pieces you need.
DESIGN
DESIGN
Our design practice offers a full range of services including brand strategy, interaction, visual design, and user experience testing.
Through your project, our designers create and implement visual design and workflows, solicit user feedback, and work with you to make sure what gets built is what is needed.
DEVELOPMENT
DEVELOPMENT
All engineers are fluent in the latest enterprise, mobile, and web development technologies.
They collaborate with your team to write and improve, code on a daily basis, using proven practices such as test-driven development and pair programing.
PRODUCT MANAGEMENT
PRODUCT MANAGEMENT
Planning and development is iterative. Because we are constantly coding and testing, the products we build are always ready to go live.
This iterative process allows for changes as business requirements evolve.
SLATE GRAY BACKGROUND
Mighty Ontario Security Logo
Brown Geometric Gradient Background
User Dashboard Website
Elexa Website
Settings Inputs Dashboard
Burned Logo Mock-up Sample
Giraffe Restaurant Logo


Form of Registration
Full Name :
Address :
Email :
Phone no :
+614
+612
+676
+679
+678
Date of birth:


Instructions
Basic
-
Alt + h hides 'One'
-
Alt + o shows 'One'
-
Alt + j hides/shows 'Two'
-
Alt + k hides/shows 'Three'
-
Esc hides all
-
Ctrl + m shows all
Subviews (view console debugger)
- Alt+1 creates a sub-view
- Alt+2 fires a non-global event on a sub-view
- Alt+3 fires a global event on a sub-view
- Alt+4 deletes the sub-view


Meet the Shiremoor takeaway queen who has shed six stone
Tina Hassan, 39, works at the Route 66 takaway shop at Shiremoor and has to resist the kebabs and pizzas she once loved after dropping from a dress size 22 to a size 12 after joining Slimming World
by Lisa HutchinsonTakeaway shop manageress Tina Hassan gorged on the pizzas and kebabs she served and ballooned to a massive 22 dress size.
Weighing in at a huge 18 stone 8 lbs she realised she needed to change her eating habits to get healthy.
Suffering from daily migraines her doctor said it was her sheer weight that was the root to her symptoms.
And she joined Slimming World in a bid to shed the pounds.
Now the 39-year-old has reached her target weight of 11 stone 13 lbs and is now down to a slinky size 12.
“It is so difficult working in the takeaway shop and serving the pizzas I loved but I do resist them now and think of the healthy recipes I can cook the Slimming World way,” said Tina, of Shiremoor, North Tyneside.
For six years Tina has worked in the Route 66 takeaway in Shiremoor and grew partial to the foods she dished out. But it was her unhealthy lifestyle that caused her severe migraines.
She added: “I was suffering constant migraines on a daily basis and was hiding in the house because of them but also because of my low self confidence and my weight. I didn’t like how I looked and realised I had to do something about it.
“It was the doctor at the hospital that said my weight was causing strain on my body. I had bad knees, a bad back and hips and that was the cause of the migraines. But now my aches and pains have all gone and I only get the occasional migraine, which I can cope with. I feel brilliant.”
Tina now works out in the gym and has swapped the fatty foods for healthy options.
“I’ve even figured out that the chicken kebabs with salad and chilli sauce we sell aren’t that fattening so I can have one of these now and again.
“Before I never ate a vegetable and now my favourite is broccoli. I have dry fried broccoli with Cajun spice and I love it.
Mum-of-one Tina now is addicted to clothes shopping and visits Manchester regularly for retail trips with 19-year-old son Arron.
 Aaron is very proud of me as I am of him. He’s training to be a chef and he’s seen how healthy food has helped me.”
Tina is winning compliments from her takeaway customers as they comment on her weight loss.
“I love my job and have some fantastic customers, lots of which have noticed and mentioned the weight loss, which is lovely. I was definitely addicted to pizzas, kebabs and crisps but now I know how to cook things a healthy way,” added Tina.
“I’m nearly 40 years of age and never knew how to cook things this way and I now love what I eat. I’m still amazed and proud of myself, I did it.”
Tina is so chuffed with her weight loss she is now becoming a Slimming World consultant to help others on their weight loss journeys.
She is super excited about re-launching her group and can’t wait to meet everyone and start helping more people reach their goals.
Tina’s Slimming World group will be held at Foxhunters Sports Pavilion, Preston Gate, North Shields, every Wednesday at 5.30pm and 7.30pm from November 20.
For more information or to join Tina’s group pop along to the classes or call her on<PHONE_NUMBER>3 or alternatively visit Slimmingworld.co.uk, find Tina on Instagram at @Tinahassan_sw.


{% extends 'layout.html' %} {% block pageTitle %} NHS.UK prototypes - Becca {% endblock %} {% block beforeContent %} {% endblock %} {% block content %}
How users of this website have rated their health services.
This shows how other users of this website rated individual health services. Click on the link displayed below the rating to see their comments in full. By commenting on health services you have visited, you can help inform others.
Not all health services have been rated by NHS.UK users. Help this system develop by searching for a health services you would like to comment on and adding your view now.
NHS.UK
Ratings are updated on a daily basis
More information about NHS.UK user ratings
NHS.UK


- High School Curriculum
- Internet self: ideation
- Learning
- Video Footage
- Sprite Generator
- TAA - Class Resources
- The Fountain - Art as Subversion
- Class Resources
- Class Resources
- Class Resources
- Algorithmic Composition Class Resources
- 2 Materials for Fab
- Mounting Motors Assignment
- Talking To Machine Winter Show Submission
- Pcomm Final Project Update
- Telephone Enclosure
- Concept Development 'Talking to Machines'
- Laser Cutting Projection Feature
- Human Interference play feedback
- Modular projection mapping surface (Part 1)
- Human Interference play demonstration
- Making an Altoid can into a laser
- PLUTO (C:)
- Apocalyptic Business Cards
- ITP Winter Poster
- Default Colours and Speculative Interface
- Fidget Spinner Music Box
- Delta Airplane Ticket Design
- Fidget Spinner Switch to NeoPixel
- Rainbow Body Care Redesign
- Good and Bad Signs
- Process for 'Digital Gentrification' Project
- How We Teach Computers To Teach Computers
- Raf Rennie's Satoshi Kon Poster
- What is interactivity?
- Intro to Physical Computation Resources
- Resources for Faking The News
- Visual Language Resources


Use this template to create native looking apps for iOS (more specifically: Mobile Safari) using nothing but HTML. Simply build your website starting with this template, bookmark it and you're done.
View or download the source code and read the comments carefully to see what's needed to create a native looking app using only HTML.


@(model: Model, processes: List[(Process, Seq[ProcessElement])], relations: List[Relation])
@main("Showing one model") {
Model information:
- Model: @model.id
- Name: @model.name
- Created: @model.dateCreated
Processes:
@for(process <- processes) {
- Process: @process._1.id
- Name: @process._1.name
- Created: @process._1.dateCreated
- Contains elements:
@process._2.map { element =>
- @element.value: @element.id
}
}
Relations:
@for(relation <- relations) {
- Relation id: @relation.id
- Between elements: @relation.startId -> @relation.endId
- Description: @relation.value
}
}


@* * 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. *@ @import uk.gov.hmrc.govukfrontend.views.html.components._ @this( layout: Layout, govukButton : GovukButton ) @(lookupRequest: PSALookupRequest, timestamp: String)(implicit request: Request[_], messages: Messages) @layout( pageTitle = Messages("psa.lookup.title"), backLinkEnabled = false ) {
| @Messages("psa.lookup.not-found.results.table.row.1") | @lookupRequest.pensionSchemeAdministratorCheckReference |
|---|---|
| @Messages("psa.lookup.not-found.results.table.row.2") | @lookupRequest.lifetimeAllowanceReference.get |
| @Messages("psa.lookup.results.table.row.6") | @timestamp |
@Messages("psa.lookup.not-found.results.detail")
@Messages("psa.lookup.not-found.results.possible-causes")
@Messages("psa.lookup.not-found.results.suggested-resolution")
@Messages("psa.lookup.results.save")


Mastering for Gulch Goblins
original
Master
Work
S. Wurm.
Songs of Low Heaven,
Elder Wall, 2022
Layia.
"The Gods Sprinkled Daisies Onto the Earth,"
Elder Wall, 2022
Levitating Mausoleum.
Albright Turbine,
Elder Wall, 2022
Rue Morgan.
Long Face,
Elder Wall, 2022
S. Wurm.
God's Love,
Elder Wall, 2021


Medical Informatics || Machine learning Enthusiast || Freelancer
Here are some of my web designing projects. Mostly consisting of p5.js animation library.