- sendAnimData(String) - Method in class io.github.rowak.Aurora.ExternalStreaming
-
Sends a static animation data string to the target Aurora.
Note: Requires external streaming to be enabled.
- sendStaticEffect(Effect) - Method in class io.github.rowak.Aurora.ExternalStreaming
-
Sends a series of frames to the target Aurora.
- setAllPanels(Frame) - Method in class io.github.rowak.effectbuilder.StaticEffectBuilder
-
Adds a frame to all panels in the effect.
- setAnimData(String) - Method in class io.github.rowak.Effect
-
Sets the animation data of the effect (static/custom effects only).
- setAnimData(String) - Method in class io.github.rowak.effectbuilder.FadeEffectBuilder
-
Sets the animation data for the effect
- setAnimData(String) - Method in class io.github.rowak.effectbuilder.HighlightEffectBuilder
-
Sets the animation data for the effect.
- setAnimData(String) - Method in class io.github.rowak.effectbuilder.RandomEffectBuilder
-
Sets the animation data for the effect.
- setAnimData(String) - Method in class io.github.rowak.effectbuilder.WheelEffectBuilder
-
Sets the animation data for the effect.
- setAnimType(Effect.Type) - Method in class io.github.rowak.Effect
-
Sets the animation type of the effect.
- setAuthor(String) - Method in class io.github.rowak.Plugin
-
Sets the author of this plugin.
- setBlue(int) - Method in class io.github.rowak.Panel
-
Sets the blue RGBW value of the panel's color.
- setBrightness(int) - Method in class io.github.rowak.Aurora.State
-
Sets the master brightness of the Aurora.
- setBrightness(int) - Method in class io.github.rowak.Color
-
Set the brightness HSB value of this color.
- setBrightness(int) - Method in class io.github.rowak.Effect
-
Sets the total brightness of the effect (maximum and minimum).
- setColorTemperature(int) - Method in class io.github.rowak.Aurora.State
-
Sets the color temperature of the Aurora in Kelvins.
- setColorType(String) - Method in class io.github.rowak.Effect
-
Sets the color type of the effect.
- setColorType(String) - Method in interface io.github.rowak.effectbuilder.EffectBuilder
-
Sets the color type of the effect.
- setColorType(String) - Method in class io.github.rowak.effectbuilder.ExplodeEffectBuilder
-
- setColorType(String) - Method in class io.github.rowak.effectbuilder.FadeEffectBuilder
-
- setColorType(String) - Method in class io.github.rowak.effectbuilder.FlowEffectBuilder
-
- setColorType(String) - Method in class io.github.rowak.effectbuilder.HighlightEffectBuilder
-
- setColorType(String) - Method in class io.github.rowak.effectbuilder.RandomEffectBuilder
-
- setColorType(String) - Method in class io.github.rowak.effectbuilder.WheelEffectBuilder
-
- setDelayTime(int) - Method in class io.github.rowak.Effect
-
Sets the total delay time of the effect (maximum and minimum).
- setDelayTime(int) - Method in class io.github.rowak.PluginOptions
-
Sets the delay time for this plugin options object.
- setDescription(String) - Method in class io.github.rowak.Plugin
-
Sets the description of this plugin.
- setDeviceId(String) - Method in class io.github.rowak.AuroraMetadata
-
Sets the device id of the associated Aurora device.
This does not affect the device id of the actual Aurora device.
- setDeviceName(String) - Method in class io.github.rowak.AuroraMetadata
-
Sets the device name of the associated Aurora device.
- setDirection(Effect.Direction) - Method in class io.github.rowak.Effect
-
Sets the moving direction of the effect.
- setDirection(Effect.Direction) - Method in class io.github.rowak.effectbuilder.ExplodeEffectBuilder
-
Sets the overall direction of movement for the effect.
- setDirection(Effect.Direction) - Method in class io.github.rowak.effectbuilder.FlowEffectBuilder
-
Sets the overall direction of movement for the effect.
- setDirection(Effect.Direction) - Method in class io.github.rowak.effectbuilder.WheelEffectBuilder
-
Sets the overall direction of movement for the effect.
- setEffect(String) - Method in class io.github.rowak.Aurora.Effects
-
Sets the selected effect on the Aurora to the effect
specified by effectName
.
- setExplodeFactor(double) - Method in class io.github.rowak.Effect
-
Sets the explosion factor of the effect.
- setExplodeFactor(float) - Method in class io.github.rowak.effectbuilder.ExplodeEffectBuilder
-
Sets the explosion factor for the effect.
- setFlowFactor(double) - Method in class io.github.rowak.Effect
-
Sets the flow factor of the effect (flow effects only).
- setFlowFactor(float) - Method in class io.github.rowak.effectbuilder.FlowEffectBuilder
-
Sets the flow factor for the effect.
- setGlobalOrientation(int) - Method in class io.github.rowak.Aurora.PanelLayout
-
Sets the global orientation for the Aurora.
- setGreen(int) - Method in class io.github.rowak.Panel
-
Sets the green RGBW value of the panel's color.
- setHostName(String) - Method in class io.github.rowak.AuroraMetadata
-
Sets the metadata host name of the associated Aurora device.
This does not affect the host name of the actual Aurora device.
- setHue(int) - Method in class io.github.rowak.Aurora.State
-
Sets the hue of the Aurora (static/custom effects only).
- setHue(int) - Method in class io.github.rowak.Color
-
Set the hue HSB value of this color.
- setLinearDirection(String) - Method in class io.github.rowak.PluginOptions
-
Sets the linear direction for this plugin options object.
- setLoop(boolean) - Method in class io.github.rowak.Effect
-
Sets whether or not the effect will loop.
- setLoop(boolean) - Method in interface io.github.rowak.effectbuilder.EffectBuilder
-
Sets whether of not the effect should loop.
- setLoop(boolean) - Method in class io.github.rowak.effectbuilder.ExplodeEffectBuilder
-
- setLoop(boolean) - Method in class io.github.rowak.effectbuilder.FadeEffectBuilder
-
- setLoop(boolean) - Method in class io.github.rowak.effectbuilder.FlowEffectBuilder
-
- setLoop(boolean) - Method in class io.github.rowak.effectbuilder.HighlightEffectBuilder
-
- setLoop(boolean) - Method in class io.github.rowak.effectbuilder.RandomEffectBuilder
-
- setLoop(boolean) - Method in class io.github.rowak.effectbuilder.WheelEffectBuilder
-
- setLoop(boolean) - Method in class io.github.rowak.PluginOptions
-
Sets if loop is enabled for this plugin options object.
- setMainColorProbability(double) - Method in class io.github.rowak.PluginOptions
-
Sets the probability of the background color being used.
- setMaxBrightness(int) - Method in class io.github.rowak.Effect
-
Sets the maximum brightness of the effect.
- setMaxBrightness(int) - Method in class io.github.rowak.effectbuilder.FadeEffectBuilder
-
Sets the maximum brightness for the effect.
- setMaxBrightness(int) - Method in class io.github.rowak.effectbuilder.HighlightEffectBuilder
-
Sets the maximum brightness for the effect.
- setMaxBrightness(int) - Method in class io.github.rowak.effectbuilder.RandomEffectBuilder
-
Sets the maximum brightness for the effect.
- setMaxDelayTime(int) - Method in class io.github.rowak.Effect
-
Sets the maximum delay time of the effect.
- setMaxDelayTime(int) - Method in class io.github.rowak.effectbuilder.ExplodeEffectBuilder
-
Sets the maximum delay time for the effect.
- setMaxDelayTime(int) - Method in class io.github.rowak.effectbuilder.FadeEffectBuilder
-
Sets the maximum delay time for the effect.
- setMaxDelayTime(int) - Method in class io.github.rowak.effectbuilder.FlowEffectBuilder
-
Sets the maximum delay time for the effect.
- setMaxDelayTime(int) - Method in class io.github.rowak.effectbuilder.HighlightEffectBuilder
-
Sets the maximum delay time for the effect.
- setMaxDelayTime(int) - Method in class io.github.rowak.effectbuilder.RandomEffectBuilder
-
Sets the maximum delay time for the effect.
- setMaxTransTime(int) - Method in class io.github.rowak.Effect
-
Sets the maximum transition time of the effect.
- setMaxTransTime(int) - Method in class io.github.rowak.effectbuilder.ExplodeEffectBuilder
-
Sets the maximum transition time for the effect.
- setMaxTransTime(int) - Method in class io.github.rowak.effectbuilder.FadeEffectBuilder
-
Sets the maximum transition time for the effect.
- setMaxTransTime(int) - Method in class io.github.rowak.effectbuilder.FlowEffectBuilder
-
Sets the maximum transition time for the effect.
- setMaxTransTime(int) - Method in class io.github.rowak.effectbuilder.HighlightEffectBuilder
-
Sets the maximum transition time for the effect.
- setMaxTransTime(int) - Method in class io.github.rowak.effectbuilder.RandomEffectBuilder
-
Sets the maximum transition time for the effect.
- setMaxTransTime(int) - Method in class io.github.rowak.effectbuilder.WheelEffectBuilder
-
Sets the maximum transition time for the effect.
- setMinBrightness(int) - Method in class io.github.rowak.Effect
-
Sets the minimum brightness of the effect.
- setMinBrightness(int) - Method in class io.github.rowak.effectbuilder.FadeEffectBuilder
-
Sets the minimum brightness for the effect.
- setMinBrightness(int) - Method in class io.github.rowak.effectbuilder.HighlightEffectBuilder
-
Sets the minimum brightness for the effect.
- setMinBrightness(int) - Method in class io.github.rowak.effectbuilder.RandomEffectBuilder
-
Sets the minimum brightness for the effect.
- setMinDelayTime(int) - Method in class io.github.rowak.Effect
-
Sets the minimum delay time of the effect.
- setMinDelayTime(int) - Method in class io.github.rowak.effectbuilder.ExplodeEffectBuilder
-
Sets the minimum delay time for the effect.
- setMinDelayTime(int) - Method in class io.github.rowak.effectbuilder.FadeEffectBuilder
-
Sets the minimum delay time for the effect.
- setMinDelayTime(int) - Method in class io.github.rowak.effectbuilder.FlowEffectBuilder
-
Sets the minimum delay time for the effect.
- setMinDelayTime(int) - Method in class io.github.rowak.effectbuilder.HighlightEffectBuilder
-
Sets the minimum delay time for the effect.
- setMinDelayTime(int) - Method in class io.github.rowak.effectbuilder.RandomEffectBuilder
-
Sets the minimum delay time for the effect.
- setMinTransTime(int) - Method in class io.github.rowak.Effect
-
Sets the minimum transition time of the effect.
- setMinTransTime(int) - Method in class io.github.rowak.effectbuilder.ExplodeEffectBuilder
-
Sets the minimum transition time for the effect.
- setMinTransTime(int) - Method in class io.github.rowak.effectbuilder.FadeEffectBuilder
-
Sets the minimum transition time for the effect.
- setMinTransTime(int) - Method in class io.github.rowak.effectbuilder.FlowEffectBuilder
-
Sets the minimum transition time for the effect.
- setMinTransTime(int) - Method in class io.github.rowak.effectbuilder.HighlightEffectBuilder
-
Sets the minimum transition time for the effect.
- setMinTransTime(int) - Method in class io.github.rowak.effectbuilder.RandomEffectBuilder
-
Sets the minimum transition time for the effect.
- setMinTransTime(int) - Method in class io.github.rowak.effectbuilder.WheelEffectBuilder
-
Sets the minimum transition time for the effect.
- setMode(int) - Method in class io.github.rowak.Aurora.Rhythm
-
Writing 0 to this field sets the Rhythm's sound source to the microphone,
and writing 1 to the field sets the sound source to the aux cable.
- setName(String) - Method in class io.github.rowak.Effect
-
Sets the name of the effect.
- setName(String) - Method in interface io.github.rowak.effectbuilder.EffectBuilder
-
Sets the name of the effect.
- setName(String) - Method in class io.github.rowak.effectbuilder.ExplodeEffectBuilder
-
- setName(String) - Method in class io.github.rowak.effectbuilder.FadeEffectBuilder
-
- setName(String) - Method in class io.github.rowak.effectbuilder.FlowEffectBuilder
-
- setName(String) - Method in class io.github.rowak.effectbuilder.HighlightEffectBuilder
-
- setName(String) - Method in class io.github.rowak.effectbuilder.RandomEffectBuilder
-
- setName(String) - Method in class io.github.rowak.effectbuilder.WheelEffectBuilder
-
- setName(String) - Method in class io.github.rowak.Plugin
-
Sets the name of this plugin.
- setNumColorsPerFrame(int) - Method in class io.github.rowak.PluginOptions
-
Sets the modifier that indicates how much of a palette
is shown on the layout.
- setOn(boolean) - Method in class io.github.rowak.Aurora.State
-
Sets the on state of the Aurora (true = on, false = off).
- setOrientation(int) - Method in class io.github.rowak.Position
-
Sets the orientation of this position in degrees.
- setPalette(Color[]) - Method in class io.github.rowak.Effect
-
Sets the color palette of the effect.
- setPalette(Color[]) - Method in interface io.github.rowak.effectbuilder.EffectBuilder
-
Sets the palette of the effect.
- setPalette(Color[]) - Method in class io.github.rowak.effectbuilder.ExplodeEffectBuilder
-
- setPalette(Color[]) - Method in class io.github.rowak.effectbuilder.FadeEffectBuilder
-
- setPalette(Color[]) - Method in class io.github.rowak.effectbuilder.FlowEffectBuilder
-
- setPalette(Color[]) - Method in class io.github.rowak.effectbuilder.HighlightEffectBuilder
-
- setPalette(Color[]) - Method in class io.github.rowak.effectbuilder.RandomEffectBuilder
-
- setPalette(Color[]) - Method in class io.github.rowak.effectbuilder.WheelEffectBuilder
-
- setPanel(int, int, int, int, int) - Method in class io.github.rowak.Aurora.ExternalStreaming
-
Updates the color of a single panel.
- setPanel(Panel, int, int, int, int) - Method in class io.github.rowak.Aurora.ExternalStreaming
-
Updates the color of a single panel.
- setPanel(Panel, Frame) - Method in class io.github.rowak.effectbuilder.StaticEffectBuilder
-
Adds a new frame (RGBW color and transition time) to the effect.
- setPanel(int, Frame) - Method in class io.github.rowak.effectbuilder.StaticEffectBuilder
-
Adds a new frame (RGBW color and transition time) to the effect.
- setPanelColor(Panel, int, int, int, int) - Method in class io.github.rowak.Aurora.Effects
-
Sets the color of a single panel on the Aurora.
- setPanelColor(Panel, String, int) - Method in class io.github.rowak.Aurora.Effects
-
Sets the color of a single panel on the Aurora.
- setPanelColor(int, int, int, int, int) - Method in class io.github.rowak.Aurora.Effects
-
Sets the color of a single panel on the Aurora.
- setPanelColor(int, String, int) - Method in class io.github.rowak.Aurora.Effects
-
Sets the color of a single panel on the Aurora.
- setPluginConfig(JSONArray) - Method in class io.github.rowak.Plugin
-
Sets the plugin configuration for this plugin as a JSONArray.
Note: this uses a more raw type since it is not
fully supported by this api.
- setPluginOptions(PluginOptions) - Method in class io.github.rowak.Effect
-
Sets the plugin options for this effect.
- setPluginType(String) - Method in class io.github.rowak.Effect
-
Sets the plugin type of the effect.
- setPluginUuid(String) - Method in class io.github.rowak.Effect
-
Sets the pluginUUID of the effect.
- setPort(int) - Method in class io.github.rowak.AuroraMetadata
-
Sets the port of the associated Aurora device.
This does not affect the port of the actual Aurora device.
- setProbability(double) - Method in class io.github.rowak.Color
-
Set the probability of this color appearing (if applicable).
- setRadialDirection(String) - Method in class io.github.rowak.PluginOptions
-
Sets the radial direction based on the layout center.
- setRandomEffect() - Method in class io.github.rowak.Aurora.Effects
-
Sets a random effect based on the effects installed on the
Aurora controller.
- setRed(int) - Method in class io.github.rowak.Panel
-
Sets the red RGBW value of the panel's color.
- setRGB(int, int, int) - Method in class io.github.rowak.Panel
-
Sets the RGB values of this panel's color.
- setRGBW(int, int, int, int) - Method in class io.github.rowak.Panel
-
Sets the RGBW values of the panel's color.
- setRotationDirection(String) - Method in class io.github.rowak.PluginOptions
-
Sets the rotational/circular direction around the layout center.
- setSaturation(int) - Method in class io.github.rowak.Aurora.State
-
Sets the saturation of the Aurora (static/custom effects only).
- setSaturation(int) - Method in class io.github.rowak.Color
-
Set the saturation HSB value of this color.
- setTags(String[]) - Method in class io.github.rowak.Plugin
-
Sets the tags for this plugin.
- setTransTime(int) - Method in class io.github.rowak.Effect
-
Sets the total transition time of the effect (maximum and minimum).
- setTransTime(int) - Method in class io.github.rowak.PluginOptions
-
Sets the transition time for this plugin options object.
- setType(String) - Method in class io.github.rowak.Plugin
-
Sets the type of this plugin (For example: color, rhythm, etc)
- Setup - Class in io.github.rowak
-
A utility class with useful Aurora management methods.
- Setup() - Constructor for class io.github.rowak.Setup
-
- setUuid(String) - Method in class io.github.rowak.Plugin
-
Sets the uuid of this plugin.
- setVersion(String) - Method in class io.github.rowak.Effect
-
Sets the version of the effect.
- setVersion(String) - Method in class io.github.rowak.effectbuilder.ExplodeEffectBuilder
-
Sets the version of the effect.
- setVersion(String) - Method in class io.github.rowak.effectbuilder.FadeEffectBuilder
-
Sets the version of the effect.
- setVersion(String) - Method in class io.github.rowak.effectbuilder.FlowEffectBuilder
-
Sets the version of the effect.
- setVersion(String) - Method in class io.github.rowak.effectbuilder.HighlightEffectBuilder
-
Sets the version of the effect.
- setVersion(String) - Method in class io.github.rowak.effectbuilder.RandomEffectBuilder
-
Sets the version of the effect.
- setVersion(String) - Method in class io.github.rowak.effectbuilder.WheelEffectBuilder
-
Sets the version of the effect.
- setWhite(int) - Method in class io.github.rowak.Panel
-
Sets the white RGBW value of the panel's color.
- setWindowSize(int) - Method in class io.github.rowak.Effect
-
Sets the window size of the effect.
- setWindowSize(int) - Method in class io.github.rowak.effectbuilder.WheelEffectBuilder
-
Sets the window size for the effect.
- setX(int) - Method in class io.github.rowak.Position
-
Sets the x-value of this position.
- setY(int) - Method in class io.github.rowak.Position
-
Sets the y-value of this position.
- state() - Method in class io.github.rowak.Aurora
-
Returns the Aurora's State
object which contains
methods for accessing and modifying state information.
- State() - Constructor for class io.github.rowak.Aurora.State
-
- StaticAnimDataParser - Class in io.github.rowak
-
A helper class to assist with the parsing of
STATIC-type effects.
- StaticAnimDataParser(Effect) - Constructor for class io.github.rowak.StaticAnimDataParser
-
Create a data parser using an effect.
- StaticAnimDataParser(String) - Constructor for class io.github.rowak.StaticAnimDataParser
-
Create a data parser using the animation data.
- StaticEffectBuilder - Class in io.github.rowak.effectbuilder
-
A small helper class for creating simple
static
-type effects.
- StaticEffectBuilder(Aurora) - Constructor for class io.github.rowak.effectbuilder.StaticEffectBuilder
-
Creates a new instance of an StaticEffectBuilder
.
- StatusCodeException - Exception in io.github.rowak
-
A generic exception for an HTTP request error.
- StatusCodeException() - Constructor for exception io.github.rowak.StatusCodeException
-
- StatusCodeException(String) - Constructor for exception io.github.rowak.StatusCodeException
-
- StatusCodeException.BadRequestException - Exception in io.github.rowak
-
Thrown when the Aurora controlller returns a 400 status code response.
- StatusCodeException.ForbiddenException - Exception in io.github.rowak
-
Thrown when the Aurora controlller returns a 403 status code response.
- StatusCodeException.InternalServerErrorException - Exception in io.github.rowak
-
Thrown when the Aurora controlller returns a 500 status code response.
- StatusCodeException.ResourceNotFoundException - Exception in io.github.rowak
-
Thrown when the Aurora controlller returns a 404 status code response.
- StatusCodeException.UnauthorizedException - Exception in io.github.rowak
-
Thrown when the Aurora controller returns a 401 status code response.
- StatusCodeException.UnprocessableEntityException - Exception in io.github.rowak
-
Thrown when the Aurora controlller returns a 422 status code response.


