text:
#ifndef LIB_INCLUDE_TICK_BASE_PARALLEL_PARALLEL_H_
#define LIB_INCLUDE_TICK_BASE_PARALLEL_PARALLEL_H_

// License: BSD 3 clause

#include <array>
#include <functional>
#include <iostream>
#include <mutex>
#include <thread>
#include <type_traits>
#include <vector>

#include "parallel_utils.h"
#include "tick/base/interruption.h"

/*
 * This file implements templates for parallel computing of a method f(i,...)
 * for a range of i. There are mainly two templates :
 *      1. One which does not care about the returning value of f : parallel_run
 *      2. One which returns the returned values in an array : parallel_map
 *         In this case, there are two sub-cases :
 *         a- f(...) returns a type taken care by the SArray<V> (e.g.,
 * V=double,float,long,...) The collected returned values are stored in an
 * SArray<V>Ptr : SArray<V>Ptr parallel_map(...) b- f(...) returns a
 * type not taken care by the SArray<V>Ptr The collected returned values
 * are stored in an std::vector<V> std::vector<V> parallel_map(...)
 */

namespace tick {

inline std::tuple<ulong, ulong> get_thread_indices(unsigned int thread_num,
                                                   unsigned int num_threads,
                                                   ulong dim) {
  if (dim < num_threads) return std::make_tuple(thread_num, thread_num + 1);

  return std::make_tuple((thread_num * dim) / num_threads,
                         std::min(((thread_num + 1) * dim) / num_threads, dim));
}

}  // namespace tick

/// @cond

// This is the function that will be called on each thread
// It execute a given function on the given params and store the result in
// map_result
// We used to execute this lambda function
// [&map_result, &next_i, dim, &f, &obj, &args...]() {
//     while (next_i < dim) {
//         ulong i = next_i.fetch_add(1);
//         if (i >= dim) return;
//         map_result[i] = (obj->*f)(i, args...);
//     }
// }
// But with old gcc (< 4.9) templates and lambda functions do not compile

template <typename R, typename T, typename S, typename... Args>
void _parallel_map_execute_task_and_store_result(
    R &map_result, unsigned int thread_num, unsigned int num_threads, ulong dim,
    T &f, S &obj, std::exception_ptr &ex, Args &&... args) {
  ulong min_index{}, max_index{};

  std::tie(min_index, max_index) =
      tick::get_thread_indices(thread_num, num_threads, dim);

  try {
    for (ulong i = min_index; i < max_index; ++i) {
      map_result[i] = (obj->*f)(i, args...);
    }
  }
  // If an interruption was thrown we just return.
  // The Interruption flag is set and will be dealt during the join
  catch (...) {
    ex = std::current_exception();
  }
}

/*
 * This is a template to be called only by the templates below
 * It implements the parallelization in the cases 2. and 3.
 * collecting the result in a structure of type R (which is either Array<V> or
 * std::vector<V>)
 *
 * Look doc below to understand what the parameters are.
 */

template <typename R, typename T, typename S, typename... Args>
void _parallel_map(R &map_result, unsigned int n_threads, ulong dim, T f, S obj,
                   Args &&... args) {
  // if n_threads <= 1, we run the computation with no thread
  if (n_threads <= 1) {
    for (ulong i = 0; i < dim; i++) map_result[i] = (obj->*f)(i, args...);

    Interruption::throw_if_raised();
  } else {
    std::vector<std::thread> threads;
    std::vector<std::exception_ptr> exceptions{n_threads};

    for (unsigned int n = 0; n < std::min(static_cast<ulong>(n_threads), dim);
         n++) {
      threads.push_back(std::thread(
          _parallel_map_execute_task_and_store_result<R, T, S, Args...>,
          std::ref(map_result), n, n_threads, dim, std::ref(f), std::ref(obj),
          std::ref(exceptions[n]), std::ref(args)...));
    }

    for (auto &thread : threads) {
      thread.join();
    }

    tick::rethrow_exceptions(exceptions);

    // Throw an exception if interruption was detected while using a thread
    Interruption::throw_if_raised();
  }
}

/// @endcond

#include "tick/array/view.h"
/**
 * @brief This template allows to call, in a multi-threaded environment, a
 * method of a class on independent data referred to by an index. This template
 * is used when the method returns a value whose type V can be used in an
 * SArray<V>Ptr class.
 *
 * \param n_threads : the number of threads to use (if 0 or 1 then everything is
 * sequential, no thread is used)
 *
 * \param dim : the number of independent data
 *
 * \param f : a pointer to the method to be called (the first argument of this
 * method should be the ulong referring to the index)
 *
 * \param obj : the object the method should be called on (generally 'this')
 *
 * \param args : the other arguments of f
 *
 * \return returns the collected return values in an SArray<V>Ptr object
 */
template <typename T, typename S, typename... Args>
auto parallel_map(unsigned int n_threads, ulong dim, T f, S obj,
                  Args &&... args)
    // This template is only used if f returns a non void type V for which we
    // can build an SArray<V>Ptr class
    // ==> integral and floating point types
    -> typename tick::enable_if_python_primitive<T, S, Args...>::type {
  using return_type = tick::FuncResultType<T, S, Args...>;

  std::shared_ptr<SArray<return_type>> map_result =
      std::make_shared<SArray<return_type>>(dim);

  // Creating a view that will be filled during the parallel_map
  // One should avoid using SArrayDoublePtr in parallel_map since, the reference
  // counting part of this class is atomic which will result in slowing done the
  // multithreading
  Array<return_type> view1 = view(*map_result);

  // We forward the call to the _parallel_map template
  _parallel_map<Array<return_type>>(view1, n_threads, dim, f, obj, args...);

  return map_result;
}

/**
 * @brief This template allows to call, in a multi-threaded environment, a
 * method of a class on independent data referred to by an index. This template
 * is used when the method returns a value whose type V cannot be used in an
 * SArray<V>Ptr class. Thus the returned data are collected in an std::vector<V>
 * object.
 *
 * \param n_threads : the number of threads to use (if 0 or 1 then everything is
 * sequential, no thread is used)
 *
 * \param dim : the number of independent data
 *
 * \param f : a pointer to the method to be called (the first argument of this
 * method should be the ulong referring to the index)
 *
 * \param obj : the object the method should be called on (generally 'this')
 *
 * \param args : the other arguments of f
 *
 * \return returns the collected return values in an std::vector<V> object
 */
template <typename T, typename S, typename... Args>
auto parallel_map(unsigned int n_threads, ulong dim, T f, S obj,
                  Args &&... args)
    // This template is only used if f returns a non void type V which cannot be
    // used to build an SArray(view,n_threads,dim,f,obj,args.<V>Ptr class
    // ==> no integral nor floating_point types
    -> typename tick::enable_if_not_python_primitive<T, S, Args...>::type {
  using return_type = tick::FuncResultType<T, S, Args...>;

  std::vector<return_type> map_result(dim);

  // We forward the call to the _parallel_map template
  _parallel_map<std::vector<return_type>>(map_result, n_threads, dim, f, obj,
                                          args...);

  return map_result;
}

// This is the function that will be called on each thread
// It execute a given function on the given params and store the result in
// map_result
// We used to execute this lambda function
// [&map_result, &next_i, dim, &f, &obj, &args...]() {
//     while (next_i < dim) {
//         ulong i = next_i.fetch_add(1);
//         if (i >= dim) return;
//         map_result[i] = (obj->*f)(i, args...);
//     }
// }
// But with old gcc (< 4.9) templates and lambda functions do not compile

/**
 * @brief This template allows to call, in a multi-threaded environment, a
 * method of a class on independent data referred to by an index. This template
 * is used when one does not care about the values returned by f.
 *
 * \param n_threads : the number of threads to use (if 0 or 1 then everything is
 * sequential, no thread is used)
 *
 * \param dim : the number of independent data
 *
 * \param f : a pointer to the method to be called (the first argument of this
 * method should be the ulong referring to the index)
 *
 * \param obj : the object the method should be called on (generally 'this')
 *
 * \param args : the other arguments of f
 *
 */

/// @cond

// This is the function that will be called on each thread
// It execute a given function on the given params and discards the result
// We used to execute this lambda function
// [&next_i, dim, &f, &obj, &args...]() {
//     while (next_i < dim) {
//         ulong i = next_i.fetch_add(1);
//         if (i>=dim) return;
//         (obj->*f)(i, args...);
//     }
// }
// But with old gcc (< 4.9) templates and lambda functions do not compile

template <typename T, typename S, typename... Args>
void _parallel_run_execute_task(unsigned int thread_num,
                                unsigned int num_threads, ulong dim, T &f,
                                S &obj, std::exception_ptr &ex,
                                Args &&... args) {
  ulong min_index{}, max_index{};

  std::tie(min_index, max_index) =
      tick::get_thread_indices(thread_num, num_threads, dim);

  try {
    for (ulong i = min_index; i < max_index; ++i) {
      (obj->*f)(i, args...);
    }
  }
  // If an interruption was thrown we just return.
  // The Interruption flag is set and will be dealt during the join
  catch (...) {
    ex = std::current_exception();
  }
}

/// @endcond

template <typename T, typename S, typename... Args>
void parallel_run(unsigned int n_threads, ulong dim, T f, S obj,
                  Args &&... args) {
  // if n_threads <= 1, we run the computation with no thread
  if (n_threads <= 1) {
    for (ulong i = 0; i < dim; i++) (obj->*f)(i, args...);

    Interruption::throw_if_raised();
  } else {
    std::vector<std::thread> threads;
    std::vector<std::exception_ptr> exceptions{n_threads};

    for (unsigned int n = 0; n < std::min(static_cast<ulong>(n_threads), dim);
         n++) {
      threads.push_back(std::thread(_parallel_run_execute_task<T, S, Args...>,
                                    n, n_threads, dim, std::ref(f),
                                    std::ref(obj), std::ref(exceptions[n]),
                                    std::ref(args)...));
    }

    for (auto &thread : threads) {
      thread.join();
    }

    tick::rethrow_exceptions(exceptions);

    // Throw an exception if interruption was detected while using a thread
    Interruption::throw_if_raised();
  }
}

/// @cond

