text:
Soviet Zion
Music by Giles Howe and Katy Lipson, book by Giles Howe and Roberto Trippini
Lost Theatre
This is a world première presentation in the form of a semi-staged concert performance (already seen earlier in the week at the Camden Town Jewish Museum). It is based on a piece of Jewish history that very few people seem to know about. I certainly had no previous knowledge of it.
After the Russian Revolution of October 1917, the Bolshevik government declared freedom of religion and free development of ethnic minorities. They set up 45 nationally specific territories and officially recognized 69 different national groups. These included a territory for Jews: a Jewish Oblast which was created in 1928 in the remote east of the Union around the Siberian town of Birobidzhan.
Tens of thousands of Russian Jews settled there and others came from Europe and the Americas, even from Palestine, though they made up only a third of the Oblast's total population. Yiddish, not Hebrew, became the official language and it was intended that Soviet values would supplant Judaism.
Soviet Zion begins in the late 1930s with the arrival of two particular families: the Libermans from the Ukraine and the Levin's from California. It is not a history of the Oblast (which still exists) but the stories of these people through the years that follow, giving a glimpse of what life there may have been like.
It is a rather stereotypical, western view of what Soviet society was like—there are no surprises—but its picture of forced political conformity, spying on friends, imprisonment and manufactured propaganda do not detract from what, at first, is a confident idealism.
Life was not easy in a remote territory where the climate was harsh and the land of inferior quality, especially for people who largely came from urban backgrounds transplanted to a farming society. An early scene shows newcomers being taught how to milk a cow on a mechanical model and there are reminders of food shortages and a tough environment.
The two families contrast the backwater Libermans: Mother Mirele (Kate Milner-Evans in great voice and strong dramatically) has never even seen a movie, and the worldly Levins, daughter Bayla lipsticked, loud and lively. She may be horridly self-centred, but Michaela Stern's feistiness makes a joke of it.
Handsome brother David Levin (James Charlton) is soon attracted to Zofia, the Libermans' capable daughter, who is soon an eager activist. Her gentle father and devoted husband Iser Liberman may have little Hebrew but he keeps Passover and his religion becomes increasingly important to him. Alex McMarran renders his sung prayers with great feeling.
Oskar Levin on the other hand, reared in New York and having run businesses in California, is much more secular. The warmth that David Phipps-Davis gives him hides the pain of having been deserted by his wife—he says, she "had never been on stage and has no talent"—who determinedly took off for Hollywood.
Love blossoms between David and Zofia—there is even a brief wedding scene complete with khupa canopy—while state employee Joshua (Daniel Donskoy), sidekick to Bruno Loxton's slightly sinister "Official", falls for Bayla, though that love founders when she finds out he is an informer. There is even a budding attraction between Mirele and Oskar while Iser is in prison that is beautifully and gently stated.
Indeed, quietly sung, lightly scored lament-like passages, often no more than a few lines in length, provide some of the show's best moments.
News bulletins and official announcements show passing time and report political changes—from Russian opposition to Fascism to the volte face of the pact with Hitler, that suddenly turns into the Patriotic War and young men sent off to fight—is a ploy that is overused. Much more effective is a song in which David sings a love letter from the Front as Zofia and other young women are trained to kill.
Toni Green plays matchmaker Yenta (whose services seem unneeded) and acts as narrator, describing some more visually spectacular moments. Whether this is part of the dramatic structure or a concert measure replacement for more fully developed passages is unclear, but, with all other parts played by Mike Baxter, Laura Coutts and Holly Anna Lloyd, this is a strong company which brings vocal and dramatic energy to form a chorus that seems to fill the stage in Bronagh Lagan's clever semi-staging under Joseph Finlay's musical direction.
There are cadences in this score that make it instantly acceptable, almost familiar, though with few extended ballads or easily extracted numbers and no pop anthems, more art-music than Tin Pan Alley. It places big demands upon its singers and this cast meets them.
The little-known history provides the background but the story is in the people and their situation, the music expressing their emotions. The finale, which offers the same idealistic hopes with which Soviet Zion begins but now linked to emigration to Israel, is sufficiently upbeat to provide a feel-good ending but not without an ironic undercurrent considering what happened to that dream if they were expecting a Jewish socialist utopia like the one that took them to Birobidzhan in the first place.


This is a true Black Face AB763 designed single channel amp housed in a Princeton Reverb size cab, built with a 12" speaker, and the same Black Face circuitry found in a Black Face Deluxe Reverb style amp, only without the unused Normal channel. They added a Mid range tone pot for better control over your EQ, a Dwell control to the back of the chassis as a second EQ for the Reverb, and a Bright/Dark Switch, so the amp would not be permanently wired in the Bright mode like the original. It also uses the same transformer set as their Vintage 22, (Black Face Deluxe Reverb style) and the same filter cap system.
We've noticed customers are about 50/50 when it comes to wanting Bias Points on their Vintage Sound amps. The advantage of having this option is you have the ability to easily rebais the amp each time you swap power tubes. Normally, you'd have to pull the chassis and do it manually, or take it to a amp shop and have it done at shop labor rates. With the optional Bias Points installed you'll be able to do it yourself with only a simple multi-meter. It's actually VERY easy to do. Under the VIDEOS tab above you'll find a video that walks you through biasing your Vintage Sound amp using the bias points.
Why the Jensen C12K-100 speaker? The Jensen C12K-100 is a 100 watt speaker that will give you a bit more clean headroom than the WGS G12C/S. The bottom end is slighty more full and holds together at higher volumes producing a nice, tight, low end. If you want your amp to break up in a bluesy kind of way, you might want to stick with the WGS. If you want as much clean headroom as possible, then the Jensen C12K is the one.
Vintage Sound Amplifiers make some of our favorite Blackface voiced amps around. They incorporate circuits and voicings that we're all so familiar with yet reaching past the overly simple features that may have held some guitarists back from Blackface amps over the years. We all enjoy vintage tone, but why can't we have our tone and enjoy new ideas too? Leo Fender was big on listening to what players had to say about what they needed or used, and what they didn't. This is precisely what Vintage Sound Amps has done! By listening to decades of guitarists, they have figured out exactly what us vintage tone hounds were after: the Vintage Sound 22sc. Stylistic and aesthetic qualities stay true to the vintage vibe of an old Fender amp, but don't let that fool you into thinking that it's the same 'ol thing! Immediately noticeable differences with the 22sc are the addition of a 'Mid' knob, as well as a Reverb Dwell Control that together offer many new textures to the Deluxe Reverb circuit. Other internal modifications exist within the 22sc which we'll go over in more detail below.
The AB763 circuit from the 22 watt 60's Fender Deluxe Reverb is the cream of the tonal crop for some of us out there with its rich tone, ease of transport and reliable history. For decades, guitarists have often commented on their lack of use of the Normal channel on a Deluxe. As many of us know, you can remove the first preamp tube associated with the Normal channel leaving you with a hotter signal and a little more gain. By turning the Tremolo Intensity knob to zero, you actively remove it from the circuit as well, again resulting in an even hotter signal. So with the circuit being a hand wired point to point board with the capabilities of a shorter signal path, and in a Princeton sized cab, this amp, may be one of the best grab and go amps around!
The Vintage 22sc has enough volume to carry you from practice to the club. On top of that, the bass response of the VS amps are unparalleled for an amp of this small of a stature. Think of this amp as a Deluxe style amp in a Princeton sized cab. With the pine cab and the 12" speaker, you'll want to turn the amp upside down to see if someone snuck a pair of 6L6 power tubes into it!
As mentioned above, this amp features a "Mid" knob not found in the typical Deluxe Reverb circuit. This was achieved by removing the the 6.8k fixed bias resistor from the AB763 and replacing it with a 10k pot, allowing players to refine their tone further than before. If you want it to be perfectly period correct, no problem! Just move the mid knob to about 6 or 7 and it will give you 6.8k of resistance. Voila!
The reverb on this amp, like all good blackface amps, has a wonderful spacial feel. With the 22sc, Vintage Sound has added a versatile Dwell control on the back allowing you to control the reverb decay. This is a feature many of us verb lovers have always wished was on our old Fender amps. You typically found this only on the Fender dedicated reverb units, so we're quite pleased to have it on Vintage Sound amps.
As if these two modifications weren't enough, the 22SC features a Bright Cap Defeat Switch to tame some of the top end associated with this style of amp or give it that high end sparkle to guide your guitar to the front of a mix. As well, the Tremolo circuit on the VS 22sc is the much loved Diaz based Modded Tremolo circuit with a newly designed oscillator specific to Vintage Sound which allows a slower speed and less noise than the original Fender design. When you turn the Tremolo Intensity dial all of the way to zero, the Mod also completely eliminates the Tremolo circuit from the signal path. So even if you don't find yourself using it often, you don't have to worry about it dragging down your precious tone!
After trying many speaker combinations, Humbucker Music and Vintage Sound has opted to use the WGS C/S12 for it's ability to tame some of the top end most notably associated with the Deluxes and Princetons while helping accentuate the 22sc's solid lows. We feel this speaker is absolutely a solid choice for this amp.
All Vintage Sound Amps utilize pine cabinets and are constructed with dove tailed joints to ensure years of solid use as well as the stronger joints that allow the cab to resonate more freely than many other construction methods. A Baltic Birch floating baffle allows the front baffle to 'breathe a bit more', when in conjunction with the light resonant softer pine, you end up with a cab that imparts its own frequency to your sound. This cab resonance may be more important to help you find that sound in your head than you may initially think!
Overall, I find the Vintage Sound 22sc to be an extremely satisfying amp that is surely to find great success through its ability to be carried around with ease, while pumping out Blackface tones reminiscent of amps past (not the reissues)! So, if you're in the market for vintage Blackface tone, look no further than the Vintage Sound 22Ssc. Do you loose anything over a two channel Deluxe style amp? In my opinion, no. I have perhaps in my 25+ years of playing, encountered only a handful of players who utilized both the Normal and the Vibrato channels on their amp during a particular gig.
Effects pedals have made such an influence on the tones that we're now so familiar with, that even using the Normal Channel as a different EQ setting is irrelivant these days. Think about it... A half-pound pedal versus all of the additional weight of a second amp channel, not to mention the additional signal path and internal resistance that you now avoid. I don't think that you loose anything at all. If anything, you gain. You gain a shorter signal path, a bypassable Tremolo circuit, a stronger, resonant, more vibrant cab and the ability to tote around a hand wired point to point amp that weighs in at under 40lbs! This is definitely one of the best grab and go amps on the market today and a sure fit for stages and studios alike.