How South Africans really feel about Black Friday, according to Twitter
by Shereesa MoodleyIt’s finally Black Friday, and while some are maxing out their credit cards at both real and virtual shopping centres, others are trolling social media with their thoughts and feelings about the day.
The funniest tweets to come out of the #BlackFriday2019 trend all seem to agree that celebrating the day is just not worth it.
Meanwhile, others are patiently waiting for chaos to unfold in shops around the country.
If, however, you’re determined to cash in on big deals, check out our guides over on Gearburn to see the latest sales.
Feature image: Shereesa Moodley/ Memeburn


Person Register
Home
User Management
Person Register
Option
CertificateNo
Full Name
Register Date
Nationality
Search
Add New
Edit
Delete
ID
Certificate No
Full Name
Nationality
Person Code
People Id
ID
Certificate No
Full Name
Nationality
Person Code
People Id
×
Updating Person Register
Certificate Type
Certificate No
Title
Full Name
Nationality
Category
Person Code
People Id
Address
Picture
*
Max File Size 5MB
Choose File...


Columns
| Column | Type | Size | Nulls | Auto | Default | Children | Parents | Comments | ||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| annotation_id | serial | 10 | √ | nextval('annotation_annotation_id_seq'::regclass) |
|
|
||||||
| sequence_id | int4 | 10 | null |
|
|
|||||||
| feature_type | varchar |<PHONE_NUMBER> | null |
|
|
The annotation type of the observed sub-sequence (e.g., gene, peptide, coding DNA region, or untranslated region, molecule patterns such as stem loops and so on) |
||||||
| start | int4 | 10 | √ | null |
|
|
Start coordinate of annotation on reference sequence |
|||||
| stop | int4 | 10 | √ | null |
|
|
Stop coordinate of annotation on reference sequence |
|||||
| gene_name | varchar |<PHONE_NUMBER> | √ | null |
|
|
Gene to which the sub-sequence belongs |
|||||
| product | varchar |<PHONE_NUMBER> | √ | null |
|
|
Protein produced by the sub-sequence within which the amino acid change occurs |
|||||
| external_reference | varchar |<PHONE_NUMBER> | √ | null |
|
|
Eventually related external reference (when the protein is present in a separate database such as UniProtKB) |
Indexes
| Constraint Name | Type | Sort | Column(s) |
|---|---|---|---|
| annotation_pkey | Primary key | Asc | annotation_id |
| ann__seq_id | Performance | Asc | sequence_id |
| ann__start | Performance | Asc | start |
| ann__stop | Performance | Asc | stop |


