猫とコード

化学メーカーでweb開発している猫大好きエンジニアの備忘録です。

IIS8.5で大量のファイルアップロードがHTTP Error 404.13で失敗するときの対処

環境

したいこと

IIS8.5で大量/大容量のファイルをアップロードしたい

エラー内容

ファイルをアップロードすると下記のような表示がでる

HTTP Error 404.13
リクエスト フィルタリング モジュールは、リクエスト コンテンツの長さを超えるリクエストを拒否するように設定されています。
考えられる原因:
コンテンツの長さが構成された値を超えているため、Web サーバーで要求のフィルタリングが構成され、要求が拒否されます。
試すことができるもの: applicationhost.config または web.config ファイルの configuration/system.webServer/security/requestFiltering/requestLimits@maxAllowedContentLength 設定を確認します。

対処法

  1. サーバマネージャー⇒「役割と機能の追加」
  2. 役割と機能の追加ウィザード⇒「次へ」×3⇒「サーバの役割」
  3. 「Webサーバー(IIS)」>「Webサーバー」>「セキュリティ」>要求フィルターをインストール

    f:id:yurukaiha:20210608133819p:plain
    要求フィルターをインストール

  4. IISマネージャに移動

  5. IISマネージャの大量ファイルアップロードを許可したいサイトを選択  入れ子構造になっている場合は最上位のサイトを設定する(地球アイコンのところ)  f:id:yurukaiha:20210608134258p:plain
  6. ASP」の設定を開く  「応答バッファの処理の制限」「最大要求エンティティボディ制限」の値を変更する  (Byte指定なので50MBを許可する場合は「52428800」にする) f:id:yurukaiha:20210608134436p:plain
  7. 「要求フィルター」の設定を開く>右端の「機能設定の編集」  要求制限の「許可されたコンテンツ最大長(バイト)」を変更する(上の「最大要求~」と同じ値) f:id:yurukaiha:20210608134736p:plain

設定完了です。IIS再起動等は必要なかったです。

参考サイト

pandas_profilingのprofile_report()が引数join axesでエラーになる場合の対処

こちらの本で機械学習の勉強をしています。

第5章3部のpandas_profilingのコードがGoogle Colabratoryで動かなかったときの対処です。

Pandasとpandas_profilingのVersionをチェック

環境:Google Colab

print(pd.__version__)
!pip freeze |grep pandas-profiling
1.1.5
pandas-profiling==1.4.1

公式の情報を見てみると、pandas_profilingのバージョンが古いようです。 Google ColabのプリインストールではVer1.xが入っていますが、今はVer2.xになっているようです。

参考サイト

pandas-profilingをgithubからインストールする

! pip install https://github.com/pandas-profiling/pandas-profiling/archive/master.zip 

インストールが完了したらメッセージに従いランタイムを再起動します。 f:id:yurukaiha:20210428152345p:plain

再度バージョンを確認してpands-profilingが2.xになっていることを確認します。

1.1.5
pandas-profiling==2.12.0

プロファイリングレポートを表示する

import numpy as np
import pandas as pd
import seaborn as sns
import pandas_profiling as pdp

df = sns.load_dataset("iris")
df.iloc[0,1] = np.NaN

profile = pdp.ProfileReport(df)
profile.to_notebook_iframe()

f:id:yurukaiha:20210428151519p:plain

ザ・ゴール(コミック版)の全体最適マネジメント理論とは

 読書感想です。

会社で推奨図書だったので読んでみました。

大事だと思ったトピックス

  • 会社の目的はお金を儲けること
  • 財務指標は現場のKPIではない(本では工場の場合で説明)
  • 全体最適を目指す
  • 制約を見つけて活用する

全体最適とは何か

制約(ボトルネック)を見つけて活用・解消すること。

手順:

  1. 制約と非制約に分けて考える
  2. 制約の活用方法・ルールを考える
  3. 制約事項に非制約事項が合わせる
  4. 制約の能力をたかめる
  5. 制約が非制約事項になっているか確認。1に戻る

なぜ全体最適を目指すのか?

全体の効率は最も効率/能力が低い箇所によって決定する。

  • 低い箇所の解消・改善を行う
  • 低い箇所に至るまでのフローも大事

 

全体の効率がチームの中のウィークポイントによって決定することは実感があります。

ソーシャルゲームの運用業務をやっていたときに、ボトルネック(制約)が2か所発生していました。