// This is the function that will be called on each thread
// It execute a given function on the given params and call the reduce function
// to merge the result of current thread to previous result reduce function must
// take as first argument the previous result, as second argument, the result of
// thread i and return the result of the merged result
template <typename T, typename S, typename BinaryOp, typename... Args>
void _parallel_map_execute_task_and_reduce_result(
    unsigned int thread_num, unsigned int num_threads, ulong dim,
    BinaryOp reduce_function, T &f, S &obj, std::exception_ptr &ex,
    typename tick::FuncResultType<T, S, Args...> &result_ref, Args &&... args) {
  ulong min_index{}, max_index{};

  std::tie(min_index, max_index) =
      tick::get_thread_indices(thread_num, num_threads, dim);

  try {
    for (ulong i = min_index; i < max_index; ++i) {
      result_ref = reduce_function(result_ref, (obj->*f)(i, args...));
    }
  }
  // If an interruption was thrown we just return.
  // The Interruption flag is set and will be dealt during the join
  catch (...) {
    ex = std::current_exception();
  }
}
/// @endcond

/**
 * @brief This template allows to call, in a multi-threaded environment, a
 * method of a class on independent data referred to by an index. The the method
 * must returns a value which be given to a reduce function that will update the
 * current result with it
 *
 * \param n_threads : the number of threads to use (if 0 or 1 then everything is
 * sequential, no thread is used)
 *
 * \param dim : the number of independent data
 *
 * \param reduce_function : a reduce function which takes as argument two value
 * of the type returned by f and reduce them into one result of the same type.
 * For example, if we want to return the sum of all our results, and ouf
 * function f return double we can define it with:
 *
 *       double add(double left, double right){
 *           return left + right;
 *       }
 *
 * \param f : a pointer to the method to be called (the first argument of this
 * method should be the ulong referring to the index)
 *
 * \param obj : the object the method should be called on (generally 'this')
 *
 * \param args : the other arguments of f
 *
 * \return returns the reduced result
 */
template <typename T, typename S, typename BinaryOp, typename... Args>
auto parallel_map_reduce(unsigned int n_threads, ulong dim,
                         BinaryOp reduce_function, T f, S obj, Args &&... args)
    -> typename tick::FuncResultType<T, S, Args...> {
  // RT stands for return type
  using RT = typename tick::FuncResultType<T, S, Args...>;

  std::vector<RT> local_results(n_threads, RT{});

  // if n_threads == 1, we run the computation with no thread
  if (n_threads == 1) {
    for (ulong i = 0; i < dim; i++)
      local_results[0] =
          reduce_function(local_results[0], (obj->*f)(i, args...));

    Interruption::throw_if_raised();
  } else {
    std::vector<std::thread> threads;
    std::vector<std::exception_ptr> exceptions{n_threads};

    for (unsigned int n = 0; n < std::min(static_cast<ulong>(n_threads), dim);
         n++) {
      threads.push_back(std::thread(
          _parallel_map_execute_task_and_reduce_result<T, S, BinaryOp, Args...>,
          n, n_threads, dim, reduce_function, std::ref(f), std::ref(obj),
          std::ref(exceptions[n]), std::ref(local_results[n]),
          std::ref(args)...));
    }

    for (auto &thread : threads) {
      thread.join();
    }

    tick::rethrow_exceptions(exceptions);

    Interruption::throw_if_raised();
  }

  {
    RT result{};

    for (auto &r : local_results) {
      result = reduce_function(result, r);
    }

    return result;
  }
}

/// @cond

/// @endcond

template <typename R, typename Functor, typename... Args>
void _parallel_map_array_execute_task_and_reduce_result(
    unsigned int thread_num, unsigned int num_threads, ulong dim, Functor f,
    R &local_result, std::exception_ptr &ex, Args &... args) {
  ulong min_index{}, max_index{};

  std::tie(min_index, max_index) =
      tick::get_thread_indices(thread_num, num_threads, dim);

  try {
    for (ulong i = min_index; i < max_index; ++i) {
      f(i, local_result, args...);
    }
  } catch (...) {
    // If an interruption was thrown we just return.
    // The Interruption flag is set and will be dealt during the join

    ex = std::current_exception();
  }
}

/**
 * @brief Reduction of arrays into arrays
 *
 * This parallel function is similar to the 'parallel_map_reduce', with the
 * exception that the current thread-local result (state) is given by reference
 * to the called functor 'f' as the first argument. The functor must update the
 * state instead of returning a result.
 *
 * Also, the reduction function must update the first/left-most reference
 * parameter instead of returning a value.
 *
 * @param n_threads Number of threads to execute for this parallel task
 * @param dim Number of tasks. Tasks are split into even groups and assigned to
 * each thread
 * @param redux Reduction function. Must take the form 'void(T& state, const U&
 * item)'
 * @param f Functor object. Must take the form 'void(ulong idx, T& state,
 * Args...& args)'
 * @param out Output reference. Also used to initialize the thread-local results
 * @param args Custom arguments passed to the functor
 */
template <typename R, typename Functor, typename BinaryOp, typename... Args>
void parallel_map_array(unsigned int n_threads, ulong dim, BinaryOp redux,
                        Functor f, R &out, Args &... args) {
  std::vector<R> local_results(n_threads, out);

  std::vector<std::thread> threads;
  std::vector<std::exception_ptr> exceptions{n_threads};

  for (unsigned int n = 0; n < std::min(static_cast<ulong>(n_threads), dim);
       n++) {
    threads.push_back(std::thread(
        _parallel_map_array_execute_task_and_reduce_result<R, Functor, Args...>,
        n, n_threads, dim, std::ref(f), std::ref(local_results[n]),
        std::ref(exceptions[n]), std::ref(args)...));
  }

  for (auto &thread : threads) {
    thread.join();
  }

  for (auto &local_result : local_results) {
    redux(out, local_result);
  }
}

/**
 * Identical to the other parallel_map_array, except this version takes a member
 * function pointer plus an object instead of a functor.
 *
 * @param n_threads Number of threads to execute for this parallel task
 * @param dim Number of tasks. Tasks are split into even groups and assigned to
 * each thread
 * @param redux Reduction function. Must take the form 'void(T& state, const U&
 * item)'
 * @param f Member function pointer to be called for each index value.
 * @param obj Object on which to invoke the member function pointer
 * @param out Output reference. Also used to initialize the thread-local results
 * @param args Custom arguments passed to the functor
 */
template <typename R, typename T, typename S, typename BinaryOp,
          typename... Args>
void parallel_map_array(unsigned int n_threads, ulong dim, BinaryOp redux, T f,
                        S *obj, R &out, Args &... args) {
  using std::placeholders::_1;
  using std::placeholders::_2;

  parallel_map_array<R>(n_threads, dim, redux,
                        std::bind(f, obj, _1, _2, std::ref(args)...), out);
}

/**
 * @brief This template allows to call, in a multi-threaded environment, a
 method of a class on
 * independent data referred to by an index. Each time the method returns a
 result, it will be
 * added to the sum of the previous ones
 *
 * \param n_threads : the number of threads to use (if 0 or 1 then everything is
 * sequential, no thread is used)
 *
 * \param dim : the number of independent data

 * \param f : a pointer to the method to be called (the first argument of this
 * method should be the ulong referring to the index)
 *
 * \param obj : the object the method should be called on (generally 'this')
 *
 * \param args : the other arguments of f
 *
 * \return returns the sum of all results
 */

template <typename T, typename S, typename... Args>
auto parallel_map_additive_reduce(unsigned int n_threads, ulong dim, T f, S obj,
                                  Args &&... args) ->
    typename tick::FuncResultType<T, S, Args...> {
  using RT = typename tick::FuncResultType<T, S, Args...>;

  return parallel_map_reduce(n_threads, dim, std::plus<RT>{}, f, obj, args...);
};

#endif  // LIB_INCLUDE_TICK_BASE_PARALLEL_PARALLEL_H_

redpajama_set_name: RedPajamaGithub


text:
Rough Cuts | Japanese community in Davao
By Vic Sumalinog on October 10, 2019
We should have written this item during the week-end, but for lack of material time we have to defer this for today.
We are referring to this item about the commemoration of the centennial year of the evolution of the Japanese as a community in Davao City last Saturday, October 5, 2019.
The commemoration was capped with an exhibit in one of the city's malls. The exhibit showed documentary mementos of the Japanese communities, activities, businesses and interactions with local residents.
So, if the centennial of the Japanese evolving into a community in Davao is this year, we presume that their evolution as an active component of Davao society was in the year 1919. And that is about 15 years since the first wave of Japanese came to Davao to work for the different coconut plantations then newly opened by some American soldiers who came to Davao as part of their take-over of the Philippines from Spain under the Treaty of Paris on December 10, 1898.
Yes, the Japanese who were then rendered jobless after they completed the construction of the Kennon Road leading to Baguio City were brought to Davao to meet the worker requirements of the huge coconut plantations.
Again they were under contract with the American plantations with Ohta Kyosaburu as the labor supplier.
But according to the book Davao City: Its History and Progress written by educator Gloria P. Dabbay, the first wave of Japanese who were brought to Davao were imported workers. They numbered about 200 hardy individuals. Hence, we might as well assume that they were Japan's version of overseas workers. So we could safely say that they maybe the OJWs or Overseas Japanese Workers during that time. Our workers abroad these days are called Overseas Filipino Workers, our modern heroes, so says the government. And many of them are in Japan. It's kind of a reversal of fortune.
Dabbay's book further said that sometime later when many American planters returned to the United States, they sold their lands and the OJWs became the plantation owners themselves. The more enterprising of them introduced the corporate farming system with support from fellow Japanese in their home country and their government.
It was during this time that the Japanese came as executives of and consultants to the corporate farms. So, according to Dabbay's book, by 1919 the Japanese communities were already thriving and vibrant and seemingly in large control of Davao's economic activities.
Some Japanese brought their entire families in Davao. They were into different kinds of businesses from retail to wholesale, from import to export, from soy sauce manufacture to soft drinks and liquor production, from transportation to bars and other drinking establishments.
There were those single Japanese who married native women and started their families here. Apparently it was in 1919 that the Japanese allowed themselves carefully integrated by Davao society. Thus, to our mind it is the reason why the current Japanese government considers 1919 as the official start of the Japanese community's foundation in Davao. But whatever is or are the reasons behind considering 1919 as the start of the counting of the years of the evolution of the Japanese community in
Davao we can only thank them as much for laying the foundation of the level of development that the city has today.
Yes, the fact is they helped build Davao for more than three decades. They who came here may also have aided in the city's massive destruction during the Second World War. And the Japanese were ostracized for such misdeed. But it was the same wound inflicted by the Japanese during their attack and occupation of the Davao they helped build that also opened the opportunity for them to be part of the Davao that it is today.
The difference is that the present Japanese community simply remains in their country even as it continues to interact with Davao's own through the technology-driven trade between Davao and Japanese businessmen, and the globalization of nations.
Vic Sumalinog
CALL TO QUASH THE SENATE BILL 2422 KNOWN AS "VACCINE PASSPORT BILL," AND HOUSE BILL 10249 KNOWN AS "AN ACT PROVIDING FOR MANDATORY CORONAVIRUS 2019 VACCINE FOR ALL FILIPINO CITIZENS…" AND ALL OTHER BILLS AND RESOLUTIONS MANDATING THE VACCINATIONS TO EVERY FILIPINO, ESPECIALLY OUR CHILDREN and UPHOLD REPUBLIC ACT 11525
FROM THE MAIL | Canada announces details of PhP 120-million Humanitarian Assistance for those affected by Super Typhoon Odette
HONORING MY MOTHER | Leveling up

