So-net無料ブログ作成
検索選択

ネットで囀る人たち。 [徒然]

よく奴らはガイジだとか、ちょっとどうしようもないことを言うのであるが、そんなの程度は違えど相模原で障害者を皆殺しにした奴と何の違いがあるんだと思う。

最近はあまり聞かなくなったが、情強情弱とか言っている奴もいたな。自称情強は少し程度使い方を知っているだけで、それを生活できるほどの金に換えられるかと言われたら、全然できないヘタレだろう。

どうでもいいが、自分が大したこともないのにネットで声高に叫んでいる奴は、現世界ではどうしようもないやつなんだろうな。だからこそのネットなんだろうけど、たまに簡単に飛び越えて犯罪行為をしてしまう人も多い。黙っていればいいのに、自分のやんちゃぶりを動画に挙げて発覚して捕まるとか馬鹿げている。松本伊代と早見優の線路写真ぐらい馬鹿げている。犯罪行為を自分で喧伝せんでも良かろうに。

右翼もよく見かけるけど、朝日新聞をやたらやり玉に挙げるのは大体右翼だよな。基本的に日本は左翼系のメディアって新聞では朝日新聞ぐらいしか見当たらないからなぁ。だから朝日新聞をけなす人は信じないことにしている。まぁ朝日新聞が非常に素晴らしい新聞だという気はさらさらないのだけれど、右翼系の新聞よりかはいくらかましだろうとは思う。保守的な生活をしていて何が面白いのか。あまり不安定ってのもまずいけれども。


自分も現実の溜飲を下げているところもあるのだが、リア充ぶりを見せつけるってのも趣味がいいとは言えないな。というか、リアルで充実しているならネットでひけらかす必要なんてないじゃん。そんなんだからSNS疲れとか意味の分からない状態になるんだよな。必要以上に自分をよく見せたところで、実際を見た時にがっかりするだけでしょ。厚化粧と一緒で他人が好むことは少ないんですよ。別に本人が満足しているんだったらいいけど、結果的に悪い方向に行っていることも多いのでできればやめた方がいい。

そんなわけで、これからもプログラミング主体に文句を書いていきますよ。やっぱりプログラミングの世界も人間が関わっているから、いいことばかりではないのだけれど、現実と同じように素晴らしいことも存在するからやめられないんだよなぁ。それに関われるってのがうれしいというか。

コメント(0) 
共通テーマ:日記・雑感

Twitterまとめ投稿 2017/02/15 [Twitter]


コメント(0) 

カスパラでもSSD高かった。 [ハードウェア]

SSDが高いと言われていた今日ですが、近くのドスパラに行っても高かった。ネットでは他の店ほど高くなかったんだけどな。ドスパラは値下げが遅くて、値上げが早い。なんつーか、ネットで買った方がいいんじゃないかと思うんだけど、それはそれで面倒だからやってない。

Macに付けたCrucialの525GBも買ったときから数千円高くなっている。たった数か月で乱高下するってのはRAMと大して変わらないな。まぁ作り方というか半導体のチップであるという点では同じではあるのであろうが、流せば売れるという状況になってきたんだろうね。HDDもそこそこ変動が大きかったけどSSDほどじゃなかった気がするしね。どちらかというと、RAMの方と同じなんだろうなと思う。だってHDDって基本的に値下がりしかしないものだったからね。洪水で高くなるということがあったけれども、それは非常にまれな例だったわけで。

帰ってきてヨドバシのサイトを見てみたけどやっぱり高い。為替の影響を受けやすいパソコンパーツだけれど、SSDもメジャーになって在庫が増えてもダメなときはダメだな。それにしてもSSDは大容量化と低価格化が激しかったなぁ。やっぱり買う人が多くなれば安くなるという定番の法則が働いているのね。