最終工程のQAの遅れと、その1つ前のデザイン制作がいつもタイトになることでした。

下記のような工程で運用していたのですが、そのときは企画原案からのスケジュールを引くことで解決しました。

ただ作中でも指摘されているように、ボトルネックに至る前に余裕を取りすぎていて、結果的に企画業務が非効率になっていました。

(ジャストアイディアを実現しにくい、突発的な差し込みを事前準備する難しさ)

 

企画原案(アイディアだし)

  ↓

イラスト発注

  ↓

企画(設計)

  ↓

開発(製造)・デザイン

  ↓

QA

 

特定箇所の解消のために全体最適は必須で、そのために発言力・決定力がほしくて偉くなろうと努力していました。

 

生産能力を市場の需要に合わせると結果的に非効率になる

作中で指摘されていた印象的な項目が、

生産能力を市場の需要に100%あわせて縮小しても(架空の仮定)

現金化するまでの無駄が増え、(発生する事象)

売上・利益がダメージを受ける(それによる結果)

ということでした。

 

仮定として仮に市場の需要に100%正確に予測できても

それが売り上げ増・利益増につながらないという結論が印象的でした。

つまり市場の需要予測は大事だけれど、

需要を正確に把握できていたとしても売上・利益は増えない(あるいは増えづらい)ということですね。

 

仮定と事象の間を考えてみると、3つの仮説が考えられます。

  1. 需要を見越して準備をしていたとしても、必ず過不足が発生する(コントロールができない?)
  2. 需要減に依存した経営をしても、現金化までの無駄も増えるのであまり意味がない(コストカット経営の弱点批判?)
  3. 全体最適(内部施策)と需要(外部要因)は切り離して考えるべき

本書の命題である全体最適マネジメント理論とつなぎあわせると、3が近いのかなと思うのですが、よくわからなかったです。

読んだ人の感想を聞きたいと思いました。

(単純に読み進めるにあたっての刺激的な言葉というだけかもしれません)

会社の開発環境があんまり良くないという悩み

うちの会社、イイ会社だと思うんですが、開発環境的にどうかなと思うところが…。

(イイ会社というのは、事業内容・福利厚生・人材の観点から良いと思っています)  

嫌なところの困っている点と改善策、課題を考えてみました。

嫌なところ 困っている点 改善策 課題
言語がVBscript モダンな書き方ができない 1. 開発言語の選択肢を広げる
2. VBSでモダンな書き方をする
1.は言語が変わると誰でも保守ができなくなる
2.は導入の費用対効果が薄いと言われそう
公認エディタが秀丸かサクラ シンタックスがない
関数名でリンクができない
IDEの使用などツールの選択肢を広げる 新しいツールを利用可能にするとセキュリティ的なリスクがある(という話があった)
コード管理をしていない
(ファイルをコピーしたり、コメントアウトで対応)
変更履歴が残らない Gitの導入 導入の費用対効果が薄いと言われそう
自動テストがない
(テストはエクセル表で管理 )
テスト書きませんか・・? わからない 導入の費用対効果が薄いと言われそう

改善を実行することには意味がないという結論を得ました。

問題なのは書き方じゃなくてコードに対する組織の考え方なので、そこが課題になってくると思う。

コードを綺麗にすることで本業が伸びる因果関係があればいいのですが、なかなか直接的にはつながりません。

システムの会社であれば、適切な開発環境を用意することは人材確保の点で必要ですが、ユーザ企業から考えると適切な開発環境を用意してもメリットを享受しきれないので難しいですね。 うちの会社の場合、システム部門はあくまで主業の補助的な役割が強いので、それよりか本業をいかに伸ばすかに注力した方がコスパがいい。

会社外で書くときには好きなように綺麗に書けばいいというのが今の結論です。 しかし、それは職業プログラマの意識としてどうなのかなーーーという悩みです。

 

 

 

 

 

誕生日DM乞食をしてました

今日、32歳になりました。

 

誕生日のダイレクトメールが好きです。

車メーカーの誕生日DMはこんな感じでした。

ぼくはマツダ車オーナーなんですが、せめてマツダからは何か欲しかったです。

悲しい。

 

メーカー URL 内容
日産 特設ページあり

・日付を入れてくれている

・(抽選だけど)500円分のアマギフをくれる

