text:
3D Animation/Compositing
Film / DI
Media/Web Industry
Video Acquisition
3D artists
TV Professionals
DI/Film Professionals
Representatives/Resellers
« Atomos launches Sumo19M HDR 1200nit high brightness production and studio monitor
Tektronix Unveils Comprehensive OTT Monitoring Solution Spanning Ingest to Delivery »
Sony Unveiled VENICE, Its First 36x24mm Full-Frame Digital Motion Picture Camera System
Film / DI, News, Video Acquisition
Sony Electronics has unveiled VENICE – its first Full-Frame digital motion picture camera system. VENICE is the next generation of Sony's CineAlta camera systems, designed to expand the filmmaker's creative freedom through immersive, large-format, Full Frame capture of filmic imagery producing natural skin tones, elegant highlight handling and wide dynamic range. VENICE was designed through close collaboration with the creative community, fulfilling the requirements from filmmakers and production professionals.
"We really went back to the drawing board for this one," said Peter Crithary, marketing manager, Sony Electronics. "It is our next-generation camera system, a ground-up development initiative encompassing a completely new image sensor. We carefully considered key aspects such as form factor, ergonomics, build quality, ease of use, a refined picture and painterly look—with a simple, established workflow. We worked in close collaboration with film industry professionals. We also considered the longer-term strategy by designing a user interchangeable sensor that is as quick and simple to swap as removing four screws, and can accommodate different shooting scenarios as the need arises."
Full frame sensor and wide range of lens compatibility
VENICE combines a newly developed 36x24mm Full Frame sensor to meet the high-quality demands of feature filmmaking. Full Frame offers the advantages of compatibility with a wide range of lenses, including Anamorphic, Super 35mm, Spherical and Full Frame PL mount lenses for a greater range of expressive freedom with shallow depth of field. The lens mount can also be changed to support E-mount lenses for shooting situations that require smaller, lighter, and wider lenses. User-selectable areas of the image sensor allow shooting in Super 35 mm 4 – perf. Future firmware upgrades are planned to allow the camera to handle 36mm wide 6K resolution. Fast image scan technology minimizes "Jello" effects.
New color management system and established workflow for flexible post-production
A new color management system with an ultra wide color gamut gives users more control and greater flexibility to work with images during grading and post-production. VENICE also has more than 15 stops of latitude to handle challenging lighting situations from low-light to harsh sunlight with a gentle roll-off handling of highlights.
VENICE achieves high quality and efficient file-based production through Sony's established 16-bit RAW/X-OCN via the AXS-R7 recorder, and 10 bit XAVC workflows. VENICE is also compatible with current and upcoming hardware accessories for CineAlta cameras (DVF-EL200 Full HD OLED Viewfinder, AXS-R7 recorder, AXS-CR1 and high-speed Thunderbolt-enabled AXS-AR1 card reader, using established AXS and SxS memory card formats.
Intuitive design & refined functionality support simple and efficient on-location operation
VENICE has a fully modular and intuitive design with refined functionality to support simple and efficient on-location operation. It is the film industry's first camera with a built-in 8-stage glass ND filter system, making the shooting process efficient and streamlining camera setup. The camera is designed for easy operation with an intuitive control panel placed on the Assistant and Operator sides of the camera. A 24 V power supply input/output and LEMO connector allow use of many standard camera accessories, designed for use in harsh environments.
License options for individual production requirements
With VENICE, Sony is giving users the option to customize their camera by enabling the features needed, matched to their individual production requirements. Optional licenses will be available in permanent, monthly and weekly durations to expand the camera's capabilities with new features including 4K anamorphic and Full Frame, each sold separately.
The VENICE CineAlta digital motion picture camera system is scheduled to be available in February 2018. For more information, please visit: www.sony.com/venice.
Nikon releases the D850 full-frame digital SLR camera Nikon Corporation has announced the release of the D850, a Nikon...
Canon Launches New Digital Cinema Camera For High-Resolution Motion Picture Production Canon raised the curtain on an all-new interchangeable-lens digital cinema...
Sony expands NXCAM line up with new Full-HD super slow motion camcorder Sony is pushing the creative boundaries once more with the...
FOR-A to Debut FT-ONE-LS-12G Full 4K Super Slow-motion Camera At the upcoming NAB Show, FOR-A will debut the next...
Tags: 36x24mm, Camera, Digital, Full-Frame, Motion, picture, sony, VENICE
Permanent link to this article: http://www.videomag.gr/web/sony-venice-full-frame-camera/
Latest news right at your mail
How about you receive a mail every week with the latest industry news, right in your mailbox?
By subscribing you accept the site's Privacy Policy / Με την εγγραφή αποδέχεστε τους όρους χρήσης
Videomag's Latest tweets
Tweets by @videomageu
[ © Copyright Videomag 2002-2016 ]
SUBSCRIBE TO VIDEOMAG'S NEWSLETTER


Martin Cole is a Professor in the Department of Psychiatry, McGill University. Dr. Cole is based at St. Mary's Hospital, a community-based McGill-affiliated institution, where he is a senior psychiatrist, Director of the Division of Geriatric Psychiatry and an Associate Member of St. Mary's Hospital Research Centre. He received his medical degree from McGill University and completed specialty training at McGill and the University of Geneva, Switzerland. His research activities, often in collaboration with the Departments of Medicine and Surgery and the Department of Family Medicine at St Mary's, include systematic literature reviews, descriptive studies and randomized trials, all involving studies of major mental disorders in old age (delirium, depression, dementia) and health services for these disorders.
Cole MG, McCusker J, Voyer P, Monette J, Champoux N, Ciampi A, Belzile E, Vu M. Core symptoms not meeting criteria for delirium area associated with cognitive and functional limpairment and mood and behavior problems in older long-term care residents. Int Psychgeriatrics, 26(7): 1181-1189; July 2014.
McCusker J, Cole M, Voyer P, Monette J, Champoux N, Ciampi A, Vu M, Dyachenko A, Belzile E. Observer-rated depression in long-term care: frequency and risk factors. Archives of Gerontology and Geriatrics, 58(3):332-338, 2014.
Voyer P, McCusker J, Cole MG, Monette J, Champoux N, Vu TTM, Ciampi A, Sanche S, Richard S, de Raad M. Feasibility and acceptability of a delirium prevention program for cognitively impaired long-term care residents: A participatory approach. Journal of American Medical Directors Association, 15(1):77, e1-e9, Jan 2014.
Cole MG. Subsyndromal delirium in old age: conceptual and methodological issues. Int Psychogeriatrics/IPA, 25(6):863-866, 2013.
Cole M, McCusker J, Voyer P, Monette J, Champoux N, Ciampi A, Vu TTM, Belzile E. The course of subsyndromal delirium in older long-term care residents. American Journal of Geriatric Psychiatry. 21(3):289-296, 2013.
Cole M, McCusker J, Voyer P, Monette J, Champoux N, Ciampi A, Vu M, Dyachenko A, Belzile E. Symptoms of delirium predict incident delirium in older long-term care residents. int Psychogeriatrics/IPA, 25(6):887-894, 2013.
Cole MG, Ciampi A, Belzile E, Dubuc-Sarrasin M. Subsyndromal delirium in older people: A systematic review of frequency, risk factors, course and outcomes. Int J Geriatr Psychiatry, 28(8):771-780, 2013.
Xu C, Greenwood C, Tagalakis V, Cole MG, McCusker J, Ciampi A. Mixture of extended linear mixed-effects models for clustering of longitudinal data. Proceedings, Simulation Workshop, Barcelona - May 2013.
Cole MG. Preventing major depression in older medical inpatients: innovation of flight or fancy? Int Psychogeriatrics/IPA, 24(8):1193-1196, 2012.
Cole MG. et al. Symptoms of delirium before and after episodes of delirium in older long-term care residents. J AM Geriatric Soc, 60(12):2302-2307, 2012.
Cole MG et al. The course of delirium in older long-term care residents. Int J. Geriatr Psychiatrey, 27(2):1291-1297, 2012.
Cole MG. Clinical assessment of the mental capacity of older adults. McGill Journal of Law and Health, 5(2):273-277, 2011.
Cole MG, McCusker J, et al. Subsyndromal delirium in older long-term care residents: incidence, risk factors and outcomes. J Am Geriatr Soc; 59(10):1829-1836, 2011.
Cole MG. Persistent delirium in older hospital patients. Curr Opinion in Psychiatry, 23(3):250-254, 2010.
Cole MG, McCusker J. Improving outcomes of delirium in older hospital inpatients. Int. Psychogeriatrics/IPA, 21(4):613-615, 2009.
Cole M, Ciampi A, Belzile E, Zhong L. Persistent delirium in older hospital patients: A systematic review of frequency and prognosis. Age and Ageing. 38:19-26, 2009.
inpatients: A prospective study. American Journal of Geriatric Psychiatry. 16(2): 175-178, 2008.
Cole MG. Brief interventions to prevent depression in older subjects: a systematic review of feasibility, effectiveness and methodology. The American Journal of Geriatric Psychiatry. 16:435-443, 2008.
Cole M, You Y, McCusker J, Ciampi A, Belzile E. The 6 and 12 month outcomes of older medical inpatients who recover from subsyndromal delirium. J Am Geriatr Soc. 56(11):2093-2099, 2008.
Cole M, McCusker J, Elie M, Dendukuri N, Latimer E, Belzile E. Systematic detection and multidisciplinary care of depression in older medical inpatients: A randomized trial. Canadian Medical Association Journal. 174(1) 38-44, 2006.
Cole M, McCusker J, Ciampi A, Windholz S, Latimer E, Belzile E. The prognosis of a major and minor depression in older medical inpatients. American Journal of Geriatric Psychiatry. 14(11): 966-975, 2006.
Cole M, Dendukuri N. Risk factors for depression among elderly community subjects: A systematic review and meta-analysis. Am J Psychiatry. 160: 1147-1156, 2003.


text:
package com.wangjie.seizerecyclerview.example.multitype.adapter.actor.b;

import android.content.Context;
import android.view.ViewGroup;
import android.widget.Toast;

import com.wangjie.seizerecyclerview.BaseViewHolder;
import com.wangjie.seizerecyclerview.attacher.ViewHolderOwner;

/**
 * Author: wangjie
 * Email: tiantian.china.2@gmail.com
 * Date: 3/29/17.
 */
public class FilmActorBViewHolderOwner extends ViewHolderOwner implements FilmActorBViewHolder.OnFilmActorBViewHolderListener {
    public FilmActorBViewHolderOwner(Context context) {
        super(context);
    }

    @Override
    public BaseViewHolder createViewHolder(ViewGroup parent) {
        FilmActorBViewHolder filmActorBViewHolder = new FilmActorBViewHolder(parent);
        filmActorBViewHolder.setOnFilmActorBViewHolderListener(this);
        return filmActorBViewHolder;
    }

