Blog Posts subscribe
apiman Limiting Policies
Aug 17, 2015 Len DiMaggio policiesIn this, the sixth article in the series on apiman, JBoss’ new API Management framework, we’ll examine how apiman enables you to govern access to managed services through the use of rate limiting policies.
The runtime core of apiman is the API Gateway and the policies that it applies to incoming requests to services. apiman is configured out of the box with a variety of policies that can be used to govern access to services managed by the API Gateway based on IP address, user authentication, and usage levels. From its first release, apiman has supported rate limiting policies, where the upper limit for use of a service could be governed by a policy. In its new 1.1.6 release, apiman has expanded this support to include quota based limiting policies.
apiman Policy and Endpoint Security
Aug 3, 2015 Len DiMaggio securityIn this, the fifth article in the series on apiman, JBoss’ new API Management framework, we’ll examine how apiman enables you to provide security for your managed services at the policy level, and and at the endpoint level for its managed and unmanaged endpoints.
Plugins - Not Just For Policies Anymore
Jul 24, 2015 Eric Wittmann api-manager, api-gateway, plugins, development, and mavenAs you may know, apiman has long supported custom policies provided by users. If you aren’t familiar with apiman plugins, you can find more about them by clicking here.
As of version 1.1.5.Final, plugins are now even more useful. You can provide custom implementations of various core apiman system components via plugins. This allows users to customize apiman easily, without any changes to the classpath and without rebuilding the core apiman application.
In this blog post I’ll explain how it works.
Manage Fuse APIs with apiman
Jul 7, 2015 Stefan Bunciak api, management, jboss, and fuseThis article aims to provide a short guide on how to get API Management capabilities provided by apiman to work with JBoss Fuse, a lightweight, flexible, integration platform that is based on Apache Camel, an implementation of many of the most commonly used enterprise integration patterns (EIP).
At long last, Metrics R Us!
Jul 6, 2015 Eric Wittmann api-manager, service, ui, and metricsA core feature of any good API Management solution is the recording of and reporting on interesting metrics related to API requests. Because apiman acts as a central Gateway for all managed API traffic, it is the perfect location to record information about each and every request. This allows it to report on interesting data it has recorded, related to response times, successful vs. failed requests, total number of requests broken down by time, consumer id, or plan used. As you can imagine, this is extremely valuable information and it is a bit embarrassing that we haven’t offered this functionality until now!
But that gap is finally filled with version 1.1.4.Final.
CORS? Of Course!
Jul 2, 2015 Marc Savy security, plugin, policy, and corsIf you’re looking to define CORS policies in your API Management layer, then we have an official plugin policy that should be perfect for the job.
For those unfamiliar with CORS, it’s a way of precisely defining who and how a remote origin may invoke a service’s resources. Generally, due to the same-origin policy, a web browser will only allow the invocation of resources that reside on the same origin as the requesting page. This mitigates a range of malicious script attacks from interacting with the remote resources.
However, if we want our resource to be callable by some other, or all, origins, then we need to define a CORS policy.
Cover yourself up!  The typical solution for this is to lock down your network so that the only publicly accessible part is the apiman gateway, whilst services are hidden in the private part of the network, which apiman can access, but not someone in the outside world. However, in some situations fine-grained network controls may not be available, such as the cloud; or, you may wish to have an additional layer of security to be reassured that no funny business is going on (such as imposters).
The class of solutions to this problem generally falls under the banner of mutual authentication. One such mutual auth offering apiman supports is Mutually Authenticated TLS[1].
Microservices Architecture Day Appearance
Jun 15, 2015 Marc Savy microservices, conference, and talkI had the pleasure of presenting on apiman at the recent Microservices Architecture Developer Day, with our colleague Kurt delivering a short demo of our software running within Fabric8. It was particularly enjoyable meeting developers who are interested in, or are already using, apiman - so, thank you for your insightful questions both during, and after, the presentation.
Given the packed schedule, there was a limited amount of time to explore apiman plus microservices, and hence this seems like a good opportunity to write a blog post expanding upon the themes I touched upon.
So, if you’re interested in understanding the value API management can have in a microservices architecture; please, read on!
Adding a BASIC Authentication Policy to a Managed Service in JBoss apiman
Jun 11, 2015 Len DiMaggio authentication and policyIn this, the fourth article in the series on apiman, JBoss’ new API Management framework, we’ll examine how apiman enables you to not just manage services, but implement a layer of security to the services by adding an authentication requirement when clients access a managed service.
Keycloak and dagger: Securing your services with OAuth2
Jun 9, 2015 Marc Savy gateway, security, oauth2, keycloak, authentication, and authorizationOne great advantage of API Management is centralising auth concerns, thereby avoiding burdensome reimplementation issues and streamlining your security processes. The good news is that you can easily configure apiman to handle many common auth use-cases, such as OAuth2 with our popular Keycloak OAuth2 policy which I’ll outline in this blogpost.
Setting up your apiman development environment
Jun 4, 2015 Eric Wittmann eclipse, development, and mavenFor those of you who might be interested in hacking away at some core apiman code, I thought it might be nice to create a reasonably comprehensive step-by-step guide. For the most part everything is straightforward, but there are a copule of tricks you can use to get up and running fast and to be able to easily iterate on any changes you make.
Read on if this sounds like something you want to do!
We got the moves like swagger!
Jun 2, 2015 Eric Wittmann api-manager, swagger, service, and uiOne of the weaknesses we’ve had in apiman until now is that service providers didn’t have any way to document how to consume their services. Well that has all changed with version 1.1.3.Final. Now you can upload a Swagger spec document for your service. If you do, consumers will be able to browse your service documentation directly in the apiman UI.
I think we can all agree that this is a welcome change and really improves the usability of the system, particularly from the perspective of the application developer (aka the service consumer).
The JBoss apiman API Manager REST services API
May 19, 2015 Len DiMaggio rest, api, and automationIn this, the third article in our series on apiman, JBoss’ new open source API Management framework, we’ll examine apiman’s API Manager REST services API. apiman’s Management UI utilizes this API in the implementation for all of its user-visible features, and you can also use the same API to automate tasks with apiman.
A great way to test your custom apiman policy!
May 9, 2015 Eric Wittmann policy, junit, and testingIf you have tried creating your own custom apiman policy, you may have had a little bit of difficulty creating useful junit tests for it. Many policies require various apiman runtime components to be available. It can be super annoying trying to use something like mockito to create mock versions of everything your policy needs. Even for simple policies you really just want a quick and effective way to test the implementation within a reasonably “real world” harness.
Well you’ve probably guessed by now that I’m about to show you how it’s done! (OK fine, how it will be done in the next release of apiman - 1.1.3.Final)
Authorization: good god, what is it good for?
May 8, 2015 Eric Wittmann authorization, authentication, and policyQuite a bit, actually. :)
I want to talk about how Authorization currently works in apiman, because it’s a little bit more loosely coupled than you might expect. Note that at some point in the future we’re going to be renovating how policies are defined and configured in the API Manager UI. But until then, you can refer to this blog post for an overview of how to configure Authorization!
Customizing JBoss apiman Through Policy Plugins
Mar 6, 2015 Len DiMaggio plugins, policies, development, and mavenThis is the second in a series of articles exploring API management with JBoss apiman. The first article was a general introduction to apiman for impatient users where in only 10 minutes we installed apiman, created users and organizations, and services, policies, contracts, and applications. In this article, we’ll take the first step toward customizing apiman by creating new plugins to implement service policies.
An Impatient New User's Introduction to API Management with JBoss apiman 1.0
Jan 9, 2015 Len DiMaggio introduction and overviewSoftware application development models are evolutionary things. New technologies are always being created and require new approaches. It’s frequently the case today, that a service oriented architecture (SOA) model is used and that the end product is a software service that can be used by applications. The explosion in growth of mobile devices has only accelerated this trend. Every new mobile phone sold is another platform onto which applications are deployed. These applications are often built from services provided from multiple sources. The applications often consume these services through their APIs.
OK, that’s all interesting, but why does this matter?


