All Files (73.51% covered at 0.76 hits/line)
36 files in total.
185 relevant lines.
136 lines covered and
49 lines missed
- 1
module ApplicationCable
- 1
class Channel < ActionCable::Channel::Base
end
end
- 1
module ApplicationCable
- 1
class Connection < ActionCable::Connection::Base
end
end
- 1
class ApplicationController < ActionController::Base
- 1
protect_from_forgery with: :exception
end
- 1
class HomeController < ApplicationController
- 1
def index
end
end
- 1
class MessagesController < ApplicationController
- 1
include ApiHelper
- 1
skip_before_action :verify_authenticity_token
- 1
def reply
- 1
new_response = YelpResponse.new(params["Body"])
- 1
from_number = params["From"]
- 1
response = new_response.process_response
boot_twilio
sms = @client.messages.create(
from: ENV['TWILIO_NUMBER'],
to: from_number,
body: response
)
end
- 1
private
- 1
def boot_twilio
account_sid = ENV['TWILIO_SID']
auth_token = ENV['TWILIO_TOKEN']
@client = Twilio::REST::Client.new account_sid, auth_token
end
end
- 1
module ApiHelper
- 1
def get_restaurants(term, location)
begin
RestClient.get("https://api.yelp.com/v3/businesses/search?term=#{term}&location=#{location}", headers={"authorization": ENV['ACCESS_TOKEN'] })
rescue
'Yelp API ERROR'
end
end
- 1
def get_restaurants_price(term, location, price_point)
begin
RestClient.get("https://api.yelp.com/v3/businesses/search?term=#{term}&location=#{location}&price=#{price_point.length - 1}", headers={"authorization": ENV['ACCESS_TOKEN'] })
rescue
'Yelp API ERROR'
end
end
end
- 1
module ApplicationHelper
end
- 1
module MessagesHelper
end
- 1
class ApplicationJob < ActiveJob::Base
end
- 1
class ApplicationMailer < ActionMailer::Base
- 1
default from<EMAIL_ADDRESS>- 1
layout 'mailer'
end
- 1
class ApplicationRecord < ActiveRecord::Base
- 1
self.abstract_class = true
end
- 1
include ApiHelper
- 1
class YelpResponse
- 1
def initialize(body)
# What the person texts in
- 1
@body = body
end
- 1
def parse_response(api_response)
parsed_api_response = JSON.parse(api_response)
if parsed_api_response['businesses'].length > 3
@response = ''
@i = 0
while @i <= 4 do
business_address = parsed_api_response['businesses'][@i]['location']['address1']
business_name = parsed_api_response['businesses'][@i]['name']
business_rating = parsed_api_response['businesses'][@i]['rating']
@response.concat("\n#{business_name} (#{business_address}, #{business_rating}). \n")
@i +=1
end
@response
else
"Please try another search, Ex: 'Delis, Portland' or 'Delis, Portland, $$'"
end
end
- 1
def process_response
- 1
if @body.split(',').length == 3
api_response = get_restaurants_price(@body.downcase.split(',')[0], @body.downcase.split(',')[1], @body.downcase.split(',')[2])
parse_response(api_response)
elsif @body.split(',').length == 2
api_response = get_restaurants(@body.downcase.split(',')[0], @body.downcase.split(',')[1])
parse_response(api_response)
else
"Please enter your request in the following format: Term, Location. Ex: 'Delis, Portland'"
end
end
- 1
def random_response
api_response =<EMAIL_ADDRESS>@body.downcase.split[1])
parsed_api_response = JSON.parse(api_response)
@response = ''
rng = Random.new
@i = rng.rand(20)
business_address = parsed_api_response['businesses'][@i]['location']['address1']
business_name = parsed_api_response['businesses'][@i]['name']
business_rating = parsed_api_response['businesses'][@i]['rating']
@response.concat("\n#{business_name} (#{business_address}, #{business_rating}). \n")
@response
end
end
- 1
require 'sidekiq-scheduler'
- 1
class HardWorker
- 1
include Sidekiq::Worker
- 1
def perform(*args)
# Do something
yelp_query = "Restaurants Portland"
new_response = YelpResponse.new(yelp_query)
response = new_response.random_response
boot_twilio
sms = @client.messages.create(
from: ENV['TWILIO_NUMBER'],
to: ENV['JONATHAN'],
body: response
)
end
- 1
private
- 1
def boot_twilio
account_sid = ENV['TWILIO_SID']
auth_token = ENV['TWILIO_TOKEN']
@client = Twilio::REST::Client.new account_sid, auth_token
end
end
- 1
require_relative 'boot'
- 1
require "rails"
# Pick the frameworks you want:
- 1
require "active_model/railtie"
- 1
require "active_job/railtie"
- 1
require "active_record/railtie"
- 1
require "action_controller/railtie"
- 1
require "action_mailer/railtie"
- 1
require "action_view/railtie"
- 1
require "action_cable/engine"
- 1
require "sprockets/railtie"
# require "rails/test_unit/railtie"
# Require the gems listed in Gemfile, including any gems
# you've limited to :test, :development, or :production.
- 1
Bundler.require(*Rails.groups)
- 1
module Yelper
- 1
class Application < Rails::Application
# Settings in config/environments/* take precedence over those specified here.
# Application configuration should go into files in config/initializers
# -- all .rb files in that directory are automatically loaded.
end
end
- 1
ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__)
- 1
require 'bundler/setup' # Set up gems listed in the Gemfile.
# Load the Rails application.
- 1
require_relative 'application'
# Initialize the Rails application.
- 1
Rails.application.initialize!
- 1
Rails.application.configure do
# Settings specified here will take precedence over those in config/application.rb.
# The test environment is used exclusively to run your application's
# test suite. You never need to work with it otherwise. Remember that
# your test database is "scratch space" for the test suite and is wiped
# and recreated between test runs. Don't rely on the data there!
- 1
config.cache_classes = true
# Do not eager load code on boot. This avoids loading your whole application
# just for the purpose of running a single test. If you are using a tool that
# preloads Rails for running tests, you may have to set it to true.
- 1
config.eager_load = true
# Configure public file server for tests with Cache-Control for performance.
- 1
config.public_file_server.enabled = true
- 1
config.public_file_server.headers = {
'Cache-Control' => 'public, max-age=3600'
}
- 1
config.active_record.maintain_test_schema = false
# Show full error reports and disable caching.
- 1
config.consider_all_requests_local = true
- 1
config.action_controller.perform_caching = false
# Raise exceptions instead of rendering exception templates.
- 1
config.action_dispatch.show_exceptions = false
# Disable request forgery protection in test environment.
- 1
config.action_controller.allow_forgery_protection = false
- 1
config.action_mailer.perform_caching = false
# Tell Action Mailer not to deliver emails to the real world.
# The :test delivery method accumulates sent emails in the
# ActionMailer::Base.deliveries array.
- 1
config.action_mailer.delivery_method = :test
# Print deprecation notices to the stderr.
- 1
config.active_support.deprecation = :stderr
# Raises error for missing translations
# config.action_view.raise_on_missing_translations = true
end
# Be sure to restart your server when you modify this file.
# ApplicationController.renderer.defaults.merge!(
# http_host: 'example.org',
# https: false
# )
# Be sure to restart your server when you modify this file.
# Version of your assets, change this if you want to expire all your assets.
- 1
Rails.application.config.assets.version = '1.0'
# Add additional assets to the asset load path
# Rails.application.config.assets.paths << Emoji.images_path
# Precompile additional assets.
# application.js, application.css, and all non-JS/CSS in app/assets folder are already added.
# Rails.application.config.assets.precompile += %w( search.js )
# Be sure to restart your server when you modify this file.
# You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces.
# Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ }
# You can also remove all the silencers if you're trying to debug a problem that might stem from framework code.
# Rails.backtrace_cleaner.remove_silencers!
# Be sure to restart your server when you modify this file.
# Specify a serializer for the signed and encrypted cookie jars.
# Valid options are :json, :marshal, and :hybrid.
- 1
Rails.application.config.action_dispatch.cookies_serializer = :json
# Be sure to restart your server when you modify this file.
# Configure sensitive parameters which will be filtered from the log file.
- 1
Rails.application.config.filter_parameters += [:password]
# Be sure to restart your server when you modify this file.
# Add new inflection rules using the following format. Inflections
# are locale specific, and you may define rules for as many different
# locales as you wish. All of these examples are active by default:
# ActiveSupport::Inflector.inflections(:en) do |inflect|
# inflect.plural /^(ox)$/i, '\1en'
# inflect.singular /^(ox)en/i, '\1'
# inflect.irregular 'person', 'people'
# inflect.uncountable %w( fish sheep )
# end
# These inflection rules are supported but not enabled by default:
# ActiveSupport::Inflector.inflections(:en) do |inflect|
# inflect.acronym 'RESTful'
# end
# Be sure to restart your server when you modify this file.
# Add new mime types for use in respond_to blocks:
# Mime::Type.register "text/richtext", :rtf
# Be sure to restart your server when you modify this file.
#
# This file contains migration options to ease your Rails 5.0 upgrade.
#
# Read the Guide for Upgrading Ruby on Rails for more info on each option.
# Enable per-form CSRF tokens. Previous versions had false.
- 1
Rails.application.config.action_controller.per_form_csrf_tokens = true
# Enable origin-checking CSRF mitigation. Previous versions had false.
- 1
Rails.application.config.action_controller.forgery_protection_origin_check = true
# Make Ruby 2.4 preserve the timezone of the receiver when calling `to_time`.
# Previous versions had false.
- 1
ActiveSupport.to_time_preserves_timezone = true
# Require `belongs_to` associations by default. Previous versions had false.
- 1
Rails.application.config.active_record.belongs_to_required_by_default = true
# Do not halt callback chains when a callback returns false. Previous versions had true.
- 1
ActiveSupport.halt_callback_chains_on_return_false = false
# Configure SSL options to enable HSTS with subdomains. Previous versions had false.
- 1
Rails.application.config.ssl_options = { hsts: { subdomains: true } }
# Be sure to restart your server when you modify this file.
- 1
Rails.application.config.session_store :cookie_store, key: '_yelper_session'
- 1
Sidekiq.configure_server do |config|
config.redis = { :url => ENV["REDISTOGO_URL"]}
# config.redis = { :url => 'redis://localhost:6379'}
end
- 1
Sidekiq.configure_client do |config|
- 1
config.redis = { :url => ENV["REDISTOGO_URL"] }
# config.redis = { :url => 'redis://localhost:6379' }
end
# Be sure to restart your server when you modify this file.
# This file contains settings for ActionController::ParamsWrapper which
# is enabled by default.
# Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array.
- 1
ActiveSupport.on_load(:action_controller) do
- 2
wrap_parameters format: [:json]
end
# To enable root element in JSON for ActiveRecord objects.
# ActiveSupport.on_load(:active_record) do
# self.include_root_in_json = true
# end
- 1
require 'sidekiq/web'
- 1
require 'sidekiq-scheduler'
- 1
require 'sidekiq-scheduler/web'
- 1
Rails.application.routes.draw do
- 1
root to: "home#index"
- 1
resource :messages, :only => [] do
- 1
collection do
- 1
post 'reply'
end
end
- 1
mount Sidekiq::Web, at: '/sidekiq'
end
%w(
.ruby-version
.rbenv-vars
tmp/restart.txt
tmp/caching-dev.txt
- 5
).each { |path| Spring.watch(path) }
- 1
require 'rails_helper'
- 1
RSpec.describe MessagesController, type: :controller do
- 1
describe "GET #reply" do
- 1
it "returns http success" do
- 1
get :reply
expect(response).to have_http_status(:success)
end
end
end
- 1
require 'rails_helper'
# Specs in this file have access to a helper object that includes
# the MessagesHelper. For example:
#
# describe MessagesHelper do
# describe "string concat" do
# it "concats two strings with spaces" do
# expect(helper.concat_strings("this","that")).to eq("this that")
# end
# end
# end
- 1
RSpec.describe MessagesHelper, type: :helper do
- 1
pending "add some examples to (or delete) #{__FILE__}"
end
# This file is copied to spec/ when you run 'rails generate rspec:install'
- 1
ENV['RAILS_ENV'] ||= 'test'
- 1
require File.expand_path('../../config/environment', __FILE__)
# Prevent database truncation if the environment is production
- 1
abort("The Rails environment is running in production mode!") if Rails.env.production?
- 1
require 'spec_helper'
- 1
require 'rspec/rails'
- 1
require 'capybara/rails'
- 1
require 'support/shared_db_connection'
- 1
require 'launchy'
- 1
require 'capybara/poltergeist'
# Add additional requires below this line. Rails is not loaded until this point!
# Requires supporting ruby files with custom matchers and macros, etc, in
# spec/support/ and its subdirectories. Files matching `spec/**/*_spec.rb` are
# run as spec files by default. This means that files in spec/support that end
# in _spec.rb will both be required and run as specs, causing the specs to be
# run twice. It is recommended that you do not name files matching this glob to
# end with _spec.rb. You can configure this pattern with the --pattern
# option on the command line or in ~/.rspec, .rspec or `.rspec-local`.
#
# The following line is provided for convenience purposes. It has the downside
# of increasing the boot-up time by auto-requiring all files in the support
# directory. Alternatively, in the individual `*_spec.rb` files, manually
# require only the support files necessary.
#
# Dir[Rails.root.join('spec/support/**/*.rb')].each { |f| require f }
# Checks for pending migration and applies them before tests are run.
# If you are not using ActiveRecord, you can remove this line.
- 1
ActiveRecord::Migration.maintain_test_schema!
- 1
RSpec.configure do |config|
# Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
- 1
config.fixture_path = "#{::Rails.root}/spec/fixtures"
# If you're not using ActiveRecord, or you'd prefer not to run each of your
# examples within a transaction, remove the following line or assign false
# instead of true.
- 1
config.use_transactional_fixtures = true
# RSpec Rails can automatically mix in different behaviours to your tests
# based on their file location, for example enabling you to call `get` and
# `post` in specs under `spec/controllers`.
#
# You can disable this behaviour by removing the line below, and instead
# explicitly tag your specs with their type, e.g.:
#
# RSpec.describe UsersController, :type => :controller do
# # ...
# end
#
# The different available types are documented in the features, such as in
# https://relishapp.com/rspec/rspec-rails/docs
- 1
config.infer_spec_type_from_file_location!
# Filter lines from Rails gems in backtraces.
- 1
config.filter_rails_from_backtrace!
# arbitrary gems may also be filtered via:
# config.filter_gems_from_backtrace("gem name")
end
- 1
Shoulda::Matchers.configure do |config|
- 1
config.integrate do |with|
- 1
with.test_framework :rspec
- 1
with.library :rails
end
end
- 1
class ActiveRecord::Base
- 1
mattr_accessor :shared_connection
- 1
@@shared_connection = nil
- 1
def self.connection
- 2
@@shared_connection || retrieve_connection
end
end
- 1
ActiveRecord::Base.shared_connection = ActiveRecord::Base.connection
- 1
require 'rails_helper'
- 1
RSpec.describe "messages/reply.html.erb", type: :view do
- 1
pending "add some examples to (or delete) #{__FILE__}"
end
- 1
require 'rails_helper'
- 1
RSpec.describe HardWorker, type: :worker do
- 1
pending "add some examples to (or delete) #{__FILE__}"
end


