BEFORE THE RAIN A film review by James Berardinelli Copyright 1995 James Berardinelli
RATING (0 TO 10): 7.9
Date Released: 2/95 (limited) Running Length: 1:53 Rated: R (Violence, nudity, mature themes)
Starring: Rade Serbedzija, Katrin Cartlidge, Gregoire Colin Director: Milcho Manchevski Screenplay: Milcho Manchevski Cinematography: Manuel Teran Music: "Anastasia" Released by Gramercy Pictures In Macedonian, English, and Albanian with subtitles
"Time never dies. The circle is not round." As well as being a repeated line in BEFORE THE RAIN, this statement clarifies director Milcho Manchevski's perspective. The film is an exploration of the vicious circle that is violence in the Balkans, and the way tribal and ethnic bloodshed in that part of the world can spill over into more "civilized" countries.
BEFORE THE RAIN opens and closes in Macedonia. The middle section--an interlude of sorts--takes place in England. The structure of the movie is non-chronological with the conclusion actually occurring about forty minutes into the film. The flow of the narrative follows the "imperfect circle" pattern. Beginning and end meet and merge, but the closure is broken by one very disconcerting (and not so obvious) flash-forward.
What at first appears to be several disparate stories resolves itself into a cohesive single entity, and the characters who start out as BEFORE THE RAIN's central figures (including a monk played by OLIVIER OLIVIER's Gregoire Colin) are ultimately reduced to supporting roles. Most of the film is about--in one way or another--Pulitzer Prize-winning photographer Aleksandar (Rade Serbedzija), who became involved in the war in Bosnia by taking sides. Now, back from that war-torn place and wracked with guilt for having caused a man's death, he intends to leave England (and his English lover, played by Katrin Cartlidge, late of NAKED) for Macedonia in hopes of making a positive difference in the violently unstable country of his birth.
Manchevski, directing his first major feature following a string of music videos, presents his message with a sublime intensity that eludes the film world's Oliver Stones. During the course of BEFORE THE RAIN, he meticulously dissects the male-dominated Macedonian mindset, then illustrates how modern technology and altruism are impotent when faced with the madness of an ingrained tradition of violence. In a land where men would rather kill their own than give up the fight, what hope is there for peace? BEFORE THE RAIN isn't explicitly about Bosnia, but it goes a long way towards explaining the "whys" of what's happening there.
The film is as rich in symbols as in narrative. Circles are everywhere, and water takes on its age-old meaning of purification. The titles of BEFORE THE RAIN's three chapters--"Words", "Faces", and "Pictures"--reveal aspects of the thirty-five-odd minutes they each represent.
If there's one weakness in BEFORE THE RAIN, it's that despite an ambitious story, beautiful cinematography, convincing acting, and a powerful message, character development is surprisingly feeble. Part of the problem is undoubtedly the odd structure of the plot, but even Aleksandar, who has more screen time than anyone else, seems a little hollow. There are instances when he's more the mouthpiece of a philosophy than a unique individual. This is indicative of BEFORE THE RAIN's most apparent flaw: that Manchevski occasionally lets the "art" of his production obscure its emotional impact.
The visceral effectiveness of BEFORE THE RAIN is undeniable--it brings home the global reality of violence without ever glorifying or glamorizing it. The film is loaded with chilling little touches of how this particular circle has trapped humanity. BEFORE THE RAIN doesn't offer hope. As "Words" reminds us, communications problems are often more fundamental than language differences. In Manchevski's world, when peace exists, it's an exception, and redemption is perhaps a futile gesture.
- James Berardinelli<EMAIL_ADDRESS>.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Hassan Juma
Software Engineer
Skills
About Me
Hi, I design and develop experiences that make peoples lives Simple.I am currently a under graduate, who loves to develop and try new technologies,i also love to code. I am currently learning skills amd mastering the technologies, i love to read about software ,security and fast growing software development cycle.My aim is to work with security network company for maintaining law and order, and also develop new technology which can detect criminal malware to unknown fields.
“First, solve the problem. Then, write the code.” – John Johnson- Age 29
- Residence Kenya
- Address 234567, Nairobi
- e-mail [email protected]
- Phone +254-718-623-313
Services I Offer.
Testimonials
He did good job for me I would reccomend
He was very first in delivering my work.Thanks for the quick response.
Very fast gentleman
Clients
Pricing
Fun Facts
Happy Clients
297Working Hours
4,780Awards Won
5Resume
Education
2020
ALX africaSoftware engineering
This is a post degree program which covered Text editors,C,Vagrant,Python,Web scraping tools,Linux,Database,OOP.TDD,Error handling , debugging. data structures and algorithms.
In System Engineering
Open System Interconnect Model and TCP/IP
Devops where i did webstack debugging,servers,web servers(nginx),application servers(Gunicorn),configuration management(Puppet),SSL,SSH,TLS,HTTP/S,code debugging,regexes,Technical writing and Recursion,Augmented Reality and Virtual Reality,Load balancers,Postmortems,networking and monitoring
2019
Moringa SchoolFullstack Software Development
Here I did data structures and algorithm,HTML,CSS,JavaScript,jQuery,Bootstrap,SASS,Angular,typescript,python oop and frameworks like Flask and Django,Databases like MySQL,Postgresql,Mongodb and many more. Linux Skills,Containerization,CI/CD,Agile Development and Project Management
2017
Jomo Kenyatta University of Agriculture and TechnologyComputer Science
I took a degree program and majored on software engineering..
2011
University of NairobiBiomedical Science
I joined the University for my first degree in the Medical field.
2009
Onjiko High SchoolK.C.S.E
I finished high school and scored a mean grade of A- 79 Points.
Experience
2017 - Current
AO TechnologiesFull Stack Engineer
Working as a team justifies success at the end because of completing a project, and seeing it through to the end, and spot flaws and errors so as to make sure the end result of a project is as expected by the client.
2015 - 2017
Java House AfricaSenior Ui/Ux Designer
Designed the website and ssisted on the point of sale mintnnce
2011 -2015
Java House AfricaJunior Ui/Ux Designer
Worked under Senior Ui/Ux Designer.
Interests
Swimming
Exercises nd leisureCompetition
Swim with friends n for competition
Music
MedittionReggea nd Rhumba Rap /Hiphop
Listening to Music especially Rhumba
Games
ExercisesRugby,FIFA nd Chess.
Plying especially with friends.
RTS
LeisureDrawing nd Painting
I normlly do this whenever m free.
Design Skills
Web Design
Print Design
Logo Design
Graphic Design
Coding Skills
JavaScript
Python
Typescript
PHP
HTML/CSS
C, C++,C#
Java & Kotlin
Knowledges
- Marketing
- Digital Design
- Social Media Marketing
- Time Management
- Communication
- Problem-Solving
- Social Networking
- Flexibility
- SEM
- SEO
- Google Ads
- Data Analytics