redpajama_set_name: RedPajamaCommonCrawl


text:
Gavan Hunter, Andrew Pattle and Mark Foster
A piping incident occurred during first filling of Rowallan Dam, Tasmania in 1968. The incident occurred at the interface of the embankment with the spillway wall, a 15 m high near vertical wall, where the contact earthfill eroded into the single stage downstream filter. Repairs were undertaken in 1968/1969 and the reservoir has operated largely without incident since.
A risk assessment in 2009 identified that piping through the embankment at the spillway wall interface remained a significant dam safety risk. Investigations in 2010 encountered cracking within the earthfill core at the spillway wall interface.
Dam safety upgrade works were undertaken in 2014/15 to address the piping failure mode at the spillway walls and also within the upper portion of the embankment. The works required excavation down to a rock foundation at depths up to 18 m adjacent to the spillway walls and this excavation provided an unusual opportunity to closely examine active piping features that had been preserved when interim repairs in 1968/69 had arrested the progression of piping. The repair comprised reconstruction of a significant portion of the embankment at the spillway and the reconstruction of the upper 7 m of the crest, which included dual filters downstream of the earthfill core.
The findings from the forensic investigations of the deep excavations adjacent to the right spillway wall are described in this paper along with a summary of finding from the 1968/69 repair works and a discussion of the piping mechanism at the spillway wall. The paper also covers the design and construction of the repair work. The focus of this paper is on advancements in our understanding of piping risk arising from the Rowallan Dam work.
In conclusion, (i) the upgrade works successfully reduced the dam safety risk of Rowallan Dam; (ii) the findings support the methodologies of the piping toolbox; (iii) the case study provides insight into filtering and crack filling mechanisms that have a broader implication for estimating the risks of internal erosion within existing dams; and (iv) the findings support the assessment of the low residual risks for piping through the embankment away from the upgrade work areas (crest reconstruction and spillway walls).
Keywords: Earth and rockfill embankment, piping incident, piping mechanism, dam safety upgrade.
2015 – Partial Reconstruction of Rowallan Dam to Repair a Piping Incident


Kerry London Limited Insurance Group is keen to support all prospective and current Club Managers to fulfil their potential in an often demanding profession. Kerry London supports all aspects of cricket, offering insurance to clubs and stadia, individuals and professional players.
Chief Executive, Imogen Coggan, wants to provide one fortunate person the opportunity to attend the three day Annual European Conference on Club Management. Kerry London will select one successful candidate and cover the costs for the delegate fee and any travel. Any first time attendee to Conference is eligible, all they need to do is explain in 750 words their commitment to using the knowledge gained to improve their Club.
To apply for the bursary to attend the European Conference please download and complete the application form.


Villanova's College of Professional Studies offers a certificate in Information Systems designed to help you acquire information technology and technology management skills through a broad selection of coursework.
Having an understanding of information management is a necessity. This certificate will provide you with a formal education in information management and information systems. A certificate in Information Systems will provide you with the background you need to excel in today's information age and global economy.
To earn a Certificate in Information Systems from Villanova University, you must complete a curriculum of six (6) courses totaling nineteen (19) credits - four (4) required courses and two (2) approved electives.
CSC 1020 Computing & the Web: Information representation and manipulation; file systems and directories; compatibility and data exchange; security and privacy; elements of computer architectures and operating systems; computer networks, the Internet, and the World Wide Web; web site design principles and creation; PC-based examples and illustrations.
VSB 2006 Strategic Info Technology: Strategic alignment of business and information technology (IT); managing IT as a strategic resource; strategies for sourcing IT development and services.
CSC 1051 Algorithms & Data Structures I: Object-oriented design: objects, classes, methods, encapsulation; programming fundamentals: data, variables, selection, loops, arrays, input/output; basic graphics and exceptions (Note: this is a prerequisite course for CSC 1052 Algorithms & Data Structures II).
CSC 4480 Principles of Database Systems: Concepts and technology of database management systems; data modeling with an emphasis on the relational model; database querying and normalization; physical data organization.
MIS 2030 Database Management: Theoretic and practical issues related to the management of a data base in a business environment including: the role of databases and database applications in contemporary organizations; data modeling using entity-relationship models; fundamentals of the relational data model and its implementation with SQL; characteristics of distributed databases and Client/Server data base technologies.
CSC 4700 Software Engineering: Management and production of software systems; the software life cycle; software design techniques and methodologies; participation in a team software development project.
MIS 2040 Systems Analysis & Design: Concepts, tools and techniques in the analysis and design of computer-based information systems; major issues and decision making in each phase of the development life cycle, application of creativity and innovation to the practice of systems analysis and design, skills necessary for modeling the data and processing requirements of an information system using an automated development tool, a systems development team project approach.
CSC 1052 Algorithms & Data Structures II: Object-oriented design: inheritance, interfaces, polymorphism; problem analysis; recursion; abstract data types; dynamically linked structures; data structures: stacks, queues, lists, collections, trees (Note: this is a prerequisite course for CSC 4700 - Software Engineering).
CSC 1300 Discrete Structures: Mathematical concepts that support computer science: sets, functions, relations, combinatorics, recurrences, boolean logic, mathematical proofs, matrices, graphs and trees (Note: this is a prerequisite course for CSC 4480 - Principles of Database Systems and CSC 2400 - Computer Systems I).
CSC 2400 Computer Systems I: Architecture of computer systems: representation of data; processor, memory and I/O organization. Assembly language programming. C programming language constructs and their relationships to the underlying architecture. Basics of operating systems: interrupts, concurrency, process scheduling, security, networking.
CSC 2500 Survey of Information Science: Brief introductions to several areas in which problems in information use are important. Examples are business, law, biology, medicine, electronic commerce, and libraries.
CSC 3070 Emerging Technology Trends: Investigate new technologies and current applications. Explore when and how to apply new technologies with sensitivity to feasibility, financial viability, and overall effectiveness. Culminates in team-driven exploitation of a new technology.
CSC 3080 Information Security & Protection: Explores the criticality of protecting information's availability, accuracy, authenticity, confidentiality, and integrity. Analysis of topics to include redundancy, backup and recovery, business continuity, security technologies, and controls such as audit, change management and testing.
CSC 4710 Information Systems Project Management: Principles and techniques of information systems project management; qualitative and quantitative essentials to include project integration, scope, schedule, cost, quality, human resources, communications, and risk. Practical experience managing a project with complex technology issues.
MIS 3020 Enterprise Systems & Applications: Management and development enterprise computing concepts and applications in today's organization; integration of information systems in real time for support of internal functions; integration of different E-Commerce front ends with the Enterprise Resource Planning (ERP) system for extension of their functionality.
You are required to have completed the prerequisites for any course for which you register, as indicated in Villanova's Undergraduate Catalog.
©1990 - Fri Apr 19 15:04:36 EST 2019 Villanova University. All rights reserved.


