ねこ日記

プログラミングがくしゅうきろく

国際化と地域化

i18nって初めて聞いたのでまとめ。

原語(英語)のrailsガイドを一番最初に読んだけどよくわらかん。困ったことに日本版のページ読んだけれどもそれも分からない。絶望的である。

抽象論と具体論っていうのがあるけど、読んでいる最中に自分の中に具体論が浮かんでこなかったので、後日読み返した時に、私でもわかる言葉を残しておきたいと思います。

i18n:国際化 L10n:地域化

i18nの読み方は「あいじゅうはちえぬ」とか「アイエイティーンエヌ」とか。

L10nは「えるじゅうえぬ」「エルテンエヌ」とか。

I18Nは、特定の地域の言語や慣習に縛られないようにソフトウェアを構築することを意味するが、L10Nは、他国で作られたものや、I18N化されたものを特定地域での利用が可能なように変更することを意味する。たとえば、米国で開発されたソフトウェアで日本語を使えるようにすることは、L10Nである。

国際化する内容

だいたいこの辺は必須らしい。

  • 文字セット(標準の文字コードなど)
  • 文字の方向性(左から右へ、右から左へ、左に向かって上から下へ、他)
  • 文言
  • 書式
  • 数値(小数点の文字、桁区切りの文字、区切る桁数など)
  • 日時(年月日の表記の仕方、イスラム暦/グレゴリオ暦/ユダヤ暦/和暦など使用する暦の違い、他)
  • 日時情報の時差
  • 通貨情報

Ruby on Railsi18n

rubyの場合は、rubygemが作られているとあったので検索かけたら出てきました。

i18n | RubyGems.org | your community gem host

このgemがRailsに同梱されているそうです。 rubygemなので単独で利用することもできるみたいで、ググってみたら「使ってみた」系の記事たくさんありました。

「英語喋れないなんて!」ってならないようにするということとと、とはいえいろんな文化の違いに対応する"when in Roma, do as the Romans do."精神を反映したのがi18nっぽい。

用語メモ

単語 意味
ロケール 国や地域の設定のこと

参考サイト

Rails国際化 (I18n) API | Rails ガイド

i18nとは - はてなキーワード

国際化と地域化 - Wikipedia

L10Nとは - OSS用語 Weblio辞書

ロケール(ロケール)とは - コトバンク

HTMLとCSSで名刺を作る〜その1

作成に到るまで

会社支給の名刺を持ったことがない私。

何度かの転職活動の時に少し作ったことはありましたが、キャリアコンサルタントの資格を取得してから個人名刺を持つようになりました。

その名刺、そろそろ新調しなければと思いだらだらと過ごしていたら残り3枚に!

前回は御茶ノ水にあるとてもいい感じの画材屋さんんで「とにかくシンプルに」と全て向こうにお任せして安く作成しました。

でもそれを配ってみて「これではダメだ」と。

もっと私っぽさが表れていて、もっと印象が良くて、もっと自分自身が「この名刺すき」と思えるものを配っていきたい!と。

そんな私はただいま FJORD BOOT CAMP(フィヨルドブートキャンプ)にてプログラミング修行の身。

「初心者には難しすぎる」と言うことで有名なCSSの課題も終わらせました。

そしてフィヨルドのデザイナーさんである町田さんが「大体のことはHTMLとCSSでできる」とこの前おっしゃっていた!

そしてちょっとググってみたら、それで名刺を作った人がいた! 参照: [Sy] HTMLとCSSを使って個人名刺を作るという方法もアリなんじゃないかと! | Syntax Error.

と言うわけで作ってみています。

名刺基本情報

大きさ

cssを書くにあたり、最初から名刺サイズにいい感じに収まるデザインにしたいと思ったので基本サイズを調べました。

名刺サイズは縦横何ピクセルにあたりますか? - 910mmx550mmのサイズを、Exce... - Yahoo!知恵袋

と言うわけで 全体のスタイルとしてそれを指定しました。

height: 209px;
width: 345px;

これでflexを使用した時にもはみ出すことはないと思います。(たぶん)

そういえばflexboxはもう古いと各所で聞くのでこれを機にgridもあとでやってみようかな。

印刷時の拡張子

画材屋さんや印刷業者に依頼する時にイラレがあればそれが一番だと思いますが、大体はPDFで用意できれば問題ないと思います。

というわけで完成したらPDFに書き出す予定でいます。が、その時にはどうやらCSSを印刷用に用意しないといけないらしいということで、それは後日詳しくみてみます(今はよくわからない)

【決定版】印刷用CSSはこれでいこう! | m-pixel labo blog

今の時点

前面 f:id:neko314:20180413184245p:plain

裏面 f:id:neko314:20180413183402p:plain

見栄えなどはこれから

まだ簡単にざっとしかやっていないので、明日また続きをやろうと思います。

rubyのめも

・数字はintegerクラスだけではない

・自己代入が使いこなせない

・変数と定数の使いわけ

