カテゴリー: WEB Page 1 of 2

【デーモン化で解決!】WEBrickでRedmineを立ち上げるとpost時に真っ白になる

f:id:seeds-std:20161108200910p:plain

どうも、はらぐちです。

今回は、
「WEBrickでRedmineを立ち上げると、なぜかpostした時だけ真っ白になってしまう」という件について、
解決法をご紹介します。
rails力が足りなくてハマった感じですが……

経緯

シーズではプロジェクト管理ソフトのひとつにRedmineを使用しているのですが、
最近、古いサーバー上のRedmineを、最新OSを搭載した新しいサーバーに移行することになりました。

1.データをそのままごっそり持ってきて、
2.mysqldumpをリストア、
3.rbenvで該当バージョンをそろえて、
4.gemも同じバージョンを入れていったのですが、

どうしても、Passengerだけがうまく使えない……

そこで、WEBrickで起動し、apacheのリバースプロキシ経由で参照するように設定をしてみました。

おおむねこれでうまく動いていたのですが、
なぜかPostした時だけ真っ白なページになる状態に……
(※真っ白なページにはなりますが、更新自体はされている。)

解決法

いろいろ調べてみた結果、
そのままフォアグランドで起動するとうまくいくのにバックグラウンド実行するとうまくいかない事がわかりました。
そこからはWEBrickのドキュメントなどを参照して、-dオプションでデーモン化で立ち上げる事が可能と判明。
以下のような起動方法で問題なく動作しました

/path/to/redmine/script/server -d -e production

デーモン化は知りませんでしたが、バックグラウンド実行だと何故こんな動きになるんでしょうね?
ひとまずはデーモン化で解決しました!

Internet Explorerのサポートポリシー変更!? 必要な対策をまとめてみました。

はじめまして、フロントエンドエンジニアのtoyodaです。
これからどうぞよろしくお願いいたします。

さて、最近「Internet Explorer(IE)のサポートポリシーの変更」という大きな出来事がありました。

変更内容としては、2016年1月13日から各オペレーションシステム(OS)の最新版のIEのみがサポート対象となり、古いIEのサポートは終了するというもの。

しかし「サポート終了」と言っても、結局のところ「誰が」「何をしたらいいのか」が分からない方もいらっしゃると思うので、簡潔に対策が必要となるユーザーと対策方法をまとめてみました。

対策が必要なユーザー

Windows Vistaを利用されている方

「Windows Vista」における最新版のIEは、「IE9」です。

IE7、IE8を利用されている方は、「IE9」をインストールしましょう。
※IE7、IE8は、2016年1月13日にサポートが終了しました。

Windows 7を利用されている方

「Windows 7」における最新版のIEは、「IE11」です。

IE8~IE10を利用されている方は「IE11」をインストールしましょう。
※IE8~IE10は、2016年1月13日にサポートが終了しました。

Windows 8を利用されている方

「Windows 8」は、2016年1月13日にサポートが終了しました。

利用されている方は「Windows 8.1」へのアップデートを行いましょう。
※Windows8.1へアップグレードすることによりIE11がプレインストールされます。

Windows Serverを利用されている方

各Windows Serverにおいても、古いIEのサポートは終了し、最新版のIEのみがサポートの対象となります。
最新版のIEにつきましては、マイクロソフトのInternet Explorer サポートポリシー変更の重要なお知らせをご参照ください。

問題点と対策方法

古いバージョンのIEには、今後脆弱性が見つかっても更新プログラムなどは適用されないため、セキュリティの面で大きな脅威にさらされることになります。
そのため、安全にインターネットを利用するためにも、IEのバージョンアップを行う必要があるのです。

IEは、新しいバージョンを自動的にインストールされるように設定することも、その設定をOFFにすることもできます。
一度OFFにしたまま忘れているということも考えられるので、今一度バージョンの確認を行いましょう。

マイクロソフトのInternet Explorer サポートポリシー変更の重要なお知らせに、IEのバージョンの確認方法や最新版IEのダウンロードページへのリンクがまとめられた表があるので、そこからダウンロードしてインストールすることができます。


各OS、IEのサポート期間

各OS、IEのサポート期間についてまとめました。
あくまでもサポートの対象になるのは「その時点での最新版のIE」なので、今後もバージョンアップはしっかり行いましょう。

Windows Vista