・動画がCMくさい

 (プロパイロット描写絶対いらんやろ・・)

スズキ 動画あり

・メールが画像付きで祝っている

・動画に出てくる車が謎

スイフトっぽいけど少し違うような・・)

・動画がCMくさくない

マツダ なし

・普段は自分語りメールを送りつけてくるくせに・・・

マツダ車への愛はある。

・オーナーへの愛はない。

 トヨタ なし   ・トヨタイムズを頑張っているのでメルマガとか古いっすわの精神
 スバル なし   ・時々アイサイトの話をされる
 プジョー なし   ・LINEで金利の話をされる
 ホンダ なし  ・そもそも普段からメールも何もない

 

日産は流石の広告出稿で、普段からキャンペーン打っているだけありますね。

最近、常に車プレゼント企画をやっている気がします。車配りおじさんか・・?

 

外車メーカーは基本的に縁がないので割愛です。

プジョーは好きです。かっこいいよね。508とか超かっこいい。

 

以上です。

来年に備えよう。

 

TerminalでCurlを使う - Qiita APIで遊ぶ

curlコマンドすぐ忘れます。公式リファレンスを読むたび忘れるので備忘録を書きました。

Qiita APIを叩いて、自分の記事情報を取得して遊びます。

curlのコマンド

  • GETcurl -H 'Authorization: Bearer __access_token__' '__URL__'
  • POST/PUT/DELETEcurl -X POST -H ... curl -X PUT -H ... curl -X DELETE -H ...'のように指定する。
  • -X はメソッドの種類を指定。
  • -Hはヘッダーを指定。ヘッダーは'name:value'の形で記述する。

Qiita API

Qiita APIリファレンス

使うのは認証済みのユーザの記事一覧取得(GET)です。

認証はあらかじめ設定>アプリケーション(設定画面はこちら)から済ませておきます。

  1. 個人用アクセストークン>新しくトークンを発行する
  2. 名前を入力
  3. アクセストークンをコピー

※アクセストークンは最初にコピーしておかないと再発行できない様子なので注意

Terminal (zsh)でAPIを叩く

curl -H 'Authorization: Bearer __access_token__' 'https://qiita.com/api/v2/authenticated_user/items' -d '{"page":"1","per_page"="20"}'

access_tokenの箇所はご自身のアクセストークンに置き換えてください。

上記curlで、自分の投稿した記事が20件(1ページ)返ってきます。