text:
VARNAS, MARTYNAS
U18 Zalgiris Kaunas 13 Guard
Height: 1.96 Born: 21 January, 1997 Nationality: Lithuania
2014-15 ANGT STATISTICS
Totals 7 7 218:39 80 22/49 7/39 15/21 4 19 23 23 5 19 1 5 13 25 55
Averages 7 7 31:14 11.4 44.9% 17.9% 71.4% 0.6 2.7 3.3 3.3 0.7 2.7 0.1 0.7 1.9 3.6 7.9
U18 Kaunas
13 * vs U18 Spars Sarajevo 33:21 9 4/9 0/6 1/2 1 1 2 1 5 2 5 -1
14 * at U18 Unicaja Malaga 39:04 13 3/5 2/10 1/1 3 3 8 1 3 1 1 2 2 12
15 * vs U18 Crvena Zvezda Telekom Belgrade 22:52 5 1/4 1/5 1 3 4 5 1 4 1 3
3 Totals 95:17 27 8/18 3/21 2/3 1 7 8 15 2 8 1 2 8 8 14
Average 31:45 9 44.4% 14.3% 66.7% 0.3 2.29 2.7 5 0.7 2.7 0.3 0.7 2.7 2.7 4.7
7 * at U18 USK Future Stars Prague 26:48 7 3/9 0/3 1/2 1 4 5 3 1 1 2 7
7 * vs U18 Bayern Munich 29:36 20 3/5 3/7 5/6 1 1 2 2 6 1 2 7 16
8 * at U18 INSEP Paris 35:45 17 4/7 1/6 6/8 1 5 6 1 2 1 1 5 15
9 * vs U18 VEF Riga 31:13 9 4/10 0/2 1/2 1 2 3 2 3 1 1 3 3
4 Totals 123:22 53 14/31 4/18 13/18 3 12 15 8 3 11 0 3 5 17 41
Average 30:50 13.3 45.2% 22.2% 72.2% 0.8 3 3.8 2 0.8 2.8 0 0.8 1.3 4.3 10.3
2014-15 ANGT individual rankings
#4 in Assists (15)
#4 in Assist-turnover ratio (187.5%)
#4 in 3-pointers attempted (21)
#7 in Field goals attempted (39)
#10 in Games Started (3)
#11 in Minutes Played (95:17)
#12 in Blocks against (2)
#17 in Games Played (3)
#17 in Turnovers (8)
#20 in 3-pointers made (3)
#20 in Field goals made (11)
#24 in 2-pointers attempted (18)
#24 in Fouls Commited (8)
#1 in Games Played (4)
#1 in Games Started (4)
#3 in Fouls Drawn (17)
#4 in Minutes Played (123:22)
#5 in Blocks against (3)
#5 in Free throws attempted (18)
#5 in Free throws made (13)
#9 in Points (53)
#11 in 2-pointers made (14)
#15 in Index Rating (41)
#16 in Assists (8)
Index rating 18 U18 ZALGIRIS KAUNAS vs. U18 FENERBAHCE ISTANBUL 5/16/2014
Points 25 U18 ZALGIRIS KAUNAS vs. U18 FENERBAHCE ISTANBUL 5/16/2014
Offensive rebounds 2 U18 ZALGIRIS KAUNAS vs. U18 FENERBAHCE ISTANBUL 5/16/2014
Defensive rebounds 5 U18 CFBB Paris vs. U18 ZALGIRIS KAUNAS 1/17/2015
Total rebounds 6 U18 CFBB Paris vs. U18 ZALGIRIS KAUNAS 1/17/2015
Assists 8 U18 Unicaja Malaga vs. U18 ZALGIRIS KAUNAS 5/15/2015
Steals 2 U18 ZALGIRIS KAUNAS vs. U18 FC BAYERN MUNICH 1/16/2015
Blocks 2 U18 LUDWIGSBURG vs. U18 ZALGIRIS KAUNAS 2/7/2014
Minutes 39 U18 Unicaja Malaga vs. U18 ZALGIRIS KAUNAS 5/15/2015
Made his debut with BC Zalgiris Kaunas 2nd Team, NKL (Lithuania), during the 2013-14 season.
Made his debut with the main team during the 2016-17 season.
Has been member of the Lithuanian U-16, U-18 and U-20 National Team.
Won the silver medal at the 2016 European U-20 Championship.
Won the bronze medal at the 2015 European U-18 Championship.
2013-14 IJT ZALGIRIS KAUNAS 7 91 13 17/35 48.6 15/37 40.5 12/16 75 23 6 19 3
2014-15 U18 Zalgiris Kaunas 7 80 11.4 22/49 44.9 7/39 17.9 15/21 71.4 23 5 23 1
Totals 14 171 12.2 39/84 46.4 22/76 28.9 27/37 73 46 11 42 4
Averages 14 171 12.2 39/84 46.4 22/76 28.9 27/37 73 3.3 0.8 3 0.3
2013/14 Zalgiris 2 27 107 4.0 20/44 45.5 17/37 45.9 16/25 64.0 58 15 18 2
2014/15 Zalgiris 2 38 429 11.3 104/211 49.3 48/143 33.6 77/106 72.6 127 31 106 7
2015/16 Zalgiris 2 44 629 14.3 126/243 51.9 84/216 38.9 125/162 77.2 151 42 122 5
2016/17 Zalgiris 2 9 4.5 1/4 25.0 2/3 66.7 1/2 50.0 1 0 3 0
Zalgiris 2 16 158 9.9 25/55 45.5 24/78 30.8 36/48 75.0 48 21 39 2


The legacy of the Black Dagger Brotherhood continues in a spin-off series from the #1 New York Times bestselling author… Paradise, blooded daughter of the king's First Advisor, is ready to break free from the restrictive life of an aristocratic female. Her strategy? Join the Black Dagger Brotherhood's training center program and learn to fight for herself, think for herself…be herself. It's a good plan, until everything goes wrong.


On the ability to get more complex, director Dean DeBlois said protagonist Hiccup's costume "would normally have been too complicated." The system will be discussed further at Siggraph.
How To Train Your Dragon 2 marks the first feature created using DreamWorks Animation's new Apollo animation platform, developed and implemented over the course of the past five years. And this topic will be part of a featured session presented by DWA on the acclaimed sequel during Siggraph, the annual CG conference that begins Aug. 10 in Vancouver.
Apollo will now be used on all future DWA productions, including upcoming releases The Penguins of Madagascar and Home.
For Dragon 2 — which is already generating Oscar buzz — director Dean DeBlois said Apollo let him do things he couldn't before, including, specifically, getting more complex. "We used to have to simplify a lot of our characters, and animators had to work on characters individually, waiting lengthy times to render," he told The Hollywood Reporter. "They no longer have to do that; it's real time, and it allows us to have detailed characters."
Dragon's protagonist, Hiccup, with his textured costume, is a perfect example. "This costume would normally have been too complicated. Apollo allowed us to not only have that detail, but also be able to move it around in real time," said DeBlois. "[Apollo also let us have] several characters on several dragons, or in an extreme example, thousands of soldiers on a beach with dragons and warfare."
The director added that it also gives the animators an intuitive way to work. "They used to work with pull down menus to make simple adjustments; now they work with a stylus and tablets, just like a stop-motion animator would work with a clay puppet. They can go back and tweak and finesse and bring subtly to the performance," DeBlois said. "They could have always done that, but they can do it much more efficiently now, allowing them to tweak more that in the past."
The animation platform incorporates the new Premo animation tool and Torch lighting package, as well as other new tools in the pipeline, including data management, effects systems and layout systems. It's supported by a combination of cloud computing with an in-house multicore architecture. Intel was heavily involved in the development, and HP also contributed.
To develop and implement a change of this magnitude across the company, CTO Lincoln Wallen said this represents an investment of tens of millions of dollars. The process involved connecting the main DWA campus in Burbank; PDI/DreamWorks in Northern California; DWA in Bangalore, India; and HP in Las Vegas.
"This is the next generation of cloud," Wallen told THR. "This is a new paradigm for large-scale creative expression. This is very efficient as well as extensive, in terms of the refineability and quality of the image."
Commenting on the bigger picture, he added, "It's not just something that can be used for visual effects or animated movies, but for something that numbers of companies will be able to create and deploy for a range of value propositions, whether that be for entertainment or promotion, design or manufacturing."
"In our business, we are exploring what this platform means for the way in which we reach consumers, or entertain consumers, and we can conceive of delivering products that are much more pervasive for movies or new forms of entertainment," said Wallen.
Scheduled presenters on DWA's How To Train Your Dragon 2 session at Siggraph include DeBlois, head of layout Gil Zimmerman, head of character animation Simon Otto and VFX supervisor Dave Walvoord.
A video further describing Apollo can be viewed here.


text:
Samsung Galaxy A71 5G Certified From 3C With 25W Charging
The Samsung Galaxy A71 has been out for a while now but the 5G variant of the phone is yet to be make an official debut.
The Samsung Galaxy A71 5G has now gotten a certification from a Chinese agency called 3C which shows some of the phone's specs.
On the 3C certification, the Galaxy A71 5G bears model number SM-A7160 which is the same model number seen on Geekbench. Geekbench revealed that the phone will come with the Exynos 980 SoC, 8GB RAM and Android 10.
The document reveals that the phone will be equipped with a 25W fast charger.
The Galaxy A71 5G is expected to make its debut in the US, China, Australia, New Zealand and several European markets but no date has been set.
More info on the phone will be updated as it comes.
Related Items:Android, android phones, mobile tech, mobile tech news, samsung, samsung Galaxy, Samsung Galaxy phone, Samsung phone, smartphone
A New Variant With 512GB Storage For Samsung Galaxy S10 Lite
Samsung Galaxy S20 Series Available For Purchase From Today


text:
We are all unique, defined by our own passion and drive. In order to unleash your natural potential, you need to stay true to your nature.
"I love challenging myself and others to work differently to achieve business and customer goals."
More on LinkedIn
"We strongly believe that diversity & inclusion builds higher performing teams, fosters creativity, leads to better decisions, and supports the creation of products and services that reflect the needs of the communities we serve."
"You can't take me away from empowering people and myself. It comes out every day in how I work and what I do".
"If you're interested in other people and things that are new, you always end up in places where you grow."
In her career, Marietta has taken very courageous decisions. From moving to another country, to managing a challenging transformation and making difficult decisions.
Our R&D colleagues in Belgium have worked on this great innovation, where you have a delicious cheese tea topping with the push of a single button.
We start this World Milk Day with healthy and nutritious breakfasts with consumers, colleagues, and member dairy farmers.
Growing up, I watched my father leave the house at 6am every morning, never missing a day of work! He taught me to always be honest, to have integrity and to put family first.
My curious nature gives me the flexibility to adapt to changes fast. 10 roles in 15 years in different FrieslandCampina offices and enjoying the adventure!
More on Facebook
Working on challenges like ensuring a team spirit and making sure people are moving in the right direction energises me.
I'm a problem solver by nature and I want to be that brand custodian that best understands shoppers' pain points and offers them the right solutions.
"It's a challenging journey to reach our goal of making our packaging of 100% recyclable plastic in 2025. We can only achieve this by working together."
"Staying true to myself means putting myself in the shoes of others."
"In the face of multiple challenges, we, as digital marketing team have chosen to adopt innovative methods."
"Collaboration with other departments is very important in my role. I am the link between the different departments."
Did you know that every colleague in our Düsseldorf office in Germany paints his or her own cow?
Our colleagues in the office in Thailand, starting their working day with a delicious "Foremost Tokyo Banana".


A central task force on Artificial Intelligence (AI) has suggested creating a National Artificial Intelligence Mission (N-AIM).
It is the science and engineering of making intelligent machines, especially intelligent computer programmes. AI should be seen as a scalable problem solver in India rather than only as a booster of economic growth.
The Union Ministry of Commerce and Industry has constituted a Task Force on Artificial Intelligence (AI) for India's Economic Transformation.
The Task force will explore the possibilities to leverage AI for development across various fields. It will submit concrete and implementable recommendations for government industry and research, institutions.
The panel has recommended an inter-ministerial National Artificial Intelligence Mission (N-AIM), that will act as a nodal agency for coordinating AI related activities in India.
The core activities include funding establishment of a network among Academia, services industry, product industry, startups and Government ministries, besides helping studies to identify concrete projects in each domain of focus.
Enabling policies and forging bilateral cooperation with countries like Canada, Germany, Israel, UK and US to develop AI solutions for social and economic problems and sharing the best practices were also recommended.


