スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

「劇作家とつくる短編人形劇2017」観てきた


一般的な人形劇というよりも、人間と人形とで作る舞台のような。そんなお芝居。3人の劇作家のそれぞれの色が違うように、ストーリーも違ってる短編3作品。



「かもめ」

チューホフのかもめをざっくり削ったらしいのだが、戯曲を知らないので、なんとも。四角関係の愛憎劇とでも言えばいいのか。roo16は昔、G/PITでみたのを思い出す。迫力の狭間のカモメがかわいい。

「MANGAMAN」

ザ・コメディ。マンガの有名なセリフでにやり、どころか(笑)。あと、俺なぜか泣いてた。観てるうちに、なんだかよくわからん感情に(笑)。楽しかった。

「わらの楯」

現実風味の虚構に、ファンタジーと運命とわら人形が交わる世界。最後に残ったわら人形たちの役者顔が忘れられない。ヒトに動かされるのが人形なら、人形でないヒトは居るのかな。



しばらくお芝居観れてなかったけと、今日の3作品まとめて観られて、足らない分が満たされた感じ。

次は何を観に行こう。

スポンサーサイト

節目

始まる節目

終わる節目


変わること

変わらないこと


一様なこと

切り替わること


歩きながら考えて

考えながら歩く


先日の「把゜夢の公演 ALONE AGAIN」と「おとなのかいだん」と、家に帰れば「トイレの神様」

手元にはたくさんのチラシ

みんな自分のやりたいことやってる


それぞれの想い

少しずつ変化していく周りの出来事

仕事で思う変わってないこと

自分に思う変わらないこと


朝は毎日やってきて

春は毎年やってくる


もうすぐ桜が咲きますね

Android で GoogleDoc にアクセス。おわり

Android で Google Documentに保存すると、ファイルの共有が可能になると思って、調べたり作ったり試行錯誤したりしました。

トークンの再取得や、共有の仕方/考え方、HTTP通信する時のヘッダの設定方法、などなど四苦八苦したことばかり。あと、ウェブで探しまわっても古い情報しか無かったり(でも有益でした!)、APIのバージョンがV3に変わったりしてて、情報が少ない中、なんとか今ウェブにある情報で作り上げることができました。

自分の拙いソースが、自分のような何処かの誰かの役に立てばいいなぁ。

Android で GoogleDoc にアクセス。その4

Google Document で得られるファイル1個に複数設定される、ACL情報を1個づつ管理するためのクラス。

ACL情報は、アクセスコントロールリスト。Google Documentで共有情報を設定するための情報。
1ファイルに対して、この人は読み取りだけ、この人は編集も可能と設定する。「この人」っていうのは、基本的には、G/Mailアドレスをもって設定する。
Google Groupも設定できるらしいけどやってない。次のMandala9のバージョンアップ時に追加する。

読み取り専用なり、編集可能なりで、ファイルを共有設定にすると、共有を設定された人がGoogle Documentにアクセスすると、その人のファイル一覧内に共有ファイルが含まれるようになっている。

当初、どうやって共有されるのかが分からず、またここでもハマった。

public class GoogleDocItemAcl {

// - static --------------------------------------------------------------
public enum AclRoleType {
NONE,
OWNER,
READER,
WRITER,
};

public enum AclScopeType {
NONE,
USER,
DEFAULT,
};

public static final String SCOPE_USER = "user";
public static final String SCOPE_DEFAULT = "default";

public static final String ROLE_NONE = "none";
public static final String ROLE_OWNER = "owner";
public static final String ROLE_READER = "reader";
public static final String ROLE_WRITER = "writer";

// - attribute -----------------------------------------------------------
AclRoleType _RoleType = AclRoleType.NONE; // reader/writer
AclScopeType _ScopeType = AclScopeType.NONE; // default/user
String _ScopeValue = ""; // メールアドレス
String _LinkEdit = "";

ArrayList _WithKeys;

public AclRoleType get_Role() {
return _RoleType;
}

public void set_Role(String _role)
{
if( _role.equals( ROLE_OWNER ) ) {
_RoleType = AclRoleType.OWNER;
}
else if( _role.equals( ROLE_READER ) ) {
_RoleType = AclRoleType.READER;
}
else if( _role.equals( ROLE_WRITER ) ) {
_RoleType = AclRoleType.WRITER;
}
}

public AclScopeType get_ScopeType() {
return _ScopeType;
}

public void set_ScopeType(String _type)
{
if( _type.equals( SCOPE_USER ) ) {
_ScopeType = AclScopeType.USER;
}
else if( _type.equals( SCOPE_DEFAULT ) ) {
_ScopeType = AclScopeType.DEFAULT;
}
}

public String get_MailAddress() { return get_ScopeValue(); }

public String get_ScopeValue() {
return _ScopeValue;
}

public void set_ScopeValue(String _ScopeValue) {
this._ScopeValue = _ScopeValue;
}

public String get_LinkEdit() {
return _LinkEdit;
}

public void set_LinkEdit(String _LinkEdit) {
this._LinkEdit = _LinkEdit;
}

// - public method -------------------------------------------------------

/**
* constractor
*/
GoogleDocItemAcl()
{
_WithKeys = new ArrayList();
}

/**
*
* @param key
* @param role
* @param value
*/
public void add_WithKey(String key, String role)
{
_WithKeys.add( new GAclWithKey(key, role) );
}

/**
* (defaultの?) のロールタイプを返す。
*/
public AclRoleType get_WithKeyRole()
{
AclRoleType type = AclRoleType.NONE;

if( _WithKeys.isEmpty() )
{
// 空っぽの場合は「ウェブで公開」になっている場合のようなので、デフォルトのroleを返す。
type = get_Role();
}
else
{
String role = _WithKeys.get(0).get_Role();

if( role.equals( ROLE_READER ) ) {
type = AclRoleType.READER;
}
else if( role.equals( ROLE_WRITER ) ) {
type = AclRoleType.WRITER;
}
}

return type;
}

/**
* インナー クラス。
* @author tatsu
*/
class GAclWithKey
{
String _Key;
String _Role;

public GAclWithKey( String _k, String _r )
{
_Key = _k;
_Role = _r;
}

// - get/set ---------------------------------------------------------
public String get_Key() {
return _Key;
}

public void set_Key(String _Key) {
this._Key = _Key;
}

public String get_Role() {
return _Role;
}

public void set_Role(String _Role) {
this._Role = _Role;
}


}
}