[{"rendered_body":"\n\u003ch2\u003e\n\u003cspan id=\"homebrewのインストール\" class=\"fragment\"\u003e\u003c/span\u003e\u003ca href=\"#homebrew%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB\"\u003e\u003ci class=\"fa fa-link\"\u003e\u003c/i\u003e\u003c/a\u003ehomebrewのインストール\u003c/h2\u003e\n\n\u003cp\u003e2020/11/6からApple Silicon、Big Surに対応しているようです。
・・・・・

怒涛の本文。

何が返却されるかは「[投稿]」のドキュメント参照

Qiita API v2 documentation - Qiita:Developer

アクセストークンを使わなくても記事一覧は取得できる

api/v2/itemsを使用すればアクセストークンを使わなくても記事一覧が取得できました。 アプリケーションで記事取得をするときに、ユーザにアクセストークンを取得させなくてすみそうです。

curl -X GET 'https://qiita.com/api/v2/items' -d '{"per_page":"10", "query":"user:Ryo-Todaka"}' -H "Content-Type: application/json"

JSONパースはまた今度。

以上です。

アジャイルマニフェストとプログラミング手法の関係 - ふりかえり実践会のイベント聴講②

2/14(日)に聞いたイベントの感想です。

こちらの記事の続きです。 

※発表を聞いた上での、ぼくの感想を載せています。

※必ずしも登壇者・発表者の意見・主張ではないことご了承ください。

 

最初の記事でかききれなかった点を捕捉して書きます。

 

アジャイルマニフェストとプログラミング手法の関係

1990年ごろからプログラミング手法が登場し始め、アジャイルもその一つだったそうです。

f:id:yurukaiha:20210216222311j:plain

アジャイルマニフェストとプログラミング手法の関係

※ 図は登壇者の説明資料を再現しています。

これ以外にもクリスタルパターンなどの手法があって、それぞれ影響しあって今に至るそうです。

The New New Development Gameという論文があり、それに影響を受けたのがスクラム

スクラムアジャイルマニフェストは影響しあって今に至るそうです。

 

アジャイルな開発の誤解:アジャイルな開発=スクラムなのか?

アジャイルマニフェストアジャイルな開発を行うための哲学です。

一般に広めていく過程で出版社の販売戦略において「アジャイル開発」手法として紹介されたため、アジャイルマニフェスト中には開発手法には触れられていません。

なのでアジャイルな開発とはなんぞやと思い、アジャイルマニフェストに辿り着いても何をすれば良いのかわかりませんでした。

スクラムは手法、アジャイルは精神と理解しました。

 

 アジャイルな開発の誤解:無限に対応・修正が必要になるのか?

アジャイルな開発では、コストも期限も基本的に動かさないので、無限に対応し続けることにはならないとのこと。

作業量が当初の100%から120%、130%と増えていくのではなく、100%の中でやることを取捨選択しましょうということ、とのことです。

 

アジャイルな開発では「スコープ」は可変、他は不変としているようです。

  • コスト(作業量)
  • スコープ(何をするか)
  • 期限(リリース日)

コスト(作業量)は一定を保ち、期限も守るが、プロダクトが価値を出せるのであれはスコープは可変という考え方です。

この二つはプロダクトが継続的デリバリーを行うために不可欠であるため、不変要素としているのだと理解しました。

このため、アジャイルな開発を請負契約で行おうとするのは依頼者・受託者双方に負担になるとのことです。

 

以上です。

 

アジャイル開発ではなくアジャイルな開発ということ - ふりかえり実践会のイベント聴講

 2/14(日)にこちらのイベントを聴講しました。

※発表を聞いた上での、ぼくの感想を載せています。

※必ずしも登壇者・発表者の意見・主張ではないことご了承ください。

発表のトピックス

アジャイル開発ではなくアジャイルな開発

アジャイル」という言葉は誤解を生みやすいそうです。

アジャイルはアンブレラワード(包括的な単語)のため、何を指して「アジャイル」と言っているのかを確認する必要があるとのことです。

あるひとは、スクラムの手法的導入を指していて、あるひとはアジャイルマニフェストの精神を指している。

アジャイルマニフェストを指している場合でも解釈違いがおきるとのこと。

アジャイルマニフェストの解釈違いは後述

 

アジャイル開発」という言葉を使うと、手法導入ともマニフェスト尊重ともとれ、何を示すか微妙に違っていて後々困るそうです。

何となく伝わってしまう分だけ危ないなと思いました。

アジャイルという言葉を開発と結びつけるときは、「アジャイルな開発」としてマニフェスト尊重を指す方が適切だと思いました。

アジャイルマニフェストには手法への具体的な言及がないため、精神としてのアジャイル、手法としてのスクラムと使い分ける方がわかりやすいと思いました。

 

アジャイルマニフェストの精神

アジャイルソフトウェア開発宣言

 

アジャイルマニフェストにも解釈違いがあるそうです。

イベントでは、「A よりも B」という日本語訳が誤解を生むニュアンスと言われてました。

Aの価値を認めながらもBの価値を尊重するとあります。

プロセスやツールよりも個人と対話を、
包括的なドキュメントよりも動くソフトウェアを、
契約交渉よりも顧客との協調を、
計画に従うことよりも変化への対応を

価値とする。すなわち、左記のことがらに価値があることを
認めながらも、私たちは右記のことがらにより価値をおく。

引用:アジャイルソフトウェア開発宣言より一部抜粋

 

捉え方によっては「よりも」の左側部分(プロセスやツール)は、右側(個人との対話)と比べて価値が低いように感じます。

また、末尾の「価値を認めながらも」もあまり良くないと思います。

(日本語的には「価値を認めた上で」とかの方が良いのでは)

 

「よりも」の左をしっかりやった上で、右もやる(重要度はもちろん右の方が上)というニュアンスがマニフェスト創立の精神に近いそうです。

  • プロセスやツールを大事にしながら、個人と対話を尊重する。
  • 包括的なドキュメントを大事にしながら、動くソフトウェアを尊重する。
  • 契約交渉を大事にしながら、顧客との協調を尊重する。
  • 計画に従うことも大事にしながら、変化への対応を尊重する。

と理解するのが良さそうです。

 

 

この精神を尊重することが(一部においては)アジャイルな開発であると言えるとのことです。

どの手法を使うかがアジャイルな開発ではないということだそうです。

 

ウォーターフォールかつアジャイルな開発

アジャイルな精神を尊重した上で、ウォーターフォール開発手法(のような)で開発を行う、ということも理屈では可能なようです。

ただ尊重しても、契約や計画は動かせない場合も多いようです。

 

また逆にスクラムを導入していても、個人との対話が軽んじられていたり、

計画の変更に大きな抵抗にあうなど、

スクラムの手法を使っているが、アジャイルな開発(精神)を持っているとは言い難い、ということもあるようです。

 

以上です。

PBLのリーダーのあり方 - あじゃてくminiで学んだこと②

2021/2/12(金)のあじゃてくミニ#3(Agile Tech Mini #3)のカンファレンスで学んだことの備忘録②です。

発表を聞いた上でのぼくの理解を記載しています。

登壇者・発表者の意見や主張ではないことご了承ください。

 

勉強会のトピックス(一部)

  • 仮説検証型アジャイル開発のすすめ
  • OODAサイクルを活用する
  • リーダー不在の組織のPBL
  • PBL教育におけるアジャイルの役割

仮説検証型アジャイル開発とOODAサイクルについては、こちらの記事に書きました。

リーダー不在の組織のPBL

このトピックスは2人目の登壇者の方の話です。

リーダー不在の組織でPBL(Project Based Learning)を実施したらどうなったか、というお話でした。

リーダー不在の組織として運営していたが、価値提供に至らない事態に発展。

登壇者の方がリーダーとなり、組織を立て直してプロダクトをリリースしたという成功譚ですが、リーダー像についての考察がまとまっていて勉強になりました。

 

登壇者の語ったリーダー不在の組織でやったこととその結果

  • リーダーを不在にしてファシリテータを交代した
    →ファシる目的の「知的創造活動の推進」は難易度が高かった。

    →ファシリテータ当番が罰ゲームみたいな認識になった。

  • 誰かに責任が偏らなように平等の責任にした

    →タスクが完遂されなくなった

  • なんでも発言できるようにした

    →議論が収束しなくなった

リーダーの責任とは何か

リーダーとは3つの責任を持つということ。

  • 遂行責任・・最後までやり遂げる
  • 判断・説明責任・・判断や問題発生時の対応策を判断する
  • 評価・賠償責任・・問題発生時に時間的・経済的な賠償の対象となる。
    チームの中で最も評価を受ける(ネガにもポジにも)

遂行責任とは、プロジェクトを進めて成果に結びつける責任のこと。

判断・説明責任とは、チームの抱える問題の意思決定に携わること。また決定についてチームとステークスホルダーに十分な理解を促す責任のこと。

評価・賠償責任とは、プロジェクト結果による評価が最大に作用する責任のこと。(ネガティブにもポジティブにも)

あるいはそのために自己の時間や金銭などを差し出す責務があること。

アサーティブネスなチームになる

アサーティブネスとは

  • 自己および他者を尊重する
  • 攻撃的あるいは作為的にならない
  • 受動的にならない、また沈黙しない

という状態を指すそうです。アサーティブが断言的、断定的、独断的という意味なのでそうではないコミュニケーションを心がけようということのようです。

 

 PBL教育におけるアジャイルの役割

PBLはProject Based Learningのこと。

(Problem Based Learningというものもあるそうです)

教育機関でのPBL教育にあたり、アジャイルスクラム)はプロジェクトを進めるためのフレームワークやタスクとして利用しているそうです。

 

最初から正解がわからないものに対して、アジャイルスクラム)を採用するのは良い選択だと思います。

 