Why you use framework (Bootstrap)?
Have you evaluated other frameworks than Bootstrap?
Are you offering OT2.5 or older styles?
Are you going to offer the new styles (like SkyTouch)?
Is WULF The Framework approved by GUI Board that everybody should / must
use?
IE8 is not supported, will you support it in the future?
Do you offer widgets?
Are you including any commercial widgets that customer project should buy
license?
Are you checking the licenses of used open source components?
Are you offering ECC statement for WULF?
Why you use xxx component/principle/tool, as there are much better
ones?
WULF size is getting too big, can it be reduced?
Is WULF going to support new Edge browser in Windows 10?
Why you use framework (Bootstrap)?
We wanted to get components quickly for the project use. We agree that most of basic UI components are doable
using pure css/html, but for the more complicated ones are not easy to make (and secondly we have no time nor
effort to start from scratch for every component).
We can consider taking pure css/html solutions also into use, though that would cause interface changes to
customer projects. This is area for further consideration.
Have you evaluated other frameworks than Bootstrap?
Not really. Bootstrap was chosen due to its popularity in the internet (active community, lots of examples
and hints).
There was no time for extensive evaluations that would take weeks/months to complete. In addition we did not
have effort available to start each component from scratch (we wanted to get something reused).
Are you offering OT2.5 or older styles?
No. Target is to build support for the latest officially approved specification (OT3.1).
However if you want, you can tune the WULF (mainly css) to support OT2.5 and make that available via WULF
distribution. OT3.0 is available as one package, though it is not maintained separately - all efforts go to
fulfilling OT3.1.
Are you going to offer the new styles (like SkyTouch)?
Yes this is planned.
Schedule is though unknown and resourcing needs to be secured for that.
Is WULF The Framework approved by GUI Board that everybody should / must use?
No. There is however initiative to get Web UI frameworks defined and agreed - WULF is a candidate.
We try to implement such a platform that serves (almost all if not all) the needs from all web projects in
Nokia and in that case it could become as the official L&F platform for Web UIs. This topic will be discussed with GUI Board later.
IE8 is not supported, will you support it in the future?
Currently it is not planned, as it would require even tenfold effort and we don't have that amount of persons
available. Also it is our feeling that the OT3 is not fully doable for IE8 as responsive and light-weight.
If you must support IE8, it might be possible to tweak WULF to support it - if we were demanded to do it, we would need funding + also persons from the requesting organization. Certain design solutions are bringing challenges...
Yes. In the first phase we concentrate on getting the basic UI components into OT3 look. The second phase will
contain widgets (like table) where the UI component will contain some logic / intelligence
implemented with JavaScript.
We will be heading to this direction slightly in parallel of the first phase (listbox component, some other
components have also in-built intelligence).
Are you including any commercial widgets that customer project should buy license?
We will include commercial widgets if there is Nokia wide license available. WULF will be free-of-charge
solution for the projects using it (so no license purchases forced to customer projects by WULF).
You are free to integrate any commercial components/widgets though. If there are commercial components bought
for Nokia wide usage and they can technically be added into WULF, we can of course add that kind of
components. We don't have the funds nor time to start licensing negotiations with the vendors.
NOTE1: jqWidgets commercial component has been included inside WULF as there is Nokia wide license for it in
place. No license fees need to be paid by WULF customer projects for that.
NOTE2: HighCharts has not bee included (as there is no common Nokia license available) though we have made one
example for that.
Are you checking the licenses of used open source components?
Yes we run the components through Talko legal / license checking. We are trying to use components/code via MIT license as much as possible.
Are you offering ECC statement for WULF?
Yes that is available in 4 Used 3rd Party SW page.
Why you use xxx component/principle/tool, as there are much better ones?
In order to keep schedules to at least some extent we cannot run heavy or long evaluations. WULF is developed
with lean practices: we see quickly within day or two the available options and pick one of them.
If later on a better option is found out / there are major problems from the chosen option, we will change.
WULF size is getting too big, can it be reduced?
Yes. Depending on which components you need, you can leave out certain parts of WULF easily (unfortunately we
are not supporting full customizability for WULF content, only limited amount of components can be left out
easily). See chapter 2 Usage Instruction.
Later on it can be studied if the WULF could be offered just like Bootstrap, that customer project can select which components are required and build system produces such release for the project. In addition you can suggest things to drop away from WULF files to make it smaller.
Is WULF going to support new Edge browser in Windows 10?
Yes that is supported.
There are currently several issues with screen reader but those are NVDA and Edge system related. We are
waiting the vendors to fix the problems.