text:
require 'logger'
require 'abstract_unit'
require 'active_support/cache'
require 'dependencies_test_helpers'

class CacheKeyTest < ActiveSupport::TestCase
  def test_entry_legacy_optional_ivars
    legacy = Class.new(ActiveSupport::Cache::Entry) do
      def initialize(value, options = {})
        @value = value
        @expires_in = nil
        @created_at = nil
        super
      end
    end

    entry = legacy.new 'foo'
    assert_equal 'foo', entry.value
  end

  def test_expand_cache_key
    assert_equal '1/2/true', ActiveSupport::Cache.expand_cache_key([1, '2', true])
    assert_equal 'name/1/2/true', ActiveSupport::Cache.expand_cache_key([1, '2', true], :name)
  end

  def test_expand_cache_key_with_rails_cache_id
    begin
      ENV['RAILS_CACHE_ID'] = 'c99'
      assert_equal 'c99/foo', ActiveSupport::Cache.expand_cache_key(:foo)
      assert_equal 'c99/foo', ActiveSupport::Cache.expand_cache_key([:foo])
      assert_equal 'c99/foo/bar', ActiveSupport::Cache.expand_cache_key([:foo, :bar])
      assert_equal 'nm/c99/foo', ActiveSupport::Cache.expand_cache_key(:foo, :nm)
      assert_equal 'nm/c99/foo', ActiveSupport::Cache.expand_cache_key([:foo], :nm)
      assert_equal 'nm/c99/foo/bar', ActiveSupport::Cache.expand_cache_key([:foo, :bar], :nm)
    ensure
      ENV['RAILS_CACHE_ID'] = nil
    end
  end

  def test_expand_cache_key_with_rails_app_version
    begin
      ENV['RAILS_APP_VERSION'] = 'rails3'
      assert_equal 'rails3/foo', ActiveSupport::Cache.expand_cache_key(:foo)
    ensure
      ENV['RAILS_APP_VERSION'] = nil
    end
  end

  def test_expand_cache_key_rails_cache_id_should_win_over_rails_app_version
    begin
      ENV['RAILS_CACHE_ID'] = 'c99'
      ENV['RAILS_APP_VERSION'] = 'rails3'
      assert_equal 'c99/foo', ActiveSupport::Cache.expand_cache_key(:foo)
    ensure
      ENV['RAILS_CACHE_ID'] = nil
      ENV['RAILS_APP_VERSION'] = nil
    end
  end

  def test_expand_cache_key_respond_to_cache_key
    key = 'foo'
    def key.cache_key
      :foo_key
    end
    assert_equal 'foo_key', ActiveSupport::Cache.expand_cache_key(key)
  end

  def test_expand_cache_key_array_with_something_that_responds_to_cache_key
    key = 'foo'
    def key.cache_key
      :foo_key
    end
    assert_equal 'foo_key', ActiveSupport::Cache.expand_cache_key([key])
  end

  def test_expand_cache_key_of_nil
    assert_equal '', ActiveSupport::Cache.expand_cache_key(nil)
  end

  def test_expand_cache_key_of_false
    assert_equal 'false', ActiveSupport::Cache.expand_cache_key(false)
  end

  def test_expand_cache_key_of_true
    assert_equal 'true', ActiveSupport::Cache.expand_cache_key(true)
  end

  def test_expand_cache_key_of_array_like_object
    assert_equal 'foo/bar/baz', ActiveSupport::Cache.expand_cache_key(%w{foo bar baz}.to_enum)
  end
end

class CacheStoreSettingTest < ActiveSupport::TestCase
  def test_file_fragment_cache_store
    store = ActiveSupport::Cache.lookup_store :file_store, "/path/to/cache/directory"
    assert_kind_of(ActiveSupport::Cache::FileStore, store)
    assert_equal "/path/to/cache/directory", store.cache_path
  end

  def test_mem_cache_fragment_cache_store
    Dalli::Client.expects(:new).with(%w[localhost], {})
    store = ActiveSupport::Cache.lookup_store :mem_cache_store, "localhost"
    assert_kind_of(ActiveSupport::Cache::MemCacheStore, store)
  end

  def test_mem_cache_fragment_cache_store_with_given_mem_cache
    mem_cache = Dalli::Client.new
    Dalli::Client.expects(:new).never
    store = ActiveSupport::Cache.lookup_store :mem_cache_store, mem_cache
    assert_kind_of(ActiveSupport::Cache::MemCacheStore, store)
  end

  def test_mem_cache_fragment_cache_store_with_given_mem_cache_like_object
    Dalli::Client.expects(:new).never
    memcache = Object.new
    def memcache.get() true end
    store = ActiveSupport::Cache.lookup_store :mem_cache_store, memcache
    assert_kind_of(ActiveSupport::Cache::MemCacheStore, store)
  end

  def test_mem_cache_fragment_cache_store_with_multiple_servers
    Dalli::Client.expects(:new).with(%w[localhost 192.168.1.1], {})
    store = ActiveSupport::Cache.lookup_store :mem_cache_store, "localhost", '192.168.1.1'
    assert_kind_of(ActiveSupport::Cache::MemCacheStore, store)
  end

  def test_mem_cache_fragment_cache_store_with_options
    Dalli::Client.expects(:new).with(%w[localhost 192.168.1.1], { :timeout => 10 })
    store = ActiveSupport::Cache.lookup_store :mem_cache_store, "localhost", '192.168.1.1', :namespace => 'foo', :timeout => 10
    assert_kind_of(ActiveSupport::Cache::MemCacheStore, store)
    assert_equal 'foo', store.options[:namespace]
  end

  def test_object_assigned_fragment_cache_store
    store = ActiveSupport::Cache.lookup_store ActiveSupport::Cache::FileStore.new("/path/to/cache/directory")
    assert_kind_of(ActiveSupport::Cache::FileStore, store)
    assert_equal "/path/to/cache/directory", store.cache_path
  end
end

class CacheStoreNamespaceTest < ActiveSupport::TestCase
  def test_static_namespace
    cache = ActiveSupport::Cache.lookup_store(:memory_store, :namespace => "tester")
    cache.write("foo", "bar")
    assert_equal "bar", cache.read("foo")
    assert_equal "bar", cache.instance_variable_get(:@data)["tester:foo"].value
  end

  def test_proc_namespace
    test_val = "tester"
    proc = lambda{test_val}
    cache = ActiveSupport::Cache.lookup_store(:memory_store, :namespace => proc)
    cache.write("foo", "bar")
    assert_equal "bar", cache.read("foo")
    assert_equal "bar", cache.instance_variable_get(:@data)["tester:foo"].value
  end

  def test_delete_matched_key_start
    cache = ActiveSupport::Cache.lookup_store(:memory_store, :namespace => "tester")
    cache.write("foo", "bar")
    cache.write("fu", "baz")
    cache.delete_matched(/^fo/)
    assert !cache.exist?("foo")
    assert cache.exist?("fu")
  end

  def test_delete_matched_key
    cache = ActiveSupport::Cache.lookup_store(:memory_store, :namespace => "foo")
    cache.write("foo", "bar")
    cache.write("fu", "baz")
    cache.delete_matched(/OO/i)
    assert !cache.exist?("foo")
    assert cache.exist?("fu")
  end
end

