All Files
(76.17%
covered at
14.63
hits/line)
23 files in total.
512 relevant lines.
390 lines covered and
122 lines missed
Controllers
(93.9%
covered at
11.39
hits/line)
8 files in total.
295 relevant lines.
277 lines covered and
18 lines missed
Models
(90.68%
covered at
34.95
hits/line)
6 files in total.
118 relevant lines.
107 lines covered and
11 lines missed
Mailers
(0.0%
covered at
0.0
hits/line)
3 files in total.
93 relevant lines.
0 lines covered and
93 lines missed
Helpers
(100.0%
covered at
1.0
hits/line)
6 files in total.
6 relevant lines.
6 lines covered and
0 lines missed
Jobs
(100.0%
covered at
0.0
hits/line)
0 files in total.
0.0 relevant lines.
0.0 lines covered and
0.0 lines missed
| File |
% covered |
Lines |
Relevant Lines |
Lines covered |
Lines missed |
Avg. Hits / Line |
Libraries
(100.0%
covered at
0.0
hits/line)
0 files in total.
0.0 relevant lines.
0.0 lines covered and
0.0 lines missed
| File |
% covered |
Lines |
Relevant Lines |
Lines covered |
Lines missed |
Avg. Hits / Line |
-
1
class AdminsController < ApplicationController
-
-
1
skip_before_filter :authenticate, :only => ['new', 'create']
-
1
before_filter :validate_admin, :set_admin, :except => ['new', 'create']
-
-
1
def new
-
4
@admin = Admin.new
-
4
render 'new'
-
end
-
-
1
def create
-
3
@admin = Admin.new(admin_params)
-
3
@admin.superadmin = false
-
3
if session[:is_admin] == true and @admin.save
-
#AdminMailer.invite_new_admin(@admin).deliver_now
-
1
redirect_to admins_path, :notice => "You created admin " + admin_params["name"] + " successfully!"
-
else
-
2
render 'new', :notice => "Form is invalid"
-
end
-
end
-
-
1
def update
-
1
@admin.update_attributes!(admin_params)
-
1
return redirect_to admins_path
-
end
-
-
1
def index
-
55
status = params[:status]
-
55
@status = status
-
55
@teams_li = Team.filter_by(status)
-
55
render 'index'
-
end
-
-
1
def approve
-
1
@team = Team.find_by_id(params[:team_id])
-
1
@team.approved = true
-
1
@team.save!
-
-
#AdminMailer.send_approved_email(@team).deliver_now
-
-
1
if !(params[:disc].nil?)
-
1
Team.find_by_id(params[:team_id]).approve_with_discussion(params[:disc])
-
end
-
1
redirect_to admins_path
-
end
-
-
1
def disapprove
-
1
@team = Team.find_by_id(params[:team_id])
-
1
@team.approved = false
-
1
@team.save!
-
-
#AdminMailer.send_disapproved_email(@team).deliver_now
-
-
1
Team.find_by_id(params[:team_id]).disapprove
-
1
redirect_to admins_path
-
end
-
-
1
def undo_approve
-
@team = Team.find_by_id(params[:team_id])
-
@team.approved = false
-
@team.save!
-
-
#AdminMailer.send_disapproved_email(@team).deliver_now
-
-
Team.find_by_id(params[:team_id]).withdraw_approval
-
redirect_to admins_path
-
end
-
-
1
def team_list_email
-
#AdminMailer.team_list_email(@admin).deliver_now
-
-
1
redirect_to admins_path
-
end
-
-
1
def superadmin
-
4
render "super"
-
end
-
-
1
def reset_semester
-
1
render "reset"
-
end
-
-
1
def reset_database
-
1
@reset_password = params[:reset_password]
-
1
if @reset_password == ENV["ADMIN_DELETE_DATA_PASSWORD"]
-
#AdminMailer.all_data(@admin).deliver_now if not Rails.env.test?
-
1
User.delete_all
-
1
Team.delete_all
-
1
Submission.delete_all
-
1
Discussion.delete_all
-
1
redirect_to "/", :notice => "All data reset. Good luck with the new semester!"
-
else
-
redirect_to reset_semester_path, :notice => "Incorrect password"
-
end
-
end
-
-
1
def transfer
-
1
if @admin.superadmin == true and params[:transfer_admin] != nil
-
1
other_admin = Admin.find(params[:transfer_admin])
-
1
@admin.superadmin = false
-
1
other_admin.superadmin = true
-
1
@admin.save!
-
1
other_admin.save!
-
1
notice = "Successfully transferred superadmin powers."
-
elsif @admin.superadmin == true and params[:transfer_admin] === nil
-
notice = "No admin selected for transfer."
-
else
-
notice = "You don't have permission to do that."
-
end
-
1
redirect_to superadmin_path, :notice => notice
-
end
-
-
1
def delete
-
1
if @admin.superadmin == true
-
1
c = 0
-
1
for a in Admin.all
-
10
if params.has_key? "delete_#{a.name}"
-
1
a.destroy!
-
1
c += 1
-
end
-
end
-
-
1
if c == 1
-
1
notice = "#{c} admin successfully deleted."
-
else
-
notice = "#{c} admins successfully deleted."
-
end
-
else
-
notice = "You do not have sufficient permissions to do that."
-
end
-
1
redirect_to superadmin_path, :notice => notice
-
end
-
-
1
def destroy
-
2
if @admin.superadmin == false
-
1
@admin.destroy!
-
1
notice = "You have successfully deleted your admin account."
-
else
-
1
notice = "Please give someone else superadmin powers before deleting yourself."
-
end
-
2
redirect_to '/', :notice => notice
-
end
-
-
1
private
-
-
1
def validate_admin
-
80
if !(session[:is_admin])
-
2
redirect_to '/', :notice => "Permission denied"
-
end
-
end
-
-
1
def set_admin
-
78
@admin = Admin.find_by_id session[:user_id]
-
end
-
-
1
def admin_params
-
5
params.require(:admin).permit(:name, :email)
-
end
-
-
1
def admin_tutorial
-
render 'admin_tutorial'
-
end
-
-
end
-
1
class ApplicationController < ActionController::Base
-
# Prevent CSRF attacks by raising an exception.
-
# For APIs, you may want to use :null_session instead.
-
1
protect_from_forgery with: :exception
-
-
1
before_filter :authenticate, :check_existence
-
-
1
private
-
-
1
def authenticate
-
218
redirect_to login_path, :notice => "Please log in" if session[:user_id].nil?
-
end
-
-
1
def check_existence
-
226
id = session[:user_id]
-
226
is_admin = session[:is_admin]
-
226
redirect_to logout_path if !!(id) and ((!(is_admin) and User.find_by_id(id).nil?) or (is_admin and Admin.find_by_id(id).nil?))
-
end
-
-
-
end
-
1
class DiscussionController < ApplicationController
-
-
1
def create
-
3
innerparams = params[:discussion]
-
3
@disc = Discussion.new({:number => innerparams[:number].to_i, :day => innerparams[:day], :time=>innerparams[:time],
-
:capacity => innerparams[:capacity].to_i})
-
-
3
if @disc.save
-
1
return redirect_to discussion_index_path
-
else
-
2
render '/discussion/add.html.erb'
-
end
-
end
-
-
1
def index
-
4
@discussions = Discussion.all
-
end
-
-
-
1
def new
-
3
@disc = Discussion.new()
-
-
# discussion_params
-
# if @disc.save
-
# redirect_to upload_discussion_info_path, :notice => "You signed up successfully!"
-
# else
-
# render upload_discussion_info_path, :notice => "Form is invalid"
-
# end
-
-
3
render "/discussion/add.html.erb"
-
end
-
-
-
1
def discussion_params
-
params.require(:discussion).permit(:number, :day, :time, :capacity)
-
end
-
-
1
def edit_index
-
1
@discussions = Discussion.all
-
1
render '/discussion/edit_index.html.erb'
-
end
-
-
1
def edit_index_post
-
1
@disc = Discussion.find(params[:edit_disc][:edit_disc])
-
1
render "/discussion/edit.html.erb"
-
end
-
-
1
def edit_disc
-
1
@disc = Discussion.find(params[:discussion][:id])
-
1
@disc.number = params[:discussion][:number]
-
1
@disc.day = params[:discussion][:day]
-
1
@disc.time = params[:discussion][:time]
-
1
@disc.capacity = params[:discussion][:capacity]
-
1
@disc.save
-
1
redirect_to discussion_index_path
-
end
-
-
end
-
1
require 'csv'
-
1
class FileController < ApplicationController
-
1
def index
-
end
-
-
1
def download_approved_teams
-
1
time_zone = "Pacific Time (US & Canada)"
-
1
time_format = "%Y%m%d%H%M"
-
1
time = Time.now.in_time_zone(time_zone).strftime(time_format)
-
-
1
filename = time + '_' + params[:status] + '_team_info.csv'
-
-
1
rows = []
-
1
rows << ["Team ID", "Discussion Number", "Student ID", "Student Name"]
-
-
1
Team.filter_by(params[:status]).each do |t|
-
1
discussion = Discussion.find_by_id(t.discussion_id)
-
-
1
if discussion.nil?
-
disc_id = 00000
-
else
-
1
disc_id = discussion.number
-
end
-
-
1
t.users.each do |u|
-
5
rows << [t.id, disc_id, u.sid, u.name]
-
end
-
end
-
-
7
csv_str = rows.inject([]) { |csv, row| csv << CSV.generate_line(row) }.join("")
-
1
send_data(csv_str, type: 'text/csv', filename: filename)
-
end
-
-
-
end
-
1
class SessionController < ApplicationController
-
-
1
skip_before_filter :authenticate, :except => ['destroy']
-
1
skip_before_filter :check_existence
-
-
1
def new
-
95
id = session[:user_id]
-
95
user = User.find_by_id(id)
-
95
if id.nil?
-
76
render 'new'
-
19
elsif session[:is_admin]
-
5
return redirect_to admins_path
-
else
-
14
return redirect_to without_team_path if user.team.nil?
-
14
return redirect_to team_path(user.team)
-
end
-
end
-
-
1
def create
-
68
oauth_hash = Rails.env.test? ? OmniAuth.config.mock_auth[:google] : env["omniauth.auth"]
-
68
user = User.user_from_oauth(oauth_hash)
-
68
admin = Admin.admin_from_oauth(oauth_hash)
-
68
session[:user_email] = oauth_hash[:info][:email]
-
68
if user.nil?
-
36
if admin.nil?
-
3
return redirect_to new_user_path, notice: "Account not created yet, please sign up!"
-
else
-
33
session[:user_id] = admin.id
-
33
session[:is_admin] = true
-
33
return redirect_to admins_path
-
end
-
else
-
32
session[:user_id] = user.id
-
32
return redirect_to without_team_path, notice: "Logged in!" if user.team.nil?
-
25
return redirect_to team_path(user.team), notice: "Logged in!"
-
end
-
end
-
-
1
def destroy
-
5
session.clear
-
5
redirect_to login_path, notice: "Logged out!"
-
end
-
-
end
-
1
class SubmissionsController < ApplicationController
-
-
1
def new
-
4
@submission = Submission.new
-
4
render 'new'
-
end
-
-
1
def create
-
3
@user = User.find_by_id(session[:user_id])
-
3
@team =<EMAIL_ADDRESS>-
-
3
d1 = submission_params[:disc1id]
-
3
d2 = submission_params[:disc2id]
-
3
d3 = submission_params[:disc3id]
-
-
3
if Discussion.valid_discs_for(@team).count == 1
-
1
@submission = Submission.new(:disc1id => d1)
-
2
elsif Discussion.valid_discs_for(@team).count == 2
-
return redirect_to new_submission_path, notice: "Please choose 2 different discussions." if [d1, d2, d3].uniq.length == 1
-
@submission = Submission.new(:disc1id => d1, :disc2id => d2)
-
else
-
2
return redirect_to new_submission_path, notice: "Please choose 3 different discussions." if [d1, d2, d3].uniq.length == 2 or [d1, d2, d3].uniq.length == 1
-
1
@submission = Submission.new(submission_params)
-
end
-
-
2
@submission.team = @team
-
-
2
@submission.save!
-
2
<EMAIL_ADDRESS>-
-
2
return redirect_to team_path(@team), notice: "Thanks for submitting your team for enrollment."
-
end
-
-
1
def destroy
-
end
-
-
1
private
-
1
def submission_params
-
10
params.require(:submission).permit(:disc1id, :disc2id, :disc3id)
-
end
-
end
-
-
1
class TeamController < ApplicationController
-
-
1
before_filter :set_user, :set_team
-
1
before_filter :set_permissions
-
1
before_filter :check_approved, :only => ['submit', 'unsubmit', 'edit']
-
-
1
def show
-
62
@discussions = Discussion.valid_discs_for(@team)
-
62
if @team.submitted and !(@team.approved)
-
4
@s =<EMAIL_ADDRESS>-
4
@d1 =<EMAIL_ADDRESS>-
4
@d2 =<EMAIL_ADDRESS>-
4
@d3 =<EMAIL_ADDRESS>-
end
-
62
render "team"
-
end
-
-
1
def submit
-
#EmailStudents.successfully_submitted_email(@team).deliver_now
-
-
3
redirect_to new_submission_path
-
end
-
-
1
def unsubmit
-
1
@submission = @team.submission
-
1
@submission.destroy!
-
1
@team.withdraw_submission
-
1
redirect_to<EMAIL_ADDRESS>-
end
-
-
1
def edit
-
10
@user_to_remove = User.find_by_id(params[:unwanted_user])
-
10
@user_to_remove.leave_team
-
10
notice = ""
-
-
10
if @user.is_a? Admin and @team.approved
-
1
@team.disapprove
-
9
elsif @team.submitted
-
3
notice = " Your team's submission has been withdrawn."
-
end
-
-
10
@team.withdraw_submission
-
10
return redirect_to without_team_path if @user_to_remove == @user
-
6
return redirect_to team_path(@team.id), notice: "Removed<EMAIL_ADDRESS>from team." + notice
-
end
-
-
-
-
1
private
-
-
1
def set_user
-
81
if session[:is_admin]
-
10
@user = Admin.find(session[:user_id])
-
else
-
71
@user = User.find(session[:user_id])
-
71
redirect_to without_team_path, :notice => "Permission denied" if @user.team.nil?
-
end
-
end
-
-
1
def set_team
-
80
@team = Team.find_by_id(params[:id])
-
end
-
-
1
def set_permissions
-
# checking that the team we are looking for exists and that the user doing the action on the team is either an admin or a student on the same team
-
80
if @team.nil? or (session[:is_admin].nil? and @user.team != @team)
-
2
redirect_to '/', :notice => "Permission denied"
-
end
-
end
-
-
1
def check_approved
-
16
redirect_to '/', :notice => "Permission denied" if @team.approved and !(@user.is_a? Admin)
-
end
-
-
-
end
-
1
class UsersController < ApplicationController
-
-
1
skip_before_filter :authenticate, :only => ['new', 'create']
-
1
before_filter :check_is_user, :except => ['new', 'create', 'show']
-
1
before_filter :set_user, :except => ['new', 'create']
-
-
1
def show
-
3
@user = User.find_by_id(params[:id])
-
end
-
-
1
def new
-
6
@user = User.new
-
6
session[:user_id] = @user.id
-
6
render 'new'
-
end
-
-
1
def create
-
3
@user = User.new(user_params)
-
-
3
if @user.save
-
#EmailStudents.welcome_email(@user).deliver_later
-
-
1
session[:user_id] = @user.id
-
1
session[:user_email] = @user.email
-
1
redirect_to without_team_path, :notice => "You signed up successfully!"
-
else
-
2
render 'new', :notice => "Form is invalid"
-
end
-
end
-
-
1
def start_team
-
1
@user.leave_team if !(@user.team.nil?)
-
-
1
@team = Team.create!(:passcode => Team.generate_hash, :approved => false, :submitted => false)
-
-
1
@user.team = @team
-
1
@team.users << @user
-
1
redirect_to<EMAIL_ADDRESS>-
end
-
-
1
def join_team
-
4
@passcode = params[:team_hash]
-
4
@team = Team.find_by_passcode(@passcode)
-
4
@team ||= Team.new()
-
4
return redirect_to without_team_path, :notice => "Unable to join team" if @passcode.empty? or !(@team.can_join?)
-
-
2
@user.leave_team if !(@user.team.nil?)
-
-
2
@user.team = @team
-
2
@team.users << @user
-
2
@team.withdraw_submission
-
-
2
@team.send_submission_reminder_email if @team.eligible?
-
-
2
redirect_to<EMAIL_ADDRESS>-
end
-
-
1
def update
-
1
@user.update_attributes!(user_params)
-
1
@team = @user != nil ? @user.team : nil
-
1
return redirect_to team_path({:id => @team === nil ? 1 : @team.id, :uid => @user.id})
-
end
-
-
1
private
-
1
def check_is_user
-
24
if session[:is_admin]
-
session[:return_to] ||= request.referer
-
return redirect_to session.delete(:return_to), :notice => 'Permission denied'
-
end
-
end
-
-
1
def set_user
-
27
@user = User.find_by_id session[:user_id]
-
end
-
-
1
def user_params
-
4
params.require(:user).permit(:name, :email, :sid, :major)
-
end
-
end
-
1
module ApplicationHelper
-
end
-
1
module TeamControllerHelper
-
end
-
class AdminMailer < ApplicationMailer
-
default from<EMAIL_ADDRESS>-
-
def invite_new_admin(admin)
-
@admin = admin
-
@url = ENV["SERVER_EMAIL"]
-
mail(to: @admin.email, subject: "Superadmin gave you access as admin for EnrollMe") do |format|
-
format.html
-
end
-
end
-
-
def team_list_email(admin)
-
@admin = admin
-
@url = 'http://www.gmail.com'
-
mail(to: @admin.email, subject: 'Here is list of' + params[:status] + 'teams in EnrollMe') do |format|
-
format.html
-
end
-
end
-
-
def send_approved_email(team)
-
@team = team
-
-
@team.users.each do |approved_user|
-
@user = approved_user
-
@url = ENV["SERVER_EMAIL"]
-
mail(to: @user.email, subject: 'Your team has been approved') do |format|
-
format.html
-
end
-
end
-
end
-
-
def send_disapproved_email(team)
-
@team = team
-
-
@team.users.each do |disapproved_user|
-
@user = disapproved_user
-
@url = ENV["SERVER_EMAIL"]
-
mail(to: @user.email, subject: 'Your team has been disapproved') do |format|
-
format.html
-
end
-
end
-
end
-
-
def look_at_submission(email)
-
mail(to: email, subject: "Teams are awaiting your approval!")
-
end
-
-
def all_data(admin)
-
@admin = admin
-
mail(to: @admin.email, subject: 'Reset Semester: All data that was deleted') do |format|
-
format.html
-
end
-
end
-
-
def self.send_look_at_submission
-
if !(Team.where("approved = ? AND submitted = ?", false, true).nil?)
-
Admin.all.each do |admin|
-
look_at_submission(admin.email).deliver
-
end
-
end
-
end
-
end
-
class ApplicationMailer < ActionMailer::Base
-
default from<EMAIL_ADDRESS>-
-
layout 'mailer'
-
end
-
class EmailStudents < ApplicationMailer
-
default from<EMAIL_ADDRESS>-
-
def welcome_email(user)
-
@user = user
-
mail(to: @user.email, subject: 'Welcome')
-
end
-
-
def submit_email(user)
-
@user = user
-
mail(to: @user.email, subject: 'Don\'t forget to submit team for CS 169')
-
end
-
-
def successfully_submitted_email(team)
-
@team = team
-
-
@team.users.each do |student|
-
@user = student
-
@url = ENV["SERVER_EMAIL"]
-
mail(to: @user.email, subject: 'Your team has successfully submitted team enrollment to EnrollMe') do |format|
-
format.html
-
end
-
end
-
end
-
-
end
-
1
class Admin < ActiveRecord::Base
-
-
1
validates :name, presence: true, length: { maximum: 50 }
-
1
VALID_EMAIL_REGEX =<EMAIL_ADDRESS>-
1
validates :email, presence: true, uniqueness: true, length: { maximum: 50 }, \
-
613
format: VALID_EMAIL_REGEX, exclusion: { in: lambda { |a| a.all_user_emails } }
-
-
1
def self.admin_from_oauth(auth)
-
-
68
return Admin.find_by(:email => auth[:info][:email])
-
end
-
-
1
def all_user_emails
-
613
return User.pluck(:email)
-
end
-
-
end
-
1
class Discussion < ActiveRecord::Base
-
1
has_many :teams
-
-
1
validates :number, presence: true, uniqueness: true, length: { maximum: 5, minimum: 5 }, format: /[0-9]{5}/
-
-
1
def can_take_team?(team)
-
109
return !!(team.users.length + count_students <= self.capacity)
-
end
-
-
1
def is_full?
-
return !!(count_students >= capacity)
-
end
-
-
1
def seats_open
-
retVal = self.capacity - count_students
-
if retVal >= 0
-
return retVal
-
else
-
return 0
-
end
-
end
-
-
1
def count_students
-
189
num_students = 0
-
189
self.teams.each do |team|
-
48
num_students += team.users.length
-
end
-
189
return num_students
-
end
-
-
-
1
def self.valid_discs_for(team)
-
133
discs = []
-
133
Discussion.all.each do |disc|
-
109
discs << disc if (disc.can_take_team?(team))
-
end
-
133
return discs
-
end
-
-
1
def info
-
80
return "CCN: #{self.number} | Time: #{self.day} #{self.time} | Enrolled: #{self.count_students} / #{self.capacity}"
-
end
-
-
end
-
1
class Option < ActiveRecord::Base
-
1
before_create :confirm_singleton!
-
1
validates :minimum_team_size, :numericality =>
-
{:greater_than => 0, :only_integer => true}
-
1
validates :maximum_team_size, :numericality =>
-
{:greater_than => 0, :only_integer => true}
-
1
validate :max_team_size_greater_than_min
-
-
1
class IsSingletonError < RuntimeError; end
-
-
1
private
-
-
1
def confirm_singleton!
-
raise Option::IsSingletonError.new("There can be only one set of options.") if
-
70
Option.count > 0
-
end
-
-
1
def max_team_size_greater_than_min
-
errors.add(:maximum_team_size, "cannot be less than minimum team size") if
-
84
maximum_team_size < minimum_team_size
-
end
-
-
1
public
-
-
# shortcut: make getters operate on the first (only) instance of model, eg
-
# Option.minimum_team_size instead of Option.first.minimum_team_size
-
1
def self.method_missing(name,*args,&block)
-
14
if Option.column_names.include?(name.to_s)
-
14
first.send(name,*args)
-
else
-
super
-
end
-
end
-
-
end
-
1
class Submission < ActiveRecord::Base
-
1
attr_accessor :team_id
-
1
belongs_to :team
-
end
-
1
class Team < ActiveRecord::Base
-
1
has_many :users
-
1
has_one :submission
-
1
validates :passcode, uniqueness: true
-
-
1
def self.generate_hash(length=36)
-
1
return SecureRandom.urlsafe_base64(length, false)
-
end
-
-
1
def self.approved_teams
-
return Team.where(:approved => true)
-
end
-
-
1
def withdraw_submission
-
23
self.submitted = false
-
23
self.save!
-
end
-
-
1
def disapprove
-
2
self.approved = false
-
2
self.submitted = false
-
2
self.save!
-
end
-
-
1
def withdraw_approval
-
self.approved = false
-
self.save!
-
end
-
-
1
def approve_with_discussion(id)
-
16
self.approved = true
-
16
self.discussion_id = id
-
16
self.save!
-
end
-
-
1
def send_submission_reminder_email
-
2
self.users.each do |user|
-
#EmailStudents.submit_email(user).deliver_later
-
end
-
end
-
-
1
def eligible?
-
6
users.count.between?(Option.minimum_team_size, Option.maximum_team_size)
-
end
-
-
-
1
def self.filter_by(status)
-
56
if status.nil? or status == "Pending | Approved"
-
44
return Team.where(approved: true) + Team.where(approved: false, submitted: true)
-
12
elsif status == "Approved"
-
5
return Team.where(approved: true)
-
7
elsif status == "Pending"
-
4
return Team.where(approved: false, submitted: true)
-
3
elsif status == "Forming"
-
2
return Team.where(approved: false, submitted: false)
-
end
-
1
return Team.all.each
-
end
-
-
1
def add_submission(id)
-
19
self.update(submitted: true)
-
19
self.submission_id = id
-
19
self.save!
-
end
-
-
1
def can_join?
-
! passcode.nil? &&
-
4
! approved &&
-
users.size < Option.maximum_team_size
-
end
-
end
-
1
class User < ActiveRecord::Base
-
1
belongs_to :team
-
-
1
validates :name, presence: true, length: { maximum: 50 }
-
1
VALID_EMAIL_REGEX =<EMAIL_ADDRESS>-
1
validates :email, presence: true, uniqueness: true, length: { maximum: 50 }, \
-
287
format: VALID_EMAIL_REGEX, exclusion: { in: lambda { |u| u.all_admin_emails } }
-
1
validates :major, presence: true
-
1
validates :sid, presence: true, uniqueness: true, length: { maximum: 10 }
-
1
before_save :downcase_email
-
-
1
def downcase_email
-
285
self.email.downcase!
-
end
-
-
1
def leave_team
-
10
@team = self.team
-
10
@team.users.delete(self)
-
10
self.team = nil
-
10
@team.withdraw_submission
-
-
10
if User.where(:team_id => @team.id).length <= 0
-
2
@team.destroy!
-
end
-
end
-
-
1
def self.user_from_oauth(auth)
-
68
return User.find_by(:email => auth[:info][:email].downcase)
-
# query = "%#{" << auth[:info][:email] << "}%"
-
# return User.where("email LIKE ?", query).first
-
end
-
-
1
def all_admin_emails
-
287
return Admin.pluck(:email)
-
end
-
-
end