#{brand}
OpenPaaS Portal
Marketplace
My Account
Log out
Please check notice. There are unread notices about events that can affect your application.
X
Loading...
${#{1}}
닫기
Warning Popup
닫기
CONFIRM
CANCEL
닫기
Infomation Popup
닫기
Confirm Popup
CONFIRM
CANCEL


| Shared Vision December 1996 |
Take your soul to workwith Tanis Helliwell
High and Low Roads in Professions
Law The high road in law is not one of competition but of mediation, and this road is opening up in our world at present. Taking the high road of mediation means that a couple who are divorcing sit down to work out a fair settlement which is acceptable to both sides. Under the traditional adversarial system, both parties would try to get as much as they could for themselves.
Healing In North America , billions of dollars are spent each year on heart surgery and cancer operations which deal only with the symptoms and not the cause of the disease. Yet we continue to sell the cigarettes, pollute the air and lead the high-stress lives that cause these diseases. The good news is that the low road of conventional medicine is giving way to holistic health which emphasizes prevention rather than repair. It also emphasizes less invasive healing processes such as healing with herbs, oils and touch.
Accounting and Finance High Road Thinking for Industriesbr> I have been working recently for pulp and paper companies and have observed the changes occurring in that area. Ten years ago there was more clear-cutting and much less tree replanting. The mills were also dumping more toxic chemicals into streams. There is still a long way to go, but these are moves in the right direction. Obviously, what is needed is another way to make paper and building products. When speaking at a conference for Alberta Agriculture last year, I noticed something that might help. It was a display of press board made of corn, wheat and oat straw. What immediately came to mind were the words, “sixty years to grow a tree; one year to grow straw.” Pulp and paper companies which move into this or similar areas would be walking the high road of their profession.
Examine Your Work Tanis Helliwell has worked internationally since 1976 helping individuals and organizations to develop their potential. Her clients include IBM, World Business Academy, University of Calgary, World Future Society. She may be contacted for speaking engagements at 736-7731. You can visit her web page at http://mindlink.bc.ca/Tanis-Helliwell |


Setup
When you work with JavaScript APIs, you have to be running a server for your API call to be successful (this is a security thing). There is an easy(ish) way to run a local server on a Mac (instructions if you were curious), but for this class we are going to use JSBin instead. Even if you know how to run a server on your Mac, please use JSBin for this exercise.
Instructions
In this exercise, you'll try out using several JS snippet APIs to bring more functionality into the webpage.
Note: some of these steps require you to have accounts on these services. If you don't already have an account, you can either sign up for an account or skip that step.
- View the starter file on JSBin - do not try to edit the starter file
- Click File > Clone to create a copy of the file
- Go to the Google+ button docs and generate the code for a Google+ button with no annotation and a medium size. Insert that so it shows up next to the header of the webpage.
- Go to the Tweet button docs and read about the Tweet button. Find the HTML/SCRIPT tag for adding it, and paste that into your webpage, at the bottom near the counter.
- Read the Facebook 'Like' button docs and add a 'Like' button for any page you want.
- Modify the share URL or HTML according to the docs to specify hash tags and change it so that it doesn't show the counter.
- Bonus: Using JavaScript, generate a Tweet button for each video, and display it when the video is clicked. The text for each tweet button should be the video title.
Make sure that you use your console and developer tools to make debugging easier while working on this. Check for errors, and use console.log() to figure out how far your code makes it, and what the values of your variables are along the way. Using JSBin, you'll need to click the "Console" tap in the top middle. Your developer console might print extra information.
Solution
Click the JavaScript button in the middle to see the solution.
Video Watcher - Solution


| Batting {Lahman} | R Documentation |
Batting table - batting statistics
data(Batting)
A data frame with 108789 observations on the following 22 variables.
playerID
Player ID code
yearID
Year
stint
player's stint (order of appearances within a season)
teamID
Team; a factor
lgID
League; a factor with levels AA
AL
FL
NL
PL
UA
G
Games: number of games in which a player played
AB
At Bats
R
Runs
H
Hits: times reached base because of a batted, fair ball without error by the defense
X2B
Doubles: hits on which the batter reached second base safely
X3B
Triples: hits on which the batter reached third base safely
HR
Homeruns
RBI
Runs Batted In
SB
Stolen Bases
CS
Caught Stealing
BB
Base on Balls
SO
Strikeouts
IBB
Intentional walks
HBP
Hit by pitch
SH
Sacrifice hits
SF
Sacrifice flies
GIDP
Grounded into double plays
Variables X2B
and X3B
are named 2B
and 3B
in the original database
Lahman, S. (2021) Lahman's Baseball Database, 1871-2020, 2020 version, http://www.seanlahman.com/baseball-archive/statistics/
battingStats
for calculating batting average (BA) and other derived statistics
baseball
for a similar dataset, but a subset of players who played 15 or more seasons.
Baseball
for data on batting in the 1987 season.
data(Batting) head(Batting) require("dplyr") ## Prelude: Extract information from Salaries and People ## to be merged with the batting data. # Subset of Salaries data salaries <- Salaries %>% select(playerID, yearID, teamID, salary) # Subset of People table (player metadata) peopleInfo <- People %>% select(playerID, birthYear, birthMonth, nameLast, nameFirst, bats) # Left join salaries and peopleInfo to batting data, # create an age variable and sort by playerID, yearID and stint # Returns an ignorable warning. batting <- battingStats() %>% left_join(salaries, by =c("playerID", "yearID", "teamID")) %>% left_join(peopleInfo, by = "playerID") %>% mutate(age = yearID - birthYear - 1L *(birthMonth >= 10)) %>% arrange(playerID, yearID, stint) ## Generate a ggplot similar to the NYT graph in the story about Ted ## Williams and the last .400 MLB season # http://www.nytimes.com/interactive/2011/09/18/sports/baseball/WILLIAMS-GRAPHIC.html # Restrict the pool of eligible players to the years after 1899 and # players with a minimum of 450 plate appearances (this covers the # strike year of 1994 when Tony Gwynn hit .394 before play was suspended # for the season - in a normal year, the minimum number of plate appearances is 502) eligibleHitters <- batting %>% filter(yearID >= 1900 & PA > 450) # Find the hitters with the highest BA in MLB each year (there are a # few ties). Include all players with BA > .400, whether they # won a batting title or not, and add an indicator variable for # .400 average in a season. topHitters <- eligibleHitters %>% group_by(yearID) %>% filter(BA == max(BA)| BA >= .400) %>% mutate(ba400 = BA >= 0.400) %>% select(playerID, yearID, nameLast, nameFirst, BA, ba400) # Sub-data frame for the .400 hitters plus the outliers after 1950 # (averages above .380) - used to produce labels in the plot below bignames <- topHitters %>% filter(ba400 | (yearID > 1950 & BA > 0.380)) %>% arrange(desc(BA)) # Variable to provide a vertical offset to certain # labels in the ggplot below bignames$yoffset <- c(0, 0, 0, 0, 0.002, 0, 0, 0, 0.001, -0.001, 0, -0.002, 0, 0, 0.002, 0, 0) # Produce the plot require("ggplot2") ggplot(topHitters, aes(x = yearID, y = BA)) + geom_point(aes(colour = ba400), size = 2.5) + geom_hline(yintercept = 0.400, size = 1, colour = "gray70") + geom_text(data = bignames, aes(y = BA + yoffset, label = nameLast), size = 3, hjust = 1.2) + scale_colour_manual(values = c("FALSE" = "black", "TRUE" = "red")) + xlim(1899, 2015) + xlab("Year") + scale_y_continuous("Batting average", limits = c(0.330, 0.430), breaks = seq(0.34, 0.42, by = 0.02), labels = c(".340", ".360", ".380", ".400", ".420")) + geom_smooth() + theme(legend.position = "none") ########################################################## # after Chris Green, # http://sabr.org/research/baseball-s-first-power-surge-home-runs-late-19th-century-major-leagues # Total home runs by year totalHR <- Batting %>% group_by(yearID) %>% summarise(HomeRuns = sum(as.numeric(HR), na.rm=TRUE), Games = sum(as.numeric(G), na.rm=TRUE)) # Plot HR by year, pre-1919 (dead ball era) totalHR %>% filter(yearID <= 1918) %>% ggplot(., aes(x = yearID, y = HomeRuns)) + geom_line() + geom_point() + labs(x = "Year", y = "Home runs hit") # Take games into account totalHR %>% filter(yearID <= 1918) %>% ggplot(., aes(x = yearID, y = HomeRuns/Games)) + geom_line() + geom_point() + labs(x = "Year", y = "Home runs per game played") # Widen perspective to all years from 1871 ggplot(totalHR, aes(x = yearID, y = HomeRuns)) + geom_point() + geom_path() + geom_smooth() + labs(x = "Year", y = "Home runs hit") # Similar plot for HR per game played by year - # shows several eras with spikes in HR hit ggplot(totalHR, aes(x = yearID, y = HomeRuns/Games)) + geom_point() + geom_path() + geom_smooth(se = FALSE) + labs(x = "Year", y = "Home runs per game played")


--- layout: post title: Generating dynamic tables with varying row colours tags: [] status: publish type: post published: true meta: {} ---
I always wanted to know how in Coldfusion administrator the rows in a table were alternating in colour. Well I came across this article by Adam Maloney on Defusion (http://www.defusion.com/) [Article 54]
This trick is relatively simple. Using the query.currentrow variable, and some simple math, you can have a nifty table:
<CFOUTPUT QUERY="myquery"> <CFIF currentrow mod 2>

 <CFELSE>

 </CFIF> </CFOUTPUT>
The if statement is the key. The expression currentrow mod 2 returns the modulus (remainder division) of the current query and row 2. If the return value is 0, then currentrow is even. If it is non-zero, then currentrow is odd.


>_ BZZZT!


All Classes
AccountCharge
AlternativePayment
ApiConnection
ApiQuery
Bank
CardCharge
Charge
Encryption
Endpoints
Environment
ExchangeRates
Fees
IntegrityChecksum
Polling
PreAuthorization
RaveConstant
Refund
Transaction


We all have experienced times when we have had a conflict. These times can be very trying, and understanding how to deal with them can really make a huge difference in your productive and success.
One conflict that I have had was when I was a teacher in Thailand. There were serious disagreements between the foreign teachers on the best ways to operate your classroom. At our school you only were responsible for teaching for 3-4 hours a day, and the rest of the hours were taught by Thai teachers. The conflict arose from what you should be doing in the hours that you aren't directly teaching. Some teachers felt that it was their free time and they could go home if they pleased. Others felt obligated to never leave their classroom and make sure that they always were at their desk in case they were needed. I fell in the middle where I felt it was important to stay on campus and be working during work hours, but due to a lack of internet in the classroom, found it impossible to actually work at times in the classroom so trips to the school library were essential.
The main part of the problem was that as foreign teachers we were often all grouped together. If one person was going home each day that reflected on all of us as a unit. Throughout the conflict I had a mix of emotions ranging from anger to resignment, but I did my best to stay positive and keep working hard. I knew that I couldn't control the behavior of my coworkers, nor was I in an authoritative position to do so. I had to take it in stride that each person had their own beliefs as to the best actions in this situation and I had to respect everyone opinion.
After much deliberation with our coordinators we decided that it was important for teachers to remain on campus and in their classrooms as much as possible, with the exception of needing to use the internet or get work done in the school. If I could go back I would have tried to bring the issue up earlier in the year before people started to get passionate about how they wanted to handle their non teaching hours.
I did learn a lot from this experience. It is important to get at the root of issues before they grow into big ones. Had we laid ground rules out at the beginning of the year then people would have all been on the same page, and there would have been an answer to our problem of what to do during that time. For problems of this nature, if possible it is definitely advantageous to solve conflicts prior to people becoming too emotionally invested in the outcome.


--- layout: page title : Membership header : Membership group: --- {% include JB/setup %}
Becoming a member is free! All it takes is coming to the center and a willingness to engage in recovery!
On your first visit you'll get a tour of the center and the workings within.
On your second visit you can fill out a membership application!
Finally you must attend a membership orientation session where you'll receive a Hope for Holyoke Membership certificate!
Becoming a member means that you'll have access to:


Epigram 2 has not yet been released. When it is it will be on hackage. Until then, and if you're feeling brave, you can download the development version from our darcs repository. You will need ghc 6.12 right now and you'll also need cabal install. We're sorry about this and we hope to target 6.10 in future.
Before you try to install Epigram you will need the Strathclyde Haskell Extension to compile Epigram. The version on hackage is fine:
$ cabal install she
$ darcs get
http://www.e-pig.org/darcs/Pig09/
$ cd Pig09/src
$ make dep
$ make Pig
If you want to create executables from Epigram programs you'll need Edwin Brady's EPIC compiler. I defer to Edwin for further instructions:
http://www.cs.st-andrews.ac.uk/~eb/epic.php
You can just update from the darcs repo:
$ darcs pull
If make Pig
unexpectedly fails, then this is often
worth a punt:
$ make clean
$ make dep
$ make Pig
Sometimes you don't need the make dep
but Epigram's
build environment is currently a bit flakey and this can sometimes
gently nudge its ducks into a row.


SoundVolume3D()
语法
SoundVolume3D(#Sound3D, Volume)概要
Set the new volume, in real-time, for the #Sound3D. The volume value is saved for the #Sound3D, so it's not needed to call it every time.
参数
#Sound3D The sound to use. Volume The new volume for the sound. The valid values are from 0 (no volume) to 100 (full volume).
返回值
无.
已支持操作系统
所有


[gecode-users] Getting just assigned variable from ViewArray in a propagator
Christian Schulte
cschulte at kth.se
Fri Mar 18 11:44:28 CET 2016
Hi Yunus,
There are two options here:
1. You track inside your propagator for which assigned variable you have already created a propagator. One easy trick is (it depends on your propagator whether this is in fact possible) to remove assigned views from your array. Another option would be to use a bitset or something like that.
2. You can track which views get assigned by using advisors. Please check MPG for the details.
Best
Christian
--
Christian Schulte, www.gecode.org/~schulte
Professor of Computer Science, KTH, cschulte at kth.se
Expert Researcher, SICS, cschulte at sics.se
From: users-bounces at gecode.org [mailto:users-bounces at gecode.org] On Behalf Of Yunus Acikoz
Sent: Friday, March 18, 2016 10:47
To: users at gecode.org
Subject: [gecode-users] Getting just assigned variable from ViewArray in a propagator
Hi everyone,
I have a tunneling constraint propagator that has 4 ViewArrays and scheduled to run on their assignment events:
Gecode::ViewArray<Gecode::Int::IntView> successors_;
Gecode::ViewArray<Gecode::Int::IntView> predecessors_;
Gecode::ViewArray<Gecode::Int::IntView> vehicles_;
Gecode::ViewArray<Gecode::Int::BoolView> cancels_;
successors_.subscribe(home, *this, Gecode::Int::PC_INT_VAL);
predecessors_.subscribe(home, *this, Gecode::Int::PC_INT_VAL);
vehicles_.subscribe(home, *this, Gecode::Int::PC_INT_VAL);
I want to post additional constraints whenever a value gets fixed over those arrays.
for (int i = 0; i < successors_.size(); ++i) {
if (vehicles_[i].assigned()) {
int val = vehicles_[i].val();
// post constraint...
// eg.
Gecode::element(home, vehicles_, successors_[i], val);
}
if (successors_[i].assigned()) {
int val = successors_[i].val();
// post another constraint ...
}
}
For example assume that we first assign the vehicle[2] to some value and propagate accordingly.
Then if we assign vehicle[7] how can we prevent doing same action for vehicle[2].
Does it post the same constraints for all the previously assigned variables, again and again.... ?
Is there a way to get the recently assigned variable that cause thıs propagator to run?
Cheers,
Yunus
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.gecode.org/pipermail/users/attachments/20160318/3487bc6b/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4623 bytes
Desc: not available
URL: <http://www.gecode.org/pipermail/users/attachments/20160318/3487bc6b/attachment-0001.bin>
More information about the users
mailing list


Thank You Rosanne!
27 Mar 2015###But we need to clarify a few things.
Hi Rosanne,
As faithful, pro-Israel tweeters and bloggers, we at the Judean People’s Front are well aware of the massive support you show Israel on a daily basis all over the twittersphere. You are outspoken, unapologetic, and forceful with your message of support for the world’s only Jewish State and we thank you for that.
You recently took this battle off twitter with a special guest post on the pro-Israel blog Israellycool.com. In In Praise Of Israeli Democracy you write not only a vigorous defense of the State of Israel, but of Democracy in general and begin with:
Israel right now, in my opinion has the most vibrant democracy in the world, and feel free to correct me (minus hate speech) if you feel I am wrong.
The Judean People’s Front certainly doesn’t disagree with this statement, but there are a few misstatements you subsequently make, that should be addressed - respectfully, as co-defenders of Israel, of course.
Achoteinu Barr, you make a very common mistake regarding the founding and legitimacy of the State of Israel:
As we all know, Israel was made a state by the UN in 1948, with the partition of Palestine into a Jewish State and a Jordanian-Palestinian State, in an agreement/peace treaty which guaranteed that only a small portion of The British Empire’s Confiscated and Occupied Jewish Ancestral Homeland would be returned to the Jewish People, based on the writ, “The Balfour Declaration.”
This may be the common perception, but it is simply not the way things happened.
Israel was not made a state by the UN. In November 1947, the United Nations did vote in favor of the Partition of Palestine. This was accepted by the Jewish Agency (the pre-state government of the Yishuv) but it was completely rejected by both the local Arabs and the surrounding Arab states. As such, it never went into effect and was not responsible for establishing Israel.
The Jewish State was instead established on 14 May 1948 when, after months of intesnse fighting, and suffering over 2000 Jewish casualties, the State of Israel was declared in Tel Aviv (Jerusalem was still under heavy seige and too dangerous for such a massive gathering of Israel’s leaders). It was the Israelis themselves that established our state through the force of arms in defending their homes and the determination to declare a state upon the withdrawal of the British (this was still very controversial among the Zionist leadership of the time).
What’s more, there was no “agreement/peace treaty” with Jordan or any other Arab state that guaranteed Israel would be returned to the Jewish People. That was, of course, because all the Arab states refused to negotiate peace and rejected Israel’s existence in every way. Had they accepted peace or the Partition Plan, there would have been no war, no refugees, and an Arab state in Palestine would have been an established fact as well (at least until it was incorporated into Jordan).
You then continue with:
Many opine that without the grotesque and savage fascist state sanctioned murder of another third of The Jewish People, none of the lands might have ever been returned at all.
It is very dangerous to buy into or lend legitimacy the Arab narrative that Israel was simply established by the UN to assuage Western guilt over the Holocaust. It has been said before, but we’ll say it again:
##Israel was not established because of the Holocaust. Israel was established in spite of the Holocaust!
None of the lands were “returned” to us. We returned to the land ourselves, buying it legally, and defending it with our lives. The idea that the UN simply handed Israel over to the Jews in 1948 as blood-money for inaction over our genocide is one touted by anti-Israel and anti-Semitic voices the world over and we should reject this lie vociferously. It also overlooks the fact that prior to 1948, there already was a functioning Jewish State in all but name, and this became official when, mere minutes after the declaration was made, the United States and Soviet Union recognized the new/old state.
Had the Arab accepted the Peel Partition of 1937 (as the Yishuv did), millions of Jews would have had a safe haven in which to seek refugee from the Nazi genocide and an outright Jewish majority would have been secured for centuries. But this partition plan did not create the State of Israel any more than the UN Partition of 1947 did. It was only our own actions and determination that brought this about.
The only other misstep you make in your otherwise praiseworthy post comes when, while discussing the Israeli electorate, you refer to:
indigenous Mizrachi and Sephardic Jewish voters
Certainly Mizrachi and Sephardi Jews stayed closer to the Homeland than their Ashkenazi cousins, but they are no more indigenous than the rest of us. All Jews are indigenous to the Land of Israel. It is where our forefathers settled thousands of years ago, where we our multiple kingdoms were established, to whhere we returned to after our exiles in Egypt, Babylon and our 2,000-year exile scattered around the world. DNA evidence has rather consistently shown Jewish ancestry originating in the Levant even though the skin color of some of us may belie this underlying truth. It is important that we not forget our indigeneity, or, God-forbid, cede it to the idea that the Arabs are actually the indigenous population
Regardless of these few misstatements, the Judean People’s Front thanks you for your defense of Israeli democracy and your continued advocacy in the face of growing anti-Semitism.
We salute you with our eternal battle cry:
##Am Yisrael Chai!


BLESS THE CHILD A film review by Steve Rhodes Copyright 2000 Steve Rhodes RATING (0 TO ****): * 1/2
In Chuck Russell's BLESS THE CHILD, it's God's angels vs. the Devil's team, and it's looking good for the forces of evil. But don't count out the Lord's side until the last inning.
Starring Kim Basinger, recently seen unimpressively in the equally awful I DREAMED OF AFRICA, BLESS THE CHILD is a canonical B-movie, supernatural thriller. In the old days, it could have played as part of a Saturday double feature, along with a serial, a newsreel and a couple of cartoons. Part of a genre that includes such trashy movies as STIGMATA, BLESS THE CHILD is one of the better of such bad movies. If that sounds like a left-handed compliment, it is. Perhaps the most devastating comment on the film is that it isn't scary. Unintentionally funny, certainly, but rarely frightening.
A typical example of the unintentional humor occurs on a country road with fog as thick as the proverbial pea soup. "Where's our backup?" asks FBI Agent John Travis (Jimmy Smits). "They were right behind us," replies the perplexed state trooper accompanying him.
In another scene, Maggie O'Connor (Basinger) goes alone into a bad area of town to personally confront the Devil's agent, Eric Stark (Rufus Sewell). Eric is a cross between a Tony Robbins-style motivational speaker and a David Koresh cult leader. He leads a permanently peppy group known as the New Dawn Foundation.
The story opens with Maggie's strung-out sister, Jenna (Angela Bettis), dumping her 6-day-old baby, Cody, with Maggie and then disappearing for 6 years. When Jenna returns, she's just as wasted on heroin as ever, but now she is Eric's new bride and there to collect Cody (Holliston Coleman) in order to do the Devil's work. But Cody is a child who has been blessed by God with certain gifts and doesn't convert to the dark side easily.
The best part of the movie is that Coleman and most of the adult actors, save Sewell, give quite respectable performances, much better in fact that a film of this caliber deserves. The result is a silly movie that's more watchable than you would expect, even when great actors like Ian Holm have to deliver such gems as, "Today, the concept of evil is politically incorrect."
This much can be said for BLESS THE CHILD -- at least it gives God a fighting chance. Usually church officials shown in such supernatural balderdash appear just as loathsome as the Devil himself, leaving us with no side for which to root. This time, God isn't such a bad guy, and his side just might win in the end. But I don't want to give anything away to those of you incapable of guessing obvious conclusions.
BLESS THE CHILD runs 1:50. It is rated R for violence, drug content and brief language and would be acceptable for older teenagers.
Email<EMAIL_ADDRESS>Web: http://www.InternetReviews.com
------=_NextPart_000_001A_01C001E2.1E05B0E0 name="winmail.dat" filename="winmail.dat"
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 AEYAAAAAN4UAAAEAAAABAAAAAAAAAB4AKoAIIAYAAAAAAMAAAAAAAABGAAAAADiFAAABAAAAAQAA AAAAAAALAFOACCAGAAAAAADAAAAAAAAARgAAAAAGhQAAAAAAAAsAV4AIIAYAAAAAAMAAAAAAAABG AAAAAIKFAAABAAAAAgH4DwEAAAAQAAAAeqYHbY030hGpWQBgCL9JwgIB+g8BAAAAEAAAAHqmB22N N9IRqVkAYAi/ScICAfsPAQAAAHMAAAAAAAAAOKG7EAXlEBqhuwgAKypWwgAAUFNUUFJYLkRMTAAA AAAAAAAATklUQfm/uAEAqgA32W4AAABDOlxXSU5ET1dTXEFwcGxpY2F0aW9uIERhdGFcTWljcm9z b2Z0XE91dGxvb2tcbWFpbGJveC5wc3QAAAMA/g8FAAAAAwANNP03AAACAX8AAQAAAEAAAAA8TkNC QktKRkpIS01HQVBOQ01FUEZDRUJPREpBQS5TdGV2ZS5SaG9kZXNASW50ZXJuZXRSZXZpZXdzLmNv bT4AAwAGELn8zSEDAAcQsgkAAAMAEBAAAAAAAwAREAAAAAAeAAgQAQAAAGUAAABCTEVTU1RIRUNI SUxEQUZJTE1SRVZJRVdCWVNURVZFUkhPREVTQ09QWVJJR0hUMjAwMFNURVZFUkhPREVTUkFUSU5H KDBUTyoqKiopOioxLzJJTkNIVUNLUlVTU0VMTFNCTEVTAAAAAP4G
------=_NextPart_000_001A_01C001E2.1E05B0E0--
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


This feature must be used when Script Path is defined as variable. Ex: ${JenkinsFileParameters}
If checked, this plugin will search for this parameter name in the Pipeline Parameters.
If matched, selected value will be passes as Script Path to Workflow Job.
If not matched, Script Path will be passed as default value which is "Jenkinsfile"


HelpSendHelpNotification()
The Help Controller library provides a routine to bring up a help context, or to switch to a help context, at any time. This routine,
HelpSendHelpNotification()
, generates the proper notification event using the values you pass, then sends that notification to the help control object you've selected. This routine is detailed in the routines reference manual.
This routine becomes most useful when, for example, you want help on visible objects in a GenView or in a document. To call up a help viewer with a specific help file and context, you would have the visible object intercept both your special "help key" (e.g. the user clicks the middle mouse button) and
MSG_META_BRING_UP_HELP
, then call
HelpSendHelpNotification()
. In the handler for the input event, the object should
not
call the superclass. One example of this could be a special diagram of a floorplan, with each room a visible object; each "room" would bring up a different help context describing the characteristics of the room.


| Top |
WebKitFindControllerWebKitFindController — Controls text search in a WebKitWebView |
| guint | max-match-count | Read |
| WebKitFindOptions | options | Read |
| gchar * | text | Read |
| WebKitWebView * | web-view | Read / Write / Construct Only |
A WebKitFindController is used to search text in a WebKitWebView. You
can get a WebKitWebView's WebKitFindController with
webkit_web_view_get_find_controller()
, and later use it to search
for text using webkit_find_controller_search()
, or get the
number of matches using webkit_find_controller_count_matches()
. The
operations are asynchronous and trigger signals when ready, such as
“found-text”,
“failed-to-find-text” or
“counted-matches”.
void webkit_find_controller_search (WebKitFindController *find_controller
,const gchar *search_text
,guint32 find_options
,guint max_match_count
);
Looks for search_text
in the WebKitWebView associated with
find_controller
since the beginning of the document highlighting
up to max_match_count
matches. The outcome of the search will be
asynchronously provided by the “found-text”
and “failed-to-find-text” signals.
To look for the next or previous occurrences of the same text
with the same find options use webkit_find_controller_search_next()
and/or webkit_find_controller_search_previous()
. The
WebKitFindController will use the same text and options for the
following searches unless they are modified by another call to this
method.
Note that if the number of matches is higher than max_match_count
then “found-text” will report G_MAXUINT
matches
instead of the actual number.
Callers should call webkit_find_controller_search_finish()
to
finish the current search operation.
find_controller |
||
search_text |
the text to look for |
|
find_options |
a bitmask with the WebKitFindOptions used in the search |
|
max_match_count |
the maximum number of matches allowed in the search |
void
webkit_find_controller_search_finish (WebKitFindController *find_controller
);
Finishes a find operation started by
webkit_find_controller_search()
. It will basically unhighlight
every text match found.
This method will be typically called when the search UI is closed/hidden by the client application.
void
webkit_find_controller_search_next (WebKitFindController *find_controller
);
Looks for the next occurrence of the search text.
Calling this method before webkit_find_controller_search()
or
webkit_find_controller_count_matches()
is a programming error.
void
webkit_find_controller_search_previous
(WebKitFindController *find_controller
);
Looks for the previous occurrence of the search text.
Calling this method before webkit_find_controller_search()
or
webkit_find_controller_count_matches()
is a programming error.
const gchar *
webkit_find_controller_get_search_text
(WebKitFindController *find_controller
);
Gets the text that find_controller
is currently searching
for. This text is passed to either
webkit_find_controller_search()
or
webkit_find_controller_count_matches()
.
void webkit_find_controller_count_matches (WebKitFindController *find_controller
,const gchar *search_text
,guint32 find_options
,guint max_match_count
);
Counts the number of matches for search_text
found in the
WebKitWebView with the provided find_options
. The number of
matches will be provided by the
“counted-matches” signal.
find_controller |
||
search_text |
the text to look for |
|
find_options |
a bitmask with the WebKitFindOptions used in the search |
|
max_match_count |
the maximum number of matches allowed in the search |
guint32
webkit_find_controller_get_options (WebKitFindController *find_controller
);
Gets a bitmask containing the WebKitFindOptions associated with the current search.
guint
webkit_find_controller_get_max_match_count
(WebKitFindController *find_controller
);
Gets the maximum number of matches to report during a text
lookup. This number is passed as the last argument of
webkit_find_controller_search()
or
webkit_find_controller_count_matches()
.
WebKitWebView *
webkit_find_controller_get_web_view (WebKitFindController *find_controller
);
Gets the WebKitWebView this find controller is associated to. Do not dereference the returned instance as it belongs to the WebKitFindController.
Enum values used to specify search options.
“max-match-count”
property“max-match-count” guint
The maximum number of matches to report for a given search.
Flags: Read
Default value: 0
“options”
property“options” WebKitFindOptions
The options to be used in the search operation.
Flags: Read
“text”
property“text” gchar *
The current search text for this WebKitFindController.
Flags: Read
Default value: NULL
“web-view”
property“web-view” WebKitWebView *
The WebKitWebView this controller is associated to.
Flags: Read / Write / Construct Only
“counted-matches”
signalvoid user_function (WebKitFindController *find_controller, guint match_count, gpointer user_data)
This signal is emitted when the WebKitFindController has
counted the number of matches for a given text after a call
to webkit_find_controller_count_matches()
.
find_controller |
||
match_count |
the number of matches of the search text |
|
user_data |
user data set when the signal handler was connected. |
Flags: Run Last
“failed-to-find-text”
signalvoid user_function (WebKitFindController *find_controller, gpointer user_data)
This signal is emitted when a search operation does not find
any result for the given text. It will be issued if the text
is not found asynchronously after a call to
webkit_find_controller_search()
, webkit_find_controller_search_next()
or webkit_find_controller_search_previous()
.
Flags: Run Last
“found-text”
signalvoid user_function (WebKitFindController *find_controller, guint match_count, gpointer user_data)
This signal is emitted when a given text is found in the web
page text. It will be issued if the text is found
asynchronously after a call to webkit_find_controller_search()
,
webkit_find_controller_search_next()
or
webkit_find_controller_search_previous()
.
find_controller |
||
match_count |
the number of matches found of the search text |
|
user_data |
user data set when the signal handler was connected. |
Flags: Run Last


This is a fun project of avoiding the classic "Producer / Consumer" problem when multiple threads need to share the same resource.
"Producer / Consumer" problem means there’s a producer and a consumer sharing a fixed sized buffer. The job of the producer is to create data to put into the buffer. The job of the consumer is to remove data from the buffer. The problem is to ensure the producer does not put data into a full buffer and the consumer does not try to remove data from an empty buffer.
In this project, we create an orderly Starbucks with the implementation of interface Customer and Barista, which act as producer and consumer. Here we use Java Semaphore to avoid Customer implementation adds order into a full quene, or Barista removes order from an empty quene, as well as these actions don't happen at the same time.
By avoiding "Producer / Consumer" problem, our Starbucks can run forever. The source code can be viewed here.
Here is part fo the screen recording of the program running:
A Starbucks that Free of Producer / Consumer Problem
Creating an orderly Java "Starbucks" that works forever


Use class="grid-even" and class="grid-odd" for grid layouts. If you want to dynamically switch between them to keep rows balanced then use something like <class="grid-{{(items.length % 2 == 0 ? "even" : "odd")}}">.
class="grid-even"
class="grid-odd"
<class="grid-{{(items.length % 2 == 0 ? "even" : "odd")}}">


--- layout: layout ---
You can reach me by e-mail, LinkedIn, or Twitter.
You can also find me in PK-7615 at the Pavillon President Kennedy (UQAM) or in GE-S120 at the Genomics building (CSFG).


Portfo
lio
About Me
(current)
Skills
Education
Projects
Experience
Interests & Achievements
MY SKILL STACK
Languages
SQL
Python
C++
C
HTML
CSS
Frameworks and Tools
GIT VSC
MySQL
Data Structures
Django
Machine Learning
Bootstrap


Line
The line chart requires an array of labels for each of the data points. This is shown on the X axis. The data for line charts is broken up into an array of datasets. Each dataset has a colour for the fill, a colour for the line and colours for the points and strokes of the points. These colours are strings just like CSS. You can use RGBA, RGB, HEX or HSL notation.
Bar
The bar chart has the a very similar data structure to the line chart, and has an array of datasets, each with colours and an array of data. Again, colours are in CSS format. We have an array of labels too for display. In the example, we are showing the same data as the previous line chart example.
Radar
For a radar chart, to provide context of what each point means, we include an array of strings that show around each point in the chart. For the radar chart data, we have an array of datasets. Each of these is an object, with a fill colour, a stroke colour, a colour for the fill of each point, and a colour for the stroke of each point. We also have an array of data values.
Ploar Area
Polar area charts are similar to pie charts, but each segment has the same angle - the radius of the segment differs depending on the value.This type of chart is often useful when we want to show a comparison data similar to a pie chart, but also show a scale of values for context.
Pie
Pie charts are probably the most commonly used chart there are. They are divided into segments, the arc of each segment shows the proportional value of each piece of data.
Donut
Doughnut charts are probably the most commonly used chart there are. They are divided into segments, the arc of each segment shows the proportional value of each piece of data.


Home
About
Feedback
(current)
Name
Skill
Level
Beginner
Intermediate
Proficeint
Comment
Submit
Name
Skill
Intermediate
Comment


ogginfo(1) Vorbis Tools ogginfo(1) NAME ogginfo - gives information about Ogg files, and does extensive validity checking SYNOPSIS ogginfo [ -q ] [ -v ] [ -h ] file1.ogg ... fileN.ogg DESCRIPTION ogginfo reads one or more Ogg files and prints information about stream contents (including chained and/or multiplexed streams) to standard out‐ put. It will detect (but not correct) a wide range of common defects, with many additional checks specifically for Ogg Vorbis streams. For all stream types ogginfo will print the filename being processed, the stream serial numbers, and various common error conditions. For Vorbis streams, information including the version used for encoding, the sample rate and number of channels, the bitrate and playback length, and the contents of the comment header are printed. Similarly, for Theora streams, basic information about the video is pro‐ vided, including frame rate, aspect ratio, bitrate, length, and the com‐ ment header. OPTIONS -h Show a help and usage message. -q Quiet mode. This may be specified multiple times. Doing so once will remove the detailed informative messages, twice will remove warnings as well. -v Verbose mode. At the current time, this does not do anything. AUTHORS Michael Smith<EMAIL_ADDRESS>SEE ALSO vorbiscomment(1), ogg123(1), oggdec(1), oggenc(1) Xiph.Org Foundation July 10, 2002 ogginfo(1)


Full RFC 5545 doc: link
Recurrence Rule
The recurrence rule, if specified, is used in computing the recurrence set. The recurrence set is the complete set of recurrence instances for a calendar component. The recurrence set is generated by considering the initial "DTSTART" property along with the "RRULE"
Frequency
The Frequency rule part identifies the type of recurrence rule. This rule part MUST be specified in the recurrence rule. - Valid values include SECONDLY, to specify repeating events based on an interval of a second or more; - MINUTELY, to specify repeating events based on an interval of a minute or more; - HOURLY, to specify repeating events based on an interval of an hour or more; - DAILY, to specify repeating events based on an interval of a day or more; - WEEKLY, to specify repeating events based on an interval of a week or more; - MONTHLY, to specify repeating events based on an interval of a month or more; - YEARLY, to specify repeating events based on an interval of a year or more.
Interval
The INTERVAL rule part contains a positive integer representing at which intervals the recurrence rule repeats. The default value is "1", meaning every second for a SECONDLY rule, every minute for a MINUTELY rule, every hour for an HOURLY rule, every day for a DAILY rule, every week for a WEEKLY rule, every month for a MONTHLY rule, and every year for a YEARLY rule. For example, within a DAILY rule, a value of "8" means every eight days.
Count
The COUNT rule part defines the number of occurrences at which to range-bound the recurrence. The "DTSTART" property value always counts as the first occurrence.
By second (BYSECOND)
The BYSECOND rule part specifies a COMMA-separated list of seconds within a minute. Valid values are 0 to 60.
By minute (BYMINUTE)
The BYMINUTE rule part specifies a COMMA-separated list of minutes within an hour. Valid values are 0 to 59.
By hour (BYHOUR)
The BYHOUR rule part specifies a COMMA- separated list of hours of the day. Valid values are 0 to 23.
By day (BYDAY)
The BYDAY rule part specifies a COMMA-separated list of days of the week; - SU indicates Sunday; - MO indicates Monday; - TU indicates Tuesday; - WE indicates Wednesday; - TH indicates Thursday; - FR indicates Friday; - SA indicates Saturday.
Week start (WKST)
The WKST rule part specifies the day on which the workweek starts. Valid values are MO, TU, WE, TH, FR, SA, and SU. This is significant when a WEEKLY "RRULE" has an interval greater than 1, and a BYDAY rule part is specified. This is also significant when in a YEARLY "RRULE" when a BYWEEKNO rule part is specified. The default value is MO.
By month day (BYMONTHDAY)
The BYMONTHDAY rule part specifies a COMMA-separated list of days of the month. Valid values are 1 to 31 or -31 to -1. For example, -10 represents the tenth to the last day of the month. The BYMONTHDAY rule part MUST NOT be specified when the FREQ rule part is set to WEEKLY.
By year day (BYYEARDAY)
The BYYEARDAY rule part specifies a COMMA-separated list of days of the year. Valid values are 1 to 366 or -366 to -1. For example, -1 represents the last day of the year (December 31st) and -306 represents the 306th to the last day of the year (March 1st). The BYYEARDAY rule part MUST NOT be specified when the FREQ rule part is set to DAILY, WEEKLY, or MONTHLY.
By week number (BYWEEKNO)
The BYWEEKNO rule part specifies a COMMA-separated list of ordinals specifying weeks of the year. Valid values are 1 to 53 or -53 to -1. This corresponds to weeks according to week numbering as defined in [ISO.8601.2004]. A week is defined as a seven day period, starting on the day of the week defined to be the week start (see WKST). Week number one of the calendar year is the first week that contains at least four (4) days in that calendar year. This rule part MUST NOT be used when the FREQ rule part is set to anything other than YEARLY. For example, 3 represents the third week of the year. Note: Assuming a Monday week start, week 53 can only occur when Thursday is January 1 or if it is a leap year and Wednesday is January 1.
By month (BYMONTH)
The BYMONTH rule part specifies a COMMA-separated list of months of the year. Valid values are 1 to 12.
By set position (BYSETPOS)
The BYSETPOS rule part specifies a COMMA-separated list of values that corresponds to the nth occurrence within the set of recurrence instances specified by the rule. BYSETPOS operates on a set of recurrence instances in one interval of the recurrence rule. For example, in a WEEKLY rule, the interval would be one week A set of recurrence instances starts at the beginning of the interval defined by the FREQ rule part. Valid values are 1 to 366 or -366 to -1. It MUST only be used in conjunction with another BYxxx rule part.
Until
The UNTIL rule part defines a DATE or DATE-TIME value that bounds the recurrence rule in an inclusive manner. If the value specified by UNTIL is synchronized with the specified recurrence, this DATE or DATE-TIME becomes the last instance of the recurrence.


This tutorial shows how to set up Node.js applications as daemon services under Linux. Specifically the following would apply:
Even though this tutorial uses a web app as the service daemon, then the same approach can be used for deploying any kind of services.
The application code is simple, it consists only from two files, the application script and package.json. It’s a Node.js app that serves web requests at port 3000. For demo purposes the app uses npmlog as a dependency that is only needed to demonstrate deploying dependencies.
// index.js
const http = require('http');
const log = require('npmlog')
const hostname = '<IP_ADDRESS>';
const port = 3000;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello World\n');
log.http('App', req.url);
});
server.listen(port, hostname, () => {
log.info('App', `Server running at http://${hostname}:${port}/`);
});
{
"name": "demo-app",
"private": true,
"version": "1.0.0",
"main": "index.js",
"dependencies": {
"npmlog": "^4.1.2"
},
"license": "ISC"
}
Assuming we have these two files in a directory, let’s set up git repository
$ git init
Initialized empty Git repository in ~/demo-app/.git/
$ git add .
$ git commit -m Initial
[master (root-commit) 057e7f3] initial
2 files changed, 27 insertions(+)
create mode 100644 index.js
create mode 100644 package.json
For now we do not set up remote repository, let’s leave this for later.


cypress e2e solution
- alternative to phantomJs, Karma, Selenium, …
- in private beta (still in 2017)
- not already opensource but coming
- it’s done :-)
features and objectives
- fast (running as fast as unit testing)
- reliable (no inconsistent errors like in Selenium) (inconsistents errors examples in Fixing the flake on CI : http://samsaccone.com)
- rewindable (you can see what the test was doing step by step)
trade offs
environment and browser support
Proposal: Support for Cross Browser Testing
we only support Chrome variants such as
Chrome
,Chromium
, andCanary
.
We will be adding cross browser support likely by EOY. (20171017) Firefox, Safari then Edge.
native browsers events support
Support for Native Browser Events
From there we’ll add new commands for file uploads, etc.
installing with npm behind a proxy
- npm install not working behind corporate firewall
- Document CYPRESS_BINARY_VERSION environment variable
comparison Cypress vs TestCafe
Evaluating Cypress and TestCafe for end to end testing - medium.com/yld-engineering-blog - 20180329
Compare to Cypress.io - testcafe-discuss.devexpress.com - 20171010
with post by TestCafe dev
usage and recommandations
Cypress slows down drastically over long runs - restart renderer between spec files?
You cannot run all of your tests. The GUI is a mode built specifically to run one or a small number of tests at a time.
you can tell Cypress to cleanup snapshots by setting the
{ numTestsKeptInMemory: 0 }
incypress.json
. This will purge snapshots aggressively but then you will lose the ability to debug any of your tests.
If you want to run all your tests you need to do it from the command line using
cypress run
. In that mode it makes specific performance optimizations (like not taking snapshots) because it knows you’re not iterating on a test or working with the results.
Tests slows down to a crawl and eventually times out/crashes
The reason Cypress is crashing and chrome headless isn’t is because of the additional features Cypress provides that no other testing tool does. In this case it’s the time travel functionality.
Cypress has two basic modes of operation: GUI mode & CLI mode
GUI mode is optimized for debugging and CLI mode is optimized for running.
The reason Cypress is slowing down and crashing is because in GUI mode it takes snapshots for very single command.
window
anddocument
are being preserved in memory for every single page transition. This is where it chews up memory and you’ll experience those slow downs and crashes.
My test passes cypress open
but fails with cypress run
One is running in Chrome, the other is running in Chromium (Electron). There are differences in these browsers.
doc off best practices - selectors (need cypress 2.1+)
Use
data-*
attributes to provide context to your selectors and insulate them from CSS or JS changes.
login
Best Practices - Visiting External Sites
Web Security - External Navigation
Web Security - Form Submission Redirects
Cypress.io Keycloak Integration : 20171028
how a test works
selenium
Between each action we wait a defined amount of time to be sure the browsers have rendered the DOM needed for the test.
cypress
Cypress runs inside the browser.
The test suite execute the script and queue all the commands. Then cypress run everything in the same order. Cypress execute the first command and retry until success or fail (defined timeout). This modus operandi is way faster then selenium.
Each command takes a snapshot of the current DOM.
Numerous commands contains their own embedded assertions.
See core concepts documentation > Chains of Commands > Commands Are Asynchronous.
articles
Web testing nirvana with Cypress
Control an AngularJS Application From E2E Tests : 20171115
slides
Testing Vue Apps with Cypress.io (STLJS Meetup April 2018) - Christian Catalan - 20180419
awesome context, excellent slides
Automated Testing for the Modern Web - Jennifer Jeshane - 20180509
good e2e history prez
videos
Brian Mann, Testing the way it should be : ReactiveConf 2016
Brian Mann creator of
cypress.io
cypress is a testing tool running entirely in javascript
Why another testing tool ?
Sharing is own experience in the first part :
- 9 years developping webapp including 5 with testing
- testing is too hard
- tools are too old (selenium is born in 2004, cf Selenium history)
- needs a dedicated Q/A team to works well
- Brian talks to a lot of developpers to know what they need in remplacement of actual tools
What developpers needs ?
3 recurring things developpers finds challenging :
- Setup (sane config, less hassle to set up, etc …)
- Writing (Simpler to write, testing responsive, see visually what broke, async, etc …)
- Management (clear and direct way to understand WHY a test have failed)
Selenium (or webdriver) is the core tool. Embedded in Protractor, Nightwatch, …
At that time, all the webapp were simple and staless (full page refresh at each user action). Javascript was not to
build webapp but to decorate existing webapp. Most of the code was synchronous. Nowadays, there is SPA, stateful,
no page refresh and everything is asynchronous.Selenium original flaw is : it is a stateless http API. It is impossible to test effectively a stateful app with
a stateless API. Selenium cannot know and show a particular state at a particular moment.This forces dev to build tests (e2e) after everything is built (impossible to TDD)
How cypress solves the problem ?
Part 1: Setup
npm install -g cypress-cli && npm install cypress cypress open
You are done. You can write your first test.
Part 2: Writing
Working on reporting, when a assertion pass, and when it fail. Lot’s of information for the developer.
Snapshoting : Every command ran by cypress takes a snapshot of the DOM. You can open your dev tools and check
the logs pushed by cypress with the state of the app.Events : They are captured during execution an logged into the console.
Frameworks : Cypress is built on top of Mocha, Chai and Sinon.
Async : Mostly hidden, each command return promise under the hood.
Hooks :
onBeforeLoad
hook forcy.visit
command allows developer to : open the browser debugger, alter the global
state of the app (for example by injecting user info or tokens).
You can stub server responses (very nice to tests error messages and related ui behavior)Part 3: Management
CI related. When a test suite will be ran in a CI provider (TravisCI for ex), output will be sent to cypress,
then cypress will sent it back to cypress desktop app.Can output logs, screenshots, even video of the suite
Ability to remote connect to the CI to see and manage the suite run.
Goals for cypress
- Open Source
- Champions
- Documentation
- Happiness
Roadmap
They are only 5. They have raised some money. Not all repo are opensource now.
Questions
Not supporting IE right now, it will. (Brian thinks crossbrowser testing is going down because there is less and less
difference between browsers).
Jack Franklin, Testing React Applications : React Amsterdam 2016


set geotiff <-flt | -dbl> fnameroot
Sets the filename root and other characteristics for GeoTIFF output.
fnameroot
Output filename root -- GrADS will append ".tif" to the end gradsgeo.tif
)-flt
Data will be written to file using floating-point precision (default)-dbl
Data will be written to file using double precision
This command is available in GrADS v2.0.a5 or later.
This command is used in conjunction with the set gxout geotiff
command which sets the graphics output type; the display
command will then create the output file instead of drawing a plot. The output data file will be in GeoTIFF format, which is a georeferenced raster image. The GeoTIFF output is a grid of data values, similar to the 'grfill' graphics output type, except the pixels (grid elements) in the image can be tied to a geographic location.
The file fnameroot.tif
will be replaced if it exists.
If the -flt
or -dbl
options are not given, the output will be written using floating-point precision. No compression algorithm is used when creating the GeoTIFF file.
set geotiff my_name
set gxout geotiff
d my_var
Note: The GrADS expression my_var
must be a 2-dimensional grid that varies in X and Y (longitude and latitude).