# Tests the base functionality that should be identical across all cache stores.
module CacheStoreBehavior
  def test_should_read_and_write_strings
    assert @cache.write('foo', 'bar')
    assert_equal 'bar', @cache.read('foo')
  end

  def test_should_overwrite
    @cache.write('foo', 'bar')
    @cache.write('foo', 'baz')
    assert_equal 'baz', @cache.read('foo')
  end

  def test_fetch_without_cache_miss
    @cache.write('foo', 'bar')
    @cache.expects(:write).never
    assert_equal 'bar', @cache.fetch('foo') { 'baz' }
  end

  def test_fetch_with_cache_miss
    @cache.expects(:write).with('foo', 'baz', @cache.options)
    assert_equal 'baz', @cache.fetch('foo') { 'baz' }
  end

  def test_fetch_with_cache_miss_passes_key_to_block
    cache_miss = false
    assert_equal 3, @cache.fetch('foo') { |key| cache_miss = true; key.length }
    assert cache_miss

    cache_miss = false
    assert_equal 3, @cache.fetch('foo') { |key| cache_miss = true; key.length }
    assert !cache_miss
  end

  def test_fetch_with_forced_cache_miss
    @cache.write('foo', 'bar')
    @cache.expects(:read).never
    @cache.expects(:write).with('foo', 'bar', @cache.options.merge(:force => true))
    @cache.fetch('foo', :force => true) { 'bar' }
  end

  def test_fetch_with_cached_nil
    @cache.write('foo', nil)
    @cache.expects(:write).never
    assert_nil @cache.fetch('foo') { 'baz' }
  end

  def test_should_read_and_write_hash
    assert @cache.write('foo', {:a => "b"})
    assert_equal({:a => "b"}, @cache.read('foo'))
  end

  def test_should_read_and_write_integer
    assert @cache.write('foo', 1)
    assert_equal 1, @cache.read('foo')
  end

  def test_should_read_and_write_nil
    assert @cache.write('foo', nil)
    assert_equal nil, @cache.read('foo')
  end

  def test_should_read_and_write_false
    assert @cache.write('foo', false)
    assert_equal false, @cache.read('foo')
  end

  def test_read_multi
    @cache.write('foo', 'bar')
    @cache.write('fu', 'baz')
    @cache.write('fud', 'biz')
    assert_equal({"foo" => "bar", "fu" => "baz"}, @cache.read_multi('foo', 'fu'))
  end

  def test_read_multi_with_expires
    time = Time.now
    @cache.write('foo', 'bar', :expires_in => 10)
    @cache.write('fu', 'baz')
    @cache.write('fud', 'biz')
    Time.stubs(:now).returns(time + 11)
    assert_equal({"fu" => "baz"}, @cache.read_multi('foo', 'fu'))
  end

  def test_read_and_write_compressed_small_data
    @cache.write('foo', 'bar', :compress => true)
    assert_equal 'bar', @cache.read('foo')
  end

  def test_read_and_write_compressed_large_data
    @cache.write('foo', 'bar', :compress => true, :compress_threshold => 2)
    assert_equal 'bar', @cache.read('foo')
  end

  def test_read_and_write_compressed_nil
    @cache.write('foo', nil, :compress => true)
    assert_nil @cache.read('foo')
  end

  def test_cache_key
    obj = Object.new
    def obj.cache_key
      :foo
    end
    @cache.write(obj, "bar")
    assert_equal "bar", @cache.read("foo")
  end

  def test_param_as_cache_key
    obj = Object.new
    def obj.to_param
      "foo"
    end
    @cache.write(obj, "bar")
    assert_equal "bar", @cache.read("foo")
  end

  def test_array_as_cache_key
    @cache.write([:fu, "foo"], "bar")
    assert_equal "bar", @cache.read("fu/foo")
  end

  def test_hash_as_cache_key
    @cache.write({:foo => 1, :fu => 2}, "bar")
    assert_equal "bar", @cache.read("foo=1/fu=2")
  end

  def test_keys_are_case_sensitive
    @cache.write("foo", "bar")
    assert_nil @cache.read("FOO")
  end

  def test_exist
    @cache.write('foo', 'bar')
    assert @cache.exist?('foo')
    assert !@cache.exist?('bar')
  end

  def test_nil_exist
    @cache.write('foo', nil)
    assert @cache.exist?('foo')
  end

  def test_delete
    @cache.write('foo', 'bar')
    assert @cache.exist?('foo')
    assert @cache.delete('foo')
    assert !@cache.exist?('foo')
  end

  def test_original_store_objects_should_not_be_immutable
    bar = 'bar'
    @cache.write('foo', bar)
    assert_nothing_raised { bar.gsub!(/.*/, 'baz') }
  end

  def test_expires_in
    time = Time.local(2008, 4, 24)
    Time.stubs(:now).returns(time)

    @cache.write('foo', 'bar')
    assert_equal 'bar', @cache.read('foo')

    Time.stubs(:now).returns(time + 30)
    assert_equal 'bar', @cache.read('foo')

    Time.stubs(:now).returns(time + 61)
    assert_nil @cache.read('foo')
  end

  def test_race_condition_protection
    time = Time.now
    @cache.write('foo', 'bar', :expires_in => 60)
    Time.stubs(:now).returns(time + 61)
    result = @cache.fetch('foo', :race_condition_ttl => 10) do
      assert_equal 'bar', @cache.read('foo')
      "baz"
    end
    assert_equal "baz", result
  end

  def test_race_condition_protection_is_limited
    time = Time.now
    @cache.write('foo', 'bar', :expires_in => 60)
    Time.stubs(:now).returns(time + 71)
    result = @cache.fetch('foo', :race_condition_ttl => 10) do
      assert_equal nil, @cache.read('foo')
      "baz"
    end
    assert_equal "baz", result
  end

  def test_race_condition_protection_is_safe
    time = Time.now
    @cache.write('foo', 'bar', :expires_in => 60)
    Time.stubs(:now).returns(time + 61)
    begin
      @cache.fetch('foo', :race_condition_ttl => 10) do
        assert_equal 'bar', @cache.read('foo')
        raise ArgumentError.new
      end
    rescue ArgumentError
    end
    assert_equal "bar", @cache.read('foo')
    Time.stubs(:now).returns(time + 91)
    assert_nil @cache.read('foo')
  end

  def test_crazy_key_characters
    crazy_key = "#/:*(<+=> )&$%@?;'\"\'`~-"
    assert @cache.write(crazy_key, "1", :raw => true)
    assert_equal "1", @cache.read(crazy_key)
    assert_equal "1", @cache.fetch(crazy_key)
    assert @cache.delete(crazy_key)
    assert_equal "2", @cache.fetch(crazy_key, :raw => true) { "2" }
    assert_equal 3, @cache.increment(crazy_key)
    assert_equal 2, @cache.decrement(crazy_key)
  end

  def test_really_long_keys
    key = ""
    900.times{key << "x"}
    assert @cache.write(key, "bar")
    assert_equal "bar", @cache.read(key)
    assert_equal "bar", @cache.fetch(key)
    assert_nil @cache.read("#{key}x")
    assert_equal({key => "bar"}, @cache.read_multi(key))
    assert @cache.delete(key)
  end
end

# https://rails.lighthouseapp.com/projects/8994/tickets/6225-memcachestore-cant-deal-with-umlauts-and-special-characters
# The error is caused by character encodings that can't be compared with ASCII-8BIT regular expressions and by special
# characters like the umlaut in UTF-8.
module EncodedKeyCacheBehavior
  Encoding.list.each do |encoding|
    define_method "test_#{encoding.name.underscore}_encoded_values" do
      key = "foo".force_encoding(encoding)
      assert @cache.write(key, "1", :raw => true)
      assert_equal "1", @cache.read(key)
      assert_equal "1", @cache.fetch(key)
      assert @cache.delete(key)
      assert_equal "2", @cache.fetch(key, :raw => true) { "2" }
      assert_equal 3, @cache.increment(key)
      assert_equal 2, @cache.decrement(key)
    end
  end

  def test_common_utf8_values
    key = "\xC3\xBCmlaut".force_encoding(Encoding::UTF_8)
    assert @cache.write(key, "1", :raw => true)
    assert_equal "1", @cache.read(key)
    assert_equal "1", @cache.fetch(key)
    assert @cache.delete(key)
    assert_equal "2", @cache.fetch(key, :raw => true) { "2" }
    assert_equal 3, @cache.increment(key)
    assert_equal 2, @cache.decrement(key)
  end

  def test_retains_encoding
    key = "\xC3\xBCmlaut".force_encoding(Encoding::UTF_8)
    assert @cache.write(key, "1", :raw => true)
    assert_equal Encoding::UTF_8, key.encoding
  end
end

module CacheDeleteMatchedBehavior
  def test_delete_matched
    @cache.write("foo", "bar")
    @cache.write("fu", "baz")
    @cache.write("foo/bar", "baz")
    @cache.write("fu/baz", "bar")
    @cache.delete_matched(/oo/)
    assert !@cache.exist?("foo")
    assert @cache.exist?("fu")
    assert !@cache.exist?("foo/bar")
    assert @cache.exist?("fu/baz")
  end
end

module CacheIncrementDecrementBehavior
  def test_increment
    @cache.write('foo', 1, :raw => true)
    assert_equal 1, @cache.read('foo').to_i
    assert_equal 2, @cache.increment('foo')
    assert_equal 2, @cache.read('foo').to_i
    assert_equal 3, @cache.increment('foo')
    assert_equal 3, @cache.read('foo').to_i
    assert_nil @cache.increment('bar')
  end

  def test_decrement
    @cache.write('foo', 3, :raw => true)
    assert_equal 3, @cache.read('foo').to_i
    assert_equal 2, @cache.decrement('foo')
    assert_equal 2, @cache.read('foo').to_i
    assert_equal 1, @cache.decrement('foo')
    assert_equal 1, @cache.read('foo').to_i
    assert_nil @cache.decrement('bar')
  end
end

