# File lib/active_record/fixtures.rb, line 711 def primary_key_name @primary_key_name ||= model_class && model_class.primary_key end
class ActiveRecord::FixtureSet
Fixtures are a way of organizing data that you want to test against; in short, sample data.
They are stored in YAML files, one file per model, which are placed in the
directory appointed by
ActiveSupport::TestCase.fixture_path=(path)
(this is
automatically configured for Rails, so you can just put your files in
<your-rails-app>/test/fixtures/
). The fixture file ends
with the .yml
file extension, for example:
<your-rails-app>/test/fixtures/web_sites.yml
).
The format of a fixture file looks like this:
rubyonrails: id: 1 name: Ruby on Rails url: http://www.rubyonrails.org google: id: 2 name: Google url: http://www.google.com
This fixture file includes two fixtures. Each YAML fixture (ie. record) is given a name and is followed by an indented list of key/value pairs in the “key: value” format. Records are separated by a blank line for your viewing pleasure.
Note: Fixtures are unordered. If you want ordered fixtures, use the omap YAML type. See yaml.org/type/omap.html for the specification. You will need ordered fixtures when you have foreign key constraints on keys in the same table. This is commonly needed for tree structures. Example:
--- !omap - parent: id: 1 parent_id: NULL title: Parent - child: id: 2 parent_id: 1 title: Child
Using Fixtures in Test Cases¶ ↑
Since fixtures are a testing construct, we use them in our unit and functional tests. There are two ways to use the fixtures, but first let's take a look at a sample unit test:
require 'test_helper' class WebSiteTest < ActiveSupport::TestCase test "web_site_count" do assert_equal 2, WebSite.count end end
By default, test_helper.rb
will load all of your fixtures into
your test database, so this test will succeed.
The testing environment will automatically load the all fixtures into the database before each test. To ensure consistent data, the environment deletes the fixtures before running the load.
In addition to being available in the database, the fixture's data may also be accessed by using a special dynamic method, which has the same name as the model, and accepts the name of the fixture to instantiate:
test "find" do assert_equal "Ruby on Rails", web_sites(:rubyonrails).name end
Alternatively, you may enable auto-instantiation of the fixture data. For instance, take the following tests:
test "find_alt_method_1" do assert_equal "Ruby on Rails", @web_sites['rubyonrails']['name'] end test "find_alt_method_2" do assert_equal "Ruby on Rails", @rubyonrails.name end
In order to use these methods to access fixtured data within your
testcases, you must specify one of the following in your
ActiveSupport::TestCase
-derived class:
-
to fully enable instantiated fixtures (enable alternate methods #1 and #2 above)
self.use_instantiated_fixtures = true
-
create only the hash for the fixtures, do not 'find' each instance (enable alternate method #1 only)
self.use_instantiated_fixtures = :no_instances
Using either of these alternate methods incurs a performance hit, as the fixtured data must be fully traversed in the database to create the fixture hash and/or instance variables. This is expensive for large sets of fixtured data.
Dynamic fixtures with ERB¶ ↑
Some times you don't care about the content of the fixtures as much as you care about the volume.
Using ERB, you can also inject dynamic values into your fixtures with
inserts like <%= Date.today.strftime("%Y-%m-%d")
%>
. This is however a feature to be used with some caution. The
point of fixtures are that they're stable units of predictable sample
data. If you feel that you need to inject dynamic values, then perhaps you
should reexamine whether your application is properly testable. Hence,
dynamic values in fixtures are to be considered a code smell.
Helper methods defined in a fixture will not be available in other
fixtures, to prevent against unwanted inter-test dependencies. Methods used
by multiple fixtures should be defined in a module that is included in
ActiveRecord::FixtureSet.context_class
.
-
define a helper method in `test_helper.rb`
module FixtureFileHelpers def file_sha(path) Digest::SHA2.hexdigest(File.read(Rails.root.join('test/fixtures', path))) end end ActiveRecord::FixtureSet.context_class.send :include, FixtureFileHelpers
-
use the helper method in a fixture
photo: name: kitten.png sha: <%= file_sha 'files/kitten.png' %>
Transactional Fixtures¶ ↑
Test cases can use begin+rollback to isolate their changes to the database instead of having to delete+insert for every test case.
class FooTest < ActiveSupport::TestCase self.use_transactional_fixtures = true test "godzilla" do assert !Foo.all.empty? Foo.destroy_all assert Foo.all.empty? end test "godzilla aftermath" do assert !Foo.all.empty? end end
If you preload your test database with all fixture data (probably in the rake task) and use transactional fixtures, then you may omit all fixtures declarations in your test cases since all the data's already there and every case rolls back its changes.
In order to use instantiated fixtures with preloaded data, set
self.pre_loaded_fixtures
to true. This will provide access to
fixture data for every table that has been loaded through fixtures
(depending on the value of use_instantiated_fixtures
).
When not to use transactional fixtures:
-
You're testing whether a transaction works correctly. Nested transactions don't commit until all parent transactions commit, particularly, the fixtures transaction which is begun in setup and rolled back in teardown. Thus, you won't be able to verify the results of your transaction until Active Record supports nested transactions or savepoints (in progress).
-
Your database does not support transactions. Every Active Record database supports transactions except MySQL MyISAM. Use InnoDB, MaxDB, or NDB instead.
Advanced Fixtures¶ ↑
Fixtures that don't specify an ID get some extra features:
-
Stable, autogenerated IDs
-
Label references for associations (belongs_to, has_one, has_many)
-
HABTM associations as inline lists
There are some more advanced features available even if the id is specified:
-
Autofilled timestamp columns
-
Fixture label interpolation
-
Support for YAML defaults
Stable, Autogenerated IDs¶ ↑
Here, have a monkey fixture:
george: id: 1 name: George the Monkey reginald: id: 2 name: Reginald the Pirate
Each of these fixtures has two unique identifiers: one for the database and one for the humans. Why don't we generate the primary key instead? Hashing each fixture's label yields a consistent ID:
george: # generated id: 503576764 name: George the Monkey reginald: # generated id: 324201669 name: Reginald the Pirate
Active Record looks at the fixture's model class, discovers the correct primary key, and generates it right before inserting the fixture into the database.
The generated ID for a given label is constant, so we can discover any fixture's ID without loading anything, as long as we know the label.
Label references for associations (belongs_to, has_one, has_many)¶ ↑
Specifying foreign keys in fixtures can be very fragile, not to mention difficult to read. Since Active Record can figure out the ID of any fixture from its label, you can specify FK's by label instead of ID.
belongs_to¶ ↑
Let's break out some more monkeys and pirates.
### in pirates.yml reginald: id: 1 name: Reginald the Pirate monkey_id: 1 ### in monkeys.yml george: id: 1 name: George the Monkey pirate_id: 1
Add a few more monkeys and pirates and break this into multiple files, and it gets pretty hard to keep track of what's going on. Let's use labels instead of IDs:
### in pirates.yml reginald: name: Reginald the Pirate monkey: george ### in monkeys.yml george: name: George the Monkey pirate: reginald
Pow! All is made clear. Active Record reflects on the fixture's model
class, finds all the belongs_to
associations, and allows you
to specify a target label for the
association (monkey: george) rather than a target
id for the FK (monkey_id:
1
).
Polymorphic belongs_to¶ ↑
Supporting polymorphic relationships is a little bit more complicated, since Active Record needs to know what type your association is pointing at. Something like this should look familiar:
### in fruit.rb belongs_to :eater, polymorphic: true ### in fruits.yml apple: id: 1 name: apple eater_id: 1 eater_type: Monkey
Can we do better? You bet!
apple: eater: george (Monkey)
Just provide the polymorphic target type and Active Record will take care of the rest.
has_and_belongs_to_many¶ ↑
Time to give our monkey some fruit.
### in monkeys.yml george: id: 1 name: George the Monkey ### in fruits.yml apple: id: 1 name: apple orange: id: 2 name: orange grape: id: 3 name: grape ### in fruits_monkeys.yml apple_george: fruit_id: 1 monkey_id: 1 orange_george: fruit_id: 2 monkey_id: 1 grape_george: fruit_id: 3 monkey_id: 1
Let's make the HABTM fixture go away.
### in monkeys.yml george: id: 1 name: George the Monkey fruits: apple, orange, grape ### in fruits.yml apple: name: apple orange: name: orange grape: name: grape
Zap! No more fruits_monkeys.yml file. We've specified the list of
fruits on George's fixture, but we could've just as easily
specified a list of monkeys on each fruit. As with belongs_to
,
Active Record reflects on the fixture's model class and discovers the
has_and_belongs_to_many
associations.
Autofilled Timestamp Columns¶ ↑
If your table/model specifies any of Active Record's standard timestamp
columns (created_at
, created_on
,
updated_at
, updated_on
), they will automatically
be set to Time.now
.
If you've set specific values, they'll be left alone.
Fixture label interpolation¶ ↑
The label of the current fixture is always available as a column value:
geeksomnia: name: Geeksomnia's Account subdomain: $LABEL email<EMAIL_ADDRESS>Also, sometimes (like when porting older join table fixtures) you'll need to be able to get a hold of the identifier for a given label. ERB to the rescue:
george_reginald: monkey_id: <%= ActiveRecord::FixtureSet.identify(:reginald) %> pirate_id: <%= ActiveRecord::FixtureSet.identify(:george) %>
Support for YAML defaults¶ ↑
You can set and reuse defaults in your fixtures YAML file. This is the same
technique used in the database.yml
file to specify defaults:
DEFAULTS: &DEFAULTS created_on: <%= 3.weeks.ago.to_s(:db) %> first: name: Smurf <<: *DEFAULTS second: name: Fraggle <<: *DEFAULTS
Any fixture labeled “DEFAULTS” is safely ignored.
Constants
- MAX_ID
Attributes
Public Class Methods
# File lib/active_record/fixtures.rb, line 439 def self.cache_fixtures(connection, fixtures_map) cache_for_connection(connection).update(fixtures_map) end
# File lib/active_record/fixtures.rb, line 423 def self.cache_for_connection(connection) @@all_cached_fixtures[connection] end
# File lib/active_record/fixtures.rb, line 431 def self.cached_fixtures(connection, keys_to_fetch = nil) if keys_to_fetch cache_for_connection(connection).values_at(*keys_to_fetch) else cache_for_connection(connection).values end end
Superclass for the evaluation contexts used by ERB fixtures.
# File lib/active_record/fixtures.rb, line 562 def self.context_class @context_class ||= Class.new end
# File lib/active_record/fixtures.rb, line 496 def self.create_fixtures(fixtures_directory, fixture_set_names, class_names = {}, config = ActiveRecord::Base) fixture_set_names = Array(fixture_set_names).map(&:to_s) class_names = ClassCache.new class_names, config # FIXME: Apparently JK uses this. connection = block_given? ? yield : ActiveRecord::Base.connection files_to_read = fixture_set_names.reject { |fs_name| fixture_is_cached?(connection, fs_name) } unless files_to_read.empty? connection.disable_referential_integrity do fixtures_map = {} fixture_sets = files_to_read.map do |fs_name| klass = class_names[fs_name] conn = klass ? klass.connection : connection fixtures_map[fs_name] = new( # ActiveRecord::FixtureSet.new conn, fs_name, klass, ::File.join(fixtures_directory, fs_name)) end update_all_loaded_fixtures fixtures_map connection.transaction(:requires_new => true) do fixture_sets.each do |fs| conn = fs.model_class.respond_to?(:connection) ? fs.model_class.connection : connection table_rows = fs.table_rows table_rows.each_key do |table| conn.delete "DELETE FROM #{conn.quote_table_name(table)}", 'Fixture Delete' end table_rows.each do |fixture_set_name, rows| rows.each do |row| conn.insert_fixture(row, fixture_set_name) end end # Cap primary key sequences to max(pk). if conn.respond_to?(:reset_pk_sequence!) conn.reset_pk_sequence!(fs.table_name) end end end cache_fixtures(connection, fixtures_map) end end cached_fixtures(connection, fixture_set_names) end
# File lib/active_record/fixtures.rb, line 427 def self.fixture_is_cached?(connection, table_name) cache_for_connection(connection)[table_name] end
Returns a consistent, platform-independent identifier for
label
. Integer identifiers are values less than 2^30. UUIDs
are RFC 4122 version 5 SHA-1 hashes.
# File lib/active_record/fixtures.rb, line 553 def self.identify(label, column_type = :integer) if column_type == :uuid Digest::UUID.uuid_v5(Digest::UUID::OID_NAMESPACE, label.to_s) else Zlib.crc32(label.to_s) % MAX_ID end end
# File lib/active_record/fixtures.rb, line 455 def self.instantiate_all_loaded_fixtures(object, load_instances = true) all_loaded_fixtures.each_value do |fixture_set| instantiate_fixtures(object, fixture_set, load_instances) end end
# File lib/active_record/fixtures.rb, line 443 def self.instantiate_fixtures(object, fixture_set, load_instances = true) if load_instances fixture_set.each do |fixture_name, fixture| begin object.instance_variable_set "@#{fixture_name}", fixture.find rescue FixtureClassNotFound nil end end end end
# File lib/active_record/fixtures.rb, line 572 def initialize(connection, name, class_name, path, config = ActiveRecord::Base) @name = name @path = path @config = config @model_class = nil if class_name.is_a?(Class) # TODO: Should be an AR::Base type class, or any? @model_class = class_name else @model_class = class_name.safe_constantize if class_name end @connection = connection @table_name = ( model_class.respond_to?(:table_name) ? model_class.table_name : self.class.default_fixture_table_name(name, config) ) @fixtures = read_fixture_files path, @model_class end
# File lib/active_record/fixtures.rb, line 419 def self.reset_cache @@all_cached_fixtures.clear end
Public Instance Methods
# File lib/active_record/fixtures.rb, line 593 def [](x) fixtures[x] end
# File lib/active_record/fixtures.rb, line 597 def []=(k,v) fixtures[k] = v end
# File lib/active_record/fixtures.rb, line 601 def each(&block) fixtures.each(&block) end
# File lib/active_record/fixtures.rb, line 605 def size fixtures.size end
Returns a hash of rows to be inserted. The key is the table, the value is a list of rows to insert to that table.
# File lib/active_record/fixtures.rb, line 611 def table_rows now = config.default_timezone == :utc ? Time.now.utc : Time.now now = now.to_s(:db) # allow a standard key to be used for doing defaults in YAML fixtures.delete('DEFAULTS') # track any join tables we need to insert later rows = Hash.new { |h,table| h[table] = [] } rows[table_name] = fixtures.map do |label, fixture| row = fixture.to_hash if model_class # fill in timestamp columns if they aren't specified and the model is set to record_timestamps if model_class.record_timestamps timestamp_column_names.each do |c_name| row[c_name] = now unless row.key?(c_name) end end # interpolate the fixture label row.each do |key, value| row[key] = value.gsub("$LABEL", label.to_s) if value.is_a?(String) end # generate a primary key if necessary if has_primary_key_column? && !row.include?(primary_key_name) row[primary_key_name] = ActiveRecord::FixtureSet.identify(label, primary_key_type) end # If STI is used, find the correct subclass for association reflection reflection_class = if row.include?(inheritance_column_name) row[inheritance_column_name].constantize rescue model_class else model_class end reflection_class._reflections.each_value do |association| case association.macro when :belongs_to # Do not replace association name with association foreign key if they are named the same fk_name = (association.options[:foreign_key] || "#{association.name}_id").to_s if association.name.to_s != fk_name && value = row.delete(association.name.to_s) if association.polymorphic? && value.sub!(/\s*\(([^\)]*)\)\s*$/, "") # support polymorphic belongs_to as "label (Type)" row[association.foreign_type] = $1 end fk_type = reflection_class.columns_hash[fk_name].type row[fk_name] = ActiveRecord::FixtureSet.identify(value, fk_type) end when :has_many if association.options[:through] add_join_records(rows, row, HasManyThroughProxy.new(association)) end end end end row end rows end
Private Instance Methods
# File lib/active_record/fixtures.rb, line 719 def add_join_records(rows, row, association) # This is the case when the join table has no fixtures file if (targets = row.delete(association.name.to_s)) table_name = association.join_table column_type = association.primary_key_type lhs_key = association.lhs_key rhs_key = association.rhs_key targets = targets.is_a?(Array) ? targets : targets.split(/\s*,\s*/) rows[table_name].concat targets.map { |target| { lhs_key => row[primary_key_name], rhs_key => ActiveRecord::FixtureSet.identify(target, column_type) } } end end
# File lib/active_record/fixtures.rb, line 749 def column_names @column_names ||= @connection.columns(@table_name).collect { |c| c.name } end
# File lib/active_record/fixtures.rb, line 735 def has_primary_key_column? @has_primary_key_column ||= primary_key_name && model_class.columns.any? { |c| c.name == primary_key_name } end
# File lib/active_record/fixtures.rb, line 745 def inheritance_column_name @inheritance_column_name ||= model_class && model_class.inheritance_column end
# File lib/active_record/fixtures.rb, line 715 def primary_key_type @primary_key_type ||= model_class && model_class.column_types[model_class.primary_key].type end
# File lib/active_record/fixtures.rb, line 753 def read_fixture_files(path, model_class) yaml_files = Dir["#{path}/{**,*}/*.yml"].select { |f| ::File.file?(f) } + [yaml_file_path(path)] yaml_files.each_with_object({}) do |file, fixtures| FixtureSet::File.open(file) do |fh| fh.each do |fixture_name, row| fixtures[fixture_name] = ActiveRecord::Fixture.new(row, model_class) end end end end
# File lib/active_record/fixtures.rb, line 740 def timestamp_column_names @timestamp_column_names ||= %w(created_at created_on updated_at updated_on) & column_names end
# File lib/active_record/fixtures.rb, line 767 def yaml_file_path(path) "#{path}.yml" end


Getting a few medicare quote is as simple as clicking a button.  Get convered today!


|
Elektra
0.8.21
|
This plugin uses the nickel library in order to read/write metakeys in the nickel ini format. It's purpose is to be used in the spec
-namespace or when any metadata should be stored.
For ini files for applications, e.g. smb.conf you should prefer the ini plugin.
To mount a ni plugin you can simply use:
kdb mount file.ini spec/ni ni
The strength and usage of this plugin is that it supports arbitrary meta data and is still human readable. E.g.
[key] meta=foo
creates the key with metadata key meta
and metadata value foo
:
$ kdb getmeta user/ni/key meta foo
the metadata for the parent key has following syntax:
[] meta=foo
Line continuation works by ending the line with \\
.
Exporting a KeySet to the nickel format:
kdb export spec/ni ni > example.ni
For in-detail explanation of the syntax (nested keys are not supported by the plugin, however) see /src/plugins/ni/nickel-1.1.0/include/bohr/ni.h
kdb test
currently reports some errors (likely because of the UTF-8 handling happening within ni).This plugin is based on the Nickel Library written by author: charl es@c haosl izar d.org
Nickel (Ni) has its strength in building up a hierarchical recursive Node structure which is perfect for parsing and generating ini files. With them arbitrary deep nested hierarchy are possible, but limited in a keyname of a fixed size.
The API of nickel is very suited for elektra, it can use FILE*
pointers (using that elektra could open and lock files), the node-hierarchy can be transformed to keysets, but it lacks of many features like comments and types.
The format is more general then the kde-ini format, it can handle their configuration well, when the section names do not exceed the specified length. Nesting is only required in the first depth, any deeper is not understood by kde config parser.
The memory footprint is for a 190.000 (reduced to 35.000 when rewrote first ) line ini file with 1.1MB size is 16.88 MB. The sort order is not stable, even not with the same file rewritten again.


vavr
is a functional programming library for the JVM.
It is greatly inspired by scala
and brings persistent,
immutable data structures to the Java world. JDBI
can
collect results from queries to these types and use them.
Furthermore vavr
value types can be used as arguments
and query results can be projected to vavr
tuples.


Input Form:
Upload a text file, please!
Choose date format:
ISO Date: YYYY-MM-DD
Short Date: MM/DD/YYYY
Long Date: MMM DD YYYY or DD MMM YYYY
Results:
Days worked
Employee ID #1
Employee ID #2
Project ID


{% extends 'layout.html' %} {% block pageTitle %} NHS design system testing {% endblock %} {% block beforeContent %} {% endblock %} {% block content %}
Testing design styles, components and patterns that have been proposed in the community backlog for the NHS design system.
| Component | Proposal |
|---|---|
| Loading spinner | New component |
| Smaller checkboxes and radios | A new variant of the checkbox component |
| Component | Proposal |
|---|---|
| Do and don't list | Refactor code, rewrite as pattern |
| List panel | Refactor code, remove component |
| Nav A-Z | Refactor code, remove component |


CREATE TRIGGER name { BEFORE | AFTER } { event [ OR ... ] } ON table [ FOR [ EACH ] { ROW | STATEMENT } ] [ WHEN ( condition ) ] EXECUTE PROCEDURE function_name ( arguments )
CREATE TRIGGER creates a new trigger. The trigger will be associated with the specified table and will execute the specified function function_name when certain events occur.
The trigger can be specified to fire either before the operation is attempted on a row (before constraints are checked and the INSERT, UPDATE, or DELETE is attempted) or after the operation has completed (after constraints are checked and the INSERT, UPDATE, or DELETE has completed). If the trigger fires before the event, the trigger can skip the operation for the current row, or change the row being inserted (for INSERT and UPDATE operations only). If the trigger fires after the event, all changes, including the effects of other triggers, are "visible" to the trigger.
A trigger that is marked FOR EACH ROW is called once for every row that the operation modifies. For example, a DELETE that affects 10 rows will cause any ON DELETE triggers on the target relation to be called 10 separate times, once for each deleted row. In contrast, a trigger that is marked FOR EACH STATEMENT only executes once for any given operation, regardless of how many rows it modifies (in particular, an operation that modifies zero rows will still result in the execution of any applicable FOR EACH STATEMENT triggers).
In addition, triggers may be defined to fire for a TRUNCATE, though only FOR EACH STATEMENT.
Also, a trigger definition can specify a Boolean WHEN condition, which will be tested to see whether the trigger should be fired. In row-level triggers the WHEN condition can examine the old and/or new values of columns of the row. Statement-level triggers can also have WHEN conditions, although the feature is not so useful for them since the condition cannot refer to any values in the table.
If multiple triggers of the same kind are defined for the same event, they will be fired in alphabetical order by name.
SELECT does not modify any rows so you cannot create SELECT triggers. Rules and views are more appropriate in such cases.
Refer to Chapter 36 for more information about triggers.
The name to give the new trigger. This must be distinct from the name of any other trigger for the same table.
Determines whether the function is called before or after the event.
One of INSERT, UPDATE, DELETE, or TRUNCATE; this specifies the event that will fire the trigger. Multiple events can be specified using OR.
For UPDATE triggers, it is possible to specify a list of columns using this syntax:
UPDATE OF column_name1 [, column_name2 ... ]
The trigger will only fire if at least one of the listed columns is mentioned as a target of the update.
The name (optionally schema-qualified) of the table the trigger is for.
This specifies whether the trigger procedure should be fired once for every row affected by the trigger event, or just once per SQL statement. If neither is specified, FOR EACH STATEMENT is the default.
A Boolean expression that determines whether the trigger function will actually be executed. If WHEN is specified, the function will only be called if the condition returns true. In FOR EACH ROW triggers, the WHEN condition can refer to columns of the old and/or new row values by writing OLD.column_name or NEW.column_name respectively. Of course, INSERT triggers cannot refer to OLD and DELETE triggers cannot refer to NEW.
Currently, WHEN expressions cannot contain subqueries.
A user-supplied function that is declared as taking no arguments and returning type trigger, which is executed when the trigger fires.
An optional comma-separated list of arguments to be provided to the function when the trigger is executed. The arguments are literal string constants. Simple names and numeric constants can be written here, too, but they will all be converted to strings. Please check the description of the implementation language of the trigger function to find out how these arguments can be accessed within the function; it might be different from normal function arguments.
To create a trigger on a table, the user must have the TRIGGER privilege on the table. The user must also have EXECUTE privilege on the trigger function.
Use DROP TRIGGER to remove a trigger.
A column-specific trigger (FOR UPDATE OF column_name) will fire when any of its columns are listed as targets in the UPDATE command's SET list. It is possible for a column's value to change even when the trigger is not fired, because changes made to the row's contents by BEFORE UPDATE triggers are not considered. Conversely, a command such as UPDATE ... SET x = x ... will fire a trigger on column x, even though the column's value did not change.
In a BEFORE trigger, the WHEN condition is evaluated just before the function is or would be executed, so using WHEN is not materially different from testing the same condition at the beginning of the trigger function. Note in particular that the NEW row seen by the condition is the current value, as possibly modified by earlier triggers. Also, a BEFORE trigger's WHEN condition is not allowed to examine the system columns of the NEW row (such as oid), because those won't have been set yet.
In an AFTER trigger, the WHEN condition is evaluated just after the row update occurs, and it determines whether an event is queued to fire the trigger at the end of statement. So when an AFTER trigger's WHEN condition does not return true, it is not necessary to queue an event nor to re-fetch the row at end of statement. This can result in significant speedups in statements that modify many rows, if the trigger only needs to be fired for a few of the rows.
In PostgreSQL versions before 7.3, it was necessary to declare trigger functions as returning the placeholder type opaque, rather than trigger. To support loading of old dump files, CREATE TRIGGER will accept a function declared as returning opaque, but it will issue a notice and change the function's declared return type to trigger.
Execute the function check_account_update
whenever
a row of the table accounts is about to be updated:
CREATE TRIGGER check_update BEFORE UPDATE ON accounts FOR EACH ROW EXECUTE PROCEDURE check_account_update();
The same, but only execute the function if column balance is specified as a target in the UPDATE command:
CREATE TRIGGER check_update BEFORE UPDATE OF balance ON accounts FOR EACH ROW EXECUTE PROCEDURE check_account_update();
This form only executes the function if column balance has in fact changed value:
CREATE TRIGGER check_update BEFORE UPDATE ON accounts FOR EACH ROW WHEN (OLD.balance IS DISTINCT FROM NEW.balance) EXECUTE PROCEDURE check_account_update();
Call a function to log updates of accounts, but only if something changed:
CREATE TRIGGER log_update AFTER UPDATE ON accounts FOR EACH ROW WHEN (OLD.* IS DISTINCT FROM NEW.*) EXECUTE PROCEDURE log_account_update();
Section 36.4 contains a complete example of a trigger function written in C.
The CREATE TRIGGER statement in PostgreSQL implements a subset of the SQL standard. The following functionality is currently missing:
SQL allows you to define aliases for the "old" and "new" rows or tables for use in the definition of the triggered action (e.g., CREATE TRIGGER ... ON tablename REFERENCING OLD ROW AS somename NEW ROW AS othername ...). Since PostgreSQL allows trigger procedures to be written in any number of user-defined languages, access to the data is handled in a language-specific way.
PostgreSQL only allows the execution of a user-defined function for the triggered action. The standard allows the execution of a number of other SQL commands, such as CREATE TABLE, as the triggered action. This limitation is not hard to work around by creating a user-defined function that executes the desired commands.
SQL specifies that multiple triggers should be fired in time-of-creation order. PostgreSQL uses name order, which was judged to be more convenient.
SQL specifies that BEFORE DELETE triggers on cascaded deletes fire after the cascaded DELETE completes. The PostgreSQL behavior is for BEFORE DELETE to always fire before the delete action, even a cascading one. This is considered more consistent. There is also unpredictable behavior when BEFORE triggers modify rows or prevent updates during an update that is caused by a referential action. This can lead to constraint violations or stored data that does not honor the referential constraint.
The ability to specify multiple actions for a single trigger using OR is a PostgreSQL extension of the SQL standard.
The ability to fire triggers for TRUNCATE is a PostgreSQL extension of the SQL standard.


Over the course of November, many aspiring writers, and current writers who want to flex their authorial muscles, will be taking part in National Novel Writing Month, or NaNoWriMo. Their shared target is to write 50,000 words in thirty days, in the hope of having the bulk of a serviceable, editable novel by the end of it.
Now that QlL is planning to publish all 99 Exercises in Song on the site by the end of the year, it seems logical that, with around forty to go, we should at least align ourselves with the magnum opus that is the combined might of NaNoWriMo, even if (a) some of these exercises have already been written and (b) NaNoWriMo unfortunately doesn't itself provide space for such Oulipian experimentation as we're indulging in.
To that end, we intend to release an as-yet unpublished Exercise in Song every day in November 2011, making thirty more Exercises in Song available here by the end of the month. We've still got a lot of writing to do, so it'll keep us busy, but it's a great excuse to knuckle down and be ready to hit the December 31 deadline.
So keep coming back to Quiet little Lies throughout November (or subscribe to the Exercises in Song RSS feed) to indulge in your daily bout of mental exercise; it should keep you alert and motivated as the nights lengthen and winter descends!
The erstwhile contents of Spineless Reviews are now available on QlL: pushing 100 miscellaneous book reviews for your delectation.
Spineless Reviews was always intended as a platform for picking and analysing unusual and interesting items of literature: not just the newest releases, but also books you might find in your local library or secondhand shop; or exclusively online, in esoteric bookshops, on the graphic novel shelves; or even available completely for free as part of Project Gutenberg. They were even serialized for some time in the newsletters of local publishers Reverb, and were hopefully if nothing else an interesting read.
We hope to use QlL as a way to begin publishing such reviews again. In the mean time, if you're new to Spineless Reviews, there's a whole archive to plough your way through. Happy reading, about happy reading.
While I work on new content, I've decided to bring older work into QlL, that for some reason never appeared here at the time. So the more dedicated readers might spot some apparently new bits and pieces appearing that they recognise.
QlL has recently moved to a new server. We've been chasing a few missing images and other broken links, and we think we've got all but a handful of glitches ironed out. Please let us know if you see anything broken.
Today we posted all orders for Exercises in Song 2008. That means that they should all arrive in time for Christmas!
If you're interested in having a free print copy of the twenty-five exercises (plus four bonus ones) then you can still order a copy until Saturday 20 December and it should arrive before Christmas.


| Top |
| gchar * | file | Read / Write |
| GIcon * | gicon | Read / Write |
| gchar * | icon-name | Read / Write |
| GtkIconSet * | icon-set | Read / Write |
| gint | icon-size | Read / Write |
| GdkPixbuf * | pixbuf | Read / Write |
| GdkPixbufAnimation * | pixbuf-animation | Read / Write |
| gint | pixel-size | Read / Write |
| gchar * | resource | Read / Write |
| gchar * | stock | Read / Write |
| GtkImageType | storage-type | Read |
| CairoSurface * | surface | Read / Write |
| gboolean | use-fallback | Read / Write |
The GtkImage widget displays an image. Various kinds of object
can be displayed as an image; most typically, you would load a
GdkPixbuf ("pixel buffer") from a file, and then display that.
There’s a convenience function to do this, gtk_image_new_from_file()
,
used as follows:
1 2 |
GtkWidget *image; image = gtk_image_new_from_file ("myfile.png"); |
If the file isn’t loaded successfully, the image will contain a
“broken image” icon similar to that used in many web browsers.
If you want to handle errors in loading the file yourself,
for example by displaying an error message, then load the image with
gdk_pixbuf_new_from_file()
, then create the GtkImage with
gtk_image_new_from_pixbuf()
.
The image file may contain an animation, if so the GtkImage will display an animation (GdkPixbufAnimation) instead of a static image.
GtkImage is a subclass of GtkMisc, which implies that you can align it (center, left, right) and add padding to it, using GtkMisc methods.
GtkImage is a “no window” widget (has no GdkWindow of its own), so by default does not receive events. If you want to receive events on the image, such as button clicks, place the image inside a GtkEventBox, then connect to the event signals on the event box.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
static gboolean button_press_callback (GtkWidget *event_box, GdkEventButton *event, gpointer data) { g_print ("Event box clicked at coordinates %f,%f\n", event->x, event->y); // Returning TRUE means we handled the event, so the signal // emission should be stopped (don’t call any further callbacks // that may be connected). Return FALSE to continue invoking callbacks. return TRUE; } static GtkWidget* create_image (void) { GtkWidget *image; GtkWidget *event_box; image = gtk_image_new_from_file ("myfile.png"); event_box = gtk_event_box_new (); gtk_container_add (GTK_CONTAINER (event_box), image); g_signal_connect (G_OBJECT (event_box), "button_press_event", G_CALLBACK (button_press_callback), image); return image; } |
When handling events on the event box, keep in mind that coordinates in the image may be different from event box coordinates due to the alignment and padding settings on the image (see GtkMisc). The simplest way to solve this is to set the alignment to 0.0 (left/top), and set the padding to zero. Then the origin of the image will be the same as the origin of the event box.
Sometimes an application will want to avoid depending on external data
files, such as image files. GTK+ comes with a program to avoid this,
called “gdk-pixbuf-csource”. This library
allows you to convert an image into a C variable declaration, which
can then be loaded into a GdkPixbuf using
gdk_pixbuf_new_from_inline()
.
void gtk_image_get_icon_set (GtkImage *image
,GtkIconSet **icon_set
,GtkIconSize *size
);
gtk_image_get_icon_set
has been deprecated since version 3.10 and should not be used in newly-written code.
Use gtk_image_get_icon_name()
instead.
Gets the icon set and size being displayed by the GtkImage.
The storage type of the image must be GTK_IMAGE_EMPTY
or
GTK_IMAGE_ICON_SET
(see gtk_image_get_storage_type()
).
image |
a GtkImage |
|
icon_set |
location to store a
GtkIconSet, or |
[out][transfer none][allow-none] |
size |
location to store a stock
icon size (GtkIconSize), or |
[out][allow-none][type int] |
GdkPixbuf *
gtk_image_get_pixbuf (GtkImage *image
);
Gets the GdkPixbuf being displayed by the GtkImage.
The storage type of the image must be GTK_IMAGE_EMPTY
or
GTK_IMAGE_PIXBUF
(see gtk_image_get_storage_type()
).
The caller of this function does not own a reference to the
returned pixbuf.
void gtk_image_get_stock (GtkImage *image
,gchar **stock_id
,GtkIconSize *size
);
gtk_image_get_stock
has been deprecated since version 3.10 and should not be used in newly-written code.
Use gtk_image_get_icon_name()
instead.
Gets the stock icon name and size being displayed by the GtkImage.
The storage type of the image must be GTK_IMAGE_EMPTY
or
GTK_IMAGE_STOCK
(see gtk_image_get_storage_type()
).
The returned string is owned by the GtkImage and should not
be freed.
image |
a GtkImage |
|
stock_id |
place to store a
stock icon name, or |
[out][transfer none][allow-none] |
size |
place to store a stock icon
size (GtkIconSize), or |
[out][allow-none][type int] |
GdkPixbufAnimation *
gtk_image_get_animation (GtkImage *image
);
Gets the GdkPixbufAnimation being displayed by the GtkImage.
The storage type of the image must be GTK_IMAGE_EMPTY
or
GTK_IMAGE_ANIMATION
(see gtk_image_get_storage_type()
).
The caller of this function does not own a reference to the
returned animation.
void gtk_image_get_icon_name (GtkImage *image
,const gchar **icon_name
,GtkIconSize *size
);
Gets the icon name and size being displayed by the GtkImage.
The storage type of the image must be GTK_IMAGE_EMPTY
or
GTK_IMAGE_ICON_NAME
(see gtk_image_get_storage_type()
).
The returned string is owned by the GtkImage and should not
be freed.
image |
a GtkImage |
|
icon_name |
place to store an
icon name, or |
[out][transfer none][allow-none] |
size |
place to store an icon size
(GtkIconSize), or |
[out][allow-none][type int] |
Since: 2.6
void gtk_image_get_gicon (GtkImage *image
,GIcon **gicon
,GtkIconSize *size
);
Gets the GIcon and size being displayed by the GtkImage.
The storage type of the image must be GTK_IMAGE_EMPTY
or
GTK_IMAGE_GICON
(see gtk_image_get_storage_type()
).
The caller of this function does not own a reference to the
returned GIcon.
image |
a GtkImage |
|
gicon |
[out][transfer none][allow-none] | |
size |
place to store an icon size
(GtkIconSize), or |
[out][allow-none][type int] |
Since: 2.14
GtkImageType
gtk_image_get_storage_type (GtkImage *image
);
Gets the type of representation being used by the GtkImage
to store image data. If the GtkImage has no image data,
the return value will be GTK_IMAGE_EMPTY
.
GtkWidget *
gtk_image_new_from_file (const gchar *filename
);
Creates a new GtkImage displaying the file filename
. If the file
isn’t found or can’t be loaded, the resulting GtkImage will
display a “broken image” icon. This function never returns NULL
,
it always returns a valid GtkImage widget.
If the file contains an animation, the image will contain an animation.
If you need to detect failures to load the file, use
gdk_pixbuf_new_from_file()
to load the file yourself, then create
the GtkImage from the pixbuf. (Or for animations, use
gdk_pixbuf_animation_new_from_file()
).
The storage type (gtk_image_get_storage_type()
) of the returned
image is not defined, it will be whatever is appropriate for
displaying the file.
GtkWidget * gtk_image_new_from_icon_set (GtkIconSet *icon_set
,GtkIconSize size
);
gtk_image_new_from_icon_set
has been deprecated since version 3.10 and should not be used in newly-written code.
Use gtk_image_new_from_icon_name()
instead.
Creates a GtkImage displaying an icon set. Sample stock sizes are
GTK_ICON_SIZE_MENU, GTK_ICON_SIZE_SMALL_TOOLBAR. Instead of using
this function, usually it’s better to create a GtkIconFactory, put
your icon sets in the icon factory, add the icon factory to the
list of default factories with gtk_icon_factory_add_default()
, and
then use gtk_image_new_from_stock()
. This will allow themes to
override the icon you ship with your application.
The GtkImage does not assume a reference to the icon set; you still need to unref it if you own references. GtkImage will add its own reference rather than adopting yours.
GtkWidget *
gtk_image_new_from_pixbuf (GdkPixbuf *pixbuf
);
Creates a new GtkImage displaying pixbuf
.
The GtkImage does not assume a reference to the
pixbuf; you still need to unref it if you own references.
GtkImage will add its own reference rather than adopting yours.
Note that this function just creates an GtkImage from the pixbuf. The
GtkImage created will not react to state changes. Should you want that,
you should use gtk_image_new_from_icon_name()
.
GtkWidget * gtk_image_new_from_stock (const gchar *stock_id
,GtkIconSize size
);
gtk_image_new_from_stock
has been deprecated since version 3.10 and should not be used in newly-written code.
Use gtk_image_new_from_icon_name()
instead.
Creates a GtkImage displaying a stock icon. Sample stock icon
names are GTK_STOCK_OPEN, GTK_STOCK_QUIT. Sample stock sizes
are GTK_ICON_SIZE_MENU, GTK_ICON_SIZE_SMALL_TOOLBAR. If the stock
icon name isn’t known, the image will be empty.
You can register your own stock icon names, see
gtk_icon_factory_add_default()
and gtk_icon_factory_add()
.
GtkWidget *
gtk_image_new_from_animation (GdkPixbufAnimation *animation
);
Creates a GtkImage displaying the given animation. The GtkImage does not assume a reference to the animation; you still need to unref it if you own references. GtkImage will add its own reference rather than adopting yours.
Note that the animation frames are shown using a timeout with G_PRIORITY_DEFAULT. When using animations to indicate busyness, keep in mind that the animation will only be shown if the main loop is not busy with something that has a higher priority.
GtkWidget * gtk_image_new_from_icon_name (const gchar *icon_name
,GtkIconSize size
);
Creates a GtkImage displaying an icon from the current icon theme. If the icon name isn’t known, a “broken image” icon will be displayed instead. If the current icon theme is changed, the icon will be updated appropriately.
icon_name |
an icon name or |
[nullable] |
size |
a stock icon size (GtkIconSize). |
[type int] |
Since: 2.6
GtkWidget * gtk_image_new_from_gicon (GIcon *icon
,GtkIconSize size
);
Creates a GtkImage displaying an icon from the current icon theme. If the icon name isn’t known, a “broken image” icon will be displayed instead. If the current icon theme is changed, the icon will be updated appropriately.
Since: 2.14
GtkWidget *
gtk_image_new_from_resource (const gchar *resource_path
);
Creates a new GtkImage displaying the resource file resource_path
. If the file
isn’t found or can’t be loaded, the resulting GtkImage will
display a “broken image” icon. This function never returns NULL
,
it always returns a valid GtkImage widget.
If the file contains an animation, the image will contain an animation.
If you need to detect failures to load the file, use
gdk_pixbuf_new_from_file()
to load the file yourself, then create
the GtkImage from the pixbuf. (Or for animations, use
gdk_pixbuf_animation_new_from_file()
).
The storage type (gtk_image_get_storage_type()
) of the returned
image is not defined, it will be whatever is appropriate for
displaying the file.
Since: 3.4
GtkWidget *
gtk_image_new_from_surface (cairo_surface_t *surface
);
Creates a new GtkImage displaying surface
.
The GtkImage does not assume a reference to the
surface; you still need to unref it if you own references.
GtkImage will add its own reference rather than adopting yours.
Since: 3.10
void gtk_image_set_from_file (GtkImage *image
,const gchar *filename
);
See gtk_image_new_from_file()
for details.
void gtk_image_set_from_icon_set (GtkImage *image
,GtkIconSet *icon_set
,GtkIconSize size
);
gtk_image_set_from_icon_set
has been deprecated since version 3.10 and should not be used in newly-written code.
Use gtk_image_set_from_icon_name()
instead.
See gtk_image_new_from_icon_set()
for details.
void gtk_image_set_from_pixbuf (GtkImage *image
,GdkPixbuf *pixbuf
);
See gtk_image_new_from_pixbuf()
for details.
void gtk_image_set_from_stock (GtkImage *image
,const gchar *stock_id
,GtkIconSize size
);
gtk_image_set_from_stock
has been deprecated since version 3.10 and should not be used in newly-written code.
Use gtk_image_set_from_icon_name()
instead.
See gtk_image_new_from_stock()
for details.
image |
a GtkImage |
|
stock_id |
a stock icon name |
|
size |
a stock icon size (GtkIconSize). |
[type int] |
void gtk_image_set_from_animation (GtkImage *image
,GdkPixbufAnimation *animation
);
Causes the GtkImage to display the given animation (or display
nothing, if you set the animation to NULL
).
void gtk_image_set_from_icon_name (GtkImage *image
,const gchar *icon_name
,GtkIconSize size
);
See gtk_image_new_from_icon_name()
for details.
image |
a GtkImage |
|
icon_name |
an icon name or |
[nullable] |
size |
an icon size (GtkIconSize). |
[type int] |
Since: 2.6
void gtk_image_set_from_gicon (GtkImage *image
,GIcon *icon
,GtkIconSize size
);
See gtk_image_new_from_gicon()
for details.
Since: 2.14
void gtk_image_set_from_resource (GtkImage *image
,const gchar *resource_path
);
See gtk_image_new_from_resource()
for details.
void gtk_image_set_from_surface (GtkImage *image
,cairo_surface_t *surface
);
See gtk_image_new_from_surface()
for details.
Since: 3.10
void gtk_image_set_pixel_size (GtkImage *image
,gint pixel_size
);
Sets the pixel size to use for named icons. If the pixel size is set
to a value != -1, it is used instead of the icon size set by
gtk_image_set_from_icon_name()
.
Since: 2.6
struct GtkImage;
This struct contain private data only and should be accessed by the functions below.
Describes the image data representation used by a GtkImage. If you
want to get the image from the widget, you can only get the
currently-stored representation. e.g. if the
gtk_image_get_storage_type()
returns GTK_IMAGE_PIXBUF, then you can
call gtk_image_get_pixbuf()
but not gtk_image_get_stock()
. For empty
images, you can request any storage type (call any of the "get"
functions), but they will all return NULL
values.
|
there is no image displayed by the widget |
||
|
the widget contains a GdkPixbuf |
||
|
the widget contains a stock item name |
||
|
the widget contains a GtkIconSet |
||
|
the widget contains a GdkPixbufAnimation |
||
|
the widget contains a named icon. This image type was added in GTK+ 2.6 |
||
|
the widget contains a GIcon. This image type was added in GTK+ 2.14 |
||
|
the widget contains a cairo_surface_t. This image type was added in GTK+ 3.10 |
“file”
property“file” gchar *
Filename to load and display.
Flags: Read / Write
Default value: NULL
“gicon”
property“gicon” GIcon *
The GIcon displayed in the GtkImage. For themed icons, If the icon theme is changed, the image will be updated automatically.
Flags: Read / Write
Since: 2.14
“icon-name”
property“icon-name” gchar *
The name of the icon in the icon theme. If the icon theme is changed, the image will be updated automatically.
Flags: Read / Write
Default value: NULL
Since: 2.6
“icon-set”
property“icon-set” GtkIconSet *
Icon set to display.
GtkImage:icon-set
has been deprecated since version 3.10 and should not be used in newly-written code.
Use “icon-name” instead.
Flags: Read / Write
“icon-size”
property“icon-size” gint
Symbolic size to use for stock icon, icon set or named icon.
Flags: Read / Write
Allowed values: >= 0
Default value: 4
“pixbuf-animation”
property“pixbuf-animation” GdkPixbufAnimation *
GdkPixbufAnimation to display.
Flags: Read / Write
“pixel-size”
property“pixel-size” gint
The "pixel-size" property can be used to specify a fixed size
overriding the “icon-size” property for images of type
GTK_IMAGE_ICON_NAME
.
Flags: Read / Write
Allowed values: >= -1
Default value: -1
Since: 2.6
“resource”
property“resource” gchar *
A path to a resource file to display.
Flags: Read / Write
Default value: NULL
Since: 3.8
“stock”
property“stock” gchar *
Stock ID for a stock image to display.
GtkImage:stock
has been deprecated since version 3.10 and should not be used in newly-written code.
Use “icon-name” instead.
Flags: Read / Write
Default value: NULL
“storage-type”
property“storage-type” GtkImageType
The representation being used for image data.
Flags: Read
Default value: GTK_IMAGE_EMPTY
“use-fallback”
property“use-fallback” gboolean
Whether the icon displayed in the GtkImage will use
standard icon names fallback. The value of this property
is only relevant for images of type GTK_IMAGE_ICON_NAME
and GTK_IMAGE_GICON
.
Flags: Read / Write
Default value: FALSE
Since: 3.0


Forms: forms.html
This is some content which I want to appear on
two lines.
This is a second paragraph with a neat horizontal ruled line underneath.
This paragraph has some fancy bold, italic,
underlined and struck through text.
This is an unordered list of my favourite foods:
This is an ordered list of the tallest trees in the world:
Wish you were here?
| Name | Age | Gender |
|---|---|---|
| Rob | 33 | Male |
| Kirsten | 34 | Female |
| Tom | 3 | Male |


GE Appliances
GE Appliances Cafe SCAA Coffee Maker
Usability | Interaction Design | Internship
Salesforce
Salesforce Design Challenge: MarketingLand
Experience Design | Experimental | Illustration
GE Appliances
GE Appliances 2021 Washer Stain Removal
Interaction Design | Experience Design | UI
CHI 2019
CHI 2019 Student Design: Sketchicon
Interaction Design | Experimental | User Research
Kejian VR
Kejian VR: Interactive Video UI
UI | Interaction Design Visual Design
Personal Project
Emot: Workspace Communication
User Research | Interaction Design | UI | Visual Design
Qizhi Security
Qizhi Access Security UI
UI | Interaction Design | Visual Design
Personal Project
2019 Illustration Collection
Illustration


The PollyVote method predicted the candidate's final vote shares in the last three U.S. presidential elections with little error. The following table shows the predicted and actual results of the two-party popular vote.
| YEAR | WINNER | ACTUAL RESULT | FINAL FORECAST | 1 MONTH BEFORE ELECTION | 3 MONTHS BEFORE ELECTION |
|---|---|---|---|---|---|
| 2012 | 52.0% | 51.3% prediction error -0.7 | 52.1% prediction error +0.1 | 52.4% prediction error +0.4 | |
| 2008 | 53.7% | 53.9% prediction error +0.2 | 52.8% prediction error −0.9 | 52.7% prediction error -1 | |
| 2004 | 51.2% | 51.5% prediction error +0.3 | 52.1% prediction error +0.9 | 50.3% prediction error -0.9 |


The Band Has Made Multiples Concerts 1 / 4 Their First Tour Back in 2001 2 / 4 At Live 2003 2 / 4 At The Twisted Tour in 2006 2 / 4 At the VIV Tour in 2009 ❮ ❯


"{{measurementName}}" Current Resistances:
Resistance
Value [kΩ]
Description
{{resistance.name}}
{{resistance.value}}
{{resistance.description}}
Unassign from Measurement
There is not any resistance assigned to the measurement: {{measurementName}}
Resistances ready to assign:
Resistance
Value [kΩ]
Description
{{resistance.name}}
{{resistance.value}}
{{resistance.description}}
Assign to the Measurement
There is not any resistance ready to assign


32
1 Look, a king will reign in righteousness, and princes will rule in justice.
2 Each one will be like a shelter from the wind and a refuge from the storm,
like streams of water in a dry place, like the shade of a great rock in a land of weariness.
3 Then the eyes of those who see will not be dim, and the ears of those who hear will hear attentively.
4 The rash will think carefully with understanding, and the stutterer will speak distinctly and with ease.
5 The fool will no longer be called honorable, nor the deceiver called principled.
6 For the fool speaks folly, and his heart plans evil
and godless actions, and he speaks wrongly against Yahweh.
He makes the hungry empty, and the thirsty he causes to lack drink.
7 The deceiver's methods are evil. He devises wicked schemes
to ruin the poor with lies, even when the poor say what is right.
8 But the honorable man makes honorable plans; and because of his honorable actions he will stand.
9 Rise up, you women who are at ease, and listen to my voice;
you carefree daughters, listen to me.
10 For in a little more than a year your confidence will be broken,
you carefree women, for the grape harvest will fail, the ingathering will not come.
11 Tremble, you women who are at ease; be troubled, you confident ones;
take off your fine clothes and make yourselves bare; put on sackcloth around your waists.
12 You will wail for the pleasant fields, for the fruitful vines.
13 The land of my people will be overgrown with thorns and briers,
even in all the once joyful houses in the city of revelry.
14 For the palace will be forsaken, the crowded city will be deserted;
the hill and the watchtower will become caves forever,
a joy of wild donkeys, a pasture of flocks;
15 until the Spirit is poured on us from on high,
and the wilderness becomes a fruitful field, and the fruitful field is considered as a forest.
16 Then justice will reside in the wilderness; and righteousness will live in the fruitful field.
17 The work of righteousness will be peace; and the result of righteousness, quietness and confidence forever.
18 My people will live in a peaceful habitation, in secure homes, and in quiet resting places.
19 But even if it hails and the forest is destroyed, and the city is completely annihilated,
20 you who sow beside all the streams will be blessed, you who who send out your ox and donkey to graze.


Arguably the most important section in the configuration file. This is the section that specifies your manuscript files. The order in which you specify them will form the spine of the book.
All fields that belong to this section have information that goes into the eBook.
[book]
enabled = true,
theme = "generic",
frontmatter = [],
chapters = [],
backmatter = []
There is a lot to be said about each field, and it is best tackled in their own section.
This field dictates if Little Webby Press should generate an eBook for you. Some authors might have books generated using other tools and still want to use Little Webby Press to generate the Website for them. By setting this value to false
, they’re able to bypass book generation and just create a Website.
The default behavior is to generate the eBook. You only need to touch this field if your intention is to disable it.
enabled = true
Which theme should be used to generate your eBook. At the moment we only have one theme called generic. In the near future we plan to have more themes, and also a way for you to override our theme selection and provide your own. Right now, you should simply ignore this field.
theme = "generic"
Those two sections behave exactly the same, but one is put before the book chapters, and the other after them.
Frontmatter and backmatter are what computer scientists call an Array. This is fancy speak, and the way you can understand them is as a collection of stuff. In our case they’re a collection of files. So when you write down any of these sections, you do so by writing a collection of files that are part of that section.
fontmatter = [
"copyright.md",
"praise-for-the-book.md",
"acknowledgements.md"
]
and
backmatter = [
"bio.md",
"contact.md",
"other-works.md"
]
A collection is placed between square brackets and each item is quoted and separated from each other using commas. You could write them all in a single line but writing each item in their own line makes it easier to remove items and to reorder them.
Most eReaders will not place frontmatter or backmatter in the table of contents for the book. Readers will still be able to read them as they flip through the pages. Also, many eReaders will open a book in the first chapter and not in the frontmatter. This is a reason why many authors prefer to add things to the backmatter than the frontmatter, usually leaving it with only the copyright notice.
Finally! This is the most important section in the whole configuration!
It took us a while to arrive to this section, this is where you specify the files that make up your book. Be aware that even though the field is called chapters, the relationship between one file and one chapter is arbitrary and there is nothing preventing you from breaking your chapters into multiple files. The field is called chapters because all the files inside this collection will be what ends up being your book’s chapters.
chapters = [
"001-life-is-good.md",
"002-life-still-good-but-other-pov.md",
"003-shit-happens.md",
"004-accepting-the-shit-is-hard.md",
"005-mentor-appears.md",
"006-mentor-teaches-shit-acceptance.md",
"007-heroine-is-one-with-the-shit.md",
"008-heroine-faces-harder-shit.md",
"009-heroine-cannot-take-any-more-shit.md",
"010-the-important-shit-is-friendship.md",
"011-friends-get-their-shit-together.md",
"012-friends-overcome-final-shit.md",
"013-life-is-good-and-we-have-changed.md"
]
Those among you that know your storycraft will recognize the hero’s journey (or the story circle, or…) in the example above.
The Table of Contents is specified by the information in another section. All that frontmatter, backmatter, and chapters specify is what content files belong to your book and their order.
If you have Markdown files in your manuscript folder, but you don’t place them in any of these collections, they won’t be processed or appear in your book.
If you have Markdown file names in your collections that don’t actually exist on your manuscript folder, the book generation will break because of the missing file. Only add files to these collections after you have created them.


Would be nice to see top 3 players for each category in the platoon top players stats page, instead of 1. This would be really handy especially for larger platoons, but nice addition for smaller ones too.
Adding new stats to the top players table would also be welcome, such as: over all score per minute (not class) / k/d ratio / number 1 positions. Right now the top players table if filled with some less relevant stats.
BrainFooLong
Administrator
After some tests i dont think its possible or possible with many requests.
Rejected.


Solar Lantern : Solar powered lantern with solar panel & LED lights.
300watts Solar Panel: Solar panel, charger controller, powerful inverter and battery.
Complete Solar Light: Solar panel, Solar battery, Inverter, 3 LED lights.
Street Light: Solar powered street light. Good for home compound.
800 Watts Solar Panel: Powerfull Solar panel for all domestic purposes.
Portable Light: 2 Pack - Sunking Boom Solar Kit With Radio Mp3 Player.
Wall Light: Solar light for gates and fence walls of home.
Megasun Flat Plate: Solar hot water system provide excellent performance.
Solar Battery: Rechargable Solar longlife battery for domestic use.
Solar Lamp: DAT Solar Rechargeable Solar Lantern
iGlow One: Sollatek Solar LED Lantern with Reading Light.
Solar Water Heater: 300L Pressurized SEVEN SS STARS solar water heater.
| Product Name | Size | Quantity | Price | ||
|---|---|---|---|---|---|
| Your cart is empty! |
Total Price: Ksh 0


---
sort_order: 20
tei_id: rdx_191dd.p.idp3577888
annotation_count: 0
images:
small-thumbnail: https://readux.ecds.emory.edu/books/emory:191dd/pages/emory:rfcsz/mini-thumbnail/
json: https://readux.ecds.emory.edu/books/emory:191dd/pages/emory:rfcsz/info/
full: https://readux.ecds.emory.edu/books/emory:191dd/pages/emory:rfcsz/fs/
page: https://readux.ecds.emory.edu/books/emory:191dd/pages/emory:rfcsz/single-page/
thumbnail: https://readux.ecds.emory.edu/books/emory:191dd/pages/emory:rfcsz/thumbnail/
title: Page 20
number: 20
---
{% raw %}20 THE LAND-CLAIM.{% endraw %}
{% raw %}The child was not used to argument, nor to express her{% endraw %}
{% raw %}own convictions very often; therefore she gave for answer{% endraw %}
{% raw %}not words indeed, but such a look of touching appeal as was{% endraw %}
{% raw %}better than a whole chapter of logic, Allen felt his heart{% endraw %}
{% raw %}give a great bound in answer to it.{% endraw %}
{% raw %}" If you wUI let us fill your basket with berries, and go{% endraw %}
{% raw %}home contented with our peaceable intentions, I think I may{% endraw %}
{% raw %}promise you a happy settlement of the present difficulties.{% endraw %}
{% raw %}What do you say. Doctor ?"{% endraw %}
{% raw %}" That I shall be very happy to help bring about the{% endraw %}
{% raw %}promised settlement."{% endraw %}
{% raw %}Thus urged, the young girl complied pleas.antly. She{% endraw %}
{% raw %}secretly thought, besides, that delay was in this case not{% endraw %}
{% raw %}" dangerous," but, on the contrary, might ]3rove a means of{% endraw %}
{% raw %}conciliation, by giving her father time to cool his anger, iu{% endraw %}
{% raw %}the bright morning air. Cheered by this hope, her native{% endraw %}
{% raw %}graciousness of manner returned to her, and she received the{% endraw %}
{% raw %}heaped up basket with mirthful thanks.{% endraw %}
{% raw %}" Good-morning now, Jliss Newcome," Allen had replied;{% endraw %}
{% raw %}" perhaps your fitther may invite me home with him, to help{% endraw %}
{% raw %}eat them."{% endraw %}
{% raw %}"I hope he ni.ay," was the fervent rejoinder; the echo of{% endraw %}
{% raw %}which answer rung iu Allen's ears, and lit, also, a half-conscious{% endraw %}
{% raw %}blush on the cheek of the fair child herself, as she remembered{% endraw %}
{% raw %}her father's taunts of the previous evening, and feared she had{% endraw %}
{% raw %}been too forward in conversing with these strangers.{% endraw %}
{% raw %}In a somewhat altered mood, the young men proceeded on{% endraw %}
{% raw %}their morning walk, .and arrived at the disputed boundary in{% endraw %}
{% raw %}time to find their stakes already removed, and new ones{% endraw %}
{% raw %}placed where they cut off a valuable portion of their claim.{% endraw %}
{% raw %}This alteration prevented their prairie and timber land from{% endraw %}
{% raw %}joining, as it did before, and spoiled the shapeliness of the{% endraw %}
{% raw %}claim. The first impulse of either was a disposition to fight{% endraw %}
{% raw %}it out by force, if necessary—for they had the claim-laws on{% endraw %}
{% raw %}their side— but, upon remembering their promise to the timid{% endraw %}
{% raw %}chUd they nad just parted from, a better resolution replaced{% endraw %}
{% raw %}the promptings of passion.{% endraw %}
{% raw %}"All we can do iu the premises," said Allen, "is to pull up{% endraw %}
{% raw %}these stakes, as Newcome has done, and put them back iu{% endraw %}
{% raw %}their former places."{% endraw %}


I have a problem when installing emoncms on a Raspberry Pi.
With the creation of "settings" file with "$ cp default.settings.php settings.php" gives the pi this message "cp: cannot create regular file `settings.php': Permission denied".
How do I set the permissions to this file or dir, so I can create it. I did the installation 3 times and always the same problem. What did I wrong.
Installation on Pi
Submitted by Elektitus on Fri, 23/11/2012 - 09:46»
Re: Installation on Pi
Have you tried 'sudo' before the command? See step 1: http://wiki.openenergymonitor.org/index.php?title=Raspberry_Pi#RFM12BPi_Setup
Re: Installation on Pi
Hello!
Maybe you (the PI user) has insuffifficent rights, so you can try to copy the files with root rights:
Try: "sudo cp default.settings.php settings.php"
If you are facing such problems again try to add "sudo " before the command to execute it with root rights.
Re: Installation on Pi
Hi
Are you following the instructions exactly and cutting and pasting the commands?
could it be these steps?
cd /var/
sudo chown pi www
cd www
I have just followed the instructions exactly and it worked for me.
It was my second attempt so I probably missed out a step the first time as I am using a tiny old monitor which makes the web instructions difficult to see. I kept the web open in one window and a terminal in the other. I had to fiddle the terminal settings so I could see the full page.
Regards
Ian
Re: Installation on Pi
If you step back up the page to this section ... 7) Download Emoncms
there's the command
which changes the ownership of the directory www to the user pi.
(All the instructions assume that you are logging in as user pi)
If you want to check which user you are logged in as you can use the command.
Assuming you are logged in as pi, if you check who owns the directory by:
the list that comes up, the first column of "names" most of which should be "root" list who owns the directory. This is the line that I see for the www directory
drwxr-xr-x 3 pi root 4096 Nov 11 21:33 www
If this isn't similar to what you see, you can run the command again, but will now need to also change the ownership of all the files you then copied in (the emoncms directory)
fortunately you can do this with one command ;-)
$ sudo chown -R pi www
This changes the ownership of the www directory to pi, and then does the same for all files recursively (-R)
Re: Installation on Pi
I have to politely disagree with the 2 suggestions to use sudo to copy the file
Sudo is the unix equivalent of using a sledgehammer to crack a nut.
Whilst it will allow you to copy the file, the file will end up with the wrong ownership and therefore permissions, which could easily cause something further down the line to break.
Copying a file using sudo ends up with the file being owned by root and not being able to be written to by the user pi. The very next line is for the user pi to edit that file.
Re: Installation on Pi
Problem solved. Thanks for the fast reply. I had to change the ownership of the www directory to pi. Thanks to Ukmoose.