以上です。

 

仮説検証型アジャイル開発でMVP特定をスムーズに行う - あじゃてくminiで学んだこと

2021/2/12(金)のあじゃてくミニ#3(Agile Tech Mini #3)のカンファレンスで学んだことの備忘録です。

発表を聞いた上でのぼくの理解を記載しています。

登壇者・発表者の意見や主張ではないことご了承ください。


勉強会のトピックス(一部抜粋)

  • 仮説検証型アジャイル開発のすすめ
  • OODA(ウーダ)サイクルを活用する
  • リーダー無き組織のPBL
  • PBL教育(プロジェクト推進におけるアジャイルの役割)

仮説検証型アジャイル開発のすすめ

仮説検証型アジャイルとは、 仮説検証を繰り返してMVPの取りうる選択肢の幅を狭めていく、ということのようです。

f:id:yurukaiha:20210213223932j:plain

仮説検証型アジャイル開発の図

※上記図は登壇者スライドの再現です。

  • 縦矢印はプロダクトの取りうる幅が表現されています。
    (MVP特定以降は幅が狭くなります)
  • 図左の赤い3つの円が「仮説検証」
    真ん中の縦矢印より右が「アジャイルサイクル」
    一番右の縦矢印より右が「MVP価値検証(次のステップへ)」