Home
Dashboard
Home
Dashboard
Neutral
Analytics
S.No.
Emotions
Percentage
1
Anger
2
Disgust
3
Fear
4
Happiness
5
Sadness
6
Neutral
7
Satisfied
8
Surprised


Barcelona after young star, Lokonga
by BeSoccerBarcelona are still searching the market for young promises and, in this way, a name has been sounding out from Anderlecht in the last few hours. This is Sambi Lokonga, promising 20-year-old midfielder.
Barcelona's aim is to add to their future squad, with players that, even, are already to make the leap to the first team and play at the highest level.
Sambi Lokonga ticks all the boxes: he is young, he has a lot of quality and he is physically powerful. At 20-years-old, he is one of the most important players in the Belgian League.
He has played nine league games this season and, according to 'Derniere Heure', Barcelona have his name in a very important place on their agenda's.
Featured links
- Mourinho replaces Pochettino at Tottenham
- The latest football transfers news and rumours
- Wales, golf, Madrid... in that order
- Luis Enrique returns to Spain national team
But negotiations will not be easy for Barcelona, as Anderlecht want to renew Lokonga's contract, which runs out in 2021 and there are more teams interested in him, such as City and Monaco.


A demo project using the Seriously.js library to create a "Confused John Travolta" gif generator.
Add the url link of your image and let Travolta wondering in your favourite place!
Add the url address of your image here:
You don't have a link? Copy - Paste this: https://upload.wikimedia.org/wikipedia/commons/thumb/3/39/Athens_Plaka07.jpg/480px-Athens_Plaka07.jpg


Coast Browser Settings
General Settings
Home Page:
Theming
Theme:
Injected CSS:
CSS entered into the textbox will get injected into interal URLs (like
coast:new-tab
)
Injected JavaScript:
JavaScript entered into the textbox will get injected into interal URLs (like
coast:new-tab
)
Saving settings will reload Coast, ending any open sessions
Save


{profile['username']}
@reputation @
{profile['rep']['reputation']}
@threads @
{profile['rep']['threads']}
REPUTATION
903k
XENONMC. Minecraft Minigames Network. XENONMC is an empowering community pushed to its limits! We make sure everything is bug-free and that you make the most out of your time here. We range from custom software to Minecraft Minigames. And so all in all, we hope you make the most of your time here.


Man mistakenly drops ring in the sea while proposing to his girlfriend on surfboard
- A young man identified as Christopher Garth accidentally lost the engagement ring while proposing to his girlfriend
- The man had taken his girlfriend surfing and proposed to her on a surfboard
- During the romantic moment, Garth mistakenly dropped the engagement ring in the ocean
- However, it was discovered that the man had kept the real ring on land and brought a spare one with him to surf
38-year-old Christopher Garth and 32-year-old Lauren Oiye would have a good memorable story to tell their children and grandchildren about the day they got engaged.
The story probably starts with Garth losing the ring, well the fake one. Garth in an attempt to give his woman a unique and creative proposal decided to propose while surfing.
As a surfing couple, Garth took Oiye surfing in their native Honolulu, Hawaii, and proceeded to propose on his surfboard, but during the romantic moment, he accidentally dropped the engagement ring in the sea.
PAY ATTENTION: Read best news on Nigeria's #1 news app
Garth had proposed to Oiye on the exact spot on the sea where they met several years ago. He dropped on one knee on his surfboard, took out the ring and asked Oiye to become his wife.
The romantic dude hit a slight bump during the moment and the ring dropped in the sea. However, it was later revealed that Garth had kept the real engagement ring on land and brought a spare with him for the moment.
PAY ATTENTION: Do you have news to share? Contact Legit.ng instantly
According to Independent, several photographers had been positioned nearby to capture the moment. Oiye took to her Instagram page to share the story of how the proposal came together.
READ ALSO: NAIJ.com upgrades to Legit.ng: a letter from our Editor-in-Chief Bayo Olupohunda
In a case of a proposal gone wrong, Legit.ng had earlier reported that a video of a man proposing went viral after the proposal went awry as the supposed girlfriend rejected him. The man who could not take the rejection got into a brawl with the lady.
NAIJ.com (naija.ng) -> Legit.ng We have upgraded to serve you better
Top Celeb Proposals: The Cutest Proposals Ever - on Legit TV


