Rails comes with every command line tool you’ll need to
After reading this guide, you will know:
NOTE: This tutorial assumes you have basic Rails knowledge from reading the Getting Started with Rails Guide.
There are a few commands that are absolutely critical to your everyday usage of Rails. In the order of how much you’ll probably use them are:
rails console
rails server
rake
rails generate
rails dbconsole
rails new app_name
Let’s create a simple Rails application to step through each of these commands in context.
rails new
The first thing we’ll want to do is create a new Rails application by running the rails new
command after installing Rails.
INFO: You can install the rails gem by typing gem install rails
, if you don’t have it already.
$ rails new commandsapp create create README.rdoc create Rakefile create config.ru create .gitignore create Gemfile create app ... create tmp/cache ... run bundle install
Rails will set you up with what seems like a huge amount of stuff for such a tiny command! You’ve got the entire Rails directory structure now with all the code you need to run our simple application right out of the box.
rails server
The rails server
command launches a small web server named WEBrick which comes bundled with Ruby. You’ll use this any time you want to access your application through a web browser.
INFO: WEBrick isn’t your only option for serving Rails. We’ll get to that later.
With no further work, rails server
will run our new shiny Rails app:
$ cd commandsapp $ rails server => Booting WEBrick => Rails 3.2.3 application starting in development on http://<IP_ADDRESS>:3000 => Call with -d to detach => Ctrl-C to shutdown server [2012-05-28 00:39:41] INFO WEBrick 1.3.1 [2012-05-28 00:39:41] INFO ruby 1.9.2 (2011-02-18) [x86_64-darwin11.2.0] [2012-05-28 00:39:41] INFO WEBrick::HTTPServer#start: pid=69680 port=3000
With just three commands we whipped up a Rails server listening on port 3000. Go to your browser and open http://localhost:3000, you will see a basic Rails app running.
INFO: You can also use the alias “s” to start the server: rails s
.
The server can be run on a different port using the -p
option. The default development environment can be changed using -e
.
$ rails server -e production -p 4000
The -b
option binds Rails to the specified IP, by default it is <IP_ADDRESS>. You can run a server as a daemon by passing a -d
option.
rails generate
The rails generate
command uses templates to create a whole lot of things. Running rails generate
by itself gives a list of available generators:
INFO: You can also use the alias “g” to invoke the generator command: rails g
.
$ rails generate Usage: rails generate GENERATOR [args] [options] ... ... Please choose a generator below. Rails: assets controller generator ... ...
NOTE: You can install more generators through generator gems, portions of plugins you’ll undoubtedly install, and you can even create your own!
Using generators will save you a large amount of time by writing boilerplate code, code that is necessary for the app to work.
Let’s make our own controller with the controller generator. But what command should we use? Let’s ask the generator:
INFO: All Rails console utilities have help text. As with most *nix utilities, you can try adding --help
or -h
to the end, for example rails server --help
.
$ rails generate controller Usage: rails generate controller NAME [action action] [options] ... ... Description: ... To create a controller within a module, specify the controller name as a path like 'parent_module/controller_name'. ... Example: `rails generate controller CreditCard open debit credit close` Credit card controller with URLs like /credit_card/debit. Controller: app/controllers/credit_card_controller.rb Test: test/controllers/credit_card_controller_test.rb Views: app/views/credit_card/debit.html.erb [...] Helper: app/helpers/credit_card_helper.rb
The controller generator is expecting parameters in the form of generate controller ControllerName action1 action2
. Let’s make a Greetings
controller with an action of hello, which will say something nice to us.
$ rails generate controller Greetings hello create app/controllers/greetings_controller.rb route get "greetings/hello" invoke erb create app/views/greetings create app/views/greetings/hello.html.erb invoke test_unit create test/controllers/greetings_controller_test.rb invoke helper create app/helpers/greetings_helper.rb invoke test_unit create test/helpers/greetings_helper_test.rb invoke assets invoke coffee create app/assets/javascripts/greetings.js.coffee invoke scss create app/assets/stylesheets/greetings.css.scss
What all did this generate? It made sure a bunch of directories were in our application, and created a controller file, a view file, a functional test file, a helper for the view, a JavaScript file and a stylesheet file.
Check out the controller and modify it a little (in app/controllers/greetings_controller.rb
):
class GreetingsController < ApplicationController def hello @message = "Hello, how are you today?" end end
Then the view, to display our message (in app/views/greetings/hello.html.erb
):

A Greeting for You!

<%= @message %>