「Windows Vista」の延長サポート終了日は、2017年4月12日までです。
そのため「IE9」も、2017年4月12日までサポートが継続されます。

Windows 7

「Windows 7」の延長サポートは、2020年1月15日までです。
そのため、最新版のIE(執筆時点では「IE11」)も、2017年4月12日までサポートが継続されます。

Windows 8

「Windows 8」のサポートは、2016年1月13日に終了しました。
そのため、早急にWindows 8.1へのアップグレードを行いましょう。

Windows 8.1

「Windows 8.1」の延長サポートは、2023年1月11日までです。
そのため、最新版のIE(執筆時点では「IE11」)も、2023年1月11日までサポートが継続されます。

Windows 10

「Windows 10」の延長サポートは、2025年10月15日までです。
そのため、最新版のIE(執筆時点では「IE11」)、新ブラウザ「Microsoft Edge」も、2025年10月15日までサポートが継続されます。

その他

その他のサポート期間等、詳細につきましては、マイクロソフト サポート ライフサイクルからご確認いただけます。

Codecademyをやってみた

こんにちは、WEBエンジニアのyuchiです。

最近、WEB上でプログラム学習ができる無料のサイトがたくさん作られていますよね。
そんな多々あるサービスの中で、私は以前「Codecademy」というサービス(もちろん無料)を使って勉強してみました。

○Codecademy
http://www.codecademy.com/

普段、私は主にPHPをさわっているので、今回は違う言語にチャレンジしようと思い、
よく使われている汎用なプログラミング言語「Python(パイソン)」を選択してみました。

すると、下記のような画面が出てきます。

 

 

「Codecademy」は日本語に対応していないようなので、説明は英語で書かれています・・・

 

とりあえず説明を読みながら、黒いエディター部分にプログラムを書いて、「Save & SubmitCode」をクリックしました。

 

書いたコードがOKだったら、右上の部分に結果が表示され、プログラムが実行されます。
このように、1つクリアすると次の章に進んでいき、徐々に基礎的なプログラミングが学べるようになっていました。
誰でも気軽に始められるので、初心者の方もこういったツールをぜひ活用してみてほしいです!

以上、終わります。

あの名作がやってまいりました!

こんにちは、WEBエンジニアのyuchiです。

突然ですが、みなさん映画はお好きでしょうか?
というのも、有名なあのSF映画「スター・ウォーズ/フォースの覚醒」が、
今年の12月ついに公開されるようです。

私も密かにこれまでの全作品を見たことがありまして、スターウォーズが好きな人からすると
待ちに待った公開となるのではないでしょうか。

スター・ウォーズ/フォースの覚醒
http://starwars.disney.co.jp/movie/force.html

また、スターウォーズには欠かせない武器「ライトセーバー」ですが、最新作では形が十字架になっていて、
今までにない新しいライトセーバーに注目が集まっています。
しかも、この十字架のライトセーバーのデザインについて助言をしたのが、アップルのデザイナーであるあの
「ジョナサン・アイブ」なのだとか。

ジョナサン・アイブ氏と言えば、あらゆるアップルの製品をデザインされたすごいお方です。
ライトセーバーについては監督に「あまり厳密でなく、ちょっとだけ粗野にしてはどうか」
「そうすればもっとアナログで原始的で、なんでか不吉な感じが出せるのでは」と提案したそうです。

シンプルなデザインほど類似のデザインが生まれるから一番難しいと良く聞きますが、そんな中でも
何かしら新たな発想を生みだしているんですね。

とにかく、そんな見どころ満載の「スター・ウォーズ/フォースの覚醒」とても楽しみです。

プログラマーの職業病…?

こんにちは、WEBエンジニアのyuchiです。

今回は職業病的なお話をしたいと思います。

仕事でプログラミングをしていて、やたらPCに向かって
対話(独り言)をしてることがあるなんて方いらっしゃいませんか?

これはプログラマ特有かもしれませんが、特にバグ対応などしてる時に
「まじでー!」「なぜー!」など頭の中でループしてると思いきや、たまに口に出ちゃうことも・・・

独り言はストレスからくる傾向があり、普段自分で気づかないうちにブツブツ呟いている場合は、
知らない間にストレスを溜め独り言を呟くことでストレスを発散してるそうです。

