Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

【読書メモ】鉄道と観光の近現代史

鉄道と観光の近現代史 (河出ブックス)

鉄道と観光の近現代史 (河出ブックス)

久しぶりに文化系の本をば。
タイトル通り、鉄道と観光との関係を書いた社会史系読み物です。
初詣って鉄道開拓以来メジャーになった行事らしいですよ、知ってました?
他にもアプト式のような黎明期の日の丸鉄道を支えた技術が出てきたり、
鉄道駅ご当地ネタがあったりと、
取っつきやすい文体も含めて良い読み物でした。

印象に残った話題としては、
技術進歩や路線拡張の影響で嘗ての一等地が後発に負ける話がキましたね。
こういう話は業界や時代を問わないんだなぁと。

Excel系でその週の月曜日を導出する。

Excel系でその週の月曜日を導出するにはWeekDay関数との合わせ技が使えます

実際のところ

例えば、A1に日付にが入っている状態で
週の月曜日を出すには、以下のようにします。

=A1-WEEKDAY(A1,3)

画像の11/10の例では11/6が月曜日です。
(実験環境はGoogle Spread Sheet)
f:id:shuzo_kino:20171111141028p:plain
本家Excelだと火曜日始まりの関数まであるので、
特殊な状況でも対応はできそうですね。

しゃっくりが止まらない場合、胃が膨張してる恐れが

数日にわたってしゃっくりが止まらない場合、
胃が膨張してる恐れがあります。
しゃっくりは横隔膜の痙攣によって起こります。
横隔膜は肺と胃の間にあるのですが、
胃が何らかの都合で肥大した場合
常に圧迫する方向に働くのでしゃっくりという反応になるわけです。
私は元々呑気症気味だった所に
仕事のストレスが許容量超えちゃったみたいですね。

Python経由で手っ取り早くローカルHTMLファイルを外部に公開したいならhttp.server

今日、とある協力企業さんから習って驚いたのですが……
HTMLファイル等々、静的ファイルが用意できているなら、http.serverを使うことでコードレスでサーバーを起動できます
わざわざbottleで立てる必要なんか無かったんや!

実際のところ

"$WEBPAGEPATH"にhtml、css、JSといったローカルでも確認できる静的ファイル群があるとします。
その場合、以下のようにします

$ cd $WEBPAGEPATH
$ python3 -m http.server
$ python3 -m http.server
Serving HTTP on 0.0.0.0 port 8000 ...

ASP.NET MVC5でFileアップロード機能をつくる

ASP.NET MVC5でFileアップロード機能をつくる場合、

実際のところ

Viewのところは、一般的なtype="file"で大丈夫です。

@using (Html.BeginForm("Action", "Controller", FormMethod.Post, new 
                                       { enctype = "multipart/form-data" }))
{
  <!-- ... --!>
    <label for="ImageUpload">Filename:</label>
    <input type="file" name="ImageUpload" id="ImageUpload" />
  <!-- ... --!>
}

該当ViewModelの方で

public class ViewModel
{
    public string ImagePath{ get; set; }
}

で、controllerの方で

// ...
using System.Web; // Server.MapPath()のために必要

// ....


public class UploadController : BaseController
    {
        public ActionResult UploadDocument()
        {
            return View();
        }


[HttpPost]
public ActionResult Action(ViewModel model)
{
    if (ModelState.IsValid)
    {

        var file = Request.Files["ImageUpload"];
        if (file != null && file.ContentLength > 0){
            var uploadDir = "~/uploads"
            var imagePath = Path.Combine(Server.MapPath(uploadDir), file.FileName);
            var imageUrl = Path.Combine(uploadDir, file.FileName);
            file.SaveAs(imagePath);
            model.ImagePath= imageUrl;
        }

    }
}

    }