そんなこんなでしばらくはパソコンが直せない状態になっているのでした。それにしても壊れるのもタイミングが悪いよな。そういう星の下に生まれたのだろうなぁ。240GBでいいから前ぐらいの値段のレベルまで落ちてほしい。たくさん容量はいらないから。だけど128GBくらいではちょっと心もとないんだよね。前壊れたSSDの容量でもあるし、もちっと余裕をもって使いたい気はしている。

高くなるのも速ければ安くなるのも速い、という状況になってほしいものですね。買うのに踏み切る勇気が必要だけれど、どっちにしても安くなっていく方向性は変わらないのだし。それにしてもSSDはもはやSATAでは遅すぎてPCIeの世界へ踏み込もうとしているわけで、2.5インチのフォームファクタもそんなに長生きできないんじゃないかと思ったり。SATAは長くても取り廻せてよかったんだけどな。高速化が進むとそうもいかなくなるわけですわな。SATAの前のIDEが長さ制限を食らったように、マザーボードにピッタリ付かないといけなくなるのは仕方がないのかもしれない。


コメント(0) 
共通テーマ:パソコン・インターネット

Twitterまとめ投稿 2017/02/14 [Twitter]


コメント(0) 

ADATAのSSDが死んだ。 [ハードウェア]

Windows10が立ち上がらないなぁと思っていたら、システムディスクにしていたSSDが死んでいた。A-DATAはRAMでは散々お世話になったが、SSDとかフラッシュメモリ関係ではいいところがない。SDカードで写真を撮ってるときにエラーが出たからなぁ。というか、カメラでエラーが出たのは後にも先にもそれが最後ですよ。ADATAはRAMは作るのが慣れていたけれど、フラッシュメモリはあまり得意じゃないのかもな。


まずWindows10がデスクトップ画面までにはいくのだが、そこからうんともすんとも動かない。Windows10を再インストールしようとしたのだけれど、それも途中でエラーが出て止まる。でも、一応は動いているのだから、完全に死んではいないのだが。ディスクチェックをかけたものの途中で凍りつく始末。再起動して勝手にSSDのディスクチェックが始まったのだけれど、それも一日中かけても終わらない。

らちがあかないので他のWindows10マシンのSATAケーブルに繋いでディスクチェックをかけてみる。GUIでチェックをかけて止まる。コマンドプロンプトを管理者権限で立ち上げて、chkdskをかけたがOSごと途中で止まる。かなりクリティカルなエラーが発生しているみたいだ。

もしかしたらWindows10だけの問題かもしれないから、Windows7のマシンにSSDをつけてみると、同じようにブート時にディスクチェックを勧められた。でも、途中で止まることなく動いている途中だ。やたらダラダラ出るメッセージには

File record segment xxxxx is unreadable

と書いてあって読めないらしい。ただ単にWindows7がWindows10のファイルシステムを読めない可能性もなくはないが、それだったら中のデータを救えなくてもSSD自体をWindows7に引き続き使えそうな気もする。


と思ったら、Windows7で起動時にチェックを数回行って直ったと思ったら、付けてWindows7が起動しなくなった。いよいよ故障も甚だしくなったな。もう使えないので期間内だったら取り替えてもらおうとしたけど、ちょうど3年の保証が2か月ほど過ぎていた。本当は三年以内だったのかもしれないけど、そんなに寝かしておいておくものでもないだろうから箱に書いてあった日付を信じよう。というか、レシートどこにあったっけかなぁ。自営用の税金対策に残しておいてあるとは思うんだけど、もう自営はあきらめたのでどこかにしまっちゃったんだけど忘れた。

メーカー保証も切れて改めて買わないといけなくなったわけだが、ソニータイマーじゃないんだから3年と数か月で壊れるかなぁ。それにしてもタイミングが良すぎる。とりあえずドスパラとADATAのフラッシュメモリの組み合わせは今後止めようと思ったのでした。

コメント(0) 
共通テーマ:パソコン・インターネット

Twitterまとめ投稿 2017/02/12 [Twitter]


コメント(0) 

Swift3でNSOpenPanelをmodalで開く [プログラミング]