Fire up your server using rails server
.
$ rails server => Booting WEBrick...
The URL will be http://localhost:3000/greetings/hello.
INFO: With a normal, plain-old Rails application, your URLs will generally follow the pattern of http://(host)/(controller)/(action), and a URL like http://(host)/(controller) will hit the index action of that controller.
Rails comes with a generator for data models too.
$ rails generate model Usage: rails generate model NAME [field[:type][:index] field[:type][:index]] [options] ... Active Record options: [--migration] # Indicates when to generate migration # Default: true ... Description: Create rails files for model generator.
NOTE: For a list of available field types, refer to the API documentation for the column method for the TableDefinition
class.
But instead of generating a model directly (which we’ll be doing later), let’s set up a scaffold. A scaffold in Rails is a full set of model, database migration for that model, controller to manipulate it, views to view and manipulate the data, and a test suite for each of the above.
We will set up a simple resource called “HighScore” that will keep track of our highest score on video games we play.
$ rails generate scaffold HighScore game:string score:integer invoke active_record create db/migrate/20120528060026_create_high_scores.rb create app/models/high_score.rb invoke test_unit create test/models/high_score_test.rb create test/fixtures/high_scores.yml invoke resource_route route resources :high_scores invoke scaffold_controller create app/controllers/high_scores_controller.rb invoke erb create app/views/high_scores create app/views/high_scores/index.html.erb create app/views/high_scores/edit.html.erb create app/views/high_scores/show.html.erb create app/views/high_scores/new.html.erb create app/views/high_scores/_form.html.erb invoke test_unit create test/controllers/high_scores_controller_test.rb invoke helper create app/helpers/high_scores_helper.rb invoke test_unit create test/helpers/high_scores_helper_test.rb invoke assets invoke coffee create app/assets/javascripts/high_scores.js.coffee invoke scss create app/assets/stylesheets/high_scores.css.scss invoke scss create app/assets/stylesheets/scaffolds.css.scss
The generator checks that there exist the directories for models, controllers, helpers, layouts, functional and unit tests, stylesheets, creates the views, controller, model and database migration for HighScore (creating the high_scores
table and fields), takes care of the route for the resource, and new tests for everything.
The migration requires that we migrate, that is, run some Ruby code (living in that<PHONE_NUMBER>0026_create_high_scores.rb
) to modify the schema of our database. Which database? The sqlite3 database that Rails will create for you when we run the rake db:migrate
command. We’ll talk more about Rake in-depth in a little while.
$ rake db:migrate == CreateHighScores: migrating =============================================== -- create_table(:high_scores) -> 0.0017s == CreateHighScores: migrated (0.0019s) ======================================
INFO: Let’s talk about unit tests. Unit tests are code that tests and makes assertions about code. In unit testing, we take a little part of code, say a method of a model, and test its inputs and outputs. Unit tests are your friend. The sooner you make peace with the fact that your quality of life will drastically increase when you unit test your code, the better. Seriously. We’ll make one in a moment.
Let’s see the interface Rails created for us.
$ rails server
Go to your browser and open http://localhost:3000/high_scores, now we can create new high scores (55,160 on Space Invaders!)
rails console
The console
command lets you interact with your Rails application from the command line. On the underside, rails console
uses IRB, so if you’ve ever used it, you’ll be right at home. This is useful for testing out quick ideas with code and changing data server-side without touching the website.
INFO: You can also use the alias “c” to invoke the console: rails c
.
You can specify the environment in which the console
command should operate.
$ rails console staging
If you wish to test out some code without changing any data, you can do that by invoking rails console --sandbox
.
$ rails console --sandbox Loading development environment in sandbox (Rails 3.2.3) Any modifications you make will be rolled back on exit irb(main):001:0>
rails dbconsole
rails dbconsole
figures out which database you’re using and drops you into whichever command line interface you would use with it (and figures out the command line parameters to give to it, too!). It supports MySQL, PostgreSQL, SQLite and SQLite3.
INFO: You can also use the alias “db” to invoke the dbconsole: rails db
.
rails runner
runner
runs Ruby code in the context of Rails non-interactively. For instance:
$ rails runner "Model.long_running_method"
INFO: You can also use the alias “r” to invoke the runner: rails r
.
You can specify the environment in which the runner
command should operate using the -e
switch.
$ rails runner -e staging "Model.long_running_method"
rails destroy
Think of destroy
as the opposite of generate
. It’ll figure out what generate did, and undo it.
INFO: You can also use the alias “d” to invoke the destroy command: rails d
.
$ rails generate model Oops invoke active_record create db/migrate/20120528062523_create_oops.rb create app/models/oops.rb invoke test_unit create test/models/oops_test.rb create test/fixtures/oops.yml
$ rails destroy model Oops invoke active_record remove db/migrate/20120528062523_create_oops.rb remove app/models/oops.rb invoke test_unit remove test/models/oops_test.rb remove test/fixtures/oops.yml
Rake is Ruby Make, a standalone Ruby utility that replaces the Unix utility ‘make’, and uses a ‘Rakefile’ and .rake
files to build up a list of tasks. In Rails, Rake is used for common administration tasks, especially sophisticated ones that build off of each other.
You can get a list of Rake tasks available to you, which will often depend on your current directory, by typing rake --tasks
. Each task has a description, and should help you find the thing you need.
$ rake --tasks rake about # List versions of all Rails frameworks and the environment rake assets:clean # Remove compiled assets rake assets:precompile # Compile all the assets named in config.assets.precompile rake db:create # Create the database from config/database.yml for the current Rails.env ... rake log:clear # Truncates all *.log files in log/ to zero bytes (specify which logs with LOGS=test,development) rake middleware # Prints out your Rack middleware stack ... rake tmp:clear # Clear session, cache, and socket files from tmp/ (narrow w/ tmp:sessions:clear, tmp:cache:clear, tmp:sockets:clear) rake tmp:create # Creates tmp directories for sessions, cache, sockets, and pids
about
rake about
gives information about version numbers for Ruby, RubyGems, Rails, the Rails subcomponents, your application’s folder, the current Rails environment name, your app’s database adapter, and schema version. It is useful when you need to ask for help, check if a security patch might affect you, or when you need some stats for an existing Rails installation.
$ rake about About your application's environment Ruby version 1.9.3 (x86_64-linux) RubyGems version 1.3.6 Rack version 1.3 Rails version 4.0.0.beta JavaScript Runtime Node.js (V8) Active Record version 4.0.0.beta Action Pack version 4.0.0.beta Action Mailer version 4.0.0.beta Active Support version 4.0.0.beta Middleware ActionDispatch::Static, Rack::Lock, Rack::Runtime, Rack::MethodOverride, ActionDispatch::RequestId, Rails::Rack::Logger, ActionDispatch::ShowExceptions, ActionDispatch::DebugExceptions, ActionDispatch::RemoteIp, ActionDispatch::Reloader, ActionDispatch::Callbacks, ActiveRecord::Migration::CheckPending, ActiveRecord::ConnectionAdapters::ConnectionManagement, ActiveRecord::QueryCache, ActionDispatch::Cookies, ActionDispatch::Session::EncryptedCookieStore, ActionDispatch::Flash, ActionDispatch::ParamsParser, Rack::Head, Rack::ConditionalGet, Rack::ETag Application root /home/foobar/commandsapp Environment development Database adapter sqlite3 Database schema version<PHONE_NUMBER>3523
assets
You can precompile the assets in app/assets
using rake assets:precompile
and remove those compiled assets using rake assets:clean
.
db
The most common tasks of the db:
Rake namespace are migrate
and create
, and it will pay off to try out all of the migration rake tasks (up
, down
, redo
, reset
). rake db:version
is useful when troubleshooting, telling you the current version of the database.
More information about migrations can be found in the Migrations guide.
doc
The doc:
namespace has the tools to generate documentation for your app, API documentation, guides. Documentation can also be stripped which is mainly useful for slimming your codebase, like if you’re writing a Rails application for an embedded platform.
rake doc:app
generates documentation for your application in doc/app
.rake doc:guides
generates Rails guides in doc/guides
.rake doc:rails
generates API documentation for Rails in doc/api
.notes
rake notes
will search through your code for comments beginning with FIXME, OPTIMIZE or TODO. The search is done in files with extension .builder
, .rb
, .erb
, .haml
and .slim
for both default and custom annotations.
$ rake notes (in /home/foobar/commandsapp) app/controllers/admin/users_controller.rb: * [ 20] [TODO] any other way to do this? * [132] [FIXME] high priority for next deploy app/models/school.rb: * [ 13] [OPTIMIZE] refactor this code to make it faster * [ 17] [FIXME]
If you are looking for a specific annotation, say FIXME, you can use rake notes:fixme
. Note that you have to lower case the annotation’s name.
$ rake notes:fixme (in /home/foobar/commandsapp) app/controllers/admin/users_controller.rb: * [132] high priority for next deploy app/models/school.rb: * [ 17]
You can also use custom annotations in your code and list them using rake notes:custom
by specifying the annotation using an environment variable ANNOTATION
.
$ rake notes:custom ANNOTATION=BUG (in /home/foobar/commandsapp) app/models/post.rb: * [ 23] Have to fix this one before pushing!
NOTE. When using specific annotations and custom annotations, the annotation name (FIXME, BUG etc) is not displayed in the output lines.
By default, rake notes
will look in the app
, config
, lib
, bin
and test
directories. If you would like to search other directories, you can provide them as a comma separated list in an environment variable SOURCE_ANNOTATION_DIRECTORIES
.
$ export SOURCE_ANNOTATION_DIRECTORIES='spec,vendor' $ rake notes (in /home/foobar/commandsapp) app/models/user.rb: * [ 35] [FIXME] User should have a subscription at this point spec/models/user_spec.rb: * [122] [TODO] Verify the user that has a subscription works
routes
rake routes
will list all of your defined routes, which is useful for tracking down routing problems in your app, or giving you a good overview of the URLs in an app you’re trying to get familiar with.
test
INFO: A good description of unit testing in Rails is given in A Guide to Testing Rails Applications
Rails comes with a test suite called Test::Unit
. Rails owes its stability to the use of tests. The tasks available in the test:
namespace helps in running the different tests you will hopefully write.
tmp
The Rails.root/tmp
directory is, like the *nix /tmp directory, the holding place for temporary files like sessions (if you’re using a file store for files), process id files, and cached actions.
The tmp:
namespaced tasks will help you clear the Rails.root/tmp
directory:
rake tmp:cache:clear
clears tmp/cache
.rake tmp:sessions:clear
clears tmp/sessions
.rake tmp:sockets:clear
clears tmp/sockets
.rake tmp:clear
clears all the three: cache, sessions and sockets.rake stats
is great for looking at statistics on your code, displaying things like KLOCs (thousands of lines of code) and your code to test ratio.rake secret
will give you a pseudo-random key to use for your session secret.rake time:zones:all
lists all the timezones Rails knows about.Custom rake tasks have a .rake
extension and are placed in Rails.root/lib/tasks
.
desc "I am short, but comprehensive description for my cool task" task task_name: [:prerequisite_task, :another_task_we_depend_on] do # All your magic here # Any valid Ruby code is allowed end
To pass arguments to your custom rake task:
task :task_name, [:arg_1] => [:pre_1, :pre_2] do |t, args| # You can use args from here end
You can group tasks by placing them in namespaces:
namespace :db do desc "This task does nothing" task :nothing do # Seriously, nothing end end
Invocation of the tasks will look like:
rake task_name rake "task_name[value 1]" # entire argument string should be quoted rake db:nothing
NOTE: If your need to interact with your application models, perform database queries and so on, your task should depend on the environment
task, which will load your application code.
More advanced use of the command line is focused around finding useful (even surprising at times) options in the utilities, and fitting those to your needs and specific work flow. Listed here are some tricks up Rails’ sleeve.
When creating a new Rails application, you have the option to specify what kind of database and what kind of source code management system your application is going to use. This will save you a few minutes, and certainly many keystrokes.
Let’s see what a --git
option and a --database=postgresql
option will do for us:
$ mkdir gitapp $ cd gitapp $ git init Initialized empty Git repository in .git/ $ rails new . --git --database=postgresql exists create app/controllers create app/helpers ... ... create tmp/cache create tmp/pids create Rakefile add 'Rakefile' create README.rdoc add 'README.rdoc' create app/controllers/application_controller.rb add 'app/controllers/application_controller.rb' create app/helpers/application_helper.rb ... create log/test.log add 'log/test.log'
We had to create the gitapp directory and initialize an empty git repository before Rails would add files it created to our repository. Let’s see what it put in our database configuration:
$ cat config/database.yml # PostgreSQL. Versions 8.2 and up are supported. # # Install the pg driver: # gem install pg # On OS X with Homebrew: # gem install pg -- --with-pg-config=/usr/local/bin/pg_config # On OS X with MacPorts: # gem install pg -- --with-pg-config=/opt/local/lib/postgresql84/bin/pg_config # On Windows: # gem install pg # Choose the win32 build. # Install PostgreSQL and put its /bin directory on your path. # # Configure Using Gemfile # gem 'pg' # development: adapter: postgresql encoding: unicode database: gitapp_development pool: 5 username: gitapp password: ... ...
It also generated some lines in our database.yml configuration corresponding to our choice of PostgreSQL for database.
NOTE. The only catch with using the SCM options is that you have to make your application’s directory first, then initialize your SCM, then you can run the rails new
command to generate the basis of your app.


{% extends 'spiritdashboard/base.html' %} {% load static %} {% block content %}
Warrior,You have completed the mission "{{ mission.title }}". As promised, I have added {{ mission.value }} gems to your vault.


Between the 18th and 19th century war is constantly raging across the world. While wars were fought, the literacy rate and amount of educated people increased due to industrial advances. Educated people who were forced to fight in wars questioned why they were fighting. People wanted a deeper understanding of themselves and how their life plays a role in society - they wanted to appreciate life’s subtle beauties conveyed through nature and emotion. The enlightenment inspired many people to begin thinking for themselves instead of following a figure head. This spearheaded the way for the romanticism era.
Romanticism literary writings were chalk full of sentimentalism; early stages of romanticism literature displayed spiritual connection between the individual and supernatural world. Writer like Friedrich Schlegel, Friedrich Hölderlin, and Johann Wolfgang von Goethe paved the way in mystical and psychedelic pieces. Friedrich Holderlin in particular wrote a piece called The Archipelago which highlights the theme of exile and divinity. In addition, literary focus shifted from religion and kingdoms to nationalism. A sense of pride developed in people for their nation of origin.
Poems in the romanticism era pertained the theme of sublimed individuals, respect towards nature, and imaginative. In romanticism, the poet’s sense logic is thrown out the door, and the mind is flooded with emotion written with every stroke of the pen on paper. In John Keats’ “To Hope” expresses his feelings of the battle of Waterloo and his mood towards Napoleon Bonaparte savage, war hungry quest.


Application error
This application made a mistake.
{% set exception = kwargs['exc_info'][1] %} {% if hasattr(exception, 'reason') %}Reason: {{ exception.reason }}
{% end %}{{ repr(exception) }}
Details are on the server log.
This application made a mistake.
{% set exception = kwargs['exc_info'][1] %} {% if hasattr(exception, 'reason') %}Reason: {{ exception.reason }}
{% end %}{{ repr(exception) }}
Details are on the server log.
{{ ''.join(traceback.format_exception(*kwargs['exc_info'])) }}
Traceback is only for development. Disable it in gramex.yaml
with app.settings.serve_traceback: false
Show traceback
{% end %}


| < Day Day Up > |
How many comparisons are necessary to determine the minimum of a set of n elements? We can easily obtain an upper bound of n - 1 comparisons: examine each element of the set in turn and keep track of the smallest element seen so far. In the following procedure, we assume that the set resides in array A, where length[A] = n.
MINIMUM(A) 1 min ← A[1] 2 for i ← 2 to length[A] 3 do if min > A[i] 4 then min ← A[i] 5 return min
Finding the maximum can, of course, be accomplished with n - 1 comparisons as well.
Is this the best we can do? Yes, since we can obtain a lower bound of n - 1 comparisons for the problem of determining the minimum. Think of any algorithm that determines the minimum as a tournament among the elements. Each comparison is a match in the tournament in which the smaller of the two elements wins. The key observation is that every element except the winner must lose at least one match. Hence, n - 1 comparisons are necessary to determine the minimum, and the algorithm MINIMUM is optimal with respect to the number of comparisons performed.
In some applications, we must find both the minimum and the maximum of a set of n elements. For example, a graphics program may need to scale a set of (x, y) data to fit onto a rectangular display screen or other graphical output device. To do so, the program must first determine the minimum and maximum of each coordinate.
It is not difficult to devise an algorithm that can find both the minimum and the maximum of n elements using Θ(n) comparisons, which is asymptotically optimal. Simply find the minimum and maximum independently, using n - 1 comparisons for each, for a total of 2n - 2 comparisons.
In fact, at most 3 ⌊n/2⌋ comparisons are sufficient to find both the minimum and the maximum. The strategy is to maintain the minimum and maximum elements seen thus far. Rather than processing each element of the input by comparing it against the current minimum and maximum, at a cost of 2 comparisons per element, we process elements in pairs. We compare pairs of elements from the input first with each other, and then we compare the smaller to the current minimum and the larger to the current maximum, at a cost of 3 comparisons for every 2 elements.
Setting up initial values for the current minimum and maximum depends on whether n is odd or even. If n is odd, we set both the minimum and maximum to the value of the first element, and then we process the rest of the elements in pairs. If n is even, we perform 1 comparison on the first 2 elements to determine the initial values of the minimum and maximum, and then process the rest of the elements in pairs as in the case for odd n.
Let us analyze the total number of comparisons. If n is odd, then we perform 3 ⌊n/2⌋ comparisons. If n is even, we perform 1 initial comparison followed by 3(n - 2)/2 comparisons, for a total of 3n/2 - 2. Thus, in either case, the total number of comparisons is at most 3 ⌊n/2⌋.
| < Day Day Up > |


