「catch」を含む日記 RSS

はてなキーワード: catchとは

2017-09-11

https://anond.hatelabo.jp/20170910205249

まじな話をすると、N予備校プログラミング入門コースやるのがオススメ

https://www.nnn.ed.nico

一日8時間勉強時間があるなら、だいたい一ヶ月で終わる内容。

月額1000円だけどしっかり勉強すれば一ヶ月の無料間中に終わると思う。

もともとN高等学校のノンプログラマーの生徒をWebエンジニアとして就職させるために作られたカリキュラム講師曰く去年はこれで二人エンジニア就職を決めたらしい。

内容も相当親切に説明していて、プログラミングで何か作るだけじゃなくて、就職必要な環境構築やセキュリティまでみっちりやる。

http://qiita.com/sifue/items/7e7c7867b64ce9742aee#%E3%82%B3%E3%83%B3%E3%82%BB%E3%83%97%E3%83%88%E3%82%92%E3%82%82%E3%81%A8%E3%81%AB%E6%A7%8B%E6%88%90%E3%81%95%E3%82%8C%E3%81%9F%E3%82%B3%E3%83%BC%E3%82%B9%E3%81%A8%E5%86%85%E5%AE%B9

講師が書いてる入門コースで習うことがまとめ。テキスト教材もあるけど授業も1項目を2時間で説明している。授業は週2の生放送とそのアーカイブがある。

↓みたいなことが学べる

----

Webプログラミング入門コース

Web ブラウザとは (Chrome, デベロッパーコンソール, alert)

はじめてのHTML (VSCode, HTML, Emmet)

さまざまなHTMLタグ (h, p, a, img, ul, tableタグ)

HTMLで作る自己紹介ページ (HTMLタグ組み合わせ, コンテンツ埋め込み)

はじめてのJavaScript (JS, ES6, エラー)

JavaScriptでの計算 (値, 算術演算子, 変数, 代入)

JavaScript論理を扱う (論理値, 論理積, 論理和, 否定, 比較演算子, if)

JavaScriptループ (ループ, for)

JavaScriptコレクション (コレクション, 配列, 添字, undefined)

JavaScript関数 (関数, 関数宣言, 引数, 戻り値, 関数呼び出し, 再帰)

JavaScriptオブジェクト (オブジェクト, モデリング, プロパティ, 要件定義)

はじめてのCSS (CSS, セレクタ, background-color, border)

CSSを使ったプログラミング (transform, id, class)

Webページの企画とデザイン (企画, 要件定義, モックアップ, 16進数カラーコード)

診断機能の開発 (const, let, JSDoc, インタフェース, 正規表現, テストコード)

診断機能組込み (div, 無名関数, アロー関数, ガード句, truthy, falsy)

ツイート機能の開発 (リバースエンジニアリング, URI, URL, URIエンコード)

Linux開発環境構築コース

LinuxというOS (VirtualBox, Vagrant, Ubuntuインストール, OS, CUIの大切さ)

コンピューター構成要素 (ノイマンコンピューター, プロセス, lshw, man, ps, dfの使い方)

ファイル操作 (pwd, ls, cd, mkdir, rm, cp, mv, find, ホストマシンとの共有ディレクトリ)

標準出力 (標準入力標準出力標準エラー出力パイプgrep)

vi (vimtutor)

シェルプログラミング (シバン, echo, read, 変数, if)

通信ネットワーク (パケット, tcpdump, IPアドレス, TCP, ルーター, ping)

サーバークライアント (tmux, nc, telnet)

HTTP通信 (http, https, DNS, hostsファイル, ポートフォワーディング)

通信をするボットの開発 (cron, ログ収集)

GitHubウェブサイトの公開 (GitHub, リポジトリ, fork, commit, 情報モラル)

イシュー管理とWikiによるドキュメント作成 (Issues, Wiki)

GitとGitHub連携 (git, ssh, clone, pull)

GitHubへのpush (init, add, status, インデックス, commit, push, tag)

Gitのブランチ (branch, checkout, merge, gh-pages)

ソーシャルコーディング (コンフリクト、プルリクエスト)

Webアプリ基礎コース

Node.js (Node.js, nodebrew, Linux, REPL, コマンドライン引数, プルリク課題)

集計処理を行うプログラム (集計, 人口動態CSV, Stream, for-of, 連想配列Map, map関数)

アルゴリズムの改善 (アルゴリズム, フィボナッチ数列, 再帰, time, プロファイル, nodegrind, O記法, メモ化)

ライブラリ (ライブラリ, パッケージマネージャー, npm)

Slackボット開発 (slack, mention, bot)

HubotとSlackアダプタ (hubot, yo)

モジュール化された処理 CRUD, オブジェクトライフサイクル, filter)

ボットインタフェースとの連携 (モジュールのつなぎ込み, trim, join)

同期I/Oと非同期I/O (同期I/O, 非同期I/O, ブロッキング)

例外処理 (try, catch, finally, throw)

HTTPサーバー (Web, TCPとUDP, Webサーバーの仕組み, Node.jsイベントループ, リスナー)

ログ (ログ, ログレベル)

HTTPのメソッド (メソッド, GET, POST, PUT, DELETE, CRUDとの対応)

HTMLフォーム (フォームの仕組み, form, input)

テンプレートエンジン (テンプレートエンジン, jade)

HerokuWebサービスを公開 (Webサービスの公開, heroku, dyno, toolbelt, login, create, logs)

認証利用者を制限する (認証, Basic認証, Authorizationヘッダ, ステータスコード)

Cookie を使った秘密匿名掲示板 (Cookie, Set-Cookie, expire)

UI、URI、モジュール設計 (モジュール設計, フォームメソッド制限, リダイレクト, 302)

フォームによる投稿機能の実装 (モジュール性, textarea, 303)

認証された投稿の一覧表示機能 (パスワードの平文管理の問題, 404, テンプレートのeach-in)

データベースへの保存機能の実装 (データベース, PostgreSQL, 主キー)

トラッキングCookieの実装 (トラッキング Cookie, IDの偽装, Cookie の削除)

削除機能の実装 (データベースを利用した削除処理, 認可, サーバーサイドでの認可)

管理者機能の実装 (Web サービス管理責任, 管理者機能の重要性)

デザインの改善 (Bootstrap, レスポンシブデザイン, セキュリティの問題があるサイトを公開しない)

脆弱性 (脆弱性, 脆弱性で生まれる損失, 個人情報保護法, OS コマンド・インジェクション)

XSS脆弱性対策 (XSS, 適切なエスケープ処理, リグレッション)

パスワード脆弱性対策(ハッシュ関数, メッセージダイジェスト, 不正アクセス禁止法, パスワードジェネレーター, 辞書攻撃)

セッション固定化攻撃脆弱性対策 (セッション, セッション固定化攻撃, ハッシュ値による正当性チェック)

より強固なセッション管理 (推測しづらいセッション識別子, 秘密鍵)

CSRF脆弱性対策 (CSRF, ワンタイムトークン)

安全なHerokuへの公開 (脆弱性に対する考え方, HTTPの廃止)

Webアプリ応用コース

Webフレームワーク (Express.js, フレームワーク導入, 簡単なAPI, セキュリティアップデート, Cookie パーサー, ミドルウェア, 外部認証, ロガー)

ExpressのAPI (app, Properties, Request, Response, Router)

GitHubを使った外部認証 (Passport, OAuth)

スティングフレームワーク (Mocha, レッド, グリーン, リファクタリング)

継続的インテグレーション (CircleCI)

クライアントフレームワーク (Webpack, Chrome 以外のブラウザでもES6)

DOM操作フレームワーク (jQuery, jQueryアニメーション, this)

AJAX (jQuery.ajax, クロスドメイン, 同一生成元ポリシー, x-requested-by, CORS)

WebSocket (WebSocket, WebSocketの状態遷移, Socket.io)

RDBとSQL (DDL, DCL, CREATE, DROP, INSERT, DELETE, UPDATE, WHERE)

データモデリング (リレーショナルモデル, 正規化)

テーブルの結合 (外部結合, 内部結合, 片側外部結合, JOIN ON)

インデックス (インデックス, 複合インデックス, Bツリー)

集計とソート (SUM, COUNT, ORDER BY, GROUP BY)

「予定調整くん」の設計 (要件定義、用語集、データモデル、URL設計モジュール設計、MVC)

認証とRouterモジュールの実装 (Mocha, supertest, passport-stub, モックテスト)

予定とユーザーの保存 (セキュリティ要件, UUID, 複合主キー)

予定とユーザーの一覧の表示 (非同期処理, Promise, then)

出欠とコメントの表示 (入れ子の連想配列, Promise.all, 子どもからデータを消す)

出欠とコメント更新 (Promiseチェイン, リファクタリング)

予定の編集と削除 (要件の衝突, 関数再利用)

デザインの改善 (this, グローバルオブジェクト)

セキュリティ対策と公開 (X-Frame-Options, Heroku環境変数)

2017-08-06

5 reasons why Japanese Engineer are fu*king da*n

  • Because they likes "Technical document" much, though they usually study with books even it's Front-end latest technology, Many of them are just translated original EN contents or da*n not sexy sample code, it's worthless in the world which dynamically changing day by day in few months. Regardless of free latest contents which can be found everywhere, they just get Secondary Information given by some evangelists with passive mindset, it causes making this Evangelist? market stable due to this kind of information gap structure.

See also : https://anond.hatelabo.jp/20170728223725

2017-05-04

http://anond.hatelabo.jp/20170504190141

「おれの名は冴羽リョウ 都会に巣食う虫けらどもを掃除する

それがおれの仕事

おれの武器コルトパイソン357マグナム

撃ち抜けないのは美女ハートだけさ

銃口をふるわせる熱い鉛は悪を仕留めるワンホールショット

一度おれに刃向かった奴も二度目は地獄で黙りこむ

それがおれのやり方

誰かがおれに言った おれには血と硝煙と

そして薔薇香りがよく似合うと

おれは都会のスイーパー 人呼んでシティハンター

どしゃぶりの Rainy Road 想い出に傷ついて

疲れきったおまえは Pretty Dead-end Girl

Black & Blue この都市希望さえ

ガラスイミテーション

街角は Midnight 吐息さえ凍りつく

寂しげなおまえに Margarita kiss

Lonely One 気どるにはつらいか

仮面を脱ぎすてて

Chance Chance Chance Get Chance

Catch your dream tonight

Chance Chance Chance Chance

Fall in love tonight

ガラス越し Moonshine ほほえみに夢をのせ

輝いたおまえの Lovely Funny Face

Heart & Luck この都市はいつまでも

ときめき忘れない

Chance Chance Chance Get Chance

Catch your dream tonight

Chance Chance Chance Chance

Fall in love tonight

Chance Chance Chance Get Chance

Catch your dream tonight

Chance Chance Chance Chance

Fall in love tonight

2017-02-19

http://anond.hatelabo.jp/20170219143625

曲とアニメAnilogia IDの対応表です。

ご確認お願いします。