Sweet Free Stuff
///////////////////////////////////////////
Free Loving Pets Rawhide Pressed Bone at Kmart
Posted: 06 May 2016 11:51 AM PDT
http://feedproxy.google.com/&edburner&utm_medium=email
Download the Kmart mobile app then go to the Friday Fix section to get a
free coupon. Load coupon today only. Good until May 8th.
The post Free Loving Pets Rawhide Pressed Bone at Kmart appeared first on
SweetFreeStuff.com.
///////////////////////////////////////////
Free Subscription to Popular Photography Magazine
Posted: 06 May 2016 02:40 AM PDT
http://feedproxy.google.com/&edburner&utm_medium=email
The post Free Subscription to Popular Photography Magazine appeared first
on SweetFreeStuff.com.
///////////////////////////////////////////
FREE Tresemme Beauty-Full Volume Reverse Wash System Sample
Posted: 06 May 2016 01:56 AM PDT
http://feedproxy.google.com/&edburner&utm_medium=email
FREE Tresemme Beauty-Full Volume Reverse Wash System Sample
The post FREE Tresemme Beauty-Full Volume Reverse Wash System Sample
appeared first on SweetFreeStuff.com.
///////////////////////////////////////////
Free Lindt Lindor Stick at Kroger
Posted: 06 May 2016 12:58 AM PDT
http://feedproxy.google.com/&edburner&utm_medium=email
Load the coupon to your shoppers card today only (5/6) and use by 5/22.
Free Lindt Lindor Stick at Kroger Affiliate Stores
The post Free Lindt Lindor Stick at Kroger appeared first on
SweetFreeStuff.com.
///////////////////////////////////////////
Free Bottle of MagO7 Digestive System Cleanser
Posted: 05 May 2016 03:45 PM PDT
http://feedproxy.google.com/&edburner&utm_medium=email
Free Bottle of MagO7 Digestive System Cleanser
The post Free Bottle of MagO7 Digestive System Cleanser appeared first on
SweetFreeStuff.com.
///////////////////////////////////////////
Free Cone Day at Haagen-Dazs on May 10
Posted: 05 May 2016 02:15 AM PDT
http://feedproxy.google.com/&edburner&utm_medium=email
Reward yourself with a rich and velvety scoop of Häagen-Dazs® during our
free cone day May 10th. stop by any participating store and get one free
kiddie size ice cream in either a cup, sugar cone, or cake cone. Free Cone
Day at Haagen-Dazs on May 10
The post Free Cone Day at Haagen-Dazs on May 10 appeared first on
SweetFreeStuff.com.
///////////////////////////////////////////
SwagBucks - Earn Free Gift Cards Online
Posted: 01 May 2016 02:00 AM PDT
http://feedproxy.google.com/&edburner&utm_medium=email
Swagbucks is the webs leading rewards platform, dedicated to providing FREE
gift cards to its 12+ million members. Swagbucks lets you earn FREE gift
cards for taking surveys, watching videos, shopping online and more!
The post SwagBucks Earn Free Gift Cards Online appeared first on
SweetFreeStuff.com.