There are few things worse than trying to return a pair of shoes you'll never wear only to find out that the 30-day window passed, or getting stuck with a lipstick that's the complete wrong shade for you because you already opened it (how else are you supposed to know?!).
As someone who recently discovered the joys of returning, I just can't accept keeping something I'll never use. And don't even get me started on store credits.
The solution? Shop at stores with amazing return policies. You won't have to sing the days of the month song to figure out if you made the cut-off, or dig through the garbage for your missing receipt (spoiler: It was in your purse the whole time). Here are my favorites.
I love Anthropologie, but I'll be the first to say it: They aren't cheap. Knowing I can return anything I don't 100% love makes me feel OK with the price tags, though. With the exception of some furniture items, they'll take anything back — at any time. I have personally returned shoes so uncomfortable they drew blood and a denim jacket I wore a couple times before finding another version I liked better (also from Anthropologie; I'm not a monster!). And if you're an Anthro member, you don't even need the physical receipt; they can look up your purchase history and credit you back.
For anyone who's ever found her sports bra saggy or leggings on the wrong side of see-through, cry no more. Athleta's "Give-It-A-Workout Guarantee" actually encourages customers to try its products and bring back what doesn't, well, work out. And unlike its sister stores, Gap, Old Navy and Banana Republic, there are no time restrictions or item limitations.
That sense of dread you have when you realize you lost your receipt? You won't have it at Bed Bath & Beyond. If the purchase was made in the last year, they'll try to track it down in their system and refund you.
The downside of buying in bulk? If you don't like something, you're stuck with a whole lot of it. But not if you got it from Costco. This wholesaler will take back used, eaten or worn items if you're not totally satisfied with them, so you can return those granola bars your kids hate, even after you've opened the box. There are some exceptions, though, including electronics and appliances, which need to be returned within 90 days, and items with a limited lifespan such as batteries and tires.
If you're not buying your beauty products from CVS or Target (see below), you're doing it wrong. They have a 100% satisfaction guarantee on beauty purchases and CVS/pharmacy brand products, meaning you can return them at any time, for any reason, whether they're opened or not. Rejoice!
Landscaping your new backyard or starting the garden of your dreams? Get your plants from Home Depot. Their "live goods" return policy guarantees perennials, trees and shrubs for a whole year. So if they unexpectedly die in that time, you're entitled to a full refund.
This retailer's "Guaranteed. Period." policy means you can return anything you're not satisfied with, at any time, including worn and personalized items.
Perhaps just as well known as its trademark boots is L.L. Bean's return policy. Not totally satisfied? They'll take it back, any time.
Nordstrom's official policy is annoyingly vague: "We handle returns on a case-by-case basis with the ultimate objective of making our customers happy," but the retailer is known to take back anything, for any reason, at any time. Be warned, though, that this doesn't hold true for Nordstrom Rack, which gives you 90 days to bring back your unwanted and unworn items.
Go ahead; try out that new mascara you've been eyeing. Target takes back beauty products, even if opened, within 90 days with your receipt, or 120 days if you used your Target credit card. You also have a year to bring back any Target-Owned Brand items for a refund — and lots of brands fall under this umbrella, like Cat&Jack, C9 by Champion, Nate Berkus, Project62 and up & up.


text:
Az Ayles-selfjég vagy Ayles-jégpad a hat nagy kanadai selfjég egyike volt. Az Ellesmere-sziget északi partján feküdt (83°1.5′N, 77°33.5′W). A selfjég 2005. augusztus 13-án szakadt le, nagy jégszigetet képezve, mely 37 méter vastag, 14 kilométer hosszú és 5 kilométer széles. Körülbelül 66 négyzetkilométer, illetve 2,6 km³ nagyságú) A selfjég legrégebbi része 3000 éves.

Az Ayles-selfjég Adam Aylesről lett elnevezve, mint ahogy a közeli Ayles-hegy is. Adam Ayles George Nares admirális mellett szolgált és részt vett a brit Arktisz-expedícióban.
1986-ban a Kanadai-selfjég vizsgálata során fedezték fel a 48 négyzetkilométer nagyságú jégtömböt. 2006. december 29-én már 90%-kal volt kisebb a jégtömb.

Források

További információk
 16 image slideshow of satellite and radar images showing the breakup (CBC News, requires Adobe Flash). (angol)
 Ayles Ice Shelf breakup images and media resources by Dr. Luke Copland, University of Ottawa  (angol)
 Ayles Ice Shelf breakup background information by the Canadian Ice Service (angol)
 Arctic ice shelf collapse poses risk: expert, CBC news, Thursday, December 28., 2006, 6:39 PM ET  (angol)
 Huge ice shelf breaks free in Canada's far north by Jeffrey Jones, Reuters, 29 Dec 2006 21:22:06 GMT (angol)
 Huge Arctic ice break discovered, BBC news, Friday, 29. December 2006, 22:52 GMT  (angol)
 Giant Ice Shelf Breaks Off in Canadian Arctic by Richard A. Lovett, National Geographic News, December 29., 2006 (angol)
 Ice-shelf collapse, climate change, and habitat loss in the Canadian high Arctic F. W. Vincent, J. A. E. Gibson & M. O. Jeffries.  Polar Record 37 (201): 133-142 (2001). (angol)
 Science team lands on Ice Island, BBC News, Tuesday 22 May 2007 (angol)

Arktikus selfjegek

redpajama_set_name: RedPajamaWikipedia


If you are looking for a quick and easy way to manage your daily personal finances, Checkbook+ is the perfect choice for you! This powerful app can keep track of all your cash expenditures, credit card charges, etc. so that you can entirely replace your paper checkbook with this application. The program lets you create any number of accounts, transfer funds, save recurring transactions, export data, view reports and more. The app is well designed with comprehensive details to provide amazing experience to users. You can easily export the data in HTML and CSV formats to use further. It is also possible to export the transactions by mail to use with desktop applications.
The integrated calendar tool enables you to display all of the monthly transactions as individual points on calendar, allows tracking transactions by simply tapping any date on the calendar. The support for recurring transactions makes your job much easier. You can save a transaction which is used repeatedly so that you can avoid retyping every detail. The good thing about the tool is that you can work with as many accounts as you like. It also supports categories along with attractive icons that you can select. It includes all the details for a transaction that one needs to keep track of.
The program's search option is also powerful. You can quickly look for transactions by category, notes, payee and account name. Moreover, searching and editing a transaction is possible from the same screen. Using comprehensive reports and charts, you can get a clear overview of the incomes and expenses by account or category. All your data can be protected with passcodes and you get support for multiple currencies. The user interface is elegant and easy to use yet powerful. You can use the search tool of BlueStacks App Player to find the app and download it for use on PC!


The Industrial Revolution favored the growth of supply, until its surplus with regards to demand led to the paradigm shift from focusing on the product (´a good product sells itself´), or production (´a cheap product sells itself´), to the emphasis on customer relationships (´understanding consumer needs through market research´). Therefore, economic and technological development facilitated the incorporation of the business research discipline into the process of decision making ¿in the beginning¿ and business intelligence processes ¿these days¿ in order to make well informed decisions at lower economic risks (Méndez del Río, 2006).
Thus, this book provides managers and students alike, with a clear analysis of business research methods, combining the knowledge, understanding and skills necessary to complete a successful research project.
Readers will learn from proven examples and case studies based on real life situations, which complement theoretical concepts and clearly illustrate how to do an appropriate market research. With each chapter, the reader is guided through all the stages of a market research process -from problem recognition to final report writing.
This book offers both a deep understanding and at the same time permits judgment and analysis from a financial-audit perspective. It reviews and develops easy-to-follow theoretical and practical concepts in a simple, concise and clear structure that facilitate the application of business research methods to a wide variety of business sectors.
Introduction.- PART I: GATHERING THE DATA. Nature and Characteristics of Marketing Research.- Marketing Research Organization and Planning.- Sources and Tools of Market Research Data.- Measurement Scales and Questionnaire.- Surveys.- Panels.- Marketing Experimental Research.- Observation.- Qualitative Tools.- Theory and Practice of Sampling.- Fieldwork.- PART II: ANALYSING THE DATA. Survey Code and Tabulation.- Hypothesis Testing.- PART III: THE REPORT. The Report.- Figure Index.- Table Index .


