タグ

ブックマーク / hiroki.jp (18)

  • git statusが43秒かかっていたのを1秒に高速化する大規模Gitリポジトリの操作を高速化するためのscalarを紹介 | Act as Professional

    Git 2.38がリリースされました。 このバージョンから大規模Gitリポジトリの操作を高速化するscalarが同梱されるようになりました。 今回はこのscalarによって、どれぐらいGitの操作が高速化されるのかを簡単に検証します。 結論から言うとgit statusが約43秒かかっていたのが約1秒で操作できるようになります。 Install Git 2.38Git 2.38からscalarが同梱されましたので、各自の環境にあわせてInstallなりVersionUpなりをしてください。 $ git --version git version 2.38.0 Before大規模Gitリポジトリとしてchromiumを利用しました。 普通にgit cloneしてきて、git statusを実施すると約37秒かかります。 ❯ time git status On branch main You

    git statusが43秒かかっていたのを1秒に高速化する大規模Gitリポジトリの操作を高速化するためのscalarを紹介 | Act as Professional
    s_ryuuki
    s_ryuuki 2022/10/16
  • 集中力と生産性を維持する「PCモニターの高さと位置」 | Act as Professional

    PCモニターの適切な位置や距離まずは、PCモニターを利用する上での適切な位置について解説します。 モニターの高さの最適な位置は?モニターの高さは モニターの上部が視線と水平になる位置 が理想です。視線としては、水平から若干下を見ながら、パソコンの操作をすることになります。 これにより、上を見る時のように、まぶたを全開することがなくなるので、ドライアイの予防につながります。結果として、眼精疲労も軽減されます。 くれぐれも、姿勢をまっすぐにした状態を維持してください。視線が下を向くことによって、つられて背になること避けてください。 液晶モニターの高さ調整をするために液晶モニターの高さを調整するのにベストなのは、液晶モニターアームを利用することです。

    集中力と生産性を維持する「PCモニターの高さと位置」 | Act as Professional
  • インストール簡単 無料で使えるGitHubのようなGitea | Act as Professional

    Giteaとは?GiteaはVersion 1.0.0が2016-12-23にリリースされたばかりの比較的新しいGitHub Cloneです。 Gogsからforkされたコミュニティが管理するOSSのようです。 憶測ですがGogsが個人ベースの開発に限界がきたためfrokされて開発されたのでしょうか。 開発言語はGoが採用されているため、多くのプラットホームで動作します。 また、DockerやVagrantも提供しているため、気軽に試すことができます。 よって、さっそく動作させてみました。 Gitea on Docker今回は公式で公開されているドキュメントを参考にして、Dockerをで動作させることにしました。 最新のDocker imageを取得します。 $ docker pull gitea/gitea:latest latest: Pulling from gitea/gitea

    インストール簡単 無料で使えるGitHubのようなGitea | Act as Professional
  • 見落としがちなLinuxのWEBチューニング | Act as Professional

    WEBコンテンツ配信にLinuxを使うのは一般的になりましたが、CentOSやUbuntuをはじめ、大抵のディストリビューションが低スペックなマシンでも動くような初期設定になっています。 トラフィックの上限でもない CPUリソースの枯渇でもない HDDのIOが遅い問題でもない コンテンツが重くなる(接続できない)というケースで、見落としがちなLinuxのネットワーク周りのチューニングについてです。 iptables関連iptablesを使用している場合、下記のパラメータを注意して下さい。 /proc/sys/net/ipv4/ip_conntrack_maxip_conntrackに記録できる最大値です。65536あたりが初期設定になっているかと思います。これだとパケットの取りこぼしがすぐに起きてしまいます。1コネクションあたり約350バイト消費するので、実装されているメモリに応じて値を変

    見落としがちなLinuxのWEBチューニング | Act as Professional
  • SSHだけで簡易VPNが構築できる「sshuttle」が便利 | Act as Professional

    VPNを利用する事ができる高価なルータなどの機器がなくても、sshでさえ繋がることができれば、簡易VPNのようなアクセスを可能にするsshuttleが便利だったので紹介します。 sshuttleとは?Linux, MacOS, FreeBSDをサポートするSSH越しにリモートネットワークへのアクセスを可能にするソフトウェアです。実態としては、LinuxであればiptablesMacOSではipfwを利用して、リモートネットワーク宛てのパケットをSSHコネクションを張ったトンネルを通してアクセスできるように設定してくれるソフトウェアです。 今までSSH Port Forwardingを1ポートずつ設定や起動をしていた人も多いかと思います。sshuttleを利用するとリモート先のネットワークを指定するだけで、あとは全部よしなにやってくれるようになります。 IPSecやPPTPなどのプロトコル

    SSHだけで簡易VPNが構築できる「sshuttle」が便利 | Act as Professional
  • dockerが正式サポートしたOS Xの環境を構築してみた! | Act as Professional

    正式サポートの概要DockerはこれまでもOS Xの上で動かそうと思えば、動かすことはできました。これはOS Xの上でVagrant(実稼働しているのはVirtualBox)などを利用した仮想マシンで通常のUbuntuやCentOSなどのLinuxを立ち上げて、そのLinux環境の中でDockerを稼働させるというものが中心でした。もちろん公式サポートはされていませんでした。 これはDockerそのものがLXC (Linux Containers) と呼ばれるLinuxのOSレベルでの仮想化技術を利用したものなので、Linuxの上でしか利用できなかったからです。よって、バージョン0.8からもOS Xの上でネイティブに動作するわけではありません。 では、どのようにして正式サポートしたのかというと、Dockerが専用の軽量仮想マシンイメージを用意し、OS Xからこの仮想マシンに対してDocke

    dockerが正式サポートしたOS Xの環境を構築してみた! | Act as Professional
  • ApacheのSSLをNginxに入れ替える手順 | Act as Professional

    既存のApacheの設定既存のApache設定で確認しておきたいのは下記の部分 SSLCertificateFile example.com.crt SSLCertificateKeyFile example.com.key SSLCACertificateFile example.in.crt # 中間証明書いずれのファイルも必要です。中間証明書を利用してる場合のみ、SSLCACertificateFileの設定があると思います。 あとパスフレーズも確認しておきましょう。 Nginx用の証明書を作成するNginxでは中間証明書が必要な場合、Apacheの用に別ファイルとして指定するのではなく、1つの証明書ファイルにまとめておきます。 cp example.com.crt example.com.crt.bak # バックアップ cat example.in.crt >> example.

    ApacheのSSLをNginxに入れ替える手順 | Act as Professional
  • プロとしての行為 Act as Proffesional

    Gitのブランチをどのタイミングで切って、マージしていくかなども非常に大切ですが、ブランチやマージをするよりも頻繁におこなうコミットについて、あらためて基に立ち返ってみましょう。 一つ一つのコミットを綺麗に積み重ねていくことは、ブランチを切るタイミングやマージ、歴史の改編などを容易にすることができます。コミットが綺麗に積み重ねられていないとマージや歴史改変で苦労するでしょう。 Gitのベストプラクティス(原文)に乗っかるためにもgit commitする前に以下のようなことをチェックしましょう。 Gitの操作に慣れている人はPushやMergeをする前に今回紹介するようなことを元にしてコミットの歴史を綺麗に整えましょう。 1コミットに1つの対応1コミットにはあれこれ詰め込めすぎるべきではありません。例えば以下のような2つのことがあったとします。 Aの機能を追加Bの機能のバグを修正2つの対応

    プロとしての行為 Act as Proffesional
    s_ryuuki
    s_ryuuki 2012/09/06
  • chef-solo はじめてのLinux環境構築の自動化入門 | Act as Professional

    環境構築を自動化すれば数分でサーバ構築して投入できますよ?@HIROCASTERでございませう。 vagrantで開発環境(仮想マシン)を自動構築しようの記事で、仮想マシンにchefやpuppetを自動的に実行させて開発環境を自動で構築する手順を紹介しました。 環境構築を自動化する内容をchefであれば、レシピと呼ばれるものを、puppetであればマニフェストと呼ばれるものを記述しなければなりません。 今回はパッケージ(NTP)を導入して、NTPの設定ファイルを自動的に配備して、サービスを立ち上げるという環境構築の自動化をchef-soloを使って、紹介したいと思います。基的に他のソフトになっても手順は同じです。参考にしてください。 chefとchef-soloの違いchefはクライアントとサーバの形を取っており、chefを実行するためにはサーバにレシピや付随する数多くのデータがなければ

    chef-solo はじめてのLinux環境構築の自動化入門 | Act as Professional
  • 意外と知られていない無料VPS(centos,debian)を入手しよう! | Act as Professional

    あなた専用のVPSサーバが無料で手に入ります。もう独り占め。 勉強するだけだったら十分に使いようがあると思われます。 スペック OpenVZ HDD 10GB RAM 128MB 転送量制限なし OS CentOS/Debianちょっと大きなアプリケーションを動かすのは、やめておいた方がよいスペックです。 入手方法イギリスの会社であるHOST1FREEが提供しています。申し込み画面までの行き方をナビゲートします。 サイトにアクセス HOST1FREEのサイトにアクセスしてください。FreeVPSの「Order Now!」をクリックしましょう。 とりあえず、Likeしておいてあげよう 最新情報を手に入れるためにもLikeしておこう。そのままファンページに飛んでください。 ファンページのURLをクリックして申し込み画面へ ファンページの画像矢印で示しているリンクが申し込み画面へのリンクです。

    意外と知られていない無料VPS(centos,debian)を入手しよう! | Act as Professional
    s_ryuuki
    s_ryuuki 2012/07/07
  • 「githug」でgitの基本操作を算数ドリルみたいに学ぼう! | Act as Professional

    GitHubのイベントである「The GitHub poweredby Agile渋谷 〜日のSOCIAL CODINGの今を見る〜」の懇親会を受付始めました@HIROCASTERでございませう。 イベント参加者以外でも参加可能のため、イベントは補欠だったけど、どういうふうにGitHubを使っているのか聞きたい人は、ご参加ください。(イベント参加者優先で、空気読んで登録してください) イベントではGitHubの話をするので、Gitが使えることが前提になっています。 そこで、Gitの基操作方法を学べる「githug」を紹介します。 githug Gazler/githug「githug」はgitの基操作を実践的に学ぶための良いソフトウェアです。 特に他のバージョン管理システムを使ったことのある人がgitの基操作だけを学ぶだけならちょうど良い。 インストールgemで公開されているのでイ

    「githug」でgitの基本操作を算数ドリルみたいに学ぼう! | Act as Professional
    s_ryuuki
    s_ryuuki 2012/06/20
  • Redmineによる個人的に書いたコードを管理する意義と必要性と方法 | Act as Professional

    Redmineプロジェクト管理ソフトウェアです。 課題(タスク)管理 ガントチャート、カレンダー Wiki 工数管理 SCMとの連携など、企業・個人で有効活用できるツールです。個人で活用することも考えてみます。 個人でプロジェクト管理するメリット個人でコードを書くというのは非常に限られた時間の中でおこなわれます。よって、適切に優先度付けされたタスクをこなしていくことにより、最小限のコストで最大限の利益を享受することを目指します。 また、まとめて多くの時間を取ることも難しいでしょう。毎回毎回、過去に何をしていたのか記憶があれば問題ありません。ですが、凡人の僕にはそんなことは到底不可能です。今日書いたコードを1ヶ月後に詳しく説明できる人には「他に何も仕事をしていないのか!」って突っ込みをしてやりましょう。 過去に何がおこなわれたのか変更管理することによって、できる限り、迷う時間や考える時間を

    Redmineによる個人的に書いたコードを管理する意義と必要性と方法 | Act as Professional
  • 達人プログラマーに学ぶ どこでも自動化 | Act as Professional

    達人プログラマーはどうするのか?p.240 第8章 達人のプロジェクトより 我々よりもコンピュータの方がうまくやってのけるような繰り返しや俗っぽいことは、すべてコンピュータに任せてしまいましょう。我々にはもっと重要で難しい仕事が待ち構えているのですから。 HIROCASTERの経験から cobblerをつかって、OSのインストールは自動化 puppetやChefをつかって、OSの設定やアプリケーションの導入と設定を自動化 capistranoをつかって、デプロイ作業を自動化 Nagiosなどの監視システムやCactiなどのモニタリングシステムへの追加も自動化こんなことはさっさとやってしまおう。物理サーバが到着したら数分で番環境へ投入できるように。 Amazon EC2を使えば、物理サーバが到着するのも待たなくてすむ。 達人プログラマーから想像できる開発中の自動化は… シェルを書いてしまっ

    達人プログラマーに学ぶ どこでも自動化 | Act as Professional
  • HTML5キャッシュマニフェストを利用する | Act as Professional

    NETWORK: * CACHE:キャッシュさせるファイルを記載します。 NETWORK:必ずネットワークから取得する内容を記述します。CACHEセクションに記載したデータ以外をネットワークから取得するようにするのでアスタリスクを記載します。 マニフェストファイルの自動生成上記でマニフェストファイルを作成しましたが、下記のmanifestRというサイトを利用して、現在閲覧しているURLのマニフェストファイルのひな形を自動生成してくれるサイトがあります。こういったサイトを利用してマニフェストファイルの作成をさくっとやってしまうのがオススメです。 manifestR作成されたマニフェストファイルの内容を確認してから利用してください。自動生成された物をそのまま利用すると何もかもキャッシュされてしまって、意図しない動作を招くと思います。 HTMLにマニフェストファイルを設定すべてのHTMLのDOC

    HTML5キャッシュマニフェストを利用する | Act as Professional
  • PHPを使っているすべての人が知るべき無料のPaaSサービス | Act as Professional

    先日発売されたsymfonyの執筆に携わらせて頂いたので、今回はPHPのPaaSホスティングサービスである cloudControl で、無料で symfony1.4 を稼働させます。きっと、cakePHPやCodeigniterも稼働させることができるのではないでしょうか。 cloudControlって? 1時間あたり1BoxというcloudControlで定義している独自の単位は無料で使えます。簡単に言うと、少ないアクセスのサイトだったら無料で使えます。それ以上のアクセスを提供するためにはunlockの手続き(有料)が別途必要です。 また、無料で提供しているアドオンが利用できます。その中にはMySQLがあるので、PHPMySQLで稼働するフレームワークは大抵稼働するのではないでしょうか。 cloudControl で symfony1.4 を稼働させるところまで、解説することにしま

    PHPを使っているすべての人が知るべき無料のPaaSサービス | Act as Professional
  • プロとしての行為 Act as Proffesional

    スーパーエンジニア達の習慣が大人気だったので、自戒の意も込めて、反面教師として成長しないエンジニアの悪習慣について僕の経験と視点からまとめてみる。 業務時間外での学びがない プロ野球選手は日々練習をして、試合という番で勝敗の結果を出して評価されるこれをエンジニアに置き換えると、どこかで練習をして、仕事という試合をして、ソフトウェアという勝敗の結果をつくりだす。プロ野球選手が試合を練習だと思って取り組んでいたら、結果を出せるのだろうか? 業務外で練習をして、番で良い結果を出せるように努力しよう。練習大事!! 時間をかければよいものができると信じているいくら時間をかけたって、バグのないエレガントなコードのソフトウェアはできない。効率的に仕様を満たしていくことが求められている。むしろ、時間をかけるべき所は上記で指している練習!! 参考:集中力を発揮して、生産性を高めるために知っておくべきこと

    プロとしての行為 Act as Proffesional
  • これはマネしたい!スーパーエンジニア達の習慣 | Act as Professional

    いままで勉強会に顔を出し、すばらしいエンジニアと数多く会うことができた。そして、スーパーエンジニアと共に仕事をすることもできたし、できている。そんなスーパーエンジニア達が持っていた習慣を僕の経験と視点からまとめてみる。 自分が使う道具を厳選して選んで手入れをしているエンジニアでいえばエディタやツールなど。皆が使っているIDEやエディタを何も考えずに使い始めたりしない。 厳選したエディタやツールを使って、手になじませるのである。手になじませるというのは、2つの意味がある。 1つは操作性に慣れること。呼吸をするように自然に、キーボードの上を駆け回る心地よいリズムを奏でるエディタを選ぶ。 2つめは、自分に合わせて拡張しているということ。プラグインのON/OFFだけではなく、オリジナルのショートカットを設定し、適切なハイライト、シンタックスのチェック、コーディングルールのチェック、様々な言語への対

    これはマネしたい!スーパーエンジニア達の習慣 | Act as Professional
  • あなたが知らない git svn の世界 | Act as Professional

    みんながいまだにsvnを使い続けるので、自分だけでもgitを使って幸せになってやる。って人のためのガイド。ツールや環境がsvnでがっちりつくられているとしかたないですねー。という状況の人向け。そこまでしてgitを使うのは早いし柔軟だから。マージもサクッと終わるし。 git svnって?svnをリモートリポジトリとして、ローカルではgitを扱うためのもの。gitインストールすれば大抵はいってるけど、macportsだったらこんな感じでインストール。 $ sudo port install git-core +svn gitローカルリポジトリをつくるgitは分散リポジトリなので、まずはローカルにリポジトリを持つところからスタート。 $ git svn clone -s http://svn.server/path/projectこれでsvnリポジトリのcloneをローカルにつくる。これでmas

    あなたが知らない git svn の世界 | Act as Professional
  • 1