Sign in using your NHSmail address
You should have an NHSmail address. It might look like one of these examples:
<EMAIL_ADDRESS>or<EMAIL_ADDRESS>You can use either your NHSmail address, or the one for your pharmacy.
You'll need access to your NHSmail address - we will send a code now to enter at the next step.
If you don't have an NHSmail address, your organisation can join now - it doesn't take long, visit https://portal.nhs.net/Help/joiningnhsmail


Mr sniffles
Home
About Me
Contact Me
Here are my projects I have completed
This is the logo for my YouTube channel
This was the first site
Shoot game
This was the first bare bones game
Interactive Comic
This is my interactive comic


Contact Us
Our Address
Vijaya Raghava Rd, Thirumurthy Nagar, Parthasarathi Puram, T. Nagar, Chennai, Tamil Nadu 600017 Telephone:<PHONE_NUMBER> Email id<EMAIL_ADDRESS>This section comes with Accordion tabs for different questions and answers about RocknRoll Cafe. Thank you.
Yes, up to 10 Gift Cards during a transaction on www.rocknrollcafe.co.in.To purchase larger quantities, contact RRcafe corporate at<EMAIL_ADDRESS>Electronic Voucher is valid for 6 months from date of issuance.
Paper Voucher validity is fixed and is mentioned on voucher back side. Thank you.
In case of queries customer can write at G-RRcafe_GV@jublfood.com