FreeSpeechList.com is like a search engine for deplatformed personalities. It is a project to keep track on the number of individuals getting deplatformed from each of these social platforms.
Why we created it?
Humans are social animals. And de-platforming pushes these animals to some dark corner of the internet, thus increasing darkness in their mind. There are some pro free-speech platforms which are helping everyone to get on the same page and 'discuss'. We provide a list of every popular individual who have been deplatformed by any website.
What we created?
While searching through internet, it is very hard to find these de-platformed individuals. So we created FreeSpeechList.com, a go to site to find all of them at a single place. Also our website keeps track of the platforms who are most open and against free speech.
How we created it?
Bunch of HTML, JavaScript and JSON code. And the data about the individuals getting deplatformed comes from you. If you or anyone you know meets our eligibilty standards, please send us your or the person's details on<EMAIL_ADDRESS>(Screenshots will be appriciated).
Who we are?
 We are just like you who wants to keep track on number of times these platforms censors or ban free speech.
Do we agree with the individuals listed?
We DO NOT agree or endorse anything these individuals listed on our site say. We also believe that the solution to hate speech is more speech.
"I may disagree with what you have to say, but I shall defend, to the death, your right to say it." - Evelyn Beatrice Hall


Maseeh Hall residents enjoy moving around in their dorm, a building which has been often described as “MIT's Castle”.


Assignment 1
Part 1: The Doomsday Algorithm
The Doomsday algorithm, devised by mathematician J. H. Conway, computes the day of the week any given date fell on. The algorithm is designed to be simple enough to memorize and use for mental calculation.
Example. With the algorithm, we can compute that July 4, 1776 (the day the United States declared independence from Great Britain) was a Thursday.
The algorithm is based on the fact that for any year, several dates always fall on the same day of the week, called the doomsday for the year. These dates include 4/4, 6/6, 8/8, 10/10, and 12/12.
Example. The doomsday for 2016 is Monday, so in 2016 the dates above all fell on Mondays. The doomsday for 2017 is Tuesday, so in 2017 the dates above will all fall on Tuesdays.
The doomsday algorithm has three major steps:
- Compute the anchor day for the target century.
- Compute the doomsday for the target year based on the anchor day.
- Determine the day of week for the target date by counting the number of days to the nearest doomsday.
Each step is explained in detail below.
The Anchor Day
The doomsday for the first year in a century is called the anchor day for that century. The anchor day is needed to compute the doomsday for any other year in that century. The anchor day for a century $c$ can be computed with the formula: The result $a$ corresponds to a day of the week, starting with $0$ for Sunday and ending with $6$ for Saturday.
Note. The modulo operation $(x \bmod y)$ finds the remainder after dividing $x$ by $y$. For instance, $12 \bmod 3 = 0$ since the remainder after dividing $12$ by $3$ is $0$. Similarly, $11 \bmod 7 = 4$, since the remainder after dividing $11$ by $7$ is $4$.
Example. Suppose the target year is 1954, so the century is $c = 19$. Plugging this into the formula gives In other words, the anchor day for 1900-1999 is Wednesday, which is also the doomsday for 1900.
Exercise 1.1. Write a function that accepts a year as input and computes the anchor day for that year’s century. The modulo operator %
and functions in the math
module may be useful. Document your function with a docstring and test your function for a few different years. Do this in a new cell below this one.
def anchorDay(year):
remainder = year % 100
century = (year-remainder)/100
anchor = (5 * (century % 4) + 2) % 7
return(anchor)
for year in [1, 2000, 1520]:
print(anchorDay(year))
2
2
3
The Doomsday
Once the anchor day is known, let $y$ be the last two digits of the target year. Then the doomsday for the target year can be computed with the formula: The result $d$ corresponds to a day of the week.
Note. The floor operation $\lfloor x \rfloor$ rounds $x$ down to the nearest integer. For instance, $\lfloor 3.1 \rfloor = 3$ and $\lfloor 3.8 \rfloor = 3$.
Example. Again suppose the target year is 1954. Then the anchor day is $a = 3$, and $y = 54$, so the formula gives Thus the doomsday for 1954 is Sunday.
Exercise 1.2. Write a function that accepts a year as input and computes the doomsday for that year. Your function may need to call the function you wrote in exercise 1.1. Make sure to document and test your function.
def Doomsday(year):
remainder = year % 100
doom = (remainder + int(remainder/4) + anchorDay(year)) % 7
return(doom)
for year in [1, 2000, 1520]:
print(Doomsday(year))
3
2
0
The Day of Week
The final step in the Doomsday algorithm is to count the number of days between the target date and a nearby doomsday, modulo 7. This gives the day of the week.
Every month has at least one doomsday:
- (regular years) 1/10, 2/28
- (leap years) 1/11, 2/29
- 3/21, 4/4, 5/9, 6/6, 7/11, 8/8, 9/5, 10/10, 11/7, 12/12
Example. Suppose we want to find the day of the week for 7/21/1954. The doomsday for 1954 is Sunday, and a nearby doomsday is 7/11. There are 10 days in July between 7/11 and 7/21. Since $10 \bmod 7 = 3$, the date 7/21/1954 falls 3 days after a Sunday, on a Wednesday.
Exercise 1.3. Write a function to determine the day of the week for a given day, month, and year. Be careful of leap years! Your function should return a string such as “Thursday” rather than a number. As usual, document and test your code.
def leapYear(year):
leap = False
if year % 4 == 0:
leap = True
return(leap)
for year in [1, 2000, 1520]:
print(leapYear(year))
False
True
True
daysWeek = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
ddays = [10, 28, 21, 4, 9, 6, 11, 8, 5, 10, 7, 12]
def dayOfWeek(month, day, year):
doomsYear = Doomsday(year)
if leapYear(year):
ddays[1] = 29
ddays[0] = 11
dayDistance = abs(ddays[month - 1] - day)
weekDistance = dayDistance % 7
index = (doomsYear + weekDistance) % 7
return(daysWeek[index])
print(dayOfWeek(1,22,2017))
print(dayOfWeek(1,23,2017))
Sunday
Monday
Exercise 1.4. How many times did Friday the 13th occur in the years 1900-1999? Does this number seem to be similar to other centuries?
def friday13(startYear, endYear):
years = range(startYear, endYear + 1)
months = range(1,13)
count = 0
for year in years:
for month in months:
dow = dayOfWeek(months[month - 1], 13, year)
if dow == "Friday":
count += 1
return(count)
print(friday13(1900,1999)) #172
print(friday13(1800,1899)) #170
print(friday13(1700,1799)) #173
# all pretty close
172
170
173
Exercise 1.5. How many times did Friday the 13th occur between the year 2000 and today?
friday13(2000,2016)
30
Part 2: 1978 Birthdays
Exercise 2.1. The file birthdays.txt
contains the number of births in the United States for each day in 1978. Inspect the file to determine the format. Note that columns are separated by the tab character, which can be entered in Python as \t
. Write a function that uses iterators and list comprehensions with the string methods split()
and strip()
to convert each line of data to the list format
[month, day, year, count]
The elements of this list should be integers, not strings. The function read_birthdays
provided below will help you load the file.
def readBirthdays(file_path):
"""Read the contents of the birthdays file into a string.
Arguments:
file_path (string): The path to the birthdays file.
Returns:
string: The contents of the birthdays file.
"""
with open(file_path) as file:
return file.read()
data = readBirthdays('birthdays.txt')
data = data.strip()
data = [data.split("\n")][0]
data = data[6:]
data = [entry.replace("\t","/") for entry in data]
data = [entry.split("/") for entry in data]
#print(data[1:10])
bdays = []
for entry in data:
#print(entry)
li = []
for element in li:
print(element)
li.append(int(element))
bdays.append(li)