text:
Football analysis, news, betting and opinion from Sweden, Norway and Denmark
AllData AnalysisMatch AnalysisPlayer Analysis
The Past of FCK
Match Preview: Netherlands vs Denmark
Europa Conference League Match Preview: PSV vs FC Copenhagen
Best football clubs in all of Scandinavia
Home Analysis Data Analysis Finding the best playmakers in Allsvenskan – Data Analysis
Finding the best playmakers in Allsvenskan – Data Analysis
Josh Hobbs
Football returns to Sweden on 14 June and that means the return of Allsvenskan. Unlike many leagues around the world, Allsvenskan is starting a new season, due to its calendar running from March to November. They simply had to delay the start of a new season rather than needing the current one to be finished quickly.
To help get you excited about the return, here is a data analysis of Allsvenskan's playmakers. In this analysis, we will search through the data to find players putting up stand-out statistics in the metrics I have deemed important to the role of a playmaker.
The data set used features all players that played primarily in any midfield position, as modern playmakers could operate from wide or central areas. In the case of Liverpool's Trent Alexander-Arnold, we can see that Premier League clubs are starting to utilise full-backs as playmakers. In this case, I wanted to focus on midfielders though. All players have featured for at 1000 minutes over the course of the season.
The first thing to look for in a playmaker is whether they can get on the ball regularly. In watching them, this would be looking to see how they find space to receive the ball in order to do damage with it.
In this case, I'm going to look at passes per 90 as the first metric to judge a player's involvement.
This is a good starting point to identify a few standout players. The first is David Batanero, who made 83.66 per 90. He is particularly impressive as he was featuring for GIF Sundsvall, who were relegated. He has since signed for Mjällby who won promotion to Allsvenskan, keeping him in the top division. It's interesting to note that both the highest performers in this metric played for Sundsvall. Juanjo Ciércoles (81.14) was Batanero's midfield partner.
In fact, Sundsvall made the most passes in the league as a team, with 563.94. It would be worth analysing how a side who dominated the ball managed to get relegated, but that's for another day.
Immediately an issue has come up though: players who play in teams that have a high proportion of possession are most likely to show up by searching passes per 90. If we really want to find a playmaker we need to find a player who makes a large proportion of their team's total passes, regardless of how many passes that team makes.
Therefore, I decided to calculate each players' % of total team passes played.
Several of the names highlighted in the previous visual have come up again here, but the leaders in the metric aren't as far separated from the rest of the data-set. It's noticeable that Erik Friberg of BK Häcken, who made 66.52 passes per 90, which was enough to put him 3rd in that metric, came out on top for percentage of team passes (15.11%).
Batanero and Ciércoles both still perform very highly as well, so they'll be players to keep an eye on as we search through other metrics.
Darijan Bojanić and Jeppe Andersen, both of Hammarby also show up very well, making 14.2% and 14.72% of their team's passes respectively. It also caught my eye that they were the only players in this top group to be under the average age of the data-set (27.34).
Ball Progression
When it comes to being a top playmaker, being heavily involved isn't enough. A player could be heavily involved and simply make all their passes in their own half. A proper playmaker drives their team forwards.
With that in mind, I used the same principle as above and calculated the percentage of passes played which are progressive. For reference, Wyscout's definition of a progressive pass is one that moves the ball 10m closer to the goal when played in the opposition's half and 30m closer when played in the player's own half.
Once I had that metric, I plotted it against the percentage of team passes metric and came up with this graph.
A few names are now popping up regularly. Friberg, Batanero, Bojanić, Ciércoles, and Andersen all feature again.
There are others that need to be mentioned as well. Rasmus Elm, playing in his final season in professional football, made the highest percentage of progressive passes with 16.04% In fact, he's one of the top performers on this graph as although he isn't the top performer in the percentage of team passes metric, he's so far ahead in the percentage of passes progressive.
How do they progress the ball?
There's more to ball progression than passing. Some players progress the ball through passing, others do it by carrying the ball forwards.
This shows stand out players in the progressive passes metric I used in the previous graph as well as those that stand out as ball carriers. I have highlighted the top performers in both metrics, including 6 players who feature in the 'double trouble' sector of the graph. This means they are above average for both metrics.
Bojanić is a top performer once again, ranking 3rd in the data-set for % progressive passes, whilst sitting comfortably above average for progressive carries. Bojanić has now featured in all of these graphs in the early part of our process, so he's definitely one to consider regarding top playmakers in Allsvenskan.
This graph is also interesting because it has highlighted players who play in wide positions, whereas the previous graphs have all thrown up central midfielders only.
Sead Hakšabanović is one of those players. The 21-year-old Montenegrin is on an 18-month loan at IFK Norrköping from West Ham United and was one of the best attacking players in the league from his position on the left-wing. This was an important comeback for him after a failed loan to Malaga. On this graph, he is only just over average for % of passes progressive with 7.51. However, no player who ranks higher than him for progressive carries (he has the 4th most with 3.33) makes a higher proportion of progressive passes than him.
The most balanced of the players featured in the 'double trouble' section is Vladimir Rodić of Hammarby. He is a 26-year-old right-sided midfielder from Croatia putting up well above average numbers in both metrics. He made 2.62 progressive carries per 90 and 9.57% of his passes are progressive. When Rodić has the ball, he's comfortable moving his team forwards by carrying the ball or by passing it.
Another thing that a good playmaker needs, as well as progressing the ball, is a way of breaking organised opposition lines. Wyscout's 'smart passes' metric attempts to quantify numbers of passes which are 'creative and penetrative' and 'attempt to break the opponent's lines.
I used that metric to assess the data-set and created another swarm plot to show the top performers.
Once again, some similar names are popping up. Batanero sits in 3rd with 2.03 smart passes per 90. We can now say that he's not simply a player that makes a lot of passes. He's a player that makes a lot of passes that progress his team forwards and looks to create dangerous attacking positions for his team.
The two top-ranked players are Tobias Sana (2.17) and Patrik Karlsson-Lagemyr (2.16), both of IFK Göteborg. This perhaps suggests something about the style of attacking football their team plays. Neither of these two players have appeared in this analysis so far, so this suggests that though they are less involved as some of their counterparts, they are very aggressive when they do have the ball.
The fourth rated in this metric is another Hammarby player: Muamer Tanković. He is a player that just missed out on being included in the 'double trouble' sector of the ball-progression graph. This is due to his percentage of passes progressive being just below average. Combining with Rodić, they make Hammarby's midfield a dangerous one.
After that standout cluster of four players, Daleho Irandust is the top performer of the rest of the pack with 1.69. The BK Häcken right-winger appeared as a top performer for progressive runs but was below average for progressive passes. This suggests that when he gets on the ball he primarily wants to run with it before looking to play a killer pass in behind the defence.
Creative Threat
Speaking of killer passes leads us nicely on to our final section. The best playmakers need to make passes into the opposition penalty area and also need to be able to create good chances for their teammates to score.
In order to look into this aspect, I'm looking at 'deep completions' which are passes played to an area no further than 20m away from the opponent's goal, as well as expected assists per 90. When assessing creativity, it's always better to look at expected assists rather than assists, as that purely values the quality of the chance created, not whether it was converted into a goal.
Allsvenskan: Finding the best playmakers – Data analysis tactics
According to the deep completions swarm plot, Tanković is by far the most impressive, being the only player to average more than 3 per 90 minutes. As we know, he was already impressive in the line-breaking 'smart passes' metric. As he pops up here, we can conclude that he is largely breaking defensive lines rather than midfield lines.
Friberg is appearing as an impressive performer again after being present regularly during the early part of the process. It's notable that lots of the top performers in this metric are attacking midfielders, such as Irandust and Hakšabanović, who we've looked at earlier in this analysis. Both of those average over 2 deep completions per 90 However, Friberg plays primarily as a defensive midfielder, so it's particularly interesting to see him rank highly for deep completions. This could be that he's playing raking passes from deep, or he may carry the ball forwards before playing it into the box. This would have to be assessed properly by watching the video.
After creating a swarm plot of xA per 90, I was surprised by how little crossover there was in the two metrics. The only player to appear in the top group of both charts is Alexander Kačaniklić, who plays on the right side of midfield for Hammarby. As he hasn't shown up earlier in the process, I don't think he should be considered as a top playmaker, but he would be one to look at further if I was simply focussing on attacking midfielders.
Plotting these two metrics together allowed me to find the correlation properly. Whilst the top performers aren't exactly the same, there are plenty of players that performed well above average in both metrics.
The three most balanced players of the top performers across both metrics are Sana, Batanero, and Elm. All three create high-value chances for their team, whilst playing a well above average volume of deep completions. These are all players we've seen before in this analysis, so they will be considered amongst the top playmakers in the division.
Throughout this analysis, I have identified top performers in the key aspects I believe make a good playmaker. It has thrown up several of the same names along the way, though it's clear some are 'advanced playmakers' which makes them top performers in more attacking focussed metrics. Others are 'deep-lying playmakers', who dictate play and progress the ball forwards to their attacking teammates to create chances.
Rasmus Elm is a candidate for the top of the deep-lying playmakers. It's quite remarkable to see him popping up so often as a high performer considering this was his final season. He is also one he performed highly in ball-progression as well as creativity.
Of the more attacking-minded players, Irandust, Hakšabanović, Tanković, and Sana stand out, but there are several other players that show up in the graphs that haven't been mentioned.
The player who came up the most often in the graphs was David Batanero. The 31-year-old Spaniard is probably the most rounded of all these players as he appeared as a high-ranking player in the graphs that featured 'deep-lying playmakers' as well as appearing in the final scatter graph depicting creativity and threat. It is very surprising that he managed to perform so well individually whilst his team got relegated.
In order to fully analyse and decide on who the top playmakers are, video needs to be analysed, with a full scout report of Batanero being the next step to take.
Next articleSuperliga 2019/20: Copenhagen Vs Randers – Tactical Analysis
The next step for Martí Cifuentes: A look at potential clubs to hire the Sandefjord coach – data analysis
Finding the 2020 Eliteserien team of the year part 3 – data analysis
Australia vs Denmark: Betting Preview
Betting Previews November 29, 2022
France vs Denmark: Betting Preview
Denmark vs Tunisia: Betting Preview
Denmark coach says team will 'focus on football' in Qatar
Nordic countries launch bid to host this mega tournament


XS is a great place for any kind of date at any time of day. The food is of good quality and decent pricing. The drinks are also superb, from what I recall. The waitstaff is super friendly, which is always a bonus. XS is the type of place you can come dressed up to (for a date or birthday party) or you can just drop in for a casual breakfast/lunch (to make awkward faces in pictures with your friends, like I do). It's also a great place for breakfast because... some people don't like breakfast food. There are burgers and stuff on the menu for those who want to eat whatever they want (and the menu is available online). If ever you're in Baltimore and want a place to try out, this is a great spot.