Toggle Navigation
Project Management
Project Management
Login
Sign Up
Sign Up
Name
Email Address
Password
Confirm Password
Sign Up
Already have account?
Sign In Now


- use all four of the character types above
- DON'T use personal information such as a name
- make your password 10-14 characters
- length is more important than character variety
- have more than one strong password
- make it memorable, but hard to guess
- generate a password if you have no strong ideas
- use all four of the character types above
- DON'T use personal information such as a name
- make your password 10-14 characters
- length is more important than character variety
- have more than one strong password
- make it memorable, but hard to guess
- generate a password if you have no strong ideas


My Background
Hi, my name is Aurelija. I hold a BA in Film and Television from Edge Hill University 2015 (near Liverpool), but I've always had keen interest in developing.
I've started with self learning through various websites to give me insight on developing languages and the basic foundation. After some research, I found Just IT course that helped me to learn and ......
I specialise in C# and ASP.NET, but I have a good undertanding and experience in front-end development including CSS, HTML5 and JavaScript.
Development Professional Programme 2016.
2012-2015
Film and Television Production
I've obtained 2:1 in my Film and Television degree at university, working on many long projects and obtaining experience in Media industry. Received Chancellor's Scholarship 2015, Student Employee of The Year 2015, & Highly Recommended in the North West Regional Student Employee of the Year 2015 by SEOTY.
A Levels - 2010- 2012
I enrolled in college deciding to learn subjests that where close to my interests and wanting to broaden my knowledge and thought me valiable skills. I have achieved full A Levels in Law, English Literature and 3D Design.
2005-2010
I wento to Kingsford Community schoold where I achived 9 A-C grades in subjects including Science, Maths, and English
June 2016- August 2016
Working in Beauty Salon as a Administrator, my role was to work with customers and create & update new files that contained information of the customer, in my administrative role, I had a chance to work on creating social media content, building the client number by making deals, ordering stocks for the office and creating posters with leaflets for the clients.
January 2016- Present
Sign the company for various events, ensuring the YA SHOTS is included in magazines and websites that have information on upcoming events. Writing summaries for the events, develop and write pitches for the managers to be able approach magazines that can publisize work with charities and schools.
2014-2016
Event Manager/Supervisor
Oversaw band schedules, sound checks and performances. Arranged locations, collaborated with graphic designers, distributed posters and advertised event over social media and University. Worked closely with bands throughout rehearsals. Worked with technicians to ensure sounds was perfect for event and received excellent feedback from the bands with thanks for the great event.
2014- 2015
Collaborating with students and festival managers to achieve the best results for the events. My role was to communicate with different groups and present their tasks for each day of the event or filming. Conducting risk assessments, scouting locations, writing contracts and managing schedules for each individual on the set, sorting any issues arisen. Working with managers or bands to sort interviews with people such as Kristian Nair aka HODOR, Danny Howard and Clean Bandit.
.


