「メールサーバをちゃんとする」という内容でユニバさんと勉強会をしてきました。 発表に使ったスライドです。 今年はメールサーバちゃんとする!(`・ω・´) 1月は終わりなので来月から本気だす。 目次 1.メールサーバ(MTA)の仕事 2.reject,deferをちゃんとする 3.メールキューをちゃんとする 4.セカンダリサーバをちゃんとする 5.Webアプリ送信方法をちゃんとする 6.まとめ
Fontconfigは、Linuxで古くから使われている、フォント設定を一元管理してアプリケーションに提供するライブラリです。 fc-cacheコマンドなどを叩いたことはあっても、fonts.confファイルの書き方は知らないという方も多いでしょう。Fontconfigの動作概要と設定ファイルの書き方について、簡単にまとめてみました。 本資料は、先日実施されたユニバさんとの合同勉強会で発表した資料です。今回は会場と運営をユニバさんにしていただきましたが、計8名で発表し合いとても充実したイベントになりました。 【宣伝】 BPSでは不定期に公開勉強会を開催しています。 facebookグループなどで告知していますので、もし興味がある方はご覧になってみてください。 2014/01/27追記 嘘書いていました。AndroidではFontConfigではなく独自XMLを読み込んでいました。申し訳あり
zimbraのメールサーバは日次で 「daily mail report」というメールサーバの稼働状況を報告してくれます。 便利だったので、postfixしか入ってないサーバでも見れるよう簡単なスクリプト作ってみました 使い方 cronで1日1回起動してください前日分のログを集計します # wget https://gist.github.com/yaasita/8517691/raw/mail_report.pl \ -O /etc/cron.daily/mail_report # vi /etc/cron.daily/mail_report # chmod +x /etc/cron.daily/mail_report 設定 # メールログをワイルドカードで指定 .gzであってもOK my $mail_log='/var/log/mail.log*'; # メールサーバのグローバルIPア
2014.01.15 Google Chrome のUser Agent 偽装機能は今どこに?(Google Chrome 32.0.1700.76) スマートフォン用のサイトを作成しているともちろん実機で表示や動作の確認をすることが最重要ですが、でも毎回実機を触るのはちょっと面倒だったりしますよね。そういう時にGoogle Chrome のDeveloper Tools は便利です。 Windows ではF12 キーを押すことで表示できるこの機能はその名の通り様々な開発に便利な機能を備えています。その中の1 つにUser Agent を偽装して、しかも画面サイズも変更できる機能があります。オーバーライド機能です。とはいえこの機能は結構ネット上では有名なものかと思います。 User Agent偽装機能が見当たらなくなった しかしこの機能、バージョンが31.0.1650.63 までは定位置に
morimorihogeです.新年一発目の投稿です.最近木曾が改二になりました. Web開発に限らず,UNIX系で動作するシステムの開発・運用に携わっていると常にターミナルクライアントを開いているということが多いかと思います.Web開発やサーバインフラの構築・運用をやっていると,自分のローカルPCだけではなく,リモート上の別マシンに接続し,テストサーバや本番サーバでコマンドを打って作業する機会が多くなります. そんな中「ローカルマシンのコンソールだと思ってrmしたら実は本番系サーバだった」「なんか色々実行してて処理が怪しいなと思ったら別のサーバだった」という思いをしたことがあるのは僕一人だけじゃないと思います. 今回はこういった問題を防止するために僕が普段から守っているターミナルの運用ポリシを紹介してみようと思います.あまり技術的な話はないですが,普段開発・運用を仕事としてしていく上でのノ
Rails3 でsimple_formを使っていると simple_form がJavaScript で入力値の検証をしてくれるのですが validates_format_of のwithパラメータに記述した正規表現によっては、 正しい値を入力しているにも関わらずsubmitできないという現象が起こります。 サンプル事例 例えば、model側で /\A[a-zA-Z]\z/ というformatを指定した場合 validates :name, format: {with: /\A[a-zA-Z]+\z/} JavaScriptでも同じ正規表現でチェックを実行しますが、JavaScriptの正規表現では \A \z が文字列の先頭、末尾として解釈されない為 アルファベットだけを入力していても、submitできなくなります。 この場合 withパラメータで設定する正規表現をJavaScriptで
2013年12月25日。おめでとうございます、Ruby 2.1.0がリリースされました! 日本時間で26日という細かい突っ込みをしている場合ではありません。 まだ使ったことがない方、簡単に変更点を見てみましょう。 文法の変更 デフォルト値を伴わないキーワード引数 Ruby 2.0が出たときから誰もが思っていた疑問、「なんでキーワード引数はデフォルト値必須なんだ?」がついに解消されました。以下の記法で、デフォルト値をつけないキーワード引数を宣言できます。この場合、呼び出し時に対応する実引数を渡さないとArgumentErrorになります。 def hello(name: ) puts name end hello(name: "taro") # => taro hello # => ArgumentError: missing keyword: name キーワード引数同士ではデフォルト引数
baba 高校時代から趣味でプログラミングを始め,そのままずっとコードを書いています。2010年SFC卒業,在学中にBPS入社。ゲームなどの趣味プログラミング,Webシステム,スマホアプリ,超縦書エンジン(C++/Chromium),Webフロントエンド(TypeScript/React)などを主にやってきました。最近は自社製品(超シリーズ,くんシリーズ)の開発に関わるお仕事が中心です。管理業務もしますが,ゆとりプログラマーなので気楽にPCに向かっているのが好きです。 情報処理技術者試験(16区分 + 情報処理安全確保支援士試験),技術士(情報工学部門),中小企業診断士、Ruby Programmer Gold,AWS Certified Solutions Architect - Professional,日商簿記2級,漢検準1級。情報処理技術者試験 試験委員(2021-)。 babaの
世は師走で年末進行の中,皆さまいかがお過ごしでしょうか? この度BPS主催で「良い設計について考える会」を開催しますので,興味のある方はぜひお越し下さい. 概要 普段開発に携わっていると,ふと「この設計は良い設計なのだろうか?この書き方はもっと良く書けるんだろうか?」といったことを考えることがあるのではないでしょうか? この勉強会はこうした悩みについて,一人で悩んでいてもなかなか答えが出なかったり,他の人達がどのように考えているのか知りたい!という人向けにカジュアルにディスカッションしようぜ,という会です. メイン進行を勤めるパネラー ・@babatakao:BPSでCTOを勤めるゆとりプログラマー.キーワード:Web屋、スマホアプリ、電子書籍、WebKit、ゆるい開発、C向け開発、ガジェ獣もどき ・@skhrshin:フロカートワールド取締役を務めるやせいのプログラマー.キーワード:元コ
こんにちは、hachi8833です。 今回から趣向を変えて、弊社筆頭プログラマーのbabaさんによる社内講義録を元に記事を書きます。第一回は「Railsらしく書こう」です。 Railsらしく書こう 特にプログラミング経験の浅いうちは、コーディングに関するさまざまな慣習を知らないがために遠回りをしてしまうことがあります。この講義では、Rails (とRuby) の基本的なコーディングルールについて説明します。 なお、この講義はRails3時代のものを元にしていますのでご了承ください。 基本的なコーディングスタイル class CommentsController<ApplicationController def index() @comment=Comment.find ( params[:id] ) if(request.format==:xml) then render(:layout
昨日、Ruby on Railsの重要なセキュリティアップデートである、Rails 4.0.2と3.2.16がリリースされました。 このリリースには、5件(3.2.16には4件)のセキュリティFIXが含まれています。 重要度の高いものがあるため、早急なアップデートをしましょう。 CVE-2013-6416 simple_formatヘルパーのXSS脆弱性に関する修正です。 ※4.0.2のみ。3.2系では元から発生しないため、3.2.16には含まれません。 simple_formatはhtml_optionsとしてHashを渡せますが、デフォルトで、このclass指定がHTMLエスケープされていませんでした。 class指定をユーザ入力による場合、容易にXSSが成立してしまいます。 simple_format "hello\nworld", class: '"><script>alert(1
こんにちは。TechRachoの運営会社であるBPS代表の渡辺です。いつもTechRachoをご覧いただき、本当にありがとうございます。開発に偏った記事ばかり公開しているにもかかわらず定期的に集まっていただき、大変光栄です。おかげさまでBPSは、2013年もたくさんのお仕事をさせていただきました。新年も、手が足りず新規のお客様をお待たせしている状況です。BPSでは現在、楽しく開発できるエンジニア仲間を大募集中です!(年中募集中ですが、今回は「大」募集です) スマホ開発者向け 漫画や小説をスマホで読むための、電子書籍のビューア、表示エンジン、本棚アプリ、EPUB変換ツールなどを開発しています。 中でもマンガのビューアと縦書きEPUBのエンジンは、業界No1を目指して勢力拡大中です。拡大しすぎて納品スケジュールに間に合わなくなってきました。iPhone/Androidで開発してみたい方、iPh
ungitはnode.jsで動くグラフィカルなgitクライアントです Learn Git Branchingみたいな直感的なGUIで操作できるので とても分かりやすいです インストール 今回はnvmを使用してnode.jsを入れます $ git clone git://github.com/creationix/nvm.git ~/.nvm $ source ~/.nvm/nvm.sh $ nvm install v0.10.22 $ npm install -g ungit $ nvm use v0.10.22 ログイン時も有効にしたい場合は.bashrcに以下のように書いておきます if [ -d $HOME/.nvm/ ] then source ~/.nvm/nvm.sh nvm use v0.10.22 > /dev/null fi 起動 以下のコマンドで
あまり知名度の高くないプロパティtext-align-last EPUB3ではCSS3の一部の機能が使えます。 最も有名なのは-epub-writing-modeだと思いますが、text-align: justifyも話題になりやすいですよね。 これは日本語で「均等割り付け」や「両端揃え」に相当するもので、紙の組版やWordドキュメントなどではずっと昔から普通に使われていたと思います。 ところが、text-align:justifyに強く関連するtext-justifyとtext-align-lastについてはあまり知られていません。このままでは可哀想なので紹介しておきます。 参照する仕様 EPUB3の仕様としては、EPUB Content Documents 3.0を参照します。これはEPUB3のうち、OPFなどのメタデータではなくXHTMLなどのドキュメント部分について記載されているも
少し古いネタになりますが、Windows 8にcygwinをインストールし、.sshにid_rsaをおいてSSH接続しようとすると Permissions 0660 for 'id_rsa' are too open. のエラーが発生することがあります。 普通に考えればchmod 600 ~/.ssh/*とやっておしまいのところですが、Windows 8のcygwinでは、chmodをしてもパーミッションが変更できません(相変わらず660のままです)。 解決方法 この場合は慌てず騒がず chgrp -R Users ~/.ssh chmod 700 .ssh chmod 600 .ssh/* でOKです。
Androidアプリ開発では必須になったSupport Library。 最近のADTではプロジェクトを作ると自動的にlibsに含めてくれたりします。 Support Libraryは更新も割と活発なのですが、ところでこのリポジトリに含まれているandroid-support-v4.jarはrevisionいくつなんだ?となることが頻繁にあります。 何も考えずに最新版に更新しておけば良いプロジェクトなら楽なのですが、以下のようなこともありますよね。 ライブラリプロジェクトは更新できず、同じリビジョンを使わなければいけない 旧バージョンのドキュメント化されていない仕様に依存したコードがあり、そのコードのドキュメントを後から書いている。「本プロジェクトはrevision xxxに依存」と書かなくてはならないことに気がついた しかし、リポジトリに入ったjarファイルを見ても、どこにもリビジョン情
最近仲良くしている人事系の会社の友人に教えてもらったことを応用して社内の評価とキャリアマップを設計してみた。特に新設したばかりのチームがあったので、はやいこと決めないと足並みが揃わないな、とおもったのです。 まず、チームとして活躍するために同じチームの仲間に期待していることを書き出してみた。 A.一緒に仕事するうえで必要なスキルを持っていること B.一緒に仕事するうえで好ましい考え方をしていること C.チーム内で自分の役割を意識して+αのスキルを決めていて、それを伸ばす手段と意欲をもっていること Aは業務中に自然に身につけられるものだと思うんです。必要不可欠なので業務時間中に手を動かす時間もあるし情報収集する機会もあるでしょ。うちにはWEB開発、WEB集客、アプリ開発のチームがあって、それぞれのチーム内で仕事をこなすために必要なスキルセットと成長ロードマップがあります。これがないチームや会
Railsの便利さを支えるActiveSupport。特にcore_extは単体で使うことも多いと思います。 基本的な機能ながら、バージョンごとに地味に機能修正が行われているので、わかりやすいものを2個取り上げてみました。 3.2で挙動が変わったblank? blank?はご存じ、「空ならtrueを返す」便利メソッドです。 blank? オブジェクトが空ならtrueを、そうでなければfalseを返す present? !blank?を返す presence blank?ならnilを、そうでなければselfを返す blank?は基本的に以下のような仕組みです。 empty?が定義されているとき: empty?を呼び出す empty?が定義されていないとき: !selfを返す たとえば[]にはempty?があるので、空配列はblank?がtrueになります。 nilにはempty?がないので、
Kickstarterという英語圏で人気のクラウドファンディングサイトで日本の漫画10作品を英語翻訳して海外に紹介するプロジェクトを立ち上げてみました。MANGAREBORNで掲載させていただいている作品の英語版10タイトル、というそこまで珍しくもないアウトプットだったので6000ドル(約60万円)という目標に。結果は以下のとおり、ギリギリ成功っ! 最初のほうはKickstarter側が頑張ってサイト内で告知してくれるせいか、割りとガンガンお金が溜まっていきます。全体の5割くらいですかね。最大手のクラウドファンディングサイトなだけありますね。んで、途中から全然あがらなくなって、焦っていろんな媒体で告知したりKickstarter内でユーザさんに新着情報などを告知しはじめたら一気に目標を達成してくれたので、StretchGoal(目標をさらに高く)設定してみたら、さらに増えた。 Reward
Railsで簡単に使える全文検索と言えば、Sunspotが人気です。 非常に使いやすくできていて、わずか数ステップで本格的な全文検索を始めることができます。 バックエンドは信頼と実績のApache Solrなので、性能・信頼性・拡張性は折り紙付きです。 そんなSunspotですが、実際にサーバに設置してサービス運用に乗せるとなると、ローカルで試しに動かす分には必要なかったことも気にする必要がでてきます。 データのバックアップはどうすれば良いんだ? 公開したあとにインデックス張り直すときは? この1000行以上ある設定ファイルはいったい何なんだ? 最近は、Railsシステムの高速化・パフォーマンスチューニングをさせて頂くことも増えたので、Sunspot/Solrも小規模ながら活用できるようになってきました。 これを機に社内勉強会を開催したので、そのスライドをSlideShareにアップロード
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く