曲名ID
1Snow halationmrzoq45CjNA
2僕たちはひとつの光TkKnwB7qxui
3オリオンをなぞる4jCNcX623Dk
4History MakerdsLrAA7PErN
5Butter-FlyGiL6VkZarWi
6only my railgunUcSA9PK4sBc
7プラチナohHnbYurEhm
8残酷な天使のテーゼaPwtB77FjgG
9シュガーソングとビターステップugEKGmRtTXT
10TRAGEDYRdCho4XrTsY
11コネクトJVExWqnVwcB
12君の知らない物語PCWSWrPz3oj
13マジLOVE1000%Fofd6dgVmPp
14M@STERPIECEqkeWA3yEj8v
15紅蓮の弓矢R4RS7No2ChK
16宇宙戦艦ヤマトPmnqBZGh3dd
17ハレ晴レユカイYdFsptKEyKH
18God knows...YdFsptKEyKH
19ライオンyrTPBjmcom5
20Daydream cafeeUgB5dnqBdb
21それは僕たちの奇跡mrzoq45CjNA
22めざせポケモンマスターB8aeWPKqSaS
23愛してるばんざーい!ZeckaeHZeCm
24Angelic AngelTkKnwB7qxui
25SUNNY DAY SONGTkKnwB7qxui
26CHANGE THE WORLDuPdW6GtSmwd
27ETERNAL BLAZEJKDgZVkRZmZ
28Get WildHnia8VNxGkM
29ゼロイチキセキQd6RndmtCya
30Catch You Catch MeohHnbYurEhm
31鳥の詩M9BPYvPv6y5
32はなまるぴっぴはよいこだけEwW8nrW6Sk2
33Give a reasonhDARaXGsCjA
34光のシグナiRHRkqXaUCz
35愛・おぼえていますかvvmxSU9dZ6Y
36Shangri-Lad5mYyMJkETf
37ムーンライト伝説bo9RXMPobXb
38チキンLINEY2itzWgB23q
39僕らは今のなかでZeckaeHZeCm
40青空 Jumping Heart225L5UjcFvx
41輪舞-revolutiondWbrfbA67ro
42MOMENT RINGmrzoq45CjNA
43強き者よqFs7NjnKNCv
44メリッサ2foGTrUFxqH
45harmonized finaleqoamsComkQH
46THE GALAXY EXPRESS 999[銀河鉄道999]Wj9gaPNX4YU
47名前のない怪物RjFipMigMfN
48ここで僕らは出会ってしまった2DUnUKQdbpR
49花丸◎日和!zzdBqXsqCv4
50ウィーアー!zyrWcezbZrx
51猛烈宇宙交響曲・第七楽章「無限の愛」YKdWcN3Nac9
52crossing fieldeTaPRpoM9UV
53MagiaJVExWqnVwcB
54Deep in your heartAxJQ4kibDen
55勇気100%ndWbtbFhbmn
56MOON PRIDEzCnxkAhi2GA
57お願い!シンデレラN6uYeuK72jm
58oath signQTfrjkSu5gr
59微笑みの爆弾37sJqU5Usg2
60Rising HopeZjGgLxLidbK
61誰がためMpmdtMfAovy
62一番の宝物 ~Yui final ver.~24xi6rgWDvS
63永遠 never everm2X8XWwCoTP
64檄! 帝国華撃団93TEP5UZjTk
65サヨナラの橋jBMseCthQDN
66『Z』の誓いXG9sXmaFGMC
67空色デイズW2Y4X67emdT
68Can DoZ3tAD64nBPj
69自由の翼R4RS7No2ChK
70星間飛行yrTPBjmcom5
71笑顔のゲンキR8esRCmJiBY
72DOUBLEi93w8EFLrH5
73Shake the DiCE
74シルシqVqLhjzc3wi
75ダイアモンド クレバスyrTPBjmcom5
76ポワゾンKISSUyaEqVgRfgv
77Every Heart -ミンナノキモチ-uPdW6GtSmwd
78君の銀の庭NbfLXv3ZCVK
79絶対無敵☆Fallin' LOVE☆oTPNuPDEMwp
80COLORSjRN3UibtAan
81MASAYUME CHASINGtgfjeC3yPnb
82ヤマトより愛をこめてgjUDRhNq5sZ
83時を刻む唄ZnrdgsAS8ER
84KEY OF HEARTtYvtwa5Lsmt
85海のトリトンnHPMhM4Y5vW
86For フルーツバスケットi8ueBhpJE2z
87unravelFhbGEanej2B
88君色思いKPwixsonif8
89ブルーウォーターi3qqQE867z3
90「ツキノウタ。」 -TV SIZE-Jv3MdvDM3HX
91曇天yzPcnJbY9dM
92戦士2KP8T78MHUV
93サムライハート(Some Like It Hot!!)yzPcnJbY9dM
94僕らのLIVE 君とのLIFEZeckaeHZeCm
95炎のさだめMP88iaCoTZt
96THE HERO !! ~怒れる拳に火をつけろ~yNmqEmayqQN
97宿り星TagWWiZvacu
98おジャ魔女カーニバル!!ufjdyRGtsaf
99ETERNAL WIND -ほほえみは光る風の中-Fg4NTvJzqgQ
100水の星へ愛をこめてfLNSYJufjqK
101ゆずれない願いXqXYrpMwq7w
102天使にふれたよ!RW9RPAfrv4z
103Don't say“lazy”eZuWQBru8sV
104XY&ZpXiYDgQyNFC
105WILLamagvHVqmZ5
106創聖のアクエリオンccP7ytHFQeq
107This gamezwuwxbyr8qj
108ヒカリアレbgKc7XHQEej
109KiRa-KiRa Sensation!mrzoq45CjNA
110ゆりゆららららゆるゆり大事tQTsE9XHfSi
111まるかいて地球KG5VcMmMFzP
112innocent starter9FZKBWRdKiv
113Hello,world!ugEKGmRtTXT
114勇者王誕生!x8oRAb2ngJ9
115sister's noiseptSfNBTpYHh
116限界突破×サバイバーgpEWUEGthEs
117High Free SpiritsV7iPo5MNzGb
118ドリームシフトexrgTRZpBwN
119カサブタbwnRfB5W9yR
120START:DASH!!ZeckaeHZeCm
121Share The WorldzyrWcezbZrx
122エボリューション・イヴ6HgPNFBV7CM
123TRASH CANDYJiVKqtJ5GEt
124998LFp6ibcwJi
125全力バタンキューEwW8nrW6Sk2
126REASON TRIANGLEi93w8EFLrH5
127BEYOND THE TIME(EXPANDED VERSION)Vyw3qnzLV8z
128WinnersT8NAawNyxCT
129前前前世 (movie ver.)JxGvhLF5MNy
130Wind Climbing ~風にあそばれて~aamDhQn4jLW
131ペガサス幻想GCXswXLZVA3
132マジLOVE2000%UyaEqVgRfgv
133光るならtNk6buTnrYG
134courageqVqLhjzc3wi
135KINGSDwq6bYMJMtt
136StepkPgu9r4bkmz
137明日へメロディーbAbYtRRGjjx
138カラフルNbfLXv3ZCVK
139KIZUNAynRTpaLzBFY
140Hacking to the Gaten6he6td7Sws
141ジョジョ~その血の運命~8cJSfLvqspu
142マジLOVEレジェンドスターDc8prREeTGM
143heavenly blueBesg3UEYVTW
144The Everlasting Guilty CrownoWUPQhATTSL
145心絵7swAAE6SvHd
146KinKiのやる気まんまんソングFhdbJ4UiLgs
147Brave ShineDckKwTmP67D
148No brand girlsZeckaeHZeCm
149brave heartgNsjRYt3w55
150Lost my musicYdFsptKEyKH
151硝子の花園ZeckaeHZeCm
152イマジネーション7dRj4oLozDG
153恋愛サーキュレーションPCWSWrPz3oj
154未熟DREAMER225L5UjcFvx
155ドラマチックLOVEzGVLZeCAqSZ
156これからTkKnwB7qxui
157もってけ!セーラーふくvK5W8cnbdjT
158ラピスラズリ2Pieb6odHAa
159君をのせてGwjZYjvfEzV
160My Soul,Your Beats!24xi6rgWDvS
161Reckless fireoPpkJhsnPtw
162あんなに一緒だったのにq4uTt894v8J
163ノーポイッ !2mKEqmfeiEi
164ハロー世界m2X8XWwCoTP
165コスモスに君と53ZKaF3Y4nm
166Aching HornsWmmz5VUjCRd
167現状ディストラクションmQaymMpmHT8
168wTaqMgBKMNS
169射手座☆午後九時 Don't be lateyrTPBjmcom5
170深愛W2GnEcePWDg
171冒険者たちZqPeKJyjqy9
172乙女のポリシーpR3S2mGpyEr
173risekApZHsqGiHL
174リトルグッバイbLkUnhLBnif
175シャイン6HgPNFBV7CM
176LAST STARDUSTDckKwTmP67D
177ダンバイン とぶA6xaEyPmnrf
178Valkyrie -戦乙女-TagWWiZvacu
179to the beginningW6YwWCRmQKP
180リニアブルーを聴きながらAJ359jGCvHf
181いけないボーダーラインNascPQ6TvYp
182piece of youthDD59aESALmm
183QKKyoavde8s
184炎のたからものAkzcNFM4GzZ
185四銃士RdCho4XrTsY
186BREAK OUTtgfjeC3yPnb
187HEART OF SWORD ~夜明け前EKNU2GkSPwF
188オルフェンズの涙KmvZjhND2Uj
189明日は来るからzyrWcezbZrx
190JUST COMMUNICATIONXogweyRr6KC
191アンインストールw3vmwe8USGo
192約束はいらないpaeZALezsTw
193暁の車q4uTt894v8J
194ラムのラブソングhf6vTzaextJ
195姫は乱気流☆御一行様XJifFwJhZ3s
196inner universe3oXUC8TRDKe
197Star!!N6uYeuK72jm
198INVOKE -インヴォーク-q4uTt894v8J
199星のすみか4jCNcX623Dk
200星屑のインターリュードRgad4xvhxTb
201Great DaysGHXzwHXfHFU
202secret base~君がくれたもの~(10 years after Ver.)uPNph8ESrKT
203Trancing Pulseu8wcWvBqF2i
204Flyers9fB6NRniuAE
205真赤な誓い6mP6VYLx4iV
206Wild FlowersbC8JR95UP4z
207アイム・ア・ビリーバーacVj3sLXkBG
208U&IRW9RPAfrv4z
209DreamRiserxH2pttgJDsm
210カレンダーガールnMsXvNhVgSH
211リフレクティアQxRv2YQZDJ3
212クローバー かくめーしょんHZraLzPYfWB
213戦-ikusa-6H3cxsfdnZX
214ノーザンクロスyrTPBjmcom5
215君は君だよR8esRCmJiBY
216名前を呼ぶよJiVKqtJ5GEt
217海色(みいろ)aLytobHKcYz
218魂のルフランLLWsbpcoQHr
219輝夜の城で踊りたいZeckaeHZeCm
220obliviousuXLxCzZvGF2
221Just going now!!oTPNuPDEMwp
222THE REAL FOLK BLUES6nTiQSbRYNP
223you -Visionen im Spiegel5Nx3ibni4ep
224アンバランスなKissをして37sJqU5Usg2
225真赤なスカーフPmnqBZGh3dd
226この涙を君に捧ぐCp8AHHtkQAa
227Still Love Her(失われた風景)H3K9SWQfEyT
228AXIA ~ダイスキでダイキライ~NascPQ6TvYp
229Sweet SensationaBscB5PxtqX
230Endless Storyv6hj2QaqQrJ
231マジンガーZPnN2LctwgwY
232シリウスwH69WEj6YtF
233SPLASH FREE7AfXkKnWj4W
234小さなてのひらZnrdgsAS8ER
235IGNITEqVqLhjzc3wi
236PLEASURE FLAGDCeEjaAoaiR
237明日へのbrilliant roadK4sBVraFqXb
238M@GIC☆u8wcWvBqF2i
239優しさの理由Rkc8cHi9sZ2
240空へ…yHB4fDoHeZC
241世界が終るまでは…U5QtQjLpSW8
242ひみつをちょーだいzxr9Cfrd8k7
243THE DAYs2QV7ZqTkPw
244Love & PeaceuV2TwgnYDKY
245聖少女領域uZWpRDr47ww
246Over SoulRyuwSS9Z7fQ
247BLOODY STREAM8cJSfLvqspu
248Love Festival2DUnUKQdbpR
249CHA-LA HEAD-CHA-LAt8oFMGhgj4L
250SHINING LINE*nMsXvNhVgSH
251Reason Livingchqq2ppn7j3
252LOVE CHASEfidBQoPVz7Y
253リライト2foGTrUFxqH
254HELLO,VIFAMEqLD8qVBrZb
255Utauyo!!MIRACLERW9RPAfrv4z
256HOLLY TRIPLKHQsZCZHWD
257キルミーのベイベー!WPXLJvjG99E
258Get alongraePGySHBa8
259奇跡の海iNvw4yH43bL
260black bulletRfpKpdH3v7D
261Rage on7AfXkKnWj4W
262タンポポの詩H8r7YDQZUB5
263月の繭dNSNdHmEYPf
264バクチ・ダンサーRQgFLr29anN
265Clear Blue DepartureBdZKpFmoeTq
266Time after time ~花舞う街で~BNEQRaRmphH
267メクルメク勇気!yAyWqUWppc8
268GO!!!htsmZTyrjai
269突撃ラブハートY2itzWgB23q
270夢光年TsjNLeCVGX3
271銀河鉄道999mNUkBqkKvfN
272たった1つの想いtBXSVzmzy9r
273おはよう。F9QQGDUEJgE
274冒険でしょでしょ?YdFsptKEyKH
275ネメシスqoamsComkQH
276GOLDEN☆STAR6HgPNFBV7CM
277せーのっ!u8HPhmNBLuo
278蒼穹czoyrxGsPsr
279吹雪aLytobHKcYz
280Cagayake!GIRLSeZuWQBru8sV
281運命のルーレット廻してQKKyoavde8s
282RAGE OF DUSTTfbf9iLFE4h
283W:Wonder tale9eCNEWE87HW
284ORIGINAL RESONANCE6HgPNFBV7CM
285Get Over (Special Mix)ouvxV8zfcqU
286プライド革命JaCrF5ZAbfc
287DEAD OR ALIVE734YiUFLZ5j
288一斉の声hihvaiFHm2t
289スパークル (movie ver.)JxGvhLF5MNy
290銀河旋風ブライガーnWM6gxDZ2q3
291ひかりふるBaBmwMwvQiV
292READY STEADY GO2foGTrUFxqH
293サクラミツツキyzPcnJbY9dM
294デリケートに好きしてLF8pPnpaC8d
295君が通り過ぎたあとに -DON'T PASS ME BY-nmiaodPAoXH
296ルパン三世テーマhbuBGaRYgiE
297キッス ~帰り道のラブソングrN8jaY2Zfp8
298アンサーHMer9nShGvw
299オルフFofd6dgVmPp
300Little Wish ~lyrical step~9FZKBWRdKiv

2017-02-02

[] catch a Tartar

思いのほか手ごわい相手と取り組む;予想外に厄介なことに引っかかる.

http://dictionary.goo.ne.jp/ej/742875/meaning/m0u/

2016-12-30

規則動詞の分類別一覧

英語の不規則動詞はおおまかに,過去分詞がtかdで終わるもの(以下dtタイプ)とnで終わるもの(以下nタイプ)に分けられる。ほとんどのdtタイプ動詞過去形過去分詞形が同じ形で,A-B-B(一部はA-A-A)のように変化する。また,原形の末尾がdかtの不規則動詞ほとんどがdtタイプに属する。(例外eat,get,bid等)一方,ほとんどのnタイプの不規則動詞は原形,過去形過去分詞形がすべて異なり,A-B-Cのように変化する。