    @Override
    public void onFilmActorBItemClick(int subSourcePosition) {
        Toast.makeText(context, "B actor " + subSourcePosition + " clicked", Toast.LENGTH_SHORT).show();
    }
}

redpajama_set_name: RedPajamaGithub


text:
ACCEPTED

#### According to
Index Fungorum

#### Published in
Bidr. Känn. Finl. Nat. Folk 32: 470 (1879)

#### Original name
Agaricus versipellis Fr.

### Remarks
null


MP John Bercow has been accused of "obscene waste" after racking up a £172 bill being chauffeur-driven to a conference just 0.7 miles from Parliament.
Fresh details of Mr Bercow's travel costs have been disclosed following a Freedom of Information request by the Press Association.
Mr Bercow has been widely criticised for splashing out large sums on foreign trips - including visits to Australia, New Zealand, Burma, South Africa, the US, Finland and Austria.
But while the House authorities have previously published breakdowns of hundreds of thousands of pounds of his expenses since 2009, they have not always been complete.
In the wake of a landmark Court of Appeal ruling on the scope of FOI, Parliament has now supplied the individual receipts that were submitted over the past three years.
:: Mr Bercow used an official car to travel to Canterbury to see Archbishop Justin Welby enthroned in 2013 - at a cost of £524.
:: In April that year he spent £172 taking a car to Carlton House Terrace - just 0.7 miles (1.1km) from the Commons - to open a conference on alternative and augmentative communication (AAC). A taxi fare for the round trip is likely to have been less than £15.
:: The same month his transport bill to a dinner organised by charity Stonewall at the Dorchester Hotel - 1.5 miles (2.4km) from Parliament - was £144.
:: A one-way drive from King's Cross station to Speaker's House after a day trip to Leeds in July 2013 cost £168.
:: Mr Bercow's car to Baroness Thatcher's funeral at St Paul's Cathedral, 1.8 miles (2.9km) from the Commons, cost £158.
:: In May 2013 there was a £367 bill for the Speaker to be driven to the University of Bedfordshire, where he gave a lecture on reforming parliament to ensure it was a "credible institution". "The expenses scandal proved to be an 'adapt or die' moment for Members of Parliament," he said.
:: He kept a chauffeur-driven car waiting while he attended a memorial service for former minister Malcolm Wicks in Croydon, south London, in October 2012 - costing £289 for five hours.
:: The Speaker had a Foreign Office car pick him up at Manchester Piccadilly station after travelling up to attend the funeral of Labour MP Paul Goggins in January last year. It ferried Mr Bercow and a staff member around "as directed" at a cost of £298, before they stayed at the Park Inn Radisson hotel in the centre of the city.
The following day, it took Mr Bercow and two staff members to the service in Salford, waiting and dropping them back to Manchester Piccadilly at a further cost of £276.
In total, the Speaker and his staff ran up expenses of nearly £1,300 attending the service.
:: Mr Bercow and an aide charged 299 US dollars for dinner while staying at the five-star Strand hotel in Rangoon during an official visit to Burma in the summer of 2013. The hotel's website says it offers "grand colonial splendour".
:: Long distance calls totalling 63 euro (£44) were made from Mr Bercow's room during a visit to Vienna in May 2013.
Mr Bercow is not believed to require an official car for security reasons, and the receipts indicate he has used commercial firms such as Little's Chauffeur Drive and WestOne Cars as well as the Government Car Service.
A spokesman for the Speaker said: "One of the Speaker's duties is to represent Parliament at home and abroad. The Speaker attends funerals and memorials for former parliamentarians as both a mark of respect and as a representative of his parliamentary colleagues.
"Additionally, the Speaker is committed to encouraging public engagement with Parliament and regularly visits universities, charities and other organisations around the UK to explain the work of the House of Commons.
"The Speaker is always mindful of costs, and travels standard class in the UK and when away from home, stays in hotels that offer value for money.
But TaxPayers' Alliance campaign director Andy Silvester said: "This is an obscene waste of money and shows appalling judgment from whoever made the arrangements.
"Hugely expensive chauffeur-driven travel and costly meals abroad don't look good when this Speaker was elected specifically to improve the reputation of Parliament in light of the expenses scandal.
"It is impossible to comprehend how some of these bills have spiralled to such a degree and questions must be asked.


Authorities in Cameroon should drop all charges and release three students each sentenced to 10 years in prison for sharing a joke via SMS about Boko Haram, Amnesty International, the Réseau des défenseurs des droits humains en Afrique centrale (REDHAC) and Nouveaux droits de l'homme (NDH) Cameroun said today.
The start of the hearings in the appeal of Fomusoh Ivo Feh, Afuh Nivelle Nfor and Azah Levis Gob, all younger than 30 years old, is set for today in Yaoundé after several delays. The three students were found guilty of 'non-denunciation of terrorism acts" by a military court on 2 November 2016.
"Rather than languishing in prison simply for exercising their right to freedom of expression, these three students should have been playing a valuable role in Cameroonian society," said Ilaria Allegrozzi, Amnesty International Lake Chad Researcher.
In December 2014, Fomusoh Ivo received a text message from a friend, saying: "Boko Haram recruits young people from 14 years old and above. Conditions for recruitment: 4 subjects at GCE, including religion".
His friend's message was intended as a comment on the difficulty of finding a good job without being highly qualified – joking that even the armed group Boko Haram won't recruit you without good exam results.
Ivo forwarded the message to Afuh Nivelle Nfor, who sent it to Azah Levis Gob. One of their teachers saw the text, having confiscated the phone, and showed it to the police.
Ivo and his friends were all arrested. They were transferred to the Prison in Yaoundé on 14 January 2015 and kept with their legs chained at the ankles.
"These three students should never have been arrested in the first instance as they have only exercised their right to freedom of expression," said Ngo Mbe Maximilienne, Executive director of REDHAC.
The three were charged under the Cameroonian Penal Code and Cameroonian Military Code on 3 March 2015.
"A sarcastic SMS cannot possibly constitute grounds for imprisonment. These students do not belong behind bars and must be allowed to continue their lives without further delay," said Cyrille Rolande Bechon, Executive director NDH Cameroun.
The organizations call on Cameroonian authorities to also release other individuals detained on spurious charges related to national security, such as Ahmed Abba, a journalist for Radio France Internationale's Hausa service, who is in jail for simply exercising his right to freedom of expression. Aboubakar Siddiki, leader of the political party Mouvement patriotique du salut camerounais, and Abdoulaye Harissou, a well-known notary have also been in detention for more than three years.


I've listed 11 attractions, voted on 11 places, posted 8 photos, have 1 friend.
Hike likes to travel for hiking treking, climbing, biking, driving, sailing, camping, fishing and wildlife safari!
Hike interested in art galleries, music events, archaeology, historical sites and cooking classes!


(1) It may be all-you-can eat, but this isn't your father's barbecue , fellow peers.(2) Salmon is delicious when cooked on a barbecue ; it forms a delicious, caramelised crust and if cooked properly it will stay moist and succulent inside.(3) As a preventative measure, don't drink anything carbonated while you eat Korean barbecue .(4) food was placed to sizzle on the barbecue(5) Mr Greendale's wife, Kathryn, said her husband had cooked for a family barbecue last Friday, and had later gone to sleep on a rug at the back of the house in Cavill Place.(6) Kentucky substitutes mutton for pork and in Texas, barbecue is all about beef.(7) Everyone has the opportunity to invite neighbours over for coffee, a meal, or a barbecue .(8) But, with beautiful weather, lots of sleep, strawberries, ice cream and barbecue - what more can you really ask for?(9) It's good for steaming and roasting and can be grilled or cooked on the barbecue - but watch out, as it tends to stick.(10) This keeps them firm so they cook evenly on the barbecue .(11) We would be eating pizza or barbecue food, not spaghetti by candlelight.(12) The white bread was still pristine and soft, fresh but somehow infused with the heady scent of barbecue .(13) The food is quite good - Mexican, barbecue , chili, shrimp and chicken-fried steak, an acquired taste.(14) In addition, high-speed lifts service all floors of the development and the grounds will be landscaped to include a barbecue area as well as a putting green for golfers.(15) Here there is another picnic and camping area with toilets and a barbecue area.(16) On my last day in Australia, my parents cooked me a barbecue in their backyard barbecue area.
Meaning and definitions of barbecue, translation in Welsh language for barbecue with similar and opposite words. Also find spoken pronunciation of barbecue in Welsh and in English language.
Tags for the entry "barbecue"
What barbecue means in Welsh, barbecue meaning in Welsh, barbecue definition, examples and pronunciation of barbecue in Welsh language.


A political satire, Theevandi tells the tale of a chain smoker. The movie is all about his journey and it is interspersed with the rustic tales and politics of a village named Pullinadu, a handful of typical characters you would find in the setting and the local power wars between various factions into which the addiction problem is also sewn in. Debutante Samyukta has done justice to the character of Bineesh's lover girl Devi. Suraj Venjaramoodu, Saiju Kurup and others also do the needful to keep the proceedings entertaining. The movie also has good music and certain dialogues that can win applause from the audience for their honesty, though you have been hearing them around from the millennials for a while. It also deserves credit for taking up a subject that hasn't been explored much in our industry.


Seaside Dance and Gymnastic Center's 2017 – 2018 class schedule is now available! Check out this coming year's schedule and come into the studio starting August 15th to register for classes. Find the full list of registration dates here.


You can imagine every different law enforcement official telling Apple we want a new product to get into something. Even a state judge could order Apple to build something. There's no stopping point. That would lead to a police state.


Alternatively fuelled HGVs operating in the UK could see their maximum authorised weight increased by up to a tonne – thanks to a new proposal from the DfT.
The changes, intended to incentivise cleaner fuel technologies, would follow the lead of an EU Weights and Dimensions Directive that will mean operators undertaking international journeys will automatically receive an extra weight allowance from May 2017.
A consultation on the DfT's domestic proposals runs until 2 November 2016. For more details, visit GOV.UK.


Paleontologists study extinct and fossil animals and plants. Paleontology is a sub-field of geology.
Requirements: Most of these professionals require a bachelor's degree in their science or a related discipline. To be a physical science professional, you need a bachelor's degree in your science or a related field. To conduct research or teach in a post-secondary establishment, you usually need a master's or doctoral degree. , To be a geologist or geophysicist, you may need to become registered by a provincial or territorial association. , Most recent entrants have an undergraduate university degree, and almost 2 in 5 have a graduate degree.


text:
require 'spec_helper'