時間ねーので適当だが動くでしょう。前回はモードレスなダイアログだったので、いろいろ問題がある人はあるんでしょうから、今度はモーダル。

それにクロージャ(たぶん)の中に、処理をゴリゴリたくさん書いていくのも綺麗じゃないし、外出しするとなんかよくわかんねーエラーが出てたのでやめた。
Call to method 'なんとか' in closure requires explicit 'self.' to make capture semantics explicit
とか
Missing argument label 'file:なんとか' in call cloursure
とかな。めんどうくさいので。

以下前回。

http://miff.blog.so-net.ne.jp/2017-02-08-2

今回はAppleへの文句は垂れない予定。
以下サンプルソース。部分的だが許して。大体必要なものはあると思うし。

	let openPanel = NSOpenPanel()
	openPanel.canChooseDirectories = true	// ディレクトリを選択
	openPanel.canCreateDirectories = false	// ディレクトリを作成できない
	openPanel.canChooseFiles = false		// ファイルを選択できない
	
	let num = openPanel.runModal()
	if num == NSFileHandlingPanelOKButton{
		for fileURL in openPanel.urls {
			let filePath = fileURL.path
		}
		NSLog(filePath)
		
	}else if num == NSFileHandlingPanelCancelButton{
		NSLog("Canceled")
		return
	}

これでファイルパスは取れるでしょう。取れなかったらSo-netのアカウントとって下のコメントで聞いてくんな。わかんねーかもしれないけどな。




そんで欲しいディレクトリをほげほげしたいわけだが、
directoryHogehoge(filePath)

NSLog(filePath)
あたりに置くのだけれど、関数の宣言がちと気持ち悪い。どういう意味があるのかわからないのだけれど

func directoryHogehoge (_ path :String){
}

となぜかアンダーバーを置かないといけないみたいだ。なんだろう。ボタンとかをつなげて作ってくれる自動的にできるソースも
@IBAction internal func hogehoge(_ sender: Any)
みたいに_がついてる。

ここで登場

もっとスマートな音楽の埋め方はないのかw
IMG_4586.JPG
買っちゃいました。アマゾンは本は昔と同じ送料無料だったのね。
にしても地面がきたねーなおい。ブツ撮りは背景が綺麗じゃないと話にならないけどこの際気にしないw


この本のP.109に外部引数名と内部引数名があって、外部引数名を省略するときにアンダーバーを付ける、と。
func hoge(naibu1: Int, gaibu naibu2: Int)
ってこんな感じで。第一引数は外部も内部も兼用、かな。

呼ぶ時には
hoge(naibu1: 5, gaibu:6 )
みたいによく見かける key:value な感じの書き方になるようです。

ややこしいことに、二つ目の外部引数を付ける時は、一つ目の外部引数は省略可能。第一引数の省略を省略しないで書くと

func hoge(_ naibu1: Int, _ naibu2: Int)

と書けて
hoge(1, 2)
とできる。まぁ普通だよね。C言語っぽいよね。どうせなら第一引数も名前使った方が気持ちよかろうにと思うんだけど…。そこいらはObjective-Cに習ったんだろうか。互換性をつけるために。

下記のコードをPlayGroundとかで実行すると、まぁそうだよね、という無駄な「1+2=3」が計算できる。

//よくある第一外部引数省略バージョン
func hoge(naibu1: Int, gaibu naibu2: Int){
	print( "\(naibu1) + \(naibu2) = \(naibu1 + naibu2)" )
}

//両方とも省略して、C言語っぽい呼び方をできるバージョン
func hogehoge(_ naibu1: Int,  _ naibu2: Int){
	print( "\(naibu1) + \(naibu2) = \(naibu1 + naibu2)" )
}

//どうせなら第一引数から全部やった方が気持ちよかろうバージョン
func hogehogehoge(gaibu1 naibu1: Int, gaibu2 naibu2: Int){
	print( "\(naibu1) + \(naibu2) = \(naibu1 + naibu2)" )
}