module LocalCacheBehavior
  def test_local_writes_are_persistent_on_the_remote_cache
    retval = @cache.with_local_cache do
      @cache.write('foo', 'bar')
    end
    assert retval
    assert_equal 'bar', @cache.read('foo')
  end

  def test_clear_also_clears_local_cache
    @cache.with_local_cache do
      @cache.write('foo', 'bar')
      @cache.clear
      assert_nil @cache.read('foo')
    end

    assert_nil @cache.read('foo')
  end

  def test_local_cache_of_write
    @cache.with_local_cache do
      @cache.write('foo', 'bar')
      @peek.delete('foo')
      assert_equal 'bar', @cache.read('foo')
    end
  end

  def test_local_cache_of_read
    @cache.write('foo', 'bar')
    @cache.with_local_cache do
      assert_equal 'bar', @cache.read('foo')
    end
  end

  def test_local_cache_of_write_nil
    @cache.with_local_cache do
      assert @cache.write('foo', nil)
      assert_nil @cache.read('foo')
      @peek.write('foo', 'bar')
      assert_nil @cache.read('foo')
    end
  end

  def test_local_cache_of_delete
    @cache.with_local_cache do
      @cache.write('foo', 'bar')
      @cache.delete('foo')
      assert_nil @cache.read('foo')
    end
  end

  def test_local_cache_of_exist
    @cache.with_local_cache do
      @cache.write('foo', 'bar')
      @peek.delete('foo')
      assert @cache.exist?('foo')
    end
  end

  def test_local_cache_of_increment
    @cache.with_local_cache do
      @cache.write('foo', 1, :raw => true)
      @peek.write('foo', 2, :raw => true)
      @cache.increment('foo')
      assert_equal 3, @cache.read('foo')
    end
  end

  def test_local_cache_of_decrement
    @cache.with_local_cache do
      @cache.write('foo', 1, :raw => true)
      @peek.write('foo', 3, :raw => true)
      @cache.decrement('foo')
      assert_equal 2, @cache.read('foo')
    end
  end

  def test_middleware
    app = lambda { |env|
      result = @cache.write('foo', 'bar')
      assert_equal 'bar', @cache.read('foo') # make sure 'foo' was written
      assert result
    }
    app = @cache.middleware.new(app)
    app.call({})
  end
end

module AutoloadingCacheBehavior
  include DependenciesTestHelpers
  def test_simple_autoloading
    with_autoloading_fixtures do
      @cache.write('foo', E.new)
    end

    remove_constants(:E)
    ActiveSupport::Dependencies.clear

    with_autoloading_fixtures do
      assert_kind_of E, @cache.read('foo')
    end

    remove_constants(:E)
    ActiveSupport::Dependencies.clear
  end

  def test_two_classes_autoloading
    with_autoloading_fixtures do
      @cache.write('foo', [E.new, ClassFolder.new])
    end

    remove_constants(:E, :ClassFolder)
    ActiveSupport::Dependencies.clear

    with_autoloading_fixtures do
      loaded = @cache.read('foo')
      assert_kind_of Array, loaded
      assert_equal 2, loaded.size
      assert_kind_of E, loaded[0]
      assert_kind_of ClassFolder, loaded[1]
    end

    remove_constants(:E, :ClassFolder)
    ActiveSupport::Dependencies.clear
  end
end

class FileStoreTest < ActiveSupport::TestCase
  def setup
    Dir.mkdir(cache_dir) unless File.exist?(cache_dir)
    @cache = ActiveSupport::Cache.lookup_store(:file_store, cache_dir, :expires_in => 60)
    @peek = ActiveSupport::Cache.lookup_store(:file_store, cache_dir, :expires_in => 60)
    @cache_with_pathname = ActiveSupport::Cache.lookup_store(:file_store, Pathname.new(cache_dir), :expires_in => 60)

    @buffer = StringIO.new
    @cache.logger = ActiveSupport::Logger.new(@buffer)
  end

  def teardown
    FileUtils.rm_r(cache_dir)
  end

  def cache_dir
    File.join(Dir.pwd, 'tmp_cache')
  end

  include CacheStoreBehavior
  include LocalCacheBehavior
  include CacheDeleteMatchedBehavior
  include CacheIncrementDecrementBehavior
  include AutoloadingCacheBehavior

  def test_clear
    filepath = File.join(cache_dir, ".gitkeep")
    FileUtils.touch(filepath)
    @cache.clear
    assert File.exist?(filepath)
  end

  def test_key_transformation
    key = @cache.send(:key_file_path, "views/index?id=1")
    assert_equal "views/index?id=1", @cache.send(:file_path_key, key)
  end

  def test_key_transformation_with_pathname
    FileUtils.touch(File.join(cache_dir, "foo"))
    key = @cache_with_pathname.send(:key_file_path, "views/index?id=1")
    assert_equal "views/index?id=1", @cache_with_pathname.send(:file_path_key, key)
  end

  # Test that generated cache keys are short enough to have Tempfile stuff added to them and
  # remain valid
  def test_filename_max_size
    key = "#{'A' * ActiveSupport::Cache::FileStore::FILENAME_MAX_SIZE}"
    path = @cache.send(:key_file_path, key)
    Dir::Tmpname.create(path) do |tmpname, n, opts|
      assert File.basename(tmpname+'.lock').length <= 255, "Temp filename too long: #{File.basename(tmpname+'.lock').length}"
    end
  end

  # Because file systems have a maximum filename size, filenames > max size should be split in to directories
  # If filename is 'AAAAB', where max size is 4, the returned path should be AAAA/B
  def test_key_transformation_max_filename_size
    key = "#{'A' * ActiveSupport::Cache::FileStore::FILENAME_MAX_SIZE}B"
    path = @cache.send(:key_file_path, key)
    assert path.split('/').all? { |dir_name| dir_name.size <= ActiveSupport::Cache::FileStore::FILENAME_MAX_SIZE}
    assert_equal 'B', File.basename(path)
  end

  # If nothing has been stored in the cache, there is a chance the cache directory does not yet exist
  # Ensure delete_matched gracefully handles this case
  def test_delete_matched_when_cache_directory_does_not_exist
    assert_nothing_raised(Exception) do
      ActiveSupport::Cache::FileStore.new('/test/cache/directory').delete_matched(/does_not_exist/)
    end
  end

  def test_delete_does_not_delete_empty_parent_dir
    sub_cache_dir = File.join(cache_dir, 'subdir/')
    sub_cache_store = ActiveSupport::Cache::FileStore.new(sub_cache_dir)
    assert_nothing_raised(Exception) do
      assert sub_cache_store.write('foo', 'bar')
      assert sub_cache_store.delete('foo')
    end
    assert File.exist?(cache_dir), "Parent of top level cache dir was deleted!"
    assert File.exist?(sub_cache_dir), "Top level cache dir was deleted!"
    assert Dir.entries(sub_cache_dir).reject {|f| ActiveSupport::Cache::FileStore::EXCLUDED_DIRS.include?(f)}.empty?
  end

  def test_log_exception_when_cache_read_fails
    File.expects(:exist?).raises(StandardError, "failed")
    @cache.send(:read_entry, "winston", {})
    assert @buffer.string.present?
  end

  def test_cleanup_removes_all_expired_entries
    time = Time.now
    @cache.write('foo', 'bar', expires_in: 10)
    @cache.write('baz', 'qux')
    @cache.write('quux', 'corge', expires_in: 20)
    Time.stubs(:now).returns(time + 15)
    @cache.cleanup
    assert_not @cache.exist?('foo')
    assert @cache.exist?('baz')
    assert @cache.exist?('quux')
  end
end