Assume we are writing out a 100x100 2D array of double
precision floating point numbers that is
distributed among 4 processes such that each process has a block of
25 columns (e.g., process 0 has columns 0-24, process 1 has columns
25-49, etc.; see Figure 28
).
To create the filetypes for each process one could
use the following C program
(see Section Subarray Datatype Constructor
on
page Subarray Datatype Constructor
):
double subarray[100][25]; MPI_Datatype filetype; int sizes[2], subsizes[2], starts[2]; int rank; MPI_Comm_rank(MPI_COMM_WORLD, &rank); sizes[0]=100; sizes[1]=100; subsizes[0]=100; subsizes[1]=25; starts[0]=0; starts[1]=rank*subsizes[1]; MPI_Type_create_subarray(2, sizes, subsizes, starts, MPI_ORDER_C, MPI_DOUBLE, &filetype);Or, equivalently in Fortran:
double precision subarray(100,25) integer filetype, rank, ierror integer sizes(2), subsizes(2), starts(2) call MPI_COMM_RANK(MPI_COMM_WORLD, rank, ierror) sizes(1)=100 sizes(2)=100 subsizes(1)=100 subsizes(2)=25 starts(1)=0 starts(2)=rank*subsizes(2) call MPI_TYPE_CREATE_SUBARRAY(2, sizes, subsizes, starts, & MPI_ORDER_FORTRAN, MPI_DOUBLE_PRECISION, & filetype, ierror)The generated filetype will then describe the portion of the file contained within the process's subarray with holes for the space taken by the other processes. Figure 29 shows the filetype created for process 1.