text:
LOTTE WORLD ADVENTURE BUSAN THEME PARK, DESIGNED BY LEGACY ENTERTAINMENT, ANNOUNCES OPENING DATE OF MARCH 31
Hollywood, CA, and Busan, South Korea, March 1, 2022 – The all-new Lotte World Adventure Busan Theme Park in South Korea – one of the year's most hotly-anticipated new theme parks – will officially open its gates to members of the public on March 31, following a soft opening period from March 17-20.
The new park was designed in collaboration with Hollywood-based entertainment design firm Legacy Entertainment. Its opening will mark the 9th project to premiere as part of the unique creative partnership between Lotte World and Legacy. "For over 30 years, Lotte World has set the gold standard for family entertainment in South Korea," said Yaeli Chung, Legacy's Managing Director of Korea. "Our entire team feels very fortunate and humbled to help Lotte World write its next chapter in Busan."
Boasting six immersive theme zones, the 25-acre 'boutique theme park' has different aspirations than its flagship counterpart in Seoul. The original Lotte World, first opened in 1989, originally boasted an 'international theme' popular of the era, with zones aiming to recreate the ambiance of England, Germany, and France, among others. At the new Lotte World Adventure Busan, Legacy aimed to create richly-immersive realms not tied to any real world time or place. These realms will include Tinker Falls, Rainbow Springs, Wonder Woods, Queen Lorry's Royal Garden, Joyful Meadows, and Underland. The new park's signature attractions will include the 'Giant Digger' Mack Launched Coaster, 'Giant Splash' Mack Super Splash, 'Giant Swing' by Zamperla, and 'Ogre's Flume' by ABC Rides, as well as Korea's first 'Roller Coaster Restaurant.'
"Working closely with the team from Lotte World, we aimed to redefine what an Asian regional theme park can be," adds Ms. Chung. "All across Asia, countless theme parks have popped up in recent years, each one more drab and forgettable than the last. This will not be the case at Lotte World Adventure Busan. Instead, guests who attend Busan will find an emotionally warm and inviting garden park sporting a brilliant layout, a perfectly balanced attraction program, and unprecedented integration of attractions within their environments. Guests will never want to leave."
Lotte World Adventure Busan is the centerpiece of Busan's Osiria Tourism Complex, located about 45 minutes by train outside of the city center. Envisioned as the city's premiere tourism destination, Osiria currently features a dynamic array of attractions and experiences, including a Lotte Premium Outlet complex, Hillside Luge, Science Museum, Golf Club, and IKEA. Future additions will include a Hilton Hotel and Aqua World.
ABOUT LOTTE WORLD
Lotte World is South Korea's leading theme park owner and operator, with its flagship park located in the heart of Seoul, South Korea. Since its opening in 1989, Lotte World has consistently ranked among the world's top-performing theme parks, drawing between 5 and 7 million visitors each year.
Located in Seoul's Jamsil district, the flagship park is divided into two main themed areas – Lotte World Adventure (indoor theme park) and Magic Island (outdoor attraction area.) The park features a number of heavily-themed attractions, including "The Adventure of Sinbad," "Pharaoh's Fury," and "Atlantis Adventure," in addition to a number of classic family rides, shows, and attractions. Lotte World Adventure marks the chain's second full-scale theme park in South Korea.
Please see: https://www.lotteworld.com/
ABOUT LEGACY ENTERTAINMENT
Currently celebrating its 20th anniversary year, the Hollywood, California-based Legacy Entertainment stands as one of the most successful, independent, entertainment design firms in the global industry today. The company has developed, designed and produced over 40 successful projects worldwide, spanning mediums that include Theme Parks, Hotels/Resorts, Casinos, and Aquariums.
Signature Legacy projects to date have included the Galaxy Macau Resort, Macau Studio City resort, the Georgia Aquarium, Lotte World expansion, Kingdom of Poseidon resort, and Shanghai Haichang Ocean Park, and the all-new, soon-to-open Lotte World Adventure Busan theme park in Busan, Korea.
Another major, upcoming Legacy project will be the Chimelong Marine Science Museum in Zhuhai, China.


Sri Lanka's Supreme Court on Tuesday began hearing petitions against President Maithripala Sirisena's decision to dissolve Parliament and call for a snap election after sacking prime minister Ranil Wickremesinghe that triggered a major constitutional crisis in the country. The country has been in a political crisis since October 26 when Sirisena removed Wickremesinghe and installed ex-strongman Mahinda Rajapaksa in his place.
The apex court on Tuesday morning began the hearing on the fundamental rights petitions filed against Sirisena's gazette notification to dissolve parliament.
A seven member bench presided by the Chief Justice Nalin Perera began hearing oral submissions, court officials said. The court on November 13 issued an interim order annulling the gazette notification which made Sirisena's parliamentary sacking temporary illegal.
The submissions would be heard till Thursday. A court on Monday barred Rajapaksa from acting as Prime Minister. The Court of Appeal temporary halted Rajapaksa and his Cabinet from functioning in their positions in response to a case filed by 122 legislators against his disputed government.
Prior to the crisis, Wickramasinghe's UNP had the backing of 106 parliamentarians while Rajapaksa and Sirisena combine had 95 seats.
However, Wickremesinghe's UNP claims that Sirisena will be left with no choice as he would be the man who will command the confidence in the House. Violent scenes were witnessd in Parliament as it went on to approve motions which proved that Rajapaksa lacked majority.


text:
Reflections on the 4th Annual MJLH Colloquium
Posted By Meara Conway – Mar. 28, 2012
The MJLH's 4th Student Colloquium entitled "Insight on Insite: The Evolution of Canada's Drug Treatment Policy" held on March 10th featured lawyers, health providers, academics, politicians, community workers and law enforcement representatives. With the Supreme Court's (SCC) recent landmark decision, and as stakeholders brace for the impact of Harper's Omnibus Crime Bill on preexisting drug treatment strategies, the Colloquium was a timely survey of the complex economic, legal, social, and medical issues at the nexus of drug use harm reduction initiatives.
Kicking off the discussion was the Honourable Libby Davies. She spoke of Insite's "recipe" for success: a combination of legal challenges, political mobilization and community organizing over more than a decade leading to Insite's eventual acceptance. The criminalization of drugs and drug use in the DTES was increasingly recognized as an economic and social failure disproportionately targeting marginalized populations. Davies raised some of the class issues concerning drug treatment policies citing pervasive misconceptions that drug use predominantly impacts the poor. She attributed these misconceptions to the visibility of marginalized populations where addictions interact with poor access to treatment, increasingly limited social services and affordable housing, which in turn exacerbate drug use. While drug addiction is in fact a widespread affliction impacting all demographics, the visibility of such users makes them particularly vulnerable to criminalization and stigmatization. According to Davies, years of community organizing led to alliances between unlikely bedfellows (such as DTES and Vancouver West parents on projects like Grief to Action). This changed popular misconceptions about drug use and created momentum for mobilizing support for Insite within and beyond the DTES.
While much of the discussion revolved around harm reduction initiatives, Dr. Kathryn Gill, McGill Associate Professor of Psychiatry and Director of Research at the Addictions Unit of the McGill University Hospital Centre (MUHC), called for a broader approach to drug policies. Harm reduction measures, while important, are not enough. A truly effective drug policy must involve multiple avenues to address addiction, ultimately aimed at discontinuing drug use. Dr. Gill lamented the desperate lack of treatment available to drug users and called for additional resources to train professionals in the particular challenges of drug use and its intersection with social issues such as mental health and the neuro-cognitive challenges users face. Dr. Gill questioned why harm reduction methods dominate the debate around drug use. She argued that some harm reduction practices are harmful, and made a compelling case that the introduction of harm reduction measures should impose accompanying duties to improve access to treatment, and wider systems of care and service delivery.
Executive Director of the Canadian HIV/AIDS Legal Network, Richard Elliot, provided a comprehensive background to the Insite legal challenge. The Canadian HIV/AIDS Legal Network was granted intervening status and played a political and strategic role in the struggle to ensure Insite's continued operation when the Conservative government, the RCMP and the CPA opposed granting a continued exemption. Elliot provided a sobering analysis of the SCC's decision and expressed disappointment that the Court imposed inappropriate criteria for allowing the operation of safe injection sites. According to Elliot, the need to consider the impact of safe injection sites on crime rates and expressions of community support or opposition create the potential for problems going forward if valuable and life-saving services offered to marginalized populations are beholden to the preferences and clout of a powerful majority. Ultimately, the SCC's decision was a timid one, and the unanimous Court lacked the courage to follow through with what were its apparent views at the outset of the judgment. On a more positive note, Elliot celebrated the affirmation that drug users enjoy section 7 protection, and the clear indication that courts will step in when governments exercise their criminal law power in a way that contributes to preventable death and disease.
The presentation made by University of Victoria law Professor Margot Young was a highlight. Professor Young briefly spoke about the shift in discourse of drug addiction as a choice to drug addiction as a disease. Sharing some of Mr. Elliot's reservations about the legal ramifications of Insite, Professor Young pointed out that the legal outcome is perhaps not as significant as the political message sent by the decision. Insite may be regarded as establishing a right to safe injection sites, creating a political barrier to governments looking to stop the advance of safe injection sites. While the SCC may have given the narrowest possible judgment in favour of Insite, the popular political imagination may provide a powerful counterbalance to this diffident judgment. Professor Young also expressed uneasiness regarding a doctrinal feature of Insite. The Controlled Drugs and Substances Act (CDSA) is constitutional by virtue of the availability of a discretionary exemption that the Minister of Health may grant for "medical or scientific purpose" or in "the public interest" (see section 56 of the CDSA). This scheme ultimately leaves rights vulnerable to supplication to the Minister and trust that this discretionary power will be exercised in a constitutional way. That the very mechanism rendering legislation constitutional in this context risks being exercised unconstitutionally, should be cause for alarm and uneasiness.
Dr. Carole Morissette, a longtime family doctor working with injection drug users in Montreal participated in a feasibility study showing that the establishment of safe injection sites provides a host of benefits. This project mobilized significant local partners, including CACTUS Montreal, one of the first needle exchange programs in North America. Mr. Jean-Francois Mary, the director of community organization and communication at CACTUS Montreal, provided first-hand accounts of the daily challenges of users and tracked the historical arc of political and social attitudes towards safe injection sites in Montreal. Mr. Mary perceives the current atmosphere for drug users as relatively regressive, contending this period has been characterized by increased antagonism between visibly marginalized people and law enforcement. Mr. Mary cited the recent public shootings of mentally ill street people in Montreal as evidence of law enforcement's lack of understanding of mental illness, and the need to reframe the debate.
Mr. Mary also speculated about the impact of the forthcoming Omibus Crime Bill. Decreasing crime rates in Montreal are being accompanied by a curious rise in feelings of insecurity, attributed in part by Mr Mary to flawed perceptions about social issues around drug use and itinerancy, and the dissonance caused when police presence is ramped up to address social ills. Not so long ago, local law enforcement and coalitions of street people, sex workers, and addicts negotiated areas within the city where moratoriums were initiated on the antagonism between these groups and law enforcement. This is no longer the case as law enforcement is cracking down — "la judicialisation" is again carrying the day. An increased law enforcement presence and lack of available social services for the homeless and mentally ill have led to increased clashes between disorganized and visibly marginalized groups, such as drug users and law enforcement ill-equipped to deal with the complex intersectionality of issues such as poverty, homelessness, mental illness, and drug use. According to Mr. Mary, while in the past judges have consistently refused to incarcerate these individuals, the Crime Bill will reduce the availability of flexible solutions for drug users, thereby further criminalizing marginalized groups, and creating delays in an already lethargic judicial system.
Mr. Luc Beaucage, an RCMP officer of over 40 years, echoed some of these concerns and bemoaned the lack of training young officers receive in dealing with issues of addiction, itinerancy and mental illness. Calling for policies that encourage exchange and cooperation between law enforcement, users, community organizers, and health providers, Mr. Beaucage provided an essential voice in the call to modernize Canada's overly myopic drug treatment policieies.
Some concluding reflections
Perhaps it is true that the SCC coalesced behind Insite in the narrowest possible way, retreating from what could have been a more stalwart safeguard against criminal policies that needlessly harm vulnerable populations. However, the panelists seem to agree that Insite was a momentous symbolic victory. In light of Insite, there is potential for mounting conflict in Canada's drug treatment policies as widespread support for drug treatment and harm reduction initiatives deepen, and the federal government continues to look to law enforcement to address social ills. Finally and despite any inadequacies, Insite indicates that governments should think twice before undertaking social policies that fly in the face of medical evidence.
Author MJLH | RDSM TeamPosted on March 28, 2012 July 9, 2017 Categories Events
Previous Previous post: The MJLH Presents Its 3rd Annual Continuing Legal Education Forum
Next Next post: What Insite revealed about Canadian federalism