Time for Each, in seconds:
Start
Space to switch, p to pause. The player on the right's clock will start.


Felix Cao
About Me
Projects
Contact
Chasing My Passion for Coding
Creat, Deliver, Outstand
Education
Bachelor of Management, Shanghai University of Finance and Economics
Experience
Senior Business Analyst at
Accenture
Solution Architect at
Sinotelligence
Solution Consultant at
IBM
Intersts
Snowboard in the winter
Mountain bike in the summer


With the Steem blockchain still catching up and normalizing after hardfork 20, we felt it’s important to update you on the state of Utopian during this time, and on our current plan of action. In addition, this post includes updates on the Utopian witness server, and a few upcoming events.
Pausing Operations
Due to the current technical situation, we are unable to review submissions made to Utopian or vote on the contributions scored. Unfortunately, this means we are forced to pause all operations until the Steem blockchain is once again accessible and usable for all community members and moderators.
According to estimates, the voting power of @utopian-io will reach 100% in roughly 100 hours. We will be sure to update you once submission scoring is resumed, and are sorry for this inconvenience.
To stay up-to-date and speak to the Utopian team, we invite you to join the conversation on our Discord server.
Witness Server Status
Coinciding with the hardfork is Utopian’s rise to the top 20 list of Steem witnesses.
We have been working closely with the other top 20 witnesses throughout the night to make sure the blockchain could resume normal operations. Both main Utopian witness server and backup witnesses have been upgraded to version 0.20.3 and are running properly.
We couldn’t be happier to make it into the list of top 20 witnesses, especially at this critical time, and we’ll make sure to publish a dedicated witness update post with all the exciting plans we have for it, as soon as the blockchain returns to normal operations.
Hackathon Winners & Meetup Summary - Coming Soon!
We are happy to have received so many awesome contributions for the first Utopian Hackathon. Despite the issues with the blockchain we were able to score and pick the winners! But we’re not quite ready to reveal them.
Due to the voting power recharge process, we won’t be able to release rewards for the winners just yet. We’ll make sure to publish the list of the winners shortly, and immediately release the liquid prizes. For the post upvotes on the winning submissions, we will ask the winners to publish a comment under their contributions in order for Utopian to give them the upvote value their submission is due.
Join Us Tonight on The Utopian Open Source Radio Show on MSP Waves
Tonight’s show comes at an interesting time! In addition to the regular dose of news and updates from Utopian, we’re scheduled to host @nothingismagic from the Quasar Framework, as well as a number of prominent Steem witnesses.
Be sure to tune in at 6 PM (UTC) to learn more about the Quasar development platform and hear what the Steem witnesses think and feel about the current state of the blockchain. Find out more in this post by our show host, @jedigeiss.
First Time Contributing in Utopian.io?
Learn how to contribute on our website
This page is synchronized from the post: Utopian Status: HF20, Witness Servers & More


I would like to purchase the following products/services from MacinSoft : [$5] BlueHTTP 1.1, Singe User license [$100] BlueHTTP 1.1, Site license [$200] BlueHTTP 1.1, World-wide license
Enter any additional comments for the supplier here:
After registering a product, you will receive a registration code via e-mail in approximately 48 hours.
You will receive a receipt by e-mail. We cannot send a fax. Check here to receive a paper receipt by postal mail for an additional US$1.50.
Click to enter payment information on our secure payment form. If your browser does not support SSL, use our unsecure form.


Backup, restore and migrate data
Edit (pull request)Find here informations about how to perform backup / restore your alien4cloud, and also, migrate from alien4cloud 1.2.1
to alien4cloud 1.3.x
.
Downloads
Backup / Restore tool Migation tool
Alien4Cloud uses several places to store it’s data.
- Cloud service archives
- Artifacts that may have been uploaded to build topologies
- Indexed data (stored in elastic-search)
- Plugins binaries
- Eventually you should make sure to backup also your alien4cloud yaml configuration file as well as your elastic search configuration file
Backup & Restore
In order to backup / restore Alien4Cloud you must download the backup/restore tool and copy it on the machine where Alien is running (or anywhere else having access to Alien’s data folders). After unzipping the archive, the tool can be configured by editing the file path_to_unzipped_tool/config/config.yml
config.yml
elasticsearch:
# Name of your elasticsearch cluster
cluster_name: alien4cloud
# Addresses of elasticsearch cluster nodes
addresses: localhost:9300,<IP_ADDRESS>:9300
# Where Alien4Cloud's backup files are stored
backup.files_dir: /opt/alien4cloud/backups/files
# Where Alien4Cloud's files are stored, backup operation will copy data from alien4cloud.dir to backup.files_dir and restore will do inversely
alien4cloud.dir: /opt/alien4cloud/data
In order to perform backup:
- Configure ‘path.repo’ on all your elasticsearch cluster nodes. Elasticsearch index snapshots will be saved at this location.
path.repo: /home/elasticsearch/backups
Restart elasticsearch so that the new configuration is taken into account :
sudo /etc/init.d/elasticsearch restart
- Mount shared file system between all your elasticsearch cluster nodes. Here’s an example with sshfs :
# On the file server machine where elasticsearch backups will be hosted
sudo adduser elasticsearch
# Copy key file that enable ssh login for this user
sudo -u elasticsearch mkdir /home/elasticsearch/.ssh
sudo -u elasticsearch cp authorized_keys /home/elasticsearch/.ssh
# Create the shared remote folder that will be used for elasticsearch backups
sudo -u elasticsearch mkdir /home/elasticsearch/backups
# On elasticsearch machines
# Install sshfs
sudo apt-get install sshfs
# Create backup folders
sudo -u elasticsearch mkdir -p /home/elasticsearch/backups
# Mount the remote folder
sudo sshfs -o allow_other -o uid=$(id -u elasticsearch) -o gid=$(id -g elasticsearch) -o IdentityFile=/home/elasticsearch/key.pem elasticsearch@<IP_ADDRESS>:/home/elasticsearch/backups /home/elasticsearch/backups
# Test that elasticsearch can write to the backups folder
sudo -u elasticsearch touch /home/elasticsearch/backups/test.txt
sudo -u elasticsearch rm /home/elasticsearch/backups/test.txt
Perform backup
To backup Alien4Cloud, from the root directory of the unzipped tool, perform the command:
./backup-restore-tool.sh -backup -n backup121
For more commands and options, you can have the help doc displayed:
./backup-restore-tool.sh -help
Perform restore
Alien4Cloud and ElasticSearch states
We recommend to stop Alien4Cloud before performing the restore. ElasticSearch MUST be up and running. Alien4Cloud should be restarted once the restoration process is completed. This is quite trivial to do when running in a classical production setup where elasticsearch process is independant from Alien4Cloud ( See advanced configuration for more details ).
However, if running in an embedded configuration, you can’t stop Alien4Cloud without stopping ElasticSearch. Then, just make sure the plateform is not used during the process.

To restore Alien4Cloud, from the root directory of the unzipped tool, perform the command:
./backup-restore-tool.sh -restore -n backup121
Once data is restored, you can restart Alien4Cloud server if needed.
Migrate
Before migrating data, please make sure to backup your data before. This guide can only used for migration from 1.2.1
to 1.3.0
.
Plugins migration
Please beware that if you have custom plugins imported in your alien4cloud instance, they will be discarded after migration. Therefore, you should re-upload them after the process is over.
We do not guarantee the compatibility of those with the new Alien4cloud version.
The migration tool takes as input old data, and transform them to be complient with the new alien4cloud version.
Concerning either Alien4Cloud or elasticsearch data, no copy or transfert is made, meaning the existing data are really transformed and modified. Therefore, to be able to run the new version of the product with the migrated data, make sure the two instances of Alien4Cloud are configured to use the same and identical data path.
In addition, they have to be bind to the same elasticsearch cluster, or, if running in an embedded mode, the elasticsearch configurations must be the same in term of data paths.
Alien4Cloud and ElasticSearch states
We recommend to stop Alien4Cloud before performing the migration. ElasticSearch MUST be up and running. Alien4Cloud should be restarted once the process is completed. This is quite trivial to do when running in a classical production setup where elasticsearch process is independant from Alien4Cloud ( See advanced configuration for more details ).
However, if running in an embedded configuration, you can’t stop Alien4Cloud without stopping ElasticSearch. Then, just make sure the plateform is not used during the process.
In order to migrate Alien4Cloud you must download the migration tool and copy it on the machine where Alien is running (or anywhere which has access to Alien’s data folders).
After unzipping the archive, the tool can be configured by editing the files in path_to_unzipped_tool/config
config.yml
elasticsearch:
# Name of your elasticsearch cluster
cluster_name: alien4cloud
# Addresses of elasticsearch cluster nodes
addresses: <IP_ADDRESS>:9300,<IP_ADDRESS>:9300
# The poller polls elasticsearch to export data for migration
poller:
# The poller's scroll lease and batch size see https://www.elastic.co/guide/en/elasticsearch/guide/1.x/scan-scroll.html
scroll:
lease: 120
batch_size: 100
# Where elasticsearch data will be exported and store after transformation
exporter.dir: /tmp/alien4cloud/migration/1.3/exported
importer.dir: /tmp/alien4cloud/migration/1.3/toImport
transform:
# Application's Id has changed from 1.2.1 to 1.3.0
#Provide here a tag name that, if present on an application, will be use as base for its Id.
#If not, an Id will be auto-generate from the application's name
application_tag: testTag
alien4cloud:
# alien4cloud runtime directory. See "directories.alien" option in your alien4cloud config
dir: /opt/alien4cloud/data
# directory in which alien4cloud stores Cloud Service Archives. See "directories.csar_repository" option in your alien4cloud config
csar_repository: csar
Orchestrators migration
Orchestrators in alien4cloud are bound to Orchestrators’ plugins. If you are using a custom orchestrator plugin, as stated above, it will discarded after the migration.
However you can edit the mappings.yml and provides some new values to set for the orchestrator’s migration to be completed. Note that if a value of a property is not mapped here, it will be kept as is.
Make sure to not forget (when needed) the quotes ‘””’ as this is a yaml file, and some character are specifics, such as the colon ‘:’.
Here is a sample:
mappings.yml
##
# mapping of your orchestrators' plugins.
# "OldPluginId:oldVersion" : "NewPluginId:newVersion"
##
plugins_id:
"alien-cloudify-3-orchestrator-premium:1.2.1": "alien-cloudify-3-orchestrator-premium:1.3.0"
##
# mapping of your orchestrator's config url.
# "OldUrl":"newUrl"
##
orchestrator_url:
"http://oldmanagerIP": "http://newManagerIP"
##
# Write here a mapping of your orchestrator config location's imports.
# "OldImportValue":"newImportValue"
##
location_import:
"http://www.getcloudify.org/spec/cloudify/3.3.1/types.yaml": "http://www.getcloudify.org/spec/cloudify/3.4/types.yaml"
- Place your zipped plugin into the init/plugins directory of your Alien4cloud 1.3.0, so that it will be loaded on start.
perform migration
- From the root directory of the unzipped tool, perform the command:
./migration-tool.sh -migrate -v 1.2.0
For more commands and options, you can have the help doc displayed:
./migration-tool.sh -help
- Start your new Alien4cloud configured properly, after migration
cd /opt/alien4cloud/alien4cloud-premium/
./alien4cloud.sh
-
Verify that all plugins (excepts custom ones) have been re-uploaded properly else re-upload them.
-
Refresh your browser by emptying its cache so that new plugins’ UI can be loaded.
Normally with this procedure, you should have your Alien functional with new version 1.3.0.
Edit (pull request)