Combine datasets from all subdomains of fire science (e.g., active fires, burned area, atmospheric chemistry, fire emissions) to advance the science to track individual fires, estimate fire emissions, and forecast fire risk.
- OVERVIEW OF PILOT
– SEE CASE STUDIES & JUPYTER NOTEBOOKS


@* * This template is called from the `index` template. This template * handles the rendering of the page header and body tags. It takes * two arguments, a `String` for the title of the page and an `Html` * object to insert into the body of the page. *@ @(userOpt: Option[domains.User])(content: Html)
@* Here's where we render the page title `String`. *@


{% extends "base.html" %} {% block title %}The Blue Alliance - Add Match Video{% endblock %} {% block meta_description %}Add match videos to The Blue Alliance.{% endblock %} {% block inline_javascript %} {% endblock %} {% block content %}
Added {{ num_added }} new suggestions. We'll review them and get them added to the site soon!
Thanks for helping make The Blue Alliance better! Let us know about videos so we can add them to the site!
Enter the "match id" for the various videos in the playlist you want to suggest to The Blue Alliance. A valid match id consists of <Match Type Abbreviation>m<Match Number>
. Leave the field blank if you do not wish to submit the video as a suggestion or if it is not a match video (e.g. award ceremony).
The following are examples of match type abbreviations: q, qf1, sf2, f1
Below are some examples of valid match ids:


Titanium Release Uploader
Release Type:
SDK Distribution
Runtime Bundle
Module Bundle
Release OS:
Choose one..
Mac OSX
Windows
Linux
Build type:
Choose an OS
Distribution Files:
Upload Password:
Upload


Situated on the easternmost part of the East Anglian coast, Great Yarmouth is a busy commercial port. However, through the river Yare, it provides access to a facinating maze of inland waterways, called The Norfolk Broads. Most of this area can be accessed by masted boats as nearly all the bridges are swing or lifting ones.
Inbound vessels should contact Port Operations on VHF Channel 12 prior to approaching the entrance to request clearance to enter.
There is no anchoring in the river, nor berthing for small craft in the outer harbour. When approaching the port, listen out on VHF channel 12 for information on large ship movements. Beware of strong tidal flow in the river as it can run at 4 to 5 knots.
Berthing
Moorings are available on Hall Quay, just south of Haven Bridge on the East side of the river (opposite the red brick Town Hall building). Mooring tails are in place to aid mooring from the vessel. Vessels should moor adjacent to the access ladders. Minimum depth is 3m at MLWS. Make adequate allowance for the tide when arriving on the flood and ensure that you are not set up river towards the Haven Bridge.
These berths are close to the Town Centre. A five minute walk along Regent Road will take you to the Market Place.
The Broads can be accessed via the Haven and Breydon Bridges. Call Yarmouth Radio
on VHF channel 12 before passing through the Haven Bridge.


