Hatena::ブログ(Diary)

What will be done tomorrow? RSSフィード

2018-07-31 (Tue)

Ryzen 2400Gを強引にIN-WIN BQ656/120Nに入れている件のこと

| Ryzen 2400Gを強引にIN-WIN BQ656/120Nに入れている件のことを含むブックマーク

今年のGWRyzen 2400Gを買ってIN-WIN BQ656という小さいケースに入れようとしたら、付属リテールクーラーであるWraith Coolerが邪魔で蓋が閉まらないという残念な状況となり、工作用紙でファンの部分だけ切り抜いた用紙を仮の蓋として使っていたがどうにもシマらない感じでイヤだった。このケースに収まる薄型クーラーはないものか? しかしAM4クーラーはあまり存在しないようだった。すでに同型のケースで試している人が居たのだが(多分Mini-ITXで最小IN WIN IW-BQ656/150N-U3の小型PC)、5000円くらいする割と高めのやつでも、ちゃんと閉まらなかったりするというのではちょっと怖すぎて購入を躊躇してしまうのだった。前で示したブログの人はC7V2という6000円するCPUクーラーを導入しているが、それでも蓋が正しく閉まっていない。


ところがさらに調べていたところ、付属クーラーは50mmの高さがあるが、AMDロゴのパーツを外すと45mmまで小型化するということだった。AMDロゴのパーツははまっているだけなので簡単に外れるということだ。そこでいろいろ試してみた。

トラックバック - http://d.hatena.ne.jp/naoya2k/20180731

2018-06-29 (Fri)

ピンハネとかいうけどさ

| ピンハネとかいうけどさを含むブックマーク

「ピンハネ」が、日本を貧しくしている。 とかいう記事があって雑な議論がされてるけど実態はだいぶ違うのではないかと思う。なお、僕は発注から4次受けくらいまでのすべての階層経験したことがある。

(しかし下の話も僕の少ない経験を元に書いているのでそれなりの雑さではある)


発注元はだいたい何をしていいかがよくわかっていないので完成品を作ってもらえるA社に業務委託するわけだ。

ところがシステム開発というのはブレ幅が大きい。見積通りの予算や規模で完成するかどうか、とてもあやしい。最初10人で1年間くらいでできそう、と言っていた案件が1.5年や2年かかることはザラにある。いっぽうでラッキーにも8か月で完成してしまうこともある。

さて一方で発注元としては予算がある程度限られているしきっちりした見積で安定して仕事をしてくれるところに頼みたい。たとえば10人を1年間張り付けてやりますよって見積もってたけどなんかちょっと基本的設計ミスっていたことが途中で発覚しリカバリのために途中から15人に増員しました、と言われても困ってしまう。そうするとちょっと余分に払ってもいいからそういうトラブルが発生したときには自腹でリカバリしてくれるところに頼むことになりがちである。それが元受けのA社の役目だ。要するにA社が本当に何も仕事をしていなかったとしても、ピンハネしているというけどもそのピンハネ額は保険料意味合いが大きく、運がよければ1億できるところを最大5000万円まで赤字でもやりきってくれる、みたいなことをウリにされちゃたら、高リスク案件のとき、少し高くてもそこにお願いしちゃうよね、ということなんだ。


からまあ、見積は1人月100万円x120人月ですよー 、と言いつつ、実際に使う額は80万円x120人月で、残りの20万円はプロジェクト炎上したときに使う予算や、A社のなかでの他のプロジェクト赤字補填に使われているのだ。もちろんそのほかに下請けがやってくれなさそうな、全体の開発の段取りとか、顧客への進捗報告とか、不具合説明資料作成とか、そういう「一見、下の人間には無駄なように思えるんだけど顧客必要としている」作業をやったりしているのでその分にも充てられている。


たとえば富士ソフト(9749)という僕ら世代には悪名高いソフト屋があり、いかにもピンハネものすごくやってそうな印象があるが、営業利益率は5%ちょっとしかなく、そんなに利益が出ているわけではないのはそういう要因が半分以上を占めるのではないかと思っている(残りの要因として考えられるのは富士ソフト社員がほかのことに使っちゃってるってことなのだが…)。



