はてなキーワード: charとは
git → 「ギット」
ifttt → 使ったことがない
ieee → 「アイイーイーイー」
eth0 → 「イーサゼロ」
ptr → 「ポインタ」
bat → 「バッチ」
ahk → 使ったことがない
py → 「パイ」
rb → 「ルビー」
win10 → 「ウィンテン」
which → 「ウィッチ」
2021/04/25用
%:include <stdio.h> %:include <stdlib.h> %:define 三つ子と五つ子の協奏曲 main %:define ☯ ; %:define 環 while %:define 異名 typedef %:define 終焉 101 %:define 伝承(詩) printf(_Generic((詩), int: "%d\n", char *: "%s\n"), 詩) %:define 純白を漆黒に漆黒を純白に(色) (色 = 終焉 - 色) %:define 終わりは、斯く示された。 return 0 異名 int 無限整数の幻想を維持せぬ整数 ☯ 異名 char 世界の言葉を扱うには不十分な箱 ☯ 異名 void 虚無 ☯ 無限整数の幻想を維持せぬ整数 破滅の刻 = 終焉 ☯ 虚無 三つ子と五つ子の協奏曲(栞, 慈悲深き終身独裁者の注文) 無限整数の幻想を維持せぬ整数 栞 ☯ 世界の言葉を扱うには不十分な箱 **慈悲深き終身独裁者の注文 ☯ { 環 (0 <-- 破滅の刻 && 純白を漆黒に漆黒を純白に(破滅の刻) && ((破滅の刻 % 3) * (破滅の刻 % 5) ? 伝承(破滅の刻) : 伝承(破滅の刻 % 15 ? 破滅の刻 % 5 ? "Fizz" : "Buzz" :"FizzBuzz")) && 純白を漆黒に漆黒を純白に(破滅の刻)) ☯ 終わりは、斯く示された。 ☯ }
マジレスすると、U+00a5なら使える。俺なら設計を修正させるけど。
Path.GetInvalidFileNameChars メソッド (System.IO)
using System; using System.IO; namespace TestInvalidFileName { class Program { static void Main(string[] args) { // Get a list of invalid file characters. char[] invalidFileChars = Path.GetInvalidFileNameChars(); Console.WriteLine("The following characters are invalid in a filename:"); ShowChars(invalidFileChars); Console.WriteLine(); string fileName = '\u00a5' + "108"; using (var fs = File.Create(fileName)) { if (fs != null) { Console.WriteLine("File was created:" + fileName); fs.Close(); } else { Console.WriteLine("File was not created:" + fileName); } } } public static void ShowChars(char[] charArray) { Console.WriteLine("Char\tHex Value"); // Display each invalid character to the console. Array.Sort(charArray); foreach (char someChar in charArray) { if (Char.IsWhiteSpace(someChar)) { Console.WriteLine(",\t{0:X4}", (int)someChar); } else { Console.WriteLine("{0:c},\t{1:X4}", someChar, (int)someChar); } } } } }
The following characters are invalid in a filename: Char Hex Value (中略) ", 0022 **, 002A /, 002F :, 003A >, 003C >, 003E ?, 003F \, 005C |, 007C File was created:\108
IsNumeric Function (Visual Basic)
IsNumeric returns True if the data type of Expression is Boolean, Byte, Decimal, Double, Integer, Long, SByte, Short, Single, UInteger, ULong, or UShort, or an Object that contains one of those numeric types. It also returns True if Expression is a Char or String that can be successfully converted to a number.
ここは普通のことをいっている。 IsNumeric が True を返すのは以下のとき。
Indicates that no beginning value has been assigned to a Variant variable. An Empty variable is represented as 0 in a numeric context or a zero-length string ("") in a string context.
Empty は context にあわせて以下のように解釈される。
というわけで IsNumeric(Empty) は Empty が数値として解釈されて 0 になるので True を返す。
大学四回生の夏、下宿の扉に「出入禁止」とチョークで大書し、親を呼ばれて精神病院に連れて行かれた。
パソコンを買ってもらったのは小学三年生の冬だった。今でも覚えている。1996年12月2日のことだ。Windows95発売で世間は揺れていた。インターネット回線がうちに来たのは翌97年の1月、これはそこそこ早い導入だったと思う。さらに翌々年の99年にはケーブルテレビで常時接続になった。親には先見の明があったが、しかしパソコンには詳しくなかった。PC-8001も確かそうだ。親はこれが次世代の必需品になると確信して買っていたが、買った一方で使い道が分からなくてオブジェとして放置していた。親はPC-8001をパソコンだと言っていたけれど、僕にとってパソコンはおっきなテレビが標準で付属しているものだったし、マウスもなかったので、それがパソコンだとは到底思えなかった。でも親は言った。今度来るのは違うんだ、オフィスも入っているパソコンなんだ。僕は聞いた。一太郎っていうやつは入ってないの?テレビで言ってたよ、と。親は答えた。オフィスってのは一太郎より機能がスゴイんだよ。僕はへぇ、とだけ言った。どちらにせよペイントは入っているだろう。ペイントなら親戚の家で使わせてもらったことがある。パソコンはお絵かきができるのだ。マウスをカチカチして、キーボードをカチャカチャするのだけが楽しみで、納品の日を一週間ひたすら待った。その頃、漢字の宿題提出が滞っていて、そのままでは居残りでさせられることになっていた。僕は久々に奮起した。いつもは踏み倒していた宿題を、全部一気に終わらせた。家に帰るとパソコンが電気屋さんの手で設置されつつあった。今は亡き、ニノミヤで買われたパソコンであった。
97年にインターネットを始めた。一日一時間まで。実のところ電話代の問題ではなく、一時間ほど使うとブルースクリーンが発生するからだった。一日一時間以上動かすと壊れるから。PC-8001をキッチリ買った親なのに、それぐらいの(?)ITリテラシーであった。ただ別にそれを責めるつもりはない。僕はすぐにアングラサイトに入り浸った。人に飢えていたのだ。普通のチャットには人がいない。テレホタイムにならないと、誰一人ログイン氏亡いのだ。でも、アングラサイトなら四六時中書き込みがある。僕は思う存分厨房行為を楽しんだ。煽り騙りなんかは、小学生がやっても大人がやっても大して変わらないものだ。You is a big fool manという文句をリアルタイムで目にした人は、多くても数百人だっただろう。何千、何万のツイッタラーが押し寄せ、ブクマが1000以上付くような今の炎上とはほど遠い暢気さだ。当時の匿名掲示板とはそういうものだった。誰一人本気で投稿しなかったし、しかし誰一人面白くない書き込みをしようとはしなかった。トイレでもネタを考え、思いつけばすぐに投稿し、ワラタが付くのを待ち続ける。あやしい、あめぞう、あやしい、2ch。人の多いところから人の多いところへ。ワラタが多くもらえる場所へ。気づいたらインパクが終わっていた。
その一方で僕は中高一貫の私立校に入学していた。高校受験がないことから、ネット依存はさらに加速した。しかし2000年を境にアングラ掲示板は衰退の一途をたどり、2ch一強時代を迎えていた。1ch.tvをボコったりするなど楽しいネタがないわけではなかったが、匿名掲示板はネタの宝庫と言うより、本気でちゃんと議論することもできる場所になり始めていた。ちゃんと議論しようとしたらすぐさま崩しにかかるのが2ch隆盛以前の匿名掲示板文化であったが、2003年頃を境にはっきりと潮目が変わっていったように思う。まあその辺はどうでもいい。アングラと非アングラの境目は消え始めていた。
その狭間に、僕は生きていた。
自分で掲示板を設置することにした。けれども何をして良いのか分からない。CGIレスキューに救援要請をして本も買った。Perlだ。Perlしかない。しかしPerlがどうして動いているのかは、全く分からなかった。何十行、何百行もの文字の羅列が、どこでどうなって、掲示板になるのか。インタプリタ?コンパイラ?訳が分からない。そもそもCPUがどうやって動いているのかも分からない。僕にとってプログラムとは、セットアップウィザードでCD-ROMをギュンギュン言わせながらインストールするものであって、掲示板というものは、Teacupで借りるものだったからだ。でもどうやらそうじゃないらしい。コンピューターに翻訳するのがコンパイラです。さっそくコンパイラを使ってみましょう……
お手上げだった。
コンパイラがないのだ。コマンドプロンプトにはない。Linuxを入れる?使い方が分からない。Vine Linuxが初心者にお勧めだった頃の話だ。ボケッとしててもGNomeぐらいは動かせる程度には簡単になっていたが、そこからターミナルを開いてgccでコンパイルするなんて想像も付かないことだった。Hello, Worldはなんとか表示できても、それをGUIで動かす方法が分からない。僕はデスクトップに「Hello, World」のポップアップウインドウを表示させたかったのに。全然訳が分からなかった。
プログラムが動いている方法を知らなければならない。プログラミングを学ばなければいけない。しかし全体像を把握するにはあまりにもほど遠い……。絶望感が支配し始めていた。Hello, Worldはできたけれど、その先が全くわからない。どの参考書を読んでも分からない。ググってもググっても分からない。ポインタで躓く初心者が多いです!……どの本にも書いてあったけれど、僕はポインタどころか、変数の種類がたくさんあるところでお手上げだった。int?char?long???意味不明の文字列が並び続ける。メモリ?メモリって、挿したらいいんじゃないの?確保?fopen????どんなプログラミング言語も、何一つ分からなかった。その頃インターネットは加速し始めていた。切るのが当たり前だったJavascriptが復権し、Ajaxと名を変えてやってきた。掲示板スクリプトもどんどん高機能化し、もはやPerlを知るだけでは何一つできないようになってしまった。苦痛の日々が始まった。どの言語も、全く分からなかった。分からなければならないという焦りが募っていった。
あるとき、一年間ほど、とりあえずお手上げのままにしておくことにした。大学受験が迫ってきたからだった。そして案外あっけなくそれは終わった。僕は某大学の情報科学科に入った。
教授がガイダンスで説明したとおり、情報科学科のプログラミング演習はそれほど多いものではなかった。一回生の時なんか、キーボードを目で追って人差し指で打っている人もいるぐらいだった。学校の授業はアテにならない。そして大学受験でいったん引っ込んだ、とにかく十代でなにかしないと、という焦りが復活してきた。
大学のキャンパスは広すぎた。何をして良いのか全く分からなかった。授業内容はひどくつまらなく、何が役に立つのかも分からず、ただただ苦痛で、キャンパスでサークル活動に打ち込んで楽しく過ごせるほど社交的ではなく、かといってオタク集団に混じる勇気も無く、とにかく、とにかくここで四年間、四年間で何かしないと、何かしないと就職に間に合わない、大学院進学に間に合わない、十代のうちに何か大きな事を成し遂げなければならない。日々研鑽に励み、日々プログラミングスキルを磨き、日々勉強会に参加し、日々コードを書き、日々環境設定をし、日々本を読み、そして日々コードを美しく書かなければならない、そういう焦りだけがどんどん加速していった。大学の生協で片っ端からプログラミングの本を買った。ド初心者向けのPerl本から、美しいコードは何か、みたいな本まで。でも、どれ一つ、僕のスキル向上には役に立たなかった。プログラミングスキルの向上=自分自身の地位=生活の保障、と思っていた自分には、悪夢のような現実だった。
とにかくインターネットと一緒に歩んできた僕にとって、ITスキルはすなわち力であり、むしろITスキル以外は何の価値も持たないもの、と思えるほど脅迫的な観念にとらわれていた。入ってくる情報はさらに増えていった。Cができるのは当たり前、Ruby on Railsがアツい、Java、PHPはもちろんできるよね、MySQLは当然使えるよね、もちろんHaskell、Scheme、Objective-Cもやらなきゃね……何一つできないのに、習得すべき言語だけがどんどん増えていく。加えて美しいコードを書け!という文句が飛んでくる。クソッタレが。何が美しいコードじゃ。goto使ってもいいだろ。好きなだけ使わせろクソッタレが。全部getsで書いてやる。クソが。アルゴリズムアルゴリズム勉強会勉強会ビューティフルコードMacMacMacジョブズジョブズジョブズ……???????????????
それでもなんとか、そう、なんとかなった。友達が優秀だったのだ。僕には到底できないような、きれいに整理されたコードを書く人だった。聞けば在学中から外注のプログラマをやっていて、それなりに稼いでいたのだという。性格はちょっとアレで、風俗に勇気を出して行こうかどうしようか迷ったけどその金でオナホ買ってシコってオナホを床に叩きつけたみたいなヤツだったけれど、そいつからもらったコードを、わざと汚く成形し、変数名も汚らしくし、提出し、なんとかなった。結局自分で最初から最後までプログラムを作ることはできなかった。丸々コピペはしなかったけれど、コピペがなければ卒業は無理だっただろう。
そうして三回生の終わり、試験がどっと押し寄せてきた。一月のことだった。機械学習と……なんだっけ?そういう感じの試験が、2月の初日、行われることになった。三回生はただでさえ試験が多かったが、その大トリこそが機械学習だったのだ。
まるで意味が分からなかった。推論、それは分かる、機械学習?機械に学習??やっていることは数式だしベイズがどうの……まるで分からない。泣きそうだった。三年間必死こいて勉強したり勉強会に行ったりプログラミングスキルを上げようとしたり本を読んだり色々したのに、何一つ得るものは無かったのだ。僕はあやしいわーるどでオマンコ連呼していた頃から、何一つ成長出来なかったのだ。そしてそれは、間違いなく、疑いようがなく、自分のせいだった。自分の頭が悪いせいで。自分の勉強不足のせいで。自分のせいで……コンピュータとともに、十何年も育っていた僕にとって、コンピュータに関するスキルこそが、全ての力の基準だったのに、その全てを否定されたような気持ちだった。プログラミングができなければ、死ぬ。だって、友達はみんな就職して、SEになったりSIerで働いたりネットワーク管理者になったりしてるのに、僕はなんで、こんなところに。そいつらに取り残されるのに。みんな勉強会に出てMacを持ち寄ってハッカソンしてるのに。泊まり込みでプログラミングしたりしてるのに。なんで僕は、fgetsすらマトモに使えず、getsとscanfだけであなたの名前を入力してください オマンコ オマンコさん、こんにちは!みたいなプログラムしか書けないんだ。
大学四回生になった。研究室を選択する必要があったがしなかった。しないでは困るとのことで、適当に書いたらその一番上に配属された。でも一切研究せず、下宿に引きこもって何もしないをした。今日の輪講はここまで進みました!という報告が毎週回ってくるが、まるで研究室では日本語でなくアラビア語が公用語になっているのではないかと思えるぐらいの光景だった。この頃、近所の人の証言によれば、言動がおかしく、訪ねてきた人に暴言で返し、殺す殺すなどの声が聞こえ、時折モノを投げつける音が聞こえたりしたそうだ。まあよく知らない。僕は普通に何もせずぼんやりネットを見ていただけのような気がするけど。
それからしばらく経った。
結局僕は中退した。そして別の大学に入り直した。今度は、工学じゃない別の場所に。みんなキーボードの文字を読みながら指先でキーを叩いている。安心する光景だった。僕らはプログラミングを習わなくてもいい。これから習う必要も無い。タッチタイピングだって、できるに超したことはないだろうけど、できなくてもいい。ただ、そこにある便利なモノを使えば良いだけなのだ。Chromeを使っていて、うっかり開発者向けコンソールを開いてしまっても、何も分からなかったことにして閉じて良いのだ。きっとマクロを書けば、楽ちんに勝手にやってくれるような作業を、人の手で何度もやる。それでいいんだ。マクロを考えるために必死になる必要なんか無い。マウスで右クリック、コピー、ペースト。それでいいのだ。キーバインドすら覚えなくて良い。メモ帳を使ってもいい。viやEmacsのキーバインドを覚えなくてもいい。マウスも使えないようなエディタと格闘する必要は無い。Macを買っても、XCodeやportsを入れる必要は無い。iTunesでiPhoneを同期させて、音楽を聴くだけでいいんだ。
僕はもうプログラミングしないでいいんだ。
それが分かったとき、全てから解放されたような気がした。僕を苦しめ続けたプログラミングというものは消えてなくなった。パソコンでやる作業は、昔と一緒、匿名掲示板にオマンコと書き込むだけだ。それ以上のことをしなくてもいいんだ。勉強会に出てハッカソンする必要は無いんだ。プログラミングスキルを錬磨しないと死ぬなんてのはウソだったんだ。美しいコードを書かないと天罰が下るというのはウソだったんだ。毎日毎日はてブのホッテントリを見てると、プログラミングでマスターしなければならないこと、何何する方法、開発者必須スキル、便利ツール、Macでのアプリ開発、セキュリティ、通信、データベース、勉強会、ハッカソン、そういうもので溢れている。苦しくないのか不思議で仕方ない。もちろんプログラミングをしていて楽しい人もいるんだろう。けれど、僕みたいに、プログラミングという行為が苦痛で苦痛で苦痛でしかない人もいる。たとえ1000回の同じ操作でも、人力でやる方がマクロを書くよりも楽だという人も、ここに存在するのだ。そしてそのような人の存在も当たり前に肯定されるのだ。みんな苦しまなくて良いんだ。誰かが勝手にやってくれればいい。できる人にお金を渡して、僕らはそれを享受するだけで良いのだ。ここでプログラミングという言葉を連呼したけれど、コーディングという言葉との違いとか、そういうのを気にするような人とおつきあいする必要は無いのだ。いずれプログラミングは必須スキルになるとか言われて何年も何年も苦しみ続けてきた。けれど、そんなことをする必要は無いんだ。
それでぶっちゃけここからが本番なんだが、十代でなんとかしないと、という焦りはこないだの青木君の小四なりすましの話に似ている。僕もそうだった。僕らの世代だと登大遊氏なんかが結構輝いてて、ああいう感じにならなきゃ、と思っていた節はある。十代の時になにか成し遂げないといけない、そのためには誰かに認めてもらわなければならないという焦りは、どれくらいの「大人」に理解してもらえることなのだろうか?誰かの承認を得たいという承認欲求を、同じ世代の誰かを使って満たすことができず、むしろ同じ世代の誰かを一緒に引き連れて、承認欲求を満たしてくれる「教祖」にすがりつく。NPOの大学生が「承認」を欲し、政治家が「承認」を与えているのだ。AO入試用の作文?図?みたいなものも見かけたが、「私はリーダーシップがあります!」とか実にくだらないことしか書いていない。しかしそういうものでさえ、学生団体とやらは「承認」してくれる。結局、オウム真理教が丸ごと開けたポジションに、バラックが建ち並び闇市が行われていて、コミュニケーションで自然と得られるはずの承認欲求が、法外な札束で取引されている、そんな感じのような気がする。
意外にブクマが増えていた。PC-8001は俺が産まれる前に買われたもので、ずっとオブジェだったのだ。動くかどうかもわからない。テレビに接続するコードがなかったから。
多種多様なフレームワークやライブラリの使い方を覚えたりする必要ないから「言語を使えるようになる」ってのははっきり言って簡単だと思うよ。
でもCOBOLは色々大変だぜ?
以下の条件でプログラム作ってみ?ウンCOBOLの片鱗は味わえるかもね。
要件
入力ファイルA及びBのレコードのマッチングを行い、一致した場合はA又はBで持つコードに対応した値をマスタC、D及びEから取得して集計結果をファイルFに出力し、マスタから値を取得出来なかったレコードはファイルGに出力せよ。
作成上の制約
他にも色々あったけどもう忘れちった。思い出したくもねーけど。
彼らにはてなブックマークを楽しく利用してもらうにはどうしたらいいか、貴兄らの意見を聞きたい。
b:id:all-ovuvo-cantabile277
b:id:je-laime_cherche21160
全部で25バンド以上、部分的に見てレポでは割愛したバンドも含めると30バンドほど、死ぬほどライブをみた4日間であった。
ほとんどの演奏を前の方で踊りながら見ていたので、自分以上にカロリーを消費するフジロックの過ごし方はありえないのではないかというレベル。
ベストアクトは1日目Char、2日目Jurassic 5、3日目Toro Y Moiである。
これらのバンドはそれぞれ自分の中でカテゴリーが違うため3日間通しのベストアクトを決めることは不可能。
Charは職人、Jurassic 5はエンターテイナー、Toro Y Moiはアーティスト、といった具合だろうか。
詳細は長々と本編に書いたが、一日目は言語としての音楽、三日目はフィジカルなプレイとテクノロジーのバランスについて考えてしまうラインナップであった。
二日目は雨が辛すぎてそれどころではなかった…
朝は快晴。暑さで起床。日差しが辛い。
・ROUTE 17 Rock 'n' Roll Orchestra
池畑潤二率いるバンドに、ゲストとしてトータス松本・甲本ヒロト・大江慎也(ルースターズのボーカル)がゲストとして登場。
グリーンステージ一発目としてお祭りの始まりを飾るに相応しい、愉快なロックンロールバンド。
甲本ヒロトがYMCAを歌っていた時に物販列に並んでいたのが非常に悔やまれる。
社長はいつも通りガウンを羽織ってらっしゃって非常に暑そうだ。
バンド内で社長の役割は「アジテーター」となっているが、実際はサックスのエフェクターをいじってダブ風にしたりパーカッションをしたりとちゃんと他の仕事もしていた。
クラブ・ジャズバンドであるため、どうしても後に見たJazzanovaと比較してしまうのだが、Jazzanovaの方に軍配が上がるかな。人数で負けてるし。
だからといってカッコ悪いというわけでなく、むしろこの二つはクラブ・ジャズ頂上決戦くらいな感じなので、最高に踊れた。
トランペットの人がソロの後に酸素吸入器使ってて、管楽器って大変だと思ったよ。
・怒髪天
普通のロックンロール。ただでさえ暑いのにめちゃくちゃ暑苦しかった。
別に嫌いとかそういうわけじゃなくて、「ゴミ分別に参加してタオルをもらおうキャンペーン」列に並んでた時に聞いたので、暑いのが辛かったってだけ。
ちなみに、「ゴミ分別に参加してタオルをもらおうキャンペーン」に関しては、タオル目的に参加するとフジロックごみ問題について考えざるを得なくなるという良企画だった。
みんな、リサイクル食器は食べかすが残らないよう綺麗に食べよう。
モッシュピットでは若者ではなく、いわゆるエアジャム世代のオッサンたちが大騒ぎ。
今でしょ!と思い人生初ダイブに挑戦するも、うまく支えてもらえずしょっぱい感じで前から退場。
今回二番目に楽しみにしてたバンド。
ついにJacking the Ballを生で聞ける時が来たか!灼熱のオレンジコートに涼しい風が吹き抜ける!と期待が高まるが…
CD音源の方がよかった。てかライブなのに露骨に既成音源使いすぎなんだよ…これ以上何も言うまい。
折角二列目で聞いてたけど途中で後ろに下がってしまった。
Twitter見てたら「オッサン感動して泣いてしまったよ」みたいな人が複数いたが、これで感動はさすがにハードル低すぎorノスタルジー効果でしかない。
2月に来日公演を見逃したマイブラ、ついにお目にかかれました。
Twitterで小野島大さんが指摘していたが、最初は音が小さく迫力不足だった。なんだマイブラこんなものかと。
音量は徐々に上がっていき、最後の曲くらいになるときちんと轟音と呼べるレベルになったので、ノイズの波に包まれる感覚はちゃんと味わえた。
しかし音量は上がったとはいえ、全体的は音の解像度が低く、音のレイヤーが緻密に重ねられているCD音源に比べるとかなりお粗末なサウンド。
ケヴィン・シールズの後ろには10台ほどのアンプが並び、ギターも一曲一曲取り替えていたが、努力虚しくといったところか。
Only Shallowのイントロとかライブだとどうなるのか楽しみだったのにな。
最後の曲で「うおーノイズの雨だ!」とか思ってたら本当に雨が降り始めて、「これはマイブラの演出か!?ハンパねぇ!!」とか感動していたのだが、その後雨は笑えないレベルに。
後ろの方で見るハメになったが、後ろの人達の目的はCharaではなくテントの屋根。
静かな曲の時も、隣の外国人が大声で会話をしており勘弁してくれという感じだった。
しかし「やさしい気持ち」は一応聞けたのでよかった。
Charaの声は生で聴くと尋常じゃなくハスキーであり、s/n比が大変なことになっていた。
もはやノイズボーカルといっていいレベルであり、非常階段のシャウト担当の人を思い出す。
「やさしい気持ち」サビでは絞りだすような歌い方がさらにノイズ成分を増していて、音程とかいう世界をもはや超越していた。。。
これは是非ライブで聴くべき。前で聞けなかったのが悔やまれる。
参考動画:https://www.youtube.com/watch?v=EoUSERsC8VI
先日見た初音ミクオペラTHE ENDと同じ舞台構造で、背景のスクリーンと前面にある半透明スクリーンの間にDJブースがあるという構造。
このVJがすごすぎて、ちゃんとみんな音楽聞いてなかったんじゃないの?と思うレベル。
印象的だったのは、インテリジェントなサウンドと裏腹に、フライング・ロータス本人がかなり頭悪そう(いい意味で)でハイテンションなアジテーターだったことw
無駄に「オキナワー!キョウトー!インザマザファカ!」とか叫んでた。
・Char
迷うことなく1日目のベストアクト。
ライブはなんとノープラン。Charが友人ギタリスト及びフジロックで出会ったギタリストを順番に招いてひたすらジャムセッションしていくというもの(なんと二時間半も!!)。
ギターを少しでもかじったことがある人なら感動せざるを得ないライブだった。
Charはそれぞれのゲストとギターで会話。必要な言葉は「キーはDで!」というセリフのみ。
ギターでの会話にはきちんとシンタックスがあり、方言もあった。
奥田民生のソロの後にCharが「おっ、ギターも広島弁だねぇ」と言ったのが印象的。
フジロック当日に初めて会ったEddie Roberts(The New Masteroundsのギタリスト)はファンクギタリストであり、Charはブルースギタリスト。
ジャンルの違いは方言の違いのようなものであり、お互い歩み寄り会話を成立させていく様には全てのギター小僧が感動したことだろう。
Char本人に関して言えば、立ち居振る舞い、声、ギター、何をとっても最高にかっこいい不良中年だった。
ライブ中にタバコは吸うわ、ビール缶を蹴って客席に飛ばすわ、そんでもって58歳にもなってビールを口から友人に噴きかけるやつなんてCharくらいのものだ。
そして、Charはゲストたちだけではなく観客との掛け合いも忘れない。
「そろそろ声出しとく?」とライブ中何回もコールアンドレスポンスをはさみ、雨でずぶぬれになった観客たちの体を温めてくれた。
最後はWarの「Cisco Kid」の替え歌で、全てのギタリスト総出で「Fuji Rock Kid」を演奏。
我々観客はサビで「Fuji Rock Kid was a friend mine」と大合唱。
裏でやってた(どちらかと言えばCharが裏だが)ナイン・インチ・ネイルズも少し気になったが、Charを選んで本当によかったと思えるライブだった。
佐藤タイジと奥田民生はハードロック、鈴木賢司はエレキシタール、Eddie Robertsはファンク、CHABOとCharはブルースという、もう本当に異種格闘技戦だったわけで。
Char×Eddie Robertsなんてもう二度と見られないだろう。
ピラミッドガーデンという辺境の地でしかも深夜ということもあり、夕方のCharaとは対照的にセレクトされた客層。
どれくらい辺境かというと、メインステージがある方向と反対方面にテントサイトから徒歩20分というレベルなのだが、この場所は勝井さんたっての希望らしい。
まずは勝井祐二×U-zhaanの即興演奏。先ほどのCharとはシンタックスこそ異なれど、これまた達人同士による会話が繰り広げられる。
多分彼らは無限に会話を続けられるだろう。こうした即興演奏を見ると、もはや曲という概念がよくわからなくなってくる。
青葉市子はポンチョにサングラス、箒を振り回しながら登場し、その場にいた全員を困惑させる不思議ちゃんぶり。
青葉市子は弾き語りの音源とライブを聞いたことがあったが(翌日にも見た)、そこにエレキバイオリンとタブラが加わるとさらに素晴らしい曲に仕上がっていた。
最後はその日が命日であったrei harakamiとU-zhaanが共作した「川越ランデブー」を勝井祐二、U-zhaan、青葉市子の三人で演奏。
大げさな言い方だが、即興演奏の達人たちはもはや死者とも会話していた。
といってもシリアスな感じではなく、曲はむしろU-zhaan特有なシニカルなユーモアあふれるものだった。
後からYouTubeで原曲を聞いたが、歌の部分は青葉市子が歌う方が可愛げがあっていいと思う。
しかし、斎藤牛蒡店は自らのやばさに気づいてないあたり、U-zhaanよりもさらにやばい。
参考動画:https://www.youtube.com/watch?v=NICEXdZ2s3o
勝井さんの演奏を見るのはこれで4回目だが、毎度毎度違った印象だ。
もしかすると、連結リストの各ノードに保存するcharなどのデータのかわりにポインタを入れればいいだろう、という話なのかもしれませんが、それだと「入れ子」とは言わないでしょうし。
プログラムはclassに記述します。たとえばSampleという名前のclassを作る場合、Sample.csファイル内に次のように書きます。(C#の場合、ファイル名とクラス名は同一でなくても良い。複数のクラスを書いても良い)
public class Sample { }
プログラムはclass内のMainメソッドの先頭から実行されます。Mainメソッドは次のように書きます。
public class Sample { public static void Main( String[] args ) { // 処理を書く } }
Console.WriteLine( "Hello world" );
コメントです。
// 一行コメント /* 複数行コメント */
// 変数 int num;
データ型です。C#のデータ型には値型と参照型とがあります。以下は値型のデータ型です。
// int(整数)型 int num; // char(文字)型 char c; // float(単精度浮動小数点)型 float val; // double(倍精度浮動小数点)型 double val; // bool(論理)型 bool flag; // DateTime(日付)型 DateTime date;
以下は参照型のデータ型です。
// String型 String s; // 配列型 String[] array;
プログラムをコンパイルするには、コマンドラインで以下のようにします。
csc Sample.cs
プログラムを実行するには、コマンドラインで以下のようにします。
Sample.exe
mono ./Sample.exe
int、float、double型の変数に数値を代入できます。int型には整数だけ代入できます。float、double型には整数でも小数でも代入できます。
int i = 2; int i = 100000000; float num = 1.234f; double num = 1.234;
四則演算です。
num = 1 + 1; num = 1 - 1; num = 1 * 2; num = 1 / 2;
商の求め方です。割る数と割られる数が両方とも整数の場合、計算結果の小数点以下が切り捨てられます。
num = 1 / 2; // 0
割る数と割られる数のどちらかが小数の場合、計算結果の小数点以下が切り捨てられません。
num = 1.0 / 2; // 0.5 num = 1 / 2.0; // 0.5 num = 1.0 / 2.0; // 0.5
余りの求め方です。
// 余り mod = 4 % 2
インクリメントとデクリメントです。
// インクリメント ++i; // デクリメント --i;
String str = "abc";
// 結合 String join = "aaa" + "bbb"; // 分割 String[] record = "aaa,bbb,ccc".Split( "," ); // 長さ int length = "abcdef".Length(); // 切り出し "abcd".Substring( 0, 2 ) // abc // 検索 int result = "abcd".IndexOf( "cd" ) // 見つかった場合はその位置、見つからなかった場合は-1が返る
配列です。
// 配列の宣言 int[] array;
配列の生成です。配列の生成時には要素数を指定するか、初期データを指定します。
int[] array; // 要素数を指定して配列を生成 array = new int[5]; // 初期データを指定して配列を生成 array = new int[] { 1, 2, 3 }; // 宣言と同時に配列を生成 int[] array2 = new int[5];
配列の要素の参照と代入です。
// 要素の参照 array[0] array[1] // 要素の代入 array[0] = 1; array[1] = 2;
array_num = array.Length;
int[] from = new int[] { 1, 2, 3 }; int[] to = new int[5]; from.CopyTo(to, 0);
if文です。
if ( 条件 ) { }
if ~ else文です。
if ( 条件 ) { } else { }
if ~ else if文です。
if ( 条件 ) { } else if ( 条件 ) { }
while文です。
int i = 0; while ( i < 5 ) { // 処理 ++i; }
for文です。
for ( int i = 0; i < 5; ++i ) { // 処理 }
int[] fields = new int[] { 1, 2, 3 }; foreach (int field in fields) { // 処理 }
C#では関数をメソッドと言います。メソッドを作るには次のようにします。戻り値を返却するにはreturn文を使います。
static int sum( int num1, int num2 ) { int total; total = num1 + num2; return total; }
ファイル入出力です。ファイル入出力を行うには、プログラムの先頭に以下を記述します。
using System.IO;
以下がファイル入力の雛形になります。ファイルのオープンや読み込みに失敗した場合、catch節に処理が移ります。
String filename = "text.txt"; StreamReader reader = null; try { reader = new StreamReader(filename); String line; while ((line = reader.ReadLine()) != null) { } } catch (IOException e) { // エラー処理: } finally { if (reader != null) { try { reader.Close(); } catch (IOException e) { } } }
またはC#ではusing ステートメントと言うものがあり、この様にも書ける
String filename = "text.txt"; using (StreamReader reader = new StreamReader(filename)) { try { String line; while ((line = reader.ReadLine()) != null) { // 読み込んだ行を処理 } } catch (IOException e) { // エラー処理: } }
usingをつかうとCloseがなくなったことからわかるようにusing(){}を抜けるときに自動的にDisposeメソッドを呼び出し、オブジェクトを廃棄する。その分コードがスッキリするが、使いにくい場面もあるので考えて使うこと。
以下がファイル出力の雛形になります。ファイルのオープンや書き込みに失敗した場合、catch節に処理が移ります。
String filename = "text.txt"; StreamWriter writer = null; try { writer = new StreamWriter(filename)); writer.WriteLine("abc"); writer.WriteLine("def"); writer.WriteLine("fgh"); } catch (IOException e) { // エラー処理: } finally { if (writer != null) { writer.Close(); } }
こちらもusingを使って書ける。が、割愛する。
C#でよく出てくる知っておいたほうがよい文法の一覧です。
繰り返し文の途中で抜けるにはbreak文を使用します。
for ( i = 0; i < 5; ++i ) { if ( 条件 ) { break; // 条件を満たす場合、for文を抜ける。 } }
残りの部分処理をスキップし、次の繰り返しに進むにはcontinue文を使用します。
for ( i = 0; i < 5; ++i ) { if ( 条件 ) { continue; // 条件を満たす場合、残りの部分処理をスキップし、次の繰り返しに進む。 } }
例外を投げるにはthrow文を使用します。
throw new Exception( "Error messsage" );
try { // 例外が発生する可能性のある処理 } catch ( Exception e ) { // 例外発生時の処理 }
■ C
for( const char *s="12345"; *s; ++s ) if( '2'<*s&&*s<'5' ) printf( "%d", (*s-'0')*2 );
console.log([1,2,3,4,5].filter(function (i){ return (i > 2 && i < 5 ); }).map(function(i){ return 2 * i; }));
■ Python
print(map(lambda x: x*2, filter(lambda x: x>2 and x<5, [1,2,3,4,5])))
■ Ruby
puts [1,2,3,4,5].select{|i| i > 2 and i < 5}.map{|i| i*2}
■ C#
new{}{ 1,2,3,4,5 }.Where(x => 2 < x && x < 5).Select(x => x*2);
(print (loop for x in '(1 2 3 4 5) if (< 2 x 5) collect (* x 2)))
■ Haskell
print [x*2| x <-[1,2,3,4,5], x > 2, x < 5]
■ J
■ R
print((function(){x<-c(1,2,3,4,5);x[2<x&x<5]*2})())</p>
■ Clojure
(print (for [x [1,2,3,4,5] :when (< 2 x 5)] (* x 2)))
(1 to: 5) select: [:x | x between: 3 and: 4] thenCollect: [:x | x * 2]
スマートポインタは、ここで言われている アドレスの参照指定としてのポインタじゃないよ。単なるコンテナ。名前にポインタってついてるからといって、いわゆるポインタじゃない。分類的にはコンテナ。
std::tr1::smart_ptr<std::vector<char> > hako(new std::vector<char>);
の3種類があった時に string型も ポインタを代入しているが、 ポインタとは呼ばないだろ。コンテナと呼ぶ。
記法上 new を呼び出すが、 それが嫌なら、そういうコンストラクタ書いてもいいしな。
str++ とか str-- str+n という記法=アドレス参照 ができるが
スマートポインタは そういう使い方はしない。 あくまでも指定されたオブジェクトを管理するだけ。
たいていの使い方をする場合に、参照カウンタの増減なんて手動ではしないから。(というか、ポインタがわからない奴がするな コピコン使え という設計方針でいいとおもう)
でも何か馴染みにくい。
char *a; があるとしよう。
この時作られたのは変数aなわけ。*aじゃないよ。
char *mes1 = "はろー";
char *mes2 = "ぐっどあふたぬーん";
char *mes3 = "ぐっもーにん";
データがいくつかあるなぁ。
何表示しよっかなー
printf("%s\n", a);
最近はもう STLもあるしBoostもあるから ポインタを使うという事自体がレアケースなんじゃねーか?正直もうデフォルトでは教えない。でもいいと思うよ。
ぶっちゃけ、ポインタを理解できない奴にポインタを触らせるな。というのが現場での共通見解。
むしろ、constとexplicit と 参照を厳密に使えるようになれって方がよほど重要。
引数でconst char * とか const vector<T>&とかくところを それぞれ char * とか vector<T>とかかかれると
お前待て って話 の方がよほど重要。
あと ポインタっていつ使うの?って 正直 高速化とかのチューニング以外ではもう使わないと思う。
listとかvectorとかを再発明するぐらいなら、大抵の場合はSTL使えよと。 逆にSTLじゃだめ Boostじゃだめとなったら、ポインタの必要性を知ってからポインタ学ぶからいんじゃね?