3 references to MakeLocalsTuple
System.Management.Automation (3)
engine\runtime\CompiledScriptBlock.cs (2)
1020
var locals =
MakeLocalsTuple
(runOptimized);
2211
_localsTuple = _scriptBlock.
MakeLocalsTuple
(_runOptimized);
engine\ScriptCommandProcessor.cs (1)
278
_localsTuple = _scriptBlock.
MakeLocalsTuple
(_runOptimizedCode);


| Mode | Size | Filename |
|---|---|---|
| drwxr-xr-x | {{.Digest.SizeBytes}} |
{{$pathHashes := $directoryInfo.GetChildPathHashes .Name}}
{{if $pathHashes}}
{{if $directoryInfo.BloomFilter.Contains $pathHashes}}
{{.Name}}/
{{else}}
|
| lrwxrwxrwx | {{.Name}} -> {{.Target}} | |
| -r-{{if .IsExecutable}}x{{else}}-{{end}}r-{{if .IsExecutable}}x{{else}}-{{end}}r-{{if .IsExecutable}}x{{else}}-{{end}} | {{.Digest.SizeBytes}} |
{{$pathHashes := $directoryInfo.GetChildPathHashes .Name}}
{{if $pathHashes}}
{{if $directoryInfo.BloomFilter.Contains $pathHashes}}
{{.Name}}
{{else}}
|
Note: Green and
red filenames above indicate which files and
directories will be prefetched the next time a similar action executes.
Though it is representative of what is actually accessed by the action,
it may contain false positives and negatives.


Package net.sf.jasperreports.engine.fill
Interface FillHandle
-
- All Known Implementing Classes:
AsynchronousFillHandle
,BaseFillHandle
public interface FillHandle
Interface implemented by classes that are used to perform report filling asychronously.An instance of this type can be used as a handle to an asychronous fill process. The main benefit of this method is that the filling process can be cancelled.
- Author:
- Lucian Chirita<EMAIL_ADDRESS>-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
addFillListener(FillListener listener)
Adds a fill listener to the filling process.void
addListener(AsynchronousFilllListener listener)
Adds a listener to the filling process.void
cancellFill()
Cancels the fill started by the handle.boolean
isPageFinal(int pageIdx)
Determines wheter a page generated by the fill process is final or not.boolean
removeListener(AsynchronousFilllListener listener)
Removes a listener from the filling process.void
startFill()
Starts the filling process asychronously.
-
-
-
Method Detail
-
addListener
void addListener(AsynchronousFilllListener listener)
Adds a listener to the filling process.- Parameters:
listener
- the listener to be added
-
removeListener
boolean removeListener(AsynchronousFilllListener listener)
Removes a listener from the filling process.- Parameters:
listener
- the listener to be removed- Returns:
- true if the listener was found and removed
-
addFillListener
void addFillListener(FillListener listener)
Adds a fill listener to the filling process. The fill listener is notified of intermediate events that occur during the report generation.- Parameters:
listener
- the listener to add
-
startFill
void startFill()
Starts the filling process asychronously.The filling can be launched on a new thread and the method exits after the execution is started.
When the filling finishes either in success or failure, the listeners are notified.
-
cancellFill
void cancellFill() throws JRException
Cancels the fill started by the handle.The method sends a cancel signal to the filling process. When the filling process will end, the listeners will be notified that the filling has been cancelled.
- Throws:
JRException
-
isPageFinal
boolean isPageFinal(int pageIdx)
Determines wheter a page generated by the fill process is final or not.- Parameters:
pageIdx
- the page index- Returns:
- whether the page at the specified index is final or can be subject to future changes
- See Also:
FillListener.pageUpdated(JasperPrint, int)
-
-


The input method engine SPI enables the development of input
methods in the Java programming language that can be used with any
JRE. As far as the input method framework is
concerned, an input method consists of two classes implementing the
InputMethodDescriptor
and InputMethod
interfaces, packaged with some additional information as an
extension and installed into a Java runtime. The specifications for
the
java.awt.im.spi
package, and the InputMethodDescriptor
and InputMethod
interfaces provide the core information that's needed to implement
an input method. This tutorial provides additional information that
makes this task a little easier and helps avoid compatibility
problems between different implementations of the Java platform.
Before the input method framework can start using an input
method, it needs to know about its capabilities. The necessary
information is provided by the input method's implementation of the
InputMethodDescriptor
class. This information is used in selecting input methods.
The list of available locales returned by
getAvailableLocales
should only return languages that
the input method is really designed for. For example, a Chinese
Pinyin input method that produces simplified Chinese characters
should only return SIMPLIFIED_CHINESE
,
even if it has a mode that simply lets key events pass through and
thus also makes it possible to write English or Malay. The
InputMethod.setLocale
method on the other hand may
return true for a larger set of languages. The reason is that
getAvailableLocales
is used to decide whether to load
and switch to an input method, which is only worthwhile if
the input method handles the language well, while
setLocale
is used to decide whether to switch
away from an input method, which is only worthwhile if the
input method doesn't handle the language at all.
When an input method instance is created, it receives an
InputMethodContext
instance through
setInputMethodContext
. This instance provides it with
all the functionality that it needs to communicate with the input
method framework, the client component, or the composition window.
It lets the input method send information about composed and
committed text using the
dispatchInputMethodEvent
method. And it lets the input
method request information from the client component using the
methods it inherits from the InputMethodRequests
interface.
The input method framework provides the input method with an environment that makes it seem like it is always communicating with an active client component using the on-the-spot input style. If the actual client component is not an active client, or if a different input style is used, then the framework redirects events and requests as needed.
The input method should never try to access the client component directly, as doing so would conflict with the framework's switching and redirection functionality. Instead, the input method should always use the methods provided by its input method context.
Input methods may use a number of different windows to communicate with the user. Windows commonly used by input methods include:
Note: On some other platforms, input methods may also provide a composition window, which shows the composed text. In the Java input method framework, composed text is always displayed by the client component or the input method framework, never by the input method.
It is useful to consider three groups of windows:
Here's how these window groups can be handled by input methods:
InputMethodContext.createInputMethodWindow
, typically
with attachToInputContext
set to true. They are opened
either in the input method's implementation of activate
,
or later when needed to respond to user input. They are closed in
the input method's implementations of
deactivate
or hideWindows
,
or earlier if they are no longer needed.
InputMethodContext.createInputMethodWindow
, with
attachToInputContext
set to false. They are typically
opened in the input method's implementation of activate
and closed in the input method's implementation of hideWindows
.Note that the focus behavior of a window created by
createInputMethodWindow
is implementation dependent.
It may never get the focus, it may get the focus when initially
made visible, or it may get the focus when the user clicks into it.
An input method must be able to handle either case.
To position windows (such as the look-up window) automatically
relative to the composed text, the input method can use the input
method context's
getTextLocation
method. To position windows (such as a
status window) automatically relative to the window containing the
current client component, the input method can register for
notifications about that window's location and state using the
input method context's
enableClientWindowNotification
method; it then has to
implement the
notifyClientWindowChange
method to receive
notifications.
Input methods must call Window.dispose for all windows they create when they are no longer needed. This ensures that the JVM exits when the application terminates all non-daemon threads it started. Please refer to AWT Threading Issues for more information.
The main task of an input method is interpreting user actions in composing text input. The user actions may be typing on the keyboard, using the mouse, handwriting, or speaking.
The activate
and
deactivate
methods indicate to the input method whether
a client component has the focus and therefore is the target of
text input. Typically input methods only process events to compose
text while they're active.
When an input method is active, certain types of events are
dispatched to the input method using the
dispatchEvent
method before they are processed by the
client component. The input method decides for each event whether
it wants to handle it. If it does, it marks the event as consumed
so that it is not processed by the client component.
Note: For key events, input methods should use only KEY_TYPED events to obtain information about characters being entered, and use KEY_PRESSED or KEY_RELEASED events only to obtain information about function keys that don't result in KEY_TYPED events. The mapping from key-presses to characters depends on platforms, hardware, locales, and possibly other factors, and is best left to the underlying operating system.
As text is being composed and committed, the input method needs
to inform the client component about all changes so that the client
component can redraw the text. The input method does this by using
InputMethodContext.dispatchInputMethodEvent
to construct
and dispatch input method events to the client component. Depending
on the current event flow model, the input method framework may
redirect the events to its composition window. Dispatching input
method events is the only way for Java input methods to have
composed text displayed.
Composed text is usually marked up with highlight styles that
indicate the current state of the conversion. This is accomplished
by adding attributes to the text using the
TextAttribute.INPUT_METHOD_HIGHLIGHT
key and instances
of InputMethodHighlight
as values. Normally input methods only define abstract highlights
(using the state and selected properties of the input method
highlight) and leave the mapping to concrete styles to the
rendering system. However, if desired, input methods can add
concrete style information to the highlight using the style
property. It is a good idea to design the concrete styles as
variations of the styles provided returned by
Toolkit.mapInputMethodHighlight
.
Both the client component and the input method framework may
recognize situations where the current composition needs to be
ended and all composed text either committed or cancelled. They
inform the input method about this need using the endComposition
method. Note that endComposition
may be called while
the input method is not active.
Client components can influence composition using several
methods. The
InputContext.setCharacterSubsets
method lets them
restrict the subset of the Unicode character set that the input
method is allowed to input. Input methods should generally not
create characters outside of the specified subsets, and may switch
to a different input mode that particularly supports the specified
character subsets. The
InputContext.setCompositionEnabled
and
isCompositionEnabled
methods let them control and
examine whether the current input method is enabled for
composition. The InputContext.reconvert
method lets them initiate reconversion.
Some input methods may want to provide functionality to client
components that can not be made available through the input method
framework API. This is possible through input method control
objects. The input method developer must publish an interface
for these objects, and return instances through InputMethod.getControlObject
.
Client components that want to take advantage of the additional
functionality can then call
InputContext.getInputMethodControlObject
, check whether
the returned object is an instance of a known control object class,
and if it is, call its methods.
Input methods are packaged as installed extensions with specific content as described in the "Packaging Input Methods" section of the SPI specification. One important aspect to consider is that all extensions installed in a Java application environment share the same name space. To avoid name collisions, input methods should follow the package naming conventions as described in the Java Language Specification. Similar conventions should be applied to naming non-class files that are packaged in the input method JAR file, such as dictionaries.
City Input Method is a simple input method that shows how to use the interfaces provided by the input method engine SPI.


