2017年9月25日月曜日

関数型JavaScriptへのクイックガイド(英語)

A Quick Introduction to Functional Javascript – Hacker Noon
https://hackernoon.com/a-quick-introduction-to-functional-javascript-7e6fe520e7fa

JavaScriptのメモリ管理+よくある4つのメモリリーク(英語)

How JavaScript works: memory management + how to handle 4 common memory leaks

A few weeks ago we started a series aimed at digging deeper into JavaScript and how it actually works: we thought that by knowing the building blocks of JavaScript and how they come to play together you'll be able to write better code and apps.
https://blog.sessionstack.com/how-javascript-works-memory-management-how-to-handle-4-common-memory-leaks-3f28b94cfbec

2017年9月22日金曜日

AWSでの不正アクセスの傾向と対策

ASCII.jp:オンプレとどこが違う? 実例に見るAWSでの不正アクセスの傾向と対策
http://ascii.jp/elem/000/001/549/1549718/

オンプレミス環境の場合は、ハードディスクのイメージコピーを取得してデジタル・フォレンジックを行なうのが定石で、そのための専用装置も提供されている。「だがAWSでは、HDDを抜いてきてコピーすることはできず、こういう方法が使えないので、ソフトウェアによるイメージコピーを使う」(関さん)ことになる。もしAWS上のインスタンスでインシデントが発覚したら、やられてしまったボリュームのスナップショットを作成し、それを調査用インスタンスにアタッチした後、ddコマンドを用いてイメージを取得することになる。あとは専門業者に任せるか、デジタル・フォレンジック用のソフトウェアを用いて解析を行なえばよい。

「だが、時間をかけてはいられないとき、あるいは調査用にマスターアカウントをもらえないときには、SSHで接続し、コマンドを続けて打つことでローカルにイメージ出力を吐く、あるいはライブイメージングという方法もあることを知っていてほしい」(関さん)。時間がかかるように思えるが、圧縮をかければ意外と早く処理できるという。これはまた、AWSに限らず他のクラウドサービスや、物理的に立ち入りができないデータセンターでも活用可能な方法だ。

2017年9月20日水曜日

Linux ファン回転数・温度設定の変更

fancontrol
http://www.inoshita.jp/freo/page/d2700_005
https://goo.gl/Pyzga3

パソコンの内部ファンを回す速度を変えらるやつ。
設定ファイルを書くことで、ファンを回し始める最低CPU温度や最高温度などを設定できます。
自分は、多少暑くなっても構わないのである一定を超えるとファンをぶん回すように設定しています。

Design Docとは

プロジェクト成功確率向上の近道とは?(3):残業も減らせる!? 上級エンジニアになるためのDesign Doc超入門 (1/3) - @IT
http://www.atmarkit.co.jp/ait/articles/1606/21/news016.html


表 Design Docに含み得る項目一覧
項目名内容
1*タイトルこのソフトウェアの名称
2*著者名このDocを書いた人
3プロジェクトメンバー開発に参加するメンバー
4*目的このソフトウェアの目的
5要求仕様要求仕様書、機能仕様書などへのリンク(要求仕様の要点を書く場合もある)
6*背景このソフトウェアを開発する背景・経緯など
7既存のものとの相違点既存品があるなら、それとの違いを書く
8関連システム・仕様など関連システムやその仕様書へのリンク
9*ハイレベルアーキテクチャ(アーキテクチャ概要)システム全体を俯瞰した構成図など
10*各パート(モジュール・クラス)の概要各パートの概要・責務・目的など
11*各パート(モジュール・クラス)の内部仕様・処理フローなどデータ構造、アルゴリズムなど
12各パート(モジュール・クラス)の実装場所ソース・ファイル名、実行形式の名称など
13使用例モジュールの利用例が分かるサンプルコードなど
14セキュリティ仕様・考慮事項など想定される問題と、その対処方法などについて
15既知の問題事前に判明している問題・課題などを書く
16*テスト方案どういう観点で何をテストすればよいか、どのようにテストすればよいか
17運用方法運用時のポイント、監視の方法など
18参考文献参考文献へのリンク
19このDocの格納場所リポジトリのパス、ファイルサーバのパスなど
20メモ設計のヒントや気付いた点、関連情報など何でも
21変更履歴このDocについて、いつ・誰が・どのような変更をしたのか履歴を記述