Android で GoogleDoc にアクセス。その3

GoogleDocAccess クラスが取得したXML情報から、ファイル単位で管理しておきたかったので作ったクラス。

GoogleDocmentにアクセスすると、ファイルの一覧がXMLで取得できますが、それを解析して1アイテムづつで覚えておくためのクラス。

ファイル名や、更新時間、リソースIDなどがある。

public class GoogleDocItem {

// - static members ------------------------------------------------------
private static final String DELETE_APPEND = "?delete=true";

// - attributes ----------------------------------------------------------
private String _ETag;
private Date _Update;
private String _FileName;
private String _Title;
private String _ContentSrc;
private String _ResourceId;

private String _EditUrl = "";
private String _EditMediaUrl = "";
private String _ResumableEditMediaUrl = "";

private String _AuthorName = "";
private String _AuthorMail = "";

// - Acl 情報 -
private Date _UpdateAcl;
private ArrayList _Roles;

// - get/set method ------------------------------------------------------
public String get_ETag() {
return _ETag;
}
public void set_ETag( String _etag ) {
_ETag = _etag;
}

public Date get_Update() {
return _Update;
}
public void set_Update(Date update) {
_Update = update;
}

public String get_FileNameFull() { // 拡張子付き
return _FileName;
}
public String get_FileNameOnly() // 拡張子無し
{
int last_index= _FileName.lastIndexOf('.');
String file_name = _FileName;

if( last_index >= 0 ) {
file_name = _FileName.substring(0, last_index);
}

return file_name;
}
public String get_FileNameExt() // ファイル拡張子
{
int last_index= _FileName.lastIndexOf('.');
String file_ext = "";

if( last_index >= 0 ) {
file_ext = _FileName.substring( last_index+1 );
}

return file_ext;
}

public void set_FileName(String fileName) {
_FileName = fileName;
}

public String get_Title() {
return _Title;
}
public void set_Title(String title) {
_Title = title;
}

public String get_ContentSrc() {
return _ContentSrc;
}
public void set_ContentSrc(String url) {
_ContentSrc = url;
}

public String get_ResourceId() {
return _ResourceId;
}
public void set_ResourceId(String url) {
_ResourceId = url;
}

public String get_EditUrl() {
return _EditUrl;
}
public void set_EditUrl(String _EditUrl) {
if( _EditUrl != null ) this._EditUrl = _EditUrl;
}

public String get_EditMediaUrl() {
return _EditMediaUrl;
}
public void set_EditMediaUrl(String _EditMediaUrl) {
if( _EditMediaUrl != null ) this._EditMediaUrl = _EditMediaUrl;
}

public String get_ResumableEditMediaUrl() {
return _ResumableEditMediaUrl;
}
public void set_ResumableEditMediaUrl(String _EditMediaUrl) {
if( _EditMediaUrl != null ) this._ResumableEditMediaUrl = _EditMediaUrl;
}

public Date get_UpdateAcl() {
return _UpdateAcl;
}
public void set_UpdateAcl(Date _UpdateAcl) {
this._UpdateAcl = _UpdateAcl;
}

public ArrayList get_Roles() {
return this._Roles;
}

public String get_AuthorName() {
return _AuthorName;
}
public void set_AuthorName(String _AuthorName) {
this._AuthorName = _AuthorName;
}
public String get_AuthorMail() {
return _AuthorMail;
}
public void set_AuthorMail(String _AuthorMail) {
this._AuthorMail = _AuthorMail;
}

// - public method -------------------------------------------------------

public GoogleDocItem()
{
_Update = new Date();
_FileName = "";
_ContentSrc = "";
_Title = "";
_Roles = new ArrayList();
}

/**
* ファイル名の拡張子チェック
*/
public boolean isFileExt(
String _ext
)
{
boolean st = false;

if( _FileName != null ) {
st = (get_FileNameExt().equals(_ext) );
}

return st;
}

/**
* 削除用のURLを取得する。
* @param _delete // I: true=Delete / false=Trash
*/
public String get_DeleteUrl(
boolean _delete
)
{
String url = get_EditUrl();

if( _delete ) {
url += DELETE_APPEND;
}

return url;
}

/**
* Acl情報を追加する。
*/
public void clearRoleScope()
{
_Roles.clear();
}

public void addRoleScope(
GoogleDocItemAcl _doc_acl
)
{
_Roles.add( _doc_acl );
}

/**
* Acl情報の default scope の の href を取得する。
*/
public String get_AclLinkEditDefault()
{
String url = "";

for( GoogleDocItemAcl role : _Roles )
{
if( role.get_ScopeType() == AclScopeType.DEFAULT )
{
url = role.get_LinkEdit();
break;
}
}

return url;
}

// - private method ------------------------------------------------------

}
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。