読者です 読者をやめる 読者になる 読者になる

kei0425tan’s blog

技術的なことを主に

プログラミング

mapでasync/awaitを利用する

久しぶりに、JavaScriptのasync/awaitの話です。(node v7.9.0で記載しています。)webをスクレイピングする時など、リストを元に非同期処理を行いたいことがあるかと思います。その際に、mapで呼び出す関数をasync指定で定義しても、かえってくるのはPromis…

find & xargs

linuxのコマンドラインで作業していると、ある特定のファイル全てをなんとかしたいことってよくありますね。 findが便利なんですが、ついつい使い方を忘れてしまいます。 なので、メモ findについて 主要オプション たくさんオプションありますが、必要なの…

cloud9のblankテンプレート

自宅のPCがちょっとプアなのと、どこでもコーディングをするために、普段からcloud9を利用しています。 以下のテンプレートがあり、そこから適したものを選択して利用できるため、環境設定が非常に楽なのも魅力です。 HTML5 Node.js PHP,Apache & MySQL Pyth…

mochaでasync/awaitが使えるようになってました!

node v7.0からasync/awaitが実装されていましたが、起動オプションに--harmony-async-awaitの指定が必要でした。しかし、v7.6からJavaScriptエンジンのV8がバージョン5.5に上がったため、起動オプションの指定が不要になりました。その前に、nodeでの非同期…

.Net DataGridViewのセルのチェックボックスの制御

DataGridView便利でよくつかいますよね?日本人は表が好きなので、なんでもグリッドにすることが多いかと思います。そこで、グリッドのセルにチェックボックスも、ウィザードで簡単に追加できるかと思います。 データの設定も、grid.DataSource = で一発で設…

paizaをswiftでやったら泣きそうになった話 D062:ひな祭り

といわけで、swiftをやってみたのですが、やばいですね。とりあえず練習なので、paizaのD062:ひな祭りをやってみました。paiza.jp環境構築は面倒なので、いつものようにこちらを使います。 Web-based online coding environment | paiza.IOどうせググれば何…

claudia.jsでslack custom commandsを作る

kei0425tan.hatenablog.comというわけで、まずはslackを使いこなせないと始まりません。手始めに、custom commandsを使ってみます。こちらが公式ページ(英語です) api.slack.comその前に、ここまでできてる前提で話しますね。 kei0425tan.hatenablog.com s…

AWSで何をするのか

いろいろやりたいことがたくさんあるのですが、こんなことをやりたいなと思っています。 slackと連携していろんなbotを作成する。 気になるホームページの更新のお知らせ。 アプリケーション(スマホやwebアプリなど)のバックボーン slackと連携していろん…

claudia.js使ってAWS lambdaはじめました

いろいろ調べてみたら、claudia.jsを利用すると簡単にAWS lambdaを利用できるようです。とはいうものの、ほんとにはじめの一歩になるのでかなり苦労しました。例によって、実行環境はcloud9を利用します。 cloud9でのワークスペースの作成 テンプレートにpyt…

AWSはじめました

AWSずっと気になっていたんですが、なぜかメジャーに負けてはいけないような気がしてなかなか使っていませんでした。でも、1年間無料で利用できるんですね。 なので、お試しで使い始めてみました。アカウント登録に必要なもの。 クレジットカード → JCBでも…

POH7「サンタ服」ゲットチャレンジ!

POH8の問題を全部解いてしまったので、昔のにも挑戦してみます。paiza.jp 問題 (適当に省略しています。)幅 X cm、奥行き Y cm、高さ Z cm の直方体の形をしたケーキがあります。 このケーキに「側面と平行な方向」および「前面と平行な方向」に何回か包丁…

POH7「プログラミングで彼女をつくる」「めがね」ゲットチャレンジ!

POH8の問題を全部解いてしまったので、昔のにも挑戦してみます。paiza.jp 問題 (適当に省略しています。)あなたはクライアントから画像分析の仕事を受けました。N × N ピクセルの白黒画像と M × M ピクセルの白黒画像が与えられます。 白黒画像の各画素は …

POH7「プログラミングで彼女をつくる」「水着」ゲットチャレンジ!

POH8の問題を全部解いてしまったので、昔のにも挑戦してみます。paiza.jp 問題 階乗とは数学の演算の一つで、N の階乗をN! と書きます。N が自然数であるとき、階乗は次のように計算できます。 N! = N * (N - 1) * ... * 2 * 1 N が与えられたとき、N! のす…

PostgreSQLのtemplate0,template1,postgresとかバックアップとか

仕事でPostgreSQLを利用しているのですが、いろいろと理解できていなかったところがあったので、その中でもtemplate0,template1,postgresについて template0とtemplate1の違いについて template1 createdb実行時に-Tで指定しない場合はデフォルトで雛形とし…