{% raw %}
OverC
Servers
Services
{{ $state.title }}
Supervisor process is not running correctly: some service states are not checked for {{ state.supervisor_lag }} seconds. Review OverC server logs.
Failed to load data: {{ state.http_error }}
Loading content...
{% endraw %}


Triangles
Triangles are two-dimensional shapes made up of three sides and three angles. Though not all of them are the same, they all have to have those two elements in place in order to be a triangle. You’ll run across several different types, each one defined by its sides and/or angles.
- Acute: In an acute triangle all three angles are less than 90 degrees
- Obtuse:Obtuse triangles have one angle measuring more than 90 degrees
- Right:A right triangle has one 90 degree angle
- Equilateral:Equilateral triangles have three equal sides and three equal angles
- Scalene:With a scalene triangle, you’ll have no equal sides or angles
- Isosceles:Isosceles triangles have two equal sides and two equal angles


an object-oriented computer programming language commonly used to create interactive effects within web browsers.
Click here to return.
a binary variable, having two possible values called “true” and “false.”.
Click here to return.
jQuery is a concise and fast JavaScript library that can be used to simplify event handling, HTML document traversing, Ajax interactions and animation for speedy website development. jQuery simplifies the HTML's client-side scripting, thus simplifying Web 2.0 applications development.
Click here to return.
A function is a JavaScript procedure—a set of statements that performs a task or calculates a value. To use a function, you must define it somewhere in the scope from which you wish to call it.
Click here to return.
JavaScript strings are used for storing and manipulating text. A JavaScript string is zero or more characters written inside quotes.
Click here to return.
The NaN property represents "Not-a-Number" value. This property indicates that a value is not a legal number.
Click here to return.


The Crystal Ballroom is our premier venue - suitable for hosting up to 1,000 people, it is without doubt one of Yangon’s finest function venues.
The Crystal Ballroom - designed specifically for large-scale events such as an international conferences and luxury wedding receptions - is furnished with a separate VIP room and fitted with high-end lighting arrangements, audio systems, and LCD projectors. This modern, contemporary function hall is the ideal venue for a range of VIP events or state visits.
Capacity 450~600
Location Ground Floor
Size 962.5㎡
Email<EMAIL_ADDRESS>Telephone: 098559
Address:No. 82, Sin Phyu Shin Avenue, Pyay Road, 6½ Mile, Ward 11, Hlaing Township, Yangon, Myanmar
Yangon,Myanmar
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse


Scan your confirmation barcode or enter your Client ID at the reception kiosk
Changes to your circumstances
It is important that you tell us about any changes to your circumstances including your name, contact details, address or children included on this application as soon as possible. To advise the department of any changes in circumstance please contact the Citizenship Information Line on 131 880 between 8.30 am and 4.30 pm Monday to Friday.
Yours sincerely
Assistant Secretary
Permanent Visa and Citizenship Programme
Position number 3355
Department of Immigration and Border Protection