アジャイルサイクルに入る前に仮説検証フェーズを経ることで、より精度の高いプロダクトが作れる、ということだと理解しました。

 

この仮説検証型アジャイル開発の利用方法は2つ考えられると思いました。

  1. MVP特定までを定義する(アジャイルサイクルとは別定義する)
  2. MVPの揺れを定義する

一つ目は、プロダクトのMVP特定をアジャイルサイクルに含めないで行うということかと理解しました。

登壇者の方は、PDCAではなく別の行動サイクルOODA(ウーダ)を高速で回すと仰っていたので、プロダクトMVP特定までを定義するために「仮説検証型」というスタイルを考えられたのではないかと推測します。

※OODAについては後述します。

スクラムでいうインセプションデッキからMVPの定義までを円滑に進めやすくなるのかなと思いました。

 

二つ目は、プロダクト事前検証におけるMVP定義を「幅」とすることで、MVP価値検証によってMVPの再定義が求められた場合でも、柔軟に対応できる線引きとするのではないかと考えました。

事前に幅広く検証することで、MVP価値が想定していたものでなかった時も、事前検証の中から二の手、三の手を打って、プロダクトを成長させるということと理解しました。

 MVP価値がないと判断した時点で検証をしていては遅い、ということなのだと思います。

 

OODA(ウーダ)サイクルとは

回すのはPDCAサイクルではなくOODAサイクルが良いと登壇者の方はおっしゃっていました。

OODAは

  • Observe(観察)
  • Orient(仮説構築)
  • Decide(意思決定)
  • Action(実行)

というサイクルになっています。

 

PDCAサイクルと比較すると下記のような感じになります。

OODAサイクル 実施内容 PDCAサイクル 実施内容
Observe(観察) 情報を集める Plan(計画) 何を行うか意思決定を行う
Orient(仮説構築) 仮説を検討する Do(実行) 実行する
Decide(意思決定) 仮説の採用・意思決定 Check(評価) 実行結果の評価を行う
Action(実行) 実行する Action(改善) 評価に基づく改善
Observe(観察) 実行結果を観察し情報を集める Plan(計画) 改善内容を計画に取り入れる
・・ ・・ ・・ ・・

 

比較してわかるように、OODAとPDCAは回す対象物がそもそも違うと思われます。

定型化が行える業務はPDCAで回した方が早いと思います。

一方、開始時点で定義が不十分で、未知の要素が多分にある場合はOODAで回したほうが試行錯誤を多く、精度高く行えると思います。

(定型化できる業務であっても、業務について深い理解や知識がない場合はOODAを無意識に回していると思います)

 

OODAの特徴は2つあると思っています。

  1. 情報収集から開始すること
  2. 意思決定がサイクルに組み込まれていること。

一つ目は、手持ちの情報が常に不完全であることが指摘されています。

現在わかっていることが次のサイクルでもそのまま通用するとは限らないという指摘だと思います。

MVPにおけるマーケットあるいはターゲットが変異している可能性があること、MVPの価値が顕在化していない、決まっていないから、情報収集を常に行うということだと理解しました。

PDCAと比較すると知識や行動が、次のサイクルでも必ず役に立つという前提になっているのと大きな違いだと思いました。

 

二つ目は、意思決定にサイクル実施者が関与していることです。

PDCAは実施する内容を決めるのはサイクル実施者ではない場合が多いと思います。

PDCA何をやるかは決まっていて、どうやるかを工夫する仕組みだと思います。

OODAは何をやるかを考える仕組みだと思います。

そもそも何をやるかが決まっている・決められるプロジェクトの場合、アジャイルスクラムで行う必要性が薄いのだと思います。

詳細に計画できるのであればウォーターフォールで開発しても十分効果が出るとおもうので。

 

 

後半は次の記事で紹介します。