さてA社的には受注してしまったら何がなんでもやりきらないといけない。そして開発人材が足りない。いや、A社にも開発できる人は居ると思うんだよ。ただね、2次請けとか3次請けとかがやらないといけないような状態になっているプロジェクトってのは、A社で人手が足りないから回ってくるので、そりゃ2次請けからすれば「そういう、丸投げプロジェクトばっかり」に見えるかもしれないけど、そうじゃないプロジェクトは下からは見えないところに少数存在しているんだ。なぜ少数かというとそりゃ巨大プロジェクトほど人手が足りなくなるし、巨大プロジェクトじゃなければ普通に僕みたいなやつと共栄さん2人、くらいでチョコレートを食べながら開発して終わらせてしまうからなんだ。


さて下請けのB社やC社の立場になると、またその下が居るのか? という話だがそりゃまあ人が足りないときはしょうがないじゃん。でもしかしこのレイヤは本当に実装インテグレーション主体を担う技術者必要なわけで、「Javaができます」「できるとは言ったがそれはHello, Worldが書けるということだ!」みたいな人が来ちゃうと困っちゃうわけです。でもたまにそういうヤツでもなんとかなっちゃう現場もあったりするから怖い。まあなんにせよB社が人が足りなくて、ヘルプでさらに下のD社に委託するときには、そういうヤツをチェンジできる権利が欲しい。あるいは急に家族の都合とか、病んでしまったりとかで出てこなくなったりしたときに代わりを用意してくれるサポートが必要。そういうことがD E F社には求められている。当然、B社からD社には、運よくそういうトラブルがなかったときと比べると高い単価が支払われているだろうけど、そういうトラブルが確率的に起こることを想定したリスクプレミアムが上乗せされているだけであり、単純にいまの案件をやっている技術者価値がその単価分だけある、というわけではないのだ。もし僕が、月単価80万円で仕事を請けていて、諸経費等が月20万かかったとしても普通に60万残っているはずなのに、月20万しか手取りがなかったとしたら、それは僕が居る階層が、「素人でほとんど役に立たない奴とか、急に会社に来なくなったりする奴にあたる確率が40%以上」みたいな残念なところだからなんだ。


で、ピンハネ率を下げたい僕らがやらなければならないことなんだけど、「ピンハネやめろ」と大声で叫ぶことだけでは、たぶんダメだ。

ピンハネ分が保険料意味合いを持っているのだとすれば、それを減らすためには事故率を減らすことだ。安定した見積ができる枯れたフレームワーク技術採用していくようにすべきだし、チャレンジやイノベーションという言葉で新しいものを使いたがる奴らとは距離を置くべきだ。一方で報告資料作成とか進捗管理費用に費やされているのであれば、A社が作る報告資料よりも発注にわかりやすいようなフォーマット資料自動的にできてしまサービスを流行らせて、「なんだA社いらねーじゃん」と発注元に思わせることだ。そしてfizzbuzzが書けないようなヤツにプロを名乗らせないようにしないといけないような気がするのだが、これはいちばんむつかしいし賛否がわかれると思う。


(リンク先のエントリでは高プロと絡めてたけど、現時点では、あんまり関係ないんじゃないかなあ…?)

トラックバック - http://d.hatena.ne.jp/naoya2k/20180629

2018-06-10 (Sun)

GPD Pocket 2についていろいろ

| GPD Pocket 2についていろいろを含むブックマーク

GPD Pocket 2の写真が公開されていた。まだFIXはしていないようだけどいろいろ気になる点はあった。コンセプトは下記のような感じに見えた

トラックポイントをなくしてキーボード最下段を筐体の下端まで持ってくる → 数字キーの縦幅を大きくして押しやすくする

・さらに上にタッチバー的なものを用意してそこに特殊キーを集め、物理キーの数を減らす


横方向に並ぶキーの数が1列減っているので、もしかするとPocket 2は初代より横幅が小さいかもしれない。そうだとするとそれはよいことだとは思う。しかしGPD Pocketを使っている自分としては物理キーが減ったこともポインティングデバイスの削除もどっちもあまりうれしくない方向で、どちらかというと

キーピッチを縮めてもっとキーを多く配置してほしい

・あと2cm横幅を増やして、全部のキーの横ピッチをPocket初代の数字キー(14.2mmくらいだった)並みに小さくすることで横13個キーをおいてほしい

・そうするとESC/TAB/¥キーくらいを上に追いやるだけでそれ以外はあまり無理のないキー配置にできるのでは?

・縦ピッチも14.2mmにしてよいのでポインティングデバイス残してください

というような感じなのだけど。でもちょっと指の太い人にはこれは無理って感じになるだろうから無理かなとも思った。