POH8「恋するハッカソン〜君色に染まるアイドル」 「ゆかた」ゲットチャレンジ!

こちらもランクB相当だそうです。さらさらっと書いたらできちゃったので、ついでに紹介します。

POH8「恋するハッカソン〜君色に染まるアイドル」 「制服」ゲットチャレンジ!

ランクB相当だそうです。最初適当にさらさらっと書いたら、なかなかうまく動作しなかったため、ちょっと真面目に書いてみました。 わざわざクラスまで作成するのもどうかなーと思いつつ、pythonだとハッシュが面倒なのでクラス化しています。

paiza D007:N倍の文字列

初めて1位を取れました!paiza.jpまあ、Dランクなので以下に速く問題を理解して(全部読む必要はない)キーを打つのか勝負なんですけどね。 あとは、タイトルでどんな問題なのか想像して、それに適した言語を選ぶのがポイントです。

codingame ASCII Art

久しぶりに、codingameをやってみました。codingame.com 超意訳で問題説明してみます。 アスキーアートを作ろう 入力 Line 1: the width L of a letter represented in ASCII art. All letters are the same width. 1行目はアスキーアートの幅です。全部の文…

paiza B032:デジタル計算機

ヒントにならないように感想のみで。 まずは基本情報 paiza B032:デジタル計算機 受験者数: 291人 正解率: 70.48% 平均回答時間: 53分25秒 平均スコア: 58.45点いいスコアをとりたかったので、受験者数が少なめ。 面倒な問題はやなので、平均回答時間短…

JavaScriptで末尾再帰で素数

今度は、JavaScriptで末尾再帰を利用して素数を取得してみました。paiza.ioでは処理時間が2秒が上限のため、700000まで取得できました。 スタックオーバーフローはおきませんでした。 末尾再帰とは 関数の末尾が自分自身の呼び出しのみになっている再帰のこ…

Pythonで末尾再帰最適化

今までソースはpaiza.ioでコーディング&実行して、それをGist経由で貼り付けしてたのですが、実は、paiza.ioで直接張り付けられることに気が付きました。全然楽ですね。で、それだけだとさみしいので、Pythonで末尾再帰最適化ができるデコレーションがある…

Pythonで素数

Scalaとの比較でPythonで書いてみました。末尾再帰最適化がないので、スタックオーバーフローになるんだろうなーって思ってたのに、1000000いれてもちゃんと答えがでちゃいました。 恐るべしPython gista7777696f6fe0aa8e1ec065e55e1507e

paizaの結果

最近ちょっとはまってたpaizaの受験結果を適当に紹介。 paizaとは 結果 とりあえず、ランクDから解いてみました。D040:連休の天気 Python2 paiza.jp その後、勧められたのがこちらC010:安息の地を求めて JavaScript paiza.jpまだまだ簡単調子にのって、次に…

Scalaで素数

新しい言語を学びたくて、Scalaをやってみました。Scalaの選考理由としては以下の理由からです。 関数型 パターンパマッチング 末尾再帰最適化 そこそこメジャー というわけで、指定した数以下の素数を求める関数です。 Scalaで素数とてもエレガントに書けた…

Excel VSTO アドインでイベントが発生しなくなる件

Excel の VSTO アドインを作成中に、イベント(セルチェンジなど)が発生しなくなる現象が発生したため、その原因と対処について VSTOとは? Visual Studio Tools for Officeの略。Excelのアドインを作成することができる。大きな違いは以下。 従来のCOM参照…

オンラインコーディング環境について

2016/6課会資料 オンラインコーディング環境について 現在オンラインでのコーディング環境が発達し、ローカルに環境を用意しなくても容易に快活ができるようになってきています。 スキルチェックサイト 自分の実力がどれくらいあるのかチェックに利用できま…

Xamarinについて

2016/5課会資料 Xamarinについて Xamarin(ざまりん)とは .NETを利用してiOSやAndroidアプリが作成できるツールやフレームワークなどの総称および開発会社名。 もともとWindows以外のプラットフォーム上で.NETを動作させるMonoプロジェクトから始まり、それ…

PHP7リリース!