You wip out your library card and hand it to the obvious librarian. They dont take it out your hand, you aren't even sure that they looked at it. They just say, oh so sorry sir, that card will not work here. You need The Library Card to check out books here at The Library.


.
Let us enjoy some fun facts about cartoon characters.
Click on the words that should begin with Capital Letters. Click in the circles and then click on Full Stop from the help box, to complete the punctuation of the sentences.
1)
minnie mouse’s full name is minerva mouse
2)
tweety is a young canary bird
.
3)
donald is the uncle of the triplets huey, dewey and louie
.
4)
hello kitty was created by sanrio of japan
.
5)
winnie the pooh was once referred to as edward bear
.
6)
garfield is a tabby cat
.
7)
snoopy is a pet beagle of charlie brown
.
8)
daisy duck and minnie mouse are close friends
.
!
?
,
.


Quiz 4: Study Guide
Quizzes are open book. 30 minutes at the start of class
Topics:
-
Transformations
-
Skeletons
-
Motions
Unless explicitly asked to compute a final answer, it is sufficient to write out the formula and plug-in values.
Practice questions
1) For the following questions, suppose frame 1 is rotations 30 degrees around the Z axis and translated (1,4,6) units with respect to the world coordinate system.
-
Draw frame 0 and frame 1.
-
What is the 4x4 homogeous transformation matrix? What is the 2x2 block matrix corresponding to this transformation?
-
What is the coordinate of frame 1’s origin with respect to frame 0?
-
What is the coordinate of (1,0,0) in frame 1 with respect to frame 0?
-
What is the coordinate of frame 0’s origin with respect to frame 1?
2) Suppose we have a three link kinematic chain. Joint 1 is located at point p1 = (-1,-1,0) and rotated 30 degrees around the global Z axis. Joint 2 is positioned relative to joint1 at location p2 = (1, -1, 0) and rotated 45 degrees in Z. Joint 3 is positioned relative to joint 2 at location p3 = (-1, -1, 0) and rotated 10 degrees around Z.
-
Draw the kinematic chain described above.
-
What is the global position of joint 3?
-
What is the global position of joint 2?
-
What is the global position of joint 1?
-
What is the position of joint 2 relative to joint 3?
-
Write pseudocode to compute the local2global transforms for each joint in the chain. Assume each joint stores its local2parent transform as well as pointers to its parent and children joints. Assume that the root joint’s parent is NULL.
3) Suppose an object is rotated 50 degrees around Z, what is the 3x3 rotation matrix corresponding to the object’s orientation? Draw the frame corresponding to the object and the frame corresponding to the world coordinate system. If a point as position p = (1,1,0) in frame 1, what is its coordinate in frame 0? Draw the point p.
4) Each joint has its own local reference frame. What is the position of a joint with respect to its own reference frame?
5) Recall that we can combine a sequence of transformations into a single transformation by multiplying them together. For example, consider the following sequence of transformations
Each \(H_i^j\) transforms from each joint to its parent (e.g. local2parent transform). What transformation do we get if we multiply these matrices together?
6) If we multiply the position of the right foot (in local coordinates) by the matrix from the previous question, what do we get?
7) How can we define a motion for a character?
8) What are two methods for storing motions in terms of poses?
9) What is a keyframe? What is a pose? How do poses and keyframes relate to skeletons?
10) Suppose we have a 2s motion captured at 120 fps. How many frames does it have?
11) Suppose we have a 12 frames recorded for a motion at 24 fps. How long is the motion?
12) Suppose we had a snake character with 5 joints. Define a skeleton for this character. What might a pose for this character look like if we did not allow the joints to change length?
13) What is the difference between local and global coordinates? If we have a local position for a joint, how can we convert it to global coordinates and vice versa? How about a local direction vector?
14) Suppose we have a looping motion which snaps back to the start position when it replays. Why does this happen and how can we fix it?
15) Suppose we wish to edit a motion so that the character starts at the origin and moves in the direction of positive Z. Write pseudocode to accomplish this.
16) Suppose we have two motions, a sad walk and a happy walk, which we’d like to blend together. What are factors that would effect the quality of blend?
17) Suppose we compute a blended motion M = M1 * (1-alpha) + M2 * alpha. Will this blend always look good? Why or why not?
18) How does crossfade blending work?
19) Suppose we wish to change the rotation of spine for a motion so it lurches forward. Write pseudocode for doing this.