DeployGate - ストアに出さずiOSアプリを配布する

DeployGate - 開発中のアプリの配布を、びっくりするぐらい簡単に
https://deploygate.com/?locale=ja

2017年9月19日火曜日

セキュリティ PHP、WordPress

安全なPHPアプリケーションの作り方2016
https://www.slideshare.net/ockeghem/phpconf2016


CMS四天王への攻撃デモを通じて、WordPressの効果的な防御法を学ぼう
https://www.slideshare.net/ockeghem/wordcamptokyo2016-66237748

ウェブアプリケーションセキュリティ超入門

https://www.slideshare.net/ockeghem/owasp-nagoya20170902

<iframe src="//www.slideshare.net/slideshow/embed_code/key/nAouJH8LsMXcBz" width="595" height="485" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe> <div style="margin-bottom:5px"> <strong> <a href="//www.slideshare.net/ockeghem/owasp-nagoya20170902" title="ウェブアプリケーションセキュリティ超入門" target="_blank">ウェブアプリケーションセキュリティ超入門</a> </strong> from <strong><a href="https://www.slideshare.net/ockeghem" target="_blank">Hiroshi Tokumaru</a></strong> </div>

2017年9月14日木曜日

PHP: .htaccessでshort_open_tagをON/OFF

HTML内に記述したPHPコードを実行するには、.htaccess内に以下を記述。

・Amazon Linux(CentOS6相当)の場合
AddType application/x-httpd-php .php .html

・以下のように記述しなければいけないサーバーもあった。
AddHandler application/x-httpd-php .php .html


また、.htaccessでshort_open_tagをオンするには、.htaccessファイルに以下を記述。
php_flag short_open_tag On
※これがOffになっていてもコードは実行できたので問題なかった。

2017年9月12日火曜日

DITA-OT標準のリテラル文字列を変更/追加する ( ソフトウェア ) - tmakitaのブログ - Yahoo!ブログ

「最近のWebパフォーマンス改善について知っておきたいコト」についてあほむに聞いてきた | HTML5Experts.jp

OAuth

WP REST APIを利用したNodeJSのWebアプリを死ぬ思いで作る | 高橋文樹.com
https://takahashifumiki.com/web/programing/3683/

Node.js + ExpressでREST API開発を体験しよう[作成編] - Qiita

質の高いAPIを作るための7つの習慣 // Speaker Deck

2017年9月11日月曜日

解決方法: Windows10 なぜかすぐスリープしてしまう

Windows10で、スリープ設定を長くしてみてもすぐに(2分程度)スリープする。ファイルダウンロード中など動作しているのに2分ほど経つと勝手にスリープしてしまう、という問題の解決方法。

手順
  1. レジストリを修正して、電源オプションの隠し設定「システム無人スリープタイムアウト」を表示させる。
  2. 表示された「システム無人スリープタイムアウト」の設定値を変更

レジストリ修正箇所

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\7bc4a2f9-d8fc-4469-b07b-33eb785aaca0] 

"Attributes"を2にします。


コントロールパネルで「システム無人スリープタイムアウト」の時間を長くします。



参考
Windows10が数分で勝手にスリープする症状の原因と解決方法
http://www.dorari.jp/iroiro/windows-sleep-trouble/#kaiketsu

2017年9月6日水曜日

JavaScriptでうっかりやってしまいそうなこと色々 : アシアルブログ

高校生向けウェブプログラミングコース内容案