そんなわけで写真からわかるキー配置あたりは理想から外れていってるような感じはあるのだけど、「実はPocket 2は380gでした」みたいなサプライズがあったら全然話は変わってくるので、結局大きさと重さが判明しないと良い悪いはわからないなとも思いました。

トラックバック - http://d.hatena.ne.jp/naoya2k/20180610

2018-06-06 (Wed)

RX100 VIが発表されたという話

| RX100 VIが発表されたという話を含むブックマーク

今回の売りは換算24-200mm F2.8-4.5のレンズだという。RX100初代が故障していていまいち使えないので新しいやつでよいのがあればほしい気がする。


RX100初代 28-100mm F1.8-4.9 101.6x58.1x35.9mm 240g(撮影時) 37000円くらい

RX100 IV 24-72mm F1.8-2.8 101.6x58.1x41.0mm 298g(撮影時) 80000円くらい

RX100 VI 24-200mm F2.8-4.5 102x58x43mm 301g(撮影時) 13万円くらい予想

DMC-TX1 25-250mm F2.8-5.9 110.5x64.5x44.3mm 310g(撮影時) 58000円くらい

DC-TX2 25-360mm F3.3-6.4 111.2x66.4x45.2mm 340g(撮影時) 90000円くらい


これは悩ましいね。dpreviewの記事グラフを見るとTX1のレンズが割と良さそうに見えてしまう。

しかしRX100 VIには積層CMOSセンサによる4K HDR動画とか瞳AFとかのヒキの強そうなスペック存在しており、そこは気になる。だがそれに2.5倍という値段が引き合うのかどうかということだ。28mm〜35mmくらいのレンジではRX100初代のほうが画質良かったりしそうだしなあ。


詳細レビューが楽しみな機種だ。個人的にはHEIFは導入されないのか? ってところと、ハイレゾショットやピクセルシフトマルチ撮影的なものがこのサイズでは原理的に有効でないのか、単に時期がまだなだけなのかが気になっている。

トラックバック - http://d.hatena.ne.jp/naoya2k/20180606

2018-06-02 (Sat)

2.4GHz帯が混雑していてスプラトゥーン2がちゃんと遊べない問題

| 2.4GHz帯が混雑していてスプラトゥーン2がちゃんと遊べない問題を含むブックマーク

以前からNintendo Switchをやっていると左スティック勝手操作されたような状態になるような現象がときどき発生して困っていたのだが最近それが顕著に発生するようになっており、左の十字ボタンが効かないという現象普通に発生するようになっていた。


今朝などはスプラトゥーン中に5秒間くらい左スティックでいくら操作しても自キャラが動かないような状況になり死んでしまったりととてもつらい。そこまでひどいことは起こらなくてもガチヤグラに乗り続けるのが困難。普通になにもしてないのにヤグラから落ちちゃう。エイムがどうこうというレベルじゃない、初心者でもそんなことはないようなミスバンバン発生する。マジありえん。


最初はこの原因についてキャリブレーションの問題かと思っていて、その次に疑ったのはスティックが物理的に壊れている、というものだったのだが、最近ではもうこれは2.4GHzが混雑しすぎていてBluetooth通信が妨げられているからだと確信している。


今住んでいる部屋は集合住宅なのだがWiFiアクセスポイントを検索すると20個以上出てくる。いま測定したらそしてそこから5GHzのものと重複と思われる分(同じルータから複数SSIDが出ていると思われる分)を削除してユニークAPを選別しても15個もある。2.4GHz帯はWiFiも安定しないしBluetooth Audioも2m以上離れれば音切れしまくり状態になるような感じで非常によろしくなく、だからスプラトゥーン2でうまく操作できなくても仕方がないのだと思う。



明らかに技適通ってないだろ的なアクセスポイント(Xiaomiルータとか中華端末のテザリングとか)が複数見つかるとか、100mは離れてるだろうと思う近所のコンビニWiFiアクセスポイントが検出されたりするとかは、しょうがないかと思う反面こんなやつに邪魔されているのかと思うと微妙に納得がいかない。しかしこれが現在人口密集地帯の状況なのだしコンシューマプロダクトを作ってる人は無視してはいけないと思う(以前田舎に住んでる家電メーカおっさんたちが「WiFiの接続性が悪くて信頼できないなんて迷信だ」的なことを言っていたのを聞いたときには「それは田舎からです」ってちゃん反論しましたがどこまで信じてもらえたかはわからん)。


ちなみにWiFiルータに対してPCからpingを打ったときの結果は下記のような感じでした。11g残念すぎるだろ。