以上です。 

 

α5100で写真を撮りました

ネコチャンズを撮影しました。

f:id:yurukaiha:20210213191335j:image

 

 
 
 
 
 
View this post on Instagram
 
 
 
 
 
 
 
 
 
 
 

A post shared by @nekotocode

 
 
 
 
 
View this post on Instagram
 
 
 
 
 
 
 
 
 
 
 

A post shared by @nekotocode

 
 
 
 
 
View this post on Instagram
 
 
 
 
 
 
 
 
 
 
 

A post shared by @nekotocode

 

おねえちゃん猫と妹ちゃん猫を撮りました。

 

 

α5100の良い点

  • スマホと変わらないくらい軽い
  • 小さくて妻も持ちやすいみたいです
  • 室内でも鮮明に映る
  • 背景ぼかし動画が撮りやすい
  • 180度チルトで自撮りがしやすい

室内で光が少なくても綺麗に映るのがよいです。

 

α5100の微妙な点

  • 写真の出来はiPhoneとそんなに変わらない(※腕のせいもあります)
  • 3インチディスプレイがみづらい。特に晴天の屋外。
  • バッテリー消費がわりと早い。20-30分とって、100%→89%

 

写真編集はLight Roomを使いました。

まだ使い方を模索している途中です。

 

以上です。

 

 

 

Classic ASPでファイルアップローダーを作る

やりたいこと

Classic ASPでファイルアップローダーを作る。

BASP21ライブラリなしでできないか?

こちらのサイトに解説がありました。 送信されたバイナリの改行コードからフォーム情報を特定する方法でした。

フォーム項目が多いほど、改行位置からの特定が難しくなるのでBASP21を使った方が適切だと思います。

環境・ツール

BASPのダウンロード・インストール

BASP21Down Load! Bsmtp20070629-587.lzh(119KB)からダウンロード

実装

<%@ Language=VBScript %>
<%

%>
<html>
<body>
    <form method="POST" ENCTYPE="multipart/form-data" >
        <input type=file  name=img accept="image/*" >
        <br>
        <input type=submit formaction=test_basp.asp>
    </form>
</body>
</html>
<%@ Language=VBScript %>
<%
dim total_bytes

' 1.総バイト数を読み込み
total_bytes = Request.TotalBytes
response.write("totalbytes:" & total_bytes & "<br>")

' 2.basp objを宣言
Set bobj = Server.CreateObject("basp21")

' 3.バイナリ読込
barray = Request.BinaryRead(total_bytes)

uploadDir = "D:\~~\dir\" ' サーバの保存先パスを指定する
filename = bobj.FormFileName(barray,"img")

' 4.サーバに保存
wblen = bobj.FormSaveAs(barray,"img",uploadDir & filename)
response.write("wblen:" & wblen & "<br>")

%>

解説

1.総バイト数を読み込み