Sparkanoid
Atari Breakout
Breakout 5
Breakout Wars
Yet Another Breakout
Master Breakout
STEVE JOBS + STEVE WOZNIAK = BREAKOUT!
Breakout Game
Pong
Breakout Game
Super Breakout
Breakout Game
Breakout Game
Breakout Game
Breakout Game
Previous
Next
Breakout
Start
Spela
Game Over
Spela


About
Fangming Du is a Singapore and Austria trained architectural graduate and he is a Registered Architect in Singapore. Before working in Singapore, he has worked and studied in Europe as well as China.
Fangming has acquired a vast experience working with multiple digital design platforms, using Rhino (Grasshopper, Vray etc.), Revit and other related BIM software during his years of practice. He has a great passion in multi-discipline design with emerging technologies.
Since 2014, Fangming has be working on the design and coordination of some of the large scale transportation projects in Singapore, including the world's first four in one bus and rail depot, Bidadari Estate Development etc.


I spent over three years as a technical director on animation teams where I set up animated characters for video games. I enjoyed the technical aspects of animation and decided to extend my skills to software development.
After a year of self-learning, I enrolled at a coding bootcamp to accelerate my learning. Now I'm ready to join a team where I can make a long lasting impact with my creative experience.


# Copyright © 2019 The vt-py authors. All Rights Reserved.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Defines an iterator to loop through VT API collections."""
from .object import Object
from .utils import make_sync
__all__ = ['Iterator']
[docs]class Iterator:
# pylint: disable=line-too-long
"""Iterator allows iterating over object collections.
Some endpoints in the VirusTotal API represent a collection of objects, for
example:
`/files/{id}/comments <https://developers.virustotal.com/v3.0/reference#files-comments-get>`_
`/intelligence/search <https://developers.virustotal.com/v3.0/reference#intelligence-search>`_
These collections can be iterated using an instance of this class.
Learn more about collections in the VirusTotal API in:
https://developers.virustotal.com/v3.0/reference#collections
The following example iterates over the most recent 200 comments, retrieving
them in batches of 20:
>>> client = vt.Client(<apikey>)
>>> it = client.iterator('/comments', batch_size=20, limit=200)
>>> for comment in it:
>>> print(comment.text)
>>> print(it.cursor)
When the iteration is done, it print the iterator's cursor. The cursor can be
used for creating another iterator that continues at the point where the
previous iterator left.
The Iterator class also exposes an async iterator:
>>> # Define an async coroutine that iterates over the comments.
>>> async def print_comments():
>>> async for comment in client.iterator('/comments', limit=200):
>>> print(comment.id)
>>> # Run the print_comments coroutine using asyncio
>>> import asyncio
>>> asyncio.get_event_loop().run_until_complete(print_comments)
"""
# pylint: disable=line-too-long
def __init__(self, client, path, params=None, cursor=None,
limit=None, batch_size=0):
"""Initializes an iterator.
This function is not intended to be called directly. Client.iterator() is
the preferred way for creating an iteraror.
"""
self._client = client
self._path = path
self._params = params or {}
self._batch_size = batch_size
self._limit = limit
self._items = []
self._count = 0
self._server_cursor = None
self._batch_cursor = 0
self._meta = None
if 'cursor' in self._params:
raise ValueError('Do not pass "cursor" as a path param')
if 'limit' in self._params:
raise ValueError('Do not pass "limit" as a path param')
if cursor:
self._server_cursor, _, batch_cursor = cursor.rpartition('-')
if not self._server_cursor:
raise ValueError('invalid cursor')
try:
self._batch_cursor = int(batch_cursor)
except ValueError as exc:
raise ValueError('invalid cursor') from exc
def _build_params(self):
params = self._params.copy()
if self._server_cursor:
params['cursor'] = self._server_cursor
if self._batch_size:
params['limit'] = self._batch_size
return params
def _parse_response(self, json_resp, batch_cursor):
if not isinstance(json_resp.get('data'), list):
raise ValueError(f'{self._path} is not a collection')
meta = json_resp.get('meta', {})
items = json_resp['data'][batch_cursor:]
return items, meta
async def _get_batch_async(self, batch_cursor=0):
json_resp = await self._client.get_json_async(
self._path, params=self._build_params())
return self._parse_response(json_resp, batch_cursor)
def __iter__(self):
return self
def __aiter__(self):
return self
def __next__(self):
try:
return make_sync(self.__anext__())
except StopAsyncIteration as exc:
raise StopIteration() from exc
async def __anext__(self):
if self._limit and self._count == self._limit:
raise StopAsyncIteration()
if not self._items and (self.cursor or self._count == 0):
self._items, self._meta = await self._get_batch_async()
self._server_cursor = self._meta.pop('cursor', None)
self._batch_cursor = 0
if not self._items and not self._server_cursor:
raise StopAsyncIteration()
item = self._items.pop(0)
self._count += 1
self._batch_cursor += 1
return Object.from_dict(item)
@property
def cursor(self):
"""Cursor indicating the last returned object.
This cursor can be used for creating a new iterator that continues where
the current one left.
"""
if not self._server_cursor or not self._count:
return None
return self._server_cursor + '-' + str(self._batch_cursor)
@property
async def meta_async(self):
"""Meta information.
The cursor is not included, as it's exposed as a property.
"""
if self._meta is None:
# Load the first batch of items in order to retrieve the meta info.
self._items, self._meta = await self._get_batch_async()
self._server_cursor = self._meta.pop('cursor', None)
self._batch_cursor = 0
return self._meta
@property
def meta(self):
return make_sync(self.meta_async)


INTRODUCTION
This package contains Iban language text and speech suitable for Automatic Speech Recognition (ASR) experiments.
In addition to transcribed speech, 2M tokens corpus crawled from an online newspaper sites is provided.
News data provided by a local radio station in Sarawak, Malaysia.
PUBLICATION ON IBAN DATA AND ASR
Details on the corpora and the our experiments on iban ASR can be found in the following list of publication. We appreciate if you cite them if you intend to publish.
@inproceedings{Juan14,
Author = {Sarah Samson Juan and Laurent Besacier and Solange Rossato},
Booktitle = {Proceedings of Workshop for Spoken Language Technology for Under-resourced (SLTU)},
Month = {May},
Title = {Semi-supervised G2P bootstrapping and its application to ASR for a very under-resourced language: Iban},
Year = {2014}}
@inproceedings{Juan2015,
Title = {Using Resources from a closely-Related language to develop ASR for a very under-resourced Language: A case study for Iban},
Author = {Sarah Samson Juan and Laurent Besacier and Benjamin Lecouteux and Mohamed Dyab},
Booktitle = {Proceedings of INTERSPEECH},
Year = {2015},
Address = {Dresden, Germany},
Month = {September}}
Original source of the corpus
This OpenSLR release was created from data originally provided by Sarah Juan, but the format was changed to better fit the Kaldi practices. Some of the files were removed,
as they are generated now automatically in the Kaldi Iban recipe.
The original source of the corpus is
https://github.com/sarahjuan/iban
See the README there for more details, most of it still applies.
ACKNOWLEDGEMENT
Iban Data collected by Sarah Samson Juan and Laurent Besacier. Prepared by Sarah Samson Juan and Laurent Besacier. Created in GETALP, Grenoble, France
We would like to thank the Ministry of Higher Education Malaysia for providing financial support to conduct this study. We also thank The Borneo Post news agency for providing online materials for building the text corpus and also to Radio Televisyen Malaysia (RTM), Sarawak, Malaysia, for providing the news data.