describe Puppet::Type.type(:dsc_xmysqlgrant) do

  let :dsc_xmysqlgrant do
    Puppet::Type.type(:dsc_xmysqlgrant).new(
      :name     => 'foo',
      :dsc_username => 'foo',
      :dsc_databasename => 'foo',
    )
  end

  it 'should allow all properties to be specified' do
    expect { Puppet::Type.type(:dsc_xmysqlgrant).new(
      :name     => 'foo',
      :dsc_username => 'foo',
      :dsc_databasename => 'foo',
      :dsc_connectioncredential => {"user"=>"user", "password"=>"password"},
      :dsc_permissiontype => 'ALL PRIVILEGES',
      :dsc_ensure => 'Present',
    )}.to_not raise_error
  end

  it "should stringify normally" do
    expect(dsc_xmysqlgrant.to_s).to eq("Dsc_xmysqlgrant[foo]")
  end

  it 'should default to ensure => present' do
    expect(dsc_xmysqlgrant[:ensure]).to eq :present
  end

  it 'should require that dsc_username is specified' do
    #dsc_xmysqlgrant[:dsc_username]
    expect { Puppet::Type.type(:dsc_xmysqlgrant).new(
      :name     => 'foo',
      :dsc_databasename => 'foo',
    )}.to raise_error(Puppet::Error, /dsc_username is a required attribute/)
  end

  it 'should not accept array for dsc_username' do
    expect{dsc_xmysqlgrant[:dsc_username] = ["foo", "bar", "spec"]}.to raise_error(Puppet::ResourceError)
  end

  it 'should not accept boolean for dsc_username' do
    expect{dsc_xmysqlgrant[:dsc_username] = true}.to raise_error(Puppet::ResourceError)
  end

  it 'should not accept int for dsc_username' do
    expect{dsc_xmysqlgrant[:dsc_username] = -16}.to raise_error(Puppet::ResourceError)
  end

  it 'should not accept uint for dsc_username' do
    expect{dsc_xmysqlgrant[:dsc_username] = 16}.to raise_error(Puppet::ResourceError)
  end

  it 'should require that dsc_databasename is specified' do
    #dsc_xmysqlgrant[:dsc_databasename]
    expect { Puppet::Type.type(:dsc_xmysqlgrant).new(
      :name     => 'foo',
      :dsc_username => 'foo',
    )}.to raise_error(Puppet::Error, /dsc_databasename is a required attribute/)
  end

  it 'should not accept array for dsc_databasename' do
    expect{dsc_xmysqlgrant[:dsc_databasename] = ["foo", "bar", "spec"]}.to raise_error(Puppet::ResourceError)
  end

  it 'should not accept boolean for dsc_databasename' do
    expect{dsc_xmysqlgrant[:dsc_databasename] = true}.to raise_error(Puppet::ResourceError)
  end

  it 'should not accept int for dsc_databasename' do
    expect{dsc_xmysqlgrant[:dsc_databasename] = -16}.to raise_error(Puppet::ResourceError)
  end

  it 'should not accept uint for dsc_databasename' do
    expect{dsc_xmysqlgrant[:dsc_databasename] = 16}.to raise_error(Puppet::ResourceError)
  end

  it "should not accept empty password for dsc_connectioncredential" do
    expect{dsc_xmysqlgrant[:dsc_connectioncredential] = {"user"=>"user", "password"=>""}}.to raise_error(Puppet::ResourceError)
  end

  it 'should not accept array for dsc_connectioncredential' do
    expect{dsc_xmysqlgrant[:dsc_connectioncredential] = ["foo", "bar", "spec"]}.to raise_error(Puppet::ResourceError)
  end

  it 'should not accept boolean for dsc_connectioncredential' do
    expect{dsc_xmysqlgrant[:dsc_connectioncredential] = true}.to raise_error(Puppet::ResourceError)
  end

  it 'should not accept int for dsc_connectioncredential' do
    expect{dsc_xmysqlgrant[:dsc_connectioncredential] = -16}.to raise_error(Puppet::ResourceError)
  end

  it 'should not accept uint for dsc_connectioncredential' do
    expect{dsc_xmysqlgrant[:dsc_connectioncredential] = 16}.to raise_error(Puppet::ResourceError)
  end

  it 'should accept dsc_permissiontype predefined value ALL PRIVILEGES' do
    dsc_xmysqlgrant[:dsc_permissiontype] = 'ALL PRIVILEGES'
    expect(dsc_xmysqlgrant[:dsc_permissiontype]).to eq('ALL PRIVILEGES')
  end

  it 'should accept dsc_permissiontype predefined value all privileges' do
    dsc_xmysqlgrant[:dsc_permissiontype] = 'all privileges'
    expect(dsc_xmysqlgrant[:dsc_permissiontype]).to eq('all privileges')
  end

  it 'should accept dsc_permissiontype predefined value CREATE' do
    dsc_xmysqlgrant[:dsc_permissiontype] = 'CREATE'
    expect(dsc_xmysqlgrant[:dsc_permissiontype]).to eq('CREATE')
  end

  it 'should accept dsc_permissiontype predefined value create' do
    dsc_xmysqlgrant[:dsc_permissiontype] = 'create'
    expect(dsc_xmysqlgrant[:dsc_permissiontype]).to eq('create')
  end

  it 'should accept dsc_permissiontype predefined value DROP' do
    dsc_xmysqlgrant[:dsc_permissiontype] = 'DROP'
    expect(dsc_xmysqlgrant[:dsc_permissiontype]).to eq('DROP')
  end

  it 'should accept dsc_permissiontype predefined value drop' do
    dsc_xmysqlgrant[:dsc_permissiontype] = 'drop'
    expect(dsc_xmysqlgrant[:dsc_permissiontype]).to eq('drop')
  end

  it 'should accept dsc_permissiontype predefined value DELETE' do
    dsc_xmysqlgrant[:dsc_permissiontype] = 'DELETE'
    expect(dsc_xmysqlgrant[:dsc_permissiontype]).to eq('DELETE')
  end

  it 'should accept dsc_permissiontype predefined value delete' do
    dsc_xmysqlgrant[:dsc_permissiontype] = 'delete'
    expect(dsc_xmysqlgrant[:dsc_permissiontype]).to eq('delete')
  end

  it 'should accept dsc_permissiontype predefined value INSERT' do
    dsc_xmysqlgrant[:dsc_permissiontype] = 'INSERT'
    expect(dsc_xmysqlgrant[:dsc_permissiontype]).to eq('INSERT')
  end

  it 'should accept dsc_permissiontype predefined value insert' do
    dsc_xmysqlgrant[:dsc_permissiontype] = 'insert'
    expect(dsc_xmysqlgrant[:dsc_permissiontype]).to eq('insert')
  end

  it 'should accept dsc_permissiontype predefined value SELECT' do
    dsc_xmysqlgrant[:dsc_permissiontype] = 'SELECT'
    expect(dsc_xmysqlgrant[:dsc_permissiontype]).to eq('SELECT')
  end

  it 'should accept dsc_permissiontype predefined value select' do
    dsc_xmysqlgrant[:dsc_permissiontype] = 'select'
    expect(dsc_xmysqlgrant[:dsc_permissiontype]).to eq('select')
  end

  it 'should accept dsc_permissiontype predefined value UPDATE' do
    dsc_xmysqlgrant[:dsc_permissiontype] = 'UPDATE'
    expect(dsc_xmysqlgrant[:dsc_permissiontype]).to eq('UPDATE')
  end

  it 'should accept dsc_permissiontype predefined value update' do
    dsc_xmysqlgrant[:dsc_permissiontype] = 'update'
    expect(dsc_xmysqlgrant[:dsc_permissiontype]).to eq('update')
  end

  it 'should accept dsc_permissiontype predefined value EXECUTE' do
    dsc_xmysqlgrant[:dsc_permissiontype] = 'EXECUTE'
    expect(dsc_xmysqlgrant[:dsc_permissiontype]).to eq('EXECUTE')
  end

  it 'should accept dsc_permissiontype predefined value execute' do
    dsc_xmysqlgrant[:dsc_permissiontype] = 'execute'
    expect(dsc_xmysqlgrant[:dsc_permissiontype]).to eq('execute')
  end

  it 'should not accept values not equal to predefined values' do
    expect{dsc_xmysqlgrant[:dsc_permissiontype] = 'invalid value'}.to raise_error(Puppet::ResourceError)
  end

  it 'should not accept array for dsc_permissiontype' do
    expect{dsc_xmysqlgrant[:dsc_permissiontype] = ["foo", "bar", "spec"]}.to raise_error(Puppet::ResourceError)
  end

  it 'should not accept boolean for dsc_permissiontype' do
    expect{dsc_xmysqlgrant[:dsc_permissiontype] = true}.to raise_error(Puppet::ResourceError)
  end

  it 'should not accept int for dsc_permissiontype' do
    expect{dsc_xmysqlgrant[:dsc_permissiontype] = -16}.to raise_error(Puppet::ResourceError)
  end

  it 'should not accept uint for dsc_permissiontype' do
    expect{dsc_xmysqlgrant[:dsc_permissiontype] = 16}.to raise_error(Puppet::ResourceError)
  end

  it 'should accept dsc_ensure predefined value Present' do
    dsc_xmysqlgrant[:dsc_ensure] = 'Present'
    expect(dsc_xmysqlgrant[:dsc_ensure]).to eq('Present')
  end

  it 'should accept dsc_ensure predefined value present' do
    dsc_xmysqlgrant[:dsc_ensure] = 'present'
    expect(dsc_xmysqlgrant[:dsc_ensure]).to eq('present')
  end

  it 'should accept dsc_ensure predefined value present and update ensure with this value (ensure end value should be a symbol)' do
    dsc_xmysqlgrant[:dsc_ensure] = 'present'
    expect(dsc_xmysqlgrant[:ensure]).to eq(dsc_xmysqlgrant[:dsc_ensure].downcase.to_sym)
  end

  it 'should accept dsc_ensure predefined value Absent' do
    dsc_xmysqlgrant[:dsc_ensure] = 'Absent'
    expect(dsc_xmysqlgrant[:dsc_ensure]).to eq('Absent')
  end

  it 'should accept dsc_ensure predefined value absent' do
    dsc_xmysqlgrant[:dsc_ensure] = 'absent'
    expect(dsc_xmysqlgrant[:dsc_ensure]).to eq('absent')
  end

  it 'should accept dsc_ensure predefined value absent and update ensure with this value (ensure end value should be a symbol)' do
    dsc_xmysqlgrant[:dsc_ensure] = 'absent'
    expect(dsc_xmysqlgrant[:ensure]).to eq(dsc_xmysqlgrant[:dsc_ensure].downcase.to_sym)
  end

  it 'should not accept values not equal to predefined values' do
    expect{dsc_xmysqlgrant[:dsc_ensure] = 'invalid value'}.to raise_error(Puppet::ResourceError)
  end

  it 'should not accept array for dsc_ensure' do
    expect{dsc_xmysqlgrant[:dsc_ensure] = ["foo", "bar", "spec"]}.to raise_error(Puppet::ResourceError)
  end

  it 'should not accept boolean for dsc_ensure' do
    expect{dsc_xmysqlgrant[:dsc_ensure] = true}.to raise_error(Puppet::ResourceError)
  end

  it 'should not accept int for dsc_ensure' do
    expect{dsc_xmysqlgrant[:dsc_ensure] = -16}.to raise_error(Puppet::ResourceError)
  end

  it 'should not accept uint for dsc_ensure' do
    expect{dsc_xmysqlgrant[:dsc_ensure] = 16}.to raise_error(Puppet::ResourceError)
  end

  # Configuration PROVIDER TESTS

  describe "powershell provider tests" do

    it "should successfully instanciate the provider" do
      described_class.provider(:powershell).new(dsc_xmysqlgrant)
    end

    before(:each) do
      @provider = described_class.provider(:powershell).new(dsc_xmysqlgrant)
    end

    describe "when dscmeta_module_name existing/is defined " do

      it "should compute powershell dsc test script with Invoke-DscResource" do
        expect(@provider.ps_script_content('test')).to match(/Invoke-DscResource/)
      end

      it "should compute powershell dsc test script with method Test" do
        expect(@provider.ps_script_content('test')).to match(/Method\s+=\s*'test'/)
      end

      it "should compute powershell dsc set script with Invoke-DscResource" do
        expect(@provider.ps_script_content('set')).to match(/Invoke-DscResource/)
      end

      it "should compute powershell dsc test script with method Set" do
        expect(@provider.ps_script_content('set')).to match(/Method\s+=\s*'set'/)
      end

    end

    describe "when dsc_ensure is 'present'" do

      before(:each) do
        dsc_xmysqlgrant.original_parameters[:dsc_ensure] = 'present'
        dsc_xmysqlgrant[:dsc_ensure] = 'present'
        @provider = described_class.provider(:powershell).new(dsc_xmysqlgrant)
      end

      it "should update :ensure to :present" do
        expect(dsc_xmysqlgrant[:ensure]).to eq(:present)
      end

      it "should compute powershell dsc test script in which ensure value is 'present'" do
        expect(@provider.ps_script_content('test')).to match(/ensure = 'present'/)
      end

      it "should compute powershell dsc set script in which ensure value is 'present'" do
        expect(@provider.ps_script_content('set')).to match(/ensure = 'present'/)
      end

    end

    describe "when dsc_ensure is 'absent'" do

      before(:each) do
        dsc_xmysqlgrant.original_parameters[:dsc_ensure] = 'absent'
        dsc_xmysqlgrant[:dsc_ensure] = 'absent'
        @provider = described_class.provider(:powershell).new(dsc_xmysqlgrant)
      end

      it "should update :ensure to :absent" do
        expect(dsc_xmysqlgrant[:ensure]).to eq(:absent)
      end

      it "should compute powershell dsc test script in which ensure value is 'present'" do
        expect(@provider.ps_script_content('test')).to match(/ensure = 'present'/)
      end

      it "should compute powershell dsc set script in which ensure value is 'absent'" do
        expect(@provider.ps_script_content('set')).to match(/ensure = 'absent'/)
      end

    end

    describe "when dsc_resource has credentials" do

      it "should convert credential hash to a pscredential object" do
        expect(@provider.ps_script_content('test')).to match(/| new-pscredential'/)
      end

    end

  end
end


» Pollution control officials checked air quality near the site of Monday evening's explosion and fire at the IRPC petrochemical plant in Rayong province on Tuesday, and reported it was safe to breathe.
» Bidding for the construction of a high-speed train line to Rayong is expected to be held by the first quarter of next year, State Railway of Thailand (SRT) governor Prapat Chongsanguan said on Monday.
» The government has altered the high-speed railway linking three airports, one of the key infrastructure projects of the Eastern Economic Corridor (EEC), to terminate at U-tapao airport instead of the inner city of Rayong out of safety concerns and to speed development.
» Glowing in the champagne-coloured rays of the late afternoon Sun and gently swaying in the breeze from the nearby sea, the fluffy inflorescences crowning the tall green grass that fill these vast yet secret "fields" of Rayong province added magic to the already mesmerising scenery. Even more amazing is the fact that this grassland, which covers a combined area of almost 487,000m², literally floats on water.
» Charoen Pokphand Group has told the government that is interested in building a high-speed train route from Bangkok to Rayong on the country's Eastern Seaboard.
» The driver of a local songthaew bus in Rayong province has been praised for his kindness in going out his way to return a girl who got on the wrong bus safely home to her mother.
» RAYONG – Mae Rumphueng was closed to tourists for the second day on Wednesday as authorities continue to trace the cause of an oil slick which hit the beach on Tuesday.
» The Energy Ministry has put off to next week an announcement of its investigation into the offshore oil spill in Rayong which damaged Ao Phrao on Samet island.
» A broken industrial hose pipe has been blamed for causing PTT Global Chemical Plc's (PTTGC) oil spill in the Gulf of Thailand off the coast of Rayong last month, an investigation committee said on Wednesday.
» In most parts of the Kingdom, Songkran takes place on April 13-15. In certain areas, however, that's too soon for the fun to be over.


What Is a Flower Essence Remedy?
Every flower is known to have healing properties. From each flower, a liquid extract is created that carries the subtle energetic patterns and the spirit essence of that flower to effect shifts in consciousness and promote well-being.
Each flower is a consciousness code to awaken us to our human divinity.
Consistent use of our customized flower formulas activates a conscious healing journey that cultivates healthy holographic fields, supporting greater ease, freedom, and enthusiasm for life.
Flower essences can be used to remedy any issue(s) a person is dealing with. They can also be used to cultivate actualization. For example, one individual might benefit from a remedy that will ameliorate heartbreak, worry, judgment, and abandonment. Another person might be seeking to develop their experience of the heart chakra as a field of deepening self-acceptance and compassion.
In all cases, flower essences have the power to catalyze inner growth and human evolution to higher levels of energy, radiance, and influence.
Flower essence therapy can be effectively utilized for short-term needs or goals or for on-going extensive, transformational growth. Flower essences speak to your genes!
How Does a Flower Essence Work?
The ingestion of a flower essence brings the human soul into direct contact and communication with the plant spirit. Simply put, a flower essence is a wordless prayer, an energetic formula that communicates the God-plan to our very heart, mind, and soul.
How is a Flower Essence Created?
Flower essences are liquid solar infusions that carry the unique vibrational signature of the plant. They are prepared in a pristine environment at the height of the season for each individual species, during which time the bloom represents the most infinite and unique expression of the flower's beauty, power, and grace—all of which support human advancement and healing.
How Is a Personalized Flower Essence Remedy Created?
A personalized remedy is created through a synergistic combination of several essences, each involved in grounding a specific life pattern frequency designed to catalyze transformational change in the individual. These changes encompass shifts in behavior, psycho-emotional clarity, attitude, and lifestyle. A personalized flower essence remedy acts like a laser light of consciousness that reveals the not-yet-conscious potential of the individual, simultaneously transmuting distortions in one's energy field.
During a session, Lilli says, "I attune to the higher self of the participating individual and develop a formula based on my many years of inner experience. We look at imbalances on the level of the chakras, color, and the physical and subtle bodies. I choose the essences with an orientation both to the subtle and outwardly directed manifestation relative to the individual's soul path.
One of the original formulas developed by Lilli is called the Transgenerational Clearing Formula. This formula was birthed out of a universal need to address the historical, ancestral patterns that have been unconsciously passed down through the family lineage. It is one of the most widely used of all her formulas over the past thirty years.
Ancestral clearing is often a primary starting point for one's healing journey. The Transgenerational Clearing Formula is designed to enhance the positive cultural and genetic tendencies of the family tree while helping us let go of conditioning and characteristics that inhibit our capacity to live full and free lives.
The Transgenerational Clearing Formula empowers the authentic liberation of one's being to individuate as a unique and unfettered soul.
An individual or a cluster of family members can use the Transgenerational Clearing Formula. The formula can be used for an unlimited period, and it is especially suggested for use at pivotal points in the life cycle. As more family members participate in using the formula, the overall effect is strengthened exponentially.
The Transgenerational Clearing Formula is one example of an intentional, conscious formula. Lilli will personalize a formula to help you map out those areas of your life that can benefit most from the use of flower essences.
Discover the joy of transformation into the all-possible human!


According to the website of Iranian Oral History, a meeting with the subject of Challenges of Oral History revolving around security of historical resources was held in the venue of the 31st Tehran's International Book Fair in Imam Khomeini Mosalla on Wednesday 10th of May 2018. Shafiqeh Nik Nafs was the secretary of the meeting and Amit Masoud Shahram Nia, Majid Tafreshi, Mohsen Kazemi and Gholamreza Azizi were the speakers of the meeting.
The Deputy Head of the 31st Tehran's International Book Fair continued, "During my three-year cooperation with the friends in the form of a working project, some 360 hours of interview were conducted with the dignitaries who are not among us now and even some of them did not follow memory-writing. The good thing happened at that time and was continued later was that memory-writing did not get limited just to the recording of interviews with these respected people and limited to audio conversations which are common but it was tried that the interviews were perfect and in addition to audio conversations, a good visual work was also carried out. I was looking at a list provided for the interviews and saw that today, 80 percent of the interviewees are not among us. This shows that to what extent hurrying up is important. Once the subject of oral history was an oppressed one in our country, but at present it has become much more serious. Previously, they looked at oral history like social history but now, this child has grown to such an extent that it is more important to pay attention to it. Oral history was already considered as a method for historical studies, today it has turned into a field and a branch of historical studies. The resources were very few at that time, but fortunately, the literature of oral history has revived now. Paying attention to oral history has become more serious in the universities. I think good international experiences have been carried out about Iranian oral history and we can say that the treasury of oral history of contemporary Iran has become weightier. However, the work of oral history is very hard. The biggest challenge that we have experienced was that access to most of the dignitaries that we wanted to go to them was difficult due to either old age or job plurality or for political reasons; for instance, access to some of the actors of the first decade of the Islamic revolution is not possible. Efforts to interpret historic narratives are also one of the challenges to oral history. How different the narratives were when we went to different dignitaries. We are also concerned about other points of the history. Registration, preservation and writing of the history of the imposed war also require serious attention. The serious point in writing the history of war is the issue of being sacred which has been shaped by using the shining faces of the combatants which makes difficult the recording of the events. Being sacred of the combatants' faces is correct but we should not hinder the correct registration and recording of the events and this has turned into a challenge. We need to carry out a proper chronology of the events of the war era. The second point that we could cooperate with friends was the time when I was the Deputy Head of the National Archives and I want to confess honestly that I had the sincerest, the most hardworking and scientific colleagues in the National Library and Archives of Islamic Republic of Iran during my career."
Majid Tafreshi, a history researcher was the second speaker of the meeting. He said, "Today I want to speak about risks of memoires. As we did not pay attention to necessity of oral history in the last years, now we do, but we pay less attention to its challenges and ifs and buts. I faced with the individuals inside and outside the country who had characteristics worth listening to their words, registering and recording their memoirs. There are several issues here to which we must pay attention. First, sometimes, the interviewer sees himself or herself in the form of a tape recorder who sits in a corner without any guidance, supervision and organized method, allowing the interviewee to say whatever he or she has. This has reasons. First, there is the unawareness of the interviewer towards the interview, and the interviewee does not have enough awareness and study. In this case, like the past several years, the interviewee takes control of the affairs knowingly or unknowingly, leading the interview and the interviewer is a tool and tape recorder. The thing that happens here is that the interviewer may be influenced by the interviewee. It is possible many times that he or she confronts with the interviewee with previous intention and sometimes is charmed due to much fascination and the quality is lost. So, if the interviewer has necessary readiness, he or she can launch a powerful and bright project easily. On the other hand, the interviewee can also have several problems. Sometimes, the interviewees are distinguished people and are either conservative in expressing their memories for reasons, or do not have confidence on the interviewer for reasons and do not say the whole thing; one sample is the interview conducted by Mohammad Ebrahim Amir Teimour Kalali with Habib Lajevardi in Harvard Oral History Project. As far as we know Amir Teimour Kalai in Iranian contemporary history, he knows himself a descendant of Nader Shah and Timur the Lame. His family was in Teimuri District and among the proprietary and regional land owners and lords. He has been a member of Khorasan's Scientific Association since Ahmad Shah and after the Constitutional Revolution. He was present during the Constitutional Revolution, conquer of Tehran and Pahlavi era. He was one of the close friends of Dr. Mosadeq during oil nationalization. He was the Minister of Labour in the first term and then was appointed as Interior Minister. In the eighteenth term, he was among the few National Front representatives who came to the parliament in a coup; his daughter later became the wife of Pakistan's President, Eskandar Mirza. He was a great man and we see that he at the age of 90 talked with Habib Lajevardi in Los Angeles and the result was very ridiculous memoirs from a wacky person who knows nothing. This happened for two reasons. First, he was interviewed at a time when had lost his memory and second Habib Lajevardi knew nothing of Amir Teimur and interviewed him and the thing that could be bright in its time turned into a worthless work. We owe Habib Lajevardi but if a proper mechanism is not observed, the result can be low value. Sometimes, the owner of memoirs lies knowingly or does not tell the whole facts due to registration in history. Many times, he or she does not tell some memoirs which are not important from the viewpoint of the owner of memories, and or stresses more on the ones which are important from the view of the audience, and this is the art and ability of the interviewer in view of his or her skill who recalls some cases. On the other hand, when the interviewer argues during an interview with the interviewee, the trust is lost. Argument in an interview should continue until its challenging aspect is not eliminated; finding the border between challenge and interrogation is very difficult and on the other hand, observation of these standards is different for every person. Oral history is a tool for historian to write history and an important and undeniable resource for historiography. If we consider an oral history interview as an original history, it provides the grounds for systematic mistakes and lies of the interviewee and interviewer intentionally or unintentionally, and this can be turned into risks for historiography namely an opportunity turns into a serious challenge and this is seen in some main resources extremely. One of the big problems which we have in recording memoirs is that our memory-tellers do not have the culture of daily note writing. When you do not have daily note writing, you forget many things and the generalities just remain in your mind, but you forget the details, and when we during an interview remind them of the details, they are thrilled. This is also a point for helping the owner of the memory and the current of interview which should also be noticed."
In continuation of the meeting, Mohsen Kazemi, a history writer and researcher said, "After three decades of oral history work, we need to take a look at the back and see what we are going through. We should see what this information we generated and left at the disposal of society, whether it solves the problems, or what heritage it has brought to our country. The subject of pathology of oral history has numerous chapters and on the other hand is very sensitive and I would like to bring up the debate of information engineering or information organization which is a prelude to pathology. We need information for an engineering construction or an intellectual construction to be properly engineered and architecturally organized, both quantitatively and qualitatively. In qualitative organization, we must pay attention to oral history process from the phase of finding subject, pre-research, research, post-research and during the interview. We need to know how and with what necessary information and training should go forward. Then, there is the issue of archive, transcription and compilation. In order to present a good work qualitatively, we need training and experience. What is being produced today in our country does not follow any of these steps; things are tangled, emotional, and triggered by a series of immediate community needs. Some think that recording of any memory can be named oral history while this complicated process should also be considered. The selection of a subject and our studies around that subject is of great importance; it means that the information regarding a subject should be first organized by us as oral historians and questioner history questioners and go to the interviewee with good information so that not to become passive, because oral history should be shaped in an active atmosphere as a correct definition of oral history says it is an active interview. We must first make this service to ourselves and if the information is organized before ourselves, and pay attention to the process of obtaining information out of the mind of our interviewee, we need to have a normal level of the society's literacy namely to know the literacy of psychology and sociology and a little of political and economic issues and a little of the whole issues of the society. That is, we need to have a medium to high intelligence so that we can obtain that information, otherwise, as Mr. Tafreshi said, we will fall into the same trap in which the interviewee leads the interviewer and takes to the boundaries that should not be taken. When the information is being produced, we need to organize them qualitatively. Here and in qualitative terms, there is a discussion of validation and verification that to what extent the information that is being produced is correct and false. To what extent is our information correct and false, it goes back to the way we have come form in the past, how we have chosen the subject and how far we have researched about it, and what we are going to do now to generate this information. We are now going to the point where we do the work of validation with with various tools and internal and external credit, that is, by establishing exchanges between different narratives and with the post-interviewing research, we compare and adapt them to the documentation in order to verify and raise our data qualitatively and to give credit to them. Then, the issue of archive is brought up. Archive should be viewed not only qualitatively but quantitatively. In qualitative discussion, the point is how we should have the world's literacy. We need to know what the status of the world is in the archive, because it helps us to organize information. Arranging more and more information takes us to the archive, and if we organize the information well in the archive, we can take easy and big steps in the compilation. If we do not organize our information in the archive correctly, we will face with trouble in compiling it, because we need to organize information in the compilation too. A good editor must know where to put the data in place so that he or she can get the right meaning and purpose of the work and give it to the community. To me, all of these is a chain and we need to pay attention to them well and have necessary trainings. But a serious damage which exists in the field of information is that it is generated massively. The reason for mass production is that there is no organized arrangement that will cause us a major problem in the future and that is a huge accumulation of information. In the future, we will not be able to identify pure from impure in the information explosion that is happening. For example, lots of information about war are being produced. Because there is a halo of sanctification in them, they all suppose that the narrator who is expressing memories is attached to that holy space, so he or she is right. Hasn't wrong information entered the society inside the words and the targeted work the interviewer is doing? How can we sort through them? Sorting is a technique but information must be tabulated and purposeful to answer. We need to have the necessary skills to organize information and use all of the information and data to build the country."


text:
Write A Review About Trion For A Chance to Win A $100 Amazon Gift Card
Care Articles Jobs Trion, How Are We Doing?
Park in Trion, Georgia, United States, with Trion Town Hall on the left, and Mount Vernon Mills in the background on the right. by Brian Stansberry is licensed under CC BY 4.0
Trion is a town in Chattooga County, Georgia, United States. The population was 1,827 as of the 2010 census, down from 1,993 at the 2000 census. Trion is the second largest incorporated community in Chattooga County, which has a population of approximately 26,000. Trion is known as the denim capital of the world because of the Mount Vernon (formerly Riegel) manufacturing plant, which employs about 4,000 people.
By Rating All 5 (7) 4+ (14) 3+ (23) 2+ (44)
There are no reviews for Trion yet.
Be the first one to review this city!
Capital Senior Living
How did Georgia earn the grade of A? We examined the state taxes based on how age friendly they are. Georgia has a state sales tax of 4.00%. Of particular interest is that Georgia does not have taxes on social security. There are no estate taxes. There are no taxes imposed on inheritance. Georgia has an effective property tax rate of 0.93%. Weighing these taxes and other taxes most likely to impact the aging population is how Georgia earned its state tax grade of A.
Learn more about taxes in Georgia
Review: Trion, GA
Is Trion age friendly?

redpajama_set_name: RedPajamaCommonCrawl


text:
By Maya Dusenbery • @mayadusenbery • 8 years ago
Do you know the laws that cover street harassment in your state?
If not, Stop Street Harassment has you covered. Yesterday, they released the Know Your Rights: Street Harassment and the Law toolkit, which details the laws in each state that address different forms of street harassment–from obscene comments to up-skirt photos to groping–and provides information on how to report these crimes. On the website, you can skip directly to each state's section to find the information for your state. It also highlights the best laws in the hopes of encouraging advocacy in other states to improve theirs.
Similar to campaigns like Know Your Title IX, the resource aims to empower individuals to be aware of their legal options. As lead author Talia Hagerty explains, "This toolkit helps citizens know when street harassment constitutes a crime and gives us additional power to say 'this is not ok.'" Given how pervasive, normalized, and hard-to-define street harassment is, that's definitely a worthy goal. Knowledge is power, for sure, and I'm thankful this resource now exists.
Still, in many cases, I'm deeply ambivalent–at best–about turning to the criminal system to address street harassment. And I'm glad that SSH acknowledges the risks of an approach that focuses on criminalization. Emphasizing that there's no "right way" to respond to street harassment, SSH's executive director Holly Kearl notes in a press release that "laws will never be THE answer." In fact, as they write in a post announcing the toolkit, "We know that reporting harassment to the police or criminalizing harassment are not the only ways to end street harassment. In some cases, these may not even be the best ways. Criminalizing behavior can be problematic when laws are disproportionately applied to low-income communities and communities of color." SSH goes on reiterate that ending street harassment requires a multi-pronged approached and encourages people to "engage with your local law enforcement to ensure the law is always applied fairly and that your community handles street harassment in the most constructive way possible."
That's certainly an important long-term goal, but the fact is that currently laws are disproportionately applied to poor communities of color. And given that reality, I think we have an obligation to think critically about our individual responses to street harassment. Perhaps even more than other gendered crimes, street harassment–occurring as it does in public space (usually) between two strangers–is deeply embedded in larger power dynamics. Both its intention and meaning and how it is received and experienced are highly individual and contextual.
For example, as a young white woman in NYC, I had a zero tolerance policy on street harassment from businessmen on Wall Street or drunk bros in Midtown, yet I mostly tolerated, humored, sometimes even appreciated, the cat-calls of my West Indian neighbors in a gentrifying neighborhood in Brooklyn. Hell, even within the context of a single BK block, tone of voice and body language could spell the difference between a "Hey, snowflake!" that seemed to say, "You don't belong here" and one that said, "Welcome!" (Both of which I considered fair responses to my presence.) My reaction to harassment in various contexts was influenced by community norms, my position vis-à-vis the community, and the vastly different consequences had I ever turned to the police (which, thankfully, I was never tempted to do).
To be clear: I'm in no way trying to downplay the real damage that street harassment does by effectively excluding some people from freely moving through the world. Everyone–in any community–should be able to walk down the street without constantly bracing themselves against unwanted attention. And there are definitely some serious crimes–like public masturbation or stalking–that I might report regardless of the context. But especially when it comes to verbal harassment–when the line between a compliment and a violation is not, truly, very bright or consistent–I think determining the "best" response requires acknowledging all the power dynamics at play–not solely gender. And it demands an honest recognition that the most constructive community-based efforts to create the real cultural change needed to end street harassment are often hindered by blunt and racist instruments like the criminal justice system.
Maya Dusenbery is an Executive Director of Feministing.
Maya Dusenbery is executive director in charge of editorial at Feministing. She is the author of the forthcoming book Doing Harm: The Truth About How Bad Medicine and Lazy Science Leave Women Dismissed, Misdiagnosed, and Sick (HarperOne, March 2018). She has been a fellow at Mother Jones magazine and a columnist at Pacific Standard magazine. Her work has appeared in publications like Cosmopolitan.com, TheAtlantic.com, Bitch Magazine, as well as the anthology The Feminist Utopia Project. Before become a full-time journalist, she worked at the National Institute for Reproductive Health. A Minnesota native, she received her B.A. from Carleton College in 2008. After living in Brooklyn, Oakland, and Atlanta, she is currently based in the Twin Cities.
Maya Dusenbery is an executive director of Feministing and author of the forthcoming book Doing Harm on sexism in medicine.
Read more about Maya
Maya Dusenbery	Maya Dusenbery
Feministing is a labor of love and all our staff have other full-time jobs to support their work on the site. Your donation is much appreciated, and much needed.
Incarcerated People are Going on a Nationwide Strike
Is There A "Gray Zone" in Consent?
Sex Workers Know What Will Keep Them Safe. It's Time We Started Listening.
By Jess Fournier • 3 years ago
Today, people in America's prisons, jails, and detention centers will be going on strike.
Incarcerated people across 17 states will refuse to work and engage in hunger strikes and boycotts to demand "humane living conditions, access to rehabilitation, sentencing reform and the end of modern day slavery." Their list of ten demands includes "an immediate end to the racial overcharging, over-sentencing, and parole denials of black and brown humans," repeal of Clinton-era laws that limit rights to appeal, and reinstatement of "the voting rights of all confined citizens."
Prison strikes target ...
Incarcerated people across 17 states will refuse to work and engage in hunger ...
By Reina Gattuso • @reinagattuso • 3 years ago
If you've ever made a formal complaint of gendered violence, you might have felt that translating raw experience into the language of law is like describing a walk through the forest using only the formal scientific names of the trees. Whereas in lived reality, you saw the sunlight filtered green through the leaves, noted the precise shine off a beetle's shell, and started at the sudden call of a bird, in telling it everything becomes technical, different. Whereas in lived reality, you were muddling through your discomforts, trying to use the right language to send the right signals, sometimes not sure what you wanted, the law is black and white. Did a sexual assault happen or ...
If you've ever made a formal complaint of gendered violence, you might have felt that translating raw experience into the language of law is like describing a walk through the forest using only the formal ...
"Even symbolic victories can have real victims." – SB & Anna Bongiovanni
The chorus of voices opposing anti-sex work legislation FOSTA-SESTA is growing.
President Trump signed the misleadingly-titled Fight Online Sex Trafficking Act – Stop Enabling Sex Traffickers (FOSTA-SESTA) bill two weeks ago, over the opposition of sex workers' activist groups, internet freedom advocates, feminists, and the ACLU.
The law aims to prevent sex trafficking by punishing sites that host content related to "prostitution or sex trafficking," making no distinction between consensual sex work and human trafficking. And the lack of definitions of what constitutes either prostitution or sex trafficking opens the door to broad internet censorship. ...
President Trump signed the misleadingly-titled Fight Online Sex ...
Class▪criminal justice system▪criminalization▪police▪Race▪street harassment


Hey Ron. Thanks for advertising again with Dean's World. From what I've seen, you seem to have a pretty good advertising strategy. It's pretty clear to me that for the services you are offering, you are not very dependent upon click-through rates. People don't look at a lawyer's ad and say "Oh yeah, I need to buy those services RIGHT NOW!" Instead, what you are obviously trying to do is advertise on a bunch of different blogs so that people see your name everywhere, so that eventually when they feel they need services they are familiar with your name. So you advertise on a bunch of blogs, constantly keeping your name in the mix. This is very savvy. I only say that becuase I notice you advertise on many, many different blogs, kind of in a rotation.
Dean pretty much hit it right on the nose, and in fact mere hours earlier I had just written an email almost exactly along these line to Miklos Gaspar of Blogads in response to his inquiry about my stradgety. Dean had a lot more interesting things to say about the future of blog-based advertising, but I'm not necessarily sharing 'em for free.


text:
The Recession, Online Media and the Resurgence of American Creativity
How the economic downturn inadvertently closed the gap between technological elitists and "the common man"
Wi-Fi, as it turned out, just so happened to become the last bulwark of democratized society.
You scoff at such an assertion? In a country rattled by mushrooming unemployment numbers (capped off by a severely under-reported national under-employment rate hoovering around 18 percent), wireless Internet has been pretty much the only thing that's kept the under-class and under-privileged relevant in a society becoming more and more insulated in regards to pop culture. "Technological homogeneity," I call it: the reality that the upwardly mobile are becoming increasingly distant from the cultural artifacts of the common man and his social relics. That means more and more of the tablet-scribbling, smart phone-using, latte-sipping techno-nerds are beginning to resemble one another in cultural likes and dislikes, no matter their dissimilarities in ethnicity, race, gender or political/social affiliations.
The rhetoric we've heard for the last two decades has been that the "Intranet" would be the great unifier of culture. While that is true in some regards, technology has also been a great separator in regards to communal productivity, too. Prior to 2007, who exactly was making the most use of "free" technological services like YouTube, Twitter and even social networking sites like Facebook? The answer, of course, was the early adapters, the technologically-savvy that flocked to such services not as a means of broadcasting, but as a means of insulating. While it seems pretty counter-intuitive to think of such sites as insulated domains now, you have to think about the state of such sites five years ago. If you were on YouTube, it's because you wanted to share information with very insulated groups of people, not necessarily because you wanted the entire world to comment on your recorded trifles. The whole point of Facebook was to give college kids a venue to chit and chat without the interloping typing of non-academics. Short message services were meant to relay truncated, and occasionally coded, messages to small numbers of people; sites like Twitter and Tumblr became ineffaceable social monuments not because people wanted instant information, but because people originally wanted access to abbreviated and encrypted messages.
Social media, the bloated, overpopulated parasite that it is, was born not of egalitarianism, but good old fashioned elitism. The techno-nerds are in constant search of the next, uncorrupted, unpopulated site, server or service to do their assorted deeds in without having all of the Johnny-come-latelies show up and ruin all of their insulated fun. From a psychosocial standpoint, it's pretty obvious what's going on: the original adapters of the Intranet are trying to reclaim their territory, a sort of nostalgic return to the days of online bulletin board systems that seem positively antediluvian these days. When everybody's online, it's kind of hard to be "elite," isn't it?
By now, we are all familiar with memes, those annoying, usually stupid "jokes" that get popular on the Web and then blow up into cultural phenomena. We've seen the three thousand "I'm a Mac / I'm a PC" commercials about a million times now. We've all been told to go attempt procreation with ourselves by some nameless, faceless "troll" at least once or twice in our online sojourns. These three artifacts are very much driven by the idea of technological homogeneity. If you're "with" the cyber-crowd, you pretty much have to exhibit certain traits and tendencies; you become a hyper brand loyalist, you find succor in very specific online phenomenon and oh yeah, you consume your way into so much credit card debt that by the time you hit retirement, your live savings ought to number a good six or seven digits to the left of the first decimal. There are very much two kinds of users on the Internet; the technologically elite, and the commoner. Of course, most people are more or less a synthesis of the two extremes, but I'm feeling contentious in a Marxist sort of way this afternoon, so we'll just assume that you're "either/or" in this scenario. Now, if you have the technically competent at one pole and the technically incompetent at the other, who do you think will be creating the most popular culture to be found on the Internet?
It's an obvious answer, of course. Prior to 2007, I would say that a good 95 percent of Internet-based "popular culture" was created, managed and cultivated by the technologically homogenous. That means if you saw a video on YouTube, or read a message on Facebook or clicked a link on Twitter, odds are, the person that put said media in front of you was a person that was leaning more towards being a technological elitist than a commoner that could barely find a way to hook the charger cable up to his cell phone without tripping over the wire.
And then, the economy tanked, and things, they slowly began a-changing.
In the Great Depression, the insolvent drowned their worries in speakeasies and saloons. In the Great Recession, the penniless and hopeless are airing their worries through Vimeo and Reddit. That's not to say that such tools have become empowering agents in a literal sense (they certainly aren't helping people overcome economic peril, that's for sure), but the gap between technologically homogenous produced web culture and commoner produced web culture has diminished greatly since the Lehman Shock of '08. This is the case, for a number of reasons.
First off, the obvious one: if people are unemployed, they have more time to do stuff. Methinks the guy that used to work at the carpet factory always wanted to post karaoke videos online, but thanks to the albatross of gainful employment, such creative endeavors never took flight. One of the great, unforeseen dividends of the market crash has been the resurgence of commoner art - a resurgence, I surmise, that can only be attributed to the proliferation of Wi-Fi access over the last six years.
The second reason is a psychological one. Web based "commoner" pop culture is not only the resultant of free time, but distressed mindsets. Your kids are starving, your car has a hole in the gas tank and you're seriously thinking about throwing a brick through a vending machine to score yourself a week-long supply of candy bars and moderately outdated 'tater chips. Basically, your only outlets for channeling such psychosis are through immediate violence or metaphorical art - and since Farmville is cheaper than weaponry, you can tend to see why more people these days would rather blow the heads off aliens in "Halo" than the heads off their ex-coworkers.
Of course, my definition of "popular culture", in web terms, is a lot different than my definitions of non-Internet based "pop culture." To make a movie, or record an album, or to release a book, or to make a TV show, you probably have to be on the "inside" of the culture industry - or at the very least, have enough money to do some self-media production. To make "web pop culture," all you really have to do is leave something on the 'Net that can be found through Google. A lot of "commoners" are producing "web pop culture" without really knowing that they're producing "web pop culture" - with so many recession-affected souls flocking to social media, it's quite apparent why the aforementioned "technological elitist / commoner" production gap has exponentially decreased in the last half decade.
There's definitely not a whole lot of good you can say about the ongoing economic decline, but the resurgence of commoner art and the reduction in the elitist /commoner gap may be one of the few positives we can cull from the crisis. If you're a proponent of the Flynn Effect, you could even make the argument that a good ten or twenty years down the line, the commoner will become technologically-able enough to create web pop culture of a quality and consistency on par if not better than what the technologically homogenous are pooping out at the current. Of course, only time will tell if Steve No-Job and Suzie Social-Entitlement will harness social media for beneficial political and cultural change - i.e., confronting social injustice and inaccurate media representation instead of posting quasi-racially insensitive comments on vlogs and begging relatives for cash via Mark Zuckerberg's wondrous, all-encompassing social construct - but, hey, we can all hope, can't we?
Posted in Commoner Art, Digital Media, Economy, Elitism, Technology, Trolls, Underemployment, Unemployment, YouTube on August 30, 2011 by Your Friendly Neighborhood Jimbo | Leave a comment Edit
The Recession, Online Media and the Resurgence of ...


text:
String.prototype.chars = function () {
  'use strict';
  return this.split('');
};

String.prototype.multiply = function (count) {
  'use strict';
  return new Array(count + 1).join(this);
};

// Extending the array prototype like this seems to tack this function
// on to all arrays in Chrome.  Seems strange...

// Array.prototype.multiply = function (count) {
//   'use strict';
//   var str = this.join(',') + ',',
//       repeatingString = str.multiply(count);
//   return repeatingString.slice(0, -1).split(',');
// };

var myLib = {
  arrayMultiplier: function (arr, count) {
    'use strict';
    var str = arr.join(',') + ',',
        repeatingString = str.multiply(count);
    var results = repeatingString.slice(0, -1).split(',');
    var item0 = results[0];
    if (!isNaN(Number(item0))) {
      // console.log('here');
      results = results.map(function (item) {
        return Number(item);
      });
    }
    // console.log(results);
    return results;
  },

  arrayTransform: function (inputArray) {

    // Transform an array of subarrays where each subarray has up to 8 values.

    // inputArray = [
    //   [11, 12, 13, 14, 15, 16, 17, 18],
    //   [21, 22, 23, 24, 25, 26, 27, 28],
    //   [31, 32, 33, 34, 35, 36, 37, 38]
    // ];

    // The resulting array will look like this...

    // transformedArray = [
    //   [11, 21, 31],
    //   [12, 22, 32],
    //   [13, 23, 33],
    //   [14, 24, 34],
    //   [15, 25, 35],
    //   [16, 26, 36],
    //   [17, 27, 37],
    //   [18, 28, 38],
    // ];

    // TODO: Find a cleaner way to do this!!!

    var col1 = inputArray.map(function (col) {
      return col[0];
    });

    var col2 = inputArray.map(function (col) {
      return col[0], col[1];
    });

    var col3 = inputArray.map(function (col) {
      return col[0], col[1], col[2];
    });

    var col4 = inputArray.map(function (col) {
      return col[0], col[1], col[2], col[3];
    });

    var col5 = inputArray.map(function (col) {
      return col[0], col[1], col[2], col[3], col[4];
    });

    var col6 = inputArray.map(function (col) {
      return col[0], col[1], col[2], col[3], col[4], col[5];
    });

    var col7 = inputArray.map(function (col) {
      return col[0], col[1], col[2], col[3], col[4], col[5], col[6];
    });

    var col8 = inputArray.map(function (col) {
      return col[0], col[1], col[2], col[3], col[4], col[5], col[6], col[7];
    });

    var transformedArray = [col1, col2, col3, col4, col5, col6, col7, col8];
    return transformedArray;
  }
};

var Deck = function (jokers) {
  'use strict';
  var ranks = 'A23456789TJQK'.chars(),  // Ace through King
      suits = 'CDHS'.chars();           // Clubs, Diamonds, Hearts, Spades

  // Initialize and build this.cards array
  // i.e. ['AC', '2C', ... 'QS', 'KS']
  this.cards = [];
  // Initialize and build this.cardImageMap
  // i.e. {'AC': '0px 0px', ... 'KS': '-948px -369px'}
  this.cardImageMap = {};

  for (var s in suits) {
    for (var r in ranks) {
      // Build image location map (to pull a single card image from sprite).
      var cardName = ranks[r] + suits[s],
          cardWidth = 1027 / 13,  // 79px wide
          cardHeight = 615 / 5,  // 123px tall
          x = -(r * cardWidth) + 'px',
          y = -(s * cardHeight) + 'px';
      this.cardImageMap[cardName] = x + ' ' + y;
      // Build standard 52-card deck.
      this.cards.push(cardName);
    }
  }

  if (jokers) {
    this.cards.push('?B');  // Black Joker
    this.cards.push('?R');  // Red Joker
  }

};

var Shoe = function (shoeSize) {
  'use strict';

  // Initialize parameters.
  shoeSize = shoeSize || 1;

  // Multiply a single deck by the size of the shoe.
  this.cards = myLib.arrayMultiplier(game.deck.cards, shoeSize);

  // Use a Fisher-Yates random shuffle algorithm
  // http://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle
  this.cards = _.shuffle(this.cards);

};

Shoe.prototype.dealCardTo = function (player) {
  'use strict';
  game.players[player].addCard(this.cards.pop());
};

Shoe.prototype.dealAround = function (num) {
  'use strict';
  for (var n in _.range(num)) {
    for (var p in game.players) {
      game.players[p].addCard(this.cards.pop());
    }
  }
};

Shoe.prototype.count = function () {
  'use strict';
  return this.cards.length;
};

var Hand = function (cards) {
  'use strict';
  var hand = this;

  this.cards = cards;

  // Build a 15-item rank map to be used for scoring hands
  // (the 0 and 1 keys are not used).
  this.ranks = '--23456789TJQKA';
  this.rankMap = {};
  this.ranks.chars().forEach(function (r, i) { hand.rankMap[i] = r; });
};

// Return an array of values matching each card, sorted descending.
Hand.prototype.sortedVals = function () {
  'use strict';
  var hand = this;
  // Swap out the rank number for a rank value.
  var rankVals = this.cards.map(function (card) {
    return hand.ranks.indexOf(card[0]);
  });
  // Sort rank values in descending order.
  rankVals = _.sortBy(rankVals, function(num){ return Math.max(num); }).reverse();
  // Keep ace high unless 'A2345' straight is encountered.
  return (rankVals === [14, 5, 4, 3, 2]) ? [5, 4, 3, 2, 1] : rankVals;
};

// Return highest rank if flush, else false.
Hand.prototype.straight = function () {
  // TODO
};

// Return true if flush, else false.
Hand.prototype.flush = function () {
  'use strict';
  // Create suits object with suit as key and qty as value.
  var suits = _.countBy(this.cards, function (card) { return card[1]; });
  // Flip the object and make a unique array with qty of each suit.
  var suitCounts = Object.keys(_.invert(suits));
  // Return true if any of the values are 5 or greater.
  return Boolean(suitCounts.filter(function (num) { return num >= 5; })[0]);
};

// Return lowest pair rank, else false.  Highest pair option is available.
Hand.prototype.ofAKind = function (n, highVal) {
  'use strict';
  var hand = this;
  // Build a 15-item array that counts how manu of each rank
  // (first two slots are not used).
  this.sortedCounts = myLib.arrayMultiplier([0], 15);
  this.sortedVals().forEach(function (val) { hand.sortedCounts[val]++; });

  if (highVal) {
    // Look for the highest card that has multiples
    var maxIndex = 14 - this.sortedCounts.reverse().indexOf(n);
    return this.rankMap[maxIndex] || false;
  } else {
    // Look for the lowest card that has multiples
    var minIndex = this.sortedCounts.indexOf(n);
    return this.rankMap[minIndex] || false;
  }
};

// Return an array of 2-pair ranks, else false.
Hand.prototype.twoPair = function () {
  'use strict';
  var lowPair = this.ofAKind(2),
      highPair = this.ofAKind(2, true),
      result = [highPair, lowPair];
  return (highPair && lowPair !== highPair) ? result : false;
};

// Return an score array for a given hand.
// For example, the score of a JJ444 full house is [6, 11, 4, 11, 11, 4, 4, 4];
//              the score of a QJ642 flush is      [5,  0, 0, 12, 11, 6, 4, 2].
// By comparing the values at each index, a winner can be determined.
// No need to increment to the next index if a winner is identified.
// All suits carry equal weight.
Hand.prototype.score = function () {
  'use strict';
  var kind4 =    Number(this.ofAKind(4)),
      kind3 =    Number(this.ofAKind(3)),
      kind2 =    Number(this.ofAKind(2)),
      kind1 =    Number(this.ofAKind(1)),
      twoPairH = Number(this.twoPair()[0]),
      twoPairL = Number(this.twoPair()[1]),
      straight =        this.straight(),
      flush =           this.flush(),
      vals =            this.sortedVals();

  if      (straight && flush) { return _.flatten([8,        0,        0, vals]); }
  else if (kind4)             { return _.flatten([7,    kind4,    kind1, vals]); }
  else if (kind3 && kind2)    { return _.flatten([6,    kind3,    kind2, vals]); }
  else if (flush)             { return _.flatten([5,        0,        0, vals]); }
  else if (straight)          { return _.flatten([4,        0,        0, vals]); }
  else if (kind3)             { return _.flatten([3,    kind3,        0, vals]); }
  else if (twoPairH)          { return _.flatten([2, twoPairH, twoPairL, vals]); }
  else if (kind2)             { return _.flatten([1,    kind2,        0, vals]); }
  else                        { return _.flatten([0,        0,        0, vals]); }
};

// var myHand = new Hand(["QD", "6C", "7H", "2S", "QC"]);
// // var myHand = new Hand(['5H', '5C', 'KH', '5S', 'KS']);
// // var myHand = new Hand(['AH', 'QS', 'QH']);
// console.log('My Cards: ', myHand.cards);
// console.log('Sorted Ranks: ', myHand.sortedVals());
// console.log('Flush: ', myHand.flush());
// console.log('Two of a kind: ', myHand.ofAKind(2));
// console.log('Three of a kind: ', myHand.ofAKind(3));
// console.log('Two Pair: ', myHand.twoPair());
// console.log('Score: ', myHand.score());

var Player = function (options) {
  'use strict';

  options = options || {};
  this.name = options.name;
  this.hand = [];
  this.num = Number(this.name.slice(6));

  // This is the key to setting up 3 or 5 chairs.
  this.chairClass = function () {
    return (game.numPlayers === 3) ? '.chair' + (this.num + 1) : '.chair' + this.num;
  };
};

Player.prototype.addCard = function (card) {
  this.hand.push(card);
};

Player.prototype.showCard = function (cardPosn, cardName) {
  // Lots going on here...
  //   - Slice up the cards sprite to pull the correct card image
  //   - Position the card in the correct slot for the correct player
  var selector = this.chairClass() + ' ' + '.card' + (cardPosn + 1),
      background = 'background: url(../images/cards_1027x615.png) ',
      spriteOffset = game.deck.cardImageMap[cardName],
      fannedSpacing = '; left: ' + 20 * cardPosn + 'px;',
      style = background + spriteOffset + fannedSpacing;

  $(selector).attr('style', style);
};

Player.prototype.showHand = function () {
  var player = this,
      chairClass = $(player.chairClass());
  this.hand.forEach(function (_, i) {
    // Construct a div to hold the card view.
    chairClass.append('

');
    // Add the image to this div with a CSS background image.
    player.showCard(i, player.hand[i]);
  });
};

Player.prototype.showScore = function () {
  console.log('me: ', this.hand);
  var myHand = new Hand(this.hand);
      myScore = myHand.score();

  console.log(myScore);

  return myScore;

};

var Game = function (opt) {
  'use strict';

  // Initialize game options.
  opt = opt || {};
  var options = {
    variant: opt.variant || 'Five Card Draw',
    numPlayers: Number(opt.numPlayers) || 3,
    initialDeal: 5,
    dealSpeed: opt.dealSpeed || 'Instant',  // TODO
    shoeSize: Number(opt.shoeSize) || 1,
    isJokers: opt.isJokers === 'Yes' ? true : false
  };
  if (options.variant === 'Five Card Draw') {
    // If we are conforming to strict poker standards...
    // (better approach is to hide these settings when 5-card draw)
    // options.shoeSize = 1;
    // options.isJokers = false;
    options.initialDeal = 5;
  }

  this.numPlayers = options.numPlayers;

  this.players = {};

  // Initialize a game with players and a deck shoe.
  this.init = function () {
    // Initialize this.players.player1 = Player(),
    //            this.players.player2 = Player()...
    var game = this;
    _.range(options.numPlayers).forEach(function (i) {
      var name = 'Player' + String(i + 1);
      game.players[name.toLowerCase()] = new Player({name: name});
    });
    // Position the human player in the middle.
    var playerPosition = Math.round(options.numPlayers / 2);

    // Initialize a single deck of cards.
    this.deck = new Deck(options.isJokers);

    // Initialize the gameDeck and make initial deal.
    this.gameDeck = new Shoe(options.shoeSize);
    this.gameDeck.dealAround(options.initialDeal);

    this.players.player2.showScore();

  };
};

Game.prototype.highScore = function (scores) {

  // Temporoary test array...
  scores = [
    [6,  0, 0, 12, 11, 6, 4, 2],
    [0, 11, 4, 11, 11, 4, 4, 4],
    [1,  0, 0,  9,  6, 4, 4, 3]
  ];

  var byIndex = myLib.arrayTransform(scores),
      finalists = _.range(scores.length),  // .map(function (val) { return val + 1; }),
      winner;

  // console.log(byIndex);
  // console.log(finalists);

  for (var i = 0; i < 8; i++) {

    var max = _.max(byIndex[i]);

    // console.log(max);
    // console.log(byIndex[i].indexOf(max));
    // console.log(byIndex[i].lastIndexOf(max));

    var winningIndex = byIndex[i].indexOf(max),
        winningConfirm = byIndex[i].lastIndexOf(max);

    if ((finalists.indexOf(winningIndex) !== -1) &&
        (winningIndex === winningConfirm)) {
      winner = game.players['player' + (winningIndex + 1)].name;

      // console.log('We have a winner!......');

      return winner;
    } else {
      finalists = [];
      for (var j = 0, len = byIndex[i].length; j < len; j++) {
        if (byIndex[i][j] === max) {
          finalists.push(j);

          // TODO - finish figuring out how to handle column ties.
        }
      }
    }
  }
};

// Goal is to handle all DOM interactions from this file.
// Exceptions: game.playerX.showCard(), game.playerX.showHand()

var options = {},
    game,
    selectOptions = $('#gameVariant, #shoeSize'),
    radioOptions = $('#isJokers, #numPlayers, #dealSpeed'),
    newGame = $('#newGame'),
    pokerTable = $('#pokerTable'),
    summary = $('#summary');

// Adjust game options based on user input.
selectOptions.on('change', function (e) {
  options[e.target.id] = e.target.value;
  console.log(options);
});

radioOptions.on('click', 'label', function (e) {
  options[e.target.parentNode.id] = e.target.innerText;
  console.log(options);
});

// Start the game.
newGame.on('click', function () {

  // Clear the table of any previous game.
  pokerTable.html('');

  // Initialize a new game instance.
  game = new Game(options);
  game.init();

  // Show each player's hand.
  for (var i = 1; i <= game.numPlayers; i++) {
    // Set the players' chairs up in a symmetric horseshoe pattern
    if (game.numPlayers === 3) {
      pokerTable.append('

');
      game.players['player' + i].showHand();
    } else {
      pokerTable.append('

');
      game.players['player' + i].showHand();
    }
    // console.log(game.players['player' + i].hand);
  }

  var myScore = game.players.player2.showScore()[0],
      msg = '';

  if (myScore === 0) {
    msg = "Pretty lame.  You should save your cash on this one.";
  } else if (myScore === 1) {
    msg = "Hey, you've got a pair.  That's not bad.";
  } else if (myScore === 2) {
    msg = "Two pair.  Not bad.  This could win something.";
  } else if (myScore === 3) {
    msg = "Three of a Kind.  Time to up your bet!";
  } else if (myScore >= 4) {
    msg = "Rock on!  This is a killer hand!";
  }

  summary.html('')
         .append('

')
         .append('
' + msg + '
');

  // console.log(game.highScore());

});


OESF Portables Forum > Want Compiled Thread?
Full Version: Want Compiled Thread?
Before people complain, yes, I do know that there is a section for this.
Why don't we make a thread for people to post stuff they want compiled, kind of a reverse "New Packages Announced" thread? It might make people who wouldn't normally ask for apps to not have to start a new thread asking about it and feel more comfortable asking. It may also broaden the range of apps that are available for pdaXrom.
Then things as palm emulator, ecc.
Capn_Fish, it sounds like you're volunteering to do some compiling - good on you!
I am, more or less. I like compiling stuff, but I really don't know what people want. I think that if we make a thread for people to post wants in, it will give people like me ideas on what to compile. Also, it will provide a way to make popular or useful apps available for pdaXrom.
I found this Qtopia manual ... and have tried some help on IRC ... but I can't make it happy. . . If you could compile this for x86 that would be Astounding!
Unfortuately, I have never compiled for pdaX86. The only disc I tried wouldn't boot, and I never tried another one. I could try for a Zaurus app, if you would like.
I'll try once my SL-C3100 gets here. As far as I know, I need to compile the python development package, and it's too big to install in my limited flash.
The problem I encountered with when compiling gnome-python (and other gnome-xyz or xyz-gnome) is that the current gnome libraries for pdaX are very very old.
So what needs to be (re)compiled first is a whole series of new gnome stuff.
Anyway, I'm thinking of not compiling libraries until I get my new Z as they seem to be large to install.
By the way, I was thinking that this would be a general place for people to ask for apps, not just a place to ask me for stuff. I was thinking that people, like me, who want to help out by compiling stuff could get ideas here.
In short, if you want to compile something listed here, go ahead. The sooner stuff gets compiled the better!
Just as a note, I would like some games to compile.
As I`ve written earlier I really miss enigmail for thunderbird.
I`ve compiled some programs for pdaXrom, but Mozilla packages are hard to compile with cross compiler. So I`m really glad for any help.
I rather miss the Spider solitaire I use to play on the stock rom.
Do I need ThunderBird or anything installed to compile this?
Can you point me to some source code? I'm having trouble finding any spider solitaire game to even try to compile.
The version I played is at http://perso.orange.fr/arnaud.brejeon/index.html but that's not for X11 and no source anyway.
I saw that, but it didn't have a configure script, and using the command listed in the readme didn't work. Do you have any other source?
That's all I found other than java, tcl or python versions.
Speaking of python, actually, I'm more interested in Gnome-Python than Spider.
Hmm... this is what I found.
Description: C library for parsing XML, written by James Clark.
I'm in the process of building the (small) SDL libs that are needed, but SDL_Pango needs a patch. How do I patch a library?
Find the right patch -> Install the patch package from the feed -> Apply patch to the target source file (see man page) -> start compilation.
There is no patch ipk. I just have a file. I also have no clue how to apply the patch. If it doesn't take up too much space, could you explain it step by step?
No, there IS a patch IPK in the official feeds.
The alpha of Stratagus 2.2 is out...I assume people want to try it as well as the alpha of Battle of Survival 2.0?
I should have all of the libs compiled.
According to the compiling help you need to compile thunderbird before compiling enigmail.
I got Stratagus compiled...I'm going to post it on the "New Packages Announced" thread now ASAP. You can download the BoS data from the Stratagus website.
I should just be able to install the precompiled Thunderbird, right? I'll add that to my "to do when my 3100 gets here" list.
It would be very useful to have a downloader that supports segmented downloads (aka multi threaded dl's). I know of 2 command line apps: Aria2 and Prozilla.
Either of these would be very nice if someone could compile them.
Do we have a svn client that I can use on my Tosa beta1?
Do you have any specific one in mind? Either way, go ahead and point me to some source code, and I'll try to compile it.
There is also wxDownoad Fast but is a gui downloader that I've had trouble with in the past. If you are interested, Prozilla has a gui version called Prozgui - which you may have already discovered.
I have Prozilla compiled, but I still need to package it up. I'll try to get that done today.
Prozilla is packaged up and is in the new packages thread.
Now I just need to make these other people happy.
If you mean the gnome desktop, I don't know of a packaged version for pdaxrom.
I'm on my way to set up and streamline my dev enviroment. I will try to compile svn myself first. If i'm can't do it, I will ask for your help. Thanks anyway. And if anybody happen to have an svn ipkg (hard to believe that we don't have svn in the feeds), please post so I can move on to compile something else.
A little. I've been caught up with some work an haven't had much time to get compiling.
I have compiled and packaged gnome-desktop some while ago. Will post it later today.
P.S. I found the gnome stuff in the latest r121 feed are much more updated than the previous feeds. Thanks, sashz and the other dev!