class MemoryStoreTest < ActiveSupport::TestCase
  def setup
    @record_size = ActiveSupport::Cache.lookup_store(:memory_store).send(:cached_size, 1, ActiveSupport::Cache::Entry.new("aaaaaaaaaa"))
    @cache = ActiveSupport::Cache.lookup_store(:memory_store, :expires_in => 60, :size => @record_size * 10 + 1)
  end

  include CacheStoreBehavior
  include CacheDeleteMatchedBehavior
  include CacheIncrementDecrementBehavior

  def test_prune_size
    @cache.write(1, "aaaaaaaaaa") && sleep(0.001)
    @cache.write(2, "bbbbbbbbbb") && sleep(0.001)
    @cache.write(3, "cccccccccc") && sleep(0.001)
    @cache.write(4, "dddddddddd") && sleep(0.001)
    @cache.write(5, "eeeeeeeeee") && sleep(0.001)
    @cache.read(2) && sleep(0.001)
    @cache.read(4)
    @cache.prune(@record_size * 3)
    assert @cache.exist?(5)
    assert @cache.exist?(4)
    assert !@cache.exist?(3), "no entry"
    assert @cache.exist?(2)
    assert !@cache.exist?(1), "no entry"
  end

  def test_prune_size_on_write
    @cache.write(1, "aaaaaaaaaa") && sleep(0.001)
    @cache.write(2, "bbbbbbbbbb") && sleep(0.001)
    @cache.write(3, "cccccccccc") && sleep(0.001)
    @cache.write(4, "dddddddddd") && sleep(0.001)
    @cache.write(5, "eeeeeeeeee") && sleep(0.001)
    @cache.write(6, "ffffffffff") && sleep(0.001)
    @cache.write(7, "gggggggggg") && sleep(0.001)
    @cache.write(8, "hhhhhhhhhh") && sleep(0.001)
    @cache.write(9, "iiiiiiiiii") && sleep(0.001)
    @cache.write(10, "kkkkkkkkkk") && sleep(0.001)
    @cache.read(2) && sleep(0.001)
    @cache.read(4) && sleep(0.001)
    @cache.write(11, "llllllllll")
    assert @cache.exist?(11)
    assert @cache.exist?(10)
    assert @cache.exist?(9)
    assert @cache.exist?(8)
    assert @cache.exist?(7)
    assert !@cache.exist?(6), "no entry"
    assert !@cache.exist?(5), "no entry"
    assert @cache.exist?(4)
    assert !@cache.exist?(3), "no entry"
    assert @cache.exist?(2)
    assert !@cache.exist?(1), "no entry"
  end

  def test_prune_size_on_write_based_on_key_length
    @cache.write(1, "aaaaaaaaaa") && sleep(0.001)
    @cache.write(2, "bbbbbbbbbb") && sleep(0.001)
    @cache.write(3, "cccccccccc") && sleep(0.001)
    @cache.write(4, "dddddddddd") && sleep(0.001)
    @cache.write(5, "eeeeeeeeee") && sleep(0.001)
    @cache.write(6, "ffffffffff") && sleep(0.001)
    @cache.write(7, "gggggggggg") && sleep(0.001)
    @cache.write(8, "hhhhhhhhhh") && sleep(0.001)
    @cache.write(9, "iiiiiiiiii") && sleep(0.001)
    long_key = '*' * 2 * @record_size
    @cache.write(long_key, "llllllllll")
    assert @cache.exist?(long_key)
    assert @cache.exist?(9)
    assert @cache.exist?(8)
    assert @cache.exist?(7)
    assert @cache.exist?(6)
    assert !@cache.exist?(5), "no entry"
    assert !@cache.exist?(4), "no entry"
    assert !@cache.exist?(3), "no entry"
    assert !@cache.exist?(2), "no entry"
    assert !@cache.exist?(1), "no entry"
  end

  def test_pruning_is_capped_at_a_max_time
    def @cache.delete_entry (*args)
      sleep(0.01)
      super
    end
    @cache.write(1, "aaaaaaaaaa") && sleep(0.001)
    @cache.write(2, "bbbbbbbbbb") && sleep(0.001)
    @cache.write(3, "cccccccccc") && sleep(0.001)
    @cache.write(4, "dddddddddd") && sleep(0.001)
    @cache.write(5, "eeeeeeeeee") && sleep(0.001)
    @cache.prune(30, 0.001)
    assert @cache.exist?(5)
    assert @cache.exist?(4)
    assert @cache.exist?(3)
    assert @cache.exist?(2)
    assert !@cache.exist?(1)
  end

  def test_write_with_unless_exist
    assert_equal true, @cache.write(1, "aaaaaaaaaa")
    assert_equal false, @cache.write(1, "aaaaaaaaaa", :unless_exist => true)
    @cache.write(1, nil)
    assert_equal false, @cache.write(1, "aaaaaaaaaa", :unless_exist => true)
  end
end

class MemCacheStoreTest < ActiveSupport::TestCase
  require 'dalli'

  begin
    ss = Dalli::Client.new('localhost:11211').stats
    raise Dalli::DalliError unless ss['localhost:11211']

    MEMCACHE_UP = true
  rescue Dalli::DalliError
    $stderr.puts "Skipping memcached tests. Start memcached and try again."
    MEMCACHE_UP = false
  end

  def setup
    skip "memcache server is not up" unless MEMCACHE_UP

    @cache = ActiveSupport::Cache.lookup_store(:mem_cache_store, :expires_in => 60)
    @peek = ActiveSupport::Cache.lookup_store(:mem_cache_store)
    @data = @cache.instance_variable_get(:@data)
    @cache.clear
    @cache.silence!
    @cache.logger = ActiveSupport::Logger.new("/dev/null")
  end

  include CacheStoreBehavior
  include LocalCacheBehavior
  include CacheIncrementDecrementBehavior
  include EncodedKeyCacheBehavior
  include AutoloadingCacheBehavior

  def test_raw_values
    cache = ActiveSupport::Cache.lookup_store(:mem_cache_store, :raw => true)
    cache.clear
    cache.write("foo", 2)
    assert_equal "2", cache.read("foo")
  end

  def test_raw_values_with_marshal
    cache = ActiveSupport::Cache.lookup_store(:mem_cache_store, :raw => true)
    cache.clear
    cache.write("foo", Marshal.dump([]))
    assert_equal [], cache.read("foo")
  end

  def test_local_cache_raw_values
    cache = ActiveSupport::Cache.lookup_store(:mem_cache_store, :raw => true)
    cache.clear
    cache.with_local_cache do
      cache.write("foo", 2)
      assert_equal "2", cache.read("foo")
    end
  end

  def test_local_cache_raw_values_with_marshal
    cache = ActiveSupport::Cache.lookup_store(:mem_cache_store, :raw => true)
    cache.clear
    cache.with_local_cache do
      cache.write("foo", Marshal.dump([]))
      assert_equal [], cache.read("foo")
    end
  end

  def test_read_should_return_a_different_object_id_each_time_it_is_called
    @cache.write('foo', 'bar')
    assert_not_equal @cache.read('foo').object_id, @cache.read('foo').object_id
    value = @cache.read('foo')
    value << 'bingo'
    assert_not_equal value, @cache.read('foo')
  end
end

class NullStoreTest < ActiveSupport::TestCase
  def setup
    @cache = ActiveSupport::Cache.lookup_store(:null_store)
  end

  def test_clear
    @cache.clear
  end

  def test_cleanup
    @cache.cleanup
  end

  def test_write
    assert_equal true, @cache.write("name", "value")
  end

  def test_read
    @cache.write("name", "value")
    assert_nil @cache.read("name")
  end

  def test_delete
    @cache.write("name", "value")
    assert_equal false, @cache.delete("name")
  end

  def test_increment
    @cache.write("name", 1, :raw => true)
    assert_nil @cache.increment("name")
  end

  def test_decrement
    @cache.write("name", 1, :raw => true)
    assert_nil @cache.increment("name")
  end

  def test_delete_matched
    @cache.write("name", "value")
    @cache.delete_matched(/name/)
  end

  def test_local_store_strategy
    @cache.with_local_cache do
      @cache.write("name", "value")
      assert_equal "value", @cache.read("name")
      @cache.delete("name")
      assert_nil @cache.read("name")
      @cache.write("name", "value")
    end
    assert_nil @cache.read("name")
  end

  def test_setting_nil_cache_store
    assert ActiveSupport::Cache.lookup_store.class.name, ActiveSupport::Cache::NullStore.name
  end
end

class CacheStoreLoggerTest < ActiveSupport::TestCase
  def setup
    @cache = ActiveSupport::Cache.lookup_store(:memory_store)

    @buffer = StringIO.new
    @cache.logger = ActiveSupport::Logger.new(@buffer)
  end

  def test_logging
    @cache.fetch('foo') { 'bar' }
    assert @buffer.string.present?
  end

  def test_mute_logging
    @cache.mute { @cache.fetch('foo') { 'bar' } }
    assert @buffer.string.blank?
  end
end

class CacheEntryTest < ActiveSupport::TestCase
  def test_expired
    entry = ActiveSupport::Cache::Entry.new("value")
    assert !entry.expired?, 'entry not expired'
    entry = ActiveSupport::Cache::Entry.new("value", :expires_in => 60)
    assert !entry.expired?, 'entry not expired'
    time = Time.now + 61
    Time.stubs(:now).returns(time)
    assert entry.expired?, 'entry is expired'
  end

  def test_compress_values
    value = "value" * 100
    entry = ActiveSupport::Cache::Entry.new(value, :compress => true, :compress_threshold => 1)
    assert_equal value, entry.value
    assert(value.bytesize > entry.size, "value is compressed")
  end

  def test_non_compress_values
    value = "value" * 100
    entry = ActiveSupport::Cache::Entry.new(value)
    assert_equal value, entry.value
    assert_equal value.bytesize, entry.size
  end

  def test_restoring_version_4beta1_entries
    version_4beta1_entry = ActiveSupport::Cache::Entry.allocate
    version_4beta1_entry.instance_variable_set(:@v, "hello")
    version_4beta1_entry.instance_variable_set(:@x, Time.now.to_i + 60)
    entry = Marshal.load(Marshal.dump(version_4beta1_entry))
    assert_equal "hello", entry.value
    assert_equal false, entry.expired?
  end

  def test_restoring_compressed_version_4beta1_entries
    version_4beta1_entry = ActiveSupport::Cache::Entry.allocate
    version_4beta1_entry.instance_variable_set(:@v, Zlib::Deflate.deflate(Marshal.dump("hello")))
    version_4beta1_entry.instance_variable_set(:@c, true)
    entry = Marshal.load(Marshal.dump(version_4beta1_entry))
    assert_equal "hello", entry.value
  end

  def test_restoring_expired_version_4beta1_entries
    version_4beta1_entry = ActiveSupport::Cache::Entry.allocate
    version_4beta1_entry.instance_variable_set(:@v, "hello")
    version_4beta1_entry.instance_variable_set(:@x, Time.now.to_i - 1)
    entry = Marshal.load(Marshal.dump(version_4beta1_entry))
    assert_equal "hello", entry.value
    assert_equal true, entry.expired?
  end
end

redpajama_set_name: RedPajamaGithub


text:
module Program (writeTestFile, Function(Function)) where