[11aで繋げたとき]
192.168.0.1 からの応答: バイト数 =32 時間 =2ms TTL=255
192.168.0.1 からの応答: バイト数 =32 時間 =1ms TTL=255
192.168.0.1 からの応答: バイト数 =32 時間 =2ms TTL=255
192.168.0.1 からの応答: バイト数 =32 時間 =1ms TTL=255
192.168.0.1 からの応答: バイト数 =32 時間 =2ms TTL=255
192.168.0.1 からの応答: バイト数 =32 時間 =1ms TTL=255
192.168.0.1 からの応答: バイト数 =32 時間 =2ms TTL=255
                       : 

[11gで繋げたとき]
192.168.0.1 からの応答: バイト数 =32 時間 =594ms TTL=255
192.168.0.1 からの応答: バイト数 =32 時間 =4ms TTL=255
192.168.0.1 からの応答: バイト数 =32 時間 =278ms TTL=255
192.168.0.1 からの応答: バイト数 =32 時間 =2972ms TTL=255
要求がタイムアウトしました。
要求がタイムアウトしました。
192.168.0.1 からの応答: バイト数 =32 時間 =2806ms TTL=255
192.168.0.1 からの応答: バイト数 =32 時間 =1308ms TTL=255
192.168.0.1 からの応答: バイト数 =32 時間 =1956ms TTL=255
192.168.0.1 からの応答: バイト数 =32 時間 =2407ms TTL=255
192.168.0.1 からの応答: バイト数 =32 時間 =2087ms TTL=255
192.168.0.1 からの応答: バイト数 =32 時間 =2003ms TTL=255
192.168.0.1 からの応答: バイト数 =32 時間 =1274ms TTL=255
192.168.0.1 からの応答: バイト数 =32 時間 =1646ms TTL=255
                       : 

Wii Uのときはマシだったような気がするのがちょっと不思議だが、Wii Uでは本体側もパッド側も重厚なつくりだったのでアンテナに余裕があったのかもしれない。そうだとするとSwitchJoy-Conの改良でなんとかなる可能性がある。期待している。

トラックバック - http://d.hatena.ne.jp/naoya2k/20180602

2018-05-24 (Thu)

何かをしたいときに使うべきAPIが何か、そしてそれの使い方を調べたいときどうするか

| 何かをしたいときに使うべきAPIが何か、そしてそれの使い方を調べたいときどうするかを含むブックマーク

初心者をググれカスと突き放すのは割と酷なのではないかという話 というエントリがあった。

https://teratail.com/questions/127346 にある、

毎回同じ段階でつまづいてアプリを完成させることができません。

例えば、位置情報を使ったアプリ場合

 1. 「GPSで位置情報を取得して、目的地に近づいたら指定した音楽を鳴らしたい!」

 2. 現在地位置情報を取得して変数に代入

 3. 目的位置情報を取得して変数に代入

 4. 現在値の変数 - 目的地の変数が指定した値より小さくなった場合、音楽を再生

 5. ロジックが決まって、いざ作ろうとしても位置情報の取得方法がわからない! ⇐詰む

 6. このアプリ作るのムリ

 7. 他のアプリを作ろう

これの繰り返しです。

について5.の部分をどうするかという話だった。

ベストアンサーには、

とりあえず「swift 現在地位置情報を取得して変数に代入」でググってみます

ポイントは「ios」ではなく「swift」というキーワードを添えること。

とあったが、なんでそんな微妙キーワードでググるのかわからなかった。



そんなわけで自分だったらどうするだろうか。おもむろに「corelocation ios」で検索してみると、「ユーザ位置の取得」というAppleのページ

https://developer.apple.com/jp/documentation/UserExperience/Conceptual/LocationAwarenessPG/CoreLocation/CoreLocation.html#//apple_ref/doc/uid/TP40009497-CH2-SW11

が出てきた。このページで、iOS位置情報取得機能に、

の3種類があることがわかった。

2分くらいでこのページを斜め読みして、下記の記述を見つけて完了であった。


標準位置情報サービス使用するには、CLLocationManagerクラスインスタンス作成し、そのdesiredAccuracyプロパティおよびdistanceFilterプロパティを設定します位置情報通知の受け取りを開始するには、そのオブジェクトデリゲートを割り当て、startUpdatingLocationメソッドを呼び出します位置データが利用可能になると、この位置情報マネージャは割り当てられているデリゲートオブジェクトに通知をします位置情報更新がすでに送信されていれば、次のイベント送信を待たずに、最新の位置データをCLLocationManagerオブジェクトから直接取得することもできます位置情報更新送信を停止するには、位置情報マネージャオブジェクトのstopUpdatingLocationメソッドを呼び出します

