タグ

ブックマーク / qiita.com (198)

  • 関数型プログラミングはオブジェクト指向の正当な後継である - Qiita

    この記事の補足を書きました。併せてご覧いただけると幸いです。 「関数型プログラミングはオブジェクト指向の正当な後継である」がわからない理由 対象読者 この記事はオブジェクト指向設計を格的に学びドメイン駆動設計や責務駆動設計等を実践したことがある人々に「オブジェクト指向と関数型プログラミングの関係」を深く知ってもらうことを目的としています。これらの人々の中には手に馴染んだオブジェクト指向に未だに固執している人や、関数型プログラミングが気になってSwiftScalaを触り始めているがイマイチ関数型プログラミングの質が見えていない人も多いと思います。そうした人々が次の一歩を踏み出すキッカケになれば幸いです。 なぜこの記事を書こうと思ったのか? IT系の情報サイト等で「Haskellがすごい」という記事を見かけるようになってからもう10年近く経とうとしています。私自身もこれまでに何度か関数型

    関数型プログラミングはオブジェクト指向の正当な後継である - Qiita
    bokuweb
    bokuweb 2016/09/11
  • [Emacs] magitチュートリアル - Qiita

    はじめに magitEmacsからgitリポジトリの操作ができるツール。 一度慣れたらあまりの便利さに手放せなくなるのだが、少しとっつきにくいところもある。 そこで、Emacs,git共に少し触れる程度の人を対象にチュートリアルを作成してみた。 インストールについて 標準のパッケージマネージャを使用している場合は、M-x package-list-packagesでパッケージリストを出し、 magitにカーソルを合わせてiキーを押しマークをつけて xキーでインストールできる。 標準以外のパッケージマネージャ(Cask, el-get等)を使っている人は各マネージャの方法に従ってほしい。 リポジトリ作成 以下$HOME/magit_tutで作業をする。 ($ mkdir $HOME/magit_tut、またはEmacs上ならdiredで+キーでディレクトリ作る) リポジトリ作成(git i

    [Emacs] magitチュートリアル - Qiita
  • 【Electron + react + flowtype】TweetDeckライクなpixivクライアントPixivDeckをつくった - Qiita

    【Electron + react + flowtype】TweetDeckライクなpixivクライアントPixivDeckをつくったflowpixivReactElectronredux electron + react + flowtype + styled-components + webpackpixivデスクトップアプリを書いた。 前半にアプリについて、後半に技術的なことを書くので、どんな技術を使ったかのみ知りたい人は前半飛ばしてください。 GitHub - akameco/PixivDeck: TweetDeck like pixiv client for desktop ダウンロードページ スクリーンショット TweetDeckライクなpixivイラストビューア スクロール(IntersectionObserverで画像の遅延読み込み) カラムの移動(react-sort

    【Electron + react + flowtype】TweetDeckライクなpixivクライアントPixivDeckをつくった - Qiita
  • オブザーバーパターンから始めるRxSwift入門 - Qiita

    はじめに Rx とは C# 発祥の Reactive Extensions のことで、様々な言語に移植されています。RxSwift は Rx の Swift 版です。 様々な言語に移植されているのは、それだけ有用だからです。しかし Rx は有用である一方で学習コストが高く、導入の敷居が高いとみなされがちです。 ネットで Rx について検索すると、Reactive とは・・・関数指向うんたら・・・と、そりゃオブジェクト指向プログラマにはとっつきにくそうに感じるわな、と思うものが多いです。 ここではオブジェクト指向設計で一般的に利用されるオブザーバーパターンを置き換えるところから、Rx の利用方法を解説してみます。 以下のようにシリーズになっていますが、この記事の内容だけでも十分役に立つと思います。 オブザーバーパターンから始めるRxSwift入門 RxSwift入門(2) 非同期処理してみる

    オブザーバーパターンから始めるRxSwift入門 - Qiita
  • collageでチェックを描く - Qiita

    チェック模様を題材にcollageの使い方についてのメモ これを表示させます。 1. 四角形を描画する 赤い四角を描きます。 import Color exposing (..) import Graphics.Collage exposing (..) import Graphics.Element exposing (..) main : Element main = collage 100 100 [ rect 20 20 |> filled red |> move (0, 0) ] これで縦100、横100のcollageに20×20の赤い四角形を原点に描くことができます。 ■collage 図形などを記述するためのキャンバス的なものです。 第一引数が横サイズ、第二引数が縦サイズ、第三引数が描画する図形(Form型)のリストとなります。 ■rect 四角形を定義します。縦横サイズ(

    collageでチェックを描く - Qiita
    bokuweb
    bokuweb 2016/08/23
  • [ Emacs ] 2015年init.el振り返り - Qiita

    個人的にはよく使うのですがおすすめできないのが11で「他のウィンドウをすべて閉じる」というやつです。11は普通に入力しますものねw ただ上記の同時押し系や連続入力系はあまり英単語的に出てこないのでオススメです。 org-capture 僕はデザインから演出、3Dソフトから映像ソフト、JSやPythonなどのスクリプトなど、様々な業務を行うので、作業中の気付きをパパッとメモを取るときにorg-modeを多用しています。 ccでorg-captureを立ち上げ、その後頭文字を入力して各メモにアクセスしています。またそれらのメモはCopyというオンラインストレージサービスで同期しています。 (注) Copyはサービスクローズしちゃいました。DropBoxなどで同期すると良いかと思います。 magit gitは端末から操作することが多かったのですが、magitよく出来てる!すてき!なので使ってみて

    [ Emacs ] 2015年init.el振り返り - Qiita
  • flexboxのバグに立ち向かう(flexboxバグまとめ) - Qiita

    注)文中の「コンテナ」「アイテム」について 文中でいう「コンテナ」「アイテム」は、flexコンテナとflexアイテムのことを指しています。 コンテナ display: flexや、wrap指定などをする 複数のアイテムを含む アイテム flex: 1 0 0%などの指定をする 1. アイテム潰れる問題(Safari) Chrome Safari 潰れてますね。 起きる条件 Safari なぜ コンテンツの最小サイズを尊重してくれない模様 どうすればいいのか flex-shrinkに0を指定 flex-basisにautoを指定(デフォ値なので、指定がなければそのままでOK) Safari10にて修正済み(つまり、SierraとiOS 10以降では対応不要) 2. align-items:center はみ出す問題 Chrome IE11 はみ出てますね。 起きる条件 IE10-11 f

    flexboxのバグに立ち向かう(flexboxバグまとめ) - Qiita
  • 翻訳:Haskellと過ごした4年間〜ファウンダーの観点から〜 - Qiita

    BetterというEラーニングの会社をやっていたCarl Baatzさん表題のような記事を書いていて、とても有益だと思ったので訳してみました。 だいたい逐語訳ですがところどころ意訳したり端折ったりしてます。プロの翻訳家ではないので間違いもあるかと思います。ご了承ください。不安なところは原文をご参照頂ければと。自信ないところは括弧に原文を残しているので、よい訳があれば編集リクエストお願いします。あと脚注も Thank you Carl for sharing great experince and knowledge! 原文: A founder's perspective on 4 years with Haskell http://baatz.io/posts/haskell-in-a-startup/ [追記] InfoQでもこの記事が取り上げられていました。 製品開発においてHask

    翻訳:Haskellと過ごした4年間〜ファウンダーの観点から〜 - Qiita
  • JSでもモバイルアプリらしい体験は実装できるのでしょうか? with React Native - Qiita

    アニメーションはモダンなアプリ体験に不可欠なものになってますよね。 手のひらのなかのツールの使い心地に鈍感な人は減ってきてるのではないでしょうか。 JSでモバイルアプリを作る時、「アニメーションは実装できるけど、カクカクしてたりして、それないほうが良いよね」みたいな話になったことはありませんでしたか? 僕もTitanium,Ionic Frameworkと触ってきて、こういうフレームワークは割りきって使うものという印象をずっと持ってました。 ただ、去年React Nativeを使ってiOS, Androidアプリ(短歌を投稿するSNSアプリです)をリリースしてみて、とても気に入って、今回アニメーションやらインタラクション、どこまで出来るのが実験的にアプリを出してみました。 Phrasal Verbs Flashcard 最近ロンドンに来て、英語学習者の友達が増えたのもあって内容はFlash

    JSでもモバイルアプリらしい体験は実装できるのでしょうか? with React Native - Qiita
  • 翻訳: 似て非なる Phoenix と Rails(原題『Phoenix is not Rails』) - Qiita

    Phoenix の開発者である Chris McCord さんが 2015/11/18 に書いた記事「Phoenix is not Rails」の翻訳です。 僕は Rails 未経験の状態で Phoenix を始めたクチなのですが、最近 Rails もやるようになり、両者を比較して考えることが多くなってきたので、いい機会だと思い翻訳してみました。 誤訳があれば編集リクエストを頂けると幸いです。 まえがき 昨年12月、ブライアン1は年次総括で 開発を Elixir と Phoenix に移行する計画を公表しました。それから1年、実際に Rails から Phoenix へ移行してみて分かったのは、この作業はそれほど大変ではないということです。というのも、Phoenix は Rails と非常によく似た作りをしているからです。もちろん、フレームワークのきちんとした理解にはそれなりの学習が必要で

    翻訳: 似て非なる Phoenix と Rails(原題『Phoenix is not Rails』) - Qiita
  • 【Go】fmt.Print とビルトイン関数の print の違い - Qiita

    はじめに 以前、fmtパッケージにて提供されるprint系の関数についての投稿を行いました。 【Go】print系関数の違い こちらの投稿にて、ビルトイン関数の print, println についても紹介してみては?とコメントをいただいたので、調べてみました。 ビルトイン関数のprint, printlnについては私自身の実用経験がないので、単純に調べたことをまとめただけになります。 間違い等あればご指摘ください。 fmt.Print() について fmt.Print()については「【Go】print系関数の違い」にてまとめさせていただきましたので、そちらをご参照ください。 ビルトイン関数 print, println について まずは print について公式のドキュメントを見てみましょう。 builtin - The Go Programming Language The print

    【Go】fmt.Print とビルトイン関数の print の違い - Qiita
    bokuweb
    bokuweb 2016/07/15
  • 中の人に聞いたGitHub flowの本当の使い方 - Qiita

    背景 今日GitHubの中の人のLTを聞く機会があって当のGitHub-flowを聞いてきたので 忘れない間にメモ GitHub-Flowのお約束 Masterにあるものは即座にデプロイ可能な状態に保つこと ブランチの上で必ず作業し、その生存期間を短くすること すぐにPRを作り、フィードバックやサインオフを求めること マージしたらすぐにデプロイすること 当のGitHub-flow 中の人曰くよくマージしてからデプロイすると言っている人がいるらしい。 だが当のGitHub-flowは違う。 当のflowは PR作成 ⇩ 修正 ⇩ デプロイ ⇩ フィードバック ⇩ マージ らしい。 マージ前にデプロイすることでさらにユーザーに近いところでフィードバックを受けることができるとのこと。 ダメなら直ちにmasterに戻す。なので決まりごとの中にmasterは直ちにデプロイできる状態にあること

    中の人に聞いたGitHub flowの本当の使い方 - Qiita
  • gitとプルリクエストに関して思うことまとめ - Qiita

    ※この記事は元々「Gitのこれやめて!リスト」として2015年11月に投稿したものを改訂したものです。 この記事について 私が個人的にgitとプルリクエストについて、「こうして欲しい」とか「これはやらないで!!」とか思っていることをまとめたものです。 元々は2015年に私がコードレビューをしてる時に気になったことを、あまり推敲もせず思うがままに書いた記事でした。今改めて読み返すと稚拙な文章なのと、他に思うところとがあったりしたので、改めて書き直しました。いいね貰ってるのに書き直すのに若干後ろめたさがあるのですが、よりいい内容にできればと思います。 コミットログがきれいだとレビューしやすい 一人で開発するときはgit使っててもブランチ切らないし、プルリクもださないしで、コミットログも"First Commit"の次が"Second Commit"とかでも支障はないです。しかし、チームで開発す

    gitとプルリクエストに関して思うことまとめ - Qiita
    bokuweb
    bokuweb 2016/06/14
  • flow-typedで外部ライブラリの型定義を使う - Qiita

    flow-typed とは flowtype で外部ライブラリを使うと欲しくなってくる型定義ファイルを集めたリポジトリになります。TypeScript には DefinitelyTyped という型情報のリポジトリがありますがそれと似たようなものです。 flowtype/flow-typed on GitHub このリポジトリではそれらの型定義ファイルをプロジェクトで使うための便利な CLI ツールも npm 経由で提供しています。稿は flow-typed をプロジェクトで使っていくまでの設定やセットアップについて短く解説します。 CLI ツールのインストール README.md には準備が整ったら npm に公開するよ、と書かれていますが、すでに公開されていて主要な機能は使えているので npm からインストールします(2016-06-12 時点で 2.0.0-beta.5)。 特にプ

    flow-typedで外部ライブラリの型定義を使う - Qiita
  • Web AudioでYoutube、itunes上の曲を元に、WebGL(GLSLシェーダー)でリアルタイムビジュアライズ - Qiita

    Web AudioでYoutube、itunes上の曲を元に、WebGL(GLSLシェーダー)でリアルタイムビジュアライズHTML5WebGLGLSLWebAudioAPI WebGL Advent Calendar 3日目の記事です。初めて赤くなりました! ブラウザで、Youtube上の曲を元にしてGLSL(WebGL)でリアルタイムビジュアライズします。応用編としてitunesの曲や自分の声でもできるようになりました。(無理矢理) Web Audio APIのアナライザーノードというのは使ったことがなかったんですが、mdnのデモを見ていて、結構感度が良かったのでゴニョゴニョやってみる。 ↓イメージ(canvasとvideoの二枚重ね) 音のソースとしてYoutube(実際にはマスターのオーディオ)を使い、背景でも流しつつ、Web Audio APIで取得します。 その上にcanvasを

    Web AudioでYoutube、itunes上の曲を元に、WebGL(GLSLシェーダー)でリアルタイムビジュアライズ - Qiita
  • Elm v0.17の時点の学習メモ 1日目 - Qiita

    モチベーション Evan Czaplicki「脱FRP。またはThe Elm ArchitectureからSignalを消した件」 - 以下斜め読んだ内容 を読んで、関数型のおもちゃから、かなり実用指向な舵取りをしているようにみえ、現時点でどれぐらい使い物になるか試してみよう、という気になった。 いつもの言語(JS)から距離があるので、徳が積めそう。 前提: 定期的にハローワールド程度はどう書くのか、ということは調べていたので、まったくの初見ではない。 読んだ資料 http://guide.elm-lang.org/ 基的な概念 http://www.elm-tutorial.org/en/ ユースケースごとの例 https://qiita.com/tags/elm 実際どういうコードが書かれているかの雰囲気を見ていた guide~ は適当に読み飛ばした部分が多いので、詰まったらまた読み

    Elm v0.17の時点の学習メモ 1日目 - Qiita
    bokuweb
    bokuweb 2016/06/08
  • 関数型リアクティブプログラミングにさよならを - Qiita

    以下の記事は、Evanの許可を得て A Farewell to FRPを訳したものです。 訳者はElm初心者ですので、理解が足りてない箇所があるかと思われます。何か誤りやベターな記述がありましたら、ご指摘いただけると幸いです。 ちなみに、関数型リアクティブプログラミング全般の話ではなく、あくまでElmに関する話です。 ElmアーキテクチャはWebアプリを設計するためのシンプルな手法です。Elmを書くならばElmアーキテクチャに沿うのが普通ですし、ElmはReduxに影響を与えています。ElmアーキテクチャはもはやJavaScriptを書く際の手法としても人気になりつつあります。しかし、いまだにこんな疑問を耳にすることがあります。WebSocketをElmアーキテクチャで使うにはどうすればいいのか?あるいはGlaphQLは?あるいはGeolocationは? 今日Elmのバージョン0.17が

    関数型リアクティブプログラミングにさよならを - Qiita
    bokuweb
    bokuweb 2016/05/20
  • step by stepで始めるKarma - Qiita

    Karmaを使うことでフロントエンドの単体テストを楽しくかつ機能的に行うことができます。 ステップを通して少しづつ理解できるように執筆しました。 また、最後に重要だろうと思われる補足内容を記載しました。 Karmaの導入に一役買えれば幸いです。 テスト全体の流れについては以前書いた記事フロントエンドにテストを導入を参照してください。 Karmaとは ブラウザ上で 単体テストを実行するためのテストランナーです。 テストを実行するだけでなくファイルの変更監視や結果のレポートを出力してくれたりと単体テストに必要な機能が一通りそろっています。 特定のフレームワームに依存しておらず汎用的に使えるツールで、プラグインを使った機能の拡張が強力です。 前提 Nodejs,npm,chromeが導入済みであること 流れ Karmaは4つの大きな機能(プラグイン)が存在します。 Step 3 〜 Step 6

    step by stepで始めるKarma - Qiita
    bokuweb
    bokuweb 2016/05/16
  • redux-sagaで非同期処理と戦う - Qiita

    はじめに ReduxはSingle Store、immutableなState、副作用のないReducerという3つの原則を掲げたFluxフレームワークです。しかし他のフレームワークと違って提供しているものは最小限で、とてもフルスタックとは言えない薄さです。そのためすべてにおいて定番と言える書き方が定まっているわけでもなく、どうしようか迷ってしまうことも少なくありません。その筆頭とも言えるのが 非同期処理 の扱いです。コミュニティでは今でもさまざまな方向に模索が続いていますが、よく使われているものだとredux-thunk、redux-promiseあたりでしょうか。Reduxに限定しないのであればreact-side-effectというものもあります。こちらはTwitterのモバイルウェブ版で使われていますね。どれを使っても非同期処理が可能になりますが、それはあくまで道具であって、設計の

    redux-sagaで非同期処理と戦う - Qiita
    bokuweb
    bokuweb 2016/05/13
    キタ!
  • Electronハマりメモ[随時更新] - Qiita

    最初に ElectronでTwitterクライアントを開発しているときにハマった所をメモしていきます。 と、メモしていたらElectronがついにVer 1に到達しました。 早速アップデートしたので その際に遭遇したエラーもメモしていきます。 追記:Ver1に到達したあと、日替わりでElectron周りのバージョンアップが日替わりリリース状態です。 npm outdated すると古いモジュールを洗い出してくれるので便利です。 環境 Electron 0.37.8 => 1.0.2 Typescript 1.8.0 なので、文中のコードは全てTypescriptです。 文 BrowserWindowのクッキーを消したい var loginWindow:Electron.BrowserWindow = new BrowserWindow({width: 800, height: 600}

    Electronハマりメモ[随時更新] - Qiita