Gateway
BOT
12-Nov-18 03:10 PM
[dscrd-hush] <Eddy O> Agree. Competition from good teams will only increase... I'm predicting a rough road to HushNG. So we dead, imo.
Trade volume on cryptopia doesnt mean anything to me. Have you tried to trade hush? Have you seen the chart? There has been no liquidity on the buy side (except for a 2 day pump) since the top.
If you're going to refer to the trade volume as a way to say this coin is not dead, might as well look at the chart which shows price as well. And you can see from the chart, we are dead on that front (trading), too. Whoever sold the top hasn't come back in- at all. There is no real trading going on. Once it broke long term support, trading died.
[dscrd-hush] <Eddy O> It doesn't look like much, but on a logarithmic chart, you can see the devastation:
[dscrd-hush] <Eddy O> In May, someone/group tried to support the Hush price and keep it healthy.... But it wasn't enough.  The chance of this taking years to recover is more likely. Good luck waiting. It's what I'm doing too.
[dscrd-hush] <denio> The seller was certainly the 51% Attackers...how many Coins of total Supply was Stolen? I think It was like 17% but not sure
[dscrd-hush] <dukeleto> Eddy OToday at 6:31 AM
Duke made a bunch on his fork. No one works for free =)
[dscrd-hush] <Eddy O> Hey denio... Been awhile.  But is that really necessary?
You made $0? Not knocking you... good for you. You shouldn't work for free. And you don't seem like the begging type. Good that you can trade.
[dscrd-hush] <dukeleto> @Eddy O like I said, you are spreading lies
[dscrd-hush] <dukeleto> telling people I have made money from the Hush project
[dscrd-hush] <Eddy O> You didn't trade hush?
[dscrd-hush] <dukeleto> I have never sold any Hush. I HAVE NEVER SOLD ANY HUSH. I have mined it, purchased it, earned as bounty, given it as bounty, paid reimbursements in Hush, BUT I HAVE NEVER SOLD ANY HUSH THAT I OWN
[dscrd-hush] <dukeleto> So please take your negativity and lies elsewhere
[dscrd-hush] <Eddy O> Well, I won't repeat it again, since you have publicly defended yourself against my opinion (which is based on some previous statements).
(edited)
[dscrd-hush] <passcombo.com > I believe Duke 100%
[dscrd-hush] <dukeleto> It seems that you are sore that there isn't a corporate Hush foundation, that you wanted
[dscrd-hush] <passcombo.com > Cant be critical to the only person that is currently doing anything for Hush
[dscrd-hush] <Eddy O> I'd like to see some direction, but hey... No worries here. Got plenty of time =)
[dscrd-hush] <Eddy O> And maybe there is stuff going on behind the scenes
(edited)
[dscrd-hush] <RunningMantheCoin> The Hush Github is LITTERED with commits...
[dscrd-hush] <RunningMantheCoin> so yeah. id say theres stuff going on "behind the scenes"
[dscrd-hush] <Eddy O> Hush may be my mining project. Get a z9 or two... You inspired me by talking about your mini.
[dscrd-hush] <Eddy O> Hush has always been littered with commits. The 51% attack protection was great. Kudos to that.
[dscrd-hush] <dukeleto> Hush 2.0.1 will include dpowconfs and getsnapshot (which can be used to dynamically generate a richlist at any blockheight. I helped add it to KMD and just ported to Hush last night)
[dscrd-hush] <dukeleto> How many people think Cryptopia will be around in, say, 2 years? Are many coins flocking to them, or are they a dying exchange? I am not a trader, so would like to hear the opinion of people that actively trade there.
[dscrd-hush] <dukeleto> they have always treated Hush poorly, ignoring us for weeks or months. I can only guess that it's because Hush got onto Cryptopia very early (I have no idea, before my time, maybe with a very tiny listing fee) so they don't consider us a good "customer", my bet is they consider us something they must support. They make most of their money from listing fees
[dscrd-hush] <denio> Yes thats true...they have done It with other Coins too...i am very Interest in the question: how much does cryptopia and other Exchange loose, with countless 51% Attacks
[dscrd-hush] <denio> I am not sure if this impact was too much for some Exchanges (like Cryptopia)
[dscrd-hush] <denio> So maybe it’s Not Hush’s dead...it’s more like cryptopia are done...and they know It
(edited)
[dscrd-hush] <denio> Just a feeling
[dscrd-hush] <halo kitty rules> I think cryptopia threat all the coins the same way. They don't make any diferencies. Actually, HUSH is one of only 18 coins with NZDT pair and one of rare coins with USDT pair. If that was for free or not is a whole other story, maybe radix42 or someone else knows. So, no, Cryptopia is not targeting HUSH. But for sure they have their own issues and by no means I would call them out as being dead, half-dead or whatever. Looks like they are in tough situation with funds being hacked.
[dscrd-hush] <RunningMantheCoin> ^I think this is correct. We are likely one of dozens of coins trying to get everything straightened out with them. They are likely in a pretty tough situation
[dscrd-hush] <denio> For months?
[dscrd-hush] <denio> What would you say if that happens with your „normal“ Bank Account?
[dscrd-hush] <RunningMantheCoin> well, i dont really think a crypto exchange and a bank account are super comparable- but to asnwer your question id change banks
[dscrd-hush] <denio> Thats it
[dscrd-hush] <RunningMantheCoin> & I think that is exactly what Duke is elluding to
[dscrd-hush] <denio> Well at the end of the day a crypto Exchange has to Be the same as a Bank...
[dscrd-hush] <RunningMantheCoin> If they were, the industry would be a lot safer & more trustworthy. But alas we are still in infancy stages where trusted CEX can become a single point of failiure
[dscrd-hush] <RunningMantheCoin> Unforutnatley, CEX are way more popular than DEX at the moment. And it may be quite a while until that changes
[dscrd-hush] <halo kitty rules> Not just for a months, Cryptopia has their issues probably for a year. The cracks begun to show in 2017 bull run. For the most part it looks they have a problems with hiring experts. But it seems they are doing the best they can (which we may say is not much). I can compare them to HUSH, it's like a company from garage and not a corporation. They are trying to do something from scratch.


trap
Automatically execute commands after receiving signals by processes or the operating system.
Can be used to perform cleanups for interruptions by the user or other actions.
- List available signals to set traps for:
trap -l
- List active traps for the current shell:
trap -p
- Set a trap to execute commands when one or more signals are detected:
trap 'echo "Caught signal SIGHUP"' SIGHUP
- Remove active traps:
trap - SIGHUP SIGINT


HOME
SERVICES
OUR WORK
ABOUT US
CONTACT
BOOK ONLINE
OUR WORK
A collection of cars we've renovated with passion
x


Caster
Your quick way to casting any video link.
Video
Choose a media below or enter your own media URL to cast
Enter custom media URL
:
Launch app
Stop app
Join by session ID
Load media
Play
Stop media
Mute media
Get media status
Volume control
Progress :
State :
IDLE


|
Exception Summary |
| ChainTimeoutException |
This exception will be thrown on a timeout waiting for a lock. |
| CopyChainException |
This exception will be thrown on an unsuccessful attempt at the copying of
a pipeline chain. |
| CreateChainException |
This exception will be thrown on an unsuccessful attempt at creating a
pipeline chain. |
| CreateLinkException |
This exception will be thrown on an unsuccessful attempt at creating a
pipeline link. |
| DisableChainException |
This exception will be thrown on an unsuccessful attempt at disabling
a pipeline chain. |
| DuplicateChainException |
This exception will be thrown on an unsuccessful attempt at making a copy of
a pipeline chain. |
| EnableChainException |
This exception will be thrown on an unsuccessful attempt at enabling
a pipeline chain. |
| LockChainException |
This exception will be thrown on an unsuccessful attempt at locking a
pipeline chain. |
| PipelineInitializationException |
This exception will be thrown on an unsuccessful attempt at creating and or
initializing a pipeline chain. |
| PipelineManagerException |
This exception is the base exception for all pipeline exceptions |
| RemoveChainException |
This exception will be thrown on an unsuccessful attempt at removing
a pipeline chain. |
| ReplaceChainException |
This exception will be thrown on an unsuccessful attempt at replacing an existing
pipeline chain with another chain. |
| RunProcessException |
This exception will be thrown on an unsuccessful attempt at running a
pipeline chain. |
| TransitionException |
This exception will be thrown on an unsuccessful attempt at transitioning from one
link to the next. |
| UnlockChainException |
This exception will be thrown on an unsuccessful attempt at unlocking
a pipeline chain. |


 In 1995 and 1996, separate races were held for the USA Men's National Championships