On installation, users can explore and work with Sunbird. The installation process takes care of the default minimum configuration required to run Sunbird. However, if you want to customize your instance of Sunbird, it is simple. Modify default behaviour or the look and feel by overriding the default values of environment variables as mentioned in the following table. For example, you can change the default logo to the logo of your choice, or change the default email address to your preferred email address.
Note: If you have not installed Sunbird, refer to Server Installation
| S No. | Variable Name | Description| Purpose | Default Value |Path |
|——-|———–|———|———|—————|————-|
| 1 | sunbird_mail_server_from_email | The default communication email address | If set, user will get an email from the set email address | no default | Sunbird-LMS |
| 2 | sunbird_env_logo_url | public access image url | used to sent in email as logo | no default | Sunbird-LMS |
| 3 | sunird_web_url | The URL of the home page | This URL is shared in an email such that the users are able to login | no default | Sunbird-LMS |
| 4 | sunbird_app_url | Th URL of Sunbird app in Play store | This Sunbird app URL is shared in an email such that users are able to download the app | no default | Sunbird-LMS |
| 5 | sunbird_msg_sender | The name of the SMS sender | This is the name that will appear on users screen in case an SMS is sent from the system | no default | Sunbird-LMS |
| 6 | sunbird_installation_email | This is the email address used for badger system | This email is used for notifying the users while they install badger system | no default | Sunbird-LMS |
| 7 | sunbird_installation | The name of your instance | Used to send telemetry and also for sending email. Spaces are not allowed in the name e.g: “Sunbird Dev”, instead use “SunbirdDev” | no default | Sunbird-LMS |
| 8 | sunbird_encryption_key | This is the key to encrypt and decrypt the attribute | The key is used to to encrypt and decrypt the attribute, once set then it should not be changed | no default | Sunbird-LMS |
| 9 | sunbird_default_channel | Create a rootOrg in system and add the channel here | This is used to associate user with the rootOrg | each installer need to put it. | Sunbird-LMS |
| 10 | sunbird_sso_publickey | To validate JWT token generated by Keycloak | It is used to authenticate a user | Need to get the key from keycloak (realm->keys->public keys) | Sunbird-LMS |
| 11 | telemetry_pdata_id | …service | …service ex: dev.sunbird.learning.service | | Sunbird-LMS |
| 12 | telemetry_pdata_pid | Producer ID of the telemetry | It is the producer ID of the telemetry, e.g: actor-service | | Sunbird-LMS |
| 13 | telemetry_pdata_ver | Producer version or buid version which generates the telemetry | Represents the producer version or buid version which generates the telemetry, e.g.: 1.5 | | Sunbird-LMS |
| 14 | telemetry_local_storage_type | Location to store the telemetry data | The location for storing the telemetry data is only kafka | kafka | Sunbird-telemetry-service |
| 15 | telemetry_kafka_broker_list | IP address and ports of kafka | Kafka connection details, -
| S No. | Variable Name | Description | Purpose | Default Value | Path |
|---|---|---|---|---|---|
| 1 | ekstep_telemetry_storage_toggle | Toggle to make telemetry storage on and off for ekstep | It turns the telemetry off or on | on | Sunbird-LMS |
| 2 | sunbird_external_content_whitelisted_domains | To store the whitelisted domains comma seperated | It stores the white listed domains | youtube.com | Sunbird-portal |
| S No. | Variable Name | Description | Purpose | Default Value | Path |
|---|---|---|---|---|---|
| A1 | B1 | C1 | |||
| A2 | B2 | C2 | |||
| A3 | B3 | C3 |
| S No. | Variable Name | Description | Purpose | Default Value | Path |
|---|---|---|---|---|---|
| A1 | B1 | C1 | |||
| A2 | B2 | C2 | |||
| A3 | B3 | C3 |