We want to set up a web site that will allow users to upload content that the site will incorporate into web pages for display. We want to do this in a way that does not require us to trust users.
We need to control access to certain folders in such a way as to allow our code to write and read website user uploaded content with several security considerations.
First, we do not allow any online user to upload any content to our DOCUMENT_ROOT
Second, since we do want to display uploaded user content we need to set up a place to upload and store the content.
Third, we need to set up access permissions and ownership for those upload directories
If this is done we can enjoy a more secure website and still allow the upload and display of user uploaded content. These ideas can avoid the popular Mkdir: Permission denied: ... error message.
So the first thing we'll do is create a user group and control access to the upload areas through membership in the group.
We will use www-pub for the group name and we will add two users to the group. One user is daemon which we see by looking at the ownership of the htdocs folder. The second user we add is named ftpuser and we use the same password Hacker as for our other users.
root@BobosRevenge:/opt/hhvm-3.30.12-5/apache2# clear root@BobosRevenge:/opt/hhvm-3.30.12-5/apache2# ll total 8432 drwxr-xr-x 14 root root 4096 Oct 16 20:51 ./ drwxr-xr-x 20 root root 4096 Oct 16 20:52 ../ drwxr-xr-x 2 root root 4096 Oct 16 20:49 bin/ -r-xr--r-- 1 root root 8573582 Oct 3 10:09 bnconfig* drwxr-xr-x 2 root root 4096 Oct 16 20:49 build/ drwxr-xr-x 2 root root 4096 Oct 16 20:51 cgi-bin/ drwxr-xr-x 5 root root 4096 Oct 17 12:52 conf/ drwxr-xr-x 3 root root 4096 Oct 16 20:49 error/ drwxr-xr-x 3 root daemon 4096 Oct 17 15:11 htdocs/ drwxr-xr-x 3 root root 4096 Oct 16 20:49 icons/ drwxr-xr-x 2 root root 4096 Oct 16 20:49 include/ drwxr-xr-x 2 root root 4096 Oct 20 18:50 logs/ drwxr-xr-x 2 root root 4096 Oct 16 20:49 modules/ drwxr-xr-x 2 root root 4096 Oct 16 20:49 scripts/ drwxr-xr-x 3 root root 4096 Oct 16 20:49 var/ root@BobosRevenge:/opt/hhvm-3.30.12-5/apache2# addgroup www-pub Adding group `www-pub' (GID 1003) ... Done. root@BobosRevenge:/opt/hhvm-3.30.12-5/apache2# sudo adduser daemon www-pub Adding user `daemon' to group `www-pub' ... Adding user daemon to group www-pub Done. root@BobosRevenge:/opt/hhvm-3.30.12-5/apache2# adduser ftpuser Adding user `ftpuser' ... Adding new group `ftpuser' (1004) ... Adding new user `ftpuser' (1002) with group `ftpuser' ... Creating home directory `/home/ftpuser' ... Copying files from `/etc/skel' ... Enter new UNIX password: [enter Hacker] Retype new UNIX password: passwd: password updated successfully Changing the user information for ftpuser Enter the new value, or press ENTER for the default Full Name []: Room Number []: Work Phone []: Home Phone []: Other []: Is the information correct? [Y/n] root@BobosRevenge:/opt/hhvm-3.30.12-5/apache2# adduser ftpuser www-pub Adding user `ftpuser' to group `www-pub' ... Adding user ftpuser to group www-pub Done. root@BobosRevenge:/opt/hhvm-3.30.12-5/apache2# getent group www-pub www-pub:x:1003:daemon,ftpuser root@BobosRevenge:/opt/hhvm-3.30.12-5/apache2#
So now we have a group and two users as described. Now let's set up a folder structure to accommodate our web site needs. We will create four folders at the same level as our apache2 folder.
root@BobosRevenge:/opt/hhvm-3.30.12-5/apache2# ll total 8432 drwxr-xr-x 14 root root 4096 Oct 16 20:51 ./ drwxr-xr-x 20 root root 4096 Oct 16 20:52 ../ drwxr-xr-x 2 root root 4096 Oct 16 20:49 bin/ -r-xr--r-- 1 root root 8573582 Oct 3 10:09 bnconfig* drwxr-xr-x 2 root root 4096 Oct 16 20:49 build/ drwxr-xr-x 2 root root 4096 Oct 16 20:51 cgi-bin/ drwxr-xr-x 5 root root 4096 Oct 17 12:52 conf/ drwxr-xr-x 3 root root 4096 Oct 16 20:49 error/ drwxr-xr-x 3 root daemon 4096 Oct 17 15:11 htdocs/ drwxr-xr-x 3 root root 4096 Oct 16 20:49 icons/ drwxr-xr-x 2 root root 4096 Oct 16 20:49 include/ drwxr-xr-x 2 root root 4096 Oct 20 18:50 logs/ drwxr-xr-x 2 root root 4096 Oct 16 20:49 modules/ drwxr-xr-x 2 root root 4096 Oct 16 20:49 scripts/ drwxr-xr-x 3 root root 4096 Oct 16 20:49 var/ root@BobosRevenge:/opt/hhvm-3.30.12-5/apache2# mkdir uploads root@BobosRevenge:/opt/hhvm-3.30.12-5/apache2# chown root:www-pub uploads root@BobosRevenge:/opt/hhvm-3.30.12-5/apache2# chmod g+rwxs uploads root@BobosRevenge:/opt/hhvm-3.30.12-5/apache2# mkdir Storybook root@BobosRevenge:/opt/hhvm-3.30.12-5/apache2# chown root:www-pub Storybook root@BobosRevenge:/opt/hhvm-3.30.12-5/apache2# chmod g+rwxs Storybook root@BobosRevenge:/opt/hhvm-3.30.12-5/apache2# mkdir includes root@BobosRevenge:/opt/hhvm-3.30.12-5/apache2# chown root:www-pub includes root@BobosRevenge:/opt/hhvm-3.30.12-5/apache2# chmod g+rwxs includes root@BobosRevenge:/opt/hhvm-3.30.12-5/apache2# mkdir session2DB root@BobosRevenge:/opt/hhvm-3.30.12-5/apache2# chown root:www-pub session2DB root@BobosRevenge:/opt/hhvm-3.30.12-5/apache2# chmod g+rwxs session2DB root@BobosRevenge:/opt/hhvm-3.30.12-5/apache2# ll total 8448 drwxr-xr-x 18 root root 4096 Oct 23 13:13 ./ drwxr-xr-x 20 root root 4096 Oct 16 20:52 ../ drwxrwsr-x 2 root www-pub 4096 Oct 23 12:47 Storybook/ drwxr-xr-x 2 root root 4096 Oct 16 20:49 bin/ -r-xr--r-- 1 root root 8573582 Oct 3 10:09 bnconfig* drwxr-xr-x 2 root root 4096 Oct 16 20:49 build/ drwxr-xr-x 2 root root 4096 Oct 16 20:51 cgi-bin/ drwxr-xr-x 5 root root 4096 Oct 17 12:52 conf/ drwxr-xr-x 3 root root 4096 Oct 16 20:49 error/ drwxr-xr-x 3 root daemon 4096 Oct 17 15:11 htdocs/ drwxr-xr-x 3 root root 4096 Oct 16 20:49 icons/ drwxr-xr-x 2 root root 4096 Oct 16 20:49 include/ drwxr-xr-x 2 root www-pub 4096 Oct 23 13:05 includes/ drwxr-xr-x 2 root root 4096 Oct 20 18:50 logs/ drwxr-xr-x 2 root root 4096 Oct 16 20:49 modules/ drwxr-xr-x 2 root root 4096 Oct 16 20:49 scripts/ drwxrwsr-x 2 root www-pub 4096 Oct 23 13:10 session2DB/ drwxrwsr-x 2 root www-pub 4096 Oct 23 12:45 uploads/ drwxr-xr-x 3 root root 4096 Oct 16 20:49 var/
We now have the folders with permissions and ownership as shown here in the directory above. Now we will create two subfolders under our newly created Storybook folder.
root@BobosRevenge:/opt/hhvm-3.30.12-5/apache2# mkdir Storybook/htdocs root@BobosRevenge:/opt/hhvm-3.30.12-5/apache2# mkdir Storybook/conf root@BobosRevenge:/opt/hhvm-3.30.12-5/apache2# ll Storybook total 16 drwxrwsr-x 4 root www-pub 4096 Oct 23 13:13 ./ drwxr-xr-x 18 root root 4096 Oct 23 13:13 ../ drwxrwsr-x 2 root www-pub 4096 Oct 23 13:13 conf/ drwxrwsr-x 2 root www-pub 4096 Oct 23 13:13 htdocs/ root@BobosRevenge:/opt/hhvm-3.30.12-5/apache2#
Using vim we create the following file within our apache2/htdocs folder and save it as mkdirtest.php. You will need to delete the space character between the opening < and the question mark.
< ?php /* filename: mkdirtest.php * this code tests the ability to make a directory * */ // disable error reporting for production code error_reporting(E_ALL); ini_set('display_errors', TRUE); // echo 'Current Working Dir '. getcwd() .'
'; // echo phpinfo(); $old = umask(0000); if(!(is_dir('/opt/hhvm-3.30.12-5/apache2/Storybook/htdocs/Test'))) { echo 'Directory does not exist.'
'; mkdir('/opt/hhvm-3.30.12-5/apache2/Storybook/htdocs/Test', 0775, true); } umask($old); ?>
If we point our Windows browser at <IP_ADDRESS>:8080/mkdirtest.php we get the expected message and if we look at the Storybook/htdocs folder we will see a newly added subfolder Test
Using vim we create the following file within our apache2/htdocs folder and save it as makefiletest.php. You will need to delete the space character between the opening < and the question mark.
< ?php /* * filename: testMakeFile.php * this code tests creating a file */ // disable error reporting for production code error_reporting(E_ALL); ini_set('display_errors', TRUE); $testString = "E Pluribus Unum"; $destinationPath = '/opt/hhvm-3.30.12-5/apache2/Storybook/htdocs/Test/'; $destinationFile = 'testFile.txt'; echo 'Current Working Dir '. getcwd() .'
'; //echo phpinfo(); if(is_dir($destinationPath)) { $result = file_put_contents($destinationPath.$destinationFile, $testString); } ?>
If we point our Windows browser at <IP_ADDRESS>:8080/Storybook/Test/testFile.txt we get the expected message and if we look at the Storybook/htdocs folder we will see a subfolder Test with the testFile.txt file in it.
Now we want to navigate to the /opt/hhvm-3.30.12-5/apache2/Storybook/conf folder and use vim to create three configuration files there.
The first files is httpd-vhosts.conf with the following content
ServerName Storybook.example.com DocumentRoot "/opt/hhvm-3.30.12-5/apache2/Storybook/htdocs" Include "/opt/hhvm-3.30.12-5/apache2/Storybook/conf/httpd-app.conf"
The second file is httpd-prefix.conf with this content
Alias /Storybook/ "/opt/hhvm-3.30.12-5/apache2/Storybook/htdocs/" Alias /Storybook "/opt/hhvm-3.30.12-5/apache2/Storybook/htdocs" Include "/opt/hhvm-3.30.12-5/apache2/Storybook/conf/httpd-app.conf"
The third file is httpd-app.conf with this content
Options Indexes MultiViews AllowOverride All Order allow,deny Allow from all = 2.3> Require all granted
These edits result in a folder with contents like this
root@BobosRevenge:/opt/hhvm-3.30.12-5/apache2/Storybook/conf# ll total 20 drwxrwsr-x 2 root www-pub 4096 Oct 23 15:47 ./ drwxrwsr-x 4 root www-pub 4096 Oct 23 13:13 ../ -rw-r--r-- 1 root www-pub 270 Oct 23 15:34 httpd-app.conf -rw-r--r-- 1 root www-pub 200 Oct 23 15:41 httpd-prefix.conf -rw-r--r-- 1 root www-pub 229 Oct 23 15:47 httpd-vhosts.conf root@BobosRevenge:/opt/hhvm-3.30.12-5/apache2/Storybook/conf#
Now let's restart the LAMH stack and continue after that.
root@BobosRevenge:/opt/hhvm-3.30.12-5/apache2/Storybook# /opt/hhvm-3.30.12-5/ctlscript.sh restart Syntax OK /opt/hhvm-3.30.12-5/apache2/scripts/ctl.sh : httpd stopped /opt/hhvm-3.30.12-5/hhvm/scripts/ctl.sh : hhvm stopped /opt/hhvm-3.30.12-5/mysql/scripts/ctl.sh : mysql stopped /opt/hhvm-3.30.12-5/mysql/scripts/ctl.sh : mysql started at port 3306 /opt/hhvm-3.30.12-5/hhvm/scripts/ctl.sh : hhvm started Syntax OK /opt/hhvm-3.30.12-5/apache2/scripts/ctl.sh : httpd started at port 80 root@BobosRevenge:/opt/hhvm-3.30.12-5/apache2/Storybook#
Now if we point our browser at <IP_ADDRESS>:8080/Storybook/Test/testFile.txt we will see the E Pluribus Unum motto as the result. If we copy our index.php file from out htdocs document root into the Storybook folder it can be executed from there with a request to <IP_ADDRESS>:8080/Storybook or <IP_ADDRESS>:8080/Storybook/index.php
Now that we can serve content in this fashion, let's set up an FTP server to help us "upload" content. Now you can easily mount Windows drives in the stack, but an FTP server is somewhat more familiar since it is more like our usual access to a server. I like the Windows Filezilla client but it is not available for Linux nor is the server.
We chose to install vsftpd as our FTP server with an apt install vsftpd command on the Ubuntu console. After installation we will use vim to edit the config file named /etc/vsftpd.conf. We want the end results of our edit to look like this following
Example config file /etc/vsftpd.conf
# # The default compiled in settings are fairly paranoid. This sample file # loosens things up a bit, to make the ftp daemon more usable. # Please see vsftpd.conf.5 for all compiled in defaults. # # READ THIS: This example file is NOT an exhaustive list of vsftpd options. # Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's # capabilities. # # # Run standalone? vsftpd can run either from an inetd or as a standalone # daemon started from an initscript. listen=YES listen_port=8021 # # This directive enables listening on IPv6 sockets. By default, listening # on the IPv6 "any" address (::) will accept connections from both IPv6 # and IPv4 clients. It is not necessary to listen on *both* IPv4 and IPv6 # sockets. If you want that (perhaps because you want to listen on specific # addresses) then you must run two copies of vsftpd with two configuration # files. listen_ipv6=NO # # Allow anonymous FTP? (Disabled by default). anonymous_enable=NO # # Uncomment this to allow local users to log in. local_enable=YES # # Uncomment this to enable any form of FTP write command. write_enable=YES # # Default umask for local users is 077. You may wish to change this to 022, # if your users expect that (022 is used by most other ftpd's) local_umask=022 # # Uncomment this to allow the anonymous FTP user to upload files. This only # has an effect if the above global write enable is activated. Also, you will # obviously need to create a directory writable by the FTP user. #anon_upload_enable=YES # # Uncomment this if you want the anonymous FTP user to be able to create # new directories. #anon_mkdir_write_enable=YES # # Activate directory messages - messages given to remote users when they # go into a certain directory. dirmessage_enable=YES # # If enabled, vsftpd will display directory listings with the time # in your local time zone. The default is to display GMT. The # times returned by the MDTM FTP command are also affected by this # option. use_localtime=YES # # Activate logging of uploads/downloads. xferlog_enable=YES # # Make sure PORT transfer connections originate from port 20 (ftp-data). #connect_from_port_20=YES # # If you want, you can arrange for uploaded anonymous files to be owned by # a different user. Note! Using "root" for uploaded files is not # recommended! #chown_uploads=YES #chown_username=whoever # # You may override where the log file goes if you like. The default is shown # below. #xferlog_file=/var/log/vsftpd.log # # If you want, you can have your log file in standard ftpd xferlog format. # Note that the default log file location is /var/log/xferlog in this case. #xferlog_std_format=YES # # You may change the default value for timing out an idle session. #idle_session_timeout=600 # # You may change the default value for timing out a data connection. #data_connection_timeout=120 # # It is recommended that you define on your system a unique user which the # ftp server can use as a totally isolated and unprivileged user. #nopriv_user=ftpsecure # # Enable this and the server will recognise asynchronous ABOR requests. Not # recommended for security (the code is non-trivial). Not enabling it, # however, may confuse older FTP clients. #async_abor_enable=YES # # By default the server will pretend to allow ASCII mode but in fact ignore # the request. Turn on the below options to have the server actually do ASCII # mangling on files when in ASCII mode. # Beware that on some FTP servers, ASCII support allows a denial of service # attack (DoS) via the command "SIZE /big/file" in ASCII mode. vsftpd # predicted this attack and has always been safe, reporting the size of the # raw file. # ASCII mangling is a horrible feature of the protocol. #ascii_upload_enable=YES #ascii_download_enable=YES # # You may fully customise the login banner string: ftpd_banner=Welcome to HACK STACK's FTP service. # # You may specify a file of disallowed anonymous e-mail addresses. Apparently # useful for combatting certain DoS attacks. #deny_email_enable=YES # (default follows) #banned_email_file=/etc/vsftpd.banned_emails # # You may restrict local users to their home directories. See the FAQ for # the possible risks in this before using chroot_local_user or # chroot_list_enable below. #chroot_local_user=YES # # You may specify an explicit list of local users to chroot() to their home # directory. If chroot_local_user is YES, then this list becomes a list of # users to NOT chroot(). # (Warning! chroot'ing can be very dangerous. If using chroot, make sure that # the user does not have write access to the top level directory within the # chroot) #chroot_local_user=YES #chroot_list_enable=YES # (default follows) #chroot_list_file=/etc/vsftpd.chroot_list # # You may activate the "-R" option to the builtin ls. This is disabled by # default to avoid remote users being able to cause excessive I/O on large # sites. However, some broken FTP clients such as "ncftp" and "mirror" assume # the presence of the "-R" option, so there is a strong case for enabling it. #ls_recurse_enable=YES # # Customization # # Some of vsftpd's settings don't fit the filesystem layout by # default. # # This option should be the name of a directory which is empty. Also, the # directory should not be writable by the ftp user. This directory is used # as a secure chroot() jail at times vsftpd does not require filesystem # access. secure_chroot_dir=/var/run/vsftpd/empty # # This string is the name of the PAM service vsftpd will use. pam_service_name=vsftpd # # This option specifies the location of the RSA certificate to use for SSL # encrypted connections. rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key ssl_enable=NO # # Uncomment this to indicate that vsftpd use a utf8 filesystem. #utf8_filesystem=YES
After we complete these edits we will restart the vsftpd service with the command
root@BobosRevenge:/# service restart vsftpd No /usr/sbin/vsftpd found running; none killed. root@BobosRevenge:/# service vsftpd restart [ OK ] * Starting FTP server vsftpd [ OK ] root@BobosRevenge:/#
Now we can connect to our "web server" using a Windows FTP client like FileZilla or even the Windows Command prompt FTP client using Port 8021 and the FTP username ftpuser with a password of Hacker. The two images show screens from the Windows FileZilla client connected to our server.
Note especially that the folder Storybook is not within the htdocs folder but is instead at the same level in the folder hierarchy. The LAMH stack here at The Palace is presently running a replica of a page served on an AWS Bitnami LAMP stack.
The final step we should take is to execute these commands in our Windows Admin Command prompt to back up the changes we have made.
Microsoft Windows [Version 10.0.19041.572] (c) 2020 Microsoft Corporation. All rights reserved. C:\WINDOWS\system32>wsl --list --all Windows Subsystem for Linux Distributions: Ubuntu-18.04 (Default) C:\WINDOWS\system32>wsl --export Ubuntu-18.04 D:/UbuntuHHVMbase.tar C:\WINDOWS\system32>
Next time we'll use more of this files-folders-users hierarchy in our LAMH stack and web sites.