Spain faces more uncertainty after inconclusive election
MADRID (AP) - Spain’s looks to set to face months more political uncertainty after the country’s fourth elections in as many years further complicated an already messy political situation, giving no party a clear mandate to govern while the far right became a major parliamentary player for the first time in decades.
Incumbent Prime Minister Pedro Sánchez’s Socialists won the most seats - 120 - but fell far short of a majority and will need to make deals on several fronts if they are to govern.
Sánchez called Sunday’s election after he failed to gain enough support to form a government following the previous election in April.
In his victory speech, he promised again to “obtain a progressive government.” His plans to do that may emerge when he meets his party*s executive Monday.
Sign up for Daily Newsletters
Copyright © 2019 The Washington Times, LLC.
Please read our comment policy before commenting.


Chapter 2 Understand the context
2.1 Exercise 1.1: get to know your audience
This exercise presents a specific HR based scenario where you are a data analyst and asks for three ways you could get to know your audience (a new head of HR) better.
I would try the following:
Speaking to colleagues who have already met the new head of HR.
Reading any publicly available reports, blogs etc. the new head of HR has written.
Scheduling a meeting with the new head of HR.
I would focus on trying to address the following questions:
What does the new head of HR perceive to be the major challenges facing the organization?
What are the professional interests of the new head of HR and what is their background? Has their career taken them from specialist in a specific area to a more generalist role?
Why has this specific person been hired for the role of head of HR? Why now? What are the organizational drivers for needing some one with their specific skill-set, vision and approach.
2.2 Exercise 1.2: narrow your audience
This exercise presents another scenario, this time you work as an analyst for a national retailer. This time focus on understanding the audience for findings of a survey of shoppers who have bought ‘back-to-school’ products.
Question 1: Potential audiences who could be interested in the survey data include:
Within the organisation:
Various head office departments/functions (marketing, finance, purchasing …).
People working within retail stores.
Beyond the organisation:
Audiences similar to those identified above (within the organisation) but at competitors.
Trade journals/press.
Policy-makers in areas that intersect with schools (education, transport, sport …).
Teachers and other educational providers.
Question 2: Potential audiences who would care about the findings of the survey results:
Core strategic functions within the organisation - strategy, marketing and finance.
Management teams within the organisation’s stores
Core strategic functions within competitor organisation - strategy, marketing and finance.
Question 3: Potential audiences for the finding that sales associates are the main drivers of customer dissatisfaction.
The head office Finance and HR functions.
Store managers.