Algerian protesters rally against presidential campaign
Algerian protesters say the country’s December presidential elections will not be fair.
Their reactions follow the launch of the presidential campaign by five Algerian candidates on Sunday.
 The people are the ones to decide when and how to organise an election”, an angry protester said
“People are against elections held this way, we have been protesting for nine months to say no to the gangs, no elections with the gangs”, a protester said.
The ‘Hirak’ opposition movement has said it will not support any election until more senior government officials step down. The movement emerged this year from weekly mass protests. They have been demanding the ruling hierarchy quits power.
The five candidates have close links with the institution and despite some of them pushing for reforms, they are seen as part of the ruling elite.
Reuters


The following visualization analyzes the green levels from 5,492 satellite images in order to see the relationship between vegetation, agricultural subsidies, GDP and productivity in Malawi, Africa.
It was created under the advisement of the UNDP Regional Bureau for Africa and with the use of Google Earth Engine.
This will eventually be an exploratory tool useful for policymakers which includes all sub-Saharan Africa.


During this last weekend, we (Rafael, Gabriel and João Vitor) participated in the GGJ 2014. It was super fun and creative... And insane.
I'll be talking a little bit about the feeling of creating a game in two days and, perhaps, give some tips to other people who are willing to participate on such event (like Ludum Dare, as well). I'm not sure about the other guys, so I'll be talking on my (Rafael's) perspective.
I didn't know what to expect from the event. I was just anxious cause I've never actually finished a game, and suddenly I needed to make one from scratch in only two days. So on the week before, I spent almost all of my time reading blogs and preparing my codelibrary of code so nothing would be wrong on the technical side (as if that is possible.)
Arriving at the event, we watched some lectures about tips on surviving the event, which were really useful. After that, the theme was sent to us: "We don't see things as they are, we see them as we are."
And that was it, we were kicked off to grab our keys for lockers to keep our stuff. We took the time to meet other people and talk about the theme. We even found the music composer of the 8bit world of the latest Intel game.
After that, we didn't really know where to start. So we just went to our lockers, separated the necessary material, found a room, and went on to the brainstorm!
After almost two hours of discussion. We decided to gather the theme around a little happy kid with cancer and change the environment depending of the mood of the child. Put in mind that we changed the concept and removed/added things a lot.
It was basically 9pm when we started the actual work. Gabriel (designer) started working on the art of the character while I (programmer) started the basic physics of the world and map creation. By around 8am (yes, 11h of coding), we had a system for creating maps and character animation. It took me long to do those things 'cause I was using LibGDX, even though this is a great tool for creating games, you have to be very proficient and creative to code the games. Cause the only way to create games with this tool is by using CODE. (Is there another way?)
When it was around 10am, I decided to take some sleep. Gabriel slept around 6am to 8am. After I woke up, around 12am, we had lunch and discussed a bit more about the event and the game we were making. I was particularly worried that I would actually not finish the game.
When we got back, we worked on the level design of the game and started adding new stuff to it, in general. We had to cut several mechanics that we wanted to have in the game.
When the event was almost done, we didn't have an actual game. What we had was an interactive concept for a future game. And we are going to work on this beautiful concept throghout the future months and hope you'll enjoy it.
In general, the Global Game Jam is an event for everyone. In fact, the GGJ is an event for everyone who wants to create something. Know how to program? Draw? Paint? Digitally draw or paint? Compose music? Write about stuff? Then the Global Game Jam is for you. I highly recommend it to the creative minds. It doesn't actually matter if you think your game will "suck". Just go to the event, meet new people, learn other stuff. More than fourteen thousand people participated of the jam, do you really think that they are all professional game creators?
I thought I was not going to be able to create anything on the jam, but the event surprised me, gathering creative people under the same roof and pushing themselves to the limit. This event also showed me what I want to do for my entire life, 'cause creating something in this two days and not feel tired at all is an amazing feeling.
I think I'll be taking Ludum Dares while I still need to wait another year for the next GGJ.
I'd like to thank João Vitor, Sarah Moraes, Bettina Calmon (main theme) and Leonardo (my brother) for the support on the event... And not forget Lizzi Cloverman, for the ending theme
Silver Lining
Here we have a picture of Gabriel (designer) sleeping with his monitor (it's not his monitor, btw):
My Precious


User Verification
{{if .Success}} The user account {{.Name}} was successfully verified. You may now login! {{else if .VerificationResent}} The verification was resent for {{.Name}} to {{.Email}}. {{else}}
An error occured:
{{.Reason}} {{end}}


Weekly Meeting: 2013-05-28
28 May 2013: Build pain reduced to mild ache, Try Mirage, Benchmarking available
Agenda
- Build progress since last week
- Exploring a Try Mirage site for launch
- Benchmarking progress with Core_bench
Attendees: Balraj Singh, Anil Madhavapeddy, Amir Chaudhry, David Sheets, Jonathan Ludlam, Thomas Gazagnaire, Prashanth Mundkur, Vincent Bernardoff, Mike McClurg, Daniel Buenzli
Build update
Dave: An obuild 0.0.2 snapshot has been uploaded to OPAM that fixed lots of bugs and is generally very usable.
Anil: we would like to use Jenga in Real World OCaml, but it’s still not portable to the Mac (there is ongoing work in ocaml-plugin to make this work there).
Thomas: ocp-build is working nicely but not well-documented due to lack of time. The front end isn’t great but it’s designed to be generated from other tools (Fabrice is willing to improve it). We would like input on what is required would not be difficult to adapt it.
Anil: One nice feature of Mirari is that dependencies can be auto-installed during the configure phase. We like OPAM to understand build a bit more and automate things more easily in the longer-term. e.g Parse OASIS file and generate meta files. Jenga doesn’t have that.
Thomas: We need something more concrete in the build space, or we won’t make progress.
Anil: We’re driven by the 1.0 deadlie in July at the moment, and can then take some breathing room to work on the longer term solution. Sounds like it comes down to OASIS being ok for now, and Mirari being an interface to the application construction. (general agreement from the room)
Try Mirage
Anil: Many people want to try Mirage, but blocked by not having Xen installation handy. Can we figure out a way to expose a machine for people to build quickly (e.g. for few mins), or is this too painful? We can seed this effort from the Lab (but do actually need the machines for research).
Dave Scott: possible to find VMs, but hosting within Citrix firewall is problematic due to (entirely valid) security concerns.
Anil: would be good to get EC2 bindings sorted soon, as we should be able to run the main website on it again. Vincent: he has ported barko’s AWS bindings to the newest Cohttp already, but not tested it.
Balraj: The TCP stack should be fine to run a live site on. All the current bugs are deep in microbenchmarks such as 1-byte writes and far from the day-to-day stuff a website would see. (muttering of “famous last words” from the room).
Anil: xen.openmirage.org has been running on EC2 for 20 months and seems ok (but don’t all visit at once!).
Benchmarking and visualisation
Anil: I’ve just written a bunch of Real World OCaml text that uses Core_bench, and it’s an execllent library. Can we generate visual graphs from Daniel’s library?
Daniel: Having some issues with glyphs in the Canvas backend, but should be ok aside from that.
Anil: How dependant are we on the browser output? Is there an SVG output? can we build graphs that don’t depend on Canvas?
(the answer to all the above questions are affirmative)
David Sheets: I’d like to be able to plot stats curves for Ocamlot for queue length and worker utilization.
Daniel: This should be ok from now. Just need to look at the glyphs thing.
Anil: Going to wait until tuntap is stable and then breakup the network stack to aid benchmarking. Helps other people to use (and contribute to) these other libraries. Vincent has been Ocamldoc-ing as he goes along and that’s been very useful. It’s hard to do that in one go but as you go along its much easier. Please do this for the libs that you are working on.


the and BLV was were The leukemia for bovine from virus infection isolates with {background that cattle margin region which regions these {border-style this px;} #ffffff;} PCR analysis our samples genotypes into new â€‰Â°C DNA are dairy (nt China HLJ env nested used identified indicated sites two â€" DQ, []. also glycosylation not rate sequences study viral QQHR alignment both clustered genotype major phylogenetic Gag However, Virol./s--- domain found known other px; showed site {font-family CoCoMo-qPCR- HLJ, [], could font-size further gene have one protein proviral region, residues using variation China. HLJ. HRB Holstein N-linked amino among been between characterization circulating currently double; epidemics epitope gag high human including indicate its leukaemia molecular neutralizing performed results three whereas â€‰s, (Fig.Â -bp Bovine China, Dairy HRB, Harbin Heilongjiang MDJ Province Science This acid blood border-color border-width breast collected conserved control current distributed epidemiology existed genotype, immune more motif prevalent program reported sequencing shown six solid; substitution within {font-style {font-weight â€‰min, (TableÂ (â€"), Chinese Fig. Fig.Â Foundation Notably, SH, T-cell Therefore, Veterinary aligned analysis. assay bold but cattleArch courier; critical derived detected each em; envelope four fragment genotypes. investigated leukosis milk nonsynonymous northeastern nucleotide obtained primers provirus pt;} reference region. relatively same several status still substitutions unique vivo.


Hello
Welcome to Freedom Eagle
Account:
Password:
!
Incorrect username or password
Verification code:
!
Incorrect code
Login


Something is technically wrong, and Emojityper is unavailable. We support IE11+ and modern browsers.
Try again or file a bug


Username: {{username}}
Description: {{description}}
Tags: {{tags}}
Note that the audio playhead won't follow the looping
What elements does the loop conatin?
help...
- You can check multiple elements
- If you can't decide between two elements, check both
- If the loop contains weird and glitchy sounds rhythmically organized, this should be "percussion" and not necessarily "sound fx"
(e.g. drums, congas, cymbals, glitchy percussion, tuned percussion)
(e.g. synth bass, fingered bass)
(e.g. piano chords, guitar chords, synth pads)
(e.g. lead instrument playing a melody, synth arpeggiator)
(e.g. risers, cinematic sounds, foley, scratching)
(e.g. singing voice, spoken word, vocoder)
What is the tempo (BPM)?
help...
- If a loop has changing tempo, you can put here the initial tempo and add a note in the comment section (also uncheck the "The loop has a clear and steady tempo" option)
- If the proposed tempo does not match and it is not easy to find the correct one, add a note in the comments section and click the "save for later" option.
- If the loop has no clear beat, but you can still find the tempo, unselect the "The loop has a clear and steady tempo" checkbox and add the tempo
What is the time signature?
/
Is the loop well cut?
help...
- A loop is well cut if whenever it loops the metronome still sounds in the correct position
- In some cases the metonome goes out of sync after several repetitions. If metronome plays well during the first ~4 repetitions, consider the loop to be well cut.
- Some loops are cut in a way that there is 1 last bar of silence to account for, e.g, reverb and delay tails. This shold be considered well cut (if the metornome matches when looping).
- In case the audio loops correctly but it does not start on the perceived downbeat, add a comment saying there is an offset.
What is the key?
help...
- A loop has "prominent tonal content" if it is easy to "sing" along it or easily find a meaningful root note
- If the loop is percussive but has a pitched kick, don't consider it "prominent tonal content"
- If loop has prominent tonal content, select a key that "sounds good" with the loop
- If loop clearly has prominent tonal content but still it is hard to determine key, set it to "unknown"
TIP: use keys 'A', 'W', 'S'... to change root notes and quickly play chords without pressing the "play chords" button on the left. Also use key 'M' to cycle through scale options and ',' and '.' to change octave.
Any comments?


Superhero Bits: ‘Superman & Lois’ Rumors, Chadwick Boseman Not Interested in Doing Disney+ Shows & More
by Ethan AndertonWant to see Adam Savage‘s collection of Marvel prop replicas he made? Will Superboy and Damian Wayne be part of the Superman & Lois series? When does the spin-off series Green Arrow and the Canaries take place? Which Runaways cast member isn’t returning for the third season? Will Mark Ruffalo appear on the She-Hulk series? How did James Gunn help Zachary Levi land the role of Shazam? All that and more in this edition of Superhero Bits.
Adam Savage showed off his impressive collection of prop replicas he’s created inspired by the Marvel movies.
The upcoming Superman & Lois series on The CW may end up including Superboy and Damian Wayne.
Kevin Smith just wanted to remind you he’s hosting a pair of Crisis on Infinite Earths crossover aftershows.
A casting call for WandaVision may indicate plans to bring Billy (Wiccan) and Tommy (Speed) to the MCU.
A new promo for the upcoming seventh episode of the third season of The CW’s Black Lightning gets electrified.
Arrow co-creator/producer Marc Guggenheim confirmed Green Arrow and the Canaries is set in 2040.
To support the recent campaign surge for The Snyder Cut of Justice League, Boss Logic made a new poster.
Kip Pardue will not be returning for the upcoming third and final season of Marvel’s Runaways over on Hulu.
Continue Reading Superhero Bits
Due to the amount of graphics and images included in Superhero Bits, we have to split this post over THREE pages. Click the link above to continue to the next page of Superhero Bits.


The "sources" tab in your devtools shows you the source code for any web page, and has tools for stepping through and debugging your code. Can you find the sources for this page?
Here's a video and an article.


Auxilliary Tool:
A specific object detector that uses OpenCV's Haar Cascade Classifier to detect objects. The performance / behavior of the object detector is stored in an XML file, which is passed in in the constructor. The XML file provided in the data directory may be used for finding faces, or you can use OpenCV to train your own.
More...
#include <OpenCVHaarDetector.h>
Public Member Functions | |
| OpenCVHaarDetector () | |
| Placeholder Constructor. | |
| OpenCVHaarDetector (const char *filename) | |
| Constructor. | |
| OpenCVHaarDetector (OpenCVHaarDetector *detectorToCopy) | |
| Deep Copy Constructor: Create a Haar detector that is identical to the one copied. | |
| ~OpenCVHaarDetector () | |
| Default Destructor. | |
| std::vector< cv::Rect > | detectObjects (IplImage *image) |
| Virtual Method for overridden from parent class (ObjectDetector). Applies the cvHaarDetectObjects() method to the provided image patch. | |
| void | setHaarCascadeScaleFactor (double factor) |
| Sets the factor by which the image-patch-search-scale is increased. Should be greater than 1. By default, the scale factor is 1.1, meaning that faces are searched for at sizes that increase by 10%. | |
| void | setHaarCascadeMinSize (int size) |
| Sets the minimum patch size at which the classifier searches for the object. By default, this is 0, meaning that the smallest size appropriate to XML file is used. In the case of the frontal face detector provided, this happens to be 20x20 pixels. | |
| void | setDetectorSource (std::string newFileName) |
| Change the file used by the object detector for doing detecting. This is critical if a weights file is located at an absolute path that may have changed from training time. | |
Protected Member Functions | |
| void | readFromStream (std::istream &in) |
| Virtual Method for inheriting classes to override: An object detector should be able to read in its properties from a file, and reinitialize itself appropriately. | |
| void | addToStream (std::ostream &out) |
| Virtual Method for inheriting classes to override: An object detector should be able to serialize itself to be saved in a file. |
Auxilliary Tool:
A specific object detector that uses OpenCV's Haar Cascade Classifier to detect objects. The performance / behavior of the object detector is stored in an XML file, which is passed in in the constructor. The XML file provided in the data directory may be used for finding faces, or you can use OpenCV to train your own.
| OpenCVHaarDetector::OpenCVHaarDetector | ( | ) |
Placeholder Constructor.
Used to create a placeholder for an object detector, which can then be read from a file stream using the >> operator. Typical usage for this constructor is:
detector = new OpenCVHaarDetector();
in >> detector;
| OpenCVHaarDetector::OpenCVHaarDetector | ( | const char * | filename ) |
Constructor.
Used to create an object detector out of a previously stored XML file.
| filename | The name of the XML file that contains all of the features / weights / etc. needed by the Haar Cascaded Object Detector. The provided file, "data/haarcascade_frontalface_alt2.xml" is distributed with OpenCV. OpenCV can be used to train detectors of objects other than frontal faces. |
| OpenCVHaarDetector::~OpenCVHaarDetector | ( | ) |
Default Destructor.
Deallocates all memory associated with the haar detector.
| vector< Rect > OpenCVHaarDetector::detectObjects | ( | IplImage * | image ) | [virtual] |
Virtual Method for overridden from parent class (ObjectDetector). Applies the cvHaarDetectObjects() method to the provided image patch.
| image | The image to be searched for some target object. |
Implements ObjectDetector.
| void OpenCVHaarDetector::setDetectorSource | ( | std::string | newFileName ) | [virtual] |
Change the file used by the object detector for doing detecting. This is critical if a weights file is located at an absolute path that may have changed from training time.
When an ObjectDetector is loaded from disk, it will try to reload its weights file from the same source used in training. If this fails, a warning will be printed, and the detector's source will need to be set.
Implements ObjectDetector.
| void OpenCVHaarDetector::setHaarCascadeMinSize | ( | int | size ) |
Sets the minimum patch size at which the classifier searches for the object. By default, this is 0, meaning that the smallest size appropriate to XML file is used. In the case of the frontal face detector provided, this happens to be 20x20 pixels.
| size | The width/height of the smallest patches to try to detect the object. |
| void OpenCVHaarDetector::setHaarCascadeScaleFactor | ( | double | factor ) |
Sets the factor by which the image-patch-search-scale is increased. Should be greater than 1. By default, the scale factor is 1.1, meaning that faces are searched for at sizes that increase by 10%.
| factor | The size-granularity of object search. |


Aims & Scope
Genes are the working subunits of DNA that codes for a particular protein that has a particular function whereas genomes are the complete organism’s hereditary information that contains all the biological information needed to maintain the life process of that organism. Is focuses on datasets produced from functional genomics, analysis of genomes, transcriptomes, proteomes, analysis of genetic pathways.
Salient Features
Your article will be usually processed with in 45 days of submission with assignment of reviewer after two days of submission.
Why Open Access?
Open access gives a worldwide audience larger than that of any subscription-based journal and thus increases the visibility and impact of published works. It also enhances indexing, retrieval power and eliminates the need for permissions to reproduce and distribute content.


How to Contribute
In order to begin contributing to the core codebase for the Robotarium submit a contribution request to Daniel Pickem with the following components:
- Your Full Name and Organization
- A short description of your planned contribution.
- A signed copy of the contributor liscense agreement.
We look forward to working with you!