import Text.Printf
import System.IO
import System.FilePath
import Data.Functor
import Data.List.Split

type Module = String
data Function = Function { moduleName :: Module, functionName :: String }

testFileContents :: Module -> Function -> String
testFileContents testModuleName function =
  concat [ printf "module %s(main) where\n" testModuleName
         , printf "import qualified %s as Tested\n" (moduleName function)
         , printf "import Test.Scher\n"
         , printf "main = verify Tested.%s\n" (functionName function)
         ]

moduleToFileName :: Module -> FilePath
moduleToFileName = (<.> "hs") <$> foldl (</>) "" <$> splitOn "."

writeTestFile :: FilePath -> Function -> IO FilePath
writeTestFile testModuleName function = do
  let filename = moduleToFileName testModuleName
  withFile filename WriteMode $ \h -> do
    hPutStr h $ testFileContents testModuleName function
    return filename


Stop wasting your time thinking of reasons for your failures and shortcomings. Instead, realize that the seeds of success were planted within you when you were born. Only YOU have the power to make those seeds grow. YOU are responsible, not your mother, not your father, not society, not capitalism, and certainly not the circle of friends or business associates you hang around.
The seeds, and the power to grow them, are contained in the most awesome machine ever created: the human mind. No computer can come close to duplicating the goal setting, goal seeking, goal-attaining mechanism of the human mind. Success is a choice and not a chance. YOU were born a winner. YOU were born rich. YOU can be a success if only YOU make the right choice.
YOU cannot be successful without first developing your self-esteem. Your level of self-esteem is always based on the degree of control that you are able to exercise over yourself, and thus over your life.
People with low self-esteem are people who do not believe that they have any power, or responsibility for, their lives. They are the perennial victims and martyrs. They are leaves tossed by the winds of chance blown about with any sudden change in the weather.
YOU can exercise control over your life only to the degree that YOU believe that YOU are responsible for everything that happens in your life. Failures think that everything happens by accident and chance. Successful people realize that they are responsible.
expectations. One's success is dependent upon one's level of confidence.
We are responsible for thinking confidently about ourselves and the attainment of our goals. Whatever the conscious mind accepts as true and chooses to believe, the subconscious will be driven to achieve. We are responsible for what we consciously choose to accept and believe.
Our attitudes and actions are a result of habits ingrained in us over a period of time. We are responsible for either reinforcing good habits or unlearning bad habits and consciously replacing them with consistently practiced good habits.
If YOU associate with positive-thinking people, YOU are definitely going to achieve success. On the contrary, the opposite happens. We are responsible for finding, planting and nurturing the seeds that contain future victory, born from setbacks. In short, in all areas of your life, whether they be financial, physical, emotional, or spiritual, YOU are responsible. Once YOU recognize this, accept it, and firmly believe it, YOU are on the road to success. If YOU fail to accept this basic tenet, no success system or formula will pull you out of the hole you have dug for yourself.
Acceptance of responsibility is the crucial starting point of a successful life. None of the practical techniques for achievement are of value unless YOU first realize that YOU can take control of your life. YOU will not set a definite goal, with a plan for its attainment on a certain date, unless YOU realize that YOU will take control of your life by doing so. If YOU believe that you are totally controlled by fate, your environment, or other external forces, then YOU most certainly will be ruled by those forces. All causation is mental, and YOU can control your thoughts.
hey gregg, just read this today i really needed it to push me up.. it succeeded thanks is this a web-site or taken from a book?
Patrice posted another comment. How should we answer? See below.


text:
Clipboard Email Text message
Rose O'Connor RIP
I just heard on a clare fm archived program (june 10) that Rose O'Connor has passed away.
From what I have read - in particular the notes from Gerry O'Connor's
Journeyman album - Rose O'Connor was an important teacher,
particularly for the people in County Louth and surrounding area.
See also http://www.rip.ie/death_notices_detail.asp?NoticeID=46947
Now - I'm an outsider who knows nothing, but it would be nice to use
this tool - The Session - to record a few anecdotes from those who
were influenced by her. Over to you; that's all I can say, really.
# Posted by Mark Huppert 14 years ago .
Re: Rose O'Connor RIP
she taught me in the '80's and was a lovely woman - though if you hadn't practised she would let you know. The day I passed my driving test I drove for the 1st time to my lesson in Patrick Street Dundalk and when I returned to the car an hour later I realised I had locked my keys in the car. Rose had the whole street out helping me break into the car. Hilarious now but at the time……
# Posted by iwerzon 14 years ago .
I've only heard the name mentioned in relation to music from the border area [Louth, Down.]
Jim McAuley might have a yarn or two though.
Very sad this, so many of the great legends are beginning to give into the test of time now. Lets hope the current generation can keep it going just as well.
# Posted by patrickcumminsmusic 14 years ago .
ONE OF THE COUNTRY'S MOST RENOWNED FIDDLE TEACHERS
Rose O'Connor, 1921-2008
The death took place on June 8th of Rose O'Connor one of the country's most renowned fiddle teachers who, through her teaching and love of the Irish music, has left a legacy of fine traditional musicians that will remain for generations.
Rose who was aged 87 resided at 10 Patrick Street the house into which she moved after her marriage to her late husband Peter and within whose walls hundreds were introduced to Rose's remarkable teaching skills and came to love the sweet sounds that a well played fiddle can make.
Originally from Moynalty, Rose's family moved to Ladyrath, Wilkinstown in Co. Meath where she grew up and where she first developed her interest in music and fiddle playing within her family. As a young girl, her talent was recognised through prizes won at Fleadhs all over the country and she was soon invited to join the Emerald Ceilí Band which, even then, was gaining a reputation that still exists as one of the fine exponents of ceilí music in the country.
Like many if her generation, Rose had to take the emigrant boat to England, working in London as a seamstress for almost five years. Musical ambitions had to be sidelined in the effort to earn a living but the skills that Rose acquired as a seamstress were invaluable in later life in providing for her young family.
Fate played a role in Rose settling in Dundalk for she met her husband Peter whilst visiting her sister in Dundalk while on holiday from London and they eventually set up home in Patrick Street.
Rose was soon enticed to take up the fiddle again and joined the Cuchulainn Ceili Band in which her brother-in-law, Joe Dunne also played. The band toured the dance halls of the country and Rose would frequently arrive home in the early hours of the morning from a dance in some remote part of the country to care for her children.
After the birth of her third child, Rose abandoned the demands of touring with the band for teaching and with her great friends and fellow lovers of traditional music, Rory Kennedy and Kevin O'Callaghan, she began fiddle classes.
Soon their pupils, including two of her own sons, Brendan and Gerry were collecting major awards, like their first All-Ireland title at Fleadh Ceoil in 1967, an honour they repeated for the following two years. Indeed all of Rose's children inherited her love of Irish music and dance, and all have played professionally, with Gerry now a lecturer in DKIT, having recently acquired his Masters to the delight of his mother. That love of music within the family has passed to the next generation and some years back, this was recognised by UTV when they featured Gerry's family and Rose on a programme titled "Three Generations".
Rose believed in preserving the tradition of Irish music and was therefore a keen collector of thousands of tunes, some of which she learned from her parents and which she passed on to her own children and the hundreds of pupils who benefited from her teaching talent. Rose even managed to pen a few tunes herself, one of which was played at her graveside by her family.
Her contribution to Comhaltas Ceoltoirí Éireann was recognised when she was presented with a special certificate and medal some years ago while she was the recipient of the inaugural award at Ceoil Carlinn earlier this year. In 2005, the Dundalk Arts Committee honoured her with its chairman's award and she was grand marshal at the town's St. Patrick's Day parade.
It was fitting that Rose should be honoured and remembered in this way, for she inherited a love of all things Irish, especially music, and was blessed not just with the skill to play that music but to give others a love of that music and the ability to perform it.
She will of course be fondly remembered by her family not just as a very talented musician and teacher but as a loving mother who was devoted to their well being and who gave them not just a talent that afforded them the opportunity to make a career out of music but also a loving family environment in which they thrived.
Rose had been in relatively good health until recent times and died peacefully in the Louth Hospital surrounded by her family.
Rose is survived by her sons Brendan, Peter and Gerry, daughter Eilish, sisters Alice, Agnes, Mary and Patricia, brothers-in-law Willie and Joe, seven grandchildren and two great-grandchildren, daughters in law Briege, Síle, Els and Angie, nephews, nieces, relatives and friends, She was pre-deceased by her husband Peter who died in 1976 and by her brother Jack and her sister Elizabeth.
Rose's remains reposed at her home in Patrick Street where many musicians and friends called, and where on occasions, some of Rose's favourite tunes got an airing. They were then taken to St. Nicholas's Church where Requiem Mass was offered by Reverend Seamus Dobbin C.C. who gave a very fitting eulogy on the contribution that Rose had made not just to music but to many aspects of life.
The readings were given by daughter Eilish and son Peter while the prayers of Intercession were led by sons Gerry and Brendan, grand-daughters Tara and Siubhán O'Connor and grandson Feilimí O'Connor. The gifts, including a fiddle, were presented during the Mass by daughters-in-law Angie, Briege, Els and Síle, by grandson Finnian and by great-grand-daughter, Chloé O'Connor.
Understandably, music was a major part of the service and as Rose's remains were borne into the church, the traditional musical tunes were played by her most recent pupils led by olive Murphy. A very old friend from Rose's Ceilí Band days, Kathleen Duffy, played during the offertory procession while Áine McGeeney sang a local air "Úr Chnoic Céin Mhic Cáinte".
Rose's grandson, Dónal O'Connor composed a special piece named after his beloved grandmother "Róise na bhFonn" which he played during the service and as Rose's remains were taken from the church some of Rose's former students played, among these, Mary Grannell, Austin Dawe, Claire Murphy, Nuala Kennedy and Brendan Larrissey.
As Rose's remains were finally laid to rest in St. Patrick's cemetery, her sons and daughter together with daughter-in-law Síle played a number of her favourite pieces including one that she penned herself.
The Month's mind Mass is on July 19th in St. Nicholas at 10am
("The Argus", June 25th 2008)
# Posted by docfiddle 14 years ago .
If you are a member of The Session, log in to add a comment.
If you aren't a member of The Session yet, you can sign up now. Membership is free, and it only takes a moment to sign up.