|
Unsatisfactory
|
Unsatisfactory
|
1R
|
|
Negative
|
Negative
|
2A
|
|
Borderline Glandular Changes
|
Borderline change in endocervical cells
|
8R (months)
|
|
Mild Dyskaryosis
|
Low grade dyskaryosis
|
3R (months) - Early Repeat 3S - Referra
|
|
Moderate Dyskaryosis
|
High grade dyskaryosis (moderate)
|
7S
|
|
Severe Dyskaryosis
|
High grade dyskaryosis (severe)
|
4S
|
|
Severe Dyskaryosis/? Invasive
|
High grade dyskaryosis ? invasive
|
5S
|
|
Glandular Abnormality
|
Glandular Abnormality
|
6S
|
|
Endocervical Adenocarcinoma
|
Endocervical Adenocarcinoma
|
9S
|
|
Endometrial or other cancer
|
Endometrial or other malignancy
|
0A
|


 New brands can be easily disappeared and their messages lost in the sea of similar pitches, value propositions, and advertisements. Trying to stay on top in the digital world, you need an intelligent strategy, excellent technical skills, and a determined and devoted team…
 New brands can be easily disappeared and their messages lost in the sea of similar pitches, value propositions, and advertisements. Trying to stay on top in the digital world, you need an intelligent strategy, excellent technical skills, and a determined and devoted team…