class: center, middle, inverse, title-slide # The Uncoast Unconf ## Who, What, When, Where, Why, and How?
(not necessarily in that order) ### Sam Tyner, Haley Jeppson, Ian Lyttle, Heike Hofmann, Susan Vanderplas ### 2019-04-26 --- # About Us Sam Tyner - postdoc, over-involved & over-committed DIYer Haley Jeppson - PhD student, sanity checker, plant mom Ian Lyttle - Schneider Electric, enthusiastic helper Heike Hofmann - extraordinary vault of knowledge & experience Susan Vanderplas - computer problem debugger extraordinaire ### Not present Sam Helmich - John Deere, venue pro and food acquirer Amelia McNamara - University of St. Thomas, super Github educator Angela Li - UChicago, expert organizer --- # Who The [participants](http://uuconf.rbind.io): - represent the wide variety of skills and experience of all R users - from beginners to a member of R-Core - are a diverse group from industry, academia, and government
 --- background-image: url(http://uuconf.rbind.io/images/templogo.png) background-size: 600px background-position: 50% 80% # Why To bring R users and developers together in flyover country. --- # When & Where ![](img/when.png) --- class: inverse, center, middle # What --- # Day 0 ### [Day-zero Preparation](https://uncoast-unconf.github.io/uu-2019-day-zero/00-preparation/) Ian Lyttle ### [Git and GitHub Cornucopia](https://uncoast-unconf.github.io/uu-2019-day-zero/01-git-github-cornucopia/git-github-cornucopia.html#1) Amelia McNamara ### [Project Workflows](https://uncoast-unconf.github.io/uu-2019-day-zero/02-project-workflows/workflow.html#1) Haley Jeppson ### [Packages](https://uncoast-unconf.github.io/uu-2019-day-zero/03-packages/package-development.html#1) Ian Lyttle ### [HTML-CSS-JS](https://uncoast-unconf.github.io/uu-2019-day-zero/04-html-css-js/Amelias-notes.html) Yihui Xie --- # Projects (1 of 3) ### ⚓ [steward](https://github.com/uncoast-unconf/steward) - @ijlyttle @stephaniereinders @nikdata @AmandaRaeISU ### 😝 [untidydata2](https://github.com/kwstat/untidydata2) - @anneae @kwstat @giorgichi @davidbody ### 🐳 [whaler](https://github.com/uncoast-unconf/whaler) - @ellisvalentiner @benjamincrary @shelmich @ajmcoqui --- # Projects (2 of 3) ### 📜 rolldown - @yihui @iqis @cpsievert ### 🌎 [ggcart](https://github.com/uncoast-unconf/ggcart) - @charlesminshew @gergness @kmaurer @angela-li @hlendway @mdseege ### 😅 [Methods of Weird](https://github.com/uncoast-unconf/methods-of-weird). Modeling the weirdness of people. - @linkalis @mharmston @mkosmicki @cvanpay @drfletch --- # Projects (3 of 3) ### 🌀 [Swirl course for writing an R package](https://github.com/lex-files/swirl_courses) - @lex-files @vfquirin @nooreendabbish ### 👀 [opencv](https://github.com/uncoast-unconf/opencv) - @gzt @speegled @minnesotka @wch ### 💓 psyphyr: psychophysiological data wrangling - @wendtke @ajmcoqui @almccombs --- # What we learned  --- ```r meme_get("DosEquisMan") %>% meme_text_top("I don't always write R packages,", size = 26) %>% meme_text_bottom("but when I do, I'm at an unconf.", size = 26) ```  --- background-image: url(https://pbs.twimg.com/media/DfqjHpNU0AIuufg.jpg) background-size: 1500px background-position: 30% 30% class: center middle inverse # Questions?


--- layout: archive title: Zulip Chat Archive permalink: /stream/113488-general/topic/squashing.20PRs.html ---
Hi, what is the reason for squashing PRs? What's wrong with just merging branches? Then git log --merges
will show what git log
shows now.
Many commits would not build then. Would git bisect
handle this properly? Or Travis?
More generally, I find git repositories with merges kind of difficult to deal with, maybe because I'm not used to them...
Does Travis care about commits other than HEADs of the master and PRs?
Didn't try git bisect
yet.
For example, although I'm not sure this exact situation would arise in practice, I don't think git rebase
works properly when you try to rebase a merge commit. At least it did not work ~10 years ago.
You shouldn't rebase master
anyway.
What would git log -p --merges
show?
oh, maybe git log --first-parent
is better?
Maybe a better answer is that currently most contributors don't attempt to create anything like a clean history on their PR branches, so the extra information that would be retained by merging is sort of garbage.
Yes, this is a good reason.
Another side effect of this is the terrible commit messages
* oops * fix * fix again
Last updated: Apr 24 2020 at 19:02 UTC


KING RAT A film review by Shane R. Burridge Copyright 1996 Shane R. Burridge
(1965) 133m.
Even those who don't like war movies are bound to enjoy George Segal's assured performance as Corporal King in this adaptation of James Clavell's novel. Events take place in a Japanese-run POW camp in Singapore towards the close of WWII. Refreshingly, this film is not about escape, or attempted escape - as the prologue states, it is a story of existence within the camp itself. Opportunistic King enlists the services of British prisoner Peter Marlowe (James Fox) after learning that he can speak Malay. A bond forms between the two, though its worth is not revealed until the film's end, when we see their friendship more as a natural countermeasure against the unwelcome attention of Lt. Grey (Tom Courtenay), the camp's provost marshal. Grey is a strictly by-the-book one-man law enforcement operation who divides his time between maintaining order in the camp and staking out King's money-making scams, waiting to pounce on him at the first opportunity. He rightly believes in his own integrity but fails to recognize the same quality in the other, less disciplined, inmates of the camp. Grey can't see that each POW has their own way of dealing with their situation, or that his is to try to create reason out of chaos.
The camp struggles within a frail system of law and order: everyone demands justice, revenge, compensation, a deal. The Japanese seem just as caught up in the power game as everyone else - control becomes a shuffle of reports, reprimands, and reprisals. In this environment, a hustler like King is sure to thrive, just as any resourceful rat would. While the film refers to prisons within the prison (Grey's jail, the cages beneath the American barracks, the cell they "hire" to get some privacy), it is the prison within themselves that confines the men most. It seems obvious in the case of the repressed provost marshal, the careworn, numbed surgeon, and the diversionary denial that several prisoners indulge in, but King is perhaps the most trapped of all. "Before this," he says of the war, "everybody had it made except me". For him, the end of the war is a more pressing concern than it's continuation: he believes that the Japanese will kill all their prisoners before surrendering; Grey has vowed to get even with him when the war is over; and a liberating soldier intimates an investigation into his activities after the evacuation. King will no longer be king.
Subject matter sounds depressing, but KING RAT is actually quite funny in places (particularly the sequences about a makeshift school lesson and a secret dinner held for King's friends) and the dialog crackles whenever Grey is at odds with King or Marlowe. Courtney and Fox couldn't be better in their roles. Performances are first-rate all round, from John Mills and Denholm Elliott right down to bit parts like Leonard Rossiter. John Barry wrote the elegaic score; Bryan Forbes directed from his own screenplay.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Functional programming in C++
Few days back I attended a talk on modern C++ features given by Olve Mudal. I have not coded in C++ after passing out of university. So it was interesting to revisit the language after long time. In the talk, speaker mentioned that modern C++ has good support for functional programming.
C++ and functional programming!!!. I got fascinated by this and started digging around the C++ specification to find about it. I am really impressed by what I saw. So I wrote this post to show how you can write elegant functional programs with C++ now.
Compiler requirements
Functional features of the language are introduced in C++11 standard. So if you want to compile and run the code, you need a c++ compiler which supports the above standard. If you are using g++, you need version 4.9 and above. Follow these steps to install g++ 4.9 on Ubuntu. If you are using any other compiler or OS use google to find out suitable versions.
tl;dr You can access complete example code with running instructions here.
New language constructs
The following are the new language constructs used by example code.
auto keyword
In C++11 standard, meaning of auto keyword is changed. Now auto is used for doing type inference. Whenever you declare a variable as auto, compiler tries to infer the type by looking at it’s value.
auto i = 10;
In the above code, i will be type inferred as an integer.
Using type inference, we can skip specifying types which makes code more clean.
Functional data types AKA lambdas
In functional programming, functions are treated as objects. But in C++, functions are not treated as an object. To remedy that,function objects or lambdas are just a class with operate method.
As it’s tedious to create a class for each function, C++ provides a shortcut syntax to create function objects.
auto println = [](const char *message){ std::cout << message << std::endl;};
Above code is creating a function object,println, which takes a single parameter and returns nothing. The [] brackets are used to specify the environment aka closure for the function. We will see more about closure in later part of the post.
As you can see, we use auto here so that we don’t have to care about how these function objects are encoded inside the C++ types.
Functional combinators on C++ vector
We are going to see how we can do functional programming by looking at how we can apply different combinators like map,filter etc on C++ vector. Though we have used vector in this example, it should work for any other collection.
Modern C++ ships with a powerful library called as algorithm. This supports lot of nice operators like for_each,transform on collection. You can import the library by adding #include <algorithm> in your code. Most of our examples use algorithm methods.
Let’s look at the example of combinator’s one by one.
for_each combinator
template <typename Collection,typename unop>
void for_each(Collection col, unop op){
std::for_each(col.begin(),col.end(),op);
}
We are directly using for_each method of algorithm. First two parameters are starting and ending of the collection. Then the third parameter we pass a unary function object which operates on each element.
The following code uses it to print elements of a vector.
auto lambda_echo = [](int i ) { std::cout << i << std::endl; };
std::vector<int> col{20,24,37,42,23,45,37};
for_each(col,lambda_echo);
In the above code,we have a echo lambda, which prints element passed to it.
map combinator
In algorithm, there is a transform function which allows us to implement map functionality.
template <typename Collection,typename unop>
Collection map(Collection col,unop op) {
std::transform(col.begin(),col.end(),col.begin(),op);
return col;
}
The following code calls the map function to add one to each element.
auto addOne = [](int i) { return i+1;};
auto returnCol = map(col,addOne);
for_each(returnCol,lambda_echo);
In same way you can implement zip,exists combinators.
Filter combinator
All above combinators including zip and exists, do not change the size of the collection. But if you want to implement filter, you have to change the size.
No method in algorithm allows you to change the size of the collection. So we need to implement filter in following two steps
-
Determine the indexes inside the collection which do not satisfy predicates.
-
Remove those indexes from the vector.
Before implementing filter, we will implement filterNot. filterNot combinator removes all the elements which satisfies the predicate.
template <typename Collection,typename Predicate>
Collection filterNot(Collection col,Predicate predicate ) {
auto returnIterator = std::remove_if(col.begin(),col.end(),predicate);
col.erase(returnIterator,std::end(col));
return col;
}
We have used erase function on vector to remove the elements that determined by remove_if function.
Now we can implement filter in terms of filterNot.
template <typename Collection,typename Predicate>
Collection filter(Collection col,Predicate predicate) {
//capture the predicate in order to be used inside function
auto fnCol = filterNot(col,[predicate](typename Collection::value_type i) { return !predicate(i);});
return fnCol;
}
If you observe code carefully, you can see that we have captured that predicate in our lambda so that we can use it inside. If you don’t capture it, compiler will give an error.
Also as we don’t know the type expected by predicate, we can use Collection::value_type to say whatever the type of the collection elements it will be taken by the predicate. This makes our code highly generic.
Finally we can filter as follows
auto filteredCol = filter(col,[](int value){ return value > 30;});
for_each(filteredCol,lambda_echo);
Memory management
As you may know, in C++ you have to manually manage the memory. In the above examples we have used pass by value style over pass by reference. This makes code easy to read and understand, but makes lot of copies of collection. With modern C++ you can use value semantics with move semantics to get same performance as pass by reference. Read more about it here.
Compiling and Running
Clone the code from here. Refer to README.md for compiling and running instructions.
Conclusion
C++ has changed dramatically over the last decade. It’s no more C with Classes. If you not looked at C++ recently, it will be the right time to have another look.


How To Create A New Plugin
Plugin Archetype
The Maven Archetype Plugin provides a convenient mechanism for automatically generating projects. Project templates are called Archetypes and they are basically maven artifacts of a special kind of packaging, ‘maven-archetype’.
With the Theodul Plugin Archetype you can create a new plugin project in no time and start writing the plugin’s business logic right away, without caring about the POM or SCR component declarations.
Installation
The Theodul Plugin Archetype is included in the Opencast source code (Theodul Player branch) in the modules directory. To make the artifact available on your system you need to install it like any other atrifacts. In the Opencast source directory type:
> cd modules/engage-theodul-plugin-archetype
> mvn install
After successful build and installation the archetype is available in your system.
Generating a new plugin
To generate a new plugin project simply go to the modules directory inside the Opencast source directory and type:
> mvn archetype:generate -DarchetypeGroupId=org.opencastproject -DarchetypeArtifactId=theodul-plugin
Provided the archetype is installed maven will now ask you for the properties configuration for the new project:
[INFO] Generating project in Interactive mode
[INFO] Archetype [org.opencastproject:theodul-plugin:1.5-SNAPSHOT] found in catalog local
Define value for property 'groupId': : org.opencastproject
Define value for property 'artifactId': : engage-theodul-plugin-test
Define value for property 'version': 1.0-SNAPSHOT: : 1.5-SNAPSHOT
Define value for property 'package': org.opencastproject: : org.opencastproject.engage.theodul.plugin.custom.test
Define value for property 'plugin_description': : A test plugin
Define value for property 'plugin_name': : testName
Define value for property 'plugin_type': : custom
Define value for property 'plugin_version': : 0.1
Define value for property 'plugin_rest': : false
Confirm properties configuration:
groupId: org.opencastproject
artifactId: engage-theodul-plugin-test
version: 1.5-SNAPSHOT
package: org.opencastproject.engage.theodul.plugin.test
plugin_description: A test plugin
plugin_name: test
plugin_rest: true
Y: : y
[INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating project from Archetype: theodul-plugin:1.5-SNAPSHOT
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: groupId, Value: org.opencastproject
[INFO] Parameter: artifactId, Value: engage-theodul-plugin-test
[INFO] Parameter: version, Value: 1.5-SNAPSHOT
[INFO] Parameter: package, Value: org.opencastproject.engage.theodul.plugin.test
[INFO] Parameter: packageInPathFormat, Value: org/opencastproject/engage/theodul/plugin/test
[INFO] Parameter: package, Value: org.opencastproject.engage.theodul.plugin.test
[INFO] Parameter: version, Value: 1.5-SNAPSHOT
[INFO] Parameter: plugin_description, Value: A test plugin
[INFO] Parameter: plugin_name, Value: test
[INFO] Parameter: groupId, Value: org.opencastproject
[INFO] Parameter: plugin_rest, Value: true
[INFO] Parameter: artifactId, Value: engage-theodul-plugin-test
[INFO] project created from Archetype in dir: /home/wulff/code/UOS/plugin-archetype/test/engage-theodul-plugin-test
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3:39.195s
[INFO] Finished at: Thu Jan 23 15:48:37 CET 2014
[INFO] Final Memory: 15M/308M
[INFO] ------------------------------------------------------------------------
There you go, the newly created plugin project is waiting to be filled with life in the directory that is named after the atrifactId you entered before.
Project Properties
In addition to the above explanation, here is a description of the properties you have to specify when generating a new project with the Theodul Plugin Archetype:
groupId
Maven group ID. For the Opencast developers this is
org.opencastproject
artifactId
Maven artifact ID. Name by which your project is identified as an artifact by maven. Think of it as the project name. It will also be used as the name for your projects root directory. During the course of the Theodul project the following naming scheme came up:
engage-theodul-plugin-<plugin type>-<plugin name>
version
The project version. For Opencast developers: simply put in the version of the Opencast source tree your are working on.
package
The Java package in which the source for the back end part of your plugin will live. The following scheme is used by the Theodul developers:
org.opencastproject.engage.theodul.plugin.<plugin type>.<plugin name>
plugin_version
The version of the plugin itself. This is not to be confused with the maven project version which will, for instance, be updated when the Opencast version changes.
plugin_type
The type of the plugin to be created. See https://opencast.jira.com/wiki/display/MH/Architecture Possible types are: custom, controls, timeline, video, description, tab
plugin_name
The name by which your plugin will be registered by the plugin manager when running.
plugin_description
(optional) A short description of the plugin. The description will be provided by the plugin list endpoint together with the other plugin data.
plugin_rest
(boolean) Whether or not the plugin should provide a Opencast Rest endpoint. If set to true, the Java class that makes up the back end part of your plugin will be augmented with the annotations necessary to work as a Rest endpoint provider in Opencast. Also an example endpoint (GET:sayHello) will be generated.
Example Plugin
Have a look at the snow showcase example plugin (custom).
Debugging
To display debug information in the developer console, add the following parameters to the URL:
Display debug information
&debug=true
Display event debug information
&debugEvents=true


| < Day Day Up > |
Using ConditionsRegular expression conditions are defined using ?. In fact, you have already seen a couple of very specific conditions:
Embedded condition syntax also uses ?, which is not surprising considering that the conditions that are embedded are the same two just listed:
Backreference ConditionsA backreference condition allows for an expression to be used only if a previous subexpression search was successful. If that sounds obscure, consider an example: You need to locate all  tags in your text; in addition, if any  tags are links (enclosed between  and  tags), you need to match the complete link tags as well. The syntax for this type of condition is (?(backreference)true). The ? starts the condition, the backreference is specified within parentheses, and the expression to be evaluated only if the backreference is present immediately follows. Now for the example:        	 (<[Aa]\s+[^>]+>\s*)?<[Ii][Mm][Gg]\s+[^>]+>(?(1)\s*</[Aa]>)        	 This pattern requires explanation. (<[Aa]\s+[^>]+>\s*)? matches an opening  or  tag (with any attributes that may be present), if present (the closing ? makes the expression optional). <[Ii][Mm][Gg]\s+[^>]+> then matches the  tag (regardless of case) with any of its attributes. (?(1)\s*</[Aa]>) starts off with a condition: ?(1) means execute only what comes next if backreference 1 (the opening  tag) exists (or in other words, execute only what comes next if the first  match was successful). If (1) exists, then \s*</[Aa]> matches any trailing whitespace followed by the closing  tag. Note
The pattern just used executes an expression if a condition is met. Conditions can also have else expressions, expressions that are executed only if the backreference does not exist (the condition is not met). The syntax for this form of condition is (?(backreference)true|false). This syntax accepts a condition, as well as the expressions to be executed if the condition is met or not met. This syntax provides the solution for the phone number problem as shown here:<PHONE_NUMBER><PHONE_NUMBER><PHONE_NUMBER><PHONE_NUMBER><PHONE_NUMBER><PHONE_NUMBER> (\()?\d{3}(?(1)\)|-)\d{3}-\d{4}<PHONE_NUMBER><PHONE_NUMBER><PHONE_NUMBER><PHONE_NUMBER><PHONE_NUMBER><PHONE_NUMBER> This pattern seemed to work, but why? As before, (\()? checks for the start of a parentheses pair, but this time the results are enclosed within parentheses so as to be able to create a subexpression. \d{3} matches the three-digit area code. (?(1)\)|-) matches either ) or – depending on whether the condition is satisfied. If (1) exists (meaning that an open parenthesis was found), then \) must be matched; otherwise, – must be matched. This way, parentheses must always be paired, and the hyphen separating the area code from the number is matched only if parentheses are not used.
Lookaround ConditionsA lookaround condition allows for expressions to be executed based on whether a lookahead or lookbehind operation succeeded. The syntax for lookaround conditions is much the same as it is for backreference conditions, except that the backreference (the number inside of the parentheses) is replaced by a complete lookaround expression. Note
As an example, consider U.S. ZIP codes. These may be five-digit ZIP codes formatted as 12345 or ZIP+4 codes formatted as 12345-6789. The hyphen is used only if the additional four digits are present. Here's one solution: 11111 22222 33333- 44444-4444 \d{5}(-\d{4})? 11111 22222 33333- 44444-4444 \d{5} matches the first five digits, and (-\d{4})? matches a hyphen followed by four more digits if they all exist. But what if you wanted to not match any badly formatted ZIP codes? The third line in the example has a trailing hyphen that probably should not be there. The preceding pattern matched the digits without the hyphen, but how could you not match that entire ZIP code because it is badly formatted? This example may seem a bit contrived, but it does simply demonstrate the use of lookaround conditions. So 11111 22222 33333- 44444-4444 \d{5}(?(?=-)-\d{4}) 11111 22222 33333- 44444-4444 Again, \d{5} matches the opening five digits. Then comes a condition in the form of (?(?=-)-\d{4}). The condition uses lookahead ?=- to match (but not consume) a hyphen, and if the condition is met (the hyphen exists), then -\d{4} matches that hyphen followed by four digits. This way, 33333- is not matched (it has a hyphen and so the condition is met, but it does not have the additional four digits). Lookahead and lookbehind (both positive and negative) may be used as the condition, and an optional else expression may be used, too (using the same syntax seen previously, |expression). Tip
|
| < Day Day Up > |


Blog Posts
Technical Blog
Working on My Gitness
Class Vs Id
Arrays and Hashes
Enumerability
Ruby Classes
Object-oriented vs Functional
JavaScript vs Ruby
What is Rails?
Whatta Site
Cultural Blog
DBC Fireside Chat
Thinking and Mindsets
Set Us Free
Feedback
Stereotype Threat
Values
Conflict
Good Questions
First Two Weeks
Home


Are you sure you want to resend an invitation to ?
Are you sure you want to delete the invitation for ?


{{shipment.name}} (edit)
{{shipment.date | date:'MMMM d, yyyy' }} (edit)
{{shipment.from_location.name}} (edit)
{{shipment.to_location.name}} (edit)
{{total_price | number:2}}
{{pagination_data.total_count}}


The Dasein Persistence Libraries provide data access tools that support the development of database applications. For simple database applications, automated persistence tools like Hibernate are definitely the way to go. Where the database is your performance constraint or where you are faced with legacy or complex data models, however, automated persistence often falls apart.
This package supports a variety of functionality, including:


italics
bold
italics old
bold old
spanned italics
spanned bold
spanned both
nested
Empty, leading, inline and trailing spaces.
InWordStyle - InWordStyle - InWordStyle
Contains strike through text


Problem Solving and Debugging
18 January 2016
A simple problem and how I solved it
I was trying to get my JavaScript code to display several lines of a single character, with each character separated by a space. The number of characters (including the spaces) on each line was determined by a number given by the user, eg if the user entered 10 then a total of 10 characters would be displayed, although 5 of them would actually be spaces so would appear blank. Once 10 characters had been displayed, a new line would be displayed again with 10 character. This would continue on until 10 lines had been displayed. However, the key thing was that each line should alternate between starting with a visible character or a blank ‘space’. The problem I was having was that the number of characters on each line was only 9 characters long in total.
I was using a for loop nested inside another for loop, with the last iteration of the loop creating a new line. I wasn’t too sure why this was happening at the time, but I used the source console to follow each step of the loop and quickly saw that rather than printing a character or space on the last instance of the loop that it was creating a new line, so I quick realized that the new line needed to be placed elsewhere, and so I ended up moving it inside the first loop, so a new line was created before the second loop ran and created each character.
At the time I was a little frustrated as I was sure it should be working, it was so close but I couldn’t quite figure it out. But once I stopped, and debugged the problem using the console I quickly realized my issue and the error in logic in my code!
I learned that taking a step back and looking at how the code runs step by step in the console’s source tab is a valuable tool for debugging and can quickly help identify any bugs, or errors in logic!
Reflect on how confident you feel using the problem solving techniques and process
Pseudocode: I’m fairly confident with this technique as provides a way of thinking about a problem and creating a solution using human language without getting bogged down with technical terms or language.
Trying something: I will usually try doing something to fix the bug, sometimes it might just be reading though the code and trying to understand and identify where the problem lies, and trying something to fix it – sometimes it works, sometimes not.
Rubber ducky method: I haven’t used this technique as of yet, and so currently wouldn’t be that confident in using it.
Reading error messages: Some I can understand what they are saying, other’s I cannot. However I know where I can find the line that is causing an error message, and that gives me a starting point, even if I’m not sure what the meaning of the message is.
Console.logging: I use this frequently to help understand any issues as well as track the status of certain objects to make sure they are working as they should.
Googling: Being able to ask the right question is certainly an art form, but one I feel that I am getting better at and am confident in doing.
Asking your peers for help: I have yet to do this as of yet as there hasn’t been the need to, however I would be happy to see if anyone else can provide a solution should I get really stuck on a particular problem!
Asking coaches for help: I would be confident in asking for help from a coach, as they possess a wealth of experience and can help me solve it, or at least point me in the right direction!
Improving your process with reflection: Each time I solve a problem I tend of look back and make a mental note of some of the steps that worked/didn’t work. I think the more I gain an awareness of how I’m tackling an issues, the better I will be at improving my reflection process.
Describe what these functions do in your own words:


Name
First Name
User Name
E-Mail
Mobile No
Created Date
Name
First Name
User Name
E-Mail
Mobile No
Created Date


7.6.2.a is-card-number() function
|
| open |
../../Chapt07/7.6/7.6.2/7.6.2.a.xhtml |
&nsp; |
Opens the form |
| waitForModelReady |
|
|
|
| verifyTitle |
7.6.2.a is-card-number() function |
|
Makes sure this is the right form |
| verifyText |
xpath=/html/body/xforms:group[3]/xforms:output[@value="is-card-number('541234567890125')"] |
*true* |
Checks that output has the right value |
| verifyText |
xpath=/html/body/xforms:group[4]/xforms:output[@value="is-card-number('1002312234567990000')"] |
*true* |
Checks that output has the right value |
| verifyText |
xpath=/html/body/xforms:group[5]/xforms:output[@value="is-card-number(.)"] |
*true* |
Checks that output has the right value |
| verifyText |
xpath=/html/body/xforms:group[6]/xforms:output[@value="is-card-number('123456789012')"] |
*false* |
Checks that output has the right value |
| verifyText |
xpath=/html/body/xforms:group[7]/xforms:output[@value="is-card-number('123')"] |
*false* |
Checks that output has the right value |
| verifyText |
xpath=/html/body/xforms:group[8]/xforms:output[@value="is-card-number('12345a789012')"] |
*false* |
Checks that output has the right value |


 Watch this video maybe it changes your mind
5 Action Steps for Helping Someone in Emotional Pain
Treatments and Therapies
Risk Factors
Survivors Message
QUOTES THAT MAY CHANGE YOUR PERSPECTIVE TO LIFE
Outreach:
You can help us arrange any of our outreach programs in your community.
Spread the Word:
Speak to your friends, family, colleagues, neighbours about what we do and refer our service to help reach those who need our support.
Speak Out!:
If you're a suicide survivor or have been affected by suicide, talk about it. Bring these conversations out in the open and remove the stigma attached to it. Help others deal with their problems through your experience.


Home
New Account
Pay Bills
Axis - Open New Account
Full Name
Dropdown
Mr
Ms
Mrs
Dr
Age
Date of Birth
Create Account


Toggle navigation
FAQ
SHOWROOM
SIGN IN
|
Dealer site
SIGN UP
Sign up
Sign up with Facebook
Sign up with Google
By creating an account, you agree our
terms.
Already a member? Sign in here.
Are you a dealer? Click here.
Terms and Conditions
×
The content of your modal.


Adventure Guildsman:
The world is a dark and scary place, my friend! If everyone would only follow the teachings of Eve and Einhasad, this chaos would finally end!
What's needed is a brave warrior like you to stand up for the down-trodden, to restore peace and justice to the world! Are you up to the task?
Quest Information
Raid Monster Information
Use Life Crystals
Quest


When the dot begins it's journey in space, it encounters gravity. Their dance in the sky summons space activists all over the world.
(tap or hover the area below)


{% include head.html %}
The CleanRobotics team is a passionate group of sustainably-minded entrepreneurs who bring a mix of technical know-how and business acumen. We come from a variety of educational and experiential backgrounds, brought together by our dreams of revolutionizing the way that waste is dealt with.
{{ member.info }}


This command tries to guess at the likely location of a package’s bug tracker URL, and then tries to open it
using the --browser
config param. If no package name is provided, it will search for a
package.json
in the current folder and use the name
property.
"open"
, Windows: "start"
, Others: "xdg-open"
The browser that is called by the npm bugs
command to open websites.
Set to false
to suppress browser behavior and instead print urls to terminal.
Set to true
to use default system URL opener.
The base URL of the npm package registry.


|
mpx-spring2017-npennf
NPE-NPX.R6.04282017
An Operating System Project
|
#include <stdint.h>
#include <string.h>
#include <core/comHandler.h>
#include <core/io.h>
#include <core/serial.h>
#include <core/help.h>
#include <core/commands.h>
#include <core/queue.h>
#include <modules/R2/commands/temp.h>
#include <modules/R2/commands/perm.h>
#include <modules/R3/commands/r3commands.h>
#include <modules/R5/commands/r5commands.h>
#include <modules/R5/memCommands.h>
#include <modules/mpx_supt.h>
Functions | |
| void | addFunctionDef (char *name, const char *helpString, const char *(funcPointer)(char **args, int numArgs)) |
| functionDef | getFunctionDef (char *name) |
| const char * | getHelpString (char *name) |
| char * | getComHistory (int isPrev) |
| void | addComHistory (char *newCom) |
| void | printStart () |
| void | returnToInsertionPoint (int endIndex, int insertionIndex) |
| void | eraseCurrentRow (int endIndex, int insertionIndex) |
| char * | getInput () |
| void | executeCommand (char *commandString) |
| const char * | help (char **args, int numArgs) |
| const char * | shutdown (char **args, int numArgs) |
| void | setupCommands () |
| void | initCommandHandler () |
Variables | |
| int | continueHandle = 1 |
| char | buffer [256] |
| functionDef | functionDefs [256] |
| int | functionInsertPoint = 0 |
| char | comHistory [10][256] |
| int | comHistoryPos = 0 |
| void addComHistory | ( | char * | newCom | ) |
Helper function to add a command to the command history array
| newCom | string to add to the command history |
| void addFunctionDef | ( | char * | name, |
| const char * | helpString, | ||
| const char * | funcPointer)(char **args, int numArgs | ||
| ) |
Adds function definition struct, created from provided params to the functionDefs array This allows the function to be called in the command handler by its name
| name | - string representation of the function |
| helpString | - const string to be displayed for help |
| funcPointer | - pointer to the function, must return const char* and take in arguments: char** args and int numArgs |
| void eraseCurrentRow | ( | int | endIndex, |
| int | insertionIndex | ||
| ) |
Helper function to remove all printed chars on the current line of input back to the >>
| endIndex | - index of last char printed |
| insertionIndex | - index of where insertion point should be |
| void executeCommand | ( | char * | commandString | ) |
Gets the command in the given commandString param and executes it, printing the provided output string
| commandString | string contianing the command name and any args |
| char* getComHistory | ( | int | isPrev | ) |
Helper function to get the next or previous command from the command history
| isPrev | integer denoting if to get the previous command |
| functionDef getFunctionDef | ( | char * | name | ) |
Gets the functionDef struct corresponding to the name provided, returns a functionDef with null funcPointer if none are found
| name | - name of the functionDef |
| const char* getHelpString | ( | char * | name | ) |
Gets the help string from the struct for the function name provided
| name | - name associated witht he struct from which to get the help string |
| char* getInput | ( | ) |
Polls the input for characters and handles special key strokes such as delete, backspace, arrows, etc. and returns the input string
| const char* help | ( | char ** | args, |
| int | numArgs | ||
| ) |
Returns help for the specified commands.
Usage: help commandName
Args: [no args] - Returns the help for the help command commandName - The name of the command to get help for
| args | The arguments to pass to the function |
| numArgs | The number of arguments |
| void initCommandHandler | ( | ) |
Main function of the comHandler that initializes the command handler, continually loops taking in input commands, manages the comHistory, and executes given commands
| void printStart | ( | ) |
Helper function to print out the beginning line tag: ">>"
| void returnToInsertionPoint | ( | int | endIndex, |
| int | insertionIndex | ||
| ) |
Helper function to move the insertion point from the end of the line to the correct placement
| endIndex | - index of last char printed |
| insertionIndex | - index of where insertion point should be |
| void setupCommands | ( | ) |
Initialization function to add commands ot the functionDefs array
| const char* shutdown | ( | char ** | args, |
| int | numArgs | ||
| ) |
Shuts down the OS after asking for confirmation.
Usage: shutdown [–confirm]
Args: [no args] - Displays confirmation prompt –confirm - Auto-confirms shutdown
| args | The arguments to pass to the function |
| numArgs | The number of arguments |
| char buffer[256] |
| char comHistory[10][256] |
| int comHistoryPos = 0 |
| int continueHandle = 1 |
| functionDef functionDefs[256] |
| int functionInsertPoint = 0 |


public final class TreeOutputStream
extends java.lang.Object
DiskIndexedTree
.
It modifies a tree by applying to it the commands produced by the EngineLogger.
Through this class, new children can be added to existing nodes on a tree, or whole new branches can be added to it.
To add new branches to a tree call the constructor passing it the index of the last branch.
To add children to existing nodes, pass to the constructor the
index of the root child which is the previous sibling of the
ancestor of those nodes.
How does the implementation know which of the descendants you want
to write? The branch will be navigated down by the commands passed
to write(Object[])
. When the commands start talking of
nodes that do not match those of the existing nodes, it will be
interpreted that those commands describe the new nodes that must be
inserted at the current position in the tree.
To keep track of where in the tree the stream is standing, a "cursor" concept is implemented. The cursor is nothing else than a path in the tree, together with an indicator of which was the last visited/inserted node.
| Modifier and Type | Class and Description |
|---|---|
static interface |
TreeOutputStream.WriterListener
An interface for a callback to announce the writing of a given node.
|
| Modifier and Type | Field and Description |
|---|---|
TreeOutputStream.WriterListener |
writerListener
The listener for nodes being written.
|
| Constructor and Description |
|---|
TreeOutputStream(DiskIndexedTree tree)
Constructs a stream to add or modify a sequence of
root children starting from the first one.
|
TreeOutputStream(DiskIndexedTree tree,
int previousRootChild)
Constructs a stream to add or modify a given sequence of
root children.
|
| Modifier and Type | Method and Description |
|---|---|
void |
reset()
Resets the stream and sets the new cursor position at the given branch.
|
void |
write(java.lang.Object[] commands)
Writes commands to modify the tree.
|
public TreeOutputStream.WriterListener writerListener
public TreeOutputStream(DiskIndexedTree tree)
public TreeOutputStream(DiskIndexedTree tree, int previousRootChild)
previousRootChild
- the root child previous to the one
that will be modified or added. Can be
-1 if the branch to modify is the first one.


{% extends 'header.html' %} {% load staticfiles%} {% block body_block %}
Send this web invitation to potential recipients and obtain their public blockchain key. After completing the form, recipients will be sent further instructions via email.
{{ request.scheme }}://{{ request.get_host }}/{{ issuance.url_id }}/add_person
Upload a CSV to invite potential recipients and obtain their public blockchain key. After uploading your CSV, recipients will be sent further instructions via email. Download a CSV template to begin.
{% endblock %}


Sets the attributes of the standard font in Microsoft Excel version 2.2 and earlier. This function is included only for macro compatibility. To define and apply a style in Microsoft Excel version 5.0 or later, use the APPLY.STYLE and DEFINE.STYLE functions.
Syntax
STANDARD.FONT(name_text, size_num, bold, italic, underline, strike, color, outline, shadow)
The arguments for this function are the same as those for FORMAT.FONT.
Related Functions
APPLY.STYLE Applies a style to the selection
DEFINE.STYLE Defines a cell style
FORMAT.FONT Applies a font to the selection
Return to index


Decrypts a string stored in ASCII format. Wide characters will be ignored!
| Parameters | |
|---|---|
input |
Should be in ASCII format |
key |
Should be no larger then 16 bytes in length. Be warned, if non-ascii characters are used they will take up two bytes each. |


Wat
Prof
Select a term and a professor to view the courses that professor is teaching in that term.
Select a term:
Fall 2014
Winter 2015
Spring 2015
Fall 2015
Select a professor:
{{content|safe}}
Find Classes


The caff was filled with the sound of chaff rustling in the breeze and the cheerful chirping of chiffchaffs. [G|D]
As she spun the wool on her distaff, she couldn't help but faff about and daydream, staring up at the flagstaff flapping in the wind. [G|D]
After reeling in the fish with his gaff, he proudly quaffed a beer to celebrate his successful naff. [G|D]
The guard brandished his quarterstaff, warning the riffraff to stay back as he stood at attention, ready to defend the castle gates alongside his fellow staff members. [G|D]


Dreaming of Vietnam's Cashless Future. Fintech is here for it.
Find Out MoreBased on traditional financial infrastructure and fintech services, we aim to become the Top-Tier Service Provider of Southeast Asia by providing accurate, convenient, and transparent computerized accounting, financial service, and various payments to Southeast Asia’s financial market.
Get Started!Ready to start your next project with us? Give us a call or send us an email and we will get back to you as soon as possible!


--- layout: default title: Resume ---
Rochester Institute of Technology, Rochester, NY Expected May 2015
Bachelor of Science in Software Engineering GPA 3.81 of 4.0
University of Limerick, Limerick, Ireland 1/14-5/14
Study Abroad through Arcadia University
Usability, Web Engineering, HCI 2, Applied Interaction Design, Human Factors, Human Communication, Vector Imaging, Typography
Tau Beta Phi, National Society of Collegiate Scholars, RIT Presidential Scholar, Honors Program, Golisano Student Spotlight
Assembled a design guide for the design team to use as boilerplate for creating mock-ups. Completed a thorough evaluation of the entire platform to dig up design inconsistencies and gaps. Corrected a couple of issues and offered alternative solutions for five others problems.
Designed and implemented personnel recovery system UI using Ruby, Sinatra, jQuery, Bootstrap, and CouchDB. Created all interaction and design. Streamlined the process of completing the PDF form the system will replace by crafting a usable, interactive web form. Collaborated on two open source healthcare projects as a front-end developer working with HTML, LESS, SASS, CoffeeScript, and Thorax.js.
Organizer and facilitator of events to promote women in computing as well as social events open to the whole RIT community in an effort to connect WiC members with other like-minded women and men.
Started a functional PR committee for the first time in club history.
Clarinet player in the band men’s and women’s hockey games and special events.
<EMAIL_ADDRESS><EMAIL_ADDRESS>Click here for a PDF Version of my resume.