redpajama_set_name: RedPajamaCommonCrawl


text:
DBMS Global
How Hong Kong became a 'city of malls'
If people in Hong Kong want to see some provocative art this winter, they won't necessarily head to an art gallery or museum -- they'll go to the mall.
The city's new retail complex, K11 Musea, certainly doesn't look like an ordinary shopping center.
Greenery cascades down its sinuous facades, while inside, a group of over 100 designers has delivered a bronze-hued, riotous clash of patterns and forms, including a huge geometric sphere that looms over one of the mall's atriums.
Many of the artworks displayed throughout the mall are site-specific commissions.
Opened in late August by property scion and avid art collector, Adrian Cheng, the mall is one of three dozen K11 properties set to open around China by 2024.
"My goal is to propagate culture," said Cheng, describing the K11 brand as "kind of a social responsibility to bring it from the 'top shelf' to the 'lower shelf,' so to speak, so that Chinese millennials can learn about art and culture, be inspired and acquire knowledge in a place they feel comfortable in."


Wherever he goes, he focuses on the notion of intimacy. Wondering about the ways of inhabiting the territories and their uses, as well as the way in which nature and human occupation intertwine, he has always endeavoured to push back the limits of the documentary. He reveals, under the innocuous appearance of its scenes, hidden stories. He defends the view of the human eye as a method of recording and intimacy as a mode of description. His photographic work is the continuity of his training as a filmmaker: the intuitive scenario of the image, the exploration of new narrative forms representing the moment with veracity.


text:
Aaron Brocklehurst (* 10. Juni 1985 in Nanaimo, British Columbia) ist ein ehemaliger kanadischer Eishockeyspieler, der im Verlauf seiner aktiven Karriere zwischen 2004 und 2020 unter anderem 195 Spiele für die Grizzly Adams Wolfsburg, den ERC Ingolstadt und die Hamburg Freezers in der Deutschen Eishockey Liga (DEL) sowie 223 weitere Partien für die Vienna Capitals und den EHC Linz in der österreichischen Erste Bank Eishockey Liga (EBEL) auf der Position des Verteidigers bestritten hat.

Karriere

Brocklehurst begann seine Karriere bei den Alberni Valley Bulldogs in der British Columbia Hockey League (BCHL), einer kanadischen Juniorenliga. In derselben Liga spielte Brocklehurst ebenfalls für die Powell River Kings und Victoria Salsa. Über die St. Cloud State University in der Western Collegiate Hockey Association (WCHA) führte ihn sein Weg zu den ECHL-Teams Florida Everblades, Victoria Salmon Kings, Gwinnett Gladiators, Reading Royals und dem AHL-Team Lake Erie Monsters nach Europa in die finnische Eliteliga SM-liiga. Dort stand Brocklehurst zunächst bei Rauman Lukko unter Vertrag. Nach seinem Transfer zu den Pelicans Lahti wurde er im Jahr 2012 finnischer Vizemeister. Der offensiv ausgerichtete Verteidiger erzielte dabei in insgesamt 44 Spielen sieben Tore und bereitete zwölf weitere Treffer vor. Insgesamt kam er während seiner zweijährigen Zeit in Finnland in 97 Partien auf 14 Tore und 29 Torvorlagen.

Im Juni 2012 wurde bekannt, dass Brocklehurst in die Deutsche Eishockey Liga (DEL) zu den Grizzly Adams Wolfsburg wechselt und dort mit einem Einjahresvertrag ausgestattet wurde. Im Januar 2013 wurde der Vertrag per Option vorzeitig um ein Jahr bis 2014 verlängert. Zur Saison 2014/15 wechselte Brocklehurst innerhalb der DEL zum ERC Ingolstadt. Nach einer Saison und dem Erreichen der Vizemeisterschaft wurde sein auslaufender Vertrag in Ingolstadt nicht verlängert, sodass sich der Kanadier zur Saison 2015/16 dem ungarischen Klub Fehérvár AV19 aus der österreichischen Erste Bank Eishockey Liga (EBEL) anschloss. Im Februar 2016 kehrte er in die DEL zurück und unterschrieb einen Vertrag bis Saisonende bei den Hamburg Freezers.

Zur Saison 2016/17 wechselte der Kanadier zu den Vienna Capitals zurück in die EBEL. Mit den Capitals wurde Brocklehurst im Frühjahr 2017 Österreichischer Meister. Nach einer weiteren Spielzeit in der österreichischen Landeshauptstadt wechselte der Verteidiger im Sommer 2018 zum Ligakonkurrenten EHC Linz, den er nach einer Saison verließ. Seine letzte Profispielzeit verbrachte er schließlich bei den Sheffield Steelers in der britischen Elite Ice Hockey League (EIHL), ehe er seine Karriere im Sommer 2020 im Alter von 35 Jahren für beendet erklärte.

Erfolge und Auszeichnungen

Karrierestatistik

Weblinks

Einzelnachweise

Eishockeyspieler (St. Cloud State Huskies)
Eishockeyspieler (Florida Everblades)
Eishockeyspieler (Lake Erie Monsters)
Eishockeyspieler (Victoria Salmon Kings)
Eishockeyspieler (Gwinnett Gladiators)
Eishockeyspieler (Reading Royals)
Eishockeyspieler (Rauman Lukko)
Eishockeyspieler (Pelicans)
Eishockeyspieler (Grizzlys Wolfsburg)
Eishockeyspieler (ERC Ingolstadt)
Eishockeyspieler (Alba Volán Székesfehérvár)
Eishockeyspieler (Hamburg Freezers)
Eishockeyspieler (Vienna Capitals)
Eishockeyspieler (EHC Linz)
Eishockeyspieler (Sheffield Steelers)
Kanadier
Geboren 1985
Mann

redpajama_set_name: RedPajamaWikipedia


As the present-day baby spawned by Michael Kors,Michael Kors Bags Uk a famous American fashion designer, the Michael Kors wrist watch is labeled as a modern day timepiece for either females and also males.Many of Michael Kors watch models are intricately designed and made up of stainless steel bracelets and cases with a number of precious gems and stones.With appealing variations, Michael Kors Outlet Uk wearers always receive compliments from those that see the watch on their wris.Regardless of the Michael Kors wrist watch style you choose, you can be totally certain that you are getting an accessory that is certainly stunning and keep you on fashion trend.Michael Kors Outlet Store The great part is the fact that the Michael Kors wrist watch models readily available.
at bargain price tag if you manage to purchase one for the duration of Michael Kors wrist watch sale at certain times of the year or buy by means of selected e-store.Michael Kors Outlet Online If MK5055 and Michael Kors Rose Gold wrist watch model MK5128 usually are not your style, Cheap Michael Kors Uk it's possible you'll take the MK5020 into consideratio.
The elegant details make all the difference on this Michael Kors watch style.Michael Kors Outlet Store The MK5020 includes white mother of pearl dial featuring 3 sub dials, day window and square crystal index markers.Cheap Michael Kors Uk This is one more great alternative for women of all ages who are in search of fashion watche.
Welcome to the home of the Metro Communications, Inc. a proven leader in the telecommunications field. Please take a few minutes to browse through our site to learn more about us, several of our satisfied customers, and how to contact us. So sit back and relax so that you may see why Metro communications, Inc. will be your provider for voice, data, fiber optics in network services. Thank you!


This episode we tackle the importance of brotherhood, particularly brotherhood in Christ. Using an article that was published on the dangers of being lonely, the need for brotherhood and importance of it for our own persona and spiritual well-being. And we will round things out with you can be a part of Band of Christian Brothers men's fraternity.


Planet Waves have unique 3 steps of guitar body care.
NOTE : Use clean & dry cloth (micro fibre cloth is better) to perform with the RESTORE liquid, do not use dirty / dusty cloth as it will add on scratches on your guitar surfaced !!
Purpose : Step-1, Deep Cleaning Cream Polish (Instrument Care). to wipe off any stubborn stains, dirt, minor swirl scratches on your guitar surface. Typicall good for old guitars which need restoration maintenance once for all.