hoge(naibu1:1, gaibu:2)

hogehoge(1,2)

hogehogehoge(gaibu1:1, gaibu2:2)

何が言いたいかと言うと、初めの引数がなんとなく気持ち悪いってこと。でも、多くの人がそう書くだろうから無駄に混乱しないようにと言う話。たぶんこれはObjective-Cのオブジェクト指向部分の書き方が悪いんだろうと思われ。Obj-C動くようにしか書いてないから、実際は違うかもしれないけど。


ありがとう、本よ! Webがあっても本で得られる滋養って違うものがあるよね。

Swift実践入門 ── 直感的な文法と安全性を兼ね備えた言語 (WEB+DB PRESS plus)

Swift実践入門 ── 直感的な文法と安全性を兼ね備えた言語 (WEB+DB PRESS plus)

  • 作者: 石川 洋資
  • 出版社/メーカー: 技術評論社
  • 発売日: 2017/02/07
  • メディア: 単行本(ソフトカバー)


この本はかなり硬派です。すぐにSwiftでアプリを書きたいって人には向いてません。

タグ:Swift3
コメント(0) 
共通テーマ:パソコン・インターネット

Twitterまとめ投稿 2017/02/11 [Twitter]


コメント(0) 

Twitterまとめ投稿 2017/02/09 [Twitter]


コメント(0) 

Swiftのサンプルコードがさっぱり動かない(NSOpenPanel) [プログラミング]

動かないどころか、コンパイルさえ通らない。最終的には動かしたんだが…。

Swift自体とライブラリ変えすぎなんじゃない?
半年前のサンプルソースが動かないとかどうかしてるよ。アップルらしいといえばApple純正ソフトらしいけどw。


Swiftの文法に近づけようとしすぎて、CocoaとかのObjective-Cの関数などの名前からも乖離している。ちょっと頭がおかしいのではないか。

Xcodeも勝手にコンパイルしてくれるので、ガタガタして落ち着かない。すごく気持ち悪い。Obj-Cでもここまでおかしくなかったぞ。そもそもの文法が分かっていないのも問題だけど、その程度は大体はサンプルソースを見ながらだったら普通はいける。コンパイラのエラーで大体わかる。だけど何が悪いか見当がつかない。

Obj-Cではdeprecatedなものでも動いてくれはするが、Swiftではもはやコンパイルすら通してくれない。静的言語としてはこれくらいで当然なのかもしれないけど、Obj-Cよりはサクサク書けるものだと思っていた。ちょっとこれはひどくないか。他の言語を渡り歩いてきたけど、Webのサンプルソースさえ少しの手直しで動かない言語ってなかなかないぞ。

NSOpenPanel.begin(completionHandler:)
がやっと動いた。ほぼスケルトン状態にしてやっと文法的に正しくなった。
もともと、どこかから奪ってきたソースがbeginWithCompletionHandler()だったから、ちょっと変えるだけだったけど、何でこんなにも問題が起こるのかわからないくらい他のところでエラーが出て今はコメントアウトしている。


問題はXcode8でSwift3に変わっているらしいこと。
 https://developer.apple.com/swift/blog/?id=36
具体的な内容は
 http://artteknika.hatenablog.com/entry/2016/11/01/192942

「Swift側の標準ライブラリ(?)に即したような形で、ライブラリの変更が行われている」+「文法の変更、又は廃止」。廃止されると全く通らなくなるので困るね。というか、よく考えられた言語だと、バージョン間の変更も穏やかなんだけど、クソみたいにみんなが集まってきちゃうと、Python2.6, 2.7, 3系統みたいな状態になってしまうってことだろう。賢い人ばかりだといいけど、そうじゃないのが世の常。


