mimirock315のブックマーク (465)

  • マルチスレッド・プログラミングの道具箱

    まえがき クラウド上の仮想サーバから手元のスマートフォンまで、いまや複数のCPUコアを搭載するマルチコアはどこにでもある環境になりました。ハードウェア側が並列(Parallel)・並行(Concurrent)処理に向けて急速に進化する一方で、ソフトウェア側つまりプログラミング言語の進化はさほど追い付いていません。並行処理記述の手軽さを求めた Go言語 や、マルチスレッド処理の安全性を重視する Rust言語 などが登場してはいるものの、「普通にプログラムを記述するだけで複数CPUコア環境で高速に走るプログラミング言語」は遠い夢物語のままです。 モダンなプログラミング言語や並列・並行処理ライブラリは、複雑で難解なマルチスレッド処理を直接記述しなくてすむよう、安全性・利便性の高い抽象化レイヤを提供します(例:Go言語のgoroutineとchannel、Rust言語の Rayonライブラリ)。し

    マルチスレッド・プログラミングの道具箱
  • アメリカの美大で学んだこと05:「絵がうまい」より大切なこと|Kenta Shimbo

    突然ですが絵がうまい人ってたくさんいますよね。 SNSなんか見てると、もう全人類が自分より絵が上手いんじゃないかって思えてきて、凹むことさえあります。笑 僕は23歳のド素人として美大に入学したので(うちの学校はポートフォリオ審査や美術スキルのテストは無いので当に素人でした)、入学時点でのスキルは学校内ではすごく下の方でした。 さて、絵がうまいのはコンセプトアーティストとして働く上で当然大きなアドバンテージになりますが、一番大事なことが「絵がうまいこと」かと聞かれれば、、、どうなんでしょう? 今回は「絵がうまいこと」よりもっと大切なことがあるぞ、と教わった授業の話です。 絵の天才じゃない人は何で勝負するの?学校が3年目に突入すると、基礎授業が終わり、だんだんとコンセプトアートらしい授業が始まります。そんな中、ある授業で教授がこんな質問をしてきます。 「さて、この中(教室内)に絵の天才はいな

    アメリカの美大で学んだこと05:「絵がうまい」より大切なこと|Kenta Shimbo
  • Pythonのデコレータを理解するための12Step - Qiita

    古い記事なんですが, Pythonのデコレータの概念をつかむには良記事だったので和訳意訳してみました. http://simeonfranklin.com/blog/2012/jul/1/python-decorators-in-12-steps/ Step1. 関数 これは基ですね. Pythonにおいて関数はdefキーワードにより関数名とパラメータのリスト(任意)とともに定義できます.また括弧付きで名前を指定することで実行できます. Step2. スコープ Pythonでは関数を作ると新しいスコープが作られます.言い方を変えるとそれぞれの関数がそれぞれに名前空間を持つということです. Pythonではこれらを確認することのできる組み込み関数も用意されていて, locals()で自身の持つローカルな名前空間の値を辞書形式で返却します.

    Pythonのデコレータを理解するための12Step - Qiita
  • ゼロから作る永続データ構造 - Qiita

    はじめに データ構造の多くは、破壊的な操作を提供しています。例えば配列はある要素を別の値に更新する操作を提供しています。配列の更新操作の処理時間は配列の長さや値に依存しないという点で優れています。 一方で、データ構造に対して非破壊的な操作を実行したい場面もあるかと思います。例えば配列を累積値とするreduce/fold処理(畳み込み演算)の各計算においては非破壊的に新しい配列を生成すべきです(破壊後の配列を計算結果とすることも可能ですが健全な使い方とは言い難いでしょう)。あるいはReactのステートフックのstate更新のように更新後のオブジェクトを新たにセットする必要がある場合、下記のように非破壊的に新しくオブジェクトを生成しそれをセットさせることになります。 const [items, setItems] = useState([3, 1, 4, 1, 5, 9, 2]); // it

    ゼロから作る永続データ構造 - Qiita
  • systemdの*.serviceファイルの書き方 - Qiita

    記事作成日がもう2013年とだいぶ昔なので最新の情報はマニュアルを参照してください👃 たまに書く必要があったりするのでめも。環境はArch Linux。 まず基的なところで前に自分で書いた/etc/systemd/system/kdump.serviceを元に。 [Unit] Description=Load dump capture kernel After=local-fs.target [Service] Type=oneshot ExecStart=/opt/bin/run-kexec.sh RemainAfterExit=yes [Install] WantedBy=multi-user.target ファイルの基構成要素は Unit 、 Service 、 Install から成り立っていて Unit と Install はman 5 systemd.unit、 Serv

    systemdの*.serviceファイルの書き方 - Qiita
  • 太陽系消滅までの22分をループし続けるオープンワールド宇宙ADV「Outer Wilds」がとんでもない傑作だった|てっけん|note

    さて、貼るものは貼ったのであとは好きに書く! ネタバレはないので安心してお読みください。一応、ゲームライターマガジンの今月のテーマ【ゲームのなかで旅行に行こう】にちなんでいます。 太陽爆発までの22分を繰り返す、オープンワールド宇宙アドベンチャー ゲーム内容についてあらためて説明すると、「太陽系消滅までの22分間を繰り返しながら、宇宙を隅々まで探索しループの謎を解くゲーム」といったところ。プレイヤーは4つの目を持つ半魚人のような種族「ハーシアン」の新米宇宙探査員となり、念願の宇宙探索へと出発。しかし、やがてこの星系がきっちり22分後に“ある理由”で滅びてしまうこと、そして自分だけがなぜか「最後の22分間」を延々ループしていることに気付く――。 1枚目:半魚人のような種族「ハーシアン」 2枚目:主人公が乗る宇宙探査船。わりとすぐ壊れる 3枚目:滅亡5秒前(左に見える青白い光が太陽) Twit

    太陽系消滅までの22分をループし続けるオープンワールド宇宙ADV「Outer Wilds」がとんでもない傑作だった|てっけん|note
  • 【Pandas】データフレームから特定の行・列を取得する方法を総まとめ! | YOLO – 人工知能の導入録

    データフレームからのデータ抽出をマスターする それでは詳細にご紹介していきます。一般的な行・列の指定の仕方と、locやilocを使い複数条件をつけて抽出する方法、またatやiatといった単一条件で抽出する方法を順に説明していきます。一番最後には、とても便利なisin属性について触れています。こちらは要チェックです。 特定の列を取得する 2種類の取得方法がありますが、両方とも同じ結果が返ってきます。 >>> df=pd.DataFrame([[1,2,3],[10,20,30],[100,200,300],[1000,2000,3000]], index=['Alpha', 'Beta','Gamma','Delta'], columns=['A','B','C']) >>> df A B C Alpha 1 2 3 Beta 10 20 30 Gamma 100 200 300 Delta

    【Pandas】データフレームから特定の行・列を取得する方法を総まとめ! | YOLO – 人工知能の導入録
  • Bootswatch

    Easy to Install Simply download a CSS file and replace the one in Bootstrap. No messing around with hex values. Customizable Changes are contained in just two SASS files, enabling further customization and ensuring forward compatibility. Tuned for 5.3.3 Themes are built for the latest version of Bootstrap. Version 4, version 3, version 2, and other releases are also available to download.

  • Components · Twitter Bootstrap

    Sleek, intuitive, and powerful front-end framework for faster and easier web development. Download Bootstrap GitHub project Examples Extend Version 2.3.2

  • Neo4j on GCP(Google Cloud Platform)を試してみた! - Opensourcetechブログ

    こんにちは、LinuCエバンジェリストこと、鯨井貴博@opensourcetechです。 先日 Google Cloud Next '19にて、Google Cloudと統合されたNeo4jを提供するとのアナウンスがありました。 https://neo4j.com/emil/whats-next-for-graphs-neo4j-google-cloud/ https://neo4j.com/news/neo4j-google-cloud-strategic-partnership/?ref=blog-emil ということで、 早速使ってみようと思います! Orbitera Accountの作成 以下から、Orbitera Accountを作成します。 アカウントを持ってる方は、Sign inします。 https://neo4j.orbitera.com/c2m/trials/signup

    Neo4j on GCP(Google Cloud Platform)を試してみた! - Opensourcetechブログ
  • WebサーバとDBサーバを別立てにする意味 情報セキュリティ

    WebサーバとDBサーバを別立てするの何で?オンプレでもクラウドでも、WebサーバとDBサーバを別で立てることが多いと思います。情報セキュリティの観点から、その方がいいのかな、となんとなく思っていましたが、真面目に考えたことがなかったので、今回調べてみることにしました。 サーバって何?今回はサーバの意味、機能もついでにやっておきましょう。 サーバは某掲示板では鯖とか書かれていたりしますが、もちろんサカナではありません。ハードウェア的には24時間常時可動することを目的としたコンピュータです。では、24時間何をしてるんでしょうか? 答えはパソコンなどの端末(クライアントともいう。)からのリクエストを受け付けているのです。 サーバは英語でserverと書きます。serverの動詞形はserveで、サーブは「~を供給する」という意味になります。つまり、サーバはサーブする人だからサーバ。サーブする人

    WebサーバとDBサーバを別立てにする意味 情報セキュリティ
  • 第1回 Dockerとは

    Docker(ドッカー)」とは、非常に軽量なコンテナ型のアプリケーション実行環境である。dotCloud社(現Docker社)が開発し、2013年にオープンソースのプロジェクトとして公開された。ソフトウェアの高速な配布・実行や容易なイメージのカスタマイズ、導入運用の手軽さ、豊富なプレビルドイメージの提供などの理由により、当初はソフトウェアの開発やテスト段階における利用が多かったが、現在ではパブリッククラウドからオンプレミスシステムまで、さまざまなシーンで急速に普及しつつある。 軽量なコンテナ型の仮想化環境Docker 独立したアプリケーション実行環境といえば、PCのハードウェア全体を仮想化して、その上でOSやアプリケーションなどを動作させる仮想実行環境を真っ先に思い浮かべることが多いだろう。ハイパーバイザ型(Hyper-Vなど)やホスト型(VMware PlayerやWindows Vi

    第1回 Dockerとは
  • Cypher Query Language(QL)-初級編 2015 #neo4j - クリエーションライン株式会社

    記事は、「Cypherクエリの基礎 2020」にリニューアルしました。 Neo4jでグラフ構造のデータ処理を行う時は、SQLライクなCypher QL(Cypher:サイファーと読む)を利用します。今回は、Cypher QLを利用したデータの登録、更新、検索、削除など、最も基的なデータ操作方法を紹介します。 関連記事-CL-Lab Neo4j-グラフデータベースとは Cypher Query Language(QL)-構成要素編 Cypher Query Language(QL)-初級編 Neo4j-大量データの読み込み 関連記事-Qiita WindowsNeo4jを使ってみる MacNeo4jを使ってみる SoftLayerでNeo4jを使ってみる AWSNeo4jを使ってみる Neo4jウェブインターフェースを使い倒す Cypher QLとは Cypher QLは、Noe4

    Cypher Query Language(QL)-初級編 2015 #neo4j - クリエーションライン株式会社
  • Neo4j公式の言語ドライバー(Bolt)によるプログラミング #neo4j - クリエーションライン株式会社

    事前準備 OSは、Linux/Windows/Macのいずれも対応しています。ここではWindowsをベースにします。 Neo4jのインストール 今回の演習環境のバージョン構成は、次の通りです。 Neo4j:3.0.6 ドライバ―バージョン:1.0 Boltプロトコル:1 Boltドライバーを使うためには、Neo4j v3.0以上が必要です。 インストールは、下記のサイトを参照してください。 WindowsNeo4jを使ってみる MacNeo4jを使ってみる Pythonのインストール 今回は、python-2.7.12.msiをインストールしています。3.xでも良いです。 C:\> python -V Python 2.7.12 C:\> pip -V pip 8.1.1 from c:\python27\lib\site-packages (python 2.7) Neo4j ドラ

    Neo4j公式の言語ドライバー(Bolt)によるプログラミング #neo4j - クリエーションライン株式会社
  • ローカルループバックアドレス「127.0.0.1」「::1」「localhost」とは?

    ローカルループバックアドレス「127.0.0.1」「::1」「localhost」とは?:Tech TIPS 「127.0.0.1」「::1」はローカルループバックアドレスと呼ばれ、自分自身を指す特別なIPアドレスである。「localhost」という名前でも参照できる。自分自身の上で動作しているサービスへ接続する場合は、これらのIPアドレスを利用できる。

    ローカルループバックアドレス「127.0.0.1」「::1」「localhost」とは?
  • システム運用の世界をグラフで表現すると良いことあるかも?Neo4jのメリット感を体験-パッケージ依存関係管理- - Qiita

    システム運用の世界をグラフで表現すると良いことあるかも?Neo4jのメリット感を体験-パッケージ依存関係管理-neo4jGraphDB 先日、Neo4jの認定プロフェッショナルを取得し、ますますNeo4j(グラフDB)への興味が高まりつつあります。 「グラフデータベースでできることって、結局はRDBでも同じようなことできるし。。」といった意見も多いかと思いますが、現実世界の事象をより直感的に扱えるなど、良い点もあるのではないかと考えています。 ということで、グラフデータベースを使うことによるメリットをシステム運用の世界を題材に体験してみます。 グラフデータベースとは? ノードとリレーションおよびその内容を示すプロパティで表現されるグラフ構造を扱うことができるデータベースです。関係性を表現するのに非常に扱いやすいものかと思います。 現実の世界で見ると、あらゆるものが何らかの関係性を持って働い

    システム運用の世界をグラフで表現すると良いことあるかも?Neo4jのメリット感を体験-パッケージ依存関係管理- - Qiita
  • Neo4jを使い倒してWebメディアを作った話

    こんにちは!立ち上げエンジニアのホリです。 今日は、BizHintサービス立ち上げに際して(どさくさに紛れて笑)、新しいデータベースを実戦投入した件について書きたいと思います。 2023年12月、株式会社ビズヒントの全保有株式をスマートキャンプ株式会社に譲渡しました。 BizHintとは? 時は2016年。ビズリーチ社待望のメディアサービスを立ち上げる機運に満ちあふれていました。 コンセプトとして挙がったのは、「人事に関する(ニッチな)質の高い記事が読める」「閲覧履歴やブックマーク、コメントを通じて自分の興味が可視化できる」でした。 この世界観からまず考えたことは、ログのようなデータを大量に溜め込むシステムになりそうで、特にユーザーと記事の関係性を表すデータが多そうだ、ということです。 さらに、例えば「既読記事ならタイトル文字色をグレーに」など、関係性データを抽出する回数が莫大になりそうで

    Neo4jを使い倒してWebメディアを作った話
  • KVS(Key-Value Store)とは - Qiita

    noSQLに関する基的な内容をまとめてみたものです。noSQLに関する、Web上にすでにある良識な解説コンテンツをまとめたサイトの抜粋です。 KVS (Key-Value Store)とは noSQLの一つのジャンルとしてのKVS KVS(Key-Value Store)は、KeyとValueを組み合わせる単純な構造からなるデータストアです。 Keyを指定すると、Keyに関連付けられたValueが呼び出される仕組みとなっています。 KVSの特徴 - データモデルがシンプルである - スケールアウトに適した構造をしている - 高速でデータの読み書きが可能 - 分散処理に適している - トランザクション処理できないものが多い KVSの利用形態 KVSはKeyとValueの関係だけのデータベースなので、複数のサーバーにデータを分散させて格納する分散データストアとしての利用が増えています。 分散

    KVS(Key-Value Store)とは - Qiita
  • 調べなきゃ寝れない!と調べたら余計に寝れなくなったソケットの話 - Qiita

    なるほど、最近ソケット通信、ソケット通信と言ってるのはUNIXドメインソケットの事か! UNIXドメインソケットって何がいいの? Performance Analysis of Various Mechanisms for Inter-process Communicationに素晴らしい検証があった。 It was hypothesized that pipes would have the highest throughtput due to its limited functionality, since it is half-duplex, but this was not true. For almost all of the data sizes transferred, Unix domain sockets performed better than both TCP so

    調べなきゃ寝れない!と調べたら余計に寝れなくなったソケットの話 - Qiita
  • pandas.DataFrameに列や行を追加(assign, appendなど) | note.nkmk.me

    pandas.DataFrameに新たな列または行を追加する方法を説明する。 新規の列名・行名を指定して追加する、pandas.DataFrameのassign()またはinsert()メソッドで追加する、pandas.concat()関数で連結する、といった方法がある。 以前あったappend()メソッドはバージョン1.4.0で非推奨(Deprecated)となり、2.0.0で削除された。 What’s new in 1.4.0 (January 22, 2022) — pandas 2.0.3 documentation 記事のサンプルコードのpandasのバージョンは以下の通り。バージョンによって仕様が異なる可能性があるので注意。

    pandas.DataFrameに列や行を追加(assign, appendなど) | note.nkmk.me
    mimirock315
    mimirock315 2020/05/06
    “ ”