This service is provided by Dr Andreas Heinz who will also offer courses for PhD candidates in quantitative methodology and data analysis.
Dr Heinz is a post-doc researcher at the University of Luxembourg since March 2012. He graduated in economics in 2004 and received a PhD from the University of Trier in 2008. From 2007 to 2012 he taught research methods and analysis of quantitative data at the University of Trier. In 2010 and 2011 he was a visiting lecturer at the University of Kaiserslautern.
From 2012-2016, he analysed the data of Luxembourgish Census 2011 and the Enquête sur la sécurité in a joint project between the research unit INSIDE and the National Institute for statistics and economic studies of the Grand Duchy of Luxembourg (Statec). Since 2016, he is member of Luxembourg's HBSC research team (Health Behaviour in School-aged Children-study), responsible for data management and data analysis.
His research interests include survey methodology, social indicators and the analysis of quantitative data.


Starting today, ski clubs are encouraged to download "Fly", the Steve Azar "Official World Championships Song," from iTunes, produce a video, featuring their club, with the song as the background music, and upload their video using the following link: http://vailbeavercreek2015.com/ski-club-video-challenge/. The ski club that records the most views by Saturday, Feb. 14, 2015, will win $25,000.
"A World Championships is an opportunity to celebrate athletes at the top of the sport, but it's also an opportunity recognize and support the next generation of ski racers," said Ceil Folz, president of the Vail Valley Foundation and head of the 2015 World Championships Organizing Committee. "The members of these ski clubs are our future, and through this contest we want to bring these young athletes the recognition, and for one lucky club the financial support, to help them continue to follow their dreams."
All contest submissions must be made by an established ski club, and each club is limited to one submission. The winner will determined by total number of views, so ski clubs are encouraged to get creative, upload their videos as soon as possible, and start promoting their submissions on Facebook, Twitter, and Instagram using the official event hashtag #Vail2015. Clubs are encouraged to visit http://vailbeavercreek2015.com/ski-club-video-challenge/ for rules on how to submit, and to watch a special contest shout out from Lindsey Vonn. The winning club will be announced and the prize will be awarded following the conclusion of the 2015 World Championships.
Scheduled from February 2-15 of 2015, the FIS Alpine World Ski Championships in Vail and Beaver Creek are expected to showcase athletes from over 70 nations, with an estimated 750 million worldwide television viewers and an onsite media and broadcast entourage of approximately 1,500 members. For additional information on the 2015 FIS Alpine World Ski Championships in Vail and Beaver Creek, visit www.vailbeavercreek2015.com.


text:
Notre Dame Football Schedule
By ndjrs@ndjrs Nov 4, 2021, 8:51pm EDT
Share All sharing options for: Navy, Notre Dame Announce 2023 Dublin Game, Extend Football Series to 2032
Navy kicks off against Notre Dame in a 1996 game played at Dublin's Croke Park. The Irish prevailed, 54-27, in the first Emerald Classic.
Notre Dame Athletics
The Notre Dame Fighting Irish and Navy Midshipmen will jointly request a waiver to move the Irish's Nov. 11, 2023 home game to Dublin, Ireland's Aviva Stadium and play Aug. 26 instead.
Notre Dame also announced Thursday that has extended its agreement with the Naval Academy to play annual football games through 2032. The two teams play Saturday at Notre Dame, with games scheduled for Nov. 12, 2022 at M&T Bank Stadium in Baltimore and Oct. 26, 2024 at a location to be announced. (FBSchedules.com says the game will be played at MetLife Stadium in East Rutherford, N.J.)
Although the teams have played 93 times previously — and twice in Ireland — this will be the first Notre Dame home game that's been moved overseas. The Irish are 3-0 on foreign soil, beating Navy in 1996 and 2012 also besting the Miami Hurricanes 40-15 in the 1979 Mirage Bowl played in Tokyo, Japan. Navy and Notre Dame were supposed to play in Dublin last year, but the game was canceled due to the ongoing COVID-19 pandemic.
NBC will broadcast the Aer Lingus College Football Classic in 2023, its first try at an international collegiate football contest, while Peacock will simulcast. The teams will play for two trophies that day: the Rip Miller Trophy and the Keough-Naughton Trophy.
The Notre Dame 2023 schedule looks, at present, like this:
Aug. 26 vs. Navy at Aviva Stadium, Dublin, Ireland (subject to NCAA approval)
Sept. 16 vs. Central Michigan (story)
Sept. 23 vs. Ohio State
Oct. 14 vs. USC
Oct. 28 vs. Wake Forest
Nov. 4 at Clemson
Nov. 11 (This is where the Navy home game was originally scheduled)
Nov. 25 at Stanford
Other games with no set (or announced) dates:
at North Carolina State
at Duke
at Louisville
vs. Pittsburgh


text:
Q: Animate insertAdjacentHTML in JS Is it possible to animate the insertAdjacentHTML in Jquery? Right now it just pastes it directly in the assigned div.
Current function
$(".select-category").click(function(){
  addSelect("<%= j render "userselections/select-companies", companies: @companies %>");
});

function addSelect(selectHTML) {
  var category_selection = document.getElementById('product-list');
  category_selection.innerHTML = "";
  category_selection.insertAdjacentHTML('beforeend', selectHTML);
}

A: After inserting the html elements into dom tree, you must retrieve width or height of a related element to trigger DOM reflows.
function addSelect(selectHTML) {
  var category_selection = document.getElementById('product-list');
  category_selection.innerHTML = "";
  category_selection.insertAdjacentHTML('beforeend', selectHTML);
  // this code is for triggering DOM reflows
  category_selection.clientHeight;
  // Implement transitions here
}

A: You can use .fadeIn, for example:

const newDiv = $('
new text
')
  .css('display', 'none')
  .fadeIn(1000);
$('#container').append(newDiv);

text

Or any CSS transition you can think of

redpajama_set_name: RedPajamaStackExchange


text:
You are here: Home » Featured » Bob Kingsley Connects Radio and Songwriters
Bob Kingsley Connects Radio and Songwriters
Eric T. Parker • March 1, 2013
Pictured (L-R): Bob Kingsley, Lee Thomas Miller, Jeff Stevens, Brandy Clark, and Tom Douglas.
For the second consecutive year, Bob Kingsley's Acoustic Alley hosted a lineup of hit songwriters for in-the-round performances for the Country Radio Seminar. Presented by Bob Kingsley's Country Top 40 and co-sponsored by SunTrust Bank, Thursday's (Feb. 28) event offered a chance for lyricists to candidly share thoughts, perceptions and insights with radio gatekeepers.
Each No. 1 hit was humanized and personalized by the songwriters that crafted it, which help to deepen the very relationship discussed during the Ethnographic presentation at the broadcasting conference.
Naturally, most songwriters offered praise for Kingsley during their round. The musical poets shared memories of the various times the legendary broadcaster announced their penned songs had climbed to the summit of the charts, including "One of Those Nights" from Luke Laird, "Tornado" from Natalie Hemby, and "Alone With You" from Shane McAnally––and that was just from the first round.
The second round of performers compelled the audience to their feet while listening to Tom Douglas' "House That Built Me," Lee Thomas Miller's "In Color," Jeff Stevens' "Carrying Your Love With Me," and Brandy Clark's "Better Dig Two."
Marv Green, Wendell Mobley, Jason Sellers and Ashley Gorley were included in an additional round, performing renditions of their respective hits, including "Creepin'," "Tattoos on This Town," "Strange," and "Why Ya Wanna."
It is always impressive to witness the power of a song, especially when it intersects with another bedrock of our industry, radio. As for Kingsley's evening, broadcasters from around the U.S. gathered to connect to a song, and walk away finding there's only one degree of separation between each other.
Category: Featured, Publishing, Radio
Eric T. Parker oversees operations and contributes editorial for MusicRow's print magazine, MusicRow.com, the RowFax tip sheet and the MusicRow CountryBreakout chart. He also facilitates annual events for the enterprise, including MusicRow Awards, CountryBreakout Awards and the Rising Women on the Row. [email protected] | @EricTParker
Grand Ole Opry, Country Music HOF To Mark 50th Anniversary of Patsy Cline Plane Crash »
« 'MusicRow' No. 1 Song


text:
Dwayne Johnson is the third-highest choice for US presidential candidate
· June 6, 2020
As we know Dwayne 'The Rock' Johnson is not even running for the presidential race, but he is already the third most backed presidential candidate after his emotional speech earlier this week.
UK bookmakers added him to the list after his Black Lives Matter speech criticizing President Donald Trump. According to Oddschecker, the 48-year-old has received 3.34 percent of all bets since he was added to the market, putting him behind Trump, who has received 51 percent, and Biden, who has received 35 percent.
J.K. Rowling is releasing her new book online for free
The numbers are quite low and there would be no chance that we will be seeing him in the office anytime soon. But given the fact he has already shown his interest in running for the president's position, there may be the case that in the future he might be one of the candidates running.
The sudden surge in Dwayne's popularity is because of his video questioning the leaders, Where are You?
Our country is crippled and on its knees, begging to be heard and pleading for change. Where is our compassionate leader? The leader who unifies and inspires our country at our most painful time when we need it the most. The leader who steps up and takes full accountability for our country and embraces every color in it. The leader who picks our country up off its knees and says you have my word – we got this – and together, change will happen. Where are you? Because we're all here. Maybe one day that galvanizing leader will emerge. Either way, the process to change has already begun. #normalizeequality #blacklivesmatter
A post shared by therock (@therock) on Jun 3, 2020 at 7:33pm PDT
Johnson has expressed interest in a political career over the past several years but has said he has no intention of launching a campaign anytime soon.
Read more news: J.K. Rowling is releasing her new book online for free
dwayne johnsonthe rock