text:
require 'spec_helper'

describe SideJob::Job do
  describe '#initialize' do
    it 'raises error if job does not exist' do
      expect { SideJob::Job.new('123') }.to raise_error
    end
  end

  describe '#==, #eql?' do
    it 'two jobs with the same id are eq' do
      @job = SideJob.queue('testq', 'TestWorker')
      expect(SideJob::Job.new(@job.id)).to eq(@job)
      expect(SideJob::Job.new(@job.id)).to eql(@job)
    end

    it 'two jobs with different id are not eq' do
      @job = SideJob.queue('testq', 'TestWorker')
      @job2 = SideJob.queue('testq', 'TestWorker')
      expect(@job).not_to eq(@job2)
      expect(@job).not_to eql(@job2)
    end
  end

  describe '#hash' do
    it 'uses hash of the job id and can be used as hash keys' do
      job = SideJob.queue('testq', 'TestWorker')
      expect(job.hash).to eq(job.id.hash)
      h = {}
      h[job] = 1
      job2 = SideJob::Job.new(job.id)
      expect(job.hash).to eq(job2.hash)
      h[job2] = 3
      expect(h.keys.length).to be(1)
      expect(h[job]).to be(3)
    end
  end

  describe '#to_s' do
    it 'returns the redis key' do
      job = SideJob.queue('testq', 'TestWorker')
      expect(job.to_s).to eq "job:#{job.id}"
    end
  end

  describe '#exists?' do
    it 'returns true if job exists' do
      @job = SideJob.queue('testq', 'TestWorker')
      expect(@job.exists?).to be true
    end

    it 'returns false if job no longer exists' do
      @job = SideJob.queue('testq', 'TestWorker')
      @job.status = 'terminated'
      @job.delete
      expect(@job.exists?).to be false
    end
  end

  describe '#status' do
    it 'retrieves status' do
      @job = SideJob.queue('testq', 'TestWorker')
      expect(@job.status).to eq 'queued'
    end
  end

  describe '#status=' do
    before do
      @job = SideJob.queue('testq', 'TestWorker')
    end

    it 'sets status' do
      @job.status = 'newstatus'
      expect(@job.status).to eq 'newstatus'
    end

    it 'publishes a message with status change' do
      expect(SideJob).to receive(:publish).with("/sidejob/job/#{@job.id}", {status: 'newstatus'})
      @job.status = 'newstatus'
    end

    it 'does not publish a message if status does not change' do
      @job.status = 'newstatus'
      expect(SideJob).not_to receive(:publish)
      @job.status = 'newstatus'
    end

    it 'does not publish a message if worker has status_publish: false' do

    end
  end

  describe '#aliases' do
    before do
      @job = SideJob.queue('testq', 'TestWorker')
    end

    it 'returns empty array if no aliases' do
      expect(@job.aliases).to eq []
    end

    it 'returns all aliases' do
      @job.add_alias('abc')
      @job.add_alias('xyz')
      expect(@job.aliases).to match_array ['abc', 'xyz']
    end
  end

  describe '#add_alias' do
    before do
      @job = SideJob.queue('testq', 'TestWorker')
      @job.add_alias('abc')
    end

    it 'adds an alias' do
      expect(SideJob.redis.smembers("#{@job.redis_key}:aliases")).to eq ['abc']
      expect(SideJob.redis.hgetall('jobs:aliases')).to eq({'abc' => @job.id.to_s})
      @job.add_alias('xyz')
      expect(SideJob.redis.smembers("#{@job.redis_key}:aliases")).to match_array ['abc', 'xyz']
      expect(SideJob.redis.hgetall('jobs:aliases')).to eq({'abc' => @job.id.to_s, 'xyz' => @job.id.to_s})
      expect(@job.aliases).to match_array ['abc', 'xyz']
    end

    it 'does nothing if name is already alias' do
      @job.add_alias('abc')
      expect(SideJob.redis.smembers("#{@job.redis_key}:aliases")).to eq ['abc']
      expect(SideJob.redis.hgetall('jobs:aliases')).to eq({'abc' => @job.id.to_s})
    end

    it 'raises error if name is an alias for another job' do
      @job2 = SideJob.queue('testq', 'TestWorker')
      expect { @job2.alias_as('abc') }.to raise_error
    end

    it 'raises error if name is invalid' do
      expect { @job.add_alias('1234') }.to raise_error
      expect { @job.add_alias('!') }.to raise_error
      expect { @job.add_alias('') }.to raise_error
      expect { @job.add_alias(nil) }.to raise_error
    end
  end

  describe '#remove_alias' do
    before do
      @job = SideJob.queue('testq', 'TestWorker')
      @job.add_alias('abc')
    end

    it 'removes an existing alias' do
      @job.add_alias('xyz')
      expect(@job.aliases).to match_array ['abc', 'xyz']
      @job.remove_alias('xyz')
      expect(@job.aliases).to match_array ['abc']
    end

    it 'throws an error if alias does not exist' do
      expect { @job.remove_alias('xyz') }.to raise_error
    end
  end

  describe '#run' do
    before do
      @job = SideJob.queue('testq', 'TestWorker')
      Sidekiq::Queue.new('testq').find_job(@job.id).delete
      @job.status = 'completed'
    end

    %w{queued running suspended completed}.each do |status|
      it "queues the job if status is #{status}" do
        expect {
          @job.status = status
          expect(@job.run).to eq @job
          expect(@job.status).to eq 'queued'
        }.to change {Sidekiq::Stats.new.enqueued}.by(1)
      end
    end

    %w{failed terminating terminated}.each do |status|
      it "does not queue the job if status is #{status}" do
        expect {
          @job.status = status
          expect(@job.run).to be nil
          expect(@job.status).to eq status
        }.to change {Sidekiq::Stats.new.enqueued}.by(0)
      end

      it "queues the job if status is #{status} and force=true" do
        expect {
          @job.status = status
          expect(@job.run(force: true)).to eq @job
          expect(@job.status).to eq 'queued'
        }.to change {Sidekiq::Stats.new.enqueued}.by(1)
      end
    end

    it "does not queue the job if it is already queued" do
      @job.run
      expect {
        expect(@job.run).to eq @job
      }.to change {Sidekiq::Stats.new.enqueued}.by(0)
    end

    it 'does nothing if no parent job and parent=true' do
      @job.status = 'completed'
      expect {
        expect(@job.run(parent: true)).to be nil
        expect(@job.status).to eq 'completed'
      }.to change {Sidekiq::Stats.new.enqueued}.by(0)
    end

    it 'runs parent job if parent=true' do
      parent = SideJob.queue('testq', 'TestWorker')
      parent.adopt(@job, 'child')
      @job.status = 'completed'
      parent.status = 'completed'
      expect(@job.run(parent: true)).to eq parent
      expect(@job.status).to eq 'completed'
      expect(parent.status).to eq 'queued'
    end

    it 'throws error and immediately sets status to terminated if job class is unregistered' do
      SideJob.redis.del "workers:#{@job.info[:queue]}"
      expect { @job.run }.to raise_error
      expect(@job.status).to eq 'terminated'
    end

    it 'can schedule a job to run at a specific time using a float' do
      time = Time.now.to_f + 10000
      expect { @job.run(at: time) }.to change {Sidekiq::Stats.new.scheduled_size}.by(1)
      expect(Sidekiq::ScheduledSet.new.find_job(@job.id).at).to eq(Time.at(time))
      expect(@job.status).to eq 'queued'
    end

    it 'can schedule a job to run at a specific time using a Time' do
      time = Time.now + 1000
      expect { @job.run(at: time) }.to change {Sidekiq::Stats.new.scheduled_size}.by(1)
      expect(Sidekiq::ScheduledSet.new.find_job(@job.id).at).to eq(Time.at(time.to_f))
      expect(@job.status).to eq 'queued'
    end

    it 'can schedule a job to run in a specific time' do
      now = Time.now
      allow(Time).to receive(:now) { now }
      expect { @job.run(wait: 100) }.to change {Sidekiq::Stats.new.scheduled_size}.by(1)
      expect(Sidekiq::ScheduledSet.new.find_job(@job.id).at).to eq(Time.at(now.to_f + 100))
      expect(@job.status).to eq 'queued'
    end

    it 'raises error if job no longer exists' do
      job2 = SideJob.find(@job.id)
      job2.status = 'terminated'
      expect(job2.delete).to be true
      expect { @job.run }.to raise_error
    end
  end

  describe '#terminated?' do
    before do
      @job = SideJob.queue('testq', 'TestWorker')
    end

    it 'returns false if job status is not terminated' do
      expect(@job.terminated?).to be false
    end

    it 'returns true if job status is terminated' do
      @job.status = 'terminated'
      expect(@job.terminated?).to be true
    end

    it 'returns false if child job is not terminated' do
      @job.status = 'terminated'
      SideJob.queue('testq', 'TestWorker', parent: @job, name: 'child')
      expect(@job.terminated?).to be false
    end

    it 'returns true if child job is terminated' do
      @job.status = 'terminated'
      child = SideJob.queue('testq', 'TestWorker', parent: @job, name: 'child')
      child.status = 'terminated'
      expect(@job.terminated?).to be true
    end
  end

  describe '#terminate' do
    before do
      @job = SideJob.queue('testq', 'TestWorker')
      Sidekiq::Queue.new('testq').find_job(@job.id).delete
      @job.status = 'completed'
    end

    it 'sets the status to terminating' do
      @job.terminate
      expect(@job.status).to eq 'terminating'
    end

    it 'does nothing if status is terminated' do
      @job.status = 'terminated'
      @job.terminate
      expect(@job.status).to eq 'terminated'
    end

    it 'throws error and immediately sets status to terminated if job class is unregistered' do
      SideJob.redis.del 'workers:testq'
      expect { @job.terminate }.to raise_error
      expect(@job.status).to eq 'terminated'
    end

    it 'queues the job for termination run' do
      expect {
        @job.terminate
      }.to change {Sidekiq::Stats.new.enqueued}.by(1)
    end

    it 'by default does not terminate children' do
      child = SideJob.queue('testq', 'TestWorker', parent: @job, name: 'child')
      expect(child.status).to eq 'queued'
      @job.terminate
      expect(child.status).to eq 'queued'
    end

    it 'can recursively terminate' do
      5.times {|i| SideJob.queue('testq', 'TestWorker', parent: @job, name: "child#{i}") }
      @job.terminate(recursive: true)
      @job.children.each_value do |child|
        expect(child.status).to eq 'terminating'
      end
    end
  end

  describe '#queue' do
    before do
      @job = SideJob.queue('testq', 'TestWorker')
    end

    it 'can queue child jobs' do
      expect(SideJob).to receive(:queue).with('testq', 'TestWorker', args: [1,2], inports: {'myport' => {}}, parent: @job, name: 'child', by: "job:#{@job.id}").and_call_original
      expect {
        child = @job.queue('testq', 'TestWorker', args: [1,2], inports: {'myport' => {}}, name: 'child')
        expect(child.parent).to eq(@job)
        expect(@job.children).to eq('child' => child)
      }.to change {Sidekiq::Stats.new.enqueued}.by(1)
    end

    it 'queues with by string set to self' do
      child = @job.queue('testq', 'TestWorker', name: 'child')
      expect(child.info[:created_by]).to eq "job:#{@job.id}"
    end
  end

  describe '#child' do
    it 'returns nil for missing child' do
      job = SideJob.queue('testq', 'TestWorker')
      expect(job.child('child')).to be nil
    end

    it 'returns child by name' do
      job = SideJob.queue('testq', 'TestWorker')
      child = SideJob.queue('testq', 'TestWorker', parent: job, name: 'child')
      expect(job.child('child')).to eq child
    end
  end

  describe '#children, #parent' do
    it 'can get children and parent jobs' do
      parent = SideJob.queue('testq', 'TestWorker')
      child = SideJob.queue('testq', 'TestWorker', parent: parent, name: 'child')
      expect(parent.children).to eq('child' => child)
      expect(child.parent).to eq(parent)
    end
  end

  describe '#disown' do
    it 'raises error if child cannot be found' do
      parent = SideJob.queue('testq', 'TestWorker')
      expect { parent.disown('child') }.to raise_error
    end

    it 'raises error if job is not child' do
      parent = SideJob.queue('testq', 'TestWorker')
      job = SideJob.queue('testq', 'TestWorker')
      expect { parent.disown(job) }.to raise_error
    end

    it 'disassociates a child job from the parent' do
      parent = SideJob.queue('testq', 'TestWorker')
      child = SideJob.queue('testq', 'TestWorker', parent: parent, name: 'child')
      expect(child.parent).to eq(parent)
      expect(parent.child('child')).to eq child
      parent.disown('child')
      expect(child.parent).to be nil
      expect(parent.child('child')).to be nil
    end

    it 'can specify a job' do
      parent = SideJob.queue('testq', 'TestWorker')
      child = SideJob.queue('testq', 'TestWorker', parent: parent, name: 'child')
      expect(child.parent).to eq(parent)
      expect(parent.child('child')).to eq child
      parent.disown(child)
      expect(child.parent).to be nil
      expect(parent.child('child')).to be nil
    end
  end

  describe '#adopt' do
    it 'can adopt an orphan job' do
      job = SideJob.queue('testq', 'TestWorker')
      child = SideJob.queue('testq', 'TestWorker')
      expect(child.parent).to be nil
      job.adopt(child, 'child')
      expect(child.parent).to eq(job)
    end

    it 'raises error when adopting self' do
      job = SideJob.queue('testq', 'TestWorker')
      expect(job.parent).to be nil
      expect { job.adopt(job, 'self') }.to raise_error
    end

    it 'raises error if job already has a parent' do
      job = SideJob.queue('testq', 'TestWorker')
      job2 = SideJob.queue('testq', 'TestWorker')
      child = SideJob.queue('testq', 'TestWorker')
      job.adopt(child, 'child')
      expect { job2.adopt(child, 'mine') }.to raise_error
    end

    it 'raises error if no name is given' do
      job = SideJob.queue('testq', 'TestWorker')
      child = SideJob.queue('testq', 'TestWorker')
      expect { job.adopt(child, nil) }.to raise_error
    end

    it 'raises error if name is not unique' do
      job = SideJob.queue('testq', 'TestWorker')
      child = SideJob.queue('testq', 'TestWorker')
      child2 = SideJob.queue('testq', 'TestWorker')
      job.adopt(child, 'child')
      expect { job.adopt(child2, 'child') }.to raise_error
    end
  end

  describe '#delete' do
    before do
      @job = SideJob.queue('testq', 'TestWorker', inports: {in1: {}}, outports: {out1: {}})
    end

    it 'does not delete non-terminated jobs' do
      expect(@job.delete).to be false
      expect(@job.exists?).to be true
    end

    it 'deletes terminated jobs' do
      @job.status = 'terminated'
      expect(@job.delete).to be true
      expect(@job.exists?).to be false
    end

    it 'publishes a message when deleted' do
      @job.status = 'terminated'
      expect(@job).to receive(:publish).with({deleted: true})
      expect(@job.delete).to be true
    end

    it 'recursively deletes jobs' do
      child = SideJob.queue('testq', 'TestWorker', parent: @job, name: 'child')
      child.add_alias('myjob')
      expect(@job.status).to eq('queued')
      expect(child.status).to eq('queued')
      expect(SideJob.redis {|redis| redis.keys('job:*').length}).to be > 0
      @job.status = 'terminated'
      child.status = 'terminated'
      @job.delete
      expect(SideJob.redis {|redis| redis.keys('job:*').length}).to be(0)
      expect(@job.exists?).to be false
      expect(child.exists?).to be false
      expect(SideJob.find('myjob')).to be nil
    end

    it 'deletes data on input and output ports' do
      @job.input(:in1).write 'data'
      @job.output(:out1).write 'data'
      expect(@job.input(:in1).size).to be 1
      expect(@job.output(:out1).size).to be 1
      @job.status = 'terminated'
      @job.delete
      expect(SideJob.redis {|redis| redis.keys('job:*').length}).to be(0)
    end

    it 'disowns job from parent' do
      child = SideJob.queue('testq', 'TestWorker', parent: @job, name: 'child')
      expect(@job.children.size).to eq 1
      child.status = 'terminated'
      child.delete
      expect(@job.children.size).to eq 0
    end

    it 'removes any aliases' do
      @job.add_alias 'job'
      @job.status = 'terminated'
      expect(SideJob.find('job')).to eq @job
      @job.delete
      expect(SideJob.find('job')).to be nil
      expect(SideJob.redis.hget('jobs:aliases', 'job')).to be nil
    end
  end

  # Tests are identical for input and output port methods
  %i{in out}.each do |type|
    describe "##{type}put" do
      it "returns a #{type}put port" do
        spec = {}
        spec[:"#{type}ports"] = {port: {}}
        @job = SideJob.queue('testq', 'TestWorker', **spec)
        expect(@job.send("#{type}put", :port)).to eq(SideJob::Port.new(@job, type, :port))
      end

      it 'raises error on unknown port' do
        @job = SideJob.queue('testq', 'TestWorker')
        expect { @job.send("#{type}put", :unknown) }.to raise_error
      end

      it 'can dynamically create ports' do
        spec = {}
        spec[:"#{type}ports"] = {'*' => {default: 123}}
        @job = SideJob.queue('testq', 'TestWorker', **spec)
        expect(@job.send("#{type}ports").size).to eq 0
        port = @job.send("#{type}put", :newport)
        expect(@job.send("#{type}ports").size).to eq 1
        expect(port.default).to eq 123
      end
    end

    describe "##{type}ports" do
      it "returns all #{type}put ports" do
        @job = SideJob.queue('testq', 'TestWorker', inports: { port1: {} }, outports: { port1: {} })
        expect(@job.send("#{type}ports")).to eq([SideJob::Port.new(@job, type, :port1)])
      end
    end

    describe "##{type}ports=" do
      before do
        @job = SideJob.queue('testq', 'TestWorker')
      end

      it 'can specify ports with options' do
        expect(@job.send("#{type}ports").size).to eq 0
        @job.send("#{type}ports=", {myport: {default: 'def'}})
        expect(@job.send("#{type}ports").size).to eq 1
        expect(@job.send("#{type}ports").map(&:name)).to include(:myport)
        expect(@job.send("#{type}put", :myport).default).to eq 'def'
      end

      it 'does not modify passed in port options' do
        ports = {myport: {default: [1,2]}}.freeze
        expect { @job.send("#{type}ports=", ports) }.to_not raise_error
      end

      it 'merges ports with the worker configuration' do
        allow(SideJob::Worker).to receive(:config) { {"#{type}ports" => {'port1' => {}, 'port2' => {default: 'worker'}}}}
        @job.send("#{type}ports=", {port2: {default: 'new'}})
        expect(@job.send("#{type}ports").size).to eq 2
        expect(@job.send("#{type}put", :port2).default).to eq 'new'
      end

      it 'can change existing port default while keeping data intact' do
        @job.send("#{type}ports=", {myport: {default: 'orig'}})
        @job.send("#{type}put", :myport).write 'data'
        @job.send("#{type}ports=", {myport: {default: 'new'}})
        expect(@job.send("#{type}ports").size).to eq 1
        expect(@job.send("#{type}put", :myport).default).to eq 'new'
        expect(@job.send("#{type}put", :myport).read).to eq 'data'
        expect(@job.send("#{type}put", :myport).read).to eq 'new'
      end

      it 'sets port channels' do
        @channels = ['abc', 'xyz']
        @job.send("#{type}ports=", {myport: {channels: @channels}})
        expect(@job.send("#{type}put", :myport).channels).to match_array(@channels)
        @channels.each do |chan|
          expect(SideJob.redis.smembers("channel:#{chan}")).to eq [@job.id.to_s]
        end
      end

      it 'deletes no longer used ports' do
        @job.send("#{type}ports=", {myport: {}})
        @job.send("#{type}put", :myport).write 123
        @job.send("#{type}ports=", {})
        expect(@job.send("#{type}ports").map(&:name)).not_to include(:myport)
        expect { @job.send("#{type}put", :myport) }.to raise_error
      end
    end
  end

  describe '#info' do
    before do
      now = Time.now
      allow(Time).to receive(:now) { now }
      @job = SideJob.queue('testq', 'TestWorker', args: [123], by: 'me')
    end

    it 'returns all basic job info' do
      expect(@job.info).to eq({queue: 'testq', class: 'TestWorker', args: [123],
                               created_by: 'me', created_at: SideJob.timestamp, ran_at: nil})
    end
  end

  describe '#state' do
    before do
      @job = SideJob.queue('testq', 'TestWorker')
    end

    it 'returns all job state' do
      @job.set({abc: 123})
      @job.set({xyz: 456})
      expect(@job.state).to eq({'abc' => 123, 'xyz' => 456})
    end
  end

  describe '#get' do
    before do
      @job = SideJob.queue('testq', 'TestWorker')
      @job.set({field1: 'value1', field2: [1,2], field3: 123 })
    end

    it 'returns a value from job state using symbol key' do
      expect(@job.get(:field3)).to eq 123
    end

    it 'returns a value from job state using string key' do
      expect(@job.get('field1')).to eq 'value1'
    end

    it 'returns nil for missing value' do
      expect(@job.get(:missing)).to be nil
    end

    it 'can retrieve complex objects in job state' do
      expect(@job.get(:field2)).to eq [1, 2]
    end

    it 'always returns the latest value' do
      expect(@job.get(:field3)).to eq 123
      SideJob.find(@job.id).set(field3: 789)
      expect(@job.get(:field3)).to eq 789
    end
  end

  describe '#set' do
    before do
      @job = SideJob.queue('testq', 'TestWorker')
    end

    it 'can save state in redis' do
      @job.set(test: 'data', test2: 123)
      state = @job.state
      expect(state['test']).to eq 'data'
      expect(state['test2']).to eq 123

      # test updating
      @job.set(test: 'data2')
      expect(@job.get('test')).to eq 'data2'
    end

    it 'can update values' do
      3.times do |i|
        @job.set key: [i]
        expect(@job.get(:key)).to eq [i]
        expect(JSON.parse(SideJob.redis.hget("#{@job.redis_key}:state", 'key'))).to eq [i]
      end
    end

    it 'raises error if job no longer exists' do
      @job.status = 'terminated'
      SideJob.find(@job.id).delete
      expect { @job.set key: 123 }.to raise_error
    end
  end

  describe '#unset' do
    before do
      @job = SideJob.queue('testq', 'TestWorker')
    end

    it 'unsets fields' do
      @job.set(a: 123, b: 456, c: 789)
      @job.unset('a', :b)
      expect(@job.get(:a)).to eq nil
      expect(@job.get(:b)).to eq nil
      expect(@job.get(:c)).to eq 789
    end
  end

  describe '#lock' do
    before do
      @job = SideJob.queue('testq', 'TestWorker')
    end

    it 'sets the ttl on the lock expiration' do
      @job.lock(123)
      expect(SideJob.redis.ttl("#{@job.redis_key}:lock")).to be_within(1).of(123)
    end

    it 'returns a random token when lock is acquired' do
      allow(SecureRandom).to receive(:uuid) { 'abcde' }
      expect(SideJob.redis.exists("#{@job.redis_key}:lock")).to be false
      expect(@job.lock(100)).to eq('abcde')
      expect(SideJob.redis.get("#{@job.redis_key}:lock")).to eq 'abcde'
    end

    it 'returns nil if job is locked' do
      expect(SideJob.redis.exists("#{@job.redis_key}:lock")).to be false
      expect(@job.lock(100)).to_not be nil
      expect(@job.lock(100, retries: 1)).to be nil
    end
  end

  describe '#refresh_lock' do
    before do
      @job = SideJob.queue('testq', 'TestWorker')
    end

    it 'resets the lock expiration' do
      @job.lock(100)
      expect(SideJob.redis.ttl("#{@job.redis_key}:lock")).to be_within(1).of(100)
      @job.refresh_lock(200)
      expect(SideJob.redis.ttl("#{@job.redis_key}:lock")).to be_within(1).of(200)
    end
  end

  describe '#unlock' do
    before do
      @job = SideJob.queue('testq', 'TestWorker')
    end

    it 'unlocks when the token matches' do
      token = @job.lock(100)
      expect(@job.unlock(token)).to be true
      expect(SideJob.redis.exists("#{@job.redis_key}:lock")).to be false
    end

    it 'does not unlock when the token does not match' do
      token = @job.lock(100)
      expect(@job.unlock("#{token}x")).to be false
      expect(SideJob.redis.exists("#{@job.redis_key}:lock")).to be true
    end
  end

  describe '#publish' do
    it 'calls SideJob.publish' do
      @job = SideJob.queue('testq', 'TestWorker')
      message = {abc: 123}
      expect(SideJob).to receive(:publish).with("/sidejob/job/#{@job.id}", message)
      @job.publish(message)
    end
  end