Request.TotalBytesでフォームから送信された総バイト数を取得します。 その下のResponse.Write(...は取得した総バイト数を表示しているだけです。

2.basp objを宣言

BASP21オブジェクトを作ってます。

3.バイナリ読込

barray = Request.BinaryRead(total_bytes)で総バイト数を引数にして全バイナリをbarrayに読み込みます。 bobj.FormFileName(barray,"img")imgというnameのフォームのバイナリを取得します。

4.サーバに保存

bobj.FormSaveAs(barray,"img",uploadDir & filename)でサーバにバイナリデータをファイルとして保存します。 1つ目の引数barray・・・全バイナリデータ(barray)から探す。 2つ目の引数img・・・name=imgのフォームのバイナリデータを取得。 3つ目の引数uploadDir & filename・・・uploadDirのディレクトリに、filenameの名前で保存する。

wblenは成功時は正の数字で書き込んだバイト数が表示されます。 マイナスの時はエラーメッセージです。BASP21 proのメッセージリファレンスから内容確認できます。

備考

ENCTYPE="multipart/form-data"を指定するとRequest.Fromで値を取得できなくなるので、bobj.FormBinaryを使うことになります。

よもやま話

BASP21って何だろうと思ってたんですが、babaqさんの開発されたASPコンポーネントだからBASP、21は最初はバージョン番号だったらしいですが、babaqさんが気に入ってそのままコンポーネント名になったそうです。 読み方は「ビーエーエスピー にじゅういち」が本来の呼び方らしいですが、「ばすぷにーいち」と呼ばれているそう。

出典:Baba Centerfolds FAQ

MacにJupyter Notebookをインストールする

Numpy、Pandasを勉強しようとおもい、Jupyter Notebookインストールしたときの備忘録です。

Anacondaを使います。選んだ理由は下記の通りです。

  • インストールが楽で早い
  • 必要なライブラリ一式もインストールされる
  • Condaで仮想環境が作られる 上記の点が良いと思いました。

Anacondaダウンロードページ 上記の Download-> OSとインストーラを選ぶ。

ぼくはGraphical Installerを選んだので「Anaconda3-2020.11-MacOSX-x86_64.pkg」というPKGファイルからインストールしました。

f:id:yurukaiha:20210206212822p:plain

インストールが完了したら「Anaconda Navigator」からAnacondaを起動します。

f:id:yurukaiha:20210206212830p:plain Jupyter NotebookをLunchすると起動します。

(ローカルサーバが建てられ、ブラウザ上で動きます。)

f:id:yurukaiha:20210206223319p:plain

新規->Python3から新しいノートブックを作成できます。

以上です。

カメラα5100購入とQoo10承認待機にハマった話

Qoo10でSONY α5100を購入しました。

f:id:yurukaiha:20210204221657j:imageqoo10 

[Qoo10] ソニー : SONY α5100 ILCE-5100... : カメラ

レンズキットのILCE-5100Lを購入しました。

 

なぜα5100か

ずっとソニーのミラーレス一眼が欲しかったのですが、どれを買ったらいいら分からず勉強していました。

 

α5100に決めた理由

  • APS-Cか、1.0型サイズがいい
  • 軽いのが良い
  • そこそこ安いのがいい(=古いモデルで良い)

という理由に合致したのがα5100でした。

 

カメラの用途にあっていた

  • 子供(乳児)の撮影
  • 猫の撮影
  • 風景の撮影

これまでiPhoneで撮っていたものをグレードアップしたいと考えています。

猫はまったりしているときしか撮影できないので、室内で静止物を撮ることが多いです、

 

カメラの腕に合致していた

なんなら腕の方がもっと低いかも。

iPhoneでしか撮ったことないので、オート設定で撮って大丈夫な機種を探しました。

背景がボケた写真も撮りたいですが、まずはピントが合っていればよいと思ってます。

このため、スマホライクで撮れる廉価なソニーミラーレスが適していると考えました。

 

Qoo10の承認待機にハマった

初めて利用してハマった点がありました。

Qoo10は登録後に承認待機という状態になったまま、数日先に進まないことがあるそうです。

f:id:yurukaiha:20210204220418j:image

 

承認待機となったら、下記のサポートセンターにすぐ連絡しましょう。

上の画像の末尾にある問い合わせ先メールアドレスは無効なメールアドレスと言われてiPhoneのメールからは送ることができません

<お電話でのお問い合わせ>
050-5840-9100
受付時間:09:00~18:00(土日・祝日を除く)
<メールでのお問合せ>
bit.ly/2Dcbbm5

Qoo10の公式アカウントが個人の方に送ったリプライにしか電話番号が書いていない……。

 

メールやアプリからも問い合わせできます。

ただ、メールの問い合わせの方は、送っても確認しますと来たっきり連絡なし。

 

電話したら2時間後には承認され発送してくれました。

日本の大手の電話窓口と違って機会音声でたらい回しにされないのがよかったです。

 

Qoo10で承認待機状態になったら、サポートセンターに電話がおすすめです✨

 

カメラが手元に届いたらまたレビューします。

 

以上です。

このお題で書きました。

お題「これ買いました」

 

 

テレ東WBSのclubhouse紹介の裏Roomが面白かった

f:id:yurukaiha:20210202075920j:plain

昨日夜にclubroomで、ワールドビジネスサテライトの裏Roomが立ってました。

森アナウンサーがclubhouseのヘビーユーザーらしく、何度か他のRoomでもモデレータやスピーカーされているのを見かけました。

番組で紹介されるまでテロップを作成をされるのがリアルタイムで紹介されてたり、何番目のニュースに入るのか、直前まで調整される様子が伝わってきました。

番組の楽屋裏を覗いているような感じで面白かったです。

今朝のスッキリでもclubhouseが紹介されるらしく、ちょうど裏Roomが立っていました。

以上です。