Javascript lacks complete string manipulation operations.
This an attempt to fill that gap. List of build-in methods can be found
for example from Dive Into JavaScript.
As name states this an extension for Underscore.js, but it can be used
independently from _s-global variable. But with Underscore.js you can
use Object-Oriented style and chaining:
_(" epeli ").chain().trim().capitalize().value()
=> "Epeli"
npm package
npm install underscore.string
Standalone usage:
var _s = require('underscore.string');
Integrate with Underscore.js:
var _ = require('underscore');
// Import Underscore.string to separate object, because there are conflict functions (include, reverse, contains)
_.str = require('underscore.string');
// Mix in non-conflict functions to Underscore namespace if you want
_.mixin(_.str.exports());
// All functions, include conflict, will be available through _.str object
_.str.include('Underscore.string', 'string'); // => true
For availability of functions in this way you need to mix in Underscore.string functions:
_.mixin(_.string.exports());
otherwise functions from examples will be available through .string or .str objects:
_.str.capitalize('epeli')
=> "Epeli"
capitalize _.capitalize(string)
Converts first letter of the string to uppercase.
_.capitalize("foo Bar")
=> "Foo Bar"
chop _.chop(string, step)
_.chop('whitespace', 3)
=> ['whi','tes','pac','e']
clean _.clean(str)
Compress some whitespaces to one.
_.clean(" foo bar ")
=> 'foo bar'
chars _.chars(str)
_.chars('Hello')
=> ['H','e','l','l','o']
includes _.includes(string, substring)
Tests if string contains a substring.
_.includes("foobar", "ob")
=> true
include available only through _.str object, because Underscore has function with the same name.
_.str.include("foobar", "ob")
=> true
includes function was removed
But you can create it in this way, for compatibility with previous versions:
_.includes = _.str.include
count _.count(string, substring)
_('Hello world').count('l')
=> 3
escapeHTML _.escapeHTML(string)
Converts HTML special characters to their entity equivalents.
_('
Blah blah blah
').escapeHTML();
=> '
Blah blah blah
'
unescapeHTML _.unescapeHTML(string)
Converts entity characters to HTML equivalents.
_('
Blah blah blah
').unescapeHTML();
=> '
Blah blah blah
'
insert _.insert(string, index, substing)
_('Hello ').insert(6, 'world')
=> 'Hello world'
isBlank _.isBlank(string)
_('').isBlank(); // => true
_('\n').isBlank(); // => true
_(' ').isBlank(); // => true
_('a').isBlank(); // => false
join _.join(separator, *strings)
Joins strings together with given separator
_.join(" ", "foo", "bar")
=> "foo bar"
lines _.lines(str)
_.lines("Hello\nWorld")
=> ["Hello", "World"]
reverse available only through _.str object, because Underscore has function with the same name.
Return reversed string:
_.str.reverse("foobar")
=> 'raboof'
splice _.splice(string, index, howmany, substring)
Like a array splice.
_('https://edtsech@bitbucket.org/edtsech/underscore.strings').splice(30, 7, 'epeli')
=><EMAIL_ADDRESS>startsWith _.startsWith(string, starts)
This method checks whether string starts with starts.
_("image.gif").startsWith("image")
=> true
endsWith _.endsWith(string, ends)
This method checks whether string ends with ends.
_("image.gif").endsWith("gif")
=> true
succ _.succ(str)
Returns the successor to str.
_('a').succ()
=> 'b'
_('A').succ()
=> 'B'
supplant
Supplant function was removed, use Underscore.js template function.
strip alias for trim
lstrip alias for ltrim
rstrip alias for rtrim
titleize _.titleize(string)
_('my name is epeli').titleize()
=> 'My Name Is Epeli'
camelize _.camelize(string)
Converts underscored or dasherized string to a camelized one
_('-moz-transform').camelize()
=> 'MozTransform'
classify _.classify(string)
Converts string to camelized class name
_('some_class_name').classify()
=> 'SomeClassName'
underscored _.underscored(string)
Converts a camelized or dasherized string into an underscored one
_('MozTransform').underscored()
=> 'moz_transform'
dasherize _.dasherize(string)
Converts a underscored or camelized string into an dasherized one
_('MozTransform').dasherize()
=> '-moz-transform'
humanize _.humanize(string)
Converts an underscored, camelized, or dasherized string into a humanized one.
Also removes beginning and ending whitespace, and removes the postfix ‘_id’.
_(' capitalize dash-CamelCase_underscore trim ').humanize()
=> 'Capitalize dash camel case underscore trim'
trim _.trim(string, [characters])
trims defined characters from begining and ending of the string.
Defaults to whitespace characters.
_.trim(" foobar ")
=> "foobar"
_.trim("_-foobar-_", "_-")
=> "foobar"
ltrim _.ltrim(string, [characters])
Left trim. Similar to trim, but only for left side.
rtrim _.rtrim(string, [characters])
Right trim. Similar to trim, but only for right side.
truncate _.truncate(string, length, truncateString)
_('Hello world').truncate(5)
=> 'Hello...'
_('Hello').truncate(10)
=> 'Hello'
prune _.prune(string, length, pruneString)
Elegant version of truncate.
Makes sure the pruned string does not exceed the original length.
Avoid half-chopped words when truncating.
_('Hello, world').prune(5)
=> 'Hello...'
_('Hello, world').prune(8)
=> 'Hello...'
_('Hello, world').prune(5, ' (read a lot more)')
=> 'Hello, world' (as adding "(read a lot more)" would be longer than the original string)
_('Hello, cruel world').prune(15)
=> 'Hello, cruel...'
_('Hello').prune(10)
=> 'Hello'
words _.words(str, delimiter=” “)
Split string by delimiter (String or RegExp), ‘ ‘ by default.
_.words("I love you")
=> ["I","love","you"]
_.words("I_love_you", "_")
=> ["I","love","you"]
_.words("I-love-you", /-/)
=> ["I","love","you"]
sprintf _.sprintf(string format, *arguments)
C like string formatting.
Credits goes to Alexandru Marasteanu.
For more detailed documentation, see the original page.
_.sprintf("%.1f", 1.17)
"1.2"
pad _.pad(str, length, [padStr, type])
pads the str
with characters until the total string length is equal to the passed length
parameter. By default, pads on the left with the space char (" "
). padStr
is truncated to a single character if necessary.
_.pad("1", 8)
-> " 1";
_.pad("1", 8, '0')
-> "00000001";
_.pad("1", 8, '0', 'right')
-> "10000000";
_.pad("1", 8, '0', 'both')
-> "00001000";
_.pad("1", 8, 'bleepblorp', 'both')
-> "bbbb1bbb";
lpad _.lpad(str, length, [padStr])
left-pad a string. Alias for pad(str, length, padStr, 'left')
_.lpad("1", 8, '0')
-> "00000001";
rpad _.rpad(str, length, [padStr])
right-pad a string. Alias for pad(str, length, padStr, 'right')
_.rpad("1", 8, '0')
-> "10000000";
lrpad _.lrpad(str, length, [padStr])
left/right-pad a string. Alias for pad(str, length, padStr, 'both')
_.lrpad("1", 8, '0')
-> "00001000";
center alias for lrpad
ljust alias for rpad
rjust alias for lpad
toNumber _.toNumber(string, [decimals])
Parse string to number. Returns NaN if string can’t be parsed to number.
_('2.556').toNumber()
=> 3
_('2.556').toNumber(1)
=> 2.6
strRight _.strRight(string, pattern)
Searches a string from left to right for a pattern and returns a substring consisting of the characters in the string that are to the right of the pattern or all string if no match found.
_('This_is_a_test_string').strRight('_')
=> "is_a_test_string";
strRightBack _.strRightBack(string, pattern)
Searches a string from right to left for a pattern and returns a substring consisting of the characters in the string that are to the right of the pattern or all string if no match found.
_('This_is_a_test_string').strRightBack('_')
=> "string";
strLeft _.strLeft(string, pattern)
Searches a string from left to right for a pattern and returns a substring consisting of the characters in the string that are to the left of the pattern or all string if no match found.
_('This_is_a_test_string').strLeft('_')
=> "This";
strLeftBack _.strLeftBack(string, pattern)
Searches a string from right to left for a pattern and returns a substring consisting of the characters in the string that are to the left of the pattern or all string if no match found.
_('This_is_a_test_string').strLeftBack('_')
=> "This_is_a_test";
stripTags
Removes all html tags from string.
_('a link').stripTags()
=> 'a link'
_('a link').stripTags()
=> 'a linkalert("hello world!")'
toSentence _.toSentence(array, [delimiter, lastDelimiter])
Join an array into a human readable sentence.
_.toSentence(['jQuery', 'Mootools', 'Prototype'])
=> 'jQuery, Mootools and Prototype';
_.toSentence(['jQuery', 'Mootools', 'Prototype'], ', ', ' unt ')
=> 'jQuery, Mootools unt Prototype';
repeat _.repeat(string, count, [separator])
Repeats a string count times.
_.repeat("foo", 3)
=> 'foofoofoo';
_.repeat("foo", 3, "bar")
=> 'foobarfoobarfoo'
slugify _.slugify(string)
Transform text into a URL slug. Replaces whitespaces, accentuated, and special characters with a dash.
_.slugify("Un éléphant à l'orée du bois")
=> 'un-elephant-a-loree-du-bois';
Caution: this function is charset dependent
Any suggestions or bug reports are welcome. Just email me or more preferably open an issue.
We lose two things for include
and reverse
methods from _.string
:
_('foobar').include('bar')
aren’t available;But if you need this functionality you can create aliases for conflict functions which will be convenient for you:
_.mixin({
includeString: _.str.include,
reverseString: _.str.reverse
})
// Now wrapper calls and chaining are available.
_('foobar').chain().reverseString().includeString('rab').value()
If you are using Underscore.string without Underscore. You also have _.string
namespace for it and _.str
alias
But of course you can just reassign _
variable with _.string
_ = _.string
For upgrading to this version you need to mix in Underscore.string library to Underscore object:
_.mixin(_.string.exports());
and all non-conflict Underscore.string functions will be available through Underscore object.
Also function includes
has been removed, you should replace this function by _.str.include
or create alias _.includes = _.str.include
and all your code will work fine.
Otherwise changes will be rejected.
The MIT License
Copyright (c) 2011 Esa-Matti Suuronen<EMAIL_ADDRESS>Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the “Software”), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
 IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.


Introduction
This package simulates social dynamics coupled with underground water contamination (using the Finite Element Heat and Mass (FEHM) package). The purpose of this simulator is to set up a versatile and easy use decision support system (DSS) for environmental dynamics impacted by human behavior. This page gives an idea of the social dynamics and its coupling with hydrological models. For more details, please refer to this paper.
FEHM can be downloaded from here. The social models used in the following simulations are derived from the framework presented in this paper.
Problem Statement
The social-hydrological simulation is setup as follows. A small society (a few thousand people) living in a quasi-independent region has a single nearby aquifer as a source of drinking water. Over the years, contaminants have infiltrated the aquifer due to improperly stored waste in its vicinity. Given that the water-supply pumping well is near a contamination plume (see Figure 1), the contaminant concentration distribution in the aquifer is a ected by the pumping rate. In addition, the contaminant concentration in the supplied water depends on the pumping rate, which in turn is controlled by water demand. In the simplest economic case, the pumping rate is proportional to the water demand.
By properly monitoring groundwater contamination, social regulations are created to limit the amount of pumping from the well in order to decrease its contaminant concentration, thus protecting the community from its health dangers. This creates a feedback process whereby social demand affects the contaminant concentration via the pumping rate and the contamination of the groundwater affects the demand by means of socio-political regulations and observed health hazards.
The pumping rate is controlled by two opposing factors. On one hand, the community depends on the water supplied from the aquifer and to stop using it would disrupt their economy; i.e. water pumping from a local aquifer should be maximized. On the other hand, the more contaminated water is used by the population, the higher the health risks; i.e. the pumping rate should be minimized. This is a typical environmental scenario: economy vs. health.
Social Modeling
Society behaves according to its beliefs and habits. Both beliefs and habits follow the forces of conformity and consistency. Conformity is the tendency of individuals to mirror their social circle. Consistency is the tendency of individuals to have consistent attributes by minimizing the contradictions within their own beliefs and actions. Every individual can be represented as a vector of attributes; in particular, the attributes can be binary: believes water is contaminated or does not believe the water is contaminated, uses the water or does not use the water etc.
The methods by which regulators control society are proposed to be of two sorts: expert and media influence. Media affects public opinion via media outlets in a distributed fashion. Experts affect public beliefs through convincing arguments and fixed informed beliefs. Thus, media influence is coded as broadcasting flipping bits. Experts are coded as a set of individuals with fixed belief attribute.
A potential use of social dynamics with social networks is facilitated by introducing a rate-of-interaction classification tree depending on how often people interact. People within smaller circles tend to interact more often than people within larger circles.
Water Contamination
In this case, the water contamination in an aquifer is simulated by FEHM
Control in Coupling Socio-Hydological Dynamics
Given the two interacting system: society and the environment; we would like to affect public opinion in such a way to minimize public health hazards. The feedback nature of the system enables us to use control theory for finding the optimal decision strategy.
Accordingly, we can use PID control for controlling the amount of expert and media influence regulators wish to confer. This is done by analogy. The reference is the desired health risk threshold or concentration. The plant is the environment-society system. The controller is the regulators. The measurement feedback unit is also part of the regulators as shown in the imgure.
This computational framework presents a systematic yet simple methodology to explore the decision space of a nonlinear stochastic system.
See the functions page for details on how to use the package and the examples page for more information on potential results.


Some filler text from
HipsumEthical chia craft beer pitchfork aesthetic. PBR&B chambray meditation, keytar kombucha before they sold out mixtape franzen tilde raw denim art party yr celiac asymmetrical food truck. Meh master cleanse offal intelligentsia, green juice normcore polaroid. Fingerstache iPhone squid, bushwick chillwave pabst selfies drinking vinegar. Celiac chillwave butcher ennui fashion axe skateboard, photo booth lomo williamsburg echo park letterpress tumblr. Migas ethical tilde, everyday carry semiotics swag small batch meggings scenester. Ethical lo-fi cliche slow-carb tofu seitan, iPhone 8-bit.


Lorem Ipsum is simply dummy text of the printing and typesettingindustry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, whenan unknown printer took a galley of type and scrambled it to make atype specimen book. It has survivednot only five centuries. Lorem Ipsum is simply dummy text of the printing andtypesettingindustry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, whenan unknown printer took a galley of type and scrambled it to make atype specimen book. It has survived not only five.
Lorem Ipsum is simply dummy text of the printing and typesetting of the industry.
Lorem Ipsum is simply dummy text of the printing and typesetting of the industry.
Lorem Ipsum is simply dummy text of the printing and typesetting of the industry.


A brief overview
Read any of the popular journals of media criticism and you will find a long litany of repeated complaints about modern journalism. It misses important stories, is too dependent on press releases, is easily manipulated by politicians and special interests, and does not communicate what it does know in an effective manner. All of these complaints are justified. Their cause is not so much a lack of energy or talent or dedication to truth, as the critics sometimes imply, but a simple lag in the application of information science — a body of knowledge — to the daunting problems of reporting the news in a time of information overload.
Journalists need to be data-savvy. It used to be that you would get stories by chatting to people in bars, and it still might be that you'll do it that way some times. But now it's also going to be about poring over data and equipping yourself with the tools to analyse it and picking out what's interesting. And keeping it in perspective, helping people out by really seeing where it all fits together, and what's going on in the country.
 I think that's the way to survive. The role of the generalist is diminishing. Journalism has to get smarter."
Is this something new?
What we do @nzherald
Data visualisation, data investigations and news applications
Data
Process
Data skepticism
Data is never objective
It's rarely clean
NCEA internals versus externals
Analysing the data
What did we find
How the findings changed
The skillset
Writing code
Data analysis - Statistics
I'm not making this up. Here's what Columbia Journalism School's Lede program looks like..
But that's an exception
Most people working in this field are self-taught
In fact, you've to put in time to learn programming, or statistics
Further Links
The Art and Science of Data Journalism


Bernie Sanders campaign says it has gotten 4M contributions
by Associated PressWASHINGTON (AP) — Bernie Sanders’ 2020 campaign says that it has received more than 4 million donations from people nationwide.
During Sanders’ 2016 presidential campaign, he didn’t reach that number of contributions until after winning the New Hampshire primary. That’s when the Vermont senator was rising from virtual unknown nationally to credible challenger of Hillary Clinton, the eventual Democratic nominee.
Sanders campaign manager Faiz Shakir says, “This is what momentum looks like.”
Last week, the Sanders campaign said it had made more than 7.75 million calls and sent more than 63 million text messages, mostly to voters in early states. Sanders began running for president in February.
The campaign’s announcement came on the eve of the latest Democratic primary presidential debate in Atlanta.

___
This story has been corrected to show Sanders had more than 4 million contributions, not contributions from 4 million donors.


RIP:
I made tombstones yesterday for people who couldn't afford the professional kind. Usually people just want them for pets so I was kind of skeptical about the idea
but I guess they look a lot better than I thought they would:
The other times they always picked out caesarstone but this time for some reason they wanted green butterfly. Whatever. You can see how it chipped too much the second time I tried.
And then it chipped too much the third time I tried. Also it chipped too much the first time I tried but that part's hidden behind the template board in the foreground.
The fouth time I guess I got it right. I know I was less than 0.02" below the face of the rock that time with a worn out ball end tool. I let it run at 10" a minute and I went and collapsed on a table for like an hour
or something because I had a throbbing headache. I really have no idea how long it took.
Anyway if you're dead and you need a cheap tombstone then email me<EMAIL_ADDRESS>© Copyright 2018 by laconiclizard


This posts to https://api-projects-naiyucko.c9users.io/metadata/go And returns a json response for its size in bytes.


(Note that one should have include files there that work correctly with the current libc and in user space. However, Linux kernel source is not designed to be used with user programs and does not know anything about the libc you are using. It is very likely that things will break if you let /usr/include/asm and /usr/include/linux point at a random kernel tree. Debian systems don't do this and use headers from a known good kernel version, provided in the libc*-dev package.)
The Filesystem Hierarchy Standard


Social Media Analysis in Cognos Analytics (Social Insights, coming this Xmas)
Source: MobX Quick Start Guide
Minimum requirements for a state management system
L'état c'est moi
MobX is the base state handling library. MobX State Tree (MST) is a stricter, more centralized library on built on top of MobX.
The MobX name has ob for observable, x for reactive, and m for good measure.
In addition, we have a React integration library called mobx-react. There is a newer version that works with React hooks called mobx-react-lite which will eventually become the standard.
import { types } from 'mobx-state-tree';
import { v4 as uuid } from 'uuid';
// Model for an author
const Author = types
.model({
firstName: types.string,
lastName: types.string,
id: types.string,
});
// Model for a single book
const Book = types
.model({
authorId: types.string,
title: types.string,
categoryId: types.string,
id: types.string,
});
import { types } from 'mobx-state-tree';
import { v4 as uuid } from 'uuid';
// Model for an author
const Author = types
.model({
firstName: types.string,
lastName: types.string,
id: types.string,
});
// Model for a single book
const Book = types
.model({
authorId: types.string,
title: types.string,
categoryId: types.string,
id: types.string,
});
// The Content consists of a list of authors,
// a list of books, and a list of categories
const Content = types
.model({
authors: types.array(Author),
books: types.array(Book),
categories: types.array(Category),
})
const Content = types
.model({ /* ... */ })
.actions(self => ({
// Create a new book and add it to the list
newBook: (authorId, title, categoryId) => {
const book = {
authorId,
title,
categoryId,
id: uuid(),
};
self.books = [...self.books, book];
},
updateBook: (id, authorId, title, categoryId) => {
const books = self.books;
const idx = books.findIndex(book => book.id === id);
books[idx].authorId = authorId;
books[idx].title = title;
books[idx].categoryId = categoryId;
self.books = books;
},
const Content = types
.model({ /* ... */ })
.actions(self => ({
// Create a new book and add it to the list
newBook: (authorId, title, categoryId) => {
const book = {
authorId,
title,
categoryId,
id: uuid(),
};
self.books = [...self.books, book];
},
updateBook: (id, authorId, title, categoryId) => {
const books = self.books;
const idx = books.findIndex(book => book.id === id);
books[idx].authorId = authorId;
books[idx].title = title;
books[idx].categoryId = categoryId;
self.books = books;
},
const Content = types
.model({ /* ... */ })
.actions(self => ({
// Create a new book and add it to the list
newBook: (authorId, title, categoryId) => {
const book = {
authorId,
title,
categoryId,
id: uuid(),
};
self.books = [...self.books, book];
},
updateBook: (id, authorId, title, categoryId) => {
const books = self.books;
const idx = books.findIndex(book => book.id === id);
books[idx].authorId = authorId;
books[idx].title = title;
books[idx].categoryId = categoryId;
self.books = books;
},
const Content = types
.model({ /* ... */ })
.actions(self => ({/* ... */ }))
.views(self => ({
// Returns the author if it exists, undefined else
getAuthorById: (authorId) => {
return self.authors.find(author => author.id === authorId);
},
getCategoryById: (categoryId) => {
return self.categories.find(cat => cat.id === categoryId);
},
getBookById: (id) => {
return self.books.find(book => book.id === id);
},
getBooksByAuthor: (authorId) => {
return self.books.filter((book) => book.authorId === authorId);
},
}));
import React from 'react';
import { observer } from 'mobx-react-lite';
import { authorsView, booksView, categoriesView }
from '../state/UIState';
const AuthorsDisplay = observer(({ stateStore }) => {
const uiState = stateStore.uiState;
const authorId = uiState.selectedItem.id;
const author = stateStore.content.getAuthorById(authorId);
const edit = () => uiState.modifyItem(
authorId,
uiState.selectedView);
return (
Author: {author.firstName} {author.lastName}
Edit
);
});


fix compilation issue with clock_gettime in libc (reported by eradman and virtualfunction)
Switch to minispec for tests
Update dependencies
Ruby 2.0 fixes
Switch to Markdown, Yeah RDoc 4.0!
Update dependencies
Documentation cleanup
Fix use of deprecated JRuby API in java extension
Fix use of deprecated OSX system calls in C extension
Make hitimes -w clean
Fix ambiguity of calling duration on non-started Interval
Use RbConfig instead of Config (eregon)
Added Hitimes.measure
Switch to using rake-compiler for cross compilation of gems
Remove the unnecessary dependencies that should be development dependencies
Add a pure java extension so hitimes may be used in jruby with the same API
Fix 'circular require considered harmful' warnings in 1.9.x (reported by Roger Pack)
Fix 'method redefined' warnings in 1.9.x (reported by Roger Pack)
Add in support for x86-mingw32 gem
Add version subdirectory for extension on all platforms
Fix bug with time.h on linode (reported by Roger Pack)
Fix potential garbage collection issue with Interval class
Windows gem is now a fat binary to support installing in 1.8 or 1.9 from the same gem
Fix examples
performance tuning, new Hitimes::Metric derived classes are faster than old Timer class
Major version bump with complete refactor of the metric collection API
3 types of metrics now instead of just 1 Timer
The ability to convert all metrics to_hash
Updated documentation with examples using each metric type
change to ISC License
fix bug in compilation on gentoo
Added new stat 'rate'
Added new stat method to_hash
Added Hitimes::MutexedStats class for threadsafe stats collection
not needed when used in MRI 1.8.x
remove stale dependency on mkrf
switched to extconf for building extensions
first release of windows binary gem
reverted back to normal rdoc
added Timer#rate method
switched to darkfish rdoc
Performance improvements
Added Hitimes::Stats class
Initial completion


TEACHERS PAGE
HOME
BATCHES
LOGOUT
WELCOME {{Firstname}} {{Lastname}}!!
View Batches, Questions and Students
Click Here
Logout Teacher Account
Click Here


Crypto Law Firm Files Arbitrations Against AT&T, Verizon, T-Mobile
by Christine VasilevaSilver Miller, a legal firm with a penchant for crypto-related lawsuits, is taking up the cases of SIM swapping, leading to significant crypto losses. The firm will be taking up complaints against leading US-based operators, including AT&T, Verizon, and T-Mobile.
SIM Identity Stolen Despite Promises of Enhanced Security
The legal firm announced in a recent statement that it is already responding to cases of SIM identity theft, and resolving some of the claims. Silver Miller research has discovered that despite reassurances, mobile operators broke their own procedures, thus easing SIM swapping.
Because mobile phones are often used as 2FA tools, it is possible to break into personal banking, or exchange accounts. SIM swapping has syphoned off significant funds from crypto holders over the years, before new tools of authentication were discovered.
Silver Miller’s research also found evidence that mobile company representatives broke procedure and even assisted criminal circles that aimed at hacking valuable SIM clients. To rectify those cases, Silver Miller has taken up private arbitration, instead of public litigation. The firm has decided protecting clients’ identities is crucial, as they were once victims of a digital identity theft.
The firm invites anyone whose SIM has been compromised, especially in cases where “enhanced security” was promised, to seek legal tools for redress, with a high potential for arbitration to achieve the results even without a trial.
Crypto Community Specifically Targeted
The crypto community is one of the hardest hit by SIM swapping attacks. The most recent case involve the theft of $550,000 in crypto assets, for which two men were charged in Boston. Eric Meiggs, 21, of Brockton, Massachusetts, and Declan Harrington, 20, of Rockport, Massachusetts were charged with conspiracy, wire fraud, computer fraud and identity theft, based on targeting 10 identified persons from the crypto space in the US.
The highest risk is present for prominent social media presences, crypto influencers or anyone potentially holding a “whale” wallet. SIM swapping cannot possibly affect wallets, but can empty out exchange accounts, or custodial wallets, where a third party owns the crypto assets.
Exchanges are a special risk, as they hold about 6.7% of the entire Bitcoin (BTC) supply. Some markets also hold significant hauls of smaller altcoins. The cybersecurity firm, Kaspersy Labs, has noted that SIM swapping is on the rise in 2019, becoming one of the chief types of attack in the crypto sector.
What do you think about the threat of SIM swapping? Share your thoughts in the comments section below!
Images via Shutterstock
The Rundown


1
My friend’s father is
a,
an
doctor.2
Is there
a,
an
ant on my shirt?3
Tom saw
a,
an
dolphin at the Goa beach.4
Betty wore
a,
an
colourful hat to the church.5
My grandfather has
a,
an
ink-pot on his shelf.6
The tired man sat under
a,
an
shady tree.7
The woodcutter cut a huge tree with
a,
an
axe.8
Jack saw
a,
an
black dog on the street.


This application does not support older browsers such as Internet Explorer.Use a newer browser like Microsoft Edge, Google Chrome, Mozilla Firefox, Opera or Safari
Reconnecting with Activity Monitor ...


--- title: How It Works permalink: "works/index.html" layout: default ---
Listen to the combined voices of The Sound of Emotion: Your browser does not support the audio element.


Search History
City Name
date
Conditions
Temperature
Humidity
Wind Speed
UV Index
5 day forcast
day 1
condition
high
low
humidity
day 1
condition
high
low
humidity
day 2
condition
high
low
humidity
day 1
condition
high
low
humidity
day 1
condition
high
low
humidity


Few days ago, I read about the psychoactive qualities of wormwood. So that evening I was going to make some tea of it. I didn't know much about the dosage, so I took much, almost half a plant, about 15 leaves, and I thought this was surely enough. I made some tea with it, did enough sugar in it because it's bit bitter.
I let it stand there for almost 20 minutes so all the substances would came free.
I drunk my first cup of tea and when I'd finished it, my tongue seemed to be paralysed. I didn't see things change, so I did another cup. Still nothing else. So I drunk another two cups and then I wanted to go to smoke a sigaret. When I stood up, I saw colours become much brighter and felt a bit drunk. I couldn't walk straight, but I was clear in my head.
After I finished the sigaret, I went upstairs to lie on my bed. When I was there, I felt my blood sparkling through my veins over whole my body. It was a strange feeling. Like my body was totally paralysed, but I could still move it. A few hours later I was going to smoke a joint and I still felt the effects of the wormwood. This surely wasn't good at all.
The sparkling became even more heavier, and one moment I really thought I'd die. I could hear my heart bounce. It almost bounced out of my body. I felt cold, and my body felt paralysed. After that, I went asleep. It took very long before I slept and when I was lying down, I was convulsed, my body moved even when I didn't wanted it. Then I fell asleep.
This was my first experiment with wormwood, but surely not the last. Although, I think I'll be more careful with the dose.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


To create an automatron, simply click in the grid square that you would like to place the worker
To select a worker, click on the worker and they will highlight in red
To select a worker, click on the worker and they will return to their normal colour
With a worker selected, click on the worker or adjacent to the worker to add to their path
Note: You must always click on or adjacent to the last grid square added to the path, otherwise you will deselect your worker
Press the space bar to start the game running. To stop the game running, click anywhere
With a worker selected, press the c key to clear the path
With a worker selected, press the d key to delete the worker
There are two main types of worker:
A reversed worker will go along its path and when it reaches the end, it will go back in the reverse direction
Note: All workers are reversed by default. To turn a worker into a reversed worker, select it and press the r key
A looped worker will go along its path and when it reaches the end, it will go back along the path again starting from its original location
To create a looped worker, draw a path that finished on or adjacent to the starting position of the worker, and press the l key
Note: When a worker is turned into a looper, the colour changes into navy blue
Note: If you keep drawing a path for the worker, if the end of the path is no longer on or adjacent to the start position then the worker will default to reversed
The aim of the game is to transmit (move) packets from their start position to their receiver (goal)
It is possible to move more that one packet at once
If you get a packet to the corresponding receiver, it will be removed from the game
A spawner will spawn a certain number of packages. You can tell where the package will spawn based on the position of the dot on the spawner itself
Note: This spawner spawned 5 boxes facing down
Every spawner will have a frequency for how often it spawns. This is based on how often your character moves
Note: The above spawner has a frequency of 3, meaning it spawns every 3 moves of your automatrons
The game will crash if one of two things happens:>
If a package collides with a wall the game will immediately crash
The game will also crash if two automatrons occupy the same grid square on the same tick
If the game crashes the background will turn red and the game will pause. To reset, press the space key
Created by Billy Rebecchi for Global Game Jam 18


Autograding Overview¶
Autograding is an essential part of any scalable computation-centered course. It allows instructors to easily and efficiently grade swathes of student submissions, and also lets students have a way to check their progress and ensure they’re heading the right direction. There are many different options for autograding depending on the scale and requirements of your course, from those that run entirely on the instructor’s machine to those that utilize a server that grades students’ assignments on submission.
Autograding, as it is done at Berkeley, originated with the development of OkPy
, a Python autograder originally designed for CS 61A that was later retrofitted with the tools to grade Jupyter Notebooks for use in Data 8. Since OkPy, Berkeley has released a few different autograding solutions based on the different requirements of certain course offerings, including Gofer Grader, which is used in the EdX MOOC offering of Data 8, and Otter Grader
, a scalable solution that supports both local and server-based autograding.


wsgen - Java(TM) API for XML Web Services (JAX-WS) 2.0
f3Specification Version: 2.1
f3Implementation Version: 2.1.1
The f2wsgen tool generates JAX-WS portable artifacts used in JAX-WS web services. The tool reads a web service endpoint implementation class (SEI) and generates all the required artifacts for web service deployment, and invocation
The f2wsgen tool generates JAX-WS portable artifacts used in JAX-WS web services. The tool reads a web service endpoint class and generates all the required artifacts for web service deployment, and invocation. JAXWS 2.1.1 RI also provides a wsgen ant task, see
f2Wsgen ant task @
https://jax-ws.dev.java.net/nonav/2.1.1/docs/wsgenant.html for details.
o f3Solaris/Linux
* f2export JAXWS_HOME=/pathto/jaxws-ri
* f2$JAXWS_HOME/bin/wsgen.sh -help
o f3Windows
* f2set JAXWS_HOME=c:\pathto\jaxws-ri
* f2%JAXWS_HOME%\bin\wsgen.bat -help
f3 wsgen [options] <SEI>
f3
The following table lists the f2wsgen options.
Specify where to find input class files
Same as f2-classpath <path>
Specify where to place generated output files
allow vendor extensions (functionality not specified by the specification). Use of extensions may result in applications that are not portable or may not interoperate with other implementations
Used only in conjunction with the -wsdl option. Specify where to place generated resource files such as WSDLs
Specify where to place generated source files
Output messages about what the compiler is doing
Print version information. Use of this option will ONLY print version information. Normal processing will not occur.
By default f2wsgen does not generate a WSDL file. This flag is optional and will cause f2wsgen to generate a WSDL file and is usually only used so that the developer can look at the WSDL before the endpoint is deploy. The f2protocol is optional and is used to specify what protocol should be used in the f2wsdl:binding. Valid protocols include: f2soap1.1 and f2Xsoap1.2. The default is f2soap1.1. f2Xsoap1.2 is not standard and can only be used in conjunction with the f2-extension option.
Used only in conjunction with the f2-wsdl option. Used to specify a particular f2wsdl:service name to be generated in the WSDL. Example, f2-servicename "{http://mynamespace/}MyService"
Used only in conjunction with the f2-wsdl option. Used to specify a particular f2wsdl:port name to be generated in the WSDL. Example, f2-portname "{http://mynamespace/}MyPort"h'|n(40u'f3Optionh'|n(41u'f3Description h'|n(40u'f4-classpath <path>h'|n(41u' h'|n(40u'f4-cp <path>h'|n(41u' h'|n(40u'f4-d <directory>h'|n(41u' h'|n(40u'f4-extensionh'|n(41u' h'|n(40u'f4-helph'|n(41u'Display help h'|n(40u'f4-keeph'|n(41u'Keep generated files h'|n(40u'f4-r <directory>h'|n(41u' h'|n(40u'f4-s <directory>h'|n(41u' h'|n(40u'f4-verboseh'|n(41u' h'|n(40u'f4-versionh'|n(41u' h'|n(40u'f4-wsdl[:protocol]h'|n(41u' h'|n(40u'f4-servicename <name>h'|n(41u' h'|n(40u'f4-portname <name>h'|n(41u'Example
f3 f3wsgen -d stock -cp myclasspath stock.StockService
This will generate the wrapper classes needed for StockService annotated with @WebService annotation inside f3stockdirectory.
f3 f3wsgen -wsdl -d stock -cp myclasspath stock.StockService
This will generate a SOAP 1.1 WSDL and schema for your Java class stock.StockService annotated with @WebService annotation.
f3 f3wsgen -wsdl:Xsoap1.2 -d stock -cp myclasspath stock.StockService
Will generate a SOAP 1.2 WSDL.
Note that you do not have to generate WSDL at the development time as JAXWS runtime will automatically generate a WSDL for you when you deploy your service.


Thousands of you have already taken advantage of this service where we bundle all these activities and give you a discount to perform these services. Of course we do these things year round, but in the spring when most clients need it we do it for a reduced price. We believe you should be free of the worries and concerns of your pool so that you are truly free to enjoy your pool.
For clients of Pool Service and Pool Troopers there is still one month to take advantage of our Spring Special Filter maintenance and equipment check. This annual preventative maintenance on your pool’s equipment is designed to get your pool and its equipment ready for the swim season which is upon us now. DE filters need to be disassembled and cleaned, and cartridges need to be checked and replaced if needed.


This is the main webpage for the Academic Computing Society. We will be doing real work on the site soon stay in touch!!


Hi, there. My name is Darren.
I'm a human. I'm also a musician (FKKosmonauts), homebrewer (Liver Breakers Kollectiv), cook, engineer, scientist, and Pythonista.
I'm from California, but in 2017 my partner and I exchanged the best weather in the U.S. for the best weather in Germany (where it only occasionally snows in May). I'm currently living and working in Freiburg im Breisgau, a beautiful city in the heart of the Black Forest.
When I'm not making a mess in the lab, you will find me cooking / jamming / laughing with friends, playing basketball, walking around in a forest, or sleeping.
My Notebook will (hopefully) serve as my external memory, the things I want to keep organized for the future: projects, recipes, things I've learned, and things I'm likely to forget. Maybe you'll find some of those things useful.
For a quick summary of my professional self, see my CV.
Otherwise feel free to browse my:


This application is under development.
You can improve it by going to github at truecodes.org.
©codeblogger