(1996 was also the USA Men's Olympic Trials) at the same venue and with the same sponsor as the regular Charlotte
Observer Marathon. The 2000-2004 races were known as the Charlotte Observer Run for Peace Marathon.
cancelled
cancelled
Kevin Hill (NC/USA)
Suzanne Clemmer (NC/USA)
Robert Marchinko (NC/USA)
Sherry Thompson (NC/USA)
Todd Wiley (PA/USA)
Luanne Coulter (NC/USA)
John Walton (NC/USA)
Patti Shepard (NC/USA)
Stephen Spada (USA)
Donna Marie Anderson (CT/USA)
Peter Sell-2
Tracy Center (SC/USA)
Peter Sell (WI/USA)
Jennifer Crain (WI/USA)
Michael Harrison (VA/USA)
Amy Kattwinkel-2
Robert Kempainen (MN/USA) (nc)
.
Tom Brady (NC/USA)
Kari Squillo (NC/USA)
Keith Brantly (FL/USA) (nc)
.
Daniel Ireland (VA/USA)
Stephanie Shook (NC/USA)
Thomas O'Gara (IRL)
Bonnie McReynolds (VT/USA)
Jim Nicholson (NY/USA)
Amy Kattwinkel (NC/USA)
John Steinberg (MI/USA)
Nancy Breimann (NJ/USA)
Ric Sayre (OR/USA)
Lisa Presedo (CAN)
Robert Schlau (SC/USA)
Barbara Remmers (MA/USA)
Tom Stevens (MD/USA)
Beth Dillinger-3
Geoffrey Martin (CAN)
Beth Dillinger-2
Gerard Donakowski (MI/USA)
Nancy Mieszczak-2
George Walker (NC/USA)
Beth Dillinger (VA/USA)
David McDonald (VA/USA)
Lena Hollman (SWE)
Don Norman (PA/USA)
Dianne Rappaport (OH/USA)
Richard Bogaty (PA/USA)
Karin Wagner (MD/USA)
Martin Green (MD/USA)
Kay Overcash-2
Stephen Podgajny (PA/USA)
Nancy Mieszczak (NY/USA)
Stephen Bolt (AL/USA)
Kay Overcash (NC/USA)
John Ziegler (PA/USA)
Anne Holmes (NC/USA)
Lee Fidler (GA/USA)
Marge Loewer (SC/USA)
(nc) => national championship
Most Wins (1977-date)
Men
2
Peter Sell (USA)
1998-99
Women
3
Beth Dillinger (USA)
1986,1988-89
Prize Money (ADR qualified runners)
Year Men Women Total 2000-02 none none none 1999 $325 n/a $325 1998 none none none 1997 600 $850 1,450 1996 250,000 none 250,000 1995 75,000 none 75,000 .... 1993 7,500 3,500 11,000 .... 1991 8,200 7,500 15,700 .... 1988 3,000 3,000 6,000 1987 3,000 2,000 5,000 1986 3,750 3,400 7,150 1985 3,900 3,500 7,400 1984 2,000 n/a 2,000 Sums $357,275 $23,750 $381,025
Note: 1984 was the first year for prize money.
Race Time Bias (sec/km)
Year Men Women 1996 +1.9 n/c 1995 +1.5 n/c Avg +1.7 n/c
Competitive Level (1990-date)
Year Men Women 1996 525 n/c 1995 587 n/c .... 1991 15 n/c
Quality Performances
Men <2:13 1 <2:14 3 <2:15 9 <2:16 13 <2:17 21 <2:18 27 <2:19 30 <2:20 39 Women <2:44 1 <2:46 3 <2:48 5 <2:50 8
Last Updated on 29 Sep 2006
Contributors: Don King, Cedric Jaggers, Juraj Gasparovic (2)


By default, the toastr will show up at top right corner of the page view, and will automatically dismiss in 3 seconds. You can configure the toasts using ToastOptions class.
Determine how a displayed toaster can be dismissed. Allowed values are: 'auto', 'click', 'controlled'.
Toaster will auto dismiss in miliseconds.
Toaster will be dismissed when user click on it.
Toaster will be dismissed based on specific logic.
Determines whether toast should include 'x' close button. Defaults to false.
CSS class for title within toast.Adding h3
class to title.
CSS class for message within toast. Adding text-uppercase
class to message.
Allow input of message to be HTML. Default to false.
Remove current toasts


This is inline link.
See my About page for details.
This is the =$example?>
This is the = $example ?>
This is the


I'm Ashley Feese
Full-Stack Web Developer / Digital Artist
My background consists of hospitality, customer service excellence, and animal wellfare.
Motivated by intellectual curiosity, developing software, team collaboration, solving challenges, and has a passion for programming and design.
Skills:
AngularJS, API development, Command Line Interface, CI/CD, CSS3, Digital Logo Design, DevTools, Express, Firebase Cloud Firestore, Git, Heroku, HTML5, JavaScript, jQuery, Linux, Microsoft Office, Moment.js, MongoDB, Mongoose, MySQL, Netlify Lambda Functions, Node, NoSQL, Object-Oriented Programming, PHP, REACT, RESTful API, SQL, Test Driven Development, Typescript, UI/UX, Version and Source Control, Web Components, Webpack
How can I help you and your team?
Click for Details
Looking to vacation to Mars? Check the weather for your stay before you go! Red Planet Voyagers, your daily dose of Mars info. View weather trends, forecast, and data charts. View photos for a more enticing visit and view upcoming launch dates!
Technologies: HTML5, CSS, Bootstrap, MySQL, NASA APIs, Charts.js
Click for Details
With the rise of electric cars hitting the roads these days and no shortage of gas-powered cars, FuelUp! gives the user a one-stop hop to the nearest gas and charging stations.
Technologies: HTML5, CSS, JavaScript, Bootstrap, Node, MaterializeCSS, Google Maps API, Openchargemap.io
Click for Details
A command line application that generates a software engineering team list. User selects team members and a file is generated that displays a formatted team roster based on the information provided by the user.
Technologies: HTML5, CSS, JavaScript, Bootstrap, Inquirer, Command Line Interface
Click for Details
EXPRESS Note Taker is intended to be used for anyone who needs a place to organize their tasks and thoughts. Using an express backend, notes entered by user are saved and retrieved from a JSON file.
Technologies: HTML5, CSS, EXPRESS, Node.js, API Routing, JavaScript
Click for Details
Use the CLI (command line interface) to uniquely generate a README for your project, according to your input preferences.
Technologies: HTML5, CSS, JavaScript, Axios, Inquirer, Command Line Interface
Click for Details
Organize your meetings and agenda on your time. Time slots are gray for past the hour, red for current hour, and green for future hours. Saves your input when refreshing the page.
Technologies: HTML5, CSS, JavaScript, Moment.js, jQuery, Local Storage


Level Builder
My Page
Project List
My Pofile
Welcome Jin!
Edit Profile Photo
Name:
ID:
Password
Gender
Email
Date of Birth
Phone Number
Save
Cancel


This package enables applets to access remote objects running on the web server with regular Java syntax. It is provided as a sample implementation with ja. All the programs in this package uses only the regular ja API; they never call any hidden methods.
The most significant class of this package is
ObjectImporter
.
See the description of this class first.


4 OH! 4
page not found
The page you requested could not be found, perhaps if you go back to the homepage this situation will improve.
This is the 404 defined page by the property option.error.404 in the routemaster.properties file.
The page you requested could not be found, perhaps if you go back to the homepage this situation will improve.
This is the 404 defined page by the property option.error.404 in the routemaster.properties file.


The JuffEd package is a Qt based editor with support for multiple tabs. It is simple and clear, but very powerful. It supports language syntax highlighting, auto-indents in accordance with file type, code blocks folding, matching braces highlighting with instant jumps between them, powerful search and replacing text using regular expressions (including multiline ones) with the opportunity to use matches \1, \2, … in substitutions, a terminal emulator, saving named sessions and many other features.
This package is known to build and work properly using an LFS-8.0 platform.
Download (HTTP): http://anduin.linuxfromscratch.org/BLFS/juffed/juffed-0.10.r71.gc3c1a3f.tar.xz
Download MD5 sum: 5d211f5aadcb3d7365b5a6127d3d275f
Download size: 1.3 MB
Estimated disk space required: 22 MB
Estimated build time: 0.8 SBU
The source tarball shown above was created by the BLFS team by
cloning the source code repository, finding the correct version to
rename accordingly the source code directory, removing .git
directory and .gitignore
file, and finally making the
compressed tarball. No other modification has been made.
qtermwidget-0.7.1 (for the terminal)
desktop-file-utils-0.23 and Enca
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/juffed
For compilation with Qt4, see “Command Explanations” below. Install JuffEd by running the following commands:
sed -i 's/"64"/""/' cmake/LibSuffix.cmake && mkdir -v build && cd build && cmake -DCMAKE_INSTALL_PREFIX=$LXQT_PREFIX \ -DCMAKE_BUILD_TYPE=Release \ -DBUILD_TERMINAL=ON \ -DUSE_QT5=true \ .. && LIBRARY_PATH=$LXQT_PREFIX/lib make
The choice of /usr
prefix is due to
the general characteristics of this program, which can be used
without LXQt.
This package does not come with a test suite.
Now, as the root
user:
make install
sed ... LibSuffix.cmake: Removes the 64 from /lib64.
LIBRARY_PATH=$LXQT_PREFIX/lib
: This
environment variable is needed for the linker to find a required
library.
-DBUILD_TERMINAL=ON
: This
switch is used in order to enable building the terminal. Toggle to
“OFF” or remove the switch,
if you do not wish it.
-DUSE_QT5=true
: This switch
is used in order to build this application linked to Qt5. Toggle to “false”, if you prefer to use Qt4.
Last updated on 2017-02-21 12:13:57 -0800


We're sorry but launchx doesn't work properly without JavaScript enabled. Please enable it to continue.


TsSimpleAst
Underlying Compiler Nodes
Sometimes it might be useful to get the node from the TypeScript compiler.
They’re accessible via the .getCompilerNode()
method that’s found on most objects:
const compilerNode = personInterface.getCompilerNode();
Warning: When manipulating the AST via this library, the underlying TypeScript AST tree is regenerated each time. For this reason, it’s important not to hold on to TypeScript compiler nodes between manipulations or you could end up working with out of date information.
Next step: Manipulating the AST


3 comments
regunathb closed the issue
Glad you found the source of the problem as I hadn't yet had time to dig into this.
Based on your digging into this do you have suggestions on better error reporting from Hystrix that would have made this more obvious to debug?
Firstly, thanks for a very useful piece of software.
Better error reporting around the triggers for InterruptedException, if possible at all, could help debug thread interactions and concurrency issues.
For this particular issue, it might help to re-validate assumptions and in-line comments on different threads executing the if-else block of code in start(boolean throwIfRejected) method (lines 1380 to 1436 in master branch). For example, we found the same thread executing the if and else code blocks. This seems strange though and I can re-validate this if required.
I am getting a java.lang.InterruptedException: null in HystrixCommand.execute() after the app/system has been running for a few days.
A few details of our app/system:
Is Semaphore isolation a better option for our needs?
This issue/symptom is on version 1.2.12. As far as I can see from the source code, the same behavior exists in the latest version 1.2.16.
A couple of stack traces when the errror occurs:
Exception trace no.1
Caused by: java.lang.InterruptedException: null
at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedNanos(AbstractQueuedSynchronizer.java:1024) ~[na:1.6.0_26]
at java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos(AbstractQueuedSynchronizer.java:1303) ~[na:1.6.0_26]
at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:227) ~[na:1.6.0_26]
at java.util.concurrent.FutureTask.get(FutureTask.java:91) ~[na:1.6.0_26]
at com.netflix.hystrix.HystrixCommand$QueuedExecutionFuture.performActualGet(HystrixCommand.java:1496) ~[hystrix-core-1.2.12.jar:na]
at com.netflix.hystrix.HystrixCommand$QueuedExecutionFuture.get(HystrixCommand.java:1426) ~[hystrix-core-1.2.12.jar:na]
at com.netflix.hystrix.HystrixCommand$QueuedExecutionFuture.get(HystrixCommand.java:1458) ~[hystrix-core-1.2.12.jar:na]
at com.netflix.hystrix.HystrixCommand.execute(HystrixCommand.java:429) ~[hystrix-core-1.2.12.jar:na]
Exception trace no.2
02:39:29.538 [Old I/O server worker (parentId:<PHONE_NUMBER>, [id: 0x7371b246, <IP_ADDRESS>/<IP_ADDRESS>:0])] ERROR com.netflix.hystrix.HystrixCommand - setMetric: Unexpected interruption while waiting on other thread submitting to queue.
java.lang.InterruptedException: null
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1279) ~[na:1.6.0_26]
at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:207) ~[na:1.6.0_26]
at com.netflix.hystrix.HystrixCommand$QueuedExecutionFuture.start(HystrixCommand.java:1403) [hystrix-core-1.2.12.jar:na]
at com.netflix.hystrix.HystrixCommand$QueuedExecutionFuture.start(HystrixCommand.java:1349) [hystrix-core-1.2.12.jar:na]
at com.netflix.hystrix.HystrixCommand$QueuedExecutionFuture.get(HystrixCommand.java:1422) [hystrix-core-1.2.12.jar:na]
at com.netflix.hystrix.HystrixCommand$QueuedExecutionFuture.get(HystrixCommand.java:1458) [hystrix-core-1.2.12.jar:na]
at com.netflix.hystrix.HystrixCommand.execute(HystrixCommand.java:429) [hystrix-core-1.2.12.jar:na]