- A Message From Warren E. Buffet
- Annual & Interim Reports
Updated November 6, 2015
- Special Letters from Warren and Charlie RE: Past, Present and Future
- Link to SEC Filings
- Corporate Governance
- Links to Berkshire Subsidiary Companies
- Corporate Governance
- Owner's Manual
- Letters from Warren E. Buffet Regarding Pledges to Make Gifts of Berkshire Stock
- News Releases
Updated November 6, 2015
- Warren Buffet's Letters to Berkshire Shareholders
Updated February 28, 2015
- Charlie Munger's Letters to Wesco Shareholders
- Annual Meeting Information
- Corporate Governance
- Celebrating 50 Years of a Profitable Partnership
(A Commemerative Book First Sold at the 2015 Meeting and now for sale on eBay.)
- Comparative Rights and Relative Prices of Class A and B Stock
- Berkshire Activewear


Hey everyone. I am a full stack software engineer always excited to learn new things and tackle new challenges. I am graduating this spring from Florida State University and I am eager to continue learning and improve my problem-solving skills in the work field.
Working as a full stack developer, Jellyfish Health develops a product to enhance the patient's experience. The product is AngularJs front end with a loosely coupled backend in Java. I contributed on both sides, from the frontend patient facing features to the foundational backend supporting the database. One of the big projects I worked on was normalizing the Document-based MongoDB to be usable by business intelligence tools like tableau.
Worked as a barista for over 4 years at Starbucks where I became quite the coffee expert. Especially when it came to latte art. I wish I had more pictures from back then.
Developed a broad range of skills from low level Assembly hacking and modifying operating systems to creating web applications in Node.js. The primary language used at FSU was C++.
This was the start of my journey to complete my computer science degree at FSU. At the beginning of 2016, I set myself a goal to finish my degree in 3 years.
This is a project written in Node.js with the purpose to sell random pieces of art through a discord bot. It implements PayPal, Cloudinary, Discord API in order to accomplish this task.
View Project