頭文字表記 使い方
(ローカル)変数 小文字またはアンダーバー ブロック内、メソッド内などローカルなスコープで有効
インスタンス変数 @ そのオブジェクトが存在する間有効
クラス変数 @@ 同じクラスのすべてのインスタンスで共有
グローバル変数 $ プログラムのどこからでも参照できる
定数 大文字 一度代入すると、再度値を変更することはできない
  • 条件分岐

falseとnilは偽 falseとnil以外は全て真

「trueじゃなかったらfalse、falseでもなかったらnil」と思っていたけど違ったらしい(軽くショックを受けてしまった・・・)

  • unless 条件式が偽だった場合に「then」から「end」までの処理を実行する

  • 関係演算子

f:id:neko314:20180406125540p:plain

f:id:neko314:20180406125747p:plain

  • 「case」文は特定のオブジェクトが持つ値がどの値に一致するのかを調べる

  • 条件演算子

  • 式修飾子

  • while

  • until
  • for ~ in …
  • step
  • loop
  • break
  • next

  • 配列はインデックスと要素

  • :[]
  • ハッシュはキーと値: {}

*fetchでハッシュの値を拾う事ができる

  • デフォルト値はどんな時になんのために設定するのかよくわからん

  • store

  • hash.to_a
  • 引数を配列として受け取る??

  • アクセスメソッド f:id:neko314:20180406191150p:plain

  • indexで文字列の検索

  • uniq
  • compact
  • モジュール  調べたけど今はよくわからん(復習するときここが良さそう クラス・モジュールの概念 Ruby - Qiita

参考サイト

Ruby入門 - 変数・定数

Ruby入門

配列とハッシュとシンボルは紛らわしいので整理!! - Qiita

Ruby の Hash#fetch が便利 - Qiita

Unixあれこれ(復習)

学習を進めてきたけれど、ちょっと混乱していたり抜けていたりするので、今一度おさらい

linuxにはどんな種類があるのか

linuxディストリビューションは沢山あるが大きく分けるとDebian系とRedHat系が主流。

パッケージ管理システム

実行ファイルや設定ファイルやライブラリを一括で管理するシステム

系統 パッケージ管理システム 統合的なパッケージ管理システム
Debian dpkg APT
Redhat RPM YUM

統合的なパッケージ管理システムを使うと依存関係などもまとめて処理してくれるので、実際に実行するのはAPTやYUMのコマンド。

ソースコードからのインストールとパッケージからのインストールは何が違うのか

ソースコードから

自分でソフトウェアソースコードを入手しtarで解凍、ソースコードを「./configure」「make」「make install」という3つの手順を使いコンパイルしインストールする

これらの依存関係をしっかりと自分で管理し、必要なソフトを準備したり、削除するときに気を使ったりしないといけない

パッケージから

パッケージ管理システムを使用して、ソフトウェアをインストールする

依存関係も含めて管理してくれる

【HR Tech勉強会】AIと採用業務について考える

第1回目の勉強会

私はキャリアカウンセラー/キャリアコンサルタントとしての活動をしているので、HR Techについてもそれに絡んだ思いを抱いています。

  1. 技術者やビジネスサイド(まとめて開発側とします)の視点ではなく、キャリア支援という視点で考えたい
  2. 開発側とキャリア支援側の橋渡しのような行動がしたい
  3. 新しい技術を最大限価値的に使うために「誰のために」「どのように」「何に注意しながら」「どんな狙いで」その技術があるのかという点を考え続けたい

そのような思いから、以前からずっといつかはやりたいと思っていた勉強会をついに開催することになりました。

今回のテーマ

HR Techの中でも特にキャッチーでたくさんの方の関心があるのが「AI」についてでしたので、今回は「AIを使った採用業務」を取り上げてみました。

また参加者は今回は転職エージェントや大学職員などキャリア支援者がほとんど、つまり企業で採用を実施する立場の人はいなかったので、どう就職・転職支援をするかという話題をメインとしました。

企業の人事担当者なども会に出席したいとおっしゃってくださる方は何人かいらっしゃったのですが、今回は日程の都合で欠席となりました。

初回ということと議論を中心としたいという理由から多くても10人程度を想定し、結果として私を含め8人の参加となりました。

この人数でよかったと感じたので次回からもMAX10人を目安としようと思います。

構成

内容 形式 時間配分
自己紹介 1人ずつ 10分
プレゼン 私のプレゼン 30分
ディスカッション・情報交換 自由に 1時間30分

プレゼンは添付したスライドを使いました。 当日は省略した話もあります。

ディスカッション・情報交換では、関心がある方々が参加してくださったため、事前に資料を用意しておられたり、調べ物をしてくださったりしていました。

ディスカッション・情報交換の内容

箇条書きですが、支援側視点の意見ではざっとこんな話が出たというのをまとめます。

  • AIによる選考を大半は否定的に捉えている。
  • AIの使用はあくまで補助的なものであり、それを人が確認することが必要。
  • AIがあってもなくても就職活動やその支援でやることの本質は変わらない 。
  • 「いい」とされるものに合わせる人が出てきてもおかしくない。(書類など模範的な物を作ったり)
  • 採用にAIが導入されると、それに対応するためのAIも出てくるだろう。

その他出てきた意見

  • あえてAIは使わないという企業もあるだろう
  • 「一緒に働きたい」と思う人を採用するという要素もある。いい悪いは判別できるとしても、AIでそれができるのだろうか。
  • 今まで陽の当たりにくかった人(第一印象ではいい評価がでにくい、等)の良さを見出すような使い方がいいのではないか。
  • 欧米でAI導入でうまくいくのはポジション別採用が主流だからであり、総合職採用の文化のある日本では限界があるのではないか。
  • AIの専門家は使う人が何を感じているかまではわからない。声を届けられたらいいのではないか。

会の反省

終了後簡単なアンケートを実施しました 内容とは直接関係ないですが、案内文に対して評価があまり高くなかったので、次回からシンプルで明確な記載方法を心がけなければと思いました。

また議論は活発でしたが、話が飛び飛びになる場面もあったり、みなさんがお持ちの情報をうまく深めたりはできなかったので、ディスカッションや情報交換の時間には工夫が必要そうです。 今回は私一人のプレゼンののち、みなさんに半ばお任せする流れでのディスカッションを設けてみましたが、全体の形式そのものを変えてみようかと思います。

会全体としては満足が高く初回としては成功だったと言っても良さそうです。 参加者がいいメンバーだったという要因が大きいと思うので、自分としては満足度が高くて安心する気持ちと、身の引き締まる思いがするという両面あります笑

今後に向けて

いくつか目標があります。

  • キャリアカウンセラー/キャリアコンサルタントの人たち中にITという視点を広めたい
  • 開発側の人も参加してもらい人とITを融合させるような会にしたい
  • 議論することで新しい視点を参加者に持ってもらいたい
  • 結果としてより多くの人の幸せに貢献したい

「開催することが目的」とはならないようにしていきたいというのが注意点でしょうか。

まだ1歩踏み出したばかりですが、今後も色々な人の力もお借りしながら、私なりにHR Tech分野を盛り上げていけたらと考えています。

そういえば勉強会の名前をつけたいのにいいのがない。どうしよう・・・( ´Д`)y━・~~

Virtual Hostとは

とはとはとは。

Virtual Hostの定義

1つのサーバで複数のドメインを運用する技術のこと

定義自体は意味はわかる。でも実態がわからないぞ?

なぜ必要なのか

  • 「ホスト名は違うが同じコンテンツを表示したい」という要求
  • 「単一のサーバで複数のドメイン名を使いたい」という要求

をいい感じに満たすため。

運用方式

IPベースと名前ベースの2つの方式がある。

方式 詳細
IPベース ホストごとにIPアドレスを割り当てて区別する方式
名前ベース ホスト名を基にして応答するホストを決定する方式

IPベースはIPアドレスを複数用意しないといけないというのがネックだけれど(とても高額らしい)、それが可能なのであれば特に大きなデメリットはない様子。

名前ベースはすごく古いブラウザなどにはない機能だそうです。

そもそものwebの仕組み

なんども振り返らないとわかった気になってわかっていないまま進んでしまうので、やはり簡単に整理してみる。

IPアドレス

クライエントとサーバー間でリクエスト・レスポンスのやりとり基本。

そのクライエント→サーバへの送信に必要なのが「IPアドレス

IPアドレスによって世界中にたくさんある様々なサーバの中から「このサーバだよ」って指定できる。 IPアドレスはInternet Protocol address。(プロトコルは”決まり”という意味。とてもよく出てくるな)

よく「住所」と言われるけれど、マンション名まで特定できるイメージだそうです。

Port

IPアドレスがマンション名、でその先を担うのがPort。 ウェルノウンポート(1~1023)について先日学んだけれど、「役割が決められている」ということらしいので、よく使う物は番号を覚えておいた方がよいかもしれない、と思いました。

ホストとドメイン

IPアドレスとPortがわかればサイトにアクセスはできるけれど、それだと不便なので、

URLに「ホスト名+ドメイン名」を指定する→IPアドレスに変換される→目的のページにたどり着く

という仕組みにいるそうです。

ホスト

IPアドレスは、ネットワーク部とホスト部という二つの部分から成り立っています。 ネットワーク部は、そのIPアドレスが属しているネットワークを識別するための部分です。そのIPアドレスが、どのネットワークの中で使われているのかがわかります。 ホスト部は、ネットワーク内のコンピュータを識別するための部分です。そのIPアドレスが、ネットワーク内のどのコンピュータに割り当てられているかが分かります。

ホストはどのコンピュータか特定するために必要。

参考サイト

バーチャルホスト - Wikipedia

小悪魔女子大生のサーバエンジニア日記 » Blog Archive » バーチャルホストとは?

Webの仕組みとWebサーバの構造:ApacheによるWebサーバ構築(2) - @IT

バーチャルホストによる複数サイトの同時運用:ApacheによるWebサーバ構築(8) - @IT

ネットワーク部とホスト部 | IPラーニング

記念

f:id:neko314:20180401203825p:plain

Nginxを色々いじってやっと自分で書いたHTMLの表示まで行った〜

はああああああ!