2016/2課会資料 PHP7リリース! 2015/12/3にPHP5以来11年ぶりにPHP7がリリースされました。なぜ、PHP6じゃないの? → PHP6は内部文字コードをUTF16で保持しようとしたが、処理が複雑かつメリットがほとんどないため開発中止(unicode化以外のPHP6に入れる予…

LTSV(Labeled Tab-Separated Values)について

2016/1課会資料 LTSV(Labeled Tab-Separated Values)について LTSVとは日本で開発されたテキストフォーマットの仕様。TSVフォーマットにラベルを付けただけ。例:従来のApacheログ 127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP…

Microsoft Fakes Frameworkについて

2015/12課会資料 Microsoft Fakes Frameworkについて Visual Studio 2012から単体テスト用にMicrosoft Fakes Framework(以下MS Fakes)が追加されました。 MS Fakesとは簡単にいうと、.Net Frameworkのバイナリレベルのスタブ作成フレームワークになります。…

Visual Basic(C#)のLINQについて

2015/11課会資料 Visual Basic(C#)のLINQについて Visual Basic 2008(C# 3.0)からLINQ(Language INtegrated Query)が追加されましたが、あまり活用している人をみたことありません。なので便利に使う方法を紹介します。そもそも、LINQとは?簡単にいうと.net…

Windows10におけるIE11の互換性について

2015/10課会資料 Windows10におけるIE11の互換性について Windows10がリリースされ標準ブラウザがEdgeとなり互換性を重視してIE11も同梱されています。 推奨されていませんが、IE11でドキュメントモードを利用することにより、IE10以下と互換性を重視した動…

Node.js 4.0.0リリース

2015/9課会資料 Node.js 4.0.0リリース Node.jsとは サーバサイドJavaScript環境。もともとブラウザのおまけ?だったJavaScriptをサーバで利用できるように実装したもの。I/Oなどを非同期で扱う。 → 人気の理由:JavaScriptでサーバサイドが書ける。シングル…

Heroku(へろく)について

2015/8課会資料 Heroku(へろく)について PaaSのひとつ。特徴としては以下。 メリット ・対応言語が多い → Ruby, PHP, Node.js, Python, Java, Clojure, Scala, GO ・gitと連携 ・メンテナンスコストがほぼ0 ・デプロイがコマンド1発。 ・スケールアウトが…

OSの32bit,64bit問題について

2015/5課会資料 OSの32bit,64bit問題について 今回機器更新にあたって、OSを32bitから64bitにアップグレードする予定であった。基本的にlinuxの場合は32bitと64bitの差は少なく、32bitの制限は1プロセスのメモリが4Gまでぐらいだが、浮動小数点の演算で誤差…

Ansibleについて

2015/4課会資料 Ansibleについて サーバ環境構築を自動化するツール。他にも、PuppetやChefなどが有名。サーバ環境構築を自動化するメリット ・手作業によるミスの減少。新規環境をすぐに用意できる。実験的な環境構築・破壊が楽になる。 同じ環境を複数台に…

DBのレコード追加について

2015/03課会資料 DBのレコード追加について DBで大量にレコードを追加する場合、パフォーマンスが悪いことがよくあります。 そういった場合には以下を試してみましょう。後ろにあるほうが速くなります。・通常のインサート 言語レベルでのループして、INSERT…

ゲーミフィケーションプログラミングについて

2015/1課会資料 ゲーミフィケーションプログラミングについて ゲーミフィケーションとは 課題の解決や顧客ロイヤリティの向上にゲームデザインの技術やメカニズムを利用する活動全般のこと。なのですが、本当にゲームをしながらプログラミングを学習するサイ…

CODE VS プログラマ日本一決定戦(codevs.jp)について

2014/12課会資料 CODE VS プログラマ日本一決定戦(codevs.jp)について CODEVSとは プログラムを組んで参加者同士で戦わせる競技プログラミングの一種です。 他の競技プログラミングとは異なり、ゲームのルールで対戦がメインとなっています。今回は戦略ゲー…

Dockerについて

2014/10月の課会資料 Dockerについて Dockerとはコンテナ型仮想化のひとつ。→ 対義語は完全仮想化(VM) 完全仮想化のメリット ・仮想マシン毎に完全に分離された環境になるため異なるOSでも動作が可能。(場合によってはCPUレベルで異なるマシンも動作可能…

herokuでnodejsでチャット

herokuでリアルタイムチャット作ってみたいなということで、こちらを参考にして作ってみました。(参考というかコアな部分は丸コピになります。) Node.js + Socket.IO + jQuery で最小構成チャット - Qiita herokuでアプリの設定 橋本商会 » Node.jsに入門…

pyExceleratorで作成したファイルをoffice2010で開くと「ファイルエラー:データが失われた可能性があります。」

pythonでexcelのxlsファイルの読み書きができるモジュールでpyExceleratorというものがあります。 現状ではもうメンテされておらず、python-excelライブラリ(xlrd, xlwt,xlutils)に移行するのが推奨かとは思いますが、何らかの事情で使わなければいけない&o…

IE8のArray.prototype.sort()の第2引数

普段、chromeで作成しています。 しかし、IE8での動作保証をしなければいけなかったりするので、リリース前にIE8で動作確認するのですが、先日原因不明のエラーが発生しました。 JScript オブジェクトを指定してください。 調査したところ、とあるライブラリ…