ただ独り言は自分では気づいてない間に発してることもあり、周りの人たちからすると
雑音になってしまうため知らぬ間に迷惑をかけてしまっていることもあるかもしれません・・・
これに関しては、私自身も気をつけなければと思う次第です。

ストレスを溜めると仕事の効率も悪くなってしまいます。

仕事はおろかプライベートも害してしまうかもしれません。

これを読んで心当たりがあると思った方は、おもいっきりストレス発散をしてみてはどうでしょうか。

ということで、私は春ということもあり、冬に溜め込んだ脂肪を落とすことも含め
そろそろ運動を始めようかと思います。

ログインし放題

今回はChrome拡張機能を紹介します。
私が使っている拡張機能の中で2番目か3番目に便利です。

開発をしていると、テストのためにキャッシュやセッションの影響を受けないようにサイトにアクセスしたいことが多々あります。
そんな時はシークレットモードを開くか違うブラウザを開く必要があります。
シークレットモードは同じブラウザでもキャッシュなどが効かない状態でウィンドウを開いて、まっさらな状態でアクセスできます。

この時、Chromeだと新しいウィンドウで開いてしまう&シークレットモードのウィンドウを開いた状態で、また新たなまっさらな状態のシークレットモードは開けない(やり方が分かりません)という問題があります。

これを解決してくれるのがMultiLoginです。
これは、通常モードと同じウィンドウ内でタブ毎にまっさらな状態のシークレットモードを開いてくれます!

これらのタブはセッションを共有しないので、同じサイトに複数のアカウントでログインし放題です。
しかもタブで切り替えれる。
開発中の動作テストなんかではかなり役に立ちます。

fuelphpでcsvファイルをアップロードして読み込み処理

こんにちは

WEBエンジニアのyuchiです。

前々回の記事に引き続き、開発でfuelphpからCSVファイルをアップロードして読み込みしないといけなかったので、
その時調べた方法を書きたいと思います。

まずはCSVファイルをアップロードします。

// 初期設定
$config = array(
'path' => dirname(DOCROOT).'/uploads/',
'randomize' => true,
'ext_whitelist' => array('csv'),
);
// アップロード基本プロセス実行
Upload::process($config);
// 検証
if (Upload::is_valid())
{
// 設定を元に保存
Upload::save();
// 情報をデータベースに保存する場合
$result = Model_Uploads::deliv_add(Upload::get_files());
}

configでアップロードする場所をpathに指定し、保存するファイルの拡張しを設定し保存します。
randomizeをtrueにすると保存されるファイル名がランダムにつけられます。

次にアップロードしたファイルからcsvの読み込みを行います。

foreach ($files as $file)
{
$data = file_get_contents($file['saved_to'].$file['saved_as']);
$data = mb_convert_encoding($data, 'UTF-8', 'SJIS');
$data = Format::forge($data, 'csv')->to_array();
}

csvファイルの文字コードが分からないため、文字化け防止としてmb_convert_encodingで変換します。
例としまして、ここではSJISからUTF-8に変換。

あとは、読み込んだcsvファイルのデータを表示したりするだけです。

foreach($data as $list)
{
echo $list;
}

fuelphpの機能を使えば簡単にできました。

ちなみにアップロードしたファイルを削除したい場合は、

//ファイルを削除したい場合
File::delete(dirname(DOCROOT).'/uploads/' . ファイル名);
//ディレクトリを削除したい場合
File::delete_dir(dirname(DOCROOT).'/uploads/');

を書けばOKです。

では、今日はこのあたりで!

ディスプレイが・・

まぶしい(+_+)と感じること、みなさんはありませんか?
私は普段、結構ディスプレイの輝度を下げて作業してます。
いつかのシーマガでも取り上げられてましたが、目にも良くないですし。

夜寝る前にパソコンとかやるとよく寝れないと聞くので、部屋を暗目にしてあまりパソコンとかせずに本読んだりしてます。けどやっぱりパソコン触りたい時があります。

それでもできるだけ目に刺激がないようにディスプレイの輝度を最小にしているんですけど、それでもディスプレイがまぶしい(+_+)

ターミナルとかエディタとかは背景色を設定できたりするので黒目に設定しています。
問題はブラウザで、WEBページの背景が白かったり明る目の色の時、どうしようもありません。
Googleで検索したら背景真っ白でまぶしい(+_+)

なので、快適な睡眠のためにちょっと工夫しました。