ただ、CLLocationManagerへのリンクリンク切れになっていたが。


「CoreLocationってのを知ってたから検索できるんじゃん」という話であるが、普通にiPhoneに興味を持って生活していたら聞いたことくらいあるはずだ。なくても、iOSアプリを作るなら、

iOSテクノロジー概要 - Apple Developer

https://developer.apple.com/jp/documentation/iOSTechOverview.pdf

に目を通すくらいはしていてもおかしくないのではないか。


別にCoreLocationというキーワードを知らなくても「iOS 位置の取得 API」でググっても上記のページは3番目に出てくる。1番目と2番目のエントリクラスメソッド株式会社のブログで、それはそれでいいのかもしれないけど、Apple解説ページには下記のような解説ちゃんとあり、今回の作りたいアプリには有用情報のはずだ。

iOSアプリケーションが、バックグラウンド状態であっても位置情報監視し続けなければならないのであれば、標準位置情報サービスを使い、UIBackgroundModesキーにlocationという値を指定して、位置更新情報を受け取れるようにしてください(この場合、電池の消耗を抑えるため、位置情報マネージャのpausesLocationUpdatesAutomaticallyプロパティYESとすることも必要)。このような位置更新情報を要するものとして、フィットネスや道案内のアプリケーションが考えられます


Android場合はさらに簡単で、https://developer.android.com/guide/ の左の目次に「ユーザー現在地」というのが見つかるのでググる必要もないのだ。


僕はこのような質問をされたときに「ググれカス」とは言わずに「CoreLocationでググれば出てくるんじゃないか?」と言うようにしている。しかしそれを教えたとしても、イケてるやつはちゃんAppleのページを読むが、イケてない奴はAppleのページを避けてよくわからんブログに行って、基本的なことを把握せずにコピペで動かそうとし、失敗する。なぜ一番信頼できるはずの一次情報をわざわざ避けていくのかは謎である

トラックバック - http://d.hatena.ne.jp/naoya2k/20180524

2018-05-20 (Sun)

NosPiDAC Zeroを組み上げました

| NosPiDAC Zeroを組み上げましたを含むブックマーク

5/2にRyzenと合わせてNosPiDAC ZeroというRaspberry Pi ZeroにつけるDACのキットを買っていました。正直DAC自作するほど音に詳しくないので「本体のLine出力でいいだろ」って思ってたんですが、そもそもZero WにはLine出力がなかったんです。それでもUSB DAC適当に買ってつければいいという話ですが、ずっと単なる小さくて不便なLinuxマシンとしてしかRaspberry Piたちを使っていなかったのでちょっと試してみたい的な気分になって(GW後半で時間があるし、みたいな気分もあって)買ってしまっていました。


しかし実際にはGW中はチップ部品のはんだ付けくらいしかできなくて、今日ようやく完成させました。なんだかんだ言って一発で動作したのでよかった。



ソフトはMoode Audioってやつを入れました。流石に製品とは違ってUIが少しこなれてない部分が目立つけど、機能的にはよくできていた。


とはいっても我が家にLINE INできるオーディオ機器はミニコンポしかなくて、音質とかはUSBメモリをそのミニコンポに挿してmp3再生させたときとかのほうがきっといい。

から、なんていうか、サーバ運用をして初めて嬉しさが出てくると思われる。ところが、「スマホから制御microSDに溜まってる好きな音楽をいつでも鳴らし始めることができるぜ」みたいな使いかたをしようとするとミニコンポの音量とかセレクタとか電源も制御できていないと、結構残念な感じになるじゃないですか。

だってラジオ鳴ってたらいちいちミニコンポの前にいってLINEに切り替えて、その上でスマホをいじってMoode Audioを操作するという流れになって、そんなことするくらいならもうスマホのヘッドフォン端子つなぎますわってなっちゃうじゃないですか?


そんなわけで IR出力をつけてコンポも制御できるようになると楽しいはず。でもそこまでして音楽を聴くほど僕の家庭は音楽好きではないし微妙…。いや、目的手段を逆転させてはいけない。当初の目的ははんだ付けしたりRaspberry Pi zero WにGPIOやI2Cの周辺機器をつなげて遊ぶことであって音楽環境を向上させることなどではなかったので、多分これでいいのだ。

トラックバック - http://d.hatena.ne.jp/naoya2k/20180520