Introduction
to Chinese Philosophy: Understanding Contemporary through Ancient China
Instructor: Rockwell F. Clancy
Course: VR265 –
Introduction to Chinese Philosophy
Meeting: Tuesday and Thursday 6:20-8 pm
Location: Upper
Teaching Building Hall (Shang Yuan – 上院) room 111
Office Hrs: Wednesday 2-3:40 pm (weeks one and two),
Thursday 2-5:40 pm (weeks three through fourteen), and by appointment
Office
Rm: UM-SJTU JI building, 411C
Email<EMAIL_ADDRESS>Teaching assistant
Name: Ashley Ng
Email<EMAIL_ADDRESS>Office Hrs: Monday 6-7:40 pm
Location: TBD
1. Course Description
In the last thirty years, China has developed more and more
quickly than any society in human history, resulting in inquiry into the basis
of contemporary Chinese culture. In attempting to understand this basis,
efforts have tended to focus on China’s differences from the West, as well as
China’s history: In contradistinction to contemporary Western culture, that in
China would be based on ancient Eastern paradigms, characterized in terms of
figures, questions, and themes associated with the Chinese philosophical
tradition.
To better understand these dynamics and their stakes, this course
introduces Chinese philosophy, through reflection on the ways and extent to
which Chinese philosophy serves as the basis for contemporary Chinese culture.
It surveys Confucianism, Mohism, Daoism, and legalism, as well as psychological
and anthropological accounts of the nature and evolution of culture. Towards
these ends, emphasis will be given to not only the history of China and its
philosophical tradition but also contemporary China and current social trends.
The course will focus on understand not only the manner and extent
to which Chinese philosophy is related to Chinese culture, but also how Chinese
philosophy has conceived of culture. In addition to those specific contents,
the course will cultivate the general skills of close reading, critical
thinking, and clear writing
2. Texts
Required –
some of these will be posted on Canvas:
·
Ramsey, G. (2013). Culture in humans and
other animals. Biology and Philosophy
28:457-479 https://doi.org/10.1007/s10539-012-9347-x
·
Henrich, J. (2015). Culture and social behavior. Current Opinion in Behavioral Sciences
3:84-89. doi.org/10.1016/j.cobeha.2015.02.001
·
Norenzayan, A.,
Shariff, A., Gervais, W., Willard, A., McNamara, R., Slingerland, E., &
Henrich, J. (2016). The cultural evolution of prosocial religions. Behavioral and Brain Sciences, 39, E1.
doi:10.1017/S0140525X14001356
·
Sarkissian, H. & Nichols, R. (2016). Chinese philosophy as
experimental philosophy. Research handbook on methodology in Chinese
philosophy. S. Tan (ed.). Bloomsbury: New York.
·
Ivanhoe, P. & Van Norden, B. (trans.) (2001). Readings in
classical Chinese philosophy 1st ed. Indianapolis: Hackett.
·
Although you should consult the text above for English-language
translations, those who can read or are learning ancient Chinese should go to
the following site, printing out and bringing to class you can find the ancient
Chinese here: https://ctext.org/confucianism/ens
Throughout the
semester, I’ll make reference to materials from a variety of other texts,
related to moral psychology, cultural psychology and anthropology, and Chinese
history and philosophy. Although you’re not obliged to read any of these, I’ve
found them fascinating. This semester we’ll barely scratch the surface, but the
interested student might consult some of the following:
Moral,
norm, and cultural psychology/anthropology
·
Sripada, C. &
Stich, S. (2007). A framework for the psychology of norms. Innateness and the Structure of the Mind vol. II. P. Carruthers, S. Laurence
& S. Stich (eds.) Oxford: Oxford University Press.
·
Sinnott-Armstrong, W.
& Wheatley, T. (2014). Are moral judgments unified? Philosophical
Psychology, 27(4), 451-474.
·
Schwartz, S. (1992). Universals in the content and structure of
values. Advances in experimental social
psychology vol. 25. M. Zanna (ed.) New York:
Academic Press.
·
Parkinson, C., Sinnott-Armstrong, W., Koralus,
P., Mendelovici, A., McGeer,
V., & Wheatley, T. (2011). Is morality unified? Evidence that distinct
neural systems underlie moral judgments of harm, dishonesty, and disgust. Journal of Cognitive Neuroscience 23:10,
3162–3180.
·
Kelly, D. & Stich, S. (2008). Two theories about the cognitive
architecture underlying morality. The Innate Mind vol. III. P. Carruthers, S. Laurence & S. Stich (eds.)
Oxford: Oxford University Press.
·
Kelly, D., Stich, S., Haley, K., Eng,
S., & Fessler, D. (2007). Harm,
affect, and the moral/conventional distinction. Mind & Language,
Vol. 22 No. 2 April 117-131.
·
Huebner, B., Lee, J., and Hauser, M. (2010). The
moral-conventional distinction in mature moral competence. Journal of
Cognition and Culture 10: 1-26. doi:
10.1163/156853710x497149
·
Haidt, J. (2012). The
righteous mind: Why good people are divided by politics and religion. New
York: Pantheon.
·
Henrich, J. (2015). The secret of our success: How culture is
driving human evolution, domesticating our species, and making us smarter. Princeton: Princeton
University Press.
· Schwartz, S. (2007).
Universalism values and the inclusiveness of our moral universe. Journal of
Cross-Cultural Psychology, 38, 711-728. doi:10.1177/0022022107308992
· Richerson, P. & Boyd, R.
(2005). Not by genes alone: How culture
transformed human evolution. Chicago: University of Chicago Press.
· Norenzayan, A. (2013). Big
gods: How religion transformed cooperation and conflict. Princeton
University Press: New Jersey.
· Knafo, A., Schwartz, S.,
& Levine, R. (2009). Helping strangers is lower in embedded cultures. Journal of Cross-Cultural Psychology, 40
(5), 875-879
· Henrich, J., Heine,
S., Norenzayan, A. (2010). The weirdest people in the
world? Behavioral and Brain Sciences. vol 33
(2-3), Apr-Jun, 61-83.
· Hofstede, G. (2001). Culture’s
consequences: Comparing values, behaviors, institutions, and organizations
across nations. New York, NY: Sage.
· Graham, J., Meindl, P., Beall, E., Johnson, K., & Zhang, L. (2016).
Cultural differences in moral judgment and behavior, across and within societies.
Current Opinion in Psychology. Vol. 8
April 125-130.
· Fessler, D., Barrett,
C., Kanovsky, M., Stich, S., Holbrook, C., Henrich,
J., Bolyanatz, A., Gervais, M., Gurven,
M., Kushnick, G., Pisor,
A., Rueden, C., & Laurence, S. (2015). Moral
parochialism and contextual contingency across seven societies. Proc. R. Soc. B 282: 20150907.
http://dx.doi.org/10.1098/rspb.2015.0907.
· Gelfand, M. J.,
Nishii, L., & Raver, J. (2006). On the nature and importance of cultural
tightness-looseness. Journal of Applied
Psychology, 91, 1225–1244.
· Gelfand, M. et. al.
(2011). Differences between tight and loose cultures: A 33-nation study. Science 332(6033):1100–1104.
· Gold, N., Colman, A.,
Pulford, B. (2014). Cultural differences in responses to real-life and
hypothetical trolley problems. Judgment
and Decision Making.
· Gächter, S., Herrmann, B, and
Thöni, C. (2010). Culture and cooperation. Philos Trans R Soc Lond B Biol
Sci. Sep 12; 365(1553): 2651-2661.
· Chudek, M., Zhao, W. &
Henrich, J. (2013) Culture-gene coevolution, large-scale cooperation and the
shaping of human social psychology. R. Joyce, K. Sterelny,
& B. Calcott (eds.) Signaling, commitment, and emotion 425–57 MIT Press.
· Machery, E. (2017). Philosophy
within its proper bounds. New York: Oxford University Press.
· Dowes, S. & Machery, E. (ed.)
(2013). Arguing about human nature:
Contemporary debates. New York: Routledge Press.
· Heine, S. (2016). Cultural
psychology 3rd ed. New York: Norton and Company.
· Sterelny, K. (2014). The evolved
apprentice: How evolution made humans unique. Cambridge: MIT Press.
Chinese history, philosophy, and psychology
· Talhelm, T., Zhang, X.,
Oishi, S., Shimin, C., Duan,
D., Lan, X., & Kitayama, S. (2014). Large-scale
psychological differences within China explained by rice versus wheat sgriculture. Science
vol 344 May.
· Bond, M. (2010). The Oxford
handbook of Chinese psychology. New York: Oxford University Press.
· Ma, D., & William,
A. (2014). In line behind a billion people: How scarcity will define China’s
ascent in the next decade. Upper Saddle River, NJ: FT Press.
· Slingerland, E.
(2014). Trying not to try: The art and
science of spontaneity. New York: Broadway Books.
· Fairbank, J. &
Goldman, M. (2006). China: A new history
2nd ed. Cambridge: Harvard University Press.
· Bell, D. (2015). The
China model: Political meritocracy and the limits of democracy. Princeton:
Princeton University Press.
· Bell, D. (2017). Why
anyone can be Chinese. The Wall Street
Journal. July 14.
· Nisbett, R. (2010). The geography of thought: How Asians and
Westerners think differently and why. New York: Free Press.
· Van Norden, B. (2011). Introduction
to classical Chinese philosophy. Indianapolis: Hackett.
· Fairbank,
J. (1987). The great Chinese revolution
1800-1985. New York: Harper
and Row.
· Spence,
J. (2012). The search for modern China 3rd
ed. New York: W. W. Norton and Company.
· Hall, D. & Ames,
R. (1987). Thinking through Confucius. Albany: State University of New
York Press.
· Dien, D. (1997). Confucianism and
cultural psychology: Comparing the Chinese and the Japanese. Hayward: California State University.
· Dien, D. (1999). Chinese
authority-directed orientation and Japanese peer-group orientation: Questioning
the notion of collectivism. Review of General Psychology 3, 372-385.
· Talhelm, T.,
Haidt, J., Oishi, S., Zhang, X., Miao, F., & Chen, S. (2015). Liberals
think more analytically (More “WEIRD”) than conservatives. Personality and Social
Psychology
Bulletin, Vol. 41(2) 250–267.
· Wu, J.
Zhang, B., Zhou, Z., He, Q., Zheng, X., Cressman,
R., & Tao (2009). Costly punishment does not always increase cooperation. Proceedings of
the National Academy of Sciences Oct
106 (41) 17448-17451. doi:10.1073/pnas.0905918106
· Dranseika, V., Berniūnas, R., & Silius, V.
(forthcoming). Immorality and bu daode, Unculturedness and bu wenming. Journal of Cultural Cognitive Science.
· Zhu, L., Gigerenzer, G., & Huangfu, G.
(2013). Psychological traces of China’s socio-economic reforms in the ultimatum
and dictator games. PLoS ONE 8(8): e70769.
doi:10.1371/journal.pone.0070769.
· Buchtel, E., Guan, Y., Peng,
Q., Su, Y., Sang, B., Chen, S., & Bond, M. (2015). Immorality east and
west: Are immoral behaviors especially harmful, or especially uncivilized? Personality and Social Psychology Bulletin.
doi:0146167215595606.
· Flanagan,
O., & Williams, R. (2010). What does the modularity of morals have to do
with ethics? Four moral sprouts plus or minus a few. Topics in Cognitive Science 2, no. 3: 430-453.
· Flanagan, O. (2008). Moral contagion and logical
persuasion in the ‘Mozi’ (sic). Journal of Chinese Philosophy 35, no. 3 September: 473-491.
You might find the Stanford Encyclopedia of Philosophy and
Internet Encyclopedia of Philosophy (both available online) helpful as well.
3. Course Requirements
Rather than primarily lectures,
the format of this course is based on out-of-class reading and reflection, as
well as in-class discussion and exercises. The primary focus will be on discussions
of and reflections on the assigned materials, as well as answering reflective
questions and completing exercises related to the course readings. To
contribute to class discussions in a meaningful way, it is important that you
do the assigned readings before class. Additionally, you should always bring paper and a writing utensil to this course, since you should take notes[1],
and there’ll be a variety of short writing/reflection exercises you’ll be
required to turn in at the end of class.
A.
Reading/attendance quizzes and/or in-class exercises (20%): To ensure you attend
class, have done and understood the reading, and as a jumping-off point for
class discussion, some classes will begin with a short (one to two questions)
quiz, concerning the assigned reading for that day, personal reflection, and/or
the content covered in the previous class. You will have seven minutes to complete the quiz, beginning from the time the
bell rings. For that reason, you should arrive to class on time, putting away
everything except a piece of paper and writing utensil, before the class and quiz begin. On other days, this part of your
grade will be based on individual or group in-class reflection/writing
exercises.
According to JI regulations,
class attendance is required, and students who miss over 1/3 of
classes cannot pass. Participation consists in not only attendance but also, for
example, answering questions, asking questions, and completing exercises. You
are responsible for all the material covered in class, including lecture
content, schedule and policy changes, and other general information. (TIP: Be
sure to ask for the contact information of several classmates so you can
contact them about what you missed.)
To quote the JI policy on leave/missed
classes:
a) “An advance request for leave of
absence is required if the student cannot attend the class due to illness or
other reasons. Absence without approval will be regarded as skipping classes.”
b) “A note that a student visited a
medical facility is not a sufficient excuse for missing an assignment. The note
must specifically indicate that the student was incapable of completing an
assignment due to medical problems and that this condition was sudden enough
that it was impractical to contact the instructor in advance.”
Even with an excused absence, you are
required to hand in any work due for the class on time. For example, if you
have an approved leave of absence on Monday, you are responsible for handing in
any homework at the same time as other students.
As research indicates that students learn
conceptual content better through taking notes by hand[2],
you should not use your laptop/tablet in
class. Check
the syllabus and Canvas regularly to keep up with assignments and other
information related to the course. Your lowest
two reading/attendance quizzes and
in-class exercises grades will be dropped.
B.
Cultural/empirical assessment stories/questions (CEASQ) (50%): Based on the
philosophical readings, students will complete writing assignments, consisting
in formulating stories/questions to assess the extent to which individuals
would subscribe to specific cultural variants – for example, ideas, beliefs,
and values – covered in the readings, as well as identifying and discussing
empirical claims made by the texts. These should be at least two pages but no
longer than four pages. You will be assessed on form as much as content – i.e., that your writing follows the conventions of the
English language and are free of punctuation, grammar, and syntactical
mistakes. These will be related to what we discuss in class so, again, take
notes. Check the guidelines/grading
criteria for your written work posted on Canvas. If writing is especially
troublesome for you, then I encourage you to seek help from the JI’s Writing
Center. All late work will be penalized ten-percentage
points per day. No papers handed in more than four days late will be accepted. Always both submit e-versions and bring hardcopies to class.
C. Final exam (30%): The final exam will be
closed book, closed notes, with short answer questions drawn from the readings,
quizzes, homework, essays, lectures, and
class discussions. For this reason,
it is absolutely necessary – not only for your participation grade but also for
exam performance – that you attend all
classes, or get notes from someone you trust for classes you miss. The
final exam will be cumulative.
4.
Grading Policy
Reading/attendance quizzes and/or
in-class exercises 20%
Cultural/empirical assessment
stories/questions 50%
Final exam 30%
Grades will be assigned according
to this chart:
|
Final average |
Course grade |
Final average |
Course grade |
|
98% and above |
A+ |
77% and above |
C+ |
|
93% and above |
A |
73% and above |
C |
|
90% and above |
A- |
70% and above |
C- |
|
87% and above |
B+ |
60% and above |
D |
|
83% and above |
B |
59.9 and below |
F |
|
80% and above |
B- |
|
|
5.
Academic Integrity
All work handed in for this class
must be your own. The inclusion of any data, words, or ideas from any other
source must be acknowledged, and that source must be given proper credit.
Failure to do so is a violation of the Honor Code. Any suspected violation of
the Honor Code will be reported to Honor Council for investigation. In addition to any sanctions you might receive
from the Honor Council, plagiarism will result in a failing grade on the
assignment, as it will be deemed to have not been satisfactorily completed. For this course,
plagiarism is defined as:
a)
The use of any passage of three
words or longer from another source without proper attribution. Use of any
phrase of three words or more must be enclosed in quotation marks (“example, example, example”). The source
of the material must be identified in the text, by a parenthetical reference,
footnote, or endnote.
b)
Use of material from an uncredited source, making very minor
changes (like word order or verb tense) to avoid the three-word rule.
c)
Inclusion of facts, data, ideas, or theories originally
thought of by someone else, without giving that person (organization, etc.)
credit. You must identify the source, whether in an endnote, footnote,
parenthetical reference, or in the text.
d)
Paraphrasing ideas or theories
(writing them in your own words) without giving the original thinker proper
credit.
e)
Allowing another person to make extensive changes to your paper.
This is considered “unauthorized aid.” (Allowing a friend to check your work
for minor errors is fine.)
f)
Use of an electronic translation program such as Google Translate.
The use of machine translation programs is classified as “unauthorized
aid.”
Even assignments that
you have struggled with will probably result in a grade higher than that of
plagiarized work. If you have any questions about what constitutes or how to
avoid plagiarism, please do not hesitate to ask.
6. Language
As long as students
are in the classroom, they should speak English. Students should also speak
English when meeting with me or the TA. If students must ask for the definition
of an English word, this should be done in English. I will ask students not
speaking in English to leave class.
7. Courtesy
Please foster a
learning atmosphere by respecting classmates, TA’s, and the teacher. Students
are asked to turn off their cell phones when class begins. Please do not play
with electronic devices during class. Please be polite to other students. Any
discussions about grades should take place calmly. It is recommended that
students wait twenty-four hours before contacting an instructor or TA about a
disputed grade. Again, I will ask students speaking out of turn or being
disruptive to leave class.
*This syllabus is tentative
and subject to revision as the instructor sees fit.
8. Assignments and tentative course schedule
|
Class |
Topic(s) |
Reading/homework |
Deadlines |
|
1 – 9/11 |
Complete
pre-course survey, introduce ourselves, the course/reviewing the syllabus, and
introduction to philosophy: branches and their relations – the
distinctiveness of Chinese philosophy |
Read the syllabus and Ramsey, submit
a recent picture of yourself, and complete the plagiarism tutorial |
|
|
2 – 9/13 |
An exercise on/the nature of culture |
Henrich and Norenzayan et. al. Submit a recent picture of yourself, and complete the plagiarism tutorial |
|
|
3 – 9/18 |
Origins and function of culture |
Norenzayan et. al. |
Reading/attendance quiz, a recent picture
of yourself, and the plagiarism tutorial |
|
4 – 9/20 |
Religion as prototypically cultural –
the nature of “Big Gods” |
Sarkissian & Nichols |
|
|
5 – 9/25 |
Experimental Chinese philosophy – identifying and testing
empirical claims |
|
Reading/attendance quiz |
|
6 – 9/27 |
Catch up/review |
Ivanhoe & VanNorden
vii-xvii and 1-6 |
|
|
7 – 10/9 |
Kongzi |
Ivanhoe & VanNorden
7-27 |
Reading/attendance quiz |
|
8 – 10/11 |
Kongzi |
Ivanhoe & VanNorden
27-37 |
Reading/attendance quiz |
|
9 – 10/16 |
Kongzi |
Ivanhoe & VanNorden
37-50 |
Reading/attendance quiz |
|
10 – 10/18 |
Kongzi |
Ivanhoe & VanNorden
157-177 |
Reading/attendance quiz |
|
11 – 10/23 |
Laozi |
Ivanhoe & VanNorden
177-200 |
Kongzi CEASQ |
|
12 – 10/25 |
Laozi |
Ivanhoe & VanNorden
55-90 |
Reading/attendance quiz |
|
13 – 10/30 |
Mozi |
Ivanhoe & VanNorden
90-107 |
Laozi CEASQ |
|
14 – 11/1 |
Mozi |
Ivanhoe & VanNorden
111-133 |
Reading/attendance quiz |
|
15 – 11/6 |
Mengzi |
Ivanhoe & VanNorden
133-140 |
Mozi CEASQ |
|
16 – 11/8 |
Mengzi |
Ivanhoe & VanNorden
140-153 |
Reading/attendance quiz |
|
17 – 11/13 |
Mengzi |
Ivanhoe & VanNorden
203-219 |
Reading/attendance quiz |
|
18 – 11/15 |
Zhuangzi |
Ivanhoe & VanNorden
219-243 |
Mengzi CEASQ |
|
19 – 11/20 |
Zhuangzi |
Ivanhoe & VanNorden
247-258 |
Reading/attendance quiz |
|
20 – 11/22 |
Xunzi |
Ivanhoe & VanNorden
258-291 |
Zhuangzi CEASQ |
|
21 – 11/27 |
Xunzi |
Ivanhoe & VanNorden
295-307 |
Reading/attendance quiz |
|
22 – 11/29 |
Hanfeizi |
Ivanhoe & VanNorden
307-355 |
Xunzi CEASQ |
|
23 – 12/4 |
Hanfeizi |
Ivanhoe & VanNorden
355-342 |
Reading/attendance quiz |
|
24 – 12/6 |
Catch up/review for the final
exam |
Review for final exam |
Hanfeizi CEASQ |
|
25 – week of 12/10-14 |
Final exam |
Final exam |
Final exam |
[1] If you have trouble with/are not sure how to take notes by hand, then you can check out this helpful link: https://students.dartmouth.edu/academic-skills/learning-resources/learning-strategies/notetaking
[2] See https://docs.google.com/presentation/d/1vmQ548UJ0WnoSwkfREU3iR-m2Co1xTWzGkhcv6bFbY8/edit#slide=id.g1bcb87dcc5_0_45, http://www.npr.org/2016/04/17/474525392/attention-students-put-your-laptops-away, and – with regard to the perils of laptops/tablets in the classroom in general – https://theconversation.com/facebook-fight-why-we-banned-laptops-ipads-and-smartphones-in-lectures-32116.