ディスプレイのカラーを反転させる

Macは環境設定>アクセシビリティ>ディスプレイでカラーを反転できます。
これ使ったら基本白い部分の多いサイトとか書類とか見る時は結構暗めにできます!
↓こんな感じ


 

黒くなったけど画像とか見難いですね。
しかもこの設定してると今まで黒かったターミナルとか真っ白です。

とかなんとか遊んでたらイイ感じのGoogleChromeのプラグインを見つけました。

Change Colors

こちら、背景とか文字を指定した色に変えてくれます。
こんな感じで設定できます。

 

 

これを使うとさっきの画面が

こんな感じになります。画面は暗くなって、画像なんかはそのまま表示されるので、そんなに見難くない。

別に見やすくはないですけど個人的には全然大丈夫です。

ページ毎にこれを適用できるので、必要ないページはそのままの色で見れます。

 

これで寝る前にネットしても熟睡できそう。

iPhoneから日本語名のファイルを添付してメールを送るには

こんにちは。WEBエンジニアのyuchiです。

日本語文字化け対策のために、iPhoneに日本語ファイルを添付してメールを送信するというのを
最近行いましたので、その時のことを書きます。

iPhoneで写真を撮ると自動的に日時の名前で保存されますが、保存された写真のファイル名を
変更することはできませんでした。

今まで試みたことなかったので知らなかったです…ちなみにAndroidはファイル名を変更できました。

ファイル名を変更できないとわかったので、iPhoneiTunesに同期してPCに保存してある日本語名の
ファイルを保存し、iPhoneのメールアプリからファイルを添付しましたが、今度はimage.pngという名前に
自動変換される始末・・・

DropBoxや、Evernoteで保存してある日本語名のファイルをコピーして、ペーストしても
自動的にやはりimage,pngに変換されました。

恐るべしiPhone・・・結果的には色々試行錯誤しましたが、iPhoneの機能で日本語ファイルを添付して
メールを送信するということができませんでした。

どうやったかといいますと、iPhonegmailアプリを起動、googleドライブから日本語名のファイルを選択し添付で送信。

これで問題なく日本語名のファイルで送信され、文字化けテストができました。

ちなみに有料ですが、GoodReaderを使うと日本語名のファイルを保存できるようです。

豆知識くらいに知っておくと便利かもしれません。

fuelphpからPDFを生成

こんにちは。

この業界に入ってまだ4ヶ月のWEBエンジニアのyuchiです。

以前開発でfuelphpからPDFを出力しないといけなかったので、今回その時調べた方法を書きたいと思います。

まずは準備からです。

①TCPDFをダウンロードする

②/fuel/app/vendor/の下にダウンロードしたファイルを解凍後、設置する

③/fuel/app/bootstrap.phpに下記を追加する

Autoloader::add_classes(array(
'TCPDF' => APPPATH.'vendor/tcpdf/tcpdf.php',
));

これで準備OKです。

④あとはPGに組み込みます

//PDF付加情報(一番初めの引数はPが縦、 Lが横)
$pdf = new TCPDF('L', PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
$pdf->SetCreator('');
$pdf->SetAuthor('');
$pdf->SetTitle('');
$pdf->SetSubject('');
//ヘッダーフッター情報
$pdf->setHeaderFont(Array('kozgopromedium', '', 14));
$pdf->setFooterFont(Array('kozgopromedium', '', 9));
$pdf->SetHeaderData('', '', リストの名前, $time . ' / ' . '発行者:' . Auth::get_screen_name());
//余白マージン設定
$pdf->SetMargins(5, 25, 5);
$pdf->SetHeaderMargin(5);
$pdf->SetFooterMargin(5);
//自動ページ切り替え設定
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
//カラム幅
$w = array(30, 30, 30, 30);
//塗りつぶし色
$pdf->SetFillColor(255, 255, 255);
$pdf->SetTextColor(20, 20, 20);
//日本語フォント設定
$pdf->SetFont('kozgopromedium', '', '9');
//固定長フォント設定
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
//ページ追加
$pdf->AddPage();
//値をセット
$pdf->Cell
//PDF を出力
$pdf->Output("output.pdf", "I");
//終了
exit();

こんな感じでPDFを出力することができました。

一息ついたところで、今日は終わります。

 

Page 1 of 2

© SEEDS Co.,Ltd.