| 1 | //////////////////////////////////////////////////////////////////////////////// | |
| 2 | // checkstyle: Checks Java source code for adherence to a set of rules. | |
| 3 | // Copyright (C) 2001-2020 the original author or authors. | |
| 4 | // | |
| 5 | // This library is free software; you can redistribute it and/or | |
| 6 | // modify it under the terms of the GNU Lesser General Public | |
| 7 | // License as published by the Free Software Foundation; either | |
| 8 | // version 2.1 of the License, or (at your option) any later version. | |
| 9 | // | |
| 10 | // This library is distributed in the hope that it will be useful, | |
| 11 | // but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 12 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| 13 | // Lesser General Public License for more details. | |
| 14 | // | |
| 15 | // You should have received a copy of the GNU Lesser General Public | |
| 16 | // License along with this library; if not, write to the Free Software | |
| 17 | // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
| 18 | //////////////////////////////////////////////////////////////////////////////// | |
| 19 | ||
| 20 | package com.puppycrawl.tools.checkstyle.checks.coding; | |
| 21 | ||
| 22 | import com.puppycrawl.tools.checkstyle.StatelessCheck; | |
| 23 | ||
| 24 | /** | |
| 25 | *
 | |
| 26 | * Checks that an overriding {@code clone()} method invokes {@code super.clone()}. | |
| 27 | * Does not check native methods, as they have no possible java defined implementation. | |
| 28 | *
 | |
| 29 | *
 | |
| 30 | * Reference: | |
| 31 | *  | |
| 32 | * Object.clone(). | |
| 33 | *
 | |
| 34 | *
 | |
| 35 | * To configure the check: | |
| 36 | *
 | |
| 37 | *
 | |
| 38 | * <module name="SuperClone"/> | |
| 39 | *
 | |
| 40 | *
Example:
 | |
| 41 | *
 | |
| 42 | * class A { | |
| 43 | * | |
| 44 | * public Object clone() { // OK | |
| 45 | * return super.clone(); | |
| 46 | * } | |
| 47 | * } | |
| 48 | * | |
| 49 | * class B { | |
| 50 | * private int b; | |
| 51 | * | |
| 52 | * public B clone() { // violation, does not call super.clone() | |
| 53 | * B other = new B(); | |
| 54 | * other.b = this.b; | |
| 55 | * return other; | |
| 56 | * } | |
| 57 | * } | |
| 58 | * | |
| 59 | * class C { | |
| 60 | * | |
| 61 | * public C clone() { // OK | |
| 62 | * return (C) super.clone(); | |
| 63 | * } | |
| 64 | * } | |
| 65 | *
 | |
| 66 | * @since 3.2 | |
| 67 | */ | |
| 68 | @StatelessCheck | |
| 69 |
2
1. 2. |
public class SuperCloneCheck extends AbstractSuperCheck { |
| 70 | ||
| 71 | @Override | |
| 72 | protected String getMethodName() { | |
| 73 |
4
1. getMethodName : replaced return value with "" for com/puppycrawl/tools/checkstyle/checks/coding/SuperCloneCheck::getMethodName → NO_COVERAGE 2. getMethodName : Substituted 1 with 0 → NO_COVERAGE 3. getMethodName : Substituted 1 with 0 → NO_COVERAGE 4. getMethodName : mutated return of Object value for com/puppycrawl/tools/checkstyle/checks/coding/SuperCloneCheck::getMethodName to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE |
return "clone"; |
| 74 | } | |
| 75 | ||
| 76 | } | |
Mutations | ||
| 0 |
1.1 2.2 |
|
| 69 |
1.1 2.2 |
|
| 73 |
1.1 2.2 3.3 4.4 |


Jerry Saltz is Senior Art Critic for New York Magazine; a two-time Finalist for the Pulitzer Prize in Criticism; and Winner of the 2015 National Magazine Award in Criticism. He was once ranked 24th “Most Powerful Person in the Art World.” Um, one in front of Jasper Johns. Hah!
Stavros Halkias is a stand up comedian from Baltimore, Maryland. After dabbling with comedy in college, he started performing regularly in 2012, when he was named Baltimore's New Comedian of the Year. Since then he's become a regular at clubs, colleges and independent shows in the Baltimore and DC areas, toured the United States with Wham City Comedy, and has performed at festivals like the Bentzen Ball in DC and Hell Yes Fest in New Orleans. Here’s a list of some the great comedians he’s had the opportunity to work with: Tom Papa, Robert Kelly, Tig Notaro, and Gilbert Gotfried. Here's a list of people that don't approve of his comedy career: Emmanuel Halkias, his father.


Let's try to change the tooltips' CSS.
Article Type
research-article
review-article
article
case-report
brief-communication
abstract
editorial
book-reviews
conference
other


{% extends "base.html" %} {% import 'bootstrap/wtf.html' as wtf %} {% block app_content %}
Make more cards at app.beebeebop.com


Business Registration
Email Address
Password
Company Name
Company ID
This is your assigned company ID.
Sign Up
Already have an account?
Sign in


Astrid Emde (OSGeo & WhereGroup Bonn)
because at
we work a lot with
& ...
& QGIS HelpDesk & FOSS Academy
by Gary Sherman
with lot of functionality
Passionate members from around the world
and business
Link to FOSS4G 2019 presentation and presentation video
QGIS Sprint before FOSS4G 2019 Bucharest (Romania)
download .pbf or ESRI Shape file
change from one data model to the other
from OSM: nodes, way, relations, tags
to GIS: points, lines, areas, attributes
powerful GDAL/OGR library is integrated in QGIS
over 500 plugins including experimental
Explore and make your choice
choose your favorit from several services and search for datasets and basemaps
f.e OSM Standard, OSM Topology, OSM Hiking map
download OSM data thanks to the Overpass API
easy dowload data for a given area
Use the Geocoder Nominatim to search for locations
Uses the Geocoder Nominatim too
Functions of openrouteservice.org based on OpenStreetMap
Visialize the buildings mapped in a time frame
f.e HOT team defines tasks
credits to Raymond Nijssen
Online terrain, buildings, image export (from 3.8)
documentation, tutorial, visual change log ...
try OSGeoLive which contains QGIS, QGIS Server and more Open Source Software for Geospatial
iD Editor, JOSM, Mapnik & contains data and documenation
you find many great QGIS books and tutorials
QGIS Map Design Anita Graser and Gretchen N. Peterson LocatePress, 2018
Discover QGIS 3.x Kurt Menke LocatePress, 2019
many many blogs & tweets about QGIS
a lot of QGIS videos from conferences
Get started with the informations from the OSM Wiki