text:
March 2013 Magazine
REALTOR® Code of Ethics Begins Its 2nd Century
Kevin King | March 07, 2013
In 1908, a group of 120 men from across the United States and Canada gathered in Chicago to organize the National Association of Real Estate Exchanges, later to become the National Association of Real Estate Boards in 1916 and finally the National Association of REALTORS® in 1974. This was not the first attempt at a national association, but the one that ultimately survived the test of time. The initial membership numbered 1646. The membership fee was $50 and annual dues set at $1 per year.
It may be helpful to understand the real estate environment at the turn of the 20th century. Land had become a valuable commodity as a growing middle class began to desire homeownership. Although many trustworthy, respectable men wanted to help the public — keep in mind that women at this time had yet to make their mark in this area — there were others willing to take advantage of the fact that real estate brokerage was essentially unregulated, as this era preceded the adoption of regulatory licensing systems. Early 20th century real estate was an environment marked by the fraudulent subdivision, multiple first mortgages, and other get-rich-quick schemes.
One egregious example is Peter van Vissingen, himself from Chicago. In the very year that the National Association of Real Estate Exchanges (NAREE) was formed, van Vissingen was charged with forging mortgage documents and title deeds. He subsequently confessed to swindling 25 people out of $700,000 over 18 years; later, he was found to have defrauded more than 100 people totally more than $2 million. An interesting sidenote to this case: apparently fearing for his safety once charges became public, van Vissingen requested a speedy trial. And in what has to be some sort of record, he was arrested at 1:30 p.m., brought before the court and in jail by 5:15 p.m. that very afternoon.
NAREE's objective was to adopt a uniform method of doing business. As Edward A. Halsey, chairman of the national organization committee stated, "We propose, if we can, to wipe out the riffraff that brings this business into disrepute." To that end, the new association created standing committees on financing and auditing, taxation, state and municipal legislation, organization of new local boards and a code of ethics.
Five years later, the anxiously anticipated report of the Committee on the Code of Ethics was brought before the board of directors during NAREE's sixth annual convention in Winnipeg. Edward S. Judd, 1912 NAREE president, put forward the following motion: "The motion is for the adoption of the Rules of Conduct and that a recommendation be sent to the local boards that they be adopted as much as possible and they be taken as the Code of Ethics of the national association, and their adoption [is] recommended everywhere as far as possible." The motion was carried by voice vote.
Adoption of the Code
By adopting the Rules of Conduct, the association became the first business — with the exception of a now-defunct association of printers — outside of medicine, engineering and law to adopt a code of ethics. Local boards initially were asked to voluntarily adopt the rules; however mandatory adoption was made a condition of membership in 1924.
In 1978, William D. North, former executive vice president and general counsel of the National Association of REALTORS® (NAR), called the Code an "unusual Gift of Vision: the vision of those who dreamed that the business of real estate could become a profession, the vision of those who believed that the search for the highest and best use of the land required the highest and best measures of professional responsibility, and the vision of those who recognized private ownership of the land as indispensable to political democracy and a free and prosperous citizenry." He also noted that the unifying rationale, which continues in today's version, is the concept of "Service to the Public."
It is interesting to look at the language of the first Rules of Conduct, which consisted of 23 statements divided into Duties to Clients and Duties to Other Brokers. For example, under Duties to Clients, we find the following:
Be absolutely honest, truthful, faithful and efficient … and [your client] is entitled to the best service the real estate man can give — his information, talent, time, services, loyalty, confidence and fidelity. (Well said.)
Be conservative in giving advice and, where not well posted, refrain from giving opinion of value. (Some may wish this was still part of the Code.)
Do not depreciate the price of property unless the price is too high; ask that the price be reasonable, and tell the owner that it must be so if he expects his agent to make an attempt to sell it. (Wouldn't it be fun to be able to say this to the seller with the inflated price?)
Obtain sole agency, in writing, if it is property worthy of a special effort to sell. (Even in 1913, the concept of exclusive agency as being in the best interests of the parties was understood.)
Do not give special information to inquiries over the telephone, or otherwise, unless they are willing to give their names and addresses. Let them understand that the broker deals in the open and expects them to do likewise. (I'm not sure how many telephones existed then, but I love the statement "the broker deals in the open and expects them to do likewise".)
An agent should always exact the regular real estate commission of the association of which he is a member, and always give his client to understand at the beginning that he is entitled to such and expects it. (Associations are no longer allowed legally to establish commissions, but the second part of this statement is still certainly true today.)
Under the section Duties of Other Brokers, brokers agree among other things:
An agent should respect the listings of his brother agent, and cooperate with him to sell, provided the other agent has the most suitable place. (100 years ago, brokers believed in the value of cooperating with each other in the best interests of the public they serve.)
Always be loyal, square, frank and earnest in the matters that require cooperation of brokers, and always speak kindly of competitors, refusing to pass judgment on others from hearsay evidence. (While we use different words today, I'm not certain that we state it any better.)
Advertise nothing but facts … (Perfect — enough said.)
If an agent cannot efficiently handle a proposition, he should refer the matter to some competitor instead. (The concept of competence was recognized in 1913.)
Invoke friendly arbitrations by the Real Estate Association rather than through the court of law, in settling differences with other agents. (The commitment to peer review as being advantageous over submission to the courts was supported even then.)
Amendments over the years
The Code of Ethics is described as a "living document" — a document that preserves its significance, relevance and usefulness despite the passage of time. It was meant to evolve, and as such has been amended over the years. Early amendments took place in 1914, 1915, 1924 and 1928; an amendment prohibiting "horseback appraisals" — known as "drive-by appraisals" today — was added. One of the significant changes in 1924 was the addition of the Preamble to the Code. This original language has stood the test of time, with the exception of one brief period from 1955 to 1961. Subsequent amendments moved the former aspirational Articles 1-6 of the Code into the Preamble and added, among others, obligations to share professional knowledge and maintain the spirit of cooperation among real estate professionals.
After the 1928 amendments, the Code was declared "complete" and was not amended again until 1950. A survey of members in 1948 found that the Code was dated and no longer a source of pride. Therefore, the Professional Standards Committee, created in 1946, began its efforts to update the Code. However, proposed revisions were delayed as an antitrust action by the federal government required the Association's immediate attention.
The antitrust action centered on the then Article 9, which required REALTORS® to follow local board's published real estate commissions and fees. The U.S. Justice Department alleged such rate setting was anticompetitive. NAR argued that this provision protected consumers from paying unfair and arbitrary fees. In 1950, the U.S. Supreme Court agreed with the Justice Department and declared Article 9 illegal, and the article was subsequently removed from the Code.
Today's REALTOR® Code of Ethics
The Code was then amended on 10 different occasions between 1952 and 1987. The Code has received amendments every year between 1989 and 2012. The goal of each revision is to refine the principles obligating REALTORS® to the highest and best standards of personal and professional conduct.
To keep pace with new business practices today, notable changes in recent years include:
The original Code followed the convention of using male pronouns and other gender-specific language. In 1989, the Code underwent revision to gender-neutral language.
Under Duties to Clients and Customers, amendments were made to recognize the growth in buyer agency as well as the legally recognized non-agency relationships practiced in several states.
The importance of presenting a "true picture" exists not only in advertising but in marketing and representations to the public as well. This requires that your company name is readily apparent in your real estate advertising, which includes the Internet, as well as in social media, blogging and tweeting. An exception is made to permit a link to a display that includes the required disclosures where the disclosure may not be practical in an electronic display of limited information, such as thumbnails, text messages or tweets.
Without question, it is unethical to use domain names that present less than a true picture. In addition, it is unethical to even register a domain name that, if used, would present less than a true picture.
It is unethical for you to present content developed by others in your advertising, marketing or other representations — whether in print, electronic or other media — without either appropriate attribution or permission.
The obligation to not knowingly or recklessly make false or misleading statements about other real estate professionals includes the duty to monitor your blogs, Facebook walls/pages and other electronic media for comments made by others. Further, you have an obligation to immediately remove such statements or to publish a clarification once you know the information is false or misleading.
REALTORS® in Wisconsin can be particularly proud of a change that went into effect on January 1, 2011. In 1974, Article 10 was created to bring the Code in line with the federal fair housing and employment laws. A revision in 1989 incorporated the federal amendments to the Fair Housing Act dealing with handicap and familial status. In 2010, at the request of many but initiated in large part by the WRA and its Cultural Diversity in Housing Committee, the NAR board of directors approved a recommendation from its Professional Standards Committee to go beyond federal law and include in Article 10 a requirement for equal professional service and employment opportunity regardless of sexual orientation.
Today, the Code consists of 17 Articles divided into three categories: (1) Duties to Clients and Customers, (2) Duties to the Public and (3) Duties to REALTORS®. In addition, there are 71 supporting Standards of Practice and 131 explanatory Case Interpretations. In the end, the Code is much more than a bunch of rules. It embodies the standards of conduct by which REALTORS® can model their behavior. It is our philosophical values as REALTORS®.
As Mr. North concluded in his article The REALTOR® Code of Ethics — A Gift of Vision, "To REALTORS®, the Code of Ethics offers the lessons of hindsight, the guidance of foresight, and the understanding of insight — A Rare Gift of Vision."
Note: I would like to acknowledge and thank NAR for its wonderful resources under the Code of Ethics Centennial on www.realtor.org used in preparation of this article.
Kevin King is the Executive Vice President of the REALTORS® Association of South Central Wisconsin and the South Central Wisconsin MLS. He is a member of the NAR Professional Standards Committee and formerly held the position of General Counsel for the WRA.