Factbox: LPGA winners by nation in 2019
(Reuters) - Winners by nation on the LPGA Tour following victory by South Korean Kim Sei-young at the season-ending CME Group Tour Championship on Sunday:
15 - South Korea (Ko Jin-young 4, Kim Sei-young 3, Hur Mi-jung 2, Park Sung-hyun 2, Lee Jeong-eun 1, Ji Eun-hee 1, Jang Ha-na 1, Amy Yang 1
6 – United States (Nelly Korda 2, Lexi Thompson 1, Danielle Kang 1, Cheyenne Knight 1, Cydney Clanton 1)
3 – Australia (Hannah Green 2, Minjee Lee 1); Japan (Nasa Hataoka 1, Ai Suzuki 1, Hinako Shibuno 1)
2 – Canada (Brooke Henderson 2)
1 – China (Shanshan Feng); England (Bronte Law); France (Celine Boutier); Thailand (Jasmine Suwannapura)


The Loop is a student made website. The student was motivated to create The Loop so he could pass CS 355. He got the idea for The Loop from his personal life. He enjoyed watching a variety of TV shows but could never remember what shows he was watching throughout the different seasons of the year.
The creator also had trouble finding new, interesting shows and movies to watch. He would ask his peers for suggestions. Being the computer science major he was, he created The Loop. This way he can solve all his media problems in one website.
Site Manager: Brian A. Crosser Email:********@seawolf.sonoma.edu


|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.secarta.httpsec.Peer
public abstract class Peer
Base class for Client
and Server
.
| Constructor Summary | |
|---|---|
Peer()
|
| Method Summary | |
|---|---|
boolean |
checkCertificate(java.lang.String local_id,
HttpsecHeader header,
java.security.cert.Certificate cert)
Pre-condition, could be used to validate pki certificates. |
boolean |
checkInitialize(java.lang.String local_id,
HttpsecHeader header)
Pre-condition before anything happens to check the received initialize. |
java.security.cert.Certificate |
getCertificate(java.lang.String local_id,
HttpsecHeader header)
Fetch the certificate referenced by header . |
CertificatePublisher |
getCertificatePublisher()
Return the url of the certificate associated with local_id , or null if not known. |
PrivateKeyService |
getPrivateKeyService()
Gets the PrivateKeyService used by this peer. |
java.security.PublicKey |
getPublicKey(java.lang.String local_id,
HttpsecHeader header)
Fetch the public key referenced by header . |
SessionTable |
getSessionTable()
Retrieves the SessionTable used by this peer. |
protected java.lang.String |
key(java.lang.String... s)
|
void |
setCertificatePublisher(CertificatePublisher certificatePublisher)
|
void |
setPrivateKeyService(PrivateKeyService privateKeyService)
Sets the PrivateKeyService used by this peer. |
void |
setSessionTable(SessionTable sessionTable)
Sets the SessionTable used by this peer. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public Peer()
| Method Detail |
|---|
public void setSessionTable(SessionTable sessionTable)
SessionTable
used by this peer.
public SessionTable getSessionTable()
SessionTable
used by this peer.
By default this will be a MapSessionTable
.
public java.security.PublicKey getPublicKey(java.lang.String local_id, HttpsecHeader header) throws HttpsecException
header
.
By default calls getCertificate()
and extracts the public key.
HttpsecException
public void setPrivateKeyService(PrivateKeyService privateKeyService)
PrivateKeyService
used by this peer.
public PrivateKeyService getPrivateKeyService()
PrivateKeyService
used by this peer.
Throws java.lang.IllegalStateException
if there is no PrivateKeyService set.
public java.security.cert.Certificate getCertificate(java.lang.String local_id, HttpsecHeader header) throws HttpsecException
header
.
Can retrieve certificates from data: org http: urls.
HttpsecException
public boolean checkCertificate(java.lang.String local_id, HttpsecHeader header, java.security.cert.Certificate cert)
public boolean checkInitialize(java.lang.String local_id, HttpsecHeader header)
public CertificatePublisher getCertificatePublisher()
local_id
, or null if not known.
By default this returns null.
public void setCertificatePublisher(CertificatePublisher certificatePublisher)
protected java.lang.String key(java.lang.String... s)
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |


Donate
This page is currently under construction until the official PTSA Paypal account is created... Check back here for updates


{{author.full_name}} created a permission for {{ worklist.title }} .
{{ evt.event_info.codename == 'move_items' ? 'Users' : 'Owners' }} {{ evt.event_info.codename }}


| aes_cbc {openssl} | R Documentation |
Low-level symmetric encryption/decryption using the AES block cipher in CBC mode.
The key is a raw vector, for example a hash of some secret. When no shared
secret is available, a random key can be used which is exchanged via an
asymmetric protocol such as RSA. See rsa_encrypt
for a worked example
or encrypt_envelope
for a high-level wrapper combining AES and RSA.
aes_ctr_encrypt(data, key, iv = rand_bytes(16)) aes_ctr_decrypt(data, key, iv = attr(data, "iv")) aes_cbc_encrypt(data, key, iv = rand_bytes(16)) aes_cbc_decrypt(data, key, iv = attr(data, "iv")) aes_gcm_encrypt(data, key, iv = rand_bytes(12)) aes_gcm_decrypt(data, key, iv = attr(data, "iv")) aes_keygen(length = 16)
data |
raw vector or path to file with data to encrypt or decrypt |
key |
raw vector of length 16, 24 or 32, e.g. the hash of a shared secret |
iv |
raw vector of length 16 (aes block size) or NULL. The initialization vector is not secret but should be random |
length |
how many bytes to generate. Usually 16 (128-bit) or 12 (92-bit) for |
# aes-256 requires 32 byte key passphrase <- charToRaw("This is super secret") key <- sha256(passphrase) # symmetric encryption uses same key for decryption x <- serialize(iris, NULL) y <- aes_cbc_encrypt(x, key = key) x2 <- aes_cbc_decrypt(y, key = key) stopifnot(identical(x, x2))


23 August 2018
August 2018
23 August
22:30
22:30:01.67
10.30pm, 23 August 2018
10.30pm, 23 August 2018 is 8.30pm in France
The many week of 2018


Read this in other languages:
English, ???, Français.
To showcase how to automate a SIEM in a security environment, this lab contains a IBM QRadar SIEM, community edition.
The SIEM can be accessed via web UI and via REST API. In this lab the playbooks we write will be interacting with the API in the background. All actions will be verified in the web UI.
Have a first look at the SIEM, and verify that it is actually working. Point your web browser towards https://<qradar-IP>
, where <qradar-IP>
is the IP address for the qradar
entry in your siem
section of your inventory. Next you will be faced with a warning that the certificate is unsecure since it is self-signed. Please accept this and proceed.
Note
In a production environment, accepting a insecure certificate would not be an option. Since the lab setup is only short lived and solely serves a demo purpose we accept the risk in this case.
In the login field, provide the username admin and the password Ansible1! if not provided otherwise. Press the Login button.
You are now viewing the IBM QRadar main web interface.
To get an idea of QRadar and the basic concepts, let’s have a short look at the interface: in the upper part there is a navigation bar with multiple entry points into the main parts of QRadar.
For the purpose of the demo, we will have a closer look at the Offenses: click on the menu item. In the new window, you will see a navigation bar on the left side to filter the offenses.
Note
Since this is a demo environment, it is likely that the list of offenses is currently empty.
Offenses are messages or events generated based upon findings in log messages or network traffic, like a malicious log line. QRadar triggers offenses based on rules: the rules describe conditions, and when a condition is met, the offense is the result.
To say it with the words of the official documentation:
Rules, sometimes called correlation rules are applied to events, flows, or offenses to search for or detect anomalies. If all the conditions of a test are met, the rule generates response. (QRadar documentation)
In a productive environment it is common to create more and more custom rules over time. But for now, let’s have a look at the rules which are already installed on the system: in the Offenses window, on the left side in the navigation bar, click on Rules. A long list of rules is displayed. In the search bar on top of this list, enter the following search term: DDoS
Hit enter afterwards to filter the list.
The list is filtered, and only shows few rules which are related to DDOS.
Click the one called “Potential DDoS Against Single Host (TCP)”, note that it is enabled. This will be relevant later in this exercise.
Now that you had a very first glance at QRadar, it is time to look how it can be automated by Ansible.
On the most basic level, Ansible automation performs tasks. Those tasks execute modules, which usually work on the corresponding targets, like an API endpoint of a special device or program.
Ansible comes with a lot of modules included, but as of the time of writing, Ansible does not ship QRadar modules out of the box. Instead, those modules are provided as Ansible collections:
Collections are a distribution format for Ansible content. They can be used to package and distribute playbooks, roles, modules, and plugins. You can publish and use collections through Ansible Galaxy.
Collections follow a simple directory structure to provide Ansible content. If you feel reminded of Ansible roles here, this has a reason: Collections are built upon the idea of roles, but extend the concept to general Ansible content management. The collection for IBM QRadar can be found in the ansible-security project.
As roles, collections also need to be installed first before they can be used. They are installed on the machine executing Ansible, in the case of the lab this is the control host.
Let’s install the collection for QRadar modules on your control host. In your VS Code online editor open a new terminal. Execute the command ansible-galaxy collection --help
to verify that the collections function is working properly:
[student<X>@ansible ~]$ ansible-galaxy collection --help
usage: ansible-galaxy collection [-h] COLLECTION_ACTION ...
positional arguments:
COLLECTION_ACTION
init Initialize new collection with the base structure of a
collection.
build Build an Ansible collection artifact that can be publish
to Ansible Galaxy.
publish Publish a collection artifact to Ansible Galaxy.
install Install collection(s) from file(s), URL(s) or Ansible
Galaxy
optional arguments:
-h, --help show this help message and exit
With that in mind, we can now install the collection ibm.qradar
:
[student<X>@ansible ~]$ ansible-galaxy collection install ibm.qradar
Process install dependency map
Starting collection install process
Installing 'ibm.qradar:0.0.1' to '/home/student<X>/.ansible/collections/ansible_collections/ibm/qradar'
Verify that the collection was installed properly:
[student<X>@ansible ~]$ ls -1 ~/.ansible/collections/ansible_collections/ibm/qradar
docs
LICENSE
plugins
README.md
tests
All required files are there - especially the directory plugins/modules
which contains the actual modules.
With the collection in place, we can now start to write our playbook.
Note
If you want to try this at home: please note that this collection command requires at least Ansible version 2.9!
In our first example to interface with QRadar we are going to enable/disable a rule. It is a rather small but common change and shows how Ansible and QRadar interact. We will do this in two steps: first we find the rule we want to change, afterwards we apply the change.
In your VS Code online editor, create a new file, find_qradar_rule.yml
in the home directory of your user. Add the name and target hosts, here qradar
.
---
- name: Find QRadar rule state
hosts: qradar
We also want to use the collections we just added. Collections can be referenced at multiple places, for example at task level as well as play level. We will reference them at play level to be able to write multiple tasks based on them later on.
---
- name: Find QRadar rule state
hosts: qradar
collections:
- ibm.qradar
Next we bring in the actual tasks. The REST API of QRadar is desgined in a way that we first have to search for a proper rule to find out its ID, and then deactive the rule by referencing the given ID. For the sake of this lab, let’s say the rule which creates messages based on a suspected DDoS attack. In the last section we already had a look at the QRadar rules via Offenses > Rules, and filitered them for the term DDoS. In the filtered list, note the first rule shown there, “Potential DDoS Against Single Host (TCP)”. We will use this string to search for the role using the module qradar_rule_info
:
---
- name: Find QRadar rule state
hosts: qradar
collections:
- ibm.qradar
tasks:
- name: get info about qradar rule
qradar_rule_info:
name: "DDoS Attack Detected"
This module returns a lot of information, among those the ID we need to actually disable the role. Let’s register the returned information into a variable with the help of the register
keyword. It is directly used with the module itself. This enables us to use the content of the variable in the next task.
---
- name: Find QRadar rule state
hosts: qradar
collections:
- ibm.qradar
tasks:
- name: get info about qradar rule
qradar_rule_info:
name: "DDoS Attack Detected"
register: rule_info
So how do the information returned by the module actually look like? How about we just output the variable rule_info
? For that, add a debug
task which can be used to output variables during a playbook run:
---
- name: Find QRadar rule state
hosts: qradar
collections:
- ibm.qradar
tasks:
- name: get info about qradar rule
qradar_rule_info:
name: "Potential DDoS Against Single Host (TCP)"
register: rule_info
- name: output returned rule_info
debug:
var: rule_info
Note
The parameter “var” of the debug module does expect a variable name already - for that reason curly brackets and quotation marks are not needed like usually when you reference a variable.
Both tasks only collect and output data, they do not change anything. Let’s quickly run the playbook to look at the returned data:
[student<X>@ansible ansible-files]$ ansible-playbook find_qradar_rule.yml
PLAY [Find QRadar rule state] ***************************************************
TASK [Gathering Facts] ************************************************************
ok: [qradar]
TASK [get info about qradar rule] *************************************************
ok: [qradar]
TASK [output returned rule_info] **************************************************
ok: [qradar] => {
"rule_info": {
"changed": false,
"failed": false,
"rules": [
{
"average_capacity": 0,
"base_capacity": 0,
"base_host_id": 0,
"capacity_timestamp": 0,
"creation_date":<PHONE_NUMBER>032,
"enabled": true,
"id": 100065,
"identifier": "SYSTEM-1520",
"linked_rule_identifier": null,
"modification_date":<PHONE_NUMBER>130,
"name": "Potential DDoS Against Single Host (TCP)",
"origin": "SYSTEM",
"owner": "admin",
"type": "FLOW"
}
]
}
}
PLAY RECAP ************************************************************************
qradar : ok=3 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
As you see, the debug task output returned rule_info
shows the content of the variable, and thus the content which was returned by the module qradar_rule_info
. Note among those return data the key id
, in this example with the value 100065
. This is the key we need.
Note
The key id might be different in your case.
How do we get the key when it is in this structure? First, it is in the segment rules
of the variable, which we can access via rule_info.rules
. Inside of rules
there is actually a list (note the curly brackets), but with only one entry - so we access it with rule_info.rules[0]
. And from within the list entry we can access each key individually via its name: rule_info.rules[0]['id']
.
So, let’s write a new playbook where we provide this as a value to the module which can disable the rule, qradar_rule
.
In your VS Code online editor, create a new file, change_qradar_rule.yml
in the home directory /home/student<X>/
. Add the name and target hosts, here qradar
.
---
- name: Change QRadar rule state
hosts: qradar
collections:
- ibm.qradar
tasks:
- name: get info about qradar rule
qradar_rule_info:
name: "Potential DDoS Against Single Host (TCP)"
register: rule_info
- name: disable rule by id
qradar_rule:
state: disabled
id: "{{ rule_info.rules[0]['id'] }}"
The playbook is now complete: it queries QRadar for the list of rules, and deactives the one we are looking for.
After we completed the playbook, let’s execute it:
[student<X>@ansible ansible-files]$ ansible-playbook change_qradar_rule.yml
PLAY [Change QRadar rule state] ***************************************************
TASK [Gathering Facts] ************************************************************
ok: [qradar]
TASK [get info about qradar rule] *************************************************
ok: [qradar]
TASK [disable rule by id] *********************************************************
changed: [qradar]
PLAY RECAP ************************************************************************
qradar : ok=3 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
As you can see, the playbook denotes a change: the rule was changed. Run the playbook again - it does not report a change anymore, since the rule is now already disabled.
To verify that Ansible indeed changed something, we go back to the UI of QRadar. Open the QRadar IP in your web browser. Click on the Offenses tab, and from there on the left side click on Rules. The long list of rules is displayed. In the search bar on top of this list, enter the following search term: DDoS
Hit enter to filter the list, so that it only shows rules which are related to DDOS. At the end, note the rule regarding potential DDOS attacks, and check the state in the Enabled column: it is set to False!
You are done with the first steps of automating QRadar with Ansible. Head back to the exercise overview and continue with the next exercise.


The Happy Place
Home
Submissions
Past Submissions
Top Secret
Sign Up
Login
Submissions
Upload your own uplifting story or inspirational thoughts using the form below!
First Name
Surname (optional)
Email
Your Story


Rhode Island's truck tolling system far behind schedule
by EndPlayPROVIDENCE, R.I. (AP) - Rhode Island is behind schedule when it comes to putting up gantries on state highways for the state's truck tolling system.
WPRI-TV reports that the state Department of Transportation has missed multiple self-imposed deadlines to get more gantries up and running, raising doubts about whether the program will bring in the $25 million projected in this year's budget.
The department had hoped to have seven of the 13 gantry locations up and running by this week, but only four are in operation. A fifth on Interstate 295 in Cumberland is about three months behind schedule.
An agency spokeswoman says the delays were caused by severe flooding in the Midwest where a steel fabricator is located.
The four tolling locations now operating collected $2.8 million between July 1 and Oct. 31.
___
Information from: WPRI-TV, http://www.wpri.com


Our mission is to create awareness, break the stigma, and lend support to those suffering from mental health problems. The idea is to develop and provide for a virtual space where people can talk about their feelings, emotional pain, and distress without any constraints.
We also plan to connect the concerned person with a professional where needed. We plan to push for the social acceptance of people with mental health issues. In the longer run, we aim to fulfill this through sustainable models of care that appropriately address the elements of mental health.


Sometimes you want to exploit an old kernel, but don't want to spin up an old OS to build the exploit.
Two possible options are using --static and using --W1,--hash-style=both
The error that spawned this page is: error while loading shared libraries: requires glibc 2.5 or later dynamic linker
From stack overflow
Cause is the dynamic binary (or dependent shared library) you want to run only has .gnu.hash section, but the ld.so on target machine is too old to recognize .gnu.hash and only recognizes the old-school .hash section.
Usually happens when the binary in question is built using newer version of GCC. Solution is to compile with
-static
or
-Wl,--hash-style=both
To include both .gnu.hash and .hash sections


--- layout: default title: My Blog ---
We learn better together
I get to build cool things sometimes, and I get to learn things from customers and smart people. I try and share as much as I can. Here is where I do it.
//adamstephensen.com/blog
I love to talk. Sometimes people like to listen.
Check out my past talks


 This is larger than the maximum of 99 blocks, and so the node is shutting down for your safety.
Reorganization details:
- Current tip: 0000000c55d40c42500b9f96acdf01e143861c5703bd13626def133270c8d405, height 3053, work<PHONE_NUMBER>0000000000000000000000000000000000000000000f2cce4cc073
stake<PHONE_NUMBER>000000000000000000000000000000000000000000000000000000
- New tip: 00000000c56fb939a9354a29cadfe74784d6bff86581aaa5d3065ef412b0be5f, height 2943, work<PHONE_NUMBER>0000000000000000000000000000000000000000000f34bc8da7f7
stake<PHONE_NUMBER>000000000000000000000000000000000000000000000000000000
- Fork point: CFEKPAY<PHONE_NUMBER>fbaf7bfd27b0c7956433f8a6238d1f50f56bffd31ee4ad1fe130dc, height 2927
Please help, human!
if you launch with -maxreorg=136 it might be able to resolve this automaticallyError: A block chain reorganization has been detected that would roll back 126 blocks! This is larger than the maximum of 99 blocks, and so the node is shutting down for your safety.
Reorganization details:
- Current tip: 0000000c55d40c42500b9f96acdf01e143861c5703bd13626def133270c8d405, height 3053, work<PHONE_NUMBER>0000000000000000000000000000000000000000000f2cce4cc073
stake<PHONE_NUMBER>000000000000000000000000000000000000000000000000000000
- New tip: 00000000c56fb939a9354a29cadfe74784d6bff86581aaa5d3065ef412b0be5f, height 2943, work<PHONE_NUMBER>0000000000000000000000000000000000000000000f34bc8da7f7
stake<PHONE_NUMBER>000000000000000000000000000000000000000000000000000000
- Fork point: CFEKPAY<PHONE_NUMBER>fbaf7bfd27b0c7956433f8a6238d1f50f56bffd31ee4ad1fe130dc, height 2927


#
# Copyright (c) 2017 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
from typing import Any, Dict, List, Tuple
import numpy as np
from rl_coach.base_parameters import AgentParameters
from rl_coach.saver import SaverCollection
from rl_coach.spaces import SpacesDefinition
[docs]class Architecture(object):
[docs] @staticmethod
def construct(variable_scope: str, devices: List[str], *args, **kwargs) -> 'Architecture':
"""
Construct a network class using the provided variable scope and on requested devices
:param variable_scope: string specifying variable scope under which to create network variables
:param devices: list of devices (can be list of Device objects, or string for TF distributed)
:param args: all other arguments for class initializer
:param kwargs: all other keyword arguments for class initializer
:return: an object which is a child of Architecture
"""
raise NotImplementedError
def __init__(self, agent_parameters: AgentParameters, spaces: SpacesDefinition, name: str= ""):
"""
Creates a neural network 'architecture', that can be trained and used for inference.
:param agent_parameters: the agent parameters
:param spaces: the spaces (observation, action, etc.) definition of the agent
:param name: the name of the network
"""
self.spaces = spaces
self.name = name
self.network_wrapper_name = self.name.split('/')[0] # e.g. 'main/online' --> 'main'
self.full_name = "{}/{}".format(agent_parameters.full_name_id, name)
self.network_parameters = agent_parameters.network_wrappers[self.network_wrapper_name]
self.batch_size = self.network_parameters.batch_size
self.learning_rate = self.network_parameters.learning_rate
self.optimizer = None
self.ap = agent_parameters
[docs] def predict(self,
inputs: Dict[str, np.ndarray],
outputs: List[Any] = None,
squeeze_output: bool = True,
initial_feed_dict: Dict[Any, np.ndarray] = None) -> Tuple[np.ndarray, ...]:
"""
Given input observations, use the model to make predictions (e.g. action or value).
:param inputs: current state (i.e. observations, measurements, goals, etc.)
(e.g. `{'observation': numpy.ndarray}` of shape (batch_size, observation_space_size))
:param outputs: list of outputs to return. Return all outputs if unspecified. Type of the list elements
depends on the framework backend.
:param squeeze_output: call squeeze_list on output before returning if True
:param initial_feed_dict: a dictionary of extra inputs for forward pass.
:return: predictions of action or value of shape (batch_size, action_space_size) for action predictions)
"""
raise NotImplementedError
[docs] @staticmethod
def parallel_predict(sess: Any,
network_input_tuples: List[Tuple['Architecture', Dict[str, np.ndarray]]]) -> \
Tuple[np.ndarray, ...]:
"""
:param sess: active session to use for prediction
:param network_input_tuples: tuple of network and corresponding input
:return: list or tuple of outputs from all networks
"""
raise NotImplementedError
[docs] def train_on_batch(self,
inputs: Dict[str, np.ndarray],
targets: List[np.ndarray],
scaler: float=1.,
additional_fetches: list=None,
importance_weights: np.ndarray=None) -> Tuple[float, List[float], float, list]:
"""
Given a batch of inputs (e.g. states) and targets (e.g. discounted rewards), takes a training step: i.e. runs a
forward pass and backward pass of the network, accumulates the gradients and applies an optimization step to
update the weights.
Calls `accumulate_gradients` followed by `apply_and_reset_gradients`.
Note: Currently an unused method.
:param inputs: typically the environment states (but can also contain other data necessary for loss).
(e.g. `{'observation': numpy.ndarray}` with `observation` of shape (batch_size, observation_space_size) or
(batch_size, observation_space_size, stack_size) or
`{'observation': numpy.ndarray, 'output_0_0': numpy.ndarray}` with `output_0_0` of shape (batch_size,))
:param targets: target values of shape (batch_size, ). For example discounted rewards for value network
for calculating the value-network loss would be a target. Length of list and order of arrays in
the list matches that of network losses which are defined by network parameters
:param scaler: value to scale gradients by before optimizing network weights
:param additional_fetches: list of additional values to fetch and return. The type of each list
element is framework dependent.
:param importance_weights: ndarray of shape (batch_size,) to multiply with batch loss.
:return: tuple of total_loss, losses, norm_unclipped_grads, fetched_tensors
total_loss (float): sum of all head losses
losses (list of float): list of all losses. The order is list of target losses followed by list
of regularization losses. The specifics of losses is dependant on the network parameters
(number of heads, etc.)
norm_unclippsed_grads (float): global norm of all gradients before any gradient clipping is applied
fetched_tensors: all values for additional_fetches
"""
raise NotImplementedError
[docs] def get_weights(self) -> List[np.ndarray]:
"""
Gets model weights as a list of ndarrays. It is used for synchronizing weight between two identical networks.
:return: list weights as ndarray
"""
raise NotImplementedError
[docs] def set_weights(self, weights: List[np.ndarray], rate: float=1.0) -> None:
"""
Sets model weights for provided layer parameters.
:param weights: list of model weights in the same order as received in get_weights
:param rate: controls the mixture of given weight values versus old weight values.
i.e. new_weight = rate * given_weight + (1 - rate) * old_weight
:return: None
"""
raise NotImplementedError
[docs] def reset_accumulated_gradients(self) -> None:
"""
Sets gradient of all parameters to 0.
Once gradients are reset, they must be accessible by `accumulated_gradients` property of this class,
which must return a list of numpy ndarrays. Child class must ensure that `accumulated_gradients` is set.
"""
raise NotImplementedError
[docs] def accumulate_gradients(self,
inputs: Dict[str, np.ndarray],
targets: List[np.ndarray],
additional_fetches: list=None,
importance_weights: np.ndarray=None,
no_accumulation: bool=False) -> Tuple[float, List[float], float, list]:
"""
Given a batch of inputs (i.e. states) and targets (e.g. discounted rewards), computes and accumulates the
gradients for model parameters. Will run forward and backward pass to compute gradients, clip the gradient
values if required and then accumulate gradients from all learners. It does not update the model weights,
that's performed in `apply_and_reset_gradients` method.
Once gradients are accumulated, they are accessed by `accumulated_gradients` property of this class.å
:param inputs: typically the environment states (but can also contain other data for loss)
(e.g. `{'observation': numpy.ndarray}` with `observation` of shape (batch_size, observation_space_size) or
(batch_size, observation_space_size, stack_size) or
`{'observation': numpy.ndarray, 'output_0_0': numpy.ndarray}` with `output_0_0` of shape (batch_size,))
:param targets: targets for calculating loss. For example discounted rewards for value network
for calculating the value-network loss would be a target. Length of list and order of arrays in
the list matches that of network losses which are defined by network parameters
:param additional_fetches: list of additional values to fetch and return. The type of each list
element is framework dependent.
:param importance_weights: ndarray of shape (batch_size,) to multiply with batch loss.
:param no_accumulation: if True, set gradient values to the new gradients, otherwise sum with previously
calculated gradients
:return: tuple of total_loss, losses, norm_unclipped_grads, fetched_tensors
total_loss (float): sum of all head losses
losses (list of float): list of all losses. The order is list of target losses followed by list of
regularization losses. The specifics of losses is dependant on the network parameters
(number of heads, etc.)
norm_unclippsed_grads (float): global norm of all gradients before any gradient clipping is applied
fetched_tensors: all values for additional_fetches
"""
raise NotImplementedError
[docs] def apply_and_reset_gradients(self, gradients: List[np.ndarray], scaler: float=1.) -> None:
"""
Applies the given gradients to the network weights and resets the gradient accumulations.
Has the same impact as calling `apply_gradients`, then `reset_accumulated_gradients`.
:param gradients: gradients for the parameter weights, taken from `accumulated_gradients` property
of an identical network (either self or another identical network)
:param scaler: A scaling factor that allows rescaling the gradients before applying them
"""
raise NotImplementedError
[docs] def apply_gradients(self, gradients: List[np.ndarray], scaler: float=1.) -> None:
"""
Applies the given gradients to the network weights.
Will be performed sync or async depending on `network_parameters.async_training`
:param gradients: gradients for the parameter weights, taken from `accumulated_gradients` property
of an identical network (either self or another identical network)
:param scaler: A scaling factor that allows rescaling the gradients before applying them
"""
raise NotImplementedError
[docs] def get_variable_value(self, variable: Any) -> np.ndarray:
"""
Gets value of a specified variable. Type of variable is dependant on the framework.
Example of a variable is head.kl_coefficient, which could be a symbol for evaluation
or could be a string representing the value.
:param variable: variable of interest
:return: value of the specified variable
"""
raise NotImplementedError
[docs] def set_variable_value(self, assign_op: Any, value: np.ndarray, placeholder: Any):
"""
Updates the value of a specified variable. Type of assign_op is dependant on the framework
and is a unique identifier for assigning value to a variable. For example an agent may use
head.assign_kl_coefficient. There is a one to one mapping between assign_op and placeholder
(in the example above, placeholder would be head.kl_coefficient_ph).
:param assign_op: a parameter representing the operation for assigning value to a specific variable
:param value: value of the specified variable used for update
:param placeholder: a placeholder for binding the value to assign_op.
"""
raise NotImplementedError
[docs] def collect_savers(self, parent_path_suffix: str) -> SaverCollection:
"""
Collection of all savers for the network (typically only one saver for network and one for ONNX export)
:param parent_path_suffix: path suffix of the parent of the network
(e.g. could be name of level manager plus name of agent)
:return: saver collection for the network
"""
raise NotImplementedError


Invest
Select the assets
Add funds
Gross return rate
{{offer.grossReturn | percent}}
Fundsraising
{{offer.raisingAmount | currency:'USD':false:'.0-2'}}
Terms (months)
{{offer.paybackMonths}}
{{collateral}}
Assets Available
TOTAL {{totalAssetsValue | currency}}
Description of the company will be included here in order to specify it's focus and market, as well as any relevant information
City, country
www.website.com
{{offer.walletAddress}}


How do I Sell my Items faster?
Mockart can help you sell your items faster through our Do It For Me Service.We can either Post It For You or Sell It For You depending on your needs and preference.
Is it possible for Mockart to help me find an item I want to buy?
we can absolutely help you find an item you are interested in buying within any of our different categories. So if you are looking for an item to buy and your schedule means you are quite busy or don't have the time to browse the thousands of ads on the website, we can do this for you conveniently!
Why does the site look different?
Due to the recent upgrade of the Mokart site, there has been significant changes in the mobile app and the desktop site to further enhance your user experience with us! Our joy is to ensure you transact business on our platform easily and efficiently. Hope you have a pleasant experience buying and selling !
Is it possible for Mocart to help me find an item I want to buy?
We will absolutely help you find an item you are interested in buying within any of our different categories. So if you are looking for an item to buy and your schedule means you are quite busy or don't have the time to browse the thousands of ads on the website, we can do this for you conveniently! Please read more about our Find It For Me service here.
Why was my ad deleted (Multiple accounts)
Unfortunately, we had to suspend your account because we detected that you are using multiple accounts/e-mail address to post the same content. We apologize, but this is not allowed under our Terms of Use and Posting rules policy. Kindly read our Terms of Use (http://www.olx.com.ng/terms) and confirm which of your email addresses you would like to keep using so that we can reactivate one of your accounts.


Comes with 04 homepages available with multi style that better for your choice. drama
store is one of the best
Prestashop Theme for your store.
What Makes drama Prestashop Theme so Power Full ?
All of functions of your website will be guaranteed on almost devices: desktops,
laptops,
ipads, iphones, android.... and give visitors beautiful interfaces.
All of functions of your website will be guaranteed on almost devices: desktops, laptops,
ipads, iphones, android.... and give visitors beautiful interfaces.


About me??
I am an epidemiologist and biostatistician who studies HIV vaccine candidates. I love R and primarily use it for all of my research (although I do use python sometimes). This blog is where I share small side projects I work on, whether they are related to my research or something for fun.


| GEOS SDK TechDocs
|
| 1 Design Philosophy
| 3 Mailbox Structures & Utilities
The Mailbox library interacts directly with applications. It also manages drivers, which provide information about data formats, and also interact with the hardware links to the outside world. Thus, to support a new hardware device or data format, you just need to write a new driver.
The responsibilities of the Inbox/Outbox system are divided among four different agents:
-
The application packages outgoing data, and handles incoming data addressed to that application. It provides data in a format acceptable to the transport driver, and receives information in such a format. It generally uses the MailboxSendControl controller to let the user control the sending of messages.
-
The data driver describes how the information is stored; it thus lets the application know (indirectly) both how to assemble data for transport. (It is only concerned with the gross structure of the message, e.g. whether it's stored in a VM chain or a plain-text file. The structure above that level is opaque to the data driver.) It stores the message until the message is ready for transport. It also translates outgoing messages into a format appropriate for the transport driver, and translates incoming messages from such a format into its own internal format.
-
The transport driver interacts with the actual hardware device used to transmit or receive the data. It receives outgoingmessage data from the data driver, and sends it over the device; it receives incoming messages, and sends them to the appropriate data driver. In some cases, it may translate the message's data; for example, a fax transport driver might read a message containing a GString, and translate that into a standard fax format readable by a (non-GEOS) fax machine.
-
The Mailbox library manages the interaction between the other agents. It keeps track of messages that have been designated for transport at another time, and messages that have been received by the computer but not yet delivered to any application. It loads the appropriate drivers and applications when they are needed. It also provides UI, letting the user set options about how to handle outgoing and incoming messages.
| GEOS SDK TechDocs
|
| 1 Design Philosophy
| 3 Mailbox Structures & Utilities


sale
features
shirt
pants
contacts
0
0
home
/
asd
Filter products
Jackets & Coast
T-Shirts
Shirts
Hoodies
Apply
Reset
12 products
Order by
High
Low
Popular
Popular
- 30%
Product 1
This is a description of product 1
300.000 VND
- 30%
Product 1
This is a description of product 1
300.000 VND
- 30%
Product 1
This is a description of product 1
300.000 VND
- 30%
Product 1
This is a description of product 1
300.000 VND
1
2
3
4
fast & free delivery
fast & free delivery
fast & free delivery


This is my area to show off the artwork I made using
this. I used mostly the default settings and it took about 20 minutes to process each one using an Nvidia GTX 1060. At first, I wondered why I was only able to succeed with one content image being the low resolution image of myself. A few trials later I found this program is unable to work with large files.


Name:
Name2:
Age:
Mobile:
Submit
Name:
Submit
Content:
Submit
Content:
Please select thing
Value 1
Value 1
Submit
Name:
Re-Name:
Submit
Re-Name:
Submit


PRODUCTS
SALES RECORDS
Modify Product
Product Name
Product Category
Images:
Product Description
Product Price
Product Quantity
Product Minimum Stock
Confirm


#include <font2d.h>
Public Member Functions | |
| Font2D () | |
| Constructor. | |
| ~Font2D () | |
| Destructor. | |
| void | Create (Render2D *render, const Char *name_) |
| Creates 2d font from specified font data file in packdir image by ASCII name. | |
| void | Free () |
| Free user resources. | |
| void | Draw (const Char *text, Short x, Short y, Short *sx=NULL, Short *sy=NULL) |
| Send text to draw queue. | |
| void | Draw (Char c, Short x, Short y, Short *sx=NULL, Short *sy=NULL) |
| Send single character to draw queue. | |
| void | GetSize (const Char *text, Short *sx=NULL, Short *sy=NULL) |
| Get text size in pixels. | |
| void | GetSize (Char c, Short *sx=NULL, Short *sy=NULL) |
| Get character size in pxels. | |
| void | Scale (Fixed x, Fixed y) |
| Set new font scale. Default value is (1,1). | |
| void | GetScale (Fixed *x, Fixed *y) |
| Get font scale. | |
| void | SetAngle (Fixed angle) |
| Set new font rotate angle. | |
| Fixed | GetAngle () |
| Get font rotate angle. | |
| void | Rotate (Fixed angle) |
| Add new rotation to font. | |
| void | SetColor (Int color_) |
| Set new font color. | |
| Int | GetColor () |
| Get font color. | |
| Int | GetZOrder () |
| Return z order for font. | |
| void | SetZOrder (Int z_order_) |
| Set new z order for font. | |
| void | SetAlpha (Byte alpha_) |
| Set new alpha transparent value for font. | |
| Byte | GetAlpha () |
| Get alpha transparent value for font. |
|
|
Creates 2d font from specified font data file in packdir image by ASCII name.
|
|
|
Send single character to draw queue.
|
|
|
Send text to draw queue.
|
|
|
Get alpha transparent value for font.
|
|
|
Get font rotate angle.
|
|
|
Get font color.
|
|
|
Get font scale.
|
|
|
Get character size in pxels.
|
|
|
Get text size in pixels.
|
|
|
Return z order for font.
|
|
|
Add new rotation to font.
|
|
|
Set new font scale. Default value is (1,1).
|
|
|
Set new alpha transparent value for font. Default value is 255.
|
|
|
Set new font rotate angle. Default value is 0.
|
|
|
Set new font color. Default value is RGB(255,255,255).
|
|
|
Set new z order for font.
|


public class Controller
extends java.lang.Object
| Modifier and Type | Field and Description |
|---|---|
private Babysteps |
babysteps |
javafx.scene.control.MenuItem |
babystpsOffBtn |
javafx.scene.control.MenuItem |
babystpsOnBtn |
private javafx.scene.control.Button |
btnNextStep |
private javafx.scene.control.Button |
btnPrevStep |
private ChartTracker |
chartTracker |
private Backup |
codeBackup |
private TDDTCompiler |
compiler |
private static int |
exerciseIDX |
private javafx.scene.image.ImageView |
imgCode |
private javafx.scene.image.ImageView |
imgRefactor |
private javafx.scene.image.ImageView |
imgTest |
private Phase |
phase |
private java.lang.Thread |
t |
private Backup |
testBackup |
private Tracker |
tracker |
javafx.scene.control.TextArea |
txtCode |
javafx.scene.control.TextArea |
txtTest |
private static XMLLoader |
xmlLoader |
| Constructor and Description |
|---|
Controller() |
| Modifier and Type | Method and Description |
|---|---|
private boolean |
checkCodeAndTest() |
private boolean |
checkIfCompilableClass(java.lang.String code)
Checks if the code meets the minimum requirements of a Java class.
|
private boolean |
checkTest()
Checks if the test is compilable.
|
void |
initialize()
This method initializes some objects and disables the test textarea and the next step button.
|
void |
newTask()
Open Catalog chooser window, prepare main window for user interaction.
|
void |
nextPhase()
This method switches the program into the next TDD phase if the entered code meets the requirements.
|
void |
onNewExerciseClicked()
Opens a new stage in which the CatalogEditor is shown.
|
void |
prevPhase()
Switches the program into the previous phase.
|
void |
setBabystepsTime()
Opens a window in which the user can enter a new babysteps time.
|
void |
showTrackerLog()
Opens a new window in which the tracking log is shown.
|
void |
showTrackingChart()
Opens a new window in which the TrackingChart is shown.
|
void |
turnBabystepsOff()
Interrupts the babysteps thread and sets babysteps to disabled.
|
void |
turnBabystepsOn()
Creates a new Thread for babysteps.
|
private void |
updateGUIElements(Phase phase)
Updates the GUI elements to the new phases' requirements.
|
public javafx.scene.control.MenuItem babystpsOnBtn
public javafx.scene.control.MenuItem babystpsOffBtn
public javafx.scene.control.TextArea txtCode
public javafx.scene.control.TextArea txtTest
private javafx.scene.control.Button btnNextStep
private javafx.scene.control.Button btnPrevStep
private javafx.scene.image.ImageView imgTest
private javafx.scene.image.ImageView imgCode
private javafx.scene.image.ImageView imgRefactor
private Backup codeBackup
private Backup testBackup
private Phase phase
private Babysteps babysteps
private java.lang.Thread t
private TDDTCompiler compiler
private ChartTracker chartTracker
private Tracker tracker
private static XMLLoader xmlLoader
private static int exerciseIDX
public void initialize()
public void newTask() throws java.io.IOException
java.io.IOException
public void turnBabystepsOn()
public void turnBabystepsOff()
public void setBabystepsTime()
public void showTrackingChart()
The TrackingChart implementation.
public void showTrackerLog()
The Tracker implementation.
public void onNewExerciseClicked() throws java.io.IOException
java.io.IOException
- If the FXML for the CatalogEditor stage is corrupt.The CatalogEditor implementation.
public void nextPhase()
public void prevPhase()
private boolean checkTest()
private boolean checkCodeAndTest()
private boolean checkIfCompilableClass(java.lang.String code)
code
- The code that's checked.private void updateGUIElements(Phase phase)
phase
- The new phase.


inspired by the season
for the recipes you select
following our simple steps
Our world renouned celebrity chefs tailor make recipies for you to cook at home letting you be the chef of your own micchelin star meal
Read MoreGet worl class recipes delivered together with the ingrdients at your convenince.


[gecode-users] compiling a new propagator
Guido Tack
tack at ps.uni-sb.de
Fri Aug 14 19:24:55 CEST 2009
One possible problem could be that you declare a non-template
propagator. In that case, you may have to export all functions that
must be publicly available using the GECODE_INT_EXPORT macro.
Alternatively, you can try running configure with the --disable-gcc-
visibility option in order to switch on automatic export of all
functions.
Another option is to put your propagator not inside Gecode, but into
your own code (e.g. directly into the example.cpp file). That's
better practice anyway, as otherwise you'll end up patching your
propagator into Gecode with every version we release.
Anyway, you should verify with the nm and c++filt commands whether the
symbols actually end up in the generated .o and/or .so files.
Cheers,
Guido
amina kemmar wrote:
> hi,
>
> I still have the same error message when calling the new propagator
> that I added to the gecode/int package!
>
> if you can give me the steps to compile a new propagator and how to
> use it under gecode?
>
> thanks,
>
> amina.
>
> Avec Windows Live, vous organisez, retouchez et partagez vos photos.
> _______________________________________________
> Gecode users mailing list
> users at gecode.org
> https://www.gecode.org/mailman/listinfo/gecode-users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.ps.uni-sb.de/pipermail/users/attachments/20090814/8f30a7b5/attachment.htm>
More information about the gecode-users
mailing list


| Shot in France, England, Switzerland and the United States, this documentary covers director Alejandro Jodorowsky (El Topo, Holy Mountain, Santa Sangre) and his 1974 Quixotic attempt to adapt the seminal sci-fi novel Dune into a feature film. After spending 2 years and millions of dollars, the massive undertaking eventually fell apart, but the artists Jodorowsky assembled for the legendary project continued to work together. This group of artists, or his “warriors” as Jodorowsky named them, went on to define modern sci-fi cinema with such films as Alien, Blade Runner, Star Wars and Total Recall. | |
| Genres: | Documentary |
| Director: | Frank Pavich |
| Writer: | Cast: | Himself - Alejandro Jodorowsky Herself - Amanda Lear Himself - Brontis Jodorowsky Himself - Chris Foss Himself - Christian Vander Himself - Devin Faraci Herself - Diane O'Bannon Himself - Drew McWeeny Himself - Gary Kurtz Himself - H.R. Giger Himself - Jean-Paul Gibon Himself - Jean-Pierre Vignau Himself - Michel Seydoux Himself - Nicolas Winding Refn Himself - Richard Stanley Skeletor - Frank Langella He-Man - Dolph Lundgren Himself - Dan O'Bannon Herself - Flor |


{% extends 'base.html' %} {% block content %} New Project A project is a collection of transcriptions.  If transcriptions are a podcast episode, the project would be the Entire podcast.


Teachers
Add New Teacher
ID
First Name
Last Name
Age
Birthday
Cell Phone
Notes
Terms
Update
Add
Delete


"Clinical Cloud provides a suite of inter-connected applications that focus on bringing better electronic connectivity; achieving Real-Time Collaboration, Operations Monitoring and Information Exchange."
Site Trial Management solution automates the investigator tasks to manage site workflows, tasks and operation. One of the key areas of inefficiencies in Clinical Trial process is due to lack of Site Automation that leads to data quality issues at source and lack of real time visibility. Sites have unique challenges and need a light weight CTMS system preferably in Cloud/SAAS model that is very easy to use by site coordinators and investigators.
eTMF (Electronic Trial Master File) ensures the critical trial documents are in synch and central managers can review documents real time. There are a number of scenarios for Documents and Tasks to be assigned across the network of players from sponsors, CROs to sites and investigators. On a day to day basis a number of documents, queries and e-mails are exchanged leading to in-efficient tracking of right document versions, timely responses and data updates. All these workflows and documents are streamlined using a hosted solution that connects different players interacting in a Clinical Trial.
One of the critical areas to address in Clinical trials deals with data acquisition, cleansing, master data management, CDISC compliances, data storage, analysis, reporting and submissions. Clinical Data Repository is built using CDISC standards and serves as a common repository for Operational and Clinical data collected from downstream systems and used for integrated analytics and dashboards.


Simple options definition for Erlang. Enforces single important rule when it comes to configuration options: they are required to be documentated.
The library does not allow you to define types of attributes, instead relying on validation functions that you can provide yourself to validate the input data.
Each value is defined a property list that can have the following keys: required - boolean, signifies if the option is required from the caller. validation - A function that called on input. When not provided, it is assumed that the option is always valid. The function can also return any atom that will be part of the error. error_message - term that defines error to return from validation in case it is false. documentation - Documentation for the option in any form (list or binary.) default - Value that will be put in place if the caller did not provide one. A simple example:
{name, [required, {default, erlang}, {validation, fun is_atom/1}, {error, must_be_atom}, {documentation, <<"name of the language">>}]}
proplist() = [{atom(), term()} | atom()]
| describe/1 | Return all defined option keys with their documentation values. |
| merge/2 | Merge caller-provided options with the defined schema. |
describe(Definitions::proplist()) -> proplist()
Return all defined option keys with their documentation values.
merge(UserOpts::list(), Definitions::proplist()) -> proplist()
Merge caller-provided options with the defined schema. Performs the following steps in sequence: Ensure all options contain a "documentation" definition. For each defined option, errors out if it is required and user did not provide a value. Validate each user-provided option with provided validation function.
Generated by EDoc


Struct UserIpOption (2.9.0)
Configure the UserIp query parameter.
This can be used to separate quota usage by source IP address.
Type Aliases
Type
Alias Of:
std::string
Configure the UserIp query parameter.
This can be used to separate quota usage by source IP address.
std::string


Notes: From Faster R-CNN to Mask R-CNN
Contents
That’s my notes for the talk “From Faster-RCNN to Mask-RCNN” by Shaoqing Ren on April 26th, 2017.
Yesterday – background and pre-works of Mask R-CNN
Key functions
- Classification - What are in the image?
- Localization - Where are they?
- Mask (per pixel) classification - Where+ ?
- More precise to bounding box
- Landmarks localization - What+, Where+ ?
- Not only per-pixel mask, but also key points in the objects
Mask R-CNN Architecture
Classification
Please ignoring the bounding box in the image
$$ \text{class} = Classifier(\text{image}) $$
Problems
- High-level semantic concepts
- High efficiency
Solutions
- SIFT or HOG (about 5 or 10 years ago)
- Based on edge feature (low- level semantic infomations)
- Sometimes mistake two objects which people can distinguish easily
- e.g. mark the telegraph pole as a man
- CNN (nowadays)
- Based on high-level semantic concepts
- Rarely mistake objects. If it do so, people are likely to mix up them, too.
- Translation invariance
- Scale invariance
Detection
$$
\text{location}=Classifier(\text{all patches of an image)}
\text{precise_location}=Regressor(\text{image}, \text{rough_location})
$$
Problems
- High efficiency
Solutions
- Traverse all patches of an image and apply image classifier on them, then patches with highest scores are looked as locations of objects.
- As long as the classifier is precise enough, and we are able to traverse millions of patches in an image, we can always get a satisfactory result.
- But the amount of calculations is too large. (about 1 or 10 millon)
- Do Regression cosntantlty, starting from a rough location of an object, and finally we’ll get the precise object location.
- Low amount of calculations. (about 10 or 100 times)
- Hard to locate many adjacent and similar objects
- The state-of-the-art methods tend to use exhaustion on large-scale, and refine the rough localtions by regression on small-scale.
R-CNN
- Use region proposal to decline millions of patches into 2~10k.
- Use classifier to determine the class of a patch
- Use BBox regression to refine the location
SPP-net / Fast R-CNN
- Use Pyramid Pooling / RoI-Pooling to generate a fixed-length representation regardless of image size/scale
Faster R-CNN
- Use RPN (Region Proposal Network) that shares full-image convolutional features with the detection network, thus enabling nearly cost-free region proposals.
- An RPN is a fully convolutional network that simultaneously predicts object bounds and objectness scores at each position.
- The RPN is trained end-to-end to generate high-quality region proposals, which are used by Fast R-CNN for detection.
- We further merge RPN and Fast R-CNN into a single network by sharing their convolutional features—using the recently popular terminology of neural networks with ‘attention’ mechanisms, the RPN component tells the unified network where to look.
- Number of patches: $width \times height \times scales \times ratios$
scale
stands for the size of image and objectsratio
stands for the aspect ratio of filter
Different schemes for addressing multiple scales and sizes.
- Pyramids of images and feature maps are built, and the classifier is run at all scales.
- Pyramids of filters with multiple scales/sizes are run on the feature map.
- Faster R-CNN use pyramids of reference boxes in the regression functions, which avoids enumerating images or filters of multiple scales or aspect ratios.
SSD / FPN
- FPN (Feature Pyramid Network) exploit the inherent multi-scale, pyramidal hierarchy of deep convolutional networks to construct feature pyramids with marginal extra cost. A top-down architecture with lateral connections is developed for building high-level semantic feature maps at all scales.
Instance Segmentation
- Use Mask Regression to predict instance segmentation based on object bounding box.
- Replace RoI Pooling with RoI Align
Keypoint Detection
- We make minor modifications to the segmentation system when adapting it for keypoints.
- For each of the $K$ keypoints of an instance, the training target is a one-hot $m \times m$ binary mask where only a single pixel is labeled as foreground.
Today - details about Mask-RCNN and comparisons
RoI Align
- RoI pooling contains two step of coordinates quantization: from original image into feature map (divide by stride) and from feature map into roi feature (use grid). Those quantizations cause a huge loss of location precision.
- e.g. we have two boxes whose coordinate are 1.1 and 2.2, and the stride of feature map is 16, then they’re the same in the feature map.
- RoI Align remove those two quantizations, and manipulate coordinates on continuous domain, which increase the location accuracy greatly.
- RoI Align really improves the result.
- Moreover, note that with RoIAlign, using stride-32 C5 features (30.9 AP) is more accurate than using stride-16 C4 features (30.3 AP, Table 2c). RoIAlign largely resolves the long-standing challenge of using large-stride features for detection and segmentation.
- Without RoIAlign, AP in ResNet-50-C4 is better than that in C5 with RoIPooling, i.e., large stride is worse.Thus many precious work try to find methods to get better results in smaller stride. Now with RoIAlign, we can consider whether to use those tricks.
Multinomial vs. Independent Masks
- Replace softmax with sigmoid.
- Mask R-CNN decouples mask and class prediction: as the existing box branch predicts the class label, we generate a mask for each class without competition among classes (by a per-pixel sigmoid and a binary loss).
- In Table 2b, we compare this to using a per-pixel softmax and a multinomial loss (as com- monly used in FCN). This alternative couples the tasks of mask and class prediction, and results in a severe loss in mask AP (5.5 points).
- The result suggests that once the instance has been classified as a whole (by the box branch), it is sufficient to predict a binary mask without concern for the categories, which makes the model easier to train.
Multi-task Cascade vs. Joint Learning
- Cascading and paralleling are adopted alternately.
- On training time, three tasks of Mask R-CNN are paralleling trained.
- But on testing time, we do classification and bbox regression first, and then use those results to get masks.
- BBox regression may change the location of bbox, so we should wait it to be done.
- After bbox regression, we may adopt NMS or other methods to reduce the number of boxes. That decreases the workload of segmenting masks.
- Adding the mask branch to the box-only (i.e., Faster R-CNN) or keypoint-only versions consistently improves these tasks.
- However, adding the keypoint branch reduces the box/mask AP slightly, suggest- ing that while keypoint detection benefits from multitask training, it does not in turn help the other tasks.
- Nevertheless, learning all three tasks jointly enables a unified system to efficiently predict all outputs simultaneously (Figure 6).
Comparison on Human Keypoints
- Table 4 shows that our result (62.7 APkp) is 0.9 pointshigher than the COCO 2016 keypoint detection winner [4]that uses a multi-stage processing pipeline (see caption ofTable 4). Our method is considerably simpler and faster.
- More importantly, we have a unified model that can si-multaneously predict boxes, segments, and keypoints whilerunning at 5 fps.
Results
Future - discussion
Order of key functions?
- Order of classification, localization, mask classification and landmarks localization?
- Top down or Buttom up?
- Mask R-CNN uses Top-down method.
- the COCO 2016 keypoint detection winner CMU-Pose+++ uses Buttom-up method.
- Detect key points first (don’t know which keypoint belongs to which person)’
- Then gradually stitch them together
Precious & semantic label
box-level label -> instance segmentation & keypoints detection -> instance seg with body parts
Semantic 3D reconstruction
Future
- the performance & system improves rapidly
- join a team, keep going
- always try, thinking and discussion
- understand and structure the world


{% extends "layout-chs.html" %} {% block page_title %} File abridged accounts {% endblock %} {% block content %} {% include "includes/phase_banner_beta.html" %} Back File abridged accounts Use this service to file prepared and approved abridged accounts.  You won’t be able to save your answers or come back later to continue from where you stopped. There are 5 steps to complete: 1 Balance sheet 2 Balance sheet statements 3 Balance sheet notes 4 Check before you submit 5 Approve and submit Once we’ve received your accounts, you’ll get a confirmation email (with a reference number) at<EMAIL_ADDRESS>{% endblock %}
Use this service to file prepared and approved abridged accounts.
 You won’t be able to save your answers or come back later to continue from where you stopped.
There are 5 steps to complete:
Once we’ve received your accounts, you’ll get a confirmation email (with a reference number) at jsmith@testcompany.co.uk


Automatic Unit
Converter
Imperial
miles
yards
feet
inches
oz
lbs
st
US tons
°F
in³
US gal
Metric
km
m
cm
mm
g
kg
tonne
°C
mL
L


THE BOXER (1997) A Film Review by Ted Prigge Copyright 1998 Ted Prigge
Director: Jim Sheridan Writers: Jim Sheridan and Terry George Starring: Daniel Day-Lewis, Emily Watson, Brian Cox, Ken Stott, Gerard McSorley, Ciaran Fitzgerald, Elanor Methaven, Kenneth Cranham
Contrary to the title, "The Boxer" is not another Rocky story only this time spliced with some cold hard politics. It's actually three movies in one: a political film, a boxing film, and a love story. All of these work in their own respects and have some pretty decent balancing betwixt the three elements of the story, but somehow it seems kind of cliched and unoriginal. We've seen it all before, and we're just not blown away with it like we should be. Oh well. It's still an excellent irish story.
"The Boxer" of the title is Danny Flynn (Jim Sheridan staple Daniel Day-Lewis), an ex-IRA member who gets out of a Belfast prison after 14 years, and finds out that his troubles are far from over. First off, the IRA is having a small civil war between its leader Joe Hamill (Brian Cox), and one of its sub-leaders, Harry (Gerard McSorley), both having opposing views on getting many of their members out of jail.
While this is going on, Danny and his old drunkard buddie, Ike (Ken Stott, who played the chief inspector in Danny Boyle's "Shallow Grave"), re-open an old gym which allows the two opposing religios sects, Protestant and Catholics, to work together. Danny not only begins teaching kids how to box, but has stayed in great shape whilst in prison, and is ready to start boxing real people again.
And Danny runs into his ex-love, Maggie ("Breaking the Waves"'s Emily Watson), who hasn't seen him since he went in. They don't easily start up their romance again because she's the wife of a prisoner whom she married during Danny's tenure in prison, and also has a son, Liam (Ciaran Fitzgerald), from him, whom Liam is hoping will get out soon. But the two are slowly re-drawn to eachother again, and this begins to complicate things.
The political story is nothing really special but works in itself. We've seen it many a time before, but it's at least interesting, sometimes emotional, and even riveting at times. There's a big riot towards the middle of the film which is frightening in its brutality and honesty. The boxing story is very minor to the story, but does represent people coming together to fight eachother fairly, and even with good sportsmanship. There are only a few boxing scenes, but they're never like "Raging Bull"/let's-strip-down-the-sport-to-its-bones brilliant. They're more realistic, and instead of bone crunching, we hear the sound of the gloves hitting eachother, which is slightly unerving at times. And I didn't know Daniel Day-Lewis was in such good shape.
But the backbone of the story is the love one. Because these characters are given such horrible circumstances, and since the two leads have such great chemistry together, we really feel for their plight. As the film goes on, and circumstances get worse and worse, the characters have to make real human decisions, and we can sympathize with them as humans not characters. This is how you write a love story - take note, Hollywood.
These elements are pretty much equally balanced, with each of the parts of the stories working hand-in-hand with eachother. I loved how each of the different parts of the plot mattered, and sometimes spilled over into the next. It made sure that we didn't just care for one of them. I'm not saying they're all equally great, because the love story really carries the film, but at least they all work out respectively.
The acting is amazing, with Day-Lewis and Watson giving excellent performances and showing great chemistry. I'm not sure if they're Oscar-nominee bound, but they're very good. In the supporting roles, Billy Cox is greatly sympathetic as the IRA leader losing control of his daughter and his workers. But the film is stolen acting wise by Ken Stott as Ike, who is just a great scene stealer.
The direction and co-writing by Jim Sheridan (with the other co-writing credit going to Terry George) is excellent, rounding out the characters well, but not pacing everything greatly. I noticed that the first half was very leisurely (yet fascinating), but the second half whirls by at a quick pace, and ends much too quickly. More time could have been spent thinking up the ending, since it does seem quite sloppy.
Though "The Boxer" is a good film, it never achieves the greatness that it should. Sure, it's a masterpiece compared to most of the Hollywood drivel we usually get, but on it's own, it just could have been better. But it still works out, gives us a great love story combined with a political and boxing drama, and features great acting. Even if it could have been better, this'll do.
MY RATING (out of 4): ***
Homepage at: http://www.geocities.com/Hollywood/Hills/8335/
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


Thu Jan 10, 2008
Over at Wired’s video gallery you can watch some amusing tech vintage commercials. While I find the ones for the old Mac, the Vic-20, and the Commodore chuckle worthy, my vote for the funniest - and the most creative - goes to the 1980s ad for the Atari 5200’s Pole Position. Back in those days, the marketing strategy was basically to show as little of the game’s graphics as possible while hyping up the game in various ridiculous ways. That made for some highly creative advertising. Check out this howler:
Don’t you love the cheesy model car that gets picked up by the “giant” hand?


Announcing the Nordix Foundation Technical Committee formation activity
29 May 2018
Stockholm – 29th of May, 2018 - The Nordix Foundation is recruiting candidates to form the inaugural Technical Committee who will be tasked with establishing community governance for the foundation during 2018. The nomination period will remain open until the 18th of June where we will meet in Stockholm for the first time face to face.
The Nordix Foundation aims to cultivate an environment for open source technology incubation, to enable and promote the development and use of open source technologies, making these technologies accessible to the broader Nordic technical community.
(Read More...)


| Alias |
Status |
Mac |
IP |
Last Active |
Firmware |
Action |
| Primary Router |
Offline |
70:B3:D5:8D:81:7F |
<IP_ADDRESS> |
2017-09-06 16:24:02.0 |
2017-07-26-cd164410-090b98ac |
|
| Secondary Router |
Online |
79:A1:C2:3E:84:9H |
<IP_ADDRESS> |
2017-09-06 16:24:02.0 |
2017-07-26-ef112350-99cb18de |
|
Showing 1 to 2 of 2 entries


EXCLUSIVE: BG Knocc Out on Threatening Kodak Black Over Lauren London (Flashback)
by VladTVIn this VladTV Flashback from earlier in 2019, BG Knocc Out spoke on Kodak Black's comments on Lauren London following Nipsey Hussle's death, and broke down why he decided to come at Kodak online. BG Knocc Out then added that he doubts Kodak would come at him or T.I. in person, which you can hear more about above.