原形から過去過去分詞形になるときに起こる変化は基本的母音が変化するか末尾にdtnが加わるかの2種類,あるいはその両方で,原形にあった子音がなくなることは原則としてない。(例外:-ught型,went,had,made

表の説明

分類は以下の通り

  • dtタイプ
  • nタイプ
    • 【A-B-An】型
    • 【A-Aed-An】型
    • 【A-B-Bn】型
    • 【-dden,-tten】型
    • 【A-B-Cn】型
  • その他
    • 【i-a-u】型
    • 【A-B-B(その他)】型
    • 【その他】

become,forgetなど末尾にほかの不規則動詞を含むものは省いた。

表中の*は規則変化もし得ることを,#は他の不規則変化もし得ることを,!は意味によって変化が異なる単語であることを示す。

【A-A-A】型

すべてdかtで終わる。特に末尾tで短母音のものが多い。get,sitが含まれないことに注意。形が1種類で覚えやすいが,英文中の「have put」「is put」等を見てもビビらない心構えが必要

bet * bust * cast cost cut
hit knit! let put quit *
set shit *# shut sweat * thrust
wet* burst * hurt beat # bid #
clad glid * rid* shed spread
wed*
Ad-Bd-Bd】型

原形がdで終わる動詞母音を変化させて過去形過去分詞形になる型。最後のplead,read発音のみ変化する。

breedbred
feedfed
leadled
plead *#pled
speed !sped
tread #trod
bindbound
find found
grind ground
wind wound
chide *#chid
slide #slid
hold held
stand stood
abide *abode
plead *#plead
readread
Ad-At-At】型

原形の末尾のdがtに置き換わり,それ以外は綴り発音も変わらない。endで終わる動詞が多いが,end自体規則動詞。原形のほうが過去形っぽく見えたりするので注意が必要。逆パターン(At-Ad-Ad)は存在しない。

bend bent
lend lent
rend rent
send sent
spend spent
build built
geld *gelt
gird *girt
At-Bt-Bt】型

Ad-Bd-Bd】の末尾tバージョンget,sitはこちらに含まれる。

fightfought
light *lit
meet met
shoot shot
get #got
shit *#shat
sitsat
【A-Bd-Bd】型

末尾にdが加わるという点で規則動詞に近いが,付き方が特殊母音も変化する。

lay laid
pay paid
say said
sell sold
tell told
hear heard
flee fled
shoe *shod
baa *baa'd
makemade
have had
【A-Bt-Bt】型

末尾にtが加わる。原形の/iː/が/e/に変化するものが多い。

feelfelt
keep kept
sleep slept
weep wept
creep crept
kneel *knelt
sweep swept
leave left
bereave !bereft
cleave *#cleft
deal dealt
mean meant
dream *dreamt
lean *leant
leap *leapt
lose lost
spoil *spoilt
burn *burnt
learn *learnt
dwell dwelt
smell *smelt
spell *spelt
spill *spilt
drip *dript
grip *gript
wrap *wrapt
pen *pent
【-(o/a)ught】型

末尾が-oughtか-aughtに変化する。どちらも発音は/ɔːt/。wentを除けばもっとも原型をとどめない変化が起こるので過去形から原形を思い出せるようにしておく必要がある。

beseech *besought
bringbrought
buy bought
overwork *overwrought
seek sought
think thought
catchcaught
teach taught
【A-B-An】型

過去分詞形が原形+nとなるもの過去形では母音が変化している。fall,eatにはenが,do,goにはneが付くことに注意。

blowblewblown
grow grewgrown
know knewknown
throw threwthrown
drawdrewdrawn
shakeshookshaken
taketooktaken
drivedrovedriven
riseroserisen
strive strovestriven
thrive *throvethriven
see sawseen
give gavegiven
eatateeaten
fall fellfallen
do diddone
gowentgone
【A-Aed-An】型

【A-B-An】の亜種で,showに代表される過去形規則変化(-ed)になっているもの

grave *gravedgraven
hew *hewedhewn
mow *mowedmown
prove *provedproven
saw *sawedsawn
sew *sewedsewn
shave *shavedshaven
show *showedshown
sow *sowedsown
strew *strewedstrewn
【A-B-Bn】型

過去分詞形が過去形+nとなるもの。eが脱落するtear-tore-tornのパターンに注意。wakeはtake,makeと異なり,この型に属する。

break brokebroken
cleave *#clovecloven
freeze frozefrozen
speak spokespoken
steal stolestolen
weave !wovewoven
shrink #shrunkshrunken
wake wokewoken
bear !boreborn
swearsworesworn
tear toretorn
wearworeworn
bear !boreborne
【-dden,-tten】型

原型にd,tを含み,過去分詞形でそれが重なるものget以外は【A-B-An】に近いがgetは【A-B-Bn】に近い。

smite #smotesmitten
ride roderidden
writewrotewritten
bite bitbitten
chide *#chidchidden
hidehidhidden
slideslidslidden
bid #badebidden
forbid #forbadeforbidden
forbid #forbadforbidden
get #gotgotten
【A-B-Cn】型

過去分詞形にnが付くが,【A-B-An】でも【A-B-Bn】でもないもの

flyflewflown
lielaylain
slay slewslain
shear *shearedshorn
swell *swelledswollen
tread #treadedtrodden
【i-a-u】型

原型にiを含み,それがi-a-uと変化していくもの。わかりやすい変化だが数は少ない。

beginbeganbegun
drink drankdrunk
ringrangrung
shrink #shrankshrunk
singsangsung
sinksanksunk
spring #sprangsprung
stink #stankstunk
swim swamswum
【A-B-B(その他)】

dt型でないが,A-B-CではなくA-B-Bと変化するもの。末尾が-ingのものが多いが,bringring,singが含まれないことに注意。

clingclung
flingflung
slingslung
slink slunk
spling #splung
stingstung
stink stunk
stringstrung
swingswung
wringwrung
hang !hung
dig dug
stickstuck
strike struck
heave !hove
reeve *rove
stave *stove
shine !shone
winwon
【その他】
[A-B-C]
dive *dovedived
smite #smotesmit
[A-A-B]
beat #beatbeaten
[A-B-A]
come camecome
runranrun

2016-12-03

老害プログラマだが。最近若いもんが書いたコードを読んだ。

例外ってあるじゃろ。tryしてる間にthrowされたのをcatchするアレじゃ。あれは、たしか有用な仕組みじゃ。何かの関数に失敗したとき本来の値のかわりに特定の値を返すのもダサいし、参照型の引数成功たか否かを返すのもダサい場面、というのは確実にある。そもそもプログラマ怠惰で忘れっぽい生き物なので、例外という仕組みがなければ、関数で失敗したことにすら気づかないかもしれない。

だがな。例外魔物じゃぞ。昔は、gotoというものがあってだな。好きなところに処理を飛ばすことができる。あまりに、いろんなところに飛ばせるので、邪悪だと言い出した奴がおって、今ではあまり使われなくなった。なぜgoto邪悪と呼ばれたかgotoというのは、順接、分岐、反復という、プログラムを組む上で最低限必要制御構造から逸脱した、どっかからどっかに飛んでいく、という行為が容易にでき、それを多用したコードはまともな人間には読めなくなるからであった。そして、例外は、まさにその「どっかからどっかに飛んでいく」を容易にするための仕組みなのじゃ。

例外は、順接、分岐、反復による基本的制御構造があった上で、あくま対処を要するアブノーマルな状況に使われるべきものであり、例外というのは、制御機構として使ってはいけない。値を返す目的例外を使ってはいけない。一体どこから来て、どこへ行くのか分からない、そんな、流れ星のような例外の使い方をしてはいけないのじゃ。例外を使うなと言うつもりはまったくない。じゃが、例外制御構造を壊しうるものだと認識し、例外悪用していないか、それによってコードが追えなくなることはないか、と、考えてから、使ってほしいのじゃ。

イベント悪用も見た。イベントは非常に有用な仕組みだし、GUIなんかだと、もはや必須とも言える。なので、イベントを使うことは有用なことだ。けれど、イベントは、いつどこで発生するか予想が付きづらいものが多く、また、スレッドなどを使って非同期でイベントが処理される場合(今時は、多くがそうだろう)は、マルチスレッドと同じく、リソース排他制御を行う必要があるかもしれない。複数の処理が同時に動くというのは、恐ろしいことなのじゃ。いつの間にか、変わってないと思ってた変数が途中で変わるやもしれない。「まー、滅多に起こらないし、ええじゃろ」って判断の上、何も対策しない、という手もあるが、ええじゃろで済むのか済まないのか検討するくらいは必要じゃわな。C# なんかだと、言語レベルイベント実装されておる。じゃからイベント必要ないじゃろと言いたくなるような場面で、イベントが使われていたコードを見た。

便利な仕組みがどんどん出てきて、新しいものがどんどん古くなる今のコンピュータ業界。新しいものを追いかけるのもいいが、基本は基本として、しっかり押さえて欲しいのじゃ。今更、アセンブラゲームを作れるようになる必要なぞ、微塵もないが、自分コードがどのように動くのか、興味をもってほしいのじゃ。わしのような新しいもの不勉強老害は、最近若いもの基本的なことを不勉強からこそ、居場所があるのじゃ。じゃが、わしももう長くない。若いもんは、新しい仕組みの表面だけでなく深い部分に触れて、学んで、わしら老害を追い出せるくらいになってほしい。わしからは以上じゃ。

2016-08-30

例外の正しい使い方ってなんだよ。。。

↓こういう実装って駄目なの?

void sample(String str){

try{

str = str.replace("test","");

}catch(Nullpointerexception e){

str ="abc";

}

}

2016-07-18

IT業界認定試験もっと重要視すべき

IPAのやってるやつだけじゃなくて、ベンダーのやってる言語とかDBとかああいうのも。

PHPプロジェクトPHP認定試験に受かってる奴しか使わないとか、MySQL資格もってないとテーブル設計やらせないしSQLも書かせないみたいな。

認定試験なんて実力とは関係ないって言う人いるけど、SIerではびこってる「経験年数=技術力」って基準より数段マシになると思うわ。

Java入門書も読んだこと無いレベルの人が、コードを書くどころかレビュワーをやっていて、しかも「経験年数=技術力」って世界観から自分は実力あるとナチュラルに信じこんでるし。

VBから来たベテランが「エラーハンドラを全サブルーチンで書くべし」みたいなルールJavaに持ち込んで「全メソッドcatch(Exception e)するべきだろ」とか自信たっぷりに言ってる世界

ダメ技術者が、年をとってるってだけで評価されて上にたってダメ技術者を育成するって負のループに入り込んでるから一定客観的基準評価する仕組みをもちこんで負のループを断ち切るべき。

2016-04-25

今日を振り返って!!

朝はバイトをした。

午後は打ち合わせ。

書類仕事も仕上げた

鞄の中身の整理もした

one catchの裏磨きをした。

ホムセンに立ち寄り、定尺を調べた。車載可能性を吟味した。

クランプなどの部品を選定した。

これは翌日注文するべし

2016-03-04

window.OBR = window.OBR||{};(function(OBR){window.OB_releaseVer="01000501";window.OBR=window.OBR||{};OBR.k=OBR.k||;OBR.La=OBR.La||{};window.OBR$=function(d){return document.getElementById(d)};OBR.d=OBR.d||function(){var d={},a={v:function(){return d},h:function(a){d.X=a;d.cb=;d.startTime=(new Date).getTime()},startTime:function(){return d.startTime},log:function(a){var e=((new Date).getTime()-d.startTime)/1E3;1E3>d.cb.length&&d.cb.push(e+" >"+a)},printLog:function(){if(d.X.c.dj)window.console.log(d.cb.join("\n"));else{var a=d.X.b.Ia();a&&(a.innerHTML=d.cb.join("
"),a.style.display="block")}return d.cb.join("\n")}};a.h(OBR);return a}();OBR.printLog=OBR.d.printLog;OBR.H=function(){this.J=[]};OBR.H.prototype.add=function(d,a){var c;"string"===typeof d&amp;&amp;"function"===typeof a&amp;&amp;(c={},c.name=d,c.ai=a,this.J.push(c))};OBR.H.prototype.Qf=function(d){var a,c;OBR.d.log("remove event :"+d);a=0;for(c=this.J.length;a<c;a+=1)if(this.J[a]&amp;&amp;this.J[a].name&amp;&amp;this.J[a].name===d)try{this.J.splice(a,1)}catch(e){OBR.d.log("rm evnt err: "+e)}};</p&gt;

OBR.H.prototype.o=function(d,a,c){var e,b,f,g;a=a||[];c=!!c;OBR.d.log("event fire:"+d);e=0;for(b=this.J.length;e<b;e+=1)if(f=this.J&amp;&amp;this.J[e]?this.J[e].name:"",g=this.J&amp;&amp;this.J[e]?this.J[e].ai:null,f===d&amp;&g)try{g.apply(this,a)}catch(h){OBR.d.log("fire event *"+d+"* error: "+h)}!0===c&amp;&amp;this.Qf(d)};OBR.H.prototype.sa=function(){this.J=[]};OBR.b=OBR.b||function(){var d={},a={},c=document,e=OBR,b=null;a.v=function(){d.X=e;return d};a.h=function(a){e=a};a.Ba=function(){return function(){}};a.Gi=function(){var a=window.jQuery;return void 0!==a?!(/1\.(0|1|2|3|4)\.(0|1)/.test(a.fn.jquery)||/^1\.1/.test(a.fn.jquery)||/^1\.2/.test(a.fn.jquery)||/^1\.3/.test(a.fn.jquery)):!1};a.F=function(a){return null===a||isNaN(a)?null:e.n("outbrain_widget_"+a)};a.Ia=function(){return e.n("ob_holder")};a.ne=function(f){var g=a.Ia();null===g&amp;&amp;(g=e.b.createElement("div",</p&gt;

"ob_holder"),g.style.display="none",f?e.b.insertBefore(g,f):document.body.appendChild(g));return g};a.Vc=function(){if(!e.n(e.c.Pb)){var f=e.b.createElement("iframe",e.c.Pb),g=f.style;g.display="none";g.width="1px";g.height="1px";f.src="about:blank";(g=a.Ia())||(g=a.Va());e.b.Q(f,g)}};a.Va=function(){if(c.body)return c.body;var a;a=e.b.K("","","body",!0);return 0>=a.length?c.lastChild:a[0]};a.createElement=function(a,g,b,e){var d;a=c.createElement(a);"string"===typeof g&amp;&amp;a.setAttribute("id",g);"string"===

typeof b&amp;&amp;(a.style.cssText=b);for(d in e)e.hasOwnProperty(d)&amp;&amp;a.setAttribute(d,e[d]);return a};a.G=function(a){if(e.c.$d===e.c.Od)try{c.createStyleSheet().cssText=a}catch(g){OBR.d.log(g)}else{var b=c.createElement("style"),d=c.body?"string"===typeof c.body.style.WebkitAppearance:!1;b.type="text/css";c.getElementsByTagName("head")[0].appendChild(b);b[d?"innerText":"innerHTML"]=a}};a.N=function(a,g,b,d){var m=c.createElement("script");m.type=e.c.wj;m.src=a;m.charset="UTF-8";m.async=!!g;m.defer=!1;b&amp;&amp;

e.b.s(m,"load",function(a){var f=a.target;f&amp;&amp;setTimeout(function(){f.parentNode.removeChild(f)},3E3)});d&amp;&amp;e.b.s(m,"load",d);return m};a.Cl=function(a,g){var b=e.b.createElement("link",a);b.setAttribute("rel","stylesheet");b.setAttribute("type",e.c.Eh);g&amp;&amp;b.setAttribute("href",g);return b};a.ih=function(a){var g=e.n("ob_iframe");g&amp;&amp;(g.src=a)};a.Hf=function(){var a;a=isNaN(a)?1E5:a;return Math.floor(Math.random()*a)};a.nk=function(a,g,b){return a.replace(g,b)};a.Ll=function(){var f;if(f=OBR.n("objsonpp"))if(a.kj())a.Ka(f.parentNode)&amp;&amp;

f.parentNode.removeChild(f);else return OBR.n("objsonpp");f=c.createElement("iframe");f.id="objsonpp";f.tk&amp;&amp;(f.tk="seamless");(f.frameElement||f).style.cssText="width: 0; height: 0; border: 0";f.src="";c.body.appendChild(f);return f};a.R=function(a){var g,b;b=c.getElementsByTagName("head");try{b&amp;&amp;0<b.length?b[0].insertBefore(a,b[0].firstChild):(g=c.getElementsByTagName("script"),g[0].insertBefore(a,g[0].firstChild))}catch(d){e.d.log("Err insertToHead:"+d)}};a.Kl=function(a){a=a||OBR;return"function"!==</p&gt;

typeof a.H?(OBR.d.log("namespace.EventManager not function"),null):new a.H};a.O=function(a){return encodeURIComponent(a)};a.Ka=function(a){return null!==a};a.pj=function(f){var b,c=!1;if(a.Zc(f))return!1;b=f.Oe().recMode||"";f=f.Oe().dynamicWidgetLayout||"";b=e.c.rk[b]||"";"2"===b&amp;&amp;"1"===(e.c.sk[f]||"")&amp;&amp;(c=!0);c||"1"!==b&amp;&amp;"3"!==b||(c=!0);return c};a.Zc=function(a){return void 0===a||null===a};a.tj=function(b){return a.Zc(b)||""===b};a.getElementsByClassName=function(b,g){g||(g=document);return g.getElementsByClassName?

g.getElementsByClassName(b):a.K("class",b,"*",!0,!0,g)};a.K=function(b,g,e,d,m,l){var p,q,n;p=[];e=e||"*";d=!!d;m=!!a.tj(m);e=l?l.getElementsByTagName(e):c.getElementsByTagName(e);l=0;for(q=e.length;l<q;l+=1)n="class"===b?e[l].className:e[l].getAttribute(b),null!==n&amp;&amp;(!1===m&amp;&amp;(n=n.toLowerCase(),g=g.toLowerCase()),(n=""===b?!0:d?-1<n.indexOf(g):n===g)&amp;&amp;p.push(e[l]));return p};a.Wb=function(a,b,c){a.detachEvent?a.detachEvent("on"+b,c):a.removeEventListener&amp;&amp;a.removeEventListener(b,c,!1)};a.s=function(a,</p&gt;

b,c){a.attachEvent?a.attachEvent("on"+b,function(){c.call(a)}):a.addEventListener&amp;&amp;a.addEventListener(b,c,!1)};a.Q=function(a,b){try{b.appendChild(a)}catch(c){e.d.log("Fail insert into Dom:"+c)}};a.lb=function(b){b=e.n(b);!a.Zc(b)&amp;&amp;a.Ka(b.parentNode)&amp;&amp;b.parentNode.removeChild(b)};a.insertBefore=function(a,b){return b.parentNode.insertBefore(a,b)};a.isArray=function(a){return a instanceof Array?!0:"[object Array]"===Object.prototype.toString.call(a)};a.sb=function(a,b){var c=/htt(p|ps)?:\/\/127\.0\.0\.1(:\d\d\d\d)?/i;

return/^htt(p|ps)?:\/\/([\w\-]*|[\w\-]*\.[\w\-]*)\.outbrain\.com(:\d\d\d\d)?/i.test(a)||c.test(a)?a:b};a.al=function(a){a=a.replace(/^(\s*)/g,"");var b=c.createElement("div");b.innerHTML=a;return b.childNodes};a.Ua=function(a,b){return a?a.getAttribute(b):null};a.xa=function(a,b,c){a&amp;&amp;a.setAttribute(b,c)};a.I=function(a,b){var c=RegExp("[ '\"|]"+b+"[ '\"|]");a&amp;&amp;!c.test("|"+a.className+"|")&amp;&amp;(a.className+=" "+b)};a.ma=function(a,b){a&amp;&amp;typeof b===e.c.$k&amp;&amp;(a.classList?a.classList.remove(b):a.className=

a.className.replace(RegExp("(^|\\b)"+b+"(\\b|$)","gi")," "))};a.$=function(a,b){a=a.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var c,e;try{return c=RegExp("[\\?&amp;]"+a+"=([^&amp;#]*)","i"),e=c.exec(decodeURIComponent(window.location.href.replace(/\+/g," "))),null===e?b:e[1]}catch(d){return b}};a.sh=function(a){"string"===typeof a&amp;&amp;0<a.indexOf("#")&amp;&amp;(a=a.substr(0,a.lastIndexOf("#")));return a};a.ie=function(a){var b=e.c.ga+"/strip_default.png";a.src!==b&amp;&amp;(a.alt="",a.title="",a.src=b)};a.Oh=function(){var a=</p&gt;

null,b,e,d=null;if("string"===typeof window.OB_MP_feed)a=window.OB_MP_feed;else if((b=c.getElementsByTagName("head"))&amp;&amp;0<b.length)for(e=b[0].getElementsByTagName("link"),b=0;b<e.length;b+=1)if(d=e[b],null!==d.type&amp;&amp;("application/rss+xml"===d.type||"application/atom+xml"===d.type)&amp;&amp;null!==d.href&amp;&amp;""!==d.href){a=d.href;break}return a};a.D=function(a,b){var c=null;a.currentStyle?c=a.currentStyle[b]:window.getComputedStyle&amp;&amp;(c=document.defaultView.getComputedStyle(a,null).getPropertyValue(b));return c};</p&gt;

a.xk=function(){var b=a.Ia(),g,c;a.Ka(b)&amp;&amp;(g=e.b.createElement("span","ob_a"),a.insertBefore(g,b),g.innerHTML=".",c=a.D(g,"color"),a.lb("ob_a"),g=e.b.createElement("a","ob_a"),g.setAttribute("href","void(0)"),g.innerHTML=".",a.insertBefore(g,b),b=a.D(g,"color"),a.lb("ob_a"),c="rgb(0, 0, 0)"===c||"#000000"===c?"#555":c,a.G(".ob-tcolor{color:"+c+"} .ob-lcolor{color:"+b+"} .ob-bgtcolor{background-color:"+c+"} .item-link-container:hover .ob-tcolor{border-color:"+c+"} "+(document.addEventListener?"":".odb_li:hover .ob-zapping-icon,.odb_div:hover .ob-zapping-icon,.item-container:hover .ob-zapping-icon,.ob-dynamic-rec-container:hover .ob-zapping-icon,.odb_li:hover .ob-textual-zapping-icon,.odb_div:hover .ob-textual-zapping-icon,.item-container:hover .ob-textual-zapping-icon,.ob-dynamic-rec-container:hover .ob-textual-zapping-icon{display:none !important;}")))};

a.Ke=function(b){var g=a.Ie("property","og:url","meta","content");null===g&amp;&amp;(g=a.Ie("rel","canonical","link","href"));null!==g||b||(g=window.location.href);null===g&amp;&amp;(g="");return g};a.Ie=function(b,g,c,e){var d=null;b=a.K(b,g,c,!1);null!==b&amp;&amp;0<b.length&amp;&amp;(d=b[0].getAttribute(e));return d};a.jh=function(b){var g,c,d;g=b.g("tracking",!1);c=b.g("comScoreEnabled",!0);d=e.c.je;!1===g&amp;&amp;(!0===c&amp;&amp;!1===d&amp;&amp;!b.Pe())&amp;&amp;(a.Vc(),g=b.q("pid",""),b=e.n(e.c.Pb))&amp;&amp;(b.src=e.c.ga+"/"+e.c.Ub+"3rd/comScore/comScore.htm#pid="+</p&gt;

g,e.c.je=!0)};a.Ei=function(){var b=a.Lb(8);"string"===typeof window.name&amp;&amp;(""===window.name||-1<window.name.indexOf("frame"))?(window.name=b,b=window.name):"string"===typeof window.name&amp;&amp;""!==window.name&amp;&amp;(b=window.name);return b=e.b.O(b.substring(0,9))};a.Lb=function(a){var b,c;b=[];a="number"===typeof a?a:8;for(c=0;c<a;c+=1)b.push("0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz".charAt(Math.floor(61*Math.random())));return b.join("")};a.me=function(a){for(var b="",c=0;c<a.length;c++)b=</p&gt;

b.concat(a[c]?"1":"0");return parseInt(b,2)};a.Xc=function(b){var g=b.getElementsByTagName("a")[0];if(null===b.offsetParent||0===b.offsetHeight||0===b.offsetWidth||0===b.clientHeight||0===b.clientWidth||"none"===a.D(b,"display")||"hidden"===a.D(b,"visibility"))return!1;var c=parseInt(a.D(b,"padding-top"),10)+parseInt(a.D(b,"padding-bottom"),10);return 0===b.clientHeight-c||g&amp;&amp;"none"===a.D(g,"display")?!1:!0};a.Oc=function(a){for(var b in e.La)if(e.La.hasOwnProperty(b)&amp;&amp;e.La[b].l===a)return e.La[b];

return null};a.Rl=function(a){for(var b in a)if(a.hasOwnProperty(b))return!1;return!0};a.Ga=function(a,b){return"function"!==typeof a?null:void 0===b?a():a(b)};a.kj=function(){return"Microsoft Internet Explorer"===navigator.appName};a.Fh=function(a,b){return a*b};a.Ge=function(a){if(!a||""===a)return[];a=a.replace("","").replace("http://","").replace("https://","").replace("www.","").replace("www2.","").split("/");a.pop();return 0<a.length?a:[]};a.ki=function(b,g){var c=a.Ge(b),e=[],d="";if(g>=c.length)d=

c.join(".");else{e[0]=c[0];for(d=1;d<=g;d+=1)e[d]=c[d];d=e.join(".")}return d};a.ti=function(){return"http"+("https:"===c.location.protocol?"s":"")};a.si=function(){var b,g;b=c.getElementById("widgetVersionSync");null===b&amp;&amp;(b=a.createElement("iframe","widgetVersionSync"),g=a.createElement("div",null,"display:none; height:0px; width:0px; border:none;"),g.appendChild(b),a.Va().appendChild(g));return b};a.ql=function(b){var g;g=window.OB_releaseVer;isNaN(g)||(isNaN(b)||g>=b)||(b=a.ti()+"://widgets.outbrain.com/external/sync/outbrainjs.html?needToBeVer="+

b.toString(),g=a.si(),g.src=b)};a.Sg=function(b){b=b.g("widgetVersionSync",0);isNaN(b)||""===b||(b=parseInt(b,10)||0,a.ql(b))};d.Rc=function(){if(b)return b;var a;try{var g=window.localStorage;g.setItem("OBtst","");g.removeItem("OBtst");a=g}catch(c){a={$b:{},setItem:function(a,b){this.$b[a]=b},removeItem:function(a){this.$b[a]=void 0},getItem:function(a){return"undefined"!==typeof this.$b[a]?this.$b[a]:null}}}return b=a};a.hg=function(a,b){d.Rc().setItem(a,b)};a.Qc=function(a){return(a=d.Rc().getItem(a))?

a:null};a.Gh=function(){d.Rc().removeItem("OB-USER-TOKEN")};a.h(OBR);return a}();OBR.ya=function(d,a,c,e,b,f,g,h,k){var m,l;m=this;l=0;k="function"===typeof k?k:OBR.b.Fh;m.start=function(){var p;l+=1;OBR.b.Ga(d,l)?OBR.b.Ga(a,l):(p=OBR.b.Ga(h,l))?OBR.b.Ga(e,l):(p=l===f&amp;&amp;1E3!==f)?OBR.b.Ga(e,l):(OBR.b.Ga(c,l),p=g?k(l,b):b,setTimeout(function(){m.start()},p))};m.start()};OBR.re=OBR.re||{fj:function(){return"complete"===document.readyState}};

OBR.Hc=function(){var d={},a=[];d.add=function(c){a.push(c)};d.remove=function(c){a.splice(c,1)};d.top=function(){return 0<a.length?a.shift():null};d.jj=function(){return 0>=a.length};d.Jl=function(){return a};d.qh=function(){a=[]};return d};

OBR.Ra=function(){function d(e,b){a.pb="resolve"===e?function(a){a&amp;&amp;a(b)}:function(a,g){g&amp;&g(b)};a.Pa=a.kk=function(){throw Error("Promise already completed.");};for(var f,g=0;f=c[g++];)f[e]&amp;&amp;f[e](b);delete c}var a={},c=[];a.pb=function(a,b){c.push({resolve:a,reject:b})};a.Pa=function(a){d("resolve",a)};a.kk=function(a){d("reject",a)};return a};

OBR.Ag=function(d){var a={},c=null,e,b;a.onClickOrAutoplay=void 0;a.onDisplayReady=void 0;a.onError=void 0;a.fetch=function(a){null===c?(c=a,b&amp;&amp;b(c,this),b=null):(c=a,OBR.Ja.of([this]))};a.shown=function(a){e=a;OBR.Ja&amp;&amp;OBR.Ja.pl(d.widgetId,d.playerId,e)};a.stopTimer=function(){if(this.tg){window.clearInterval(this.tg);var a=document.querySelector('[data-ob-player-id="'+d.playerId+'"] .timerNumber');a&amp;&amp;(a.textContent=a.parentElement.getAttribute("data-time"))}};a.placed=function(){OBR.Ja.ol(d.playerId)};

a.uj=function(a){b=a;c&amp;&amp;b(c,this)};a.Ue=function(){return d};a.Hl=function(){return e};a.Nl=function(){return d.when};return a};OBR.Fg=function(){var d={},a="00.000",c=null,e=null,b=0;d.start=function(){null===c&amp;&amp;(c=new Date);null!==e&amp;&amp;(b+=new Date-e)};d.stop=function(){var f=new Date(new Date-c-b),g=f.getUTCSeconds(),f=f.getUTCMilliseconds();e=new Date;return a=(9<g?g:"0"+g)+"."+(99<f?f:9<f?"0"+f:"00"+f)};return d};</p&gt;

OBR.rd=OBR.rd||function(){function d(){var a=window;a.googletag=a.googletag||{};a.googletag.cmd=a.googletag.cmd||[]}function a(a,g,c,e){var d=window;d.$revee&amp;&amp;d.googletag.cmd.push(function(){d.$revee.track({obpid:a,obsid:g,obdid:c,obpu:e});b.d.log("revee fire:"+e);b.d.log("revee fire id:"+c)})}var c={},e=!0,b;c.h=function(a){b=a;c.cc={}};c.Yb=function(f){if(f&amp;&amp;!1!==f.g("activateRevee",!1)){d();var g=f.q("pid",0),h=f.q("sid",0),k=f.q("did",0),m=f.ka();e||c.cc[k]?e&amp;&amp;(e=!1,f=b.b.N(b.c.U+"rva.outbrain.com/analytics-v1.js",

!0,!0,function(){m=document.location.href;a(g,h,k,m)}),b.b.R(f)):a(g,h,k,m);c.cc[k]||(c.cc[k]=!0)}};c.B=function(){e=!0;c.cc={}};c.h(OBR);return c}();OBR.c=OBR.c||function(){var d={},a={},c=OBR,e;a.Cg="opera";a.Od="msie";a.zg="firefox";a.xg="chrome";a.Eg="safari";a.Bg="mozilla";a.Al="boolean";a.$k="string";a.Vl="object";a.gl="undefined";a.Ul="number";a.Pb="ob_iframe";a.$e=!0;a.Ff=0;a.ec="outbrain_widget_";a.wj="text/javascript";a.Eh="このエントリーをはてなブックマークに追加ツイートシェア

2015-12-07

報われない恋に東方神起を捧ぐ。

好きな人に振られた。8年間遠距離で付き合って、最後は明確な理由のない「さよなら」のメール一通だった。電話拒否され会ってももらえず大海原に放り出されたような気分になったところで、SNS上で私の知らない女性婚約中という交際ステータスという文字を見つけた。ていうかその時初めてSNSやってることを知った。衝撃だった。

振り返ればいつも趣味に付き合ってくれる人だった。私が第二幕東方神起始動時にハマった頃には勿論付き合っていて、日産スタジアムライブには2人で行った。2人とも大いに楽しんで帰りの凄い混雑の中で、彼が「豆粒サイズのたった2人の人間を見る為だけに7万5千人が集まるって事実が凄い」と感心したように言ってくれた一言が今でも忘れられないほど嬉しかった。ライブが始まる前から頭にタオルを巻いてはしゃいでくれる、優しい人だった。

振られた私からしてみれば突然放り出され言い分も聞いてもらえないままなので仕方ないからここに書くけれど、あんたは私が会えない夜にどんだけ『Telephone』と『逢いたくて逢いたくてたまらない』を聴いて泣いたか知らないだろ。私があんたの心情を慮れなかったのと同じように、私にだって悟られたくない不安心配や悩みはいつもあった。恋しくて恋しくて眠れない夜だってちゃんとあったのだ、でも重荷になりたくなくて言えなかった。「何でじゃーーーーーー!!!」って『Why?』聴きながら激昂した夜もあれば会えた日のドライブでは私の想いを忘れないでほしくて延々『Duet』を流し続けたことも、あんたは覚えてなくても私は覚えている。『Thank you my girl』が好きだと笑った顔も、ライブDVDチャンミンMCに大爆笑した顔も、巨人の真似したユノに手を叩いて笑ってた姿も。『One More Thing』を傍で歌ってくれているようなそんな安心感がいつもほしい、そう思ってはいても遂に言えなかった。

いっそ『Catch Me』の男主人公みたいに思わせぶりに匂わせてほしかった。そしたら「行くなーーーーーーー!」って全力で言えた。せめて正直に「他に好きな人ができた」と言われたら、『Before U Go』をもじって上手いことの一つでも言えたかもしれない。あんたを愛していたのはばかだけどばかになれるくらい一途だったこの私だと、最後にこれくらい知っていけと、少しは自画自賛という名の自己満足自分を慰めることもできたかもしれない。それももう叶わない。何も言われないまま振られた私は、今日も車の中で不意に流れる『STILL』で全力で泣く。もう一度出会えたら、もう一度笑ってくれたら、そう思いながら二度と顔も見られず声も聴けない事実絶望して子供みたいに泣いてしまう。運転しながら。一日一日思い出さない日はなくて、格好悪いけどひたすら苦しくて愛しくて切ない想いばかりを抱えて、でもそんな自分を駄目だなと戒めるために『I KNOW』を聴いて我に返る。ばかでしょ、私。

今の私は『Fated』を聴いてもテンション上がらず、この悲しみの向こうに輝きがあるなんて、そもそも自分がこれをいつ乗り越えられるのかもうどうしたって分からない。こんなになるくらいなら本当に、ドン引きされても罵られてもいいからもっと好きだと言えばよかったなぁと心から思う。明日は、明日こそは元気になって輝くぞと念じながら『Back to Tomorrow』を聴いてもいつも迎える朝は後悔や悲しみを含んでいて、寝てる間に泣いた瞼はやっぱり腫れている。

でも、それでも好きだった。物凄く好きだった。もう連絡先も消したしSNSブロックしたし繋がりを絶った今だから言うけど、まだ好きだしこれからも当分好きなんだと思う。何なら婚約したお相手とハイタッチさえしたい気分だ、「やっぱあの人いいよね、こうさ~中身が男らしくってさ~でも優しくて~~」みたいな、ライブで隣の人と仲良くなるみたいに。恨みでも嫌味でもなく、本当にそのくらい格好いい人なのだ

この8年、良い恋をしたと思う。本当に本当に大切にしてもらった。終わり方さえ納得出来たら、多分きっともっと上手にこの恋を昇華できた。あんたはこれも知らないだろうけど、私はいつも友人に「今の人と別れたらもう恋はできない」と常々言っていた、その思いが一文字たりとも違わないことを日々実感している。未来がどうなるか知ったこっちゃないけれど、少なくともこの半年間私はちっとも変れていない。そういう意味でも改めて『STILL』はどんぴしゃなのである。本当にただ泣いただけ。

おめでとうも言えず、未だ報われない恋を抱えている私から、それでもこれだけは言わせてほしい。本人には届かないだろうし私の自己満足だけれど、私の恋が終わる為にも、貴方だけの『シアワセ色の花』が咲くことを心から願っている。枯れることも折れることも朽ちることもなく、何色でもいいから貴方のその凛とした姿勢に相応しい花が咲きますように。よく食べてよく寝て、私が貴方にしてあげられなかったことを全てしてあげられる、貴方不安を汲み取ってくれて貴方にちゃんと素直になってくれるそんな素敵な女性と、ただ幸せになってほしい。世界が壊れてしまっても、もう誰かの手を離すことがないようにね。

まぁ私は無理やりでも元気出していこう。『Easy Mind』とか『Cheering』とか流してテンション上げて、大声で泣きながら笑って歌ってこう。そしていつか『STILL』を聴きながら、こんな素敵な恋をしたんだと心から笑顔で振り返れる日が来るといい。

ありがとう。そして本当にこれでさようなら。私の報われない恋に、大好きな東方神起を捧ぐ。You were my chandelier.

2015-10-03

Chage。。。

9/27のライブChage氏がC&Aの曲を解禁して歌ったっていニュースをいくつか見たけど・・・

ニュースには「夏は過ぎて」「君は何も知らないまま」などチャゲアスの曲を13曲ってあったけど・・・

セトリ見たら、思わず「なんでその2曲を記事にチョイスした?!」と思った。同じ気持ちの元ファンは多いはず・・・

いや、もちろんいい曲です。その2曲も。

でも、エピローグとか!ロマンシングヤードとか!ripple ringとか!そこじゃないの?!

Catch&amp;Releaseも「TREE」に入ってた曲だし!

・・・と思ってしまったんですよ。

個人的にはSea of grayが嬉しかった。この曲は作詞リードボーカルASKAだ。

Chage氏もたくさんソロアルバム出してるし、MULTI MAXの曲もたくさんあるけど、あえて半分以上C&Aにしたところに想いを感じるなぁ・・・

あんまりチャゲアスのことは大きい声で言えないので、匿名ダイアリーでこっそり呟いとく。すみません

2015-08-25

IT関係ないサラリーマンコミュニティサイト作っちゃいました。

私ごとですが、この度コミュニティサイト作成いたしました。

私の持てる知識を絞り出してなんとか完成しました。

**************************************************************************************

完成したサイトがこちらです。

LapyNetニュース

http://lapynetz.net/

**************************************************************************************

私は普段webとは関係ない仕事してます。なんとか休日を利用して、

webサービス作成しました。

メインのコードはこんな感じ

----------------------------------------------------------------------------------------------------------------------



App::uses('Sanitize', 'Utility');
class RssfeedsController extends AppController {

public $helpers = array('Html','Form','Session','Number','Cache');

public $uses = array(
'Rssfeed',
'Tweet',
'Wadai',
'Rank',
'Oracle'
);
 **************************************************************************************
public function index() {

$title_for_layout = "LapyNetニュース";
$content = "Hello World!!";

$this-&gt;set(compact('title_for_layout','content'));
if(date("G")&gt;0 and date("G") &lt; 7){
$today = date("Y-m-d", strtotime('-1 day'));
}else{
$today = date("Y-m-d");
}

$params = array(
'conditions' = &gt; array(
'and' = &gt; array(
'Rssfeed.time' = &gt; $today,
)),
'order' = &gt; 'tweets desc',
'limit' = &gt; '50'
);
$this- &gt;set('posts',$this- &gt;Rssfeed- &gt;find('all',$params));

$paramz = array(
'order' = &gt; 'Rssfeed.id desc',
'limit' = &gt; '10'
);
$this-&gt;set('posts2',$this-&gt;Rssfeed-&gt;find('all',$paramz));

$paramz = $this- &gt;Rssfeed- &gt;query('SELECT id,title FROM rssfeeds order by id desc limit 10');

$this-&gt;set('posts2', $paramz);

$parapara = $this- &gt;Oracle- &gt;query('SELECT id,title FROM oracles order by id desc limit 10');

$this- &gt;set('postx', $parapara);

$funking = $this- &gt;Rank- &gt;query('SELECT id,frank FROM ranks where creation=(select max(creation) from ranks)');

$this- &gt;set('funking', $funking);


}

 **************************************************************************************
public function mizuno() {
$parapara = array(
'order' =&gt; 'Oracle.id desc',
'limit' =&gt; '30'
);
$recent_posts = $this-&gt;Oracle-&gt;find('all',$parapara);
return $recent_posts;

}


 **************************************************************************************
public function wadai() {
if(date("G")&gt;0 and date("G") &lt; 7){
$today = date("Y-m-d", strtotime('-1 day'));
}else{
$today = date("Y-m-d");
}

$params = array(
'conditions' =&gt; array(
'and' =&gt; array(
'Rssfeed.time' =&gt; $today,
'Rssfeed.kubetu' =&gt; 4
)),
'order' =&gt; 'tweets desc',
'limit' =&gt; '100'
);
$this-&gt;set('posts',$this-&gt;Rssfeed-&gt;find('all',$params));





$this-&gt;set("title_for_layout","2CHニュース-LapyNetニュース");


$paramz = array(
'order' =&gt; 'Rssfeed.id desc',
'limit' =&gt; '10'
);
$this-&gt;set('postyy',$this-&gt;Rssfeed-&gt;find('all',$paramz));

$parapara = array(
'order' =&gt; 'Oracle.id desc',
'limit' =&gt; '10'
);


$this-&gt;set('postyx',$this-&gt;Oracle-&gt;find('all',$parapara));

$funking = $this-&gt;Rank-&gt;query('SELECT * FROM ranks where creation=(select max(creation) from ranks)');

$this-&gt;set('funking', $funking);



}
 **************************************************************************************
public function hot() {
if(date("G")&gt;0 and date("G") &lt; 7){
$today = date("Y-m-d", strtotime('-1 day'));
}else{
$today = date("Y-m-d");
}

$params = array(
'conditions' =&gt; array(
'and' =&gt; array(
'Rssfeed.time' =&gt; $today,
'Rssfeed.kubetu' =&gt; 3
)),
'order' =&gt; 'tweets desc',
'limit' =&gt; '20'
);
$title_for_layout = "LapyNetニュース";
$this-&gt;set("title_for_layout","ニュース-LapyNetニュース");
$this-&gt;set('posts',$this-&gt;Rssfeed-&gt;find('all',$params));

$parapara = array(
'order' =&gt; 'Oracle.id desc',
'limit' =&gt; '10'
);
$this-&gt;set('postxx',$this-&gt;Oracle-&gt;find('all',$parapara));

$paramz = array(
'order' =&gt; 'Rssfeed.id desc',
'limit' =&gt; '10'
);
$this-&gt;set('postsxxx',$this-&gt;Rssfeed-&gt;find('all',$paramz));

$funking = $this-&gt;Rank-&gt;query('SELECT * FROM ranks where creation=(select max(creation) from ranks)');

$this-&gt;set('funking', $funking);


}

 **************************************************************************************
public function newnew() {
if(date("G")&gt;0 and date("G") &lt; 7){
$today = date("Y-m-d", strtotime('-1 day'));
}else{
$today = date("Y-m-d");
}

$params = array(
'conditions' =&gt; array(
'and' =&gt; array(
'Rssfeed.time' =&gt; $today,
'Rssfeed.kubetu' =&gt; 2
)),
'order' =&gt; 'tweets desc',
'limit' =&gt; '20'
);
$this-&gt;set("title_for_layout","エンタメニュース-LapyNetニュース");
$this-&gt;set('posts',$this-&gt;Rssfeed-&gt;find('all',$params));

$paramz = array(
'order' =&gt; 'Rssfeed.id desc',
'limit' =&gt; '10'
);
$this-&gt;set('postszz',$this-&gt;Rssfeed-&gt;find('all',$paramz));

$paramz = $this-&gt;Oracle-&gt;query('SELECT id,title FROM rssfeeds order by id desc limit 10');

$this-&gt;set('postszz', $paramz);

$parapara = $this-&gt;Oracle-&gt;query('SELECT id,title FROM oracles order by id desc limit 10');

$this-&gt;set('postzy', $parapara);


$funking = $this-&gt;Rank-&gt;query('SELECT * FROM ranks where creation=(select max(creation) from ranks)');

$this-&gt;set('funking', $funking);



}
 **************************************************************************************
public function top() {
if(date("G")&gt;0 and date("G") &lt; 7){
$today = date("Y-m-d", strtotime('-1 day'));
}else{
$today = date("Y-m-d");
}
$params = array(
'conditions' =&gt; array(
'and' =&gt; array(
'Rssfeed.time' =&gt; $today,
'Rssfeed.kubetu' =&gt; 1
)),
'order' =&gt; 'tweets desc',
'limit' =&gt; '20'
);
$this-&gt;set('posts',$this-&gt;Rssfeed-&gt;find('all',$params));

$param = array(
'conditions' =&gt; array('times &gt; current_timestamp + interval -600 minute and Kubetu = 4'),
'order' =&gt; 'tweets desc',
'limit' =&gt; '30'
);
$this-&gt;set('posts2',$this-&gt;Rssfeed-&gt;find('all',$param));
}


 **************************************************************************************
public function view($id = null ) {
$this-&gt;Rssfeed-&gt;id = $id; //驥崎ヲ√↑荳譁・i縺励>
$user = AuthComponent::user();

$TwimStatus = ClassRegistry::init('Twim.TwimStatus');


$TwimStatus-&gt;getDataSource()-&gt;setToken(AuthComponent::user());

$statuses = $TwimStatus-&gt;tweet();
$rairai = $this-&gt;Rssfeed-&gt;read(title,$id);
$alcol = $this-&gt;Rssfeed-&gt;read();
$this-&gt;set('post', $alcol);

$this-&gt;set('post2', $user);
$this-&gt;set('post3', $statuses);
$this-&gt;set("title_for_layout",$rairai[Rssfeed][title]."-LapyNetニュース");

$paramz = array(
'order' =&gt; 'Rssfeed.id desc',
'limit' =&gt; '20'
);
$this-&gt;set('postszz',$this-&gt;Rssfeed-&gt;find('all',$paramz));

$parapara = array(
'order' =&gt; 'Oracle.id desc',
'limit' =&gt; '30'
);
$this-&gt;set('postzy',$this-&gt;Oracle-&gt;find('all',$parapara));

}
 **************************************************************************************
public function add() {

if($this-&gt;request-&gt;isPost()){
if($this-&gt;Tweet-&gt;save($this-&gt;data)) {
$this-&gt;Session-&gt;setFlash('seikou');
$this-&gt;redirect(array('controller'=&gt;'rssfeeds','action'=&gt;'view',$contents11));

}else{
$this-&gt;Session-&gt;setFlash('sipai');
$this-&gt;redirect(array('controller'=&gt;'rssfeeds','action'=&gt;'view',$contents11));
}
}
}
 **************************************************************************************
public function delete($id = null) {
$this-&gt;Rssfeed-&gt;id = $id; 
$this-&gt;set('set', $this-&gt;Rssfeed-&gt;read());
$this-&gt;redirect(array('controller'=&gt;'tweets','action'=&gt;'delete',$this-&gt;data['tweet']['rssfeed_id']));


}
 **************************************************************************************
public function oracle() {
if($this-&gt;request-&gt;is('post')) {

$user = AuthComponent::user();

$TwimStatus = ClassRegistry::init('Twim.TwimStatus');


$TwimStatus-&gt;getDataSource()-&gt;setToken(AuthComponent::user());

$contents1 = $this-&gt;request-&gt;data['Rssfeed']['contents'];
$contents2 = $this-&gt;request-&gt;data;
$statuses = $TwimStatus-&gt;tweet($contents1);


if($this-&gt;Rssfeed-&gt;save($contents2)) {
$this-&gt;Session-&gt;setFlash('成功です。');
$this-&gt;redirect(array('controller'=&gt;'rssfeeds','action'=&gt;'view',$contents11));
$this-&gt;redirect($this-&gt;referer());
}else{
$this-&gt;redirect(array('controller'=&gt;'rssfeeds','action'=&gt;'view',$contents11));
$this-&gt;Session-&gt;setFlash('失敗です。');
}
}


}
 **************************************************************************************
public function makelist() {
$rssfeeds = $this-&gt;paginate();
if ($this-&gt;request-&gt;is('requested')) {
return $rssfeeds;
} else {
$this-&gt;set('rssfeeds', $rssfeeds);
}
}

}

----------------------------------------------------------------------------------------------------------------------

rssフィードはこんな感じです。
----------------------------------------------------------------------------------------------------------------------

#!/usr/bin/php
&lt;?php

header('Content-type: text/html; charset=UTF-8');


require_once ('/var/www/html/s/magpierss/rss_fetch.inc');


define('MAGPIE_CACHE_AGE', 60*5);

define('MAGPIE_CACHE_DIR', '/var/www/html/s/cache/');

define('MAGPIE_OUTPUT_ENCODING','UTF-8');


$urls = array(
'*********************************');

$items = getRssList($urls);

echo '&lt;ul&gt;';
foreach ($items as $item) {

$href = mb_convert_encoding($item['link'], "UTF-8", "auto");

$title = mb_convert_encoding($item['title'], "UTF-8", "auto");
$description = mb_convert_encoding($item['description'], "UTF-8", "auto");
$megami = mb_convert_encoding($description, "UTF-8", "auto");

 

 **************************************************************************************


$all = 'http://urls.api.twitter.com/1/urls/count.json?url='.$href;
$Rits = file_get_contents($all);
$Olfe = mb_convert_encoding($Rits, 'UTF-8', 'auto');
$data = json_decode($Olfe);
$tweets = $data-&gt;count;

 **************************************************************************************

$checkman = db_check_urls($href);
$checkman2 = db_check_pr($title);

$nowtimes = date('Ymd');

 


if($checkman == 0 &amp;amp;&amp;amp; $checkman2 == 0){
#$hrefs = urlencode($href);
db_put_urls($nowtimes,$href,$title,$description,$tweets);
echo "&lt;li&gt;&lt;a href=$href&gt;$title&lt;/a&gt;&lt;br&gt;$megami&lt;p&gt;$tweets&lt;/p&gt;&lt;p&gt;$checkman&lt;/p&gt;&lt;/li&gt;";
}else{

}


}
echo '&lt;/ul&gt;';

 

 

 **************************************************************************************
function getRssList($urls)
{
$rssitems = array();
foreach ($urls as $url) {
$obj = fetch_rss($url);
$rssitems = array_merge($rssitems, $obj-&gt;items);
}
return $rssitems;
}

 **************************************************************************************
function db_check_pr($japanese){

$moji = mb_substr($japanese,0,2);
if($moji == 'PR'){
return 1;
}else{
return 0;
}
}
 **************************************************************************************

function db_check_urls($href){

require '/var/www/html/s/database_conf.php';

try {

$db = new PDO($dsn, $dbUser, $dbPass);
$db-&gt;setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$db-&gt;setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);


$sql = 'SELECT count(*) AS count FROM rssfeeds WHERE urls = :language';
$prepare = $db-&gt;prepare($sql);


$languages = array($href);
foreach ($languages as $language) {

$prepare-&gt;bindValue(':language', $language, PDO::PARAM_STR);
$prepare-&gt;execute();

$result = $prepare-&gt;fetchColumn();
if ($result &gt; 0) {
return true;
}else{
return false;
}
}

} catch (PDOException $e) {
echo 'エラーが発生しました。内容: ' . h($e-&gt;getMessage());
}

function h($var) 
{
return htmlspecialchars($var, ENT_QUOTES, 'UTF-8');
}
}

 **************************************************************************************
function db_put_urls($nowtimes,$href,$title,$description,$tweets){
require '/var/www/html/s/database_conf.php';
try {

$db = new PDO($dsn, $dbUser, $dbPass);
$db-&gt;setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$db-&gt;setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sikibetu = 5;
$moto = "アニゲー速報VIP";

$sql = 'insert into rssfeeds (id, time,urls,title,contents,tweets,times,kubetu,teikyo) values (?, ?, ?, ?, ?, ?, ?, ?, ?)';

$prepare = $db-&gt;prepare($sql);

$prepare-&gt;bindValue(1, 0, PDO::PARAM_STR);
$prepare-&gt;bindValue(2, $nowtimes, PDO::PARAM_STR);
$prepare-&gt;bindValue(3, $href, PDO::PARAM_STR);
$prepare-&gt;bindValue(4, $title, PDO::PARAM_STR);
$prepare-&gt;bindValue(5, $description, PDO::PARAM_STR);
$prepare-&gt;bindValue(6, $tweets, PDO::PARAM_STR);
$prepare-&gt;bindValue(7, 'cast( now() as datetime)', PDO::PARAM_STR);
$prepare-&gt;bindValue(8, $sikibetu, PDO::PARAM_STR);
$prepare-&gt;bindValue(9, $moto, PDO::PARAM_STR);
$prepare-&gt;execute();

} catch (PDOException $e) {
echo 'エラーが発生しました。内容: ' . h($e-&gt;getMessage());
}
}
?&gt;

---------------------------------------------------------------------------------------------------------------------

**************************************************************************************

参考にした書籍

CakePHP2 実践入門 (WEB+DB PRESS plus)

CakePHP2 実践入門 (WEB+DB PRESS plus)

作者: 安藤祐介,岸田健一郎,新原雅司,市川快,渡辺一宏,鈴木則夫

出版社/メーカー: 技術評論社

発売日: 2012/09/29

メディア: 単行本ソフトカバー

購入: 5人 クリック: 165回

この商品を含むブログ (9件) を見る

Webアプリ開発を加速する CakePHP2定番レシピ119

Webアプリ開発を加速する CakePHP2定番レシピ119

作者: 長谷川智希,デジタルサーカス

出版社/メーカー: 秀和システム

発売日: 2013/09/28

メディア: 単行本

この商品を含むブログ (1件) を見る

**************************************************************************************

一番難しいところはtwitterログインwebサイト連結でした。

cakephp直感できに操作できていいです。

素人のわたしでも操作できましたので。

cakephpを使用しています

webからニュース収集してきます

ツイート数でランキングしてますネット話題を見つけられます

twitterアカウントログインできます

ニュースに対するコメントもできるし、

自分記事投稿できます。(画像も可)

デザインはよくわからないので、

ホームページビルダーを使用しています

今のホームページビルダーは昔と違って高機能ですね。

テンプレートも何種類もあって今はすごいです。

アマゾンawsを使用してます

サーバーWebサーバーデータベースサーバmysql)

に分かれています

今更cakephpを使っている人は少ないかもしれませんが、

データベースとの接続などは楽でした。

twitterアカウントあるといつでも参加できますので、

ニュースを通してコミュニケーション目的としたサイトを目指します。

2015-05-22

What 'Good Kill' Gets Wrong About Drone Warfare

http://www.newsweek.com/2015/05/22/watch-drone-331949.html

In the opening scene of Patton (1970), the film’s namesake addresses a sea of troops about to be hurled onto World War II’s front lines in Europe and North Africa. General George S. Patton says, “Now, I want you to remember that no bastard ever won a war by dying for his country—he won it by making the other poor, dumb bastard die for his country.”

The film Good Kill, which comes out this week, depicts a lieutenant colonel delivering a similarly rousing speech to a group of recruits about to enter combat. Only this time it’s with drones. “Ladies and gentlemen,” he says, “the aircraft you’re looking at behind me is not the future of war; it is the here-and-fucking-now.”

The movie, written and directed by Andrew Niccol (Gattaca, Lord of War), provides a harrowing look at warfare’s newest frontier through the eyes of a fictional drone pilot. Major Tom Egan (Ethan Hawke), a former Air Force pilot yearning to fly again, spends 12 hours a day fighting militant groups like the Taliban from a dark, air-conditioned bunker in the Nevada desert—more than 7,000 miles away from the battlefield. Through prolonged close-ups on his computer screens, the audience is complicit, forced to watch as his strikes claim lives. When the camera turns, the audience sees Egan gradually unraveling from the stress. Joystick in hand, he surveils and strikes targets seen on a computer screen, racking up casualties. And then, after his shift, he trudges back to his home in Las Vegas, where his wife (January Jones), children and the challenges of domestic life await him.

Try Newsweek for only $1.25 per week

From World War II to contemporary conflicts, war films often highlight the humanity of soldiers, helping to connect civilians in the audience to the people and wars they once understood only in the abstract. Good Kill adds to this long cinematic tradition within the context of the U.S. drone program, a little-seen world filled with men and women at the forefront of modern warfare. “You can’t say you’re anti-drone,” Niccol tells Newsweek. “It’s like saying you’re anti-Internet.”

“The really exciting thing about working with Andrew [Niccol] is that he doesn’t really see this from a left-wing point of view or a right-wing point of view,” Hawke says. “He’s kind of coming at it as a humanitarian and a scientist.”

So how accurately does the film depict the lives and thoughts of these modern fighters? Newsweek reached out to a former drone operator, Brandon Bryant, to gauge how realistic the movie’s portrayal is and discovered that, in August 2013, early on in Good Kill’s production, he was contacted by a producer, who asked for his insights. Bryant critiqued an early version of the script, told his service stories and answered questions. But a few weeks in, he says, the producers became unresponsive.

This is nothing new to Hollywood insiders, who are used to the slow pace and false starts of independent filmmaking, but Bryant thinks the “snubbing,” as he refers to it, was because of a disagreement regarding one element in the script. Or rather, an element noticeably absent from it: the psychological impact of remote warfare on drone operators. “The psychological aspect is the most important part of this kind of film,” says Bryant. “Because what we’ve done is taken the warrior from the battlefield where...they’re no longer with their comrades.”

U.S. Air Force Maj. Casey Tidgewell (L) and Senior Airman William Swain operate an MQ-9 Reaper from a ground control station August 8, 2007 at Creech Air Force Base in Indian Springs, Nev. Ethan Miller/Getty

In 2005, Bryant was a University of Montana student struggling to pay his tuition and searching for any way out of Missoula. He agreed to give his friend a ride to a nearby Army recruiting office that summer and weeks later signed up to join the Air Force. After several months of testing and training at Lackland Air Force Base in Texas, Bryant was assigned to a windowless bunker on the periphery of Las Vegas, just like Hawke’s character in Good Kill. His job was to guide missiles to their intended targets via laser. He hated the work instantly, but, also like the film’s main character, Bryant knew he had to tough it out. In just six months during 2007, he says, he killed 13 people with four shots—some targets, others “collateral damage.”

He can recall every devastating detail of his first strike. Three men with rifles were walking along a road somewhere in Afghanistan; the two in front looked as if they were having an argument, while the third wandered a little behind them. Bryant says he had no idea who the men were, only that they were targets. Command ordered his team to aim a missile at the two men in front instead of the one in the back, astwo is better than one.”

by Taboolaby TaboolaSponsored LinksSponsored Links

Promoted LinksPromoted Links

RecommendedHuge Manta Ray Catch Angers ConservationistsKim Jong-un Assembles New ‘Pleasure Squad’ of Young WomenThe Beginning of the End of North Korea?The Full Beauty Photo Project: Big Women Bare AllWhen the smoke cleared, a crater appeared on Bryant’s screen, littered with the body parts of the two men. The third man lay on the ground, missing part of his right leg. “I watched him bleed out,” Bryant recalls. The third man’s blood, which on Bryant’s screen appeared white in infrared, drained from his body, pooled on the ground and cooled. “After a while, he stopped moving, and he became the same color as the ground.”

The horrors of his work soon wormed their way into Bryant’s subconscious. “I used to have a lot of trouble sleeping,” he says. “I just hated seeing my work when I closed my eyes.” This aspect of the job gets a nod in the film: As Egan retreats into himself and those he loves drift further away, he seeks comfort in vodka. Prolonged depression gives way to rage—Egan gets physically violent with his wife and angrily throws a bottle of liquor after a cashier makes a joke about his flight suit.

In 2011, nearly six years after joining the Air Force, Bryant turned down a $109,000 bonus and left. Upon exiting, he was presented for the first time with a report on his accomplishments: He was associated with 1,626 kills. “I felt sick to my stomach,” he says. “Civilians were being killed because leadership didn't care…. All they were doing was racking up tallies for their promotions.”

An MQ-9 Reaper takes off on a training mission August 8, 2007 at Creech Air Force Base in Indian Springs, Nev. Ethan Miller/Getty

Bryant’s guilt weighed heavily on his conscience. On a trip to Best Buy in late 2011, he used his military ID while paying for a video game. A young man behind him noticed it. “You served in the military? So did my brother. He served in the Marines and he killed, like, 30 people. How many people did you kill?” In front of a store full of people, Bryant responded, “If you disrespect the taking of another person’s life ever again, I will find you and kill you in front of your family.” He was asked to leave the store.

Most Shared. Venezuela Officials Suspected of Drug Trafficking Shares: 1.8k Dick Cheney’s Biggest Lie Shares: 955 Requiem for the Cryosphere: Huge Antarctic Ice Shelf Is About to Disintegrate Shares: 596 'Staying Up Late With Letterman': Our 1986 Profile Shares: 431 Why It’s Not Actually Raining Spiders in Australia Shares: 175 Most Read Court Ruling on Immigration Could Rock Obama, 2016 Race Taylor Swift Premieres 'Bad Blood' Video at Awards Show GMO Scientists Could Save the World From Hunger, If We Let Them Singing the End of 'Mad Men' Dick Cheney’s Biggest Lie It was after Bryant begrudgingly told a therapist this story that he finally agreed with her diagnosis: he had post-traumatic stress disorder (PTSD).

The issue of PTSD in drone operators is controversial. To someone outside the military, it might seem that a distinction should be made between those in combat who are on a conflict’s physical front lines and those operating on its technological front lines. But does such a distinction extend to remorse or guilt? Or to the difference between whether the blood that a soldier may feel is on his or her hands is there literally or just on a computer monitor?

Madeline Uddo, a psychologist and team leader of the PTSD clinical team at the Southeast Louisiana Veterans Health Care System, says PTSD can be diagnosed if a certain number of symptoms outlined in the Diagnostic and Statistical Manual of Mental Disorders—the guide used in psychiatry to diagnose mental disorders—are present. She notes that the manual’s fifth edition seems to cover the experience of drone operators. Furthermore, a Defense Department study from 2013 found that drone pilots experience many stress disorders, including PTSD, at the same rate as aircraft pilots.

Hawke and Niccol say that soldiers like the fictional Egan and the very real Bryant are essentially test subjects, and that what the military asks of them has “never been asked of a soldier before.” It’s an admission that Good Kill is in uncharted territory, but they avoid saying that Egan has PTSD, although Niccol calls what Hawke depicts in the film “an approximation” of PTSD.

According to Zev Foreman, a producer on the film, the creators were determined to leave Egan’s diagnosis open-ended so the audience is able to better interpret how it feels about the drone program. Or, as Foreman puts it, “[we’re] not making a statement particularly about anything while opening up a discussion about everything.”

Still, Bryant maintains that the filmmakers, in telling a drone operator’s story, have a responsibility to weigh in on the remorse that many of them face, something he feels Good Kill largely fails to do. “I wanted [them] to make a powerful movie, not just an entertaining one,” he says. “[They] wanted to make something akin to Top Gun with drones…. They’re doing what our society does—marginalizing the traumatic effects of personal experiences.”

While this back-and-forth could be chalked up to an outsider not understanding Hollywood’s rules, it indicates a bigger issue: Although troops can perform their duties 7,000 miles away from battle, that doesn’t mean they’re safe. And although drones allow us to see into any corner of the world at any time, when it comes to the psychological effects this type of fighting has on our soldiers, we're flying blind.

Bryant is currently in an inpatient program designed to help him cope with his PTSD. “When I go back to those memories and my emotions get high,” he says, “I feel rage or extreme depression. It’s helping me manage those emotions.”

2015-05-02

package samples.process;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.Reader;

import java.io.StringWriter;

public class ProcessExecuteSample {

public static void main(String[] args) throws InterruptedException,

IOException {

ProcessBuilder pb = new ProcessBuilder("cmd", "/C", "dir", "C:\\Program Files\\Java");

Process p = pb.start();

BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));

Catcher c = new Catcher(br);

c.start();

p.waitFor();

p.destroy();

System.out.println(c.out.toString());

}

}

class Catcher extends Thread {

Reader in;

StringWriter out = new StringWriter();

public Catcher(Reader in) {

this.in = in;

}

public void run() {

int c;

try {

while ((c = in.read()) != -1) {

out.write((char)c);

}

} catch (IOException e) {

e.printStackTrace();

}

}

}

2014-12-10

http://anond.hatelabo.jp/20141209170451

自分にも同じ経験がある。あるドメインを持っていてメールcatch all の設定、

まり@マーク以前がなんであれ自分メールが届くようにしていたのだが

いろんな奴が俺のドメインを使っていろんなサービスに登録しやがるのだ。

HPを公開していないのでブラウザでそのドメインアクセスしても繋がらないから存在しないと

思っているのだろう。

から捨てアドのつもりで気楽に使っているのだろうと思う。

おかげで自分では止められないメールマガジンやらメンテナンスのお知らせがバンバン届いた。

最初のうちはサービス提供会社に連絡してアカウントを停止してもらっていたのだが

そのうち面倒になってcatch allの設定自体をやめた。

記事と同じようにパスワードリセットして自分で止めたろかと思ったこともあるが

不正アクセスになる可能性を考え実行しなかった。

2014-11-06

ハイレゾ

あんまハイレゾって言いたくないんだけども。

確かに物によってはCDの曲よりも解像感があり、左右が分離してて、

きらびやかで、低音が豊かで、これがハイレゾか~って感じに聴こえる。

だけどそれはマスタリングによる違いでそう聴こえるんであって、

ぶっちゃけ16bit/44.1kHzと24bit/48kHzとで違うからそう聴こえるのではないと(今の段階では)思っている。

何故ならば、24bit/48kHzをダウンサンプリング・ダウンコバートしたものと元のを聴き比べても、全然からないからだ!

ただ、環境による問題はあるかもしれない。

ヘッドホンHD595。

外付けDAC(24bit/96kHzまで対応)にヘッドホンアンプをかまして使ってはいるが、

それらは自作したものなので、悪い意味で語れるレベルではないのかもしれない。

話は変わるが感想

ラブライブ

CD版よりクリアな感じがする。その効果か、聴きやすい印象。ありがたい。

最初に買ったSnow halationは聴きやすいなっていう理由で気に入った。

輝夜の城で踊りたい、は低音はいいんだけどサビでなんかちょっと破綻してる感じがしたなぁ。

上原ひろみ

CD版は持ってないから比較はしてないけどこれはいいぞ(ただの宣伝

Aliveはe-onkyoで、MOVEHD tracksで買った。どちらも良いものだ。

・K2HD関係

Catch You Catch Meだけ買って比べてみた。

確かにクリアになっているのかもしれない。処理の方法を考えてもきっとそうなんだろう。

驚くほどの変化があるか、っていうと、自分環境では分からん

レコードの曲

Waltz For DebbyとかWaveとか。

ハイレゾとは何かって考えさせられるな。聴きやすいと思う。

今後のハイレゾに対する期待としては、もちろん低価格化と、

品質を最低限保って欲しいということかな。

CDと何も変わらないものを上げるなんていうのも噂には聴くちょっとな。

2014-09-09

クラブ好きな新米エンジニアが1週間でWebサービス作ってみた

こんにちは

文系出身だけど前々からWebサービスつくってみたくて勉強がてら一人でWebサービス作ってみました。

作りたいって思うなら実際に作ってみるのが一番いいってじっちゃんがいってた。

やってみて感じたこととか先輩エンジニアの人たちに教えて欲しいこととかを書いていきたいと思います

じっちゃん、僕にもできたよ!

作ったWebサービス

EDM JACK

http://edmjack.com/

簡単に説明するとクラブミュージック淡々と紹介していくサイト

作ってみた人のあれこれ

・26歳

フリーター(ほぼニート)→知人の会社で営業職→今年の4月Web業界転職

クラブミュージックが大好き。だけど人混みは嫌い。

・営業職だったころにあい時間ドットインストールとかでHTML/CSS勉強をしてた。

大学中退してからフリーターになって、その頃から自分Webサービスとかつくって運営してる人ってかっこいいな〜とか思ってた。

Facebook映画とか見たときは完全に感化されっぱなしだった。

でもいつか作れたらいいな〜って思ってただけでなにもしてなかった。

最近いろいろ環境が変わって少し休みをもらえたので奮起して勉強がてら作ってみることにしたのです。

なにを作るか

漠然と「Webサービス作りたい」って思ってたからまずどんなWebサービスを作るか考えました。

やっぱり好きなことじゃないと続かないと思ったので

自分が好きなクラブミュージックをまとめるサイトを作ることにしました。

ジャンルDJ KAO●Iとかミーハーな感じの曲じゃなくてEDMってやつ。

EDMといえば今月日本でもUltra Music Festivalが開催されるね!やったね!Hardwellに会えるね!

どうやって作るか

まずはプログラミングとやらを勉強することにしました。ドットインストールは偉大です。お世話になりました。

ドットインストール

http://dotinstall.com/

ここでHTML/CSSPHP勉強しました。でもPHPゼロからコードを書いて作ろうとすると重大な問題があることに気が付きました。

時間がかかりすぎる。

今回はとりあえず自分でなにかWebサービスを作ってみるということを経験たかったのでWordPressを使うことにしました。

サーバー環境の構築を勉強した

でもさすがにレンタルサーバーを借りてWordPress入れましたっていうんじゃ先輩エンジニアの人たちに怒られちゃうと思ったので、

WordPressを入れるサーバー環境構築は自分で頑張ってやってみることにしました。

なのでWeb業界ではアイドル存在AWSっていうやつで頑張ることにしました。

ここでもドットインストールにお世話になりました。ほんとなんでもチュートリアルがあってすごい。

最初WebサーバーApacheを入れていたんですが、なんか重たい感じがしていろいろ調べているとNginxナウい感じだったので

Nginxインスタンスを立て直すことしました。環境的にはこんな感じ。

AWS EC2 (t2.micro)

Nginx 1.4.7

php-fpm 5.3.28

MySQL 5.6.13

ドットインストールUnixコマンドとかを勉強したとはいってもNginxの設定周りをいじるのは結構大変でした。

でもNginx使うからにはチューニングしてから使わないとApache先生に怒られちゃうので、

この記事を見ながら頑張ってチューニングしました。

さくらVPS512で、Yahoo!砲食らっても WordPress平常運転させるための設定

http://dogmap.jp/2013/04/16/sakura-vps-performance-tuning/

チューニングテストをしたらTransfer Rate17[Kbytes/sec] くらいから15000 [Kbytes/sec]くらいになった。

Nginxやばい。はやすぎ。なにこのスピード

WordPressを入れていろいろ設定をしてみる

無事にサーバーが立てられたのでWordPressを突っ込んでテーマかいろいろいじりました。

使用したテーマPRONTO

http://www.wpexplorer.com/pronto-wordpress-theme/

基本的にはテーマをそのまま使ってるだけです。

シェアボタンをつけたりFacebookのLikeBoxを入れたりでちょっとテーマいじった程度。

あ、カテゴリタグにpickupってつけたら自動投稿が目立つようにした。これは自分テーマファイルいじって書いた。

入れたプラグインはこんな感じ。Jetpackモバイルテーマのみを有効化してる。

アイキャッチ画像が多いからPhotonも有効化してもいいかなって悩んでる。

Akismet

All In One SEO Pack

Batch Category Import

Favicon Rotator

Font Awesome Icons

Google Analytics

Jetpack by WordPress.com

Mobile Theme Featured images for Jetpack

Newpost Catch

NextScripts: Social Networks Auto-Poster

Nginx Cache Controller

Remote Images Grabber

Video Thumbnails

Wordpress Popular Posts

WordPress Related Posts

WP Multibyte Patch

サイト運用を開始

WordPressなのであとはたらたらと僕がオススメする曲を更新していくだけ。

EC2t2.microだけど、Nginxのおかげなのか特に問題はなし。

今はYoutubeSoundcloudURLをそのまま投稿に入れて、アーティスト名とかDJ名でカテゴリ分けしてる。

せっかくだからドメイン代とかAWS代だけでも回収できればいいなってことでAdSenseも入れてみたw

やってみて思ったこと。

実際に作り始めてから1週間程度でここまでつくることが出来ました。

AWSNginx環境構築→4日

WordPress環境構築→3日

ドットインストールがなかったらここまで速くつくれなかった。ありがとうございます田口さん。

元々非エンジニアでもやる気になればそれっぽいのが作れて感動しました。

でもなんかOGPの設定がうまくできず、Facebookとかでシェアしようとするとたまに全然関係ない画像が表示されてしまう。

テーマファイルに直接書いてもプラグインOGP設定してもよくわからなかった。

Facebookデバッガーつかってキャッシュクリアしてもできたりできなかったり。

これはNginxキャッシュが影響してるんかな。

今後やりたいこと。

将来的にはSoundcloudとMixcloudを足して2で割ったサイトになればいいな。

キュレーター制度とかも入れてみて、僕だけじゃなくていろんなEDM好きやDJおすすめの曲を投稿できるようにしていきたい。

WordPressで構築しちゃったけどできるだけプラグインに頼らずに自分PHP書いて実装できるように頑張らなきゃ。

本とかは一冊も読まずにここまで作れたけどPHPエンジニアならこれは読んどけよ若造ってのがあったら教えてください。

EDMは素晴らしいよ!クラブ好きな人もそうでない人もきっと好きになる曲が沢山あるから聞いてみてね!

EDM JACK

http://edmjack.com

2014-08-09

MacRubyアップデート

MacOSX 10.6.8

引っかかったのでメモ

Xcodeインストール
homebrewインストール

http://brew.sh/ の指示に従う

gitインストール

brew instal git

ruby(最新版)のインストール

brew instal ruby

/usr/local/Cellar/ruby 内にインストールされるはず

/usr/local/binにリンク作成(多分)

brew switch ruby [バージョン名]

なお、バージョン名は/usr/local/Celler/rubyのものに従う

$PATHの優先度は/usr/binのが高いので変える.なおホームフォルダで行う

catch .bash_profile

vi .bash_profile


中身は

PATH=/usr/local/bin:$PATH

export PATH


以上

2014-08-07

When I grow up/ Apple/ Jennifer O'Connor/ iPhone5s

感動したので訳してみました。

---

大きくなったら

ヒーローになるんだ

0からスタート

あがって、くだって

あがって、くだって

ぼくの頭で、そして心で

にのって飛ぶよ!

When I grow up

I’ll be the hero

Of my story book

I’ll start at zero

And rise and fall

And rise and fall again

My head, my heart

I’ll fly into the wind

大きくなったら

毎朝太陽が出迎えてくれる

1つ1つの波を捕まえながら泳いでいく、

疲れるまで

どんな運動だって練習する

直感

When I grow up

The sun will greet me

And every day

I’ll meet it completely

I’ll catch each wave and swim until I’m tired

I’ll practice every move, so inspired

大きくなったら、強く良い人になる

そして自分世界を作っていく

When I grow up I’ll be good and strong

I’ll create a world where I belong

When I grow up

大きくなったら、

自分のなりたい自分になる

あがって、さがっても

丘、星空

はじまりは美しい。

それを繰り返していくんだ

When I grow up

I’ll be who I want to

I’ll take every turn

With purpose and see through

The ups and downs

The hills, the starry skies

The beautiful beginning and reprise

When I grow up

※わかんないところははしょってあります

2014-08-02

金のマサカリ

タイトルは今考えた

世界一IQの低いソースコードはこれ。という記事を読んだんだが、批評の方向が斜めな気がしたのでいくつか指摘をしてみる

予め断っておくが、俺はこの本を持ってないし読んだこともない

switch文使え

switch文を使ったところでクソはクソ

しかし後述の理由から妥協した結果、巨大なswitch文ができてしまうのがAndroidの恐ろしいところ

その文字列、keyCodeから引いてこいよ

わかっているとは思うが、keyCodeはint型なのでこれがなかなか難しい

リフレクションについては更に後述

その処理、関数で用意されてるよ

android.view.KeyCode.keyCodeToString(keyCode)

同様のコードを今組むとするならばとても優秀、最適解

しかブコメにあるように、この関数API Level 12(2011/05/10)から追加された関数であって

発刊当時(2010/01/25)に相当するコード存在しない

まあ知らないことが悪いわけではないので、これを期に修正検討するのも良い

リフレクション使え

試しにコードを書いてみようか

private static final String keyCodeToString(int keyCode) {
  for (java.lang.reflect.Field f : android.view.KeyEvent.class.getFields()) {
    if (f.getInt(null) == keyCode) return f.getName();
  }
}

いや、実際はこんなものでは済まない

private static final String keyCodeToString(int keyCode) {
  try {
    for (java.lang.reflect.Field f : android.view.KeyEvent.class.getFields()) {
      if (f.getType() == int.class &amp;amp;&amp;amp; f.getInt(null) == keyCode &amp;amp;&amp;amp; f.getName().startsWith("KEYCODE_")) return f.getName();
    }
    throw new IllegalArgumentException("Unknown keyCode.");
  } catch (IllegalAccessException e) {
    throw new RuntimeException("Internal Error.");
  }
}

無論、こんなコードを書いたところで可読性は最悪だし、明らかに初学者向けではない

あなたが眠れない夜を過ごしたいのであれば止めはしない

余談だが…  
Androidは昔、端末リソースの少なさ故に、enumインスタンス化に必要な負荷を節約することが是とされてきた  
そういった理由から、一連の定数群が大きなカテゴリを形成したとしても、その全てがint型によって定義されているのは特段珍しい訳ではない

Androidはそういった定数値をログなどにより可視化する必要がある以上、どうしてもこのような処理ができてしまうのを避けられない

こういった経緯を知っていると、リフレクション処理時の処理速度より本末転倒とも言えるので極力避けたい(リフレクション実行時の処理速度についてはググるといろいろ出てくる)
AOPしろ DI使え

お前人の話し聞いてたか

こういったコードを生まないために

Androidでは次のような対応を心がけたい

  • C++で組んだら?

他に良い対応方法があったら教えてほしい

(マサカリを)投げていいのは(マサカリを)投げられる覚悟のある奴だけだ

この場合における正しいマサカリの投げ方

こんなコードを4ページも消費して本に書いたところで冗長すぎる
本に書く様なサンプルではないし、紙数の無駄

2013-11-21

http://anond.hatelabo.jp/20131121151139

グローバルな関数足す

DLLやSO作るときに、シンプルグローバル関数で逃げられるなら、別にシンプルグローバル関数の追加は有り。

何でもかんでもIDLとかやってられない。

 

メソッドやす

1度しかよばれない、汎用性の低い処理をわざわざAPI切って公開するな。他人が使わないものを公共の場に置かれても迷惑

 

private

protected virtualも検討してくれ。他人が使うことがある。

 

その他よくある。goto 使うな

ネストの深い帯域脱出goto使わないとかありえないし、関数内の例外エラー処理にtry-catch使うほうがありえない。よってgotoの方が良いケースも有る。

 

基本的にコーディング規約初心者を縛るもので、上級者になったら、コーディング規約例外ケースを知らないとダメ

想定外がない事ががないように、コーディング規約例外想定外の条件にコーディング規約に従っても仕方がない。逆に、そういうことを知らずにコーディング規約を語っても仕方がない。

2013-04-01

PHP13.4.1の新機能

PHP最新版がようやく正式に発表されましたね。新機能等について調べてみたので流行に敏感な人はぜひ今のうちから勉強しておきましょう。

下位互換性のない変更点

  • 「?>」の廃止

「?>」を積極的に使うことにより、余計なホワイトスペースを混入させてしまう問題がありました。

これは厄介で非常に根が深い問題でしたが、ようやく根本解決として廃止されました。素晴らしいですね。

今後「?>」を使うとコンパイルエラーとなるので注意が必要です。

機能

abstract文で囲うとそのコード自動抽象化します。

昨今抽象化抽象化特に意味もわから言葉だけ連呼する人間が増えてきました。しかし新PHP時代における抽象化はもはや人間が理解しなくてもできるようになります

$class = abstract {
    $人間 = array('name' => 'yamada', 'age' => 20);
    $佐藤 = array('age' => 20);
    $動物->name = '花子';
    $動物->type = '犬';
    
    function move ($a) {
        $a->position++;
    }
};

$class->move();

このような処理が、自動抽象化され再利用できるようになります。もちろんクラス抽象化だけでなく、手続きやデータ構造であっても適切に自動抽象化されます

またcatch文を繋げる事で抽象化に失敗した場合を検出することが可能です。

  • 強力な型チェック

php実行時オプションに強力な型チェックオプション(-compile)が追加されました。

$ php -compile example.php

そのスクリプトにおける全ての処理パターンを実行し、全ての型のチェックを自動で行います。その際、外部に影響を与えるような処理(ファイルへの保存等)は型チェックのみを行い無視されます

この強力な機能のおかげでもはや静的言語の利点といわれていたコンパイル時の型チェックを軽く超えました。

動的言語でありながら、考えられる全ての型の引数、例外系を全ての関数の組み合わせで網羅的にチェックします(しかもチェック時間は長くても0.数秒という驚異的なチェック能力です!)

これが今回の目玉機能でしょう。

theworld文で囲うとその間の時間が止まります

theworld {
    // 止まった時間の中を動けるのは$dioだけ
    $dio->foo();
    $dio->bar();
};

$dioという特殊変数が用意されているのでその変数を使って処理をすることができます

用途としては非常に重たい処理をさせるのがいいでしょう。実時間0秒で実行することが可能となります

ただし9秒までしか止められないので注意が必要です。ですが回避策として以下のようにすれば追加で5秒止めることも可能です。

theworld {
    $dio->foo();
    $dio->bar();
}
starplatinum {
    // 9秒過ぎた時点でこちらへ
    $jotaro->foo();
};


PHP 13.4.x で推奨されなくなる機能

名前空間(namespace)が非推奨になりました。これを使用するとE_NAMESPACE_YEN_ARIEHENという警告が発生します。

非推奨となった理由ですが明確にはされていません。大人の事情ってやつでしょう。

ただ噂レベルでは、やはりというか区切り文字の「\」がありえへんという声が多かったからではないか?と一部囁かれています

mandomキーワードが非推奨になりました。mandomはきっかり6秒戻すという機能ですが、逆に言うと6秒きっかしか戻せないので扱いづらいという問題がありました。

また以下のような処理を書いた場合に$flagバグ等で常に真になるケースにおいて無限ループとなり、非常に危険だという問題もあります

// 何かしらの処理・・・

if ( $flag ) {
    mandom;
}

このようにPHP初心者がmandom使って無限ループをさせてしまう事案が後を絶たず、なかなか現実時間が進まないという問題が発生したため、廃止予定となります

新しい関数

Google検索したコード小片取得し、実行させる関数

$mail = google_search_exec("メール送信するやつ",2);
$mail("user@example.com");

例えばこれだけでメール送信できるようになります

第一引数検索ワード。PHPというワードは自動で含まれるので指定する必要はありません。

第二引数検索結果一覧の指定位置。2だと上から二つ目検索結果のURLコード小片を使うという意味になります

また第三引数にはコールバック関数を指定することによりコード小片にフィルターをかけることも可能です。

このような処理がたった2行で書けるというのがPHPの利点ですね。

日本語名の関数が新たに追加されました。これは非常に便利な関数です。

$code = 写経("
$a = 1 + 2;
print $a;
");

引数に与えられたコード片を写経します。戻り値写経結果が返ってくるのでそれを利用するだけです。簡単ですね。

サッケード発生中における自動補完のための関数です。

この関数が呼ばれると一瞬処理が止まったように見えますが、実際には自動補完で動作が完了している状態になります

for($i=0;$i<10000;$i++) {
    if ( $i % 2 == 0 ) {
        chronostasis();
    }
    
    // 何かしらの処理・・・
}

素晴らしい機能ですね。今後はこれ無しじゃプログラムできなさそうです。

PCが爆発します。

用途ですが、言わずもがな流行の真契約プログラミング用ですね。アサートの代わりに使うとよいです。

function foo ($a) {
    pc_explosion(!is_null($a),'$aはNULLはダメー!');
    
    // 何かしらの処理・・・
}

テストコードを実行する場合PCの周囲に人が居ないか気をつけてから実行させましょう。




というわけで新しい機能てんこ盛りでしたね。

個人的に良いなと思ったのはpc_explosion関数ですかね。約束事を守らないプログラマーなんぞ爆死しちゃえばいいんです。僕を含めて(お

アーカイブ ヘルプ
ログイン ユーザー登録
ようこそ ゲスト さん