PPC is an integral part of digital marketing,therefore we utilise all major platforms for PPC Campaigns – Google, Youtube, Facebook, etc. We are here to create the best solution that will reach your target audience in the most efficient way. Our strategy will deliver ROI of up to 700%
Social media has become an inseparable part of our everyday lives. It also impacted the way we do businesses. The key to succeed is integration and consistency across the web. Our main goal is to not only increase engagement, but also to turn this engagement into conversions.
Creating a website is not only about beautiful design – it is about user’s experience.  We are here to design and optimise your website that attracts quality customers and results in successful conversions.
Website can’t be utilised at its fullest without proper analytics. We track website visitors, identify and address bottlenecks in customer journey through Google analytics.


--- layout: default_en lang: en title: The Team description: The team of illimites foundation, the founders, the researchers, the leaders keywords: team, researchers, scientists, leaders, founders, illimites, foundation ---
Psychologist, Philosopher
Received his Ph.D. in psychology from Wrocław University. Works in the University of Lower Silesia. In the foundation he is conducting research, leading the analog-digital team and animating the community. He is passionate about psychology of aesthetics and art, especially architecture and also the psycho-sociological processes on the analog-digital frontier.
Historian
Graduate of doctorate studies in history and master studies in culture studies at the Wrocław University. He is passionate about economy, the history of economy and especially about the inter-war european economists. He is also a Cracow city guide. He manages projects in the Ludwig von Mises Institute in theK ieruje projektami w Instytucie Misesa. In the foundation, he is working on the social network of Second Polish Republic elites research.
Architect
Ph.D student at the Wrocław University of Technology. She is passionate about architecture and researches the spaces of school buildings in Poland especially in terms of the education system reform. She is a scholar of the lower silesian Grant Plus scholarship. In the foundation she is engaged in analog-digital frontier research.
Product designer, Entrepreneur
Ph.D. student and lecturer assistant at Academy of Fine Arts and Design in Wroclaw. Founder and Chief Designer at Studio Lenart She is passionate especially about office furniture design. She believes that good design is when form follows function to give ergonomical, simple product fully understandable to user. In the foundation she is engaged in analog-digital frontier research.
Historian, Entrepreneur
Received her Ph.D. in history from Wrocław University. She is passionate about history of technology and local communities. She is running her own publishing company Bibliotheca Silesiana. She was honoured by Wrocław Centre “Memory and Past” as the laureate of the III edition of young scientist competition. In the foundation, she is leading the research on the social network of Second Polish Republic elites.
Founder, President of the Board
Finishes his computer science Ph.D. at Wrocław University of Technology. Pursued a mathematics Ph.D. Graduated in CS after an individual study programme at Wrocław University of Technology. Studied at the Stanford University and the Hasso-Plattner Institute in Potsdam. Passionate about psychology, sociology, urban studies and design thinking. Leads us into the future, writes grants, spreads passion everywhere. He is also engaged in the research on social network of Second Polish Republic elites & analog-digital frontier.
Founder, Deputy President of the Board
Graduate of Biotechnology on University of Wroclaw. She worked in research instittutes in Copenhagen and Paris. Currently, the Research and Development Centre Manager in Regional Specialist Hospital in Wroclaw. In the illimites foundation, she analyses projects, keeps an eye on deadlines and ties up loose ends.
Founder, Deputy President of the Board
Graduate of biomathematics on University of Wroclaw. He specializes in the application of stochastics and statistics, especially in live science. He works in interdisciplinary project WroVasc, in which he is performing data analysis for medical research. As the oldest he brings wisdom and stability to the young team. He is also engaged in the research on the analog-digital frontier.
Founder, President of the Chapter
Graduate of the Faculty of Fundamental Problems of Technology at Wroclaw University of Technology. He works in Spatial Management Department with prof. Tadeusz Zipser.
Founder
Founder
Founder
Founder
Founder
Founder
Founder
Founder
Founder