This Arduino sketch will create a new data point on your account on startup, useful for initialising a new device that's just connected to the internet. This sample requires an Arduino ethernet shield that is connected to your LAN with internet access. The ACTION parameter is what tells nimbits what to do with the point, other options are action=delete, and action=update to delete or apply changes to a point. Using update assumes you are also providing a point in json format using the json={} parameter.
You'll also need to provide an access key with privileges to create a data point. Read about creating access keys on your account here
Please also note that we hardcoded the IP address of google.com, which you can get by pinging that address. This changes frequently and google load balances. For production, you'll want to include the arduino DNS library to lookup a valid IP each time.
#include <SPI.h> #include <Ethernet.h> // Enter a MAC address and IP address for your controller below. // The IP address will be dependent on your local network: byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; byte ip[] = { 192,168,1,177 }; /* this is the ip of google.com, you'll want to change it to what you get when you ping that domain for production, you'll want to add the DNS library to look it up each time, since a valid IP for google changes often */ byte server[] = { 74,125,228,103 }; Client client(server, 80); //include here a global key that can write to your account (created by logging into nimbits and right clicking your email to create a key with global scope) String content =<EMAIL_ADDRESS>void setup() { Ethernet.begin(mac, ip); Serial.begin(9600); delay(1000); Serial.println("connecting..."); if (client.connect()) { Serial.println("connected"); client.println("POST /service/point HTTP/1.1"); client.println("Host:nimbits1.appspot.com"); client.println("Connection:close"); client.println("Cache-Control:max-age=0"); client.print("Content-Type: application/x-www-form-urlencoded\n"); client.print("Content-Length: "); client.print(content.length()); client.print("\n\n"); client.print(content); } else { Serial.println("connection failed"); } } void loop() { if (client.available()) { char c = client.read(); Serial.print(c); } if (!client.connected()) { Serial.println(); Serial.println("disconnecting."); client.stop(); for(;;) ; } }
This is an example of doing a GET to the point service to confirm a point exists.


|
A.setosa
|
Occurrence records of Alsophila setosa downloaded from Global Biodiversity
Information Facility (GBIF). |
|
BR
|
Brazil boundary |
|
classify_occ()
|
Classify occurrence records in levels of confidence in species identification |
|
clean_eval()
|
Evaluate the cleaning of occurrences records |
|
create_spec_df()
|
Create specialist data frame from character vector |
|
cyathea.br
|
Occurrence records of Cyathea species in Brazil downloaded from Global Biodiversity
Information Facility (GBIF). |
|
define_env_space()
|
Define environmental space for species occurrence |
|
get_det_names()
|
Get the names in the 'identified.by' column |
|
grid_filter()
|
Filter the occurrence with most confidence in species identification inside
grid cells |
|
map_module()
|
Check the occurrence records in a interactive map module |
|
r.temp.prec
|
Raster of temperature and precipitation |
|
speciaLists
|
Specialists of ferns and lycophytes of Brazil |
|
spec_names_ex
|
Example of specialist names with accent marks |


USELESS FACT SEARCH ENGINE
Search Here
Select Type
People
Star Ships
Planets
Vehicles
Species
Submit


Settling up
With
Tanmay
Chose mode of settlement
Request payment here
Settled up with cash
Send Reminder(WhatsApp/SMS)
Click to Settle Up


Bootstrap 4 & 5 helper for your Flask projects.
If you find Bootstrap-Flask useful, please consider donating today:
Your donation keeps Bootstrap-Flask maintained and updated with Bootstrap.


Farmers hit by Cyclone Bulbul face uncertain future
by bdnews24.comThe Department of Agricultural Extension in Khulna has made a list of farmers affected by Cyclone Bulbul, but it is unclear whether they will get any help.
The DAE has already sent the list to the agriculture ministry.
"But we are yet to know if any help is coming," Pankaj Kanti Majumder, deputy director of DAE in Khulna, told bdnews24.com on Saturday.
The government started handing out seeds and fertiliser worth Tk 3.9 million among about 3,000 farmers in the district as incentives for the cultivation of sunflower, lentil, sesame and other crops well before the storm lashed the coastal districts on Nov 9, Majumder said.
Paddy was the worst affected crop in Dakop, Koyra, Paikgachha, Dumuria and Batiaghata, said the DAE official.
About 26,000 hectares of paddy field along with hundreds of hectares of vegetable, banana, papaya and betel leaf have been damaged by the cyclone.
Almost all fields of mustard in the district have been damaged, according to Majumder.
The affected farmers said they were staring at bad times ahead.
Shyamsundar Mondol of Ramnagar village in Dakop said he cultivated paddy and the crops were nearly ready for harvesting.
“Cyclone Bulbul has destroyed everything. Now it will be very difficult for me to run my family.”


My favorite things
These are a few of my favorite things.
Cars
Here are my favorite car models
- BMW
- Ferrari
- RangeRover
- Volkswagen:
- Mercedes
- Porsche
Types of Aircraft
These are my favorites in order of size
- Cessna 172
- Cessna Caravan
- Boeing 777
Thanks for reading about me!


Preparation time
less than 30 mins
Cooking time
10 to 30 mins
Serves
Serves 4
If you're looking for a smarter way to enjoy chicken breast, look no further. This is a great mid-week meal.
Preheat the oven to 170C/340F/Gas 3.
For the sage butter, chop the sage leaves finely.
Place the butter in a bowl, add the chopped sage leaves and mustard, and season, to taste, with salt and freshly ground black pepper. Mix together well.
For the chicken, using a sharp knife, slice into the side of each chicken breast to form a pocket.
Spoon a quarter of the butter mixture into each pocket and fold to enclose. If you have any of the flavoured butter left over you can roll it into a sausage shape, freeze and use (within a month) in another dish.
Place two prosciutto slices on a clean board so that they overlap slightly. Wrap one of the chicken breasts in the slices and roll to enclose. Repeat with the remaining prosciutto slices and chicken breasts.
Heat the olive oil in a heavy-bottomed frying pan. When hot, add the wrapped chicken breasts.
Cook over a medium heat until the prosciutto is lightly golden, about two minutes.
Turn the breasts over and brown the other side for another two minutes.
Using tongs or a fish slice, place the chicken breasts onto a baking tray and place into the preheated oven. Retain the cooking juices in the pan, as these will be used to make the sauce.
Cook the chicken breasts for 20 minutes, or until the chicken is completely cooked through (the chicken will feel firm to the touch and the juices will run clear when the chicken is pierced with a skewer in the thickest part).
When the chicken is cooked, remove from the oven and put the breasts to one side to rest for ten minutes. Keep warm.
While the chicken is resting, make the sauce. Heat the retained cooking juices in the pan the chicken breasts were cooked in and add the white wine. Crush the garlic clove and add to the pan. Add a sage leaf.
Turn up the heat and cook, scraping up the brown bits from the bottom of the pan. Cook for a couple minutes until the sauce is reduced. Season, to taste, with salt and freshly ground black pepper.
To serve, slice each breast into five slices on the diagonal, then pour the mustardy, buttery sauce over. Serve with mashed potato.