とりあえず何もできないけど、ディレクトリ選択ダイアログだけは出るぜな状態。Swiftの文法何もわかってやしない感じw。これからこれから♪ 少なくともObjective-Cの機能は別の書き方で残っているはずだ。
	let openPanel = NSOpenPanel()
	openPanel.canChooseDirectories = true // ディレクトリを選択
	openPanel.canCreateDirectories = false // ディレクトリを作成できない
	openPanel.canChooseFiles = false // ファイルを選択できない
	
	openPanel.begin(completionHandler: { (num) -> Void in
		if num == NSModalResponseOK {
			NSLog("Open")
		} else if num == NSModalResponseCancel {
			NSLog("Canceled")
		}
	})

もしかするとXcode9ぐらいには動かなくなってるかもねw。でも、一応8.2で動くはず。というか動いている。



よし、最後までやってディレクトリを取ってみましょうか。NSLogにパス吐き出すだけですけど。NSURL関係も変わってしまっているらしいな。あぁ面倒くさぁ。

	openPanel.begin(completionHandler: { (num) -> Void in
		if num == NSModalResponseOK {
			for fileURL in openPanel.urls {
				let filePath :String! = fileURL.path
//					let decoadedPath :String! = filePath.stringByRemovingPercentEncoding  // 日本語ファイルの場合
				NSLog(filePath)
			}
		} else if num == NSModalResponseCancel {
			NSLog("Canceled")
		}
	})

元々のソースには日本語パスのデコードがあったのだけれど、最近はUTF-8とかで管理されているだろうから気にする必要がなさそうな気がするんだけどね。ともあれ、システムの日本語表示されるディレクトリは英語の代替文字があったりする。というか、日本語の方が代替文字なんでしょう。「デスクトップ」とか。

あと複数ファイルを選択してないから、for inで回す必要はないのかな。あとファイルパスはletにする必要があるのだろうか。普通に考えるとvarとかだよな。いまいちSwiftの常識がわかってない。


とりあえず、エラーの傾向はわかった。変数が使われない時はワーニングを吐く。これは最近のコンパイラの常識なのかな。昔はモノによって出たり出なかったりしてたけど。あとdeprecatedな関数はコンパイルエラーが出て、代替関数が提示されるので変えるしかなさそう。

Obj-Cとかやたら古いdeprecatedな関数でも使えたりするんだけど、そういう保証しませんという立場から、放棄するから使えませんに変わっていくのかな。まぁ変な挙動がなくなるのはいいかもしれないけど、環境を変えるごとにコンパイルエラーとかを吐かれたんじゃたまったものではない。まだワーニング程度ならまだしも。それもApple側のつまらない細かい変更に対応しろということなんだろうな。どんどんAppleの開発者のエゴが反映されていく。そんなの一般的な開発者の方は望んじゃいないんだよ。Obj-Cのライブラリの運営が今よりまともだったのは、NeXT社のエンジニアが入っていたからじゃないかなと思わせる。

ともあれ、基本的にシステムに近いAPIはdeprecatedにすべきものではないという事はMicrosoftの技術者でさえ少しはわかっている。まだライブラリのバージョンというか名称を変えてしまうぐらいのものだとしたら別に仕方ないと思うけれどそうじゃないもんなぁ。Xcodeを初期から見ているものとしては暗雲立ち込めているとしか見えないんだがw。まぁSwiftのライブラリと言語仕様が固まるまで待つしかないのかもしれない。


よく「もうObj-Cなんて古いからSwiftでしょ」なんて文句を聞くんだけど、この状況を見るとObj-C + ARCを使っている方がずっとマシなような気がする。少なくとも長期間アプリに手を入れていくことを考えるとSwiftは最適な解では決してない。そのところをわかっている人はSwiftを諸手を挙げて賞賛するわけがない。

だけど、Swift自体が悪い言語というわけではなく、単にAppleのライブラリ作成のお行儀が悪いだけ、Xcodeが無遠慮なだけという話だ。だから晴れてOSSになって、AppleごとSwiftが沈没する危険は回避されたという喜ばしい状況にはなってはいるのだから、暗いだけの話ではないのだろう。

タグ:Swift3
コメント(1) 
共通テーマ:パソコン・インターネット