Menu icons
Online Material Withdrawal System by Philsaga Mining Corporation
Contractors (Engg) |
- |
This is one of the data maintenance that needs to be setup in order to perform a transaction. This is where to define a contractor details to be able for the contractor's data to be available from the contractor listing and be able to choose specific contractor when doing a transaction. This is being done by Engineering Department. Notice the Enng label which indicates which department can perform the task. |
|
Locations (Enng) |
- |
This is one of the data maintenance that needs to be setup in order to perform a transaction. This is where to define a location and its details to be able for the data to be available when doing a transaction.This is being done by Engineering Department. Notice the Enng label which indicates which department can perform the task. |
|
Receivers (MCD) |
- |
This is one of the data maintenance that needs to be setup in order to perform a transaction. This is where to define a receiver and its details to be able for the data to be available when doing a transaction.This is being done by Material Control Department. Notice the MCD label which indicates which department can perform the task. |
|
Approvers (MCD) |
- |
This is one of the data maintenance that needs to be setup in order to perform a transaction. This is where to define an approver and its details to be able for the data to be available when doing a transaction.This is being done by Material Control Department. Notice the MCD label which indicates which department can perform the task. |
|
Cost Codes (MCD) |
- |
This is one of the data maintenance that needs to be setup in order to perform a transaction. This is where to define a cost codes and its details to be able for the data to be available when doing a transaction.This is being done by Material Control Department. Notice the MCD label which indicates which department can perform the task. |
|
(MCD) |
- |
This is one of the data maintenance that needs to be setup in order to avoid changes of data on transactions. This is where to define a cutoff and its details to be able for the data to be available when doing report generation preserving data consistency and integrity since defining a cutoff will disallow doing further transactions.This is to control and avoid changes on reports. This way once a date is defined to be part of cutoff no more transactions can be made onto the said date ranges. Thus, only open date can be use for transactions which is the date after the defined cutoff. This is being done by Material Control Department. Notice the MCD label which indicates which department can perform the task. |
|
Items (MCD) |
- |
This is one of the data maintenance that needs to be setup in order to perform a transaction. This is where to define an item and its details to be able for the data to be available when doing a transaction.This is being done by Material Control Department. Notice the MCD label which indicates which department can perform the task. |
Issuance Transactions (MCD) |
- |
This is where the list of issuances can be viewed. Notice the MCD label which indicates which department can perform the task. There are other icons and task which can be perform on this window. Please see issuance transaction listing for more details. |
|
Add New Issuance (MCD) |
- |
This is where the actual transaction is taking place. All saved details will be available for viewing and can be seen on Issuance Transactions button when you click Issuance Transactions icon menu. Notice the MCD label which indicates which department can perform the task. |
|
Batch Posting (MCD) |
- |
This is where to tagged all transactions as posted where a particulat transaction can no longer be edited or changed. |
|
Logout (User) |
- |
Clicking this icon menu will let the user to logout from the system so that unathorized transactions will not be made. |
Contractor History (Engg) |
- |
This is for report generation of contractors history list. Notice the Engg label which indicates which department can perform the task. |
|
Location History (Engg) |
- |
This is for report generation of location history list. Notice the Engg label which indicates which department can perform the task. |
|
Issuance Report (MCD) |
- |
This is for report generation of all issuances made and its history list. Notice the MCD label which indicates which department can perform the task. |
|
Item Issuance Summary (MCD) |
- |
This is for report generation of all items issued to contractors. Notice the MCD label which indicates which department can perform the task. |
|
Unposted Transactions (MCD) |
- |
This is for report generation of unposted transactions. Notice the MCD label which indicates which department can perform the task. |
Created with the Personal Edition of HelpNDoc: Free Qt Help documentation generator


Karim Hasbini
Christine Rogers
Cécile Madjar
Laetitia Fesselier
The goal of this project is to provide BIDS-iEEG compatibility for LORIS as well as visualization for EEG and iEEG recordings for the electrophysiology module by using an already existing React library.
I was introduced to the team behind LORIS in may as well as install it on a virtual machine hosted at the McGill Center for Integrative Neuroscience in order to familiarize myself with the code base. Due to the pandemic at the time, I could not meet the team in person. Nevertheless, attending several meetings allowed me to take on issues from the backlog.
In June I worked on several issues spanning different LORIS modules (with a focus on the electrophysiology browser) in order to further develop my understanding of the software stack used. LORIS was going through a release testing phase which I participated in by providing feedback on the results of the testing plans. I was also fortunate enough to attend the OHBM virtual brainhack conference where I got to listen to a talk about BIDS.
July was marked by switching my attention to LORIS-MRI, a sister repo to LORIS used to upload EEG and MRI files in BIDS format to its database. I focused on reading the code as well as documentation on EEG and iEEG-BIDS. This allowed me to implement changes required to adapt the upload pipeline to support iEEG-BIDS directories. By the end of July iEEG data was successfully uploaded and a pull request was opened.
In August, my pull request was reviewed and merged, adding initial support for iEEG-BIDS to LORIS-MRI. A plan was drafted offering two strategies to add support to electrical stimulation files. The rest of my focus was on connecting an already written visualization library dating back to 2018 to LORIS in order to visualize EEG and iEEG signals. Thanks to Laetitia, we were able to install the library on a recent version of LORIS, however many errors were still present which prevented visualization. Some of the errors were resolved while some remain present. To continue progress, code using the react-three library should be refactored to instead take advantage of react-three-fiber.
On Tuesday 4th of August I gave a brief presentation about my progress to the rest of the LORIS team, including some of the libraries and approaches used to solve the problems that I faced and the challenge left to solve for August.
Despite the conditions of pandemic, I was able to learn a lot. Being exposed to experienced developers and working alongside them to merge code allowed me to find areas needing work in my coding and documentation skills, all while contributing to an open source project under a learning environment. I would like to wish everyone at the LORIS team continued success in their endeavour towards a more open world of scientific research.