end


If you're interested in personalized wraps or photos on your photo booth, let me know. The panels on the booth can be customized. I can put an engagement picture, corporate logo, birthday photo,etc, on the photo booth. If I missed anything, contact me anytime. We would love to be a part of your event!


text:
Округ Свидњик () округ је у Прешовском крају, у Словачкој Републици. Административно средиште округа је град Свидњик.

Географија
Налази се у сјеверном дијелу Прешовског краја.

Граничи:
 на сјеверу је Пољска,
 источно Округ Стропков,
 западно Округ Бардјејов,
 јужно Округ Прешов и Округ Вранов на Топлој.

Клима је умјерено континентална.

Становништво
Према подацима о броју становника из 2011. године округ је имао 33.181 становника. Словаци чине 71,90% становништва.

Насеља
У округу се налази два града и 66 насељених мјеста. Градови су Гиралтовце и Свидњик.

Види још
 Окрузи Словачке

Референце

Спољашње везе

Свидњик, Округ

redpajama_set_name: RedPajamaWikipedia


For over a decade, Leland has been taking his designs (and others') and turning them into websites that not only look good, but work well, too.
Leland is not currently accepting new clients for web design, but is only maintaining his existing clients' sites. Thanks for understanding.


Whenever I try and run my driving program for the mindstorms brick it says that it's waiting for start (like from the samatha module).
We are competing in FTC.
I am using the latest version(3.62).
We don't have a waitforstart() in the code and have gone through every forum with no luck.
Already read that a week ago.
If you're competing in FTC, you're required to keep that line of code in your programs (both teleop and autonomous).
Yes, but we would like to test our code before the game.
You can still test your code with the waitForStart statement in. The "Robot->Debugger Windows->Joystick Control - Competition" dialog has radio buttons that simulates the FCS signals. If you click "TeleOp running" or "Autonomous running". It will send a signal to unblock the waitForStart call.
I have tried that. It doesn't work.
It should work. I don't know why it doesn't work for you. If you really want, you can do the following but you need to remember to comment out _TEST_MODE before competition.


danah boyd | apophenia » Participatory Culture: What questions do you have?
Henry Jenkins, Mimi Ito, and I have embarked on an interesting project for Polity. Through a series of dialogues, we're hoping to produce a book that interrogates our different thoughts regarding participatory culture. The goal is to unpack our differences and agreements and identify some of the challenges that we see going forward. We began our dialogue this week and had a serious brain jam where we interrogated our own assumptions, values, and stakes in doing the research that we each do and thinking about the project of participatory culture more generally. For the next three weeks, we're going to individually reflect before coming back to begin another wave of deep dialoguing in the hopes that the output might be something that others (?you?) might be interested in reading.
This often gets understood through the lens of "Web2.0" or "user-generated content," but this is broadly about the ways in which a networked society rich with media enables new forms of interaction and engagement. Some of the topics that we are considering covering include "new media literacies," "participation gap" and the digital divide, the privatization of culture, and networked political engagement. And, needless to say, a lot of our discussion will center on young people's activities and the kinds of learning and social practices that take place. So what do *you* want us to talk about?
38 comments to Participatory Culture: What questions do you have?
I'm interested in the intersections of law/policy, participatory culture, and particularly how these ideas are (not) transmitted to new generations. Take as your paradigmatic case Emily White (http://www.npr.org/blogs/allsongs/2012/06/16/154863819/i-never-owned-any-music-to-begin-with) the NPR intern who confessed to having 11,000 songs she had not paid for. Now, Ms White isn't herself a creative artist so perhaps this isn't precisely participatory culture but can we take it as given that if Ms White blogs about her doing this that her peers are also doing it? In particular, we would expect that the generation of teen and just-post-teen younger people are likely engaged in this behavior, as they participate in remix, filk, and other participatory music cultures.
The question I pose is something like "what are the behavioral models, with what legal understandings, have Ms White and her generation absorbed and how does that affect their behavior within participatory cultures?" I think that legal/regulatory frameworks are one of the main means that established cultural authorities try to use to influence the behavior of new participants and Ms White's admission looks to me like a total failure of established authority. This is (to me) different from other 'skirting' or other edging-around-the-law behaviors that people who view participatory culture as transgressive have adopted in the past.
See, I told you it wasn't simple.
In the interest of reaching a wider audience it might be worthwhile to contextualize the concept of a "participatory culture" by reference to other initiatives in academia that are researching similar social phenomenon. For example political scientists have been tracking the tensions between Liberal and communitarian ideologies in American thought at least since Toqueville started writing about them in Democracy in America. These ideologies play a defining role in shaping the American psyche and how we view the relative virtues of consumption, production and social participation. Similarly American historians have been tracking the development of consumer culture (and it's effects on various forms of civic participation and production) since its inception at the tail end of the 19th C. They too are interested in how changing attitudes toward consumerism are rebalancing American identity. How can an investigation of participatory culture inform these longstanding research initiatives in the university? And how in turn can these more traditional investigations help inform the exploration of participatory culture?
wow! I am really looking forward to read this dialogues between the three of you, one that is being taking place for a while now in the minds of many of us (and yours, I guess) .
Among other things, you can address on the diferences between the perspective of the practice with social and digital media from the genders of participation point of view and from the core media literacy skills that Jenkins propose; the methodological challenges of research the learning process in this practices and the factors that make possible for some young people to engage in highly skilled practices while others remain in the friendship zone (as was described in hanging out…) In this last point, I think the focus is done in motivational factors and that little atention was paid on sociocultural determinations that configurates the identity, like etnicity, gender or social belonging. And finally, I think you need to respond to those critics that say you sometimes fail to recognize the real power of agency of the cultural industries in the configuration of new practices whith social and digital media.
Thank you for asking, it is a great oportunity!
My biggest struggle, as I try to lead large organizations from a consumer model to a participatory culture, is the distrust that Boomers have for Gen X & Y and vice/versa. My question is around that; how do we build trust between boomers and younger generations?
When we talk about participatory culture, my question is: How many people do participate in virtual communities? According to some kind of data, in many UGC websites, 20% users generated 80% contents. So if there is a participatory culture, what's the inner structure?
As you observe, participatory culture is often conflated with "web 2.0". The web is still an environment the privileges computer programmers. To what extent does the need to program limit participatory culture? Is the programming privilage fundamental (most-effective contribution of user content requires programming) or a historical accident (contribution would be possible without programming, but the programmers/creators of the contribution infrastructure didn't think it was important to support that)?
As a teacher educator and one who spends a lot of time reviewing various school/district social media policies internationally, I would love to see someone address ideas around how we can prepare students for participatory culture when there are still such conservative attitudes in schools around what is allowed (e.g., web filters, mobile phone bans, etc.). In particular, we need supporting research that would encourage school admins/teachers & parents to lobby for and/or support curricula around current changes in media.
This is a terrific topic and I'm very eager to see/hear/read your output. I'm curious about power in organizations trying to become more participatory: how can those in charge allow other voices to speak without acting on their very real feeling of being threatened? I'm also curious about the wisdom of crowds. Does a crowd have any wisdom? Or is it just wise individuals within the crowd? Also: what happens when we interact? Is there something that sparks in us when we communicate that generates a new thing that benefits all participants?
2) Qualitatively, how do they see themselves in relation to existing cultural industries – who/how many/what kind of them see participatory culture in any way as a gateway to 'mainstream' culture and/or fame on a more than peer level.
I'm not a researcher, but I build online platforms and communities and whether creating a transmedia world for kids, mentor matching or teaching kids to program, the engaged parents are the ones that I see making the most impact. They are the ones paying for the online subscription, signing the parental consent form or driving their kid to an event. What I struggle with is figuring out what I can do to convert parents from being a chauffeur to a participant. I understand that kids don't always want their parents to hangout, but I saw a spark of something when we run programming classes for really young kids and their parents had to be there for legal reasons. Some of the timid parents that were hanging back saw their 5 year olds animating a character and wanted to try it too. Those parents were the ones first to signup for subsequent classes. Those are the parents that are going to support the next generation of girls in tech. Why are some parents more engaged in their kid's interests than others? I don't believe it's a demographic or socioeconomic problem. Is it that we need to create an environment where they don't feel intimidated to learn something new?
I'm curious to see, now that we've had a generation who've grown up with this environment for much of their lives, what this means for how they're conducting the next phase of their lives: approaching work, etc.
I would love to see analysis of the impact of participatory culture on introverts. As per Susan Cain's work (described here: "http://www.scientificamerican.com/article.cfm?id=the-power-of-introverts), our culture has an extroversion bias, and introverts are subject to psychologically-damaging pressure to try to pass as extroverts — it seems to me that the growth of online participatory culture compounds that even more. So to what extent are introverts disenfranchised, marginalized, or subjected to emotional pressure by participatory culture? What impact does that have? Can some of the benefits of participatory culture be maintained through mechanisms less distasteful to introverts?
– The blog/comment medium. danah knows me well and is probably shocked to see that I'm posting a comment on a blog. I really don't like posting to public forums. danah is good enough to include an "email" icon, but many don't — the expected norm is that one participates by public commenting. Even danah's icon is wedged between a whole bunch of twitter/facebook/etc icons that I just glaze over, so i almost didn't see it.
– An old friend from college, living on the other side of the country, had a stroke. But I didn't find out for over a month, because his family announced it on facebook and figured all his friends would find out that way. Which left me feeling like a heel in that I didn't offer to fly out and help which i gladly would have done, nor did i even phone up and express my sympathies. By not using facebook, i missed out on important news, and i tacitly sent a message to my freinds' family (who don't know that i don't use facebook) that i didn't care about my friend's wellbeing.
– More and more, online transactions encourage you to "log in using facebook", or "share on facebook", "tweet this", etc. Yes I can ignore it, but feels like ongoing minor harassment. Occasionally, "log in using facebook" is the only option. Are there or will there be classes in school that require students to use facebook?
– It's encroaching on what otherwise would be solo activities. I play solitaire Scrabble on my iPhone. They just released an update, in which each time you get a "bingo" it prompts you to share it on facebook (no thanks) — and at the end of each game it pops up a dialog saying "that was ok but for real fun play online with your friends!", which my grumpy reaction is "no, if i wanted to play with friends i would have". which intrudes on my peaceful mindset and diminishes the quality of the alone-time experience.
I find ironic that as per points 1 & 2, part of participatory culture is to encourage creativity; whereas according to some claims, the most creative people in many fields are usually introverts who, if they are like me, find participating in participatory culture a "turn-off".
I'm interested in the extent to which participatory culture promotes social bridging vs. social bonding. Danah has written some about the problematic reinforcement of bonding as opposed to bridging engagement among teens online, but I'd love to learn more about this for different age groups and in different venues. I work on participatory projects in physical spaces (museums, public space), and I'm always seeking frameworks in which to understand whether our designs are bringing people together across difference or reinforcing differences.
I may be useful to many if a distinction between "particapatory culture" and "culture" were made . I'm thinking of Shirky's critique in Cognitive Surplus, where he argues that culture cannot be culture without some form of participation. Of particular interest would be some definition that doesn't necessitate a discussion about television or comparison to other medium(s).
I may be useful to many if a distinction between "participatory culture" and "culture" were made. I'm thinking of Shirky's critique in Cognitive Surplus, where he argues that culture cannot be culture without some form of participation. Of particular interest would be some definition that doesn't necessitate a discussion about television or comparison to other medium(s).
My personal interest in the connection between informal civic participation online and more formal democratic participation. I think with respect to participatory culture I have a question as to how participation online relates to participation offline – to what extent do behaviours in these two contexts relate to and influence each other. If we frame discussion in terms of the network society I think we can see online and offline effects – I am less certain about the relationship in a discussion of participatory culture and would be fascinated to hear you debate this.
I'd very much like to see a study of how participatory culture crosses national and/or language boundaries, including the long-standing role of fans in providing free translations of media (books, live-action and animated television shows and films, manga/manhua/manhwa and other graphic novels) where commercial translators do not regard the potential market to be large enough to formally acquire the translation rights. The legal issues surrounding fan translations have often been less than clear, in some cases allowing companies to take and adapt these translations without providing either production credit or financial compensation for the work that the fans have produced. The legal issues surrounding participatory culture are often difficult to navigate, but this is one example that might prove useful as a starting point for further study.
I'm very much looking forward to seeing your work, and would be glad to help in any way I can!
"Participatory culture" challenges traditional media wherein, authors were known, payment given and copyright maintained a status quo.
In the western tradition and in high culture, authorship ensured ownership. The two way interaction encouraged by participatory media, where introverts/subverters/diverters can hid behind a fictional persona, changes the game associated with authorship, copyright and (intellectual) property.
In the West, in our schools and universities, it is tremendously important to be scrupulous about 'sources,' perhaps to maintain the payment structures and to know who to punish.
The Openness Movement responded to pressures of 'non-participatory' media not fitting with participatory media. cMOOCs (connectivist Massive Open Online Courses)harness participatory media to reinvent university making knowledge and therefore power accessible.
I'd love to see you three revisit the new sociology of youth and childhood. You, Ito, et al, referred to it in the introduction of Hanging Out, Messing Around and Geeking Out as "foundational" to your work, describing it this way: "The new sociology of childhood sees that children are active, creative social agents who produce their own unique children's cultures while simultaneously contributing to the production of adult societies." I know your exploration, here, isn't limited to youth but, where it does touch on youth….
My question is, do you, as I do, see it as not only foundational to researchers' work but to that of educators, risk prevention experts, counselors, social workers, and others who work with young people actively engaged in participatory culture? What I'm observing is that this perspective and approach acknowledges the agency that's essential to efficacy in social and civic engagement in participatory culture – the agency that many young new media users are demonstrating but that is widely feared by the adults in their lives and is broadly challenged in adult circles by notions that young people's engagement in new media is inconsequential and/or risky.
Do Ito, boyd, and Jenkins perceive a growing acceptance of this new sociology in academic circles and beyond, and can it be promoted as a framework for public discussion about youth safety online, where I see little evidence of its acceptance?
I'm excited about this topic and the scholars participating. It sounds like people have already suggested some really interesting questions and topics.
My question is related to network literacy, social and cultural capital, and class. Broadly speaking, in what ways do offline media production experiences and programs translate to online participatory culture (or not) and vice versa? I've spent time in a low-income high school where students are actively producing media in a collaborative peer-learning environment, networking with their local community, and expanding their social networks. Yet, many of these same students are resistant (or even afraid) to participate in online communities wherein they share their creative works. Why do some youth engage in online participatory communities while others, who are actively involved in offline media production, do not? In what ways is (online) participatory culture still shaped by class, ethnicity, language, age, and gender?
My personal current research interest in the realm of participatory culture is fanfiction. Though social media have influenced practices of fanfiction writers, the phenomenon has been around for a long time – starting in a non-digital format with the first fanzines around the series Star Trek. It is an intriguing topic that has so far not attracted a large amount of research.
I'm interested in power issues in participatory culture. There is no hierarchy or it is (should be in real participatory …) very low. Can we speak about peer power? What could it be? Something to do with dynamics of giving and taking space in participatory actions? Listening, respect, attention; hyperactivity, defacement, passing etc.
I'm interested in the point, where participation could really be a game changer for the data driven system. I call it with Paul Celan "Atemwende" – the point, when "the system" don't like you to be a part of it any more.
The difficulty in 'participating' in digital culture is the issue of copyright. I would love to know Lawrence Lessig's thoughts on your book too!
It be nice to see a move away from the focus on young people.
Helping to create structured societal values, positive framing of these values, resourcefullness to maintain these values, creating traditions (ceremonies, feasts, festivities …) derived from these values, reviewing the applicability and sense of values&traditions,changing/cleanup of the value structure.
I like that your method includes an invitation to participate in the conversations defining your project. And it raises for me the issue of methodologies in general and in relation to studying participatory culture. What methodology, or array of methodologies are best suited to analysis of participatory culture? In my work with youth media, I favor participatory action research models that engage youth as coresearchers themselves and am challenged along the way to take stock of the extent to which our research is valuing youth voices in research practice. But even at this level of methodological practice, there are constant reminders that participation is not unconstrained, that there are barriers to participation, particularly among marginalized youth in the urban spaces where many of us do our work. In this regard, I would scholarship on participatory culture to do business with the political economies that inform who participates and to why extent and in what ways participation is valued in the contexts of community and public life.
Great input from everybody. I notice with interest that very few of the responses here are submitted by "anonymous" writers. As Alec Couros and Sheri Oberman observed, I too would like to read more about the ways participatory culture challenges our current social, legal, and educational systems. One issue in particular I've been grappling with is that of anonymity online. Is there a place for anonymous contributions in a participatory culture? Many of my friends and colleagues believe anonymity is a right enjoyed to ensure free speech. I have problems with anonymity because I believe it devalues scholarship and personal integrity, and often erodes civility in online discourse. Why is being anonymous in a participatory culture desirable? necessary? revolutionary? valued? Fear of reprimand is often the only reason given in support of the "right" to be anonymous. I'd much prefer to create a society free from fear, than continue the status quo. As Ms. Oberman pointed out, "We need to craft societal systemic vehicles to reflect participatory culture." I do believe that Creative Commons is a darn good start. Unfortunately, right now in our courts and in our school districts, I see the creation of societal models in support of a participatory culture being squeezed out in favor of corporate ownership of ideas and the means to communicate them – pushing more fearful people into anonymity. I want to be able to trust and support a participatory culture where everyone is free to contribute but I need to know who you are before I can believe you. This is the elephant in the room.
I love the term 'participatory culture' as it emphasizes what is interesting, challenging, scaring, etc. about the 'web', the technical invention of networked computers and the variegated uses we make of them to exchange thoughts and influence each other, that is, be social creatures. Being a researcher of networked learning, the wider cultural context to that matters much to me. Anything that tries to fathom the depths of the influence the 'web' has on our culture – as in participatory culture – is useful background for what I am trying to find out: how best to learn formally but even more interestingly informally with social media. Privacy, copyright, the widened, richer notions of befriending, become acquainted, etc., the changes that our learning theories need to undergo, the altered notion of authority (wisdom of the crowd, wisdom of the expert) – all of that needs to be taken into account when talking about networked learning and all of that is part of this culture of partipation (I believe). I am sure you can't take on all of this topics in equal depths, but since learning and educating are most important ways to ensure cultural transmission, it would be useful to keep into the back of your minds the ways in which the budding culture of transmission will alter learning (and soon enough, vice versa).
I'd love to see participatory culture wend its way into the classroom more. We have the tools and the theory, now let's see it put to use so that every child learns – back of the class, front of the class, and middle.
@ Danah and crew – my interests follow Vince's here. I am curious about youth career development and how youth can steer their own ship with the help of those on the road ahead of them.
I have come to see participation as how individuals spend their attention as currency: If the denominations required are too large, or the rewards are not valued, then participation does not occur.
My interests and efforts have been directed toward using online tools for participative government. Our system of input to government is clearly not satisfactory to the electorate, as congressional approval ratings show. Those with a financial stake in the implementation of policy can have a disproportionately greater influence on outcome. That is because they have the resources to become aware of and initiate, prioritize, understand, and provide input into policy formation. The average voter often does not become aware of a policy implementation until it adversely affects them. For example (please take this as a non-judgmental observation), the body scanners in airports never had a period of voter comment before being implemented. Here a policy decision was implemented that affects nearly everyone adversely while benefits are questionable, aside from those very few profiting from the sale and use of the scanners. Those few were instrumental in the policy implementation.
I believe that any participative culture should not only have adequate "safety" (security, privacy, and identity/anonymity capabilities), but should also provide more equitable rewards for small denominations of attention. In other words, these rewards should include incentives for participation that are not limited to large financial payouts, such as government contracts. The rewards can be the same as those social networks use to increase participation, which include a sense of community, connectedness, information sharing, entertainment, serious games, and making a difference.
So, my question is: what can be the incremental rewards for small amounts of attention that can lead to larger investment of attention and greater rewards?
What would it mean to bring the concept of 'consent' into models of participatory culture?
I ask because I am working on this myself with respect to sexting; thinking about about how the production, distribution, and possession of a media object can be consensual or nonconsensual.
Looking forward to the conversation and the book. I am interested in better understanding how equity issues, especially economic equity, is atteneded to in the participatory culture scholarship. What critical lenses do each of you use to situate/interrogate the significant differences related to access that frames who can and cannot be admitted into such a culture?
I wonder if an ideal "truly participatory culture" is possible only when the majority of participants do not perceive any major disparities (or, hope there are no disparities) in their chances of benefiting from products of their participation?
Are participatory cultures only possible among humans, or other animals also?
How does the entry of "larger than one person" entities like for-profit corporations, governmental agencies, non-profits affect the individual humans in a participatory culture?
I'll be happy to pose more thoughts, if of use. Understanding participatory culture phenomena is useful given how our planet is in a mix of "global village" consolidation and divergence/competition for resources and clout.
Forgive me if this has been posted as I don't have time to read all the replies.
I am interested in how Participatory Culture leads to social action. I think the discourse around what Participatory culture is and how it is different from social media is also warranted. I feel if we understand more about how how Participatory Culture shapes what we do or who we are, then we will be able to use social media in a more constructive way.
I can't wait to read more about this project!
I'm interested in research on how public libraries facilitate participatory culture, through everything from citizen participation on library boards to content creation services and labs.
In fact–I'm doing my doctoral work on this topic, so I'm very interested to see what you have to say.
I am interested in the forms of social, cultural and financial capital that intersect with agency and the ability or lack of ability (due to issues of capital) to literally participate. I am interested in how participatory culture functions in new and burgeoning democracies (think South America, northern Africa and the Middle East)and how western (think American) cultural industries affect agency–and the ability to participate in a transmedia landscape. Due to the collision of cultural industries/capital/agency within a democratic system, how do the messages (stories) become shifted, other and reincorporated into the dominant culture? How, does, in effect (if ever) participatory culture become hegemonic and when does the transmedia process stymie participation and privilege the dominant cultural industries?
…to that end…I think about the changes in Facebook and the new promoted user posts. Not only brands but also users can purchase posts, increasing their Edge Rank, the Facebook algorithm that privileges posts and ensures greater reach and a larger audience. I am a direct worker in the cultural industries–working as an Earned Media specialist at an advertising agency. As the social media landscape shifts to a greater emphasis on paid placement (rather than earned, i.e., viral), human agency also shifts and financial capital becomes a more prominent determiner in share of voice…how will that affect democratic expansion? …I go back to my original statement above.


text:
Utah' COVID-19 numbers and hospitalizations still high
By Mathilda Gatewood
Utah – It looks like summer's COVID-19 surge has trended downward for many hospitals across the United States, but that's not the case in Utah.
For the first time in a couple of months, the new cases and hospitalizations in the country dropping below 100,000.
According to University of Utah Hospital associate chief medical officer Dr. Kencee Graves, while cases across the country are trending down, she hasn't seen that happen in every state. "We still have a large unvaccinated population. We could see a lot of people get very sick. So I think it's too soon to tell where we're really headed," she said.
Since mid-September, the latest numbers show that COVID-19 deaths dropping roughly 15%.
New COVID-19 cases over the past three weeks showed a 40% decline nationally.
According to Dr. Graves, hospitalizations at the University of Utah Health are not on the decline yet. "Our hospitalization rate at the university has been generally stable within a range, but that is a really high range. It's not a place we want to live or it's really very safe to live," she said.
Dr. Graves added that she's not going to get hopeful until she sees numbers decreasing significantly over a period of time.
According to Dr. Graves, it's going to be a while before numbers decrease dramatically in Utah until more people help in slowing the transmission of COVID-19 by getting vaccinated and masking up. "The university, as well as our other medical centers, are making choices that mean we need to be able to protect our ability to take care of patients," she said.
Utah Highway Patrol reports 49 crashes overnight
Companies dealing with an increase in calls for service as cold weather moving into Utah

redpajama_set_name: RedPajamaCommonCrawl


of bits, often with conflicting descriptions of their purpose.
be a matter of finding the right bit, but knowing how to use it.
pressure, without risking injury to the young animal's mouth.
are pinched by rings that are poorly made with exposed joints.
that he can comfortably carry it.
realize that the bit is intended for communication, not control.
without fear of being hurt and listen to the rider's aids.
their effectiveness is literally in the rider's hands.


text:
Q: A square matrix is called skew-symmetric if $A^T=-A$. Prove that if $A$ and $B$ are skew-symmetric matrices, then $A+B$ is skew symmetric. A square matrix is called skew-symmetric if $A^T=-A$.
Prove that if $A$ and $B$ are skew-symmetric matrices, then $A+B$ is
skew symmetric.

A: We have
$$(A+B)^T = B^T + A^T = -B - A = -(B + A) = -(A + B).$$

A: Let $A,B$ be $n\times n$ matrices skew-symmetric. Then
$$
(A+B)^{\top}_{ij} = (A^{\top}_{ij} + B^{\top}_{ij}) = (-A_{ij} - B_{ij}) = -(A+B)_{ij}
$$
for all $1 \leq i,j \leq n$,
i.e.
$(A+B)^{\top} = -(A+B).$

redpajama_set_name: RedPajamaStackExchange


White City is characterized as among the 10 percent most disadvantaged areas in the UK, with an unemployment rate twice the London average. As part of its commitment to the regeneration of the local area, Imperial's community engagement team, led by Dr. Maggie Dallman, Associate Provost of Academic Partnerships and Professor of Immunology, is looking to excite the creativity and wonder of local young people by creating a unique space called "The Invention Rooms" for community-driven innovation.
In 2016, the Elsevier Foundation partnered with Imperial College to provide $300,000 over three years to support the Reach Out Makerspace. It will be equipped with 3D printers, scanners, computer-aided design, development boards and laser cutters for making, coding and digital fabrication. Ultimately, the goal is to help local young people feel more connected to their peers, engage in creative and constructive after-school activities and realize their potential in a dynamic and nurturing environment.
The maker challenge grant to Imperial College is part of a larger Elsevier Foundation program called Diversity and Inclusion in STM, which includes several partnerships to help underserved children. In Amsterdam, the IMC Weekend School offers 10 – to 13-year-olds from Amsterdam's disadvantaged urban communities the chance to learn about the world of science, health and journalism hands-on professionals. In New York, the city's most underserved youth can attend the Afterschool STEM Mentoring Program of the New York Academy of Sciences, which is expanding with funding from the Elsevier Foundation.


text:
Category: 1990s
Pop culture baby names associated with the 1990s.
The Baby Name "Raven"
The death of Raven Sherman (1941)
The name Raven has been given to babies of both genders for decades, but I find its female usage particularly interesting because girl-name Raven has gotten three distinct boosts from popular culture so far.
The first boost happened in 1941, when Raven debuted as a girl name in the data. (It had already popped up a few times as a boy name.)
Year Female usage Male usage
1943 5 babies 7 babies
1941 6 babies [debut] .
1940 . .
In October of that year, in the comic strip Terry and the Pirates by Milton Caniff, a female character named Raven Sherman died in a dramatic and memorable sequence.
Raven, "a WASP clearly modeled on Katharine Hepburn" according to one source, was an American heiress who was working at a camp for war refugees in China. She was pushed off a moving truck, died of her injuries, and was buried on an isolated Chinese hillside. "Caniff was flooded with flower deliveries, mock memorial services, petitions of condolence signed by disparate groups as factory workers and entire colleges, as well as a lot of irate letters."
(Terry and the Pirates also influenced the names Normandie and Merrily.)
The second pop culture boost happened in the 1970s:
1978 342 babies
[rank: 533rd] 25 babies
[rank: 579th] 20 babies
1976 100 babies 10 babies
1975 17 babies 9 babies
1974 15 babies 12 babies
In 1976, the soap opera The Edge of Night introduced a female character named Raven Swift (first played by Juanin Clay, then played by Sharon Gabet). She was described as "the show's delightful young vixen-heroine" in The Soap Opera Encyclopedia. The character remained on the show until it was canceled in 1984.
(The soap also influenced the names Teal and Laurieann.)
And the most recent (and biggest) pop culture boost happened in the early 1990s:
1992 2,016 babies
[rank: 152nd] 89 babies
It went on to peak at 139th in 1993.
The reason? Actress Raven-Symoné, who first found fame as a four year old when she started playing Olivia (Denise's step-daughter) on the The Cosby Show in 1989. The compound name Ravensymone debuted in the data in 1990, and the spelling variant Ravensimone followed in 1991. (Her Disney Channel show That's So Raven didn't come along until much later.)
What are your thoughts on the name Raven? Would you use it?
Hamill, Pete. "Milton Caniff." Masters of American Comics, edited by John Carlin, New Haven: Yale University Press, 2005, pp. 229-237.
The King of the Comic Strips, Milton Caniff, Part 1 – Steve Stiles
Nilsson, Jeff. "Terry and the Pirates: Adventure Comics for Grown-Ups." Saturday Evening Post 27 Dec. 2016.
Schemering, Christopher. The Soap Opera Encyclopedia. NY: Ballantine Books, 1988.
Categories: 1940s, 1970s, 1990s, From Pop Culture & History Tags: denise, juanin, laurieann, merrily, milton, normandie, olivia, raven, ravensimone, ravensymone, sharon, symone, teal, terry 3 Comments
Baby Names from Elder Scrolls: Serana, Tamriel, Jagar…
Jagar Tharn from the game Arena (1994)
Elder Scrolls video games have been coming out since the mid-1990s — initially on MS-DOS, then on Windows and Xbox/Playstation, and now online as an MMORPG (massively multiplayer online role-playing game). The games are set in open worlds and involve free-form gameplay.
The complete Elder Scrolls series is made up of more than two dozen games, but so far there have been only five primary releases:
The Elder Scrolls: Arena (1994)
The Elder Scrolls II: Daggerfall (1996)
The Elder Scrolls III: Morrowind (2002)
The Elder Scrolls IV: Oblivion (2006)
The Elder Scrolls V: Skyrim (2011) – featuring Dovahkiin
These elaborate games involve a multitude of characters. I've done my best to figure out which ones were the most memorable/important, and then to cross-check their names with baby names in the SSA data. Here's what I've come across so far. I'll start with the debuts…
The name Jagar debuted in the data in 1994. The game Arena featured the character Jagar Tharn (pictured above), who was the main antagonist.
The name Kanen also debuted in 1994. The game Arena featured the character Kanen the Wise.
The name Karliah debuted in 2012. The game Skyrim featured the character Karliah.
The name Serana debuted in 2014. The Skyrim add-on Dawnguard (2012) featured the character Serana (pictured at right), who was a vampire.
The name Tamriel debuted in 2015. (And it's a one-hit wonder so far.) Though it sounds Biblical with that -iel ending, Tamriel is actually the continent upon which all Elder Scroll games are set.
The name Alduin debuted in 2016. (It's also a one-hit wonder so far.) The game Skyrim featured the dragon character Alduin, who was the main antagonist.
The name Lynly also debuted in 2016. The game Skyrim featured the character Lynly Star-Sung, who was a barmaid.
The name Alisanne debuted in 2017. The character Alisanne Dupre (a "Listener") was mentioned in Skyrim, but was featured in the online game The Elder Scrolls: Legends (2017).
And now a couple of rises…
The name Aela saw increased usage after the release of Skyrim, which featured the character Aela the Huntress, who was a werewolf.
The name Jordis also saw increased usage after Skyrim came out. This could have been inspired by the character Jordis the Sword-Maiden…or, more likely, by the appearance of singer Jordis Unga on the second season of The Voice.
For all the Elder Scrolls players out there: What other characters might have had an influence on names? Which character names should I check?
Sources: The Elder Scrolls – Wikipedia, Elder Scrolls – Characters by Game
Categories: 1990s, 2010s, From Pop Culture & History Tags: aela, alduin, alisanne, dovahkiin, jagar, jordis, kanen, karliah, lynly, serana, tamriel 2 Comments
The Arrival of Aeris (and Aerith)
The curious name Aeris first appeared in the U.S. baby name data in 1998:
2001: 26 baby girls named Aeris
1998: 23 baby girls named Aeris [debut]
1997: unlisted
Where did it come from?
The role-playing video game Final Fantasy VII, which was released in early 1997 for PlayStation and later for other platforms.
The game was set on a nameless planet whose future was up for grabs. The antagonist, Sephiroth, was out to destroy the planet, whereas the protagonist, Cloud Strife, sought to save the planet from destruction.
Aeris was one of Cloud's friends. (In fact, he had a bit of a crush on her.) She was the last surviving member of one of the planet's oldest races, the Cetra, and thereby had access to planet-protecting magical powers.
Cloud holding Aeris's body (Sephiroth in background)
In a now-infamous plot twist, Aeris was unexpectedly killed by Sephiroth. (Aeris was kneeling and praying, eyes closed, when Sephiroth descended from the sky and ran her through from behind with a sword — all right in front of Cloud.)
And here's another twist: the character's English name was never supposed to be "Aeris" — even if it does sound like the word "heiress," which is fitting, given her racial status.
FFVII was created in Japan, and the character's Japanese name is Earisu. The official English transliteration of her name is Aerith, based on the English words "air" and "earth." But, somehow, Aeris is what ended up in the game.
The transliteration was corrected in later Final Fantasy games and in the Kingdom Hearts series (which combined FF characters with Disney characters). In fact, the first Kingdom Hearts game was released in 2002, and official spelling Aerith debuted in the U.S. baby name data the very next year:
2007: 11 baby girls named Aerith
2003: 5 baby girls named Aerith [debut]
What are your thoughts on the baby names Aeris and Aerith? I'd especially love to hear the opinions of any gamers out there!
Sources: Final Fantasy VII – Wikipedia, The Real Reason Aeris's Death Made You Cry
Categories: 1990s, 2000s, From Pop Culture & History Tags: aeris, aerith, cloud, earisu, sephiroth Leave a comment
The Beginning of Bode
Bode Miller in 2008
A few weeks ago we looked at names that start with Snow-, so today let's check out another name that many of us associate with snow: Bode.
Bode Miller is one of the greatest Alpine skiers in American history. He's won six Olympic medals and competed in five Winter Olympics: 1998 (Nagano), 2002 (Salt Lake City), 2006 (Turin), 2010 (Vancouver), and 2014 (Sochi).
Notice how the baby name Bode debuted in the SSA data in 1998 and spiked in usage every four years thereafter:
2017: 170 baby boys named Bode
2009: 94 baby boys named Bode
2000: 8 baby boys named Bode
1998: 8 baby boys named Bode [debut]
So how did Samuel Bode Miller — who was born and raised in rural Easton, New Hampshire — get that interesting middle name?
According to his 2005 autobiography, Bode's name simply came from the English word bode. It "means to indicate by signs, but it was the sound of it that my mother liked." He pronounces it BOH-dee instead of BOHD because, as he says, the "diminutive form stuck."
And he's not the only person in his family with an interesting name. His older sister is Kyla (no middle name, notably), his younger sister is Gennie Wren (in full: Genesis Wren Bungo Windrushing Turtleheart Miller), and his late younger brother was Chelone, nicknamed "Chilly" (in full: Nathaniel Kinsman Ever Chelone Skan).
Wren's naming "was a family effort" said Bode:
Jo gave her the "Genesis Wren"; I called her "Bungo" after the Bungay Jar, the local wind, because it was so breezy the day she was born. Kyla gave her Windrushing for the same reason, and "Turtleheart" was the ever-present and recurring Woody-inspired turtle meme in our lives up on Turtle Ridge. The turtle may be Woody's totem. It wouldn't surprise me."
(The kids called their parents, Jo and Woody, by their first names.)
And here's how they chose a name for Chelone (chel-OWN):
My folks hiked Mount Moosilauke when my mother was good and pregnant with him and found a flower on top they liked so much that they brought it home. When they looked it up and found that it was an herbaceous perennial called chelone, also known as turtlehead, they considered it a nice omen and planted it outside the door.
Three days after he was born, my mother was headed into town with the new baby, named Thane at the time. She was going to the laundromat when she came across a turtle in the road. It was big and blocked their way, so she had to stop. As she watched the shell waddle across Easton Road, it occurred to Jo how little she like the name Thane, and how much she liked the name Chelone.
If you're wondering about the name Skan, it's "a Lakota term for the great spirit of the universe." Kinsman is no doubt a reference to location: their childhood home was on the side of Kinsman Mountain. In fact, the mountain was named for early settler Nathaniel Kinsman — Chelone's first two names.
But getting back to Bode…he has welcomed five children so far: Neesyn Dacey (daughter), Samuel Bode (son), Nash Skan (son, named in honor of Chelone), Emeline Grier (daughter, passed away in mid-2018) and Easton Vaughn Rek (son, named for Easton, NH).
So what are your thoughts on the baby name Bode? If you were going to use it, how would you pronounce it?
Bode Miller – Wikipedia
Bode Miller reveals newborn son's name, explains significance
Dream dies with Bode Miller's brother, Chelone
Think You Know Bode Miller? 38 Facts You Might Not Know
Miller, Bode and Jack McEnany. Go Fast, Be Good, Have Fun. NY: Villard Books, 2005.
Image: Adapted from Miller Bode 2008 by Hans Bezard under CC BY-SA 4.0.
Categories: 1990s, From Pop Culture & History Tags: bode, bungo, chelone, chilly, dacey, easton, emeline, ever, genesis, gennie, grier, jo, kinsman, kyla, nash, nathaniel, neesyn, rek, samuel, skan, sochi, thane, turtleheart, vaughn, windrushing, woody, wren Leave a comment
The Rise of Vada
In last week's Macaulay Culkin post, we talked about Culkin's breakout role as Kevin in Home Alone, but not about his second-biggest role: as bespectacled Tommy in My Girl (1991).
His My Girl co-star, Anna Chlumsky, played main character Vada Sultenfuss.
The movie didn't do anything for the baby name Tommy, but it did give Vada a boost in the early '90s:
1994: 31 baby girls named Vada
1991: 7 baby girls named Vada
This put Vada (a left-handed name) on an upward trajectory that, over time, has accelerated. In fact, the name reached the top 1,000 a couple of years ago:
2017: 265 baby girls named Vada [rank: 978th]
2015: 242 baby girls named Vada
The last time it was among the top 1,000 girl names in the U.S. was in the 1940s.
Do you like the name Vada? Would you use it?
Source: My Girl (1991) – IMDb
Categories: 1990s, From Pop Culture & History Tags: anna, macaulay, tommy, vada Leave a comment


text:
login password artist buyer gallery
HOME REGISTER BUY ART SEARCH ART TRENDS COLLECT ART ART NEWS
Indepth Arts News:
"Sixty-Five of L.A.s Best Contemporary Galleries and Art Institutions Participate in the Biennals Fifth Term"
2001-07-18 until 2001-08-18
Absolut-L.A. International Biennal Art Invitational
Venice, CA, USA United States of America
This summer, the Absolut-L.A. International brings a vast array of world's best contemporary art work to Los Angeles. In its fifth term, the Absolut-L.A. International has developed a unique format whereby some 65 of L.A.'s best contemporary galleries and art institutions offer their gallery spaces and exhibition venues to over 200 international artists from 30 countries for a four-week exhibition, July 18 through August 18, 2001. This year the Absolut-L.A. International will continue to be a featured event of ARTS/LA, a website developed in cooperation with the Los Angeles Department of Cultural Affairs to highlight the arts and culture of Los Angeles and increase their accessibility.
The Absolut-L.A. International is a citywide nonprofit event conceived to foster a dialogue between the Los Angeles art community and artists, galleries, curators, museums, collectors and visitors from around the world. Since its inception in 1993, the Absolut-L.A. International has grown in breadth and quality of participation, sponsorship and recognition, with principal backing from Absolut Vodka, Audi, and the Los Angeles Cultural Affairs Department, who have been joined this year by the most impressive roster of sponsors to date.
The Absolut-L.A. International commences with the opening gallery receptions around the city. On July 18, from 5-8PM, exhibition openings will be held for the Bergamot Station Galleries in Santa Monica. . On July 19, from 6-9PM, galleries in West Hollywood, Westwood and Beverly Hills will host openings. On July 20, the La Brea Avenue, Beverly Boulevard, Melrose Avenue, and Wilshire galleries, will host openings from 6-9 PM. On Saturday July 21, from 1-4 PM openings will be held in galleries in Venice and in Santa Monica on Main Street, Colorado Avenue, and the18th Street Arts Complex. Also on July 21, the Downtown Los Angeles and Chinatown galleries will have their openings from 4-7PM.
In addition to the wealth of international art being exhibited in the galleries and arts institutions, panel discussions, lectures, and special events are scheduled to be held at The Getty Center, the Los Angeles County Museum, the UCLA Hammer Museum of Art, MOCA, The Santa Monica Museum, Cal State Long Beach Museum, 18th Street Arts Complex, Barnsdall Art Park, The MAK Center for Art and Architecture, and the Italian Cultural Institute, the Korean Cultural Center, the Irvine Fine Arts Center The web site will feature an interactive catalog and virtual exhibitions, an overview of events, and a guide to transportation throughout the Absolut-L.A. International. To see the exhibitions the old-fashioned, non-virtual way, there will be a catalog and visitors guide.
Indepth Arts Resources for the State of California
Other Important Exhibitions in California
Quick Arts Access:
Long Beach (34)
Los Angeles (365)
Pasadena (38)
Santa Barbara (42)
Santa Monica (51)
YOUR FIRST STOP FOR ART ONLINE!
HELP MEDIA KIT SERVICES CONTACT
Discover over 150,000 works of contemporary art. Search by medium, subject matter, price and theme... research over 200,000 works by over 22,000 masters in the indepth art history section. Browse through new Art Blogs. Use our advanced artwork search interface.
Call for Artists, Premiere Portfolio sign-up for your Free Portfolio or create an Artist Portfolio today and sell your art at the marketplace for contemporary Art! Start a Gallery Site to exclusively showcase your gallery. Keep track of contemporary art with your free MYabsolutearts account.
Copyright 1995-2013. World Wide Arts Resources Corporation. All rights reserved


Thank you for stopping by to get some information about The Death Valley Challenge.
In short, the Death Valley Challenge is a fundraiser that I started in 2012. What started off as a stunt for the blog quickly progressed and before I knew it we were raising money for charity doing what we love to do so much, and that is playing golf. What makes the Death Valley Challenge unique is where takes place, you guess it; Death Valley National Park.
Death Valley National Park was recently rewarded with the record for the hottest temperature on Earth when the data from the previous location that held the record was found to be inaccurate. SO how hot does it get in Death Valley? The hottest ever recorded temperature on Earth was taken on July 10th 1913 at what is now the Furnace Creek Inn. Care to take a guess? How about 134° and with the average high reaching 116°, remember that's the AVERAGE high, Death Valley is a mighty challenge for us.
The first concept was to go out and play golf in the 120° heat and see how we did, but as the idea grew so did our ambition, and we decided that if we're going to do this at all, we had to go all out. That's when we came up with the idea of playing as many holes of golf as we possibly could. How many do you think you could play? 18? 27? 36? 54? We said we were going to play until the kicked us of the course and 12 hours and 72 holes later they did just that.
We had such a good time doing something we love and all the while raising money for charity it's made us come back again this year and step up our game.
This year we have partnered with The Wounded Warrior Project™ and have made a few changes to make this year's Death Valley Challenge even tougher and more exciting.
Last year there was just two players, myself and Bill and it took everything we had to get through those 72 holes. With just over 12 and half hours to play (the course shuts down at 6 pm) time is a valuable asset to complete the challenge.
So this year to makes things just a little bit more interesting I've invited two more players, Dan and Randy, to the event and increased our goal from a measly 72 holes to 81 holes. That gives us 12.5 hours to play 4.5 rounds of golf. Oh yeah, in 120° heat! Think we're crazy yet?
Now here is how you can help.
We have set up a donation page where you can quickly make a contribution to The Wounded Warriors Project™ via The Death Valley Challenge. What we are also going to do is set up four teams, one for each of the four players in the challenge and see which player can raise the most money.
Here is the link if you would like to copy and paste it, you know like in an email where you tell ALL of your friends about it!
Here is a QR Code that you can scan. Print it out and share it with your friends! It takes you directly to the donation site from your Smart Phone!
In June I'm planning on having a series of eBay auctions with products and merchandise companies have donated to the event. Again if that is something you would like to be part of, I'm talking to you all you prominent golf companies out there, please send me an email to the above address.
This site is good to go, so you cannot right click and save any images but if you would like a copy of the below flyer to help spread the word, send me an email, and I'll forward you jpeg file of it.


How often does the library select artwork?
The library convenes a Library Art Selection Committee annually that includes representatives from the community, local artists and library staff.
The next call for 3D artists is anticipated to occur in spring or summer of 2019.
What kind of art is selected?
The Committee seeks art that represents the diversity of our community and varied artistic styles and mediums.
Potential exhibitors must have a minimum of fifteen (15) pieces available to hang for the duration of an approximately 60 day exhibit period.
Art pieces may be available for sale, but that is not a requirement for exhibiting.
For more information, contact Noreen Chwee at nchwee@cityofsanmateo.org or (650) 522-7811.


text:
Q: Having a PHP function use a global variable as a default? Let's say I have a lot of functions like the following, and will be making more involving some variable. For example, I'll use timezone...
function tell_time($values, $timezone = "Greenwich"){
     // Do something dealing with the timezone
}

function expected_arrival_time($values, $timezone = "Greenwich"){
     // Do something dealing with the timezone
}

function delayed_shipment_arrival($values, $timezone = "Greenwich"){
     // Do something dealing with the timezone
}
// ... and so on....

Now, if the server moves to a different timezone, all of those need to be updated. What would be 'normal' would be something like individually changing all the defaults...
function tell_time($values, $timezone = "Mountain"){
     // Do something dealing with the timezone
}

function expected_arrival_time($values, $timezone = "Mountain"){
     // Do something dealing with the timezone
}

function delayed_shipment_arrival($values, $timezone = "Mountain"){
     // Do something dealing with the timezone
}
// ... and so on....

However, if I'm wanting to make this code accessible in an open source setting, where the server timezone may change frequently depends on who downloads and installs, this may get very cumbersome for many people real fast. However, reworking all the logic isn't ideal. What would be simplest (assuming I have the server variable set), would be something like...
function tell_time($values, $timezone = $_SERVER["timezone"]){
     // Do something dealing with the timezone
}

function expected_arrival_time($values, $timezone = $_SERVER["timezone"]){
     // Do something dealing with the timezone
}

function delayed_shipment_arrival($values, $timezone = $_SERVER["timezone"]){
     // Do something dealing with the timezone
}
// ... and so on....

Then, when someone downloads and installs, it just pulls from a server variable that gets set at install time, or potentially some other global variable. Or maybe pulling from some session data for customer or something else even. The point is, I want default where I can set many functions to share the same default, so that default is easy to update. Is there a good way to do this? I'd prefer not going into every single function and having to change it to setting defaults and pulling from variables with separate internal logic, as it just makes the code filled with busywork for any who come later.

A: You could use a constant. Define it at the top of a file and let your functions use that. E.g.
define('CUSTOM_TIMEZONE', 'Mountain');

function tell_time($values, $timezone = CUSTOM_TIMEZONE) {
// Your code here
}

Just change the constants value and it's changed everywhere.

A: IMHO that is a good idea to use .env file and put your timezone on it and then get it in your constructor like this
<?php

class Test {
    private $timezone;

    function __construct($timezone = null) {
        $this->timezone = is_null($timezone) ? $_ENV["timezone"] : $timezone;
    }

    function tell_time($values){
            // Do something dealing with the timezone
    }

    function expected_arrival_time($values){
            // Do something dealing with the timezone
    }

    function delayed_shipment_arrival($values){
            // Do something dealing with the timezone
    }
}

This package will help you to work with .env file in php
 I also give you this chance to set the timezone in your constructor if you want

A: You cannot use a variable as a default value.
From the docs, section "Example #6 Using non-scalar types as default values section":

The default value must be a constant expression, not (for example) a
variable, a class member or a function call.

I suggest using a nullable field and set your default at the top of the method.
function tell_time($values, ?string $timezone) {
  $timezone = is_null($timezone) ? $_SERVER["timezone"] : $timezone;
}

You could still set a default value in the parameter definition if you wish, but I don't think that makes much sense with the issue you're describing, unless you set it to be null.

A: You could do something like this:
function tell_time($values, $timezone = null) {
    if ($timezone === null) {
        $timezone = $_SERVER["timezone"];
    }
}

But I wouldn't even bother, as PHP already provides a built-in default timezone feature. Better, you could override that once at run-time, during your app's set up, via a call to date_default_timezone_set(), passing it a value that's read from a configuration file or an environment variable. In any case, you should not have this parameter as an argument for every function, and you should not implement the feature such that changing the timezone requires a source code change. If you release this, and your customers have changed the source to customize their timezone, then they won't be able to apply updates to new versions because they'll have conflicting local changes.


Are you looking for Zing Revolution MS-PFLD40014 Sony PSP Slim- Pink Floyd- Double Image Skin? We found best price for you. Go to link below to buy the Zing Revolution MS-PFLD40014 Sony PSP Slim- Pink Floyd- Double Image Skin for the lowest price.
The sony psp skins exceeded my expected value of high character and style Music Skins sony psp skins.


Looking for a Facebook status update or email during the next big vote by the Royal Oak City Commission or Sterling Heights City Council? Don't.
A handful of communities in southeastern Michigan are asking local lawmakers to keep their hands off their smartphones or iPads at council meetings, banning them from communicating electronically with each other or the public while government business is being conducted. That means emailing, blogging, texting or any other form of electronic communication is off limits.
Supporters say the issue is about transparency and integrity, not to mention common courtesy. They argue email or even text conversations could violate the Michigan Open Meetings Act, which requires decisions and most deliberations to be public.
"It's about maintaining the integrity of this council and future councils," said Maria Schmidt, a city councilwoman in Sterling Heights, which amended its council governing rules earlier this year to ban electronic communication during meetings.
A Texas lawmaker wants to ban e-mails, text messages and Internet postings by city and state leaders when they are doing the public's business.
A bill by Rep. Todd Hunter of Corpus Christi would amend the Texas Open Meetings Act. The proposal, H.B. 2977, says an official would be committing an offense if he or she transmits an electronic message during a public meeting.
The Austin American-Statesman reports, for today's editions, that Hunter is considering how violators should be punished. Hunter also says the update is necessary for Texas to take the open-meetings law into the digital age.
The Corpus Christi Caller-Times reports Hunter became involved in the issue after a spat during a city council meeting involving two members texting each other.


text:
Yuval Noah Harari: «Τhe Ηuman Βeing is Βecoming a Ηackable Αnimal»
The famous Israeli historian talks on the importance of bringing science to everyone, the shift in authority from human to algorithm and the element of the unexpected in history.
Karasarinis Markos
23/7/18 - EPS. Yuval Noah Harari, escritor - (c) Vicens Gimenez
Interview by Markos Karasarinis
Until 2014 Yuval Noah Harari was just another scholar of Early Modern military history, the subject he had studied at the Hebrew University of Jerusalem and Oxford. Teaching in the former, he had already written a popularizing book summing up human history in twenty chapters. Its English translation (Sapiens. A Brief History of Humankind) became an international best seller with more than 12 million copies, turning him into a household name worldwide.
Today, the 44-year-old historian lives in Tel Aviv with his spouse, Itzik Yahav, is frequently invited to fora like the World Economic Forum in Davos where in 2018 he was slotted to speak after Angela Merkel and before Emmanuel Macron, meets with Facebook's Mark Zuckerberg and Twitter's Jack Dorsey and counts Barack Obama and Bill Gates among his readers. According to Harari, the success of Homo Deus and 21 Lessons for the 21st Century (all his books are published in Greek by Alexandria Editions) has not changed the rhythm of his daily life.
He remains a workaholic, he continues to set aside four weeks each year for meditation, he has not stopped pushing for bringing science to the public – and this is the reason he collaborated with two well-known comic book artists to remake Sapiens into a graphic novel.
Comic book writing requires a quite different mode of storytelling compared to history. How did you find the experience of working towards adapting Sapiens into Sapiens: A Graphic History?
"The graphic novel was the most fun project I ever worked on. Our aim has been to reach people who don't usually read science books like Sapiens. To achieve this, I teamed up with two very gifted artists – Daniel Casanave and David Vandermeulen – and together we decided to break with academic conventions and take a trip on the wild side of history. This book isn't an illustrated version of the old Sapiens. It is an innovative exploration of what history means – and what it means to recount history. In past ages, images often played a large role in how historical information was communicated. Just think of the Bayeux Tapestry! Once you add visuals, you raise a whole new set of questions that require imaginative responses. We know for example that some ancient Sapiens had sex with Neanderthals. This general fact is rather abstract. When you want to draw this, however, you must be concrete. Do you draw a Sapiens man with a Neanderthal woman? A Sapiens woman with a Neanderthal man? Maybe a gay couple? And what's their skin color? Sapiens came from Africa whereas Neanderthals were native to Europe. Does it mean that Sapiens were dark skinned and Neanderthals had light skin? In a graphic novel, you have to address all these questions".
Netherlands, Amsterdam, 24-04-2018.
Yuval Noah Harari. historian, philosopher, writer, futurologist, transhumanist. Known for the books Sapiens and Homo Deus.
Photo: Olivier Middendorp
True, this is not some direct visualization of the book, simply putting its chapters into pictures. You are completely reimagining "Sapiens" incorporating comic book elements and techniques along the way.
"Whereas academic history books typically have a more serious tone, with the graphic novel we felt more free to have fun with how we presented the material. . We decided to depict the encounter between Sapiens and Neanderthals by referencing masterpieces of modern art. The invention of fire, in contrast, is presented as a silly commercial. Some critical stages in human evolution are reimagined as a reality TV show and the section on the invention of religion follows the conventions of superhero action movies. I too appear in the book as a character, but I insisted that it wouldn't only be me. There are a number of other scientists there as well – some real, others fictional. It is important to convey the message that science is always a collaborative effort, and that scientists often hold different views".
Sapiens: A Graphic History reminded me, as a popularizing effort, of Il était une fois l'homme, a quite innovative for its time French animated series on human history I used to watch on TV as a kid. Both its creators and you are using a medium appealing to the public to enhance knowledge for a greater audience.
"I also watched that show as a kid, and it influenced me greatly. That TV show was among the chief reasons I later became a historian, and it shaped my view of history in a very deep way. Like that show, the graphic novel too aims to build a bridge between the scientific ivory tower and the general public. The coronavirus pandemic has shown us how important such bridges are. If you don't make an effort to bring science to everyone, you leave the arena free for all kinds of ridiculous conspiracy theories. And in the battle between science and conspiracy theories, science suffers from a major disadvantage: it is really complicated! The job of public intellectuals like myself is to take the latest scientific theories and find a way to translate them into a fun and accessible story, without abandoning our commitment to the core facts".
"In a world deluged by irrelevant information, clarity is power" we read in the graphic novel jacket blurb. Does this in a way also signify an element of your work in general? Is separating signal from noise a function of your books?
"Yes. That's my main goal in almost everything I do. In the past, information was scarce, so people read books to get information. But today we are flooded by enormous amounts of information. There is so much information, that we just don't know what to pay attention to and what to believe, and we often spend our time on trivial matters while ignoring far more important things. People spend hours watching funny cat videos on the Internet, while they don't care about global warming. So I don't want to write books that provide people with just more information. Instead, my books aim to help people see the big picture from a new perspective".
Writing in the Financial Times back in March, at the beginning of the pandemic, you pointed out that state response would demand, as in other emergency situations, trust on the part of the public towards governments. Is still enough trust in governments to see us through these troubled times?
"It depends on the country. In many nations, you have populist politicians that have spent years deliberately undermining trust in the media, in science and in government agencies. Those countries are now struggling to get people to listen to scientific guidelines and take basic safety precautions. It's not too late to rebuild trust, but this will require investing in institutions and in education. Ultimately, though, this approach is better for everyone. A well-informed and self-motivated population can deal with crises better than an ignorant and policed population".
The rise of the internet these past 20 years has brought on an algorithm revolution but also, as you 've cautioned before, the emergence of a surveillance state and the possibility that technological data might give authoritarianism an edge over democracy.
"There is a shift in authority from humans to algorithms in many areas, from entertainment to war. But it is not too late to regulate this shift. Citizens should pressure their governments to do so because there is a lot at stake. With the computing power and biological knowledge available in the twenty-first century, some governments and corporations will soon be able to understand us better than we understand ourselves. Think about what that means. I say that the human being is becoming a hackable animal. Algorithms already tell us what to watch and what to buy. They shape what news stories we see and help us find our significant others. Soon they'll know better than we do what we should study at school, what our jobs should be, and what political parties we should join. If we don't regulate these powerful technologies, we might see the rise of the worst totalitarian regimes in human history, and even in supposedly free societies people will lose control of their lives".
Reading Sapiens one finds here and there hints on randomness: instances that could have gone either way, situations where unexpected variables manifested. What's the role of unpredictability in all this, in our human history?
"History is full of unexpected surprises. Think about the Roman Empire around the year 250 AD. At the time, Christianity was little more than an esoteric Eastern sect. If you told Romans that within a century Christianity will be the state religion, they would have thought you were utterly crazy. Similarly in October 1913, Lenin's Bolsheviks were a tiny radical faction. No reasonable person would have predicted that within a mere four years they would take control of the Russian Empire. Yet they did. These examples should give us pause and make us question our powers of prediction. What are the small groups of people no one is paying attention to today that might soon change the world?".
Yuval Noah Harari, David Vandermeulen και Daniel Casanave
Sapiens. Μια εικονογραφημένη Ιστορία. Η γέννηση του ανθρώπου
Μετάφραση Μιχάλης Λαλιώτης
Eκδόσεις Αλεξάνδρεια, 2020
σελ. 248, τιμή 25 ευρώ (χωρίς ΦΠΑ)
Pfizer : Οι καθυστερήσεις στην παράδοση του εμβολίου θα περιοριστούν σε μία εβδομάδα
The challenge of post-pandemic economic recovery It is encouraging that despite the fact that the pandemic is in full swing the...
Trump impeached second time, 10 House Republicans vote 'yea' The Senate's Republican majority leader, Mitch McConnell, rejected Democratic calls for a quick impeachment trial,...
ARMED INSURRECTION | 13.01.2021 - 23:12
Dendias says delimitation of EEZ, continental shelf sole subject of talks with Turkey On the latest developments in the Eastern Mediterranean, Dendias declared that 'despite the relative calm...
Greek-Turkish exploratory talks to resume on 25 January amidst international pressures The talks began in 2002, when Pasok's Costas Simitis was PM and were abruptly cut...
Editorial: Europe's opportunity When Trump lost the election he spun out of control as he could not reconcile...
Editorial: Trump and the revenge of Odysseus Over the last few years democracy has become more vulnerable and has suffered blows from...
Christos Dogas | 08.01.2021 - 12:29
Cabinet reshuffle: A new narrative with new readings Syriza is unable to discern the wager of Mitsotakis and his inner circle as regards...
Pfizer : Οι καθυστερήσεις στην παράδοση του εμβολίου θα περιοριστούν σε μία εβδομάδα | 16.01.2021 - 17:45