The code behind:
var t = ScrTools.htmlize({ name :"input" , attrs : {id :"redRectangle" ,class :"redRectangle" ,"data-rnd" :"rectangular" }, props : ["readOnly" ],/* props doesn't work with properties that are not already in the html standard. Also be careful because it sets said properties of the html Element Object to true. example: if you put events : ["value" in props in an input element, the input element will have a value of"true" . */// Array of objects that take name of the event, action and event propagation {name :"click" ,action : function() { this.value ="Well, it is actually orange." ; },useCapture : false// This is optative } ], childs : [// The childs must be html elements ScrTools.htmlize( {name :"p" ,text :"Text in p" } ) ] }); document.getElementById("app" ).appendChild( t );


- Name: Mohammed.
- Age: 12 years old.
- Talent: Football.
- Name: Ahmad.
- Age: 8 years old.
- Talent: Baseball.
- Name: ali.
- Age: 10 years old.
- Talent: Basketbll.
- Name: Hassan.
- Age: 11 years old.
- Talent: Football.
- Name: Jad.
- Age: 7 years old.
- Talent: Tennis.
- Name: Khalid.
- Age: 6 years old.
- Talent: Horse ridding.
- Name: Ibrahem.
- Age: 11 years old.
- Talent: Karate.
- Name: Youssef.
- Age: 10 years old.
- Talent: Swimming.


Market Analysis and Strategies
he Marketing Tasks require the developer to determine what are the current and future market
conditions for the expected end-uses(ers) of the property. The developer then must determine the most
appropriate marketing strategy given the current and future market conditions. In implementing the marketing
strategy, the developer must determine the appropriate marketing mix. The marketing tasks can
be broken down into three categories: projected economic conditions, market strategy, and advertising and
promotion (the marketing mix).
Projected Market Conditions:
- Determine what land uses should be developed on the site.
- Highest and Best Use.Graaskamp says this should be the most “acceptable use.”
- Future Market Demand
- Future Competitive Supply
- Determine when the land uses should be brought to market (absorption).
- Construction time
- Absorption time
- Determine how and by whom the land uses should be brought to market.
- In-house marketing and sales
- Out-of-house marketing and sales (brokers, auctions, etc.)
- In house & out-of-house combination
Market Strategies:
- What amount of various land uses should be developed on the site?
- How and by whom should they be brought to market?
- The best ways to determine the current and future market conditions is to:
- Read, Read, Read (everything that you can find):
- National & regional publications (Newspapers, magazines)
- Local newsletters (on-line discussions of the regional and local economy
- Online market surveys are produced by:
- National and Regional Brokerage Firms
- National and Regional market research firms
- Personally Network with local human beings such as:
- Brokers
- Business leaders
- Politicians and government officials
Promotion and Advertising:
- Determine to whom the development be promoted and advertised.
- Who is the target buyer/renter?
- What is the best way to approach the target audience?
- Determine the sales pitch and who should make it.
- Need a consistent theme.
- Easily understood and presented.
- General property promotion to the community and neighborhood.
- Specific property promotion to motivated and capable buyers/renters.
- Determine the appropriate marketing mix (events, promotional materials, electronic advertising, site
visits, etc.)


Girl Develop It | Summer 2018
Find these slides at https://github.com/ShaynaCummings/gdi-intro-github
Girl Develop It exists to provide affordable and judgment-free opportunities for women interested in learning web and software development.
Thank you to our wonderful TAs!
Instructor:
@ShaynaCummings
<EMAIL_ADDRESS>We'll be using the following tools in class today:
Ever worked on a group paper and ended up with something like this?
Version history in Google Docs
Software that allows you (and your team) to do two powerful things:
Collaborate: Create anything with other people, from academic papers to entire websites and applications.
Track and revert changes: Ability to see who specifically made what changes and when. Be able to go back to a "snapshot in time" to fix something that went wrong.
There is one central server and each client (person) checks out and commits changes to it
Each client (person) has a local copy of the code, which they can then reconcile with the main server.
Git: Free, open source version control system
GitHub: web-based service that interacts with Git and allows you to host and share your code for free. You can:
git initto make it a Git repo (or
git clonean existing repo)
git addchanges to the Index (staging area) as you work
git commitchanges to the Head ("official" list of changes)
git pushchanges to your remote repository
user@bash:
git --version
In order to record changes in your commit history, Git needs to know a little about you.
Add your Github Username
git config --global user.name "YOUR NAME"
And the email attached to your GitHub account
git config --global user.email "YOUR EMAIL"
1. Create new folder
mkdir my-repo
2. Switch into that folder
cd my-repo
3. Initialize the folder as a Git repo
git init
Let's check it out!
ls -al
Hey, there's a new (hidden) folder:
your-name staff 128 Jun 19 00:23 .
your-name staff 672 Jun 19 00:39 ..
your-name staff 384 Jun 19 01:04 .git
Let's see what's inside
ls -al .git
We can also look at this Finder, but you'll only see .git if hidden files are set to visible
Create a new file
touch README.md
Every repository should have a README file!
git status: Check to see what changes Git has noticed
git status
git add: Adds files to the Index (staging area for your next commit)
Add all changed files
git add -A
Or to add a single file
git add README.md
git add-ed something you didn't intend to?
git resetremoves those file changes from the Index
Remove all files (from the Index)
git reset
Remove a single file (from the Index)
git reset README.md
git commit: Commits your changes to the Head
git commit -m "Update README file"
git log: Shows list of commits
git log
commit 0ac0ce458f65958fd6 (HEAD -> master)
Author: Shayna Cummings
Date: Tue Jun 19 01:14:20 2018 -0400 Add README file
git reset [commit]: undoes all commits after [commit] (but keeps all commits in log history)
git reset 579e546a022fe0e1297d80ebefa4c
--hardoption discards log history
git reset --hard 579e546a022fe0e1297d80ebefa4c
In every repo, there are likely some files that you don't want Git to track, including:
You can tell Git to ignore any changes to these files by listing them in a .gitignore file. Templates for many languages are available at github.com/github/gitignore
Create a .gitignore file inside your repo
cd my-repo
vim .gitignore
Add paths for files you want Git to ignore
.DS_Store
*.log
~
~
--INSERT--
Why use a remote repository?
Find the URL for your new GitHub repo
git remote add origin https://github.com/...
Verify that the remote repo was added
git remote -v
git push [remote name] [branch name]
git push -u origin master
Git & GitHub allow users to work collaboratively on the same project through:
See what branch you're currently on
git branch
git checkout -b [branchname]: creates new branch
git checkout -b add-widgets
Use a descriptive branch name, so you'll remember what you did on it.
git push [remote] [branchname]:
git push origin add-widgets
[first name][last initial]
, for example: shaynac
[first name][last initial].txt
, for example: shaynac.txt
git clone [URL]
git clone https://github.com/gdiboston/gdi-intro-github-students
https://github.com/gdiboston/gdi-intro-github-students
Click the 'Fork' button to make a copy of someone else's repo on your own Github account, and then use 'git clone' to clone your copy to your local computer
git clone [URL]
git clone https://github.com/YOURUSERNAME/gdi-intro-github-students
Pull requests (PRs) send a message to the owner(s) of the repo asking to merge your branch with your changes into the master branch
Switch to your branch and click 'new pull request'
You can open a PR from your branch -> master within one repository
OR
from your branch in a forked version of a repo -> the original repository
If there are no conflicts, a pull request can be merged with one click
Depending on the repo settings, you may be able to merge your own pull requests... this is not always a good idea
After pull requests are merged, it's important you sync up your local repo!
git pull [remote]:
git checkout master
git pull origin
Merge conflicts occur when changes in your branch conflict with changes made to the remote master.
This can happen when:
1.   Edit the problem file(s) in your local branch to remove the conflict(s) with the master branch. Git will mark conflicts in your files using <<< and >>>
<<<<<< HEAD Here's the line in your branch ====== Here's the same line in the master >>>>>> master
4. Commit your changes
git add [files]
git commit -m "resolve merge conflict"
5. Push your changes to the remote branch
git push origin problem-branch
No need to open a new Pull Request - your pushed changes will automatically be reflected in the current Pull Request
Questions?
boston@girldevelopit.com


Football: Rapinoe calls for more investment in US women's game
REUTERS: Two-time World Cup winner Megan Rapinoe has been at the forefront of the US national women's team's fight for gender pay equity but the fiery forward has told Reuters she also hopes for more investment in the domestic league and better pay for club players.
Earlier this month, the US National Women's Soccer League (NWSL) announced new compensation guidelines for 2020, including a nearly 20 per cent increase in the overall salary cap as well as allocation money allowing teams to invest in some players above the maximum salary.
However, the funds cannot be used to pay players who are members of the US and Canadian national teams, a move that Rapinoe, a standout for the NWSL's Reign FC, criticised.
"We need to sit down and have more substantive conversations about what that looks like," the Californian told Reuters when asked about the allocated fund provisions. "It’s going to be a necessary step before the NWSL gets going next year."
The NWSL could not immediately respond to a request for comment.
With a trial date set for May for the US women's national team's gender discrimination lawsuit against their governing body, the squad faces the possibility of a Summer Olympics training schedule clouded by legal issues.
Rapinoe has emerged as a larger-than-life figure in the sport after the United States' World Cup victory in France this year.
In addition to her outspoken criticism of US President Donald Trump, she also serves as the face of a Budweiser advertising campaign that debuted in the run-up to the NWSL championship last month.
While attendances in the league increased to an average of 7,337 per game in 2019, Rapinoe said she is frustrated by the progress made.
"More resources need to be put into the front office of the NWSL," added Rapinoe, who has said she would like to compete in the 2023 World Cup before she hangs up her boots.
As for her plans after she retires, the 34-year-old is focused on creating a pathway toward a role in the business of the NWSL, and is an advocate for a rumoured expansion team in Sacramento, or perhaps even Los Angeles.
She would also jump at the chance to be in charge of a team.
"I’d be a great owner. I want to own one of these teams," said Rapinoe.
 "Make me want to go to the game."


The Myth of Cloud Agnosticism
► Page Contents:
Notes⌗
Here are my notes taken from the SANS webcast.
- Top 6 CSP includes: AWS, Azure, Google Cloud, Alibaba Cloud, Oracle Cloud, IBM Cloud.
- Terraform allows to define cloud infrastructure as code and supports all the top 6 CSPs.
- It is practically impossible to consistently apply security controls across CSPs using any single tool including Terraform.
Organizations look to so-called “cloud-agnostic” technologies to manage this complexity.
-
Cloud infra includes highly specific services and platform, and these platform are not interoperable.
- different API call schemes are used to create infra in each CSP
- fundamental security concepts differ across the CSP
- users must understand the conceptual differences between clouds and between syntactical in at diff TF providers.
-
Cloud IAM control, is the most important subject across CSP.
- limit access to managed services
- IAM is more useful than network control in clouds.
- AWS IAM logic flow Vs. Azure RBAC eval logic Vs. Google Cloud Policy eval
-
CSP may break integration (on purpose) to maintain as market leader.
-
Other than IaC, application integration is another barrier to cloud agnisticism.
- native clouds services are more secure than written in-house.
- either have to re-write the apps for interoperability, or not relying on native cloud services, like S3, DynamoDB, IAM.
-
Webcast was conducted at May 10, which is Happy SEC510 day!
-
Possible solutions and recommendations:
- dapr.io (ack Cloud Native Computing Foundation project)
- Use multi-region instead of multi-CSP for redundancy and simplicity.
Creating one-core application that works on multi-cloud is nearly impossible and unnecessary. (by chance)
- multi-cloud solutions:
- vendor specific:
Links⌗
Read other posts


string pg_result_error_field ( resource $result , int $fieldcode )
pg_result_error_field() returns one of the detailed error message fields associated with result resource. It is only available against a PostgreSQL 7.4 or above server. The error field is specified by the fieldcode. Because pg_query() and pg_query_params() return FALSE if the query fails, you must use pg_send_query() and pg_get_result() to get the result handle. If you need to get additional error information from failed pg_query() queries, use pg_set_error_verbosity() and pg_last_error() and then parse the result.
A string containing the contents of the error field, NULL if the field does not exist or FALSE on failure.


About this repository
This is the documentation site for Travis CI! (http://docs.travis-ci.com/)
How to contribute
Fork the repository, read the rest of this README file and make some changes. Once you're done with your changes send a pull request. Thanks!
How to edit the site
Make sure you have Ruby and RubyGems installed. Next install bundler:
gem install bundler
Then install dependencies:
bundle install --binstubs
In order to run a local Web server that will serve documentation site, run:
./bin/jekyll serve
and then open localhost:4000 in your browser.
To regenerate the HTML pages automatically when you make changes to Markdown source files, use
./bin/jekyll serve --watch
Note that quoted entities may be escaped or unescaped depending on the Ruby version (1.8 vs. 1.9) used. It is normal.
License
Distributed under the MIT license; the same as other Travis CI projects.


import Raphael from "webpack-raphael";
(function(Raphael) {
// ECMAScript 5 strict mode:
"use strict";
// Raphael must be defined and
// must expose the .el property:
if (!Raphael || !Raphael.el) {
return;
}
// Abort if another plugin with
// the same name is already in use:
if (Raphael.el.fitText) {
return;
}
/**
* Fits a new or existing text to a specified width.
* Note 1: Doesn't handle line breaks.
* Note 2: Doesn't fit to height.
* @param {Number} [width] A width to which the text should fit.
* Use any non-number value ('auto', NULL, etc.) to fit to paper width.
* @param {String} [text] A text to set. Same as el.attr('text', text);
* @returns {RaphaelElement} Raphael element object with type "text".
*/
Raphael.el.fitText = function(width, text) {
// Can be applied to non-removed text elements only:
if (this.removed || this.type !== "text") {
return this;
}
// If width is not set - default it to paper width:
if (typeof width !== "number") {
width = this.paper.width;
}
// When text is unavailable or incorrectly defined
// just use what is already in the 'text' attribute:
if (typeof text === "string") {
this.attr("text", text);
} else {
text = this.attr("text");
}
// Cache the current width of the text element:
var currentWidth = this.getBBox().width;
// Check if the text fits already:
if (currentWidth > width) {
var avgCharWidth = currentWidth / text.length;
var textLengthThatFits = Math.round(width / avgCharWidth);
var textThatFits = text.substr(0, textLengthThatFits - 3);
// Cut the text to fitting length and set it together with the
// hover tooltip that shows the original text:
this.attr({
text: textThatFits + "...",
title: text
});
// Average character width is insufficient to determine the exact
// length of a string that fits the width, so we adjust it by
// removing characters from the end one by one until the whole
// line fits or gets reduced to empty string:
while (this.getBBox().width > width && textThatFits.length > 0) {
textThatFits = textThatFits.slice(0, -1);
this.attr("text", textThatFits + "...");
}
} else {
// The text fits, so there's
// no need for a hover tooltip
// and we should clear it:
this.attr("title", "");
}
// Make chainable:
return this;
};
})(Raphael);


Jharkhand Mukti Morcha demands Rs 51,000 from those seeking party tickets
The money would go towards the regional party's fund to help it fight the polls, the party said
by Press Trust of IndiaThe Jharkhand Mukti Morcha (JMM) has sought Rs 51,000 from those seeking party tickets for the Jharkhand Assembly elections, a party leader said on Friday.
The money would go towards the regional party's fund to help it fight the polls, he said.
The JMM had taken similar decisions in previous elections with the amount ranging from Rs 5,000 to Rs 21,000, JMMs general secretary-cum-spokesman Vinod Kumar Pandey said.
"Those party workers who submit avedan (application) to contest (the assembly elections) should deposit Rs 51,000 in the party fund to help the party contest the elections.
"We are not a corporate party. Our party runs with the contribution of party workers," Pandey said.
Asked when the first list of candidates would be announced by the JMM, Pandey said, the party would inform in due course.
With Jharkhand Vikas Morcha (Prajatantrik) deciding to contest the elections on its own, the JMM, Congress and the RJD are likely to announce their seat-sharing formula soon.
Assembly polls for the 81-member House will be held in five phases from November 30.


Post DOMReady injection
Testing that selectivizr runs if dynamically injected into a page after DOMReady