高校生にWeb上でプログラミングを教え始めたエンジニアがこの8ヶ月間で得た気づき - Qiita
http://qiita.com/sifue/items/7e7c7867b64ce9742aee

  1. Webプログラミング入門コース
    1. Web ブラウザとは (Chrome, デベロッパーコンソール, alert)
    2. はじめてのHTML (VSCode, HTML, Emmet)
    3. さまざまなHTMLタグ (h, p, a, img, ul, tableタグ)
    4. HTMLで作る自己紹介ページ (HTMLタグ組み合わせ, コンテンツ埋め込み)
    5. はじめてのJavaScript (JS, ES6, エラー)
    6. JavaScriptでの計算 (値, 算術演算子, 変数, 代入)
    7. JavaScriptで論理を扱う (論理値, 論理積, 論理和, 否定, 比較演算子, if)
    8. JavaScriptのループ (ループ, for)
    9. JavaScriptのコレクション (コレクション, 配列, 添字, undefined)
    10. JavaScriptの関数 (関数, 関数宣言, 引数, 戻り値, 関数呼び出し, 再帰)
    11. JavaScriptのオブジェクト (オブジェクト, モデリング, プロパティ, 要件定義)
    12. はじめてのCSS (CSS, セレクタ, background-color, border)
    13. CSSを使ったプログラミング (transform, id, class)
    14. Webページの企画とデザイン (企画, 要件定義, モックアップ, 16進数カラーコード)
    15. 診断機能の開発 (const, let, JSDoc, インタフェース, 正規表現, テストコード)
    16. 診断機能の組込み (div, 無名関数, アロー関数, ガード句, truthy, falsy)
    17. ツイート機能の開発 (リバースエンジニアリング, URI, URL, URIエンコード)
  2. Linux開発環境構築コース
    1. LinuxというOS (VirtualBox, Vagrant, Ubuntuのインストール, OS, CUIの大切さ)
    2. コンピューターの構成要素 (ノイマン型コンピューター, プロセス, lshw, man, ps, dfの使い方)
    3. ファイル操作 (pwd, ls, cd, mkdir, rm, cp, mv, find, ホストマシンとの共有ディレクトリ)
    4. 標準出力 (標準入力、標準出力、標準エラー出力、パイプ、grep)
    5. vi (vimtutor)
    6. シェルプログラミング (シバン, echo, read, 変数, if)
    7. 通信とネットワーク (パケット, tcpdump, IPアドレス, TCP, ルーター, ping)
    8. サーバーとクライアント (tmux, nc, telnet)
    9. HTTP通信 (http, https, DNS, hostsファイル, ポートフォワーディング)
    10. 通信をするボットの開発 (cron, ログ収集)
    11. GitHubでウェブサイトの公開 (GitHub, リポジトリ, fork, commit, 情報モラル)
    12. イシュー管理とWikiによるドキュメント作成 (Issues, Wiki)
    13. GitとGitHubと連携 (git, ssh, clone, pull)
    14. GitHubへのpush (init, add, status, インデックス, commit, push, tag)
    15. Gitのブランチ (branch, checkout, merge, gh-pages)
    16. ソーシャルコーディング (コンフリクト、プルリクエスト)
  3. Webアプリ基礎コース
    1. Node.js (Node.js, nodebrew, Linux, REPL, コマンドライン引数, プルリク課題)
    2. 集計処理を行うプログラム (集計, 人口動態CSV, Stream, for-of, 連想配列Map, map関数)
    3. アルゴリズムの改善 (アルゴリズム, フィボナッチ数列, 再帰, time, プロファイル, nodegrind, O記法, メモ化)
    4. ライブラリ (ライブラリ, パッケージマネージャー, npm)
    5. Slackのボット開発 (slack, mention, bot)
    6. HubotとSlackアダプタ (hubot, yo)
    7. モジュール化された処理 CRUD, オブジェクトライフサイクル, filter)
    8. ボットインタフェースとの連携 (モジュールのつなぎ込み, trim, join)
    9. 同期I/Oと非同期I/O (同期I/O, 非同期I/O, ブロッキング)
    10. 例外処理 (try, catch, finally, throw)
    11. HTTPサーバー (Web, TCPとUDP, Webサーバーの仕組み, Node.jsのイベントループ, リスナー)
    12. ログ (ログ, ログレベル)
    13. HTTPのメソッド (メソッド, GET, POST, PUT, DELETE, CRUDとの対応)
    14. HTMLのフォーム (フォームの仕組み, form, input)
    15. テンプレートエンジン (テンプレートエンジン, jade)
    16. HerokuでWebサービスを公開 (Webサービスの公開, heroku, dyno, toolbelt, login, create, logs)
    17. 認証で利用者を制限する (認証, Basic認証, Authorizationヘッダ, ステータスコード)
    18. Cookie を使った秘密の匿名掲示板 (Cookie, Set-Cookie, expire)
    19. UI、URI、モジュールの設計 (モジュール設計, フォームのメソッド制限, リダイレクト, 302)
    20. フォームによる投稿機能の実装 (モジュール性, textarea, 303)
    21. 認証された投稿の一覧表示機能 (パスワードの平文管理の問題, 404, テンプレートのeach-in)
    22. データベースへの保存機能の実装 (データベース, PostgreSQL, 主キー)
    23. トラッキングCookieの実装 (トラッキング Cookie, IDの偽装, Cookie の削除)
    24. 削除機能の実装 (データベースを利用した削除処理, 認可, サーバーサイドでの認可)
    25. 管理者機能の実装 (Web サービスの管理責任, 管理者機能の重要性)
    26. デザインの改善 (Bootstrap, レスポンシブデザイン, セキュリティの問題があるサイトを公開しない)
    27. 脆弱性 (脆弱性, 脆弱性で生まれる損失, 個人情報保護法, OS コマンド・インジェクション)
    28. XSS脆弱性の対策 (XSS, 適切なエスケープ処理, リグレッション)
    29. パスワードの脆弱性の対策(ハッシュ関数, メッセージダイジェスト, 不正アクセス禁止法, パスワードジェネレーター, 辞書攻撃)
    30. セッション固定化攻撃脆弱性の対策 (セッション, セッション固定化攻撃, ハッシュ値による正当性チェック)
    31. より強固なセッション管理 (推測しづらいセッション識別子, 秘密鍵)
    32. CSRF脆弱性の対策 (CSRF, ワンタイムトークン)
    33. 安全なHerokuへの公開 (脆弱性に対する考え方, HTTPの廃止)
  4. Webアプリ応用コース
    1. Webフレームワーク (Express.js, フレームワーク導入, 簡単なAPI, セキュリティアップデート, Cookie パーサー, ミドルウェア, 外部認証, ロガー)
    2. ExpressのAPI (app, Properties, Request, Response, Router)
    3. GitHubを使った外部認証 (Passport, OAuth)
    4. テスティングフレームワーク (Mocha, レッド, グリーン, リファクタリング)
    5. 継続的インテグレーション (CircleCI)
    6. クライアントのフレームワーク (Webpack, Chrome 以外のブラウザでもES6)
    7. DOM操作のフレームワーク (jQuery, jQueryアニメーション, this)
    8. AJAX (jQuery.ajax, クロスドメイン, 同一生成元ポリシー, x-requested-by, CORS)
    9. WebSocket (WebSocket, WebSocketの状態遷移, Socket.io)
    10. RDBとSQL (DDL, DCL, CREATE, DROP, INSERT, DELETE, UPDATE, WHERE)
    11. データモデリング (リレーショナルモデル, 正規化)
    12. テーブルの結合 (外部結合, 内部結合, 片側外部結合, JOIN ON)
    13. インデックス (インデックス, 複合インデックス, Bツリー)
    14. 集計とソート (SUM, COUNT, ORDER BY, GROUP BY)
    15. 「予定調整くん」の設計 (要件定義、用語集、データモデル、URL設計、モジュール設計、MVC)
    16. 認証とRouterモジュールの実装 (Mocha, supertest, passport-stub, モックテスト)
    17. 予定とユーザーの保存 (セキュリティ要件, UUID, 複合主キー)
    18. 予定とユーザーの一覧の表示 (非同期処理, Promise, then)
    19. 出欠とコメントの表示 (入れ子の連想配列, Promise.all, 子どもからデータを消す)
    20. 出欠とコメントの更新 (Promiseチェイン, リファクタリング)
    21. 予定の編集と削除 (要件の衝突, 関数の再利用)
    22. デザインの改善 (this, グローバルオブジェクト)
    23. セキュリティ対策と公開 (X-Frame-Options, Herokuの環境変数)

pythonで小さなツールを作る時のtips - Qiita

http://qiita.com/m_mizutani/items/c48f67f871d1d41ff4b9