Home
About
Services
(current)
Contact
Call Now!
Home Window Repair and Replacement
Get them fixed quickly!
Another headline
And an even wittier subheading.


Ever wonder what concerts your friends are going to? Can't make it to a show but wish you were there? Went to a concert last night and want to re-live it? Enjoy free passes to concerts and festivals? If so, you have come to the right place.
With Loudie, you can stay updated on when your favorite artists are coming to town, scan recently uploaded videos for artists you love, ping your friends with quick invites and chat about awesome concerts. Basically, if you love finding out about concerts, this is the place for you. From time to time, we push out different types of promotions like free passes...yep 100% free. Yay!
Get started now by heading to the iTunes store and downloading Loudie for free.
For updates check our Instagram , Twitter and Facebook.
For more information email: lance@loudie.com


Dom Element
Dom Element
Showing Add Form for Model {{ model }}
Showing Edit Form for Model {{ model }} for instanceId : {{ id }}
Remove Instance of Model {{ model }} for instanceId : {{ id }}
Original Word:
{{original}}
|
Reversed:
{{original | reverse:true}}


Ajax
Change Content
Content...
Alert
Alert confirm
Browser Management
Open login page
Drag and drop
Drag the ball.
Dropdown
Choose a car:
Volvo
Saab
Opel
Audi
Element Property
Enable button
Disable button
Please input
File Upload
Select image to upload:
Hidden element
Click and hide
iFrame
Modal
Launch demo modal
Launch demo modal fade
Modal title
×
...
Fade Modal title
×
...
Mouse Over
Dropdown
Login page
Navigate Page
Goto login page
Download file
download
Upload file
Select image to upload:


{# #} {# #}
Landmarks represented as clusters
Landmark Extraction and Route Recommendation System
Home
Sorry, there is no route available between {{ source }} and {{ destination }}.


Version 1.2 is out now! Version 1.2 contains only changes or fixes to APT. We fixed a bug (#1770034), fixed the FormSender std request handler to properly send POST'd request parameters and modified sample app to demonstrate this. Most important news in this release is the posibility to do cross-domain JSON-P AJAX requests using a jsonp attribute in the ajax-config's
The new site is live!
Version 1.1 final is now available. No changes from 1.1 beta 1, but now you can feel all warm and fuzzy about not having to use a beta build :)
Version 1.1 beta 1 is now available. This release includes a couple of new features and a couple of bug fixes, a good mixture of both. Get it while it's hot :)
The first GA release, version 1.0, is in the books! Grab it now! A minor change to the build script (that doesn't matter to anyone but the release manager anyway) and a fix to APT's timer tag, and that's it, otherwise it's just a straight, stable release. If you've been holding back from using JWP until this milestone, well, there you are, have at it!
Beta 7 is out! Changes include some bug fixes, a new (simple) javascript compression filter and an important change in scope use: APT now uses request scope instead of page scope. This to satisfy the users of the tag files where every tag file has is own page scope.
Beta 6 is out, go get it now! Changes include a fix for the APT sampleapp page (was misconfigured in beta5, so the demo didn't show the ability to use APT in an AJAX response properly), the ability to have multiple config files in chain, another fix for APT where config file streams weren't being properly closed, and all FindBugs complaints that were legitimate have been addressed.
In celebration of freedom and independance, a day early anyway, beta 5 is now unleashed! By far the biggest news here is that the AjaxParta Taglib (APT), formerly AjaxTags, is almost entirely a complete rewrite. This addresses nearly every request people had for functionality, along with some other things we came up with on our own. If you need to do AJAX in as simple and yet powerful a fashion as possible, now is the time to take a hard look at APT! There's some other stuff in there as well of course, as always, check out the release notes. Enjoy!
Beta 4 now available. This release is devoted almost entirely to AjaxTags enhancements. We have addressed a number of commonly-asked questions and expanded the functionality a fair bit. Also contains some new functionality in the JSTags taglib and some other places.
Beta 3 has been released! Another significant release, including: fixed an undefined behavior in AjaxTags with regard to target URLs, the ability to have multiple ajax-config files and the ability to have static parameters in target URLs for AjaxTags, the CoR implementation can now read config files in JARs, added JSDigester to the JSTags taglib (this is a client-side implementation of Commons Digester), added the popup calender widget to UIWidgets and dealt with some bugs, and a bunch of other stuff!
The first release of the New Year is here, beta 2! This has a pretty long list of changes and additions, including some new AjaxTags functionality, a new servlet, a new filter and some important fixes. Happy New Year!
Java Web Parts is now officially a beta release! Woo-hoo! This version includes a couple of bug fixes as well as a few new additions (mostly in AjaxTags).
A new AjaxTags RequestHandler, a handy new method in RequestHelpers and some other stuff.
v.14 released. It's been nearly a month since the last release, and while there aren't a large number of changes in this release, they are fairly significant: multiple simultaneous AJAX events with AjaxTags are now supported, and the DependencyFilter now allows you to set a path on each request-scoped dependency, so you can have your beans only created on the request paths you want them creaed on!


Since 2012, Chiron Capital has funded for-profit and not-for-profit small business loans on behalf of its principal for philanthropic and investment purposes.


| Home | Trees | Indices | Help |
|
|---|
|
|
Suite of tools to solve automatic numerical differentiation problems in one or more variables. All of these methods also produce error estimates on the result. A pdf file is also provided to explain the theory behind these tools.
To test if the toolbox is working paste the following in an interactive python session:
import numdifftools as nd nd.test(coverage=True)
A flexible tool for the computation of derivatives of order 1 through 4 on any scalar function. Finite differences are used in an adaptive manner, coupled with a Romberg extrapolation methodology to provide a maximally accurate result. The user can configure many of the options, changing the order of the method or the extrapolation, even allowing the user to specify whether central, forward or backward differences are used.
Computes the gradient vector of a scalar function of one or more variables at any location.
Computes the Jacobian matrix of a vector (or array) valued function of one or more variables.
Computes the Hessian matrix of all 2nd partial derivatives of a scalar function of one or more variables.
The diagonal elements of the Hessian matrix are the pure second order partial derivatives.
Compute 1'st and 2'nd derivative of exp(x), at x == 1:
>>> import numpy as np >>> import numdifftools as nd >>> fd = nd.Derivative(np.exp) # 1'st derivative >>> fdd = nd.Derivative(np.exp, n=2) # 2'nd derivative >>> fd(1) array([ 2.71828183])
Nonlinear least squares:
>>> xdata = np.reshape(np.arange(0,1,0.1),(-1,1)) >>> ydata = 1+2*np.exp(0.75*xdata) >>> fun = lambda c: (c[0]+c[1]*np.exp(c[2]*xdata) - ydata)**2 >>> Jfun = nd.Jacobian(fun) >>> np.abs(Jfun([1,2,0.75])) < 1e-14 # should be numerically zero array([[ True, True, True], [ True, True, True], [ True, True, True], [ True, True, True], [ True, True, True], [ True, True, True], [ True, True, True], [ True, True, True], [ True, True, True], [ True, True, True]], dtype=bool)
Compute gradient of sum(x**2):
>>> fun = lambda x: np.sum(x**2) >>> dfun = nd.Gradient(fun) >>> dfun([1,2,3]) array([ 2., 4., 6.])
scipy.misc.derivative
|
|||
__package__ = None
|
| Home | Trees | Indices | Help |
|
|---|
| Generated by Epydoc 3.0.1 on Sat May 05 22:01:06 2012 | http://epydoc.sourceforge.net |


You do not always need a gym to get in a good workout! Here are some exercises you can follow along to in the comfort of your own home.


TAKE A LOOK at East Kilbride's trendy new establishment
The Coppertree Bar and Grill will opened this week, and i set to be the new place to be in East Kilbride.
by Gregor Farquharson, https://www.dailyrecord.co.uk/authors/gregor-farquharson/Have a look at the newest establishment in East Kilbride, The Coppertree.
Having opened this week the trendy new night spot, which is near Hairmyres, will be serving locally sourced produce, from steak to cocktails.
Have a look through some photos of the new nightspot, provided to us by Claremont Furniture.
Owner Mark Craig, who lives in Stewartfield, spoke to the EK News about this exciting new adventure.
He said: "Everything is sourced from EK, nothing is frozen. We have a farm in Jackton and a new distillery there as well.
"We dry age our own beef and when it touches your tongue, it is like butter."
Mark and his team have been involved in this industry for over 35 years, so know exactly what they are doing.
"We want to create a new experience here. We wnat people to come in for a few drinks, have a beautiful meal and then sit until the wee hours listening to live music and having drinks.
"We saw a gap in the market in East Kilbride and jumped on it. I am really excited to get going."


1. Upload page
Uploading...
Cancel
Choose certificate file
Choose key file
Upload Files
Upload Complete!
Upload Cancelled
Go to client page after succesful upload:
Client page
{{getProgress}}
{{progressCompleteText}}


{% extends 'base.html' %} {% block title %}Polls{% endblock %} {% block content %}
Welcome to the amazing polls home page. Go ahead and select a poll to vote on, or create a new poll for others!
Click to Add a New Poll


return
Syntax
A returnStatement is:
Description
A return statement terminates the procedure (or main program) in which it appears. Ordinarily, a procedure (or main program) terminates by reaching its end; the return statement is used to cause early termination.
Example
This procedure takes no action if the errorHasOccurred flag has been set to true.
procedure double
if errorHasOccurred then
return % Terminate this procedure
end if
handle usual case in this procedure
end double
Details
A return must not appear as a statement in (the outermost level of) a module, nor can it appear in a function.


Citizen TV Unveils Waihiga Mwaura As Hussein Mohamed’s Replacement On News Night
by Mercy AumaRoyal Media Services (RMS) has settled on a replacement for Hussein Mohamed on News Night show at Citizen TV.
In a video, the television station announced that Waihiga Mwaura would take over the news segment that airs every Tuesday effective November 5, 2019.
“Newsnight takes a new form, shape and substance. Beginning Tuesday November 5, Waihiga Mwaura steers the ship that is one of Kenya’s biggest news and current affairs show,” read the post.
This follows the exit of Hussein Mohamed, the political affairs host and anchor early this month.
Read: Hussein Mohamed Quits Royal Media Services
Hussein announced his exit stating that he had taken a break to concentrate “on other matters”, promising to resurface soon.
“It has been a wonderful 10 years at Citizen TV. I have enjoyed & relished every moment I shared with my colleagues at RMS. I have decided to take a break after October In Sha Allah to concentrate on other matters. Loved the fans, the critics & everything in between. See you soon,” he wrote.
Hussein held his final show on Tuesday, October 29 where he bid his fans farewell together with his colleagues in a celebration organized by the company.
He however stated that there is no such term as quitting in media hence people will see him around.
Waihiga Mwaura was hosting the Monday Report alongside Trevor Ombija.


404 PAGE NOT FOUND!
This page is not available. Sorry about that.
Try searching for something else.
Go Back


The move from WordPress to Tumblr a few years ago felt great. All the focus was on posting content and I was liberated from the need to administer a blog. Since then Tumblr has struggled with stability problems while implementing weird “social features” like photo replies (but no native text replies) and getting obsessed with things like New York Fashion Week. Recently they added these dumb labels and I recognised Tumblr is going too far in a direction I’m not interested in.
I first became interested in (well, aware of) generated flat file publishing systems when I read about Brent’s homemade system over three years ago. Only a couple of months after that I got a job working on a site that was using a similar flat file system on a much larger scale (it’s only recently been replaced). I was intrigued by the big advantages of such a system: speed and simplicity.
My loss of respect for Tumblr coincided with reading about Octopress on Matt Gemmell’s blog. It sounded perfect. It’s the kind of new wave of “hacker” software that’s well designed and a joy to use. I credit Github for this great trend.
Transistion
Getting my content out of Tumblr was a breeze with Jekyll’s blog mirgration script. I had to make a few wholesale modifications to some paths and similar things in the post files the script created but this is where Octopress imediately demonstrated it’s advantages. I was able to do regex find and replaces across 500+ posts in a few seconds using TextMate.
Redesign
The default Octopress theme is the most elegant default theme shipping with any CMS I’ve seen but it offers more than I need and in any case, I want a unique look for my blog. The CSS of the default theme is made to be customised and continuing the for hackers ideology its organised into 25 (yes twenty-five) Sass files which compile down to one CSS file. Every feature of Sass is used, everything is modular, everything is a variable. I was hoping to reuse some of the responsive stuff but it was too complex and I ended up throwing it all out and starting again with my own CSS.
Logic in the template files is handled by Liquid which made them easy to modify and generally work with.
When I first started out blogging with WordPress around 8 or 9 years ago I would compulsively redesign my site. Looking back this was fantastic, with every new redesign I’d learn so much. It might say something about my maturity or current state of mind that even though I’ve been using this design for over a year and moving to Octopress was an ideal opportunity to change it, I’ve kept everything the same with only some subtle updates.
I’d love to create some publicly available Octopress themes just as I did for WordPress and then Tumblr.
Images
The only thing missing is a simple way to process images. I need something that I can easily pass through an original, have it resize to a small and a large, upload them to a server somewhere and return some Markdown pointing to the large surrounded by a link to the larger one. I’ll write a simple script to do this for me and the result will be images decoupled from my publishing system.
Update: I solved this problem with an image resizing script.
Conclusion
I’ve been using Octopress for a week now and I’ve immediately noticed the blazing speed. I don’t write much that gets big traffic but I can rest assured know that if I do it’ll no doubt handle the load with room to spare. Another great advantage is the simple ability to use proper version control for the whole site, both the code that generates it and the generated blog. I love the whole workflow.
While I’m not publishing with Tumblr anymore I still use it to read the Tumblr blogs I follow. All week I’ve been seeing this promoted in the dashboard sidebar. It feels like I left just in time.


---
title: plot
sidebar: function_reference_sidebar
permalink: triplePointList.plot.html
folder: function_reference
toc: false
---
plot triple points
Syntax
{% highlight matlab %}
plot(grains.triplePoints)
plot(grains.triplePoints,'color','r')
plot(grains('Forsterite').triplePoints,gB('Forsterite','Forsterite').misorientation.angle)
{% endhighlight %}
Input
Options
|
marker
|
square, diamond, circle, asterics,
|
|
markerSize
|
size of the marker
|
|
markerEdgeColor
|
edge color
|
|
markerFaceColor
|
face color
|
|
markerColor
|
both colors
|
|
linewidth
|
edge width of the marker
|
See also
{% include inline_image.html file="https.html https>:<..www.mathworks.com.help.matlab.ref.matlab.graphics.primitive.patch.html ..www.mathworks.com.help.matlab.ref.matlab.graphics.primitive.patch>-<properties.html.html properties.html> <patch.html patch> <properties.html properties" %}


Homicide detectives investigating ocean drowning near downtown Honolulu | Honolulu Star-Advertiser
Homicide detectives are investigating the drowning of a 51-year-old man in the ocean near downtown Honolulu.
The man was pulled unresponsive out of the ocean at 8:19 p.m. Thursday night and taken to a local hospital, where he died, police said.
Homicide detectives received the case at 8:55 p.m. Friday night. The death is currently classified as an unattended death.


<EMAIL_ADDRESS>+30<PHONE_NUMBER>
I'm a web developer currently specialising in mean stack with experience building web application.
I am product and user experience oriented and enjoy building things people love to use.
I'm high interested in web security, frontend web performance, Nodejs, Git and MongoDB.
Work Experience
Pilot Series Tracker Athens, Greece
Lead Developer — September 2015 to present
- Built first prototype in mean stack
- Connect a rich API for tv series
- Deploy it on heroku
- Many things yet to come :)
Epi - Gnwseis Pireaus, Greece
Computer Science Teacher —September 2015 to present
Computer Science Courses Teacher and Project Assist Athens, Greece
Teacher —December 2014 to present
- Computer Programming (C/C++ , Java , Python)
- Operating Systems
- Computer Networks
- Computer Architecture
- Web Programming
Education
- Computer Science in Technological Educational Institute of Athens
Continuous Learning
Sites that i follow courses
- udemy
- coursera
- pluralsight
Primary Technology Skills
- Javascript
- HTML/CSS
- Python
- NodeJS
- Git
- Apache
- MongoDB
- SQL
- Application Security
- Performance Engineering
Personal Projects
With a minimal interface and and yet less features Pilot provides your way to track into series you watch in weekly basis.
Personalize your calendar in the way you want to watch your series and pilot informs you about new episodes news videos etc.
This is a project I started in 2015.
This is a test link so be patient.
Mail me if you want to contribute in it.


How-to write english documentation for Yanel
(Last updated June, 2011. Tutorial written using Yanel revision 58670)
The purpose of this tutorial is to get started on Yanel by demonstrating a way to to create, edit and contribute documentation. Please keep in mind that Yanel is functional but not polished.
This tutorial assumes that you've:
- installed the source distibution of Yanel with support for SSL in /usr/local/wyona and are able to view content in your Browser. (If you are using IE9 you might not be able to edit with one of the provided editors. Neverthelss try the second proposal.)
Create the new page/resource
- Start Yanel.
- Visit the website "http://<IP_ADDRESS>:8080/yanel/" or "http://localhost/yanel/".
- Click on the 'Yanel Website' link in the Registered Realms section.
- Click on 'Learn more about Yanel'.
- Click on 'Documentation'.
- Click on the link 'Toolbar' at the bottom of the page. You will be redirected a login page for the Yanel Website realm.
- Enter 'alice' as your Username and 'levi' as your password.
- After successfully logging in you will be redirected to the Documentation site with the additional Yanel 'Toolbar' on the top.
- Take a moment to consider how your contribution fits into the existing documentation structure.
You need to decide what page/resource type you want to create, where it will be placed and how to link to it.
For this tutorial, we will create a new tutorial called 'Adding Some Content' which will be placed at
http://<IP_ADDRESS>:8080/yanel/yanel-website/en/documentation/tutorials/add-some-content/index.html
- Select in the Yanel 'menu': file - new - Standard Page (XHTML)
- You are redirected to the first step of creating a new page.
In the 'title:' property text box enter the title that you would like to have for the page Adding some content.
In 'Save as:' use the directory tree to navigate to where the new content is to be placed. For this tutorial this means, /en/documentation/
Be very careful as there are currently no warnings about overwriting. If you do overwrite something, you may want to make
use of subversion's revert command to restore what was overwritten.
In the 'New name:' text box enter tutorials/add-some-content/index.html
Review your work and the click on the 'Save new resource' button. This will create the resource and move you to a confirmation and summary page.
- Now that you've created the new page/resource, you may view it by clicking on the link on the confirmation/summary page.
Edit the content
There are two possibilities two edit your page. Either you alter the page in your browser or you alter the source file directly. First we will have a look at how to use the editors.
1. Usage of the editors
Again there's another choice to make:
- If you have installed Yulup, you might want to use it. Otherwise feel free to download it first (available for Firefox only) and give it a try...:D... (You can download Yulup here.)
- To start the Yulup editor, click on the Yulup icon on the upper right hand corner of the Firefix window.
- Once again click on the Yulup icon and select 'Checkout and Edit "index.html". This will load the document into the Yulup editor interface.
- Edit the document by exploring what Yulup can do. The global.css for the yanel-website realm has a div class called 'instructions'
<div class="instructions">
that you may add via the 'Source' view in Yulup after the <body>-tag (or elsewhere) which will then style <li> and <pre>.
When you are done click on the diskette icon on the Yulup toolbar and select 'Check back in to CMS and exit' to save and commit your changes.
- Otherwise choose one of the editors provided in the Yanel 'menu'.
- Select in the Yanel 'menu': edit - open with - WYSIWYG editor - edit page with XXX
- now you need to decide if you prefer to edit your page with Xinha or tinyMCE. (Yulup will redirect you to the yulup.org, if you haven't installed it yet.)
- According to your previous decision your document will be loaded into the editor interface.
- Edit the document by exploring the facilities provided by the editor.
2. Altering the source file
- Open the "conf" folder in your YANEL_HOME directory. (cd .../YANEL_HOME/conf)
- There you should have a look at the "realms.xml" file. This file helps you to locate the repository you are looking for. Follow the path enclosed by the <config ... />-tag.
(Of course consider the <config>-tag embedded by the realm-tag having the right "id".)
- In this directory you will find another "realm.xml" file. It tells you (embedded by the <data>-tag) where the data is saved.
- To finally find the source file, follow the directories, which are equal to the tree structure of the navigation.
- There you are! :D..
Open your source file. As you can see, it's a html file. Therefore feel free to alter the file using html until the site is ready to commit!
Congratulations! You've created and edited some new content in Yanel.
Contribute to the Yanel documentation
If you are really working on documentation for Yanel and you have commit privileges for the project you will need to use subversion to add the content you just created. One way of doing this is to open a shell and use the following sequence of commands:
cd /usr/local/wyona/yanel-trunk/src/realms/yanel-website
egrep -rio 'Adding some content' *
As you don't really want to commit the results of this tutorial to the Yanel repository at Wyona, you should remove your local modifications
asdfafdasfasfasf
If you are not a commiter but have created some documentation, please create a patch.
If you are really adding documentation to Yanel, you will need to either commit a change